From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6558749580291211264 X-Received: by 2002:a19:8e1b:: with SMTP id q27-v6mr140567lfd.5.1527077886747; Wed, 23 May 2018 05:18:06 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:6819:: with SMTP id c25-v6ls2161274lja.1.gmail; Wed, 23 May 2018 05:18:06 -0700 (PDT) X-Google-Smtp-Source: AB8JxZq8N4OyauZcJsQFe5u4AtXO3Olzw/q9HBajfwpGPLr+VR8kBs67UxsH1w+2Hxg7yBdc6hw6 X-Received: by 2002:a2e:9c09:: with SMTP id s9-v6mr129870lji.20.1527077886269; Wed, 23 May 2018 05:18:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527077886; cv=none; d=google.com; s=arc-20160816; b=g6qptS84YW58OBLlzuRYiOoyIYkV4yF2J2xXEA+l118CyXBcJ2AY4TgeZ9QZksTtMf p5q4ZXDVKg+VKPmpwLbasPlly7XArN16W6ho/gJSlIqjLPiXPLeSmrW3nGFcTQaMPhrr tNkLRXgL83OVcgOKUdc4Z4rV41T3tpqNt0RTmpM2LPjbSJr5V5Jz8Acad2rZEogE9T4l iydyKGydciPUh2l5QKPxRoN87r9xyYzofZe+pFn/d6WdPf0PEkFJhi5YoDKLN53FnkSH 16YPfFzN2n4P3UM6Mwz+zTV501uEZeu1IPNB+awG+iB4PHGla/9T/GSM4KTpkmiJAGRE wrMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=9hN9o3GP0ZCObaamcz2phk9Yf40dz3/2Qr0wuxxpopY=; b=0N6++VH7dVx+APxFJiWjY6otOc2Dm5pvcakkncKT50xwjfKt4jxFJDsANT5g6PIqOH RlGcHSeZEvlSuCztgzUT1hYQcE6o/X1hyCEDIWu4J6tEmCrviv1gEf9yUi9UDjB2x4jQ KZzoNh52/jOQFotvhjGf3RreTt2P98LMzYSadlieBSh+EI/hH4A6kq9JWS2tOdwDZWCZ kE7C7gF1iaRH06aGwnN1DuuoRBj5ZNQFkYbDmD/Qc01D7cPTbw8cxwOfggdkKYUl1gWP IlGntC/G9ZSLxvjW0ZopJtctD6/IMmxexMetNnBLI2oVANz2+h/CO6v1RB4EiHn8IpF1 Bing== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of claudius.heine.ext@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=claudius.heine.ext@siemens.com Return-Path: Received: from david.siemens.de (david.siemens.de. [192.35.17.14]) by gmr-mx.google.com with ESMTPS id j197-v6si769795lfg.3.2018.05.23.05.18.06 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 May 2018 05:18:06 -0700 (PDT) Received-SPF: pass (google.com: domain of claudius.heine.ext@siemens.com designates 192.35.17.14 as permitted sender) client-ip=192.35.17.14; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of claudius.heine.ext@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=claudius.heine.ext@siemens.com Received: from mail1.sbs.de (mail1.sbs.de [192.129.41.35]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id w4NCI5Fr027420 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 23 May 2018 14:18:05 +0200 Received: from ring.ppmd.siemens.net (linux-ses-ext02.ppmd.siemens.net [139.25.69.69]) by mail1.sbs.de (8.15.2/8.15.2) with ESMTP id w4NCI5wm002790; Wed, 23 May 2018 14:18:05 +0200 From: claudius.heine.ext@siemens.com To: isar-users@googlegroups.com Cc: Claudius Heine Subject: [PATCH 1/3] isar-bootstrap|configscript: implement one shot config option Date: Wed, 23 May 2018 14:17:58 +0200 Message-Id: <20180523121800.30900-2-claudius.heine.ext@siemens.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180523121800.30900-1-claudius.heine.ext@siemens.com> References: <20180523121800.30900-1-claudius.heine.ext@siemens.com> X-TUID: 9NndpqdBft1L From: Claudius Heine Some configuration tasks on the image require certain other packages, but those packages might not be required on the final image. One way to solve this is use a special package that is installed to the image and then removed again. When installing it makes certain that all required packages are installed to the image as well. Then the image can be configured in the postinst hook. When this package is removed and all unused dependencies are removed as well, no not required packages used by this package should remain on the image. Signed-off-by: Claudius Heine --- .../images/files/debian-configscript.sh | 1 - .../images/files/raspbian-configscript.sh | 1 - meta/classes/isar-bootstrap-helper.bbclass | 23 +++++++++++++++---- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/meta-isar/recipes-core/images/files/debian-configscript.sh b/meta-isar/recipes-core/images/files/debian-configscript.sh index 042b530..0ff2f0f 100755 --- a/meta-isar/recipes-core/images/files/debian-configscript.sh +++ b/meta-isar/recipes-core/images/files/debian-configscript.sh @@ -62,4 +62,3 @@ fi # Purge unused locale and installed packages' .deb files localepurge -apt-get clean diff --git a/meta-isar/recipes-core/images/files/raspbian-configscript.sh b/meta-isar/recipes-core/images/files/raspbian-configscript.sh index ec05a6b..47c9c37 100644 --- a/meta-isar/recipes-core/images/files/raspbian-configscript.sh +++ b/meta-isar/recipes-core/images/files/raspbian-configscript.sh @@ -62,4 +62,3 @@ kernel=$KERNEL_IMAGE EOF localepurge -apt-get clean diff --git a/meta/classes/isar-bootstrap-helper.bbclass b/meta/classes/isar-bootstrap-helper.bbclass index 4284d02..76e20f6 100644 --- a/meta/classes/isar-bootstrap-helper.bbclass +++ b/meta/classes/isar-bootstrap-helper.bbclass @@ -5,15 +5,17 @@ # # SPDX-License-Identifier: MIT +IMAGE_CFG_PACKAGE ??= "" + setup_root_file_system() { ROOTFSDIR="$1" - CLEANHOSTLEAK="$2" + CLEAN="$2" shift shift PACKAGES="$@" APT_ARGS="install --yes --allow-unauthenticated \ -o Debug::pkgProblemResolver=yes" - CLEANHOSTLEAK_FILES="${ROOTFSDIR}/etc/hostname ${ROOTFSDIR}/etc/resolv.conf" + CLEAN_FILES="${ROOTFSDIR}/etc/hostname ${ROOTFSDIR}/etc/resolv.conf" sudo cp -Trpfx \ "${DEPLOY_DIR_IMAGE}/isar-bootstrap-${DISTRO}-${DISTRO_ARCH}/" \ @@ -41,8 +43,21 @@ setup_root_file_system() { -o Dir::Etc::sourceparts="-" \ -o APT::Get::List-Cleanup="0" sudo -E chroot "$ROOTFSDIR" \ - /usr/bin/apt-get ${APT_ARGS} --download-only $PACKAGES - [ "clean" = ${CLEANHOSTLEAK} ] && sudo rm -f ${CLEANHOSTLEAK_FILES} + /usr/bin/apt-get ${APT_ARGS} --download-only $PACKAGES \ + ${IMAGE_CFG_PACKAGE} + [ "clean" = ${CLEAN} ] && sudo rm -f ${CLEAN_FILES} sudo -E chroot "$ROOTFSDIR" \ /usr/bin/apt-get ${APT_ARGS} $PACKAGES + if [ -n "${IMAGE_CFG_PACKAGE}" ]; then + sudo -E chroot "$ROOTFSDIR" \ + /usr/bin/apt-get ${APT_ARGS} ${IMAGE_CFG_PACKAGE} + sudo -E chroot "$ROOTFSDIR" \ + /usr/bin/apt-get purge -y ${IMAGE_CFG_PACKAGE} + fi + if [ "clean" = ${CLEAN} ]; then + sudo -E chroot "$ROOTFSDIR" \ + /usr/bin/apt-get autoremove --purge -y + sudo -E chroot "$ROOTFSDIR" \ + /usr/bin/apt-get clean + fi } -- 2.17.0