From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6672599133861183488 X-Received: by 2002:a17:906:a2c6:: with SMTP id by6mr16854279ejb.134.1553585552116; Tue, 26 Mar 2019 00:32:32 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a17:906:90d6:: with SMTP id v22ls1920673ejw.6.gmail; Tue, 26 Mar 2019 00:32:31 -0700 (PDT) X-Google-Smtp-Source: APXvYqxkyvtuVjMSyUcnd81wZKIcARqYV3wxX1Ebf2MpwoIdHDXYAO1o9N3PiN3Uv2lOV/cg/WG+ X-Received: by 2002:a17:906:a12:: with SMTP id w18mr16561987ejf.70.1553585551695; Tue, 26 Mar 2019 00:32:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553585551; cv=none; d=google.com; s=arc-20160816; b=kJDla5RWuzqnHPq/+FsOgfbp59QWn612OH64YtlTDGkf/EBY+2bfRa5YmTCxIEYmxA NUYq8T0gv18v1SZFN91WicfhVuzhDIWLv4IRPrIC9zzOSyBQQt6W6xjGghmBP+Cp6VIO asAMJWfh3yPMOMxOHkYTt9b3mFLTiulunE3c5MBKMKdrdcZyB4sbFkb7Oseqjkx62glo jyJ+ubJ8gU/4SxtLG3GorNoYTU+mEwsAUtlhGMvrNTfoy+f21k7cLaGT/RwksUe4vnoN oYE3YR8IImvFnE78g8ewEVToerUSRlIktVK9+EMa/80LikxbYYvc96TjgIWJ5Nby1BLr U36Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=M6LyxslQMLzxMMLQNFqI0d0l9vb5RRyJMk8rUujl/vo=; b=cag+RVR0Og48TEcbuJ1Bhzjz/L3bVZaA+iQufyWgsKN3FeguSlqjOU+Xe+LmhEVR2e MbWUZCiIxKiea9Zun8ao99CA4gbE97aXXKj3/KegTCb4sPy+qIBRMBY1PfU+/EzGSbVq alfYHjMsmhBhbfXB5QJMpHyYr1UFGIhm635P97/aRwAN4K7+Rn2+klglw+CmDsr6Xvid lvlymZAE3iQWrpy/48eosVFO0MKQmHuitcVzZ9OnqdmIC1RZtr9KgiXVoTOktpBMhVH0 zqDLQwavklqWiyDDu7yX6AVr/uJP+2WM8vyvXCNa5jL2UZkMbZF92MDw5/YBEwJdwT55 RY1w== 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 r37si718917edd.2.2019.03.26.00.32.31 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Mar 2019 00:32:31 -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 mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id x2Q7WUgj027702 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 26 Mar 2019 08:32:30 +0100 Received: from ring.ppmd.siemens.net (linux-ses-ext02.ppmd.siemens.net [139.25.69.232]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id x2Q7WU7I008733; Tue, 26 Mar 2019 08:32:30 +0100 From: claudius.heine.ext@siemens.com To: isar-users@googlegroups.com Cc: Claudius Heine Subject: [PATCH 1/1] meta/classes/image: implement ROOTFS_POSTPROCESS_COMMAND Date: Tue, 26 Mar 2019 08:32:27 +0100 Message-Id: <20190326073227.11091-2-claudius.heine.ext@siemens.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190326073227.11091-1-claudius.heine.ext@siemens.com> References: <20190326073227.11091-1-claudius.heine.ext@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: cNbQ8vkgkRDX From: Claudius Heine Signed-off-by: Claudius Heine --- meta/classes/image.bbclass | 86 +++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 01c6f3b..cd92fbc 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -118,7 +118,7 @@ python set_image_size () { d.setVarFlag('ROOTFS_SIZE', 'export', '1') } -isar_image_gen_fstab() { +do_image_gen_fstab() { cat > ${WORKDIR}/fstab << EOF # Begin /etc/fstab /dev/root / auto defaults 0 0 @@ -131,14 +131,44 @@ devtmpfs /dev devtmpfs mode=0755,nosuid 0 0 # End /etc/fstab EOF } +addtask image_gen_fstab before do_rootfs -isar_image_gen_rootfs() { +do_rootfs[depends] = "isar-apt:do_cache_config isar-bootstrap-target:do_bootstrap" +do_rootfs[deptask] = "do_deploy_deb" +do_rootfs[root_cleandirs] = "${IMAGE_ROOTFS} \ + ${IMAGE_ROOTFS}/isar-apt" +do_rootfs() { setup_root_file_system --clean --keep-apt-cache \ --fstab "${WORKDIR}/fstab" \ "${IMAGE_ROOTFS}" ${IMAGE_PREINSTALL} ${IMAGE_INSTALL} } +addtask rootfs before do_build after do_unpack + +do_copy_boot_files[dirs] = "${DEPLOY_DIR_IMAGE}" +do_copy_boot_files() { + if [ -n "${KERNEL_IMAGE}" ]; then + cp -f ${IMAGE_ROOTFS}/boot/${@get_image_name(d, 'vmlinuz')[0]} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE} + fi + + if [ -n "${INITRD_IMAGE}" ]; then + sudo cp -f ${IMAGE_ROOTFS}/boot/${@get_image_name(d, 'initrd.img')[0]} ${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE} + fi + + # Check DTB_FILE via inline python to handle unset case: + if [ -n "${@d.getVar('DTB_FILE', True) or ""}" ]; then + dtb="$(find '${IMAGE_ROOTFS}/usr/lib' -type f \ + -iwholename '*linux-image-*/${DTB_FILE}' | head -1)" + + if [ -z "$dtb" -o ! -e "$dtb" ]; then + die "${DTB_FILE} not found" + fi + + cp -f "$dtb" "${DEPLOY_DIR_IMAGE}/${DTB_FILE}" + fi +} +addtask copy_boot_files before do_rootfs_postprocess after do_rootfs -isar_image_conf_rootfs() { +postproc_image_conf_rootfs() { # Configure root filesystem if [ -n "${DISTRO_CONFIG_SCRIPT}" ]; then sudo install -m 755 "${WORKDIR}/${DISTRO_CONFIG_SCRIPT}" "${IMAGE_ROOTFS}" @@ -149,7 +179,7 @@ isar_image_conf_rootfs() { fi } -isar_image_cleanup() { +postproc_image_cleanup() { # Cleanup sudo sh -c ' \ rm "${IMAGE_ROOTFS}/etc/apt/sources.list.d/isar-apt.list" @@ -175,53 +205,23 @@ isar_image_cleanup() { ' } -do_rootfs[depends] = "isar-apt:do_cache_config isar-bootstrap-target:do_bootstrap" -do_rootfs[deptask] = "do_deploy_deb" -do_rootfs[root_cleandirs] = "${IMAGE_ROOTFS} \ - ${IMAGE_ROOTFS}/isar-apt" -do_rootfs() { - isar_image_gen_fstab - isar_image_gen_rootfs - isar_image_conf_rootfs - isar_image_cleanup -} -addtask rootfs before do_build after do_unpack - -do_mark_rootfs() { +postproc_mark_rootfs() { BUILD_ID=$(get_build_id) update_etc_os_release \ --build-id "${BUILD_ID}" --variant "${DESCRIPTION}" \ "${IMAGE_ROOTFS}" } -addtask mark_rootfs before do_rootfs_postprocess after do_rootfs - -do_copy_boot_files[dirs] = "${DEPLOY_DIR_IMAGE}" -do_copy_boot_files() { - if [ -n "${KERNEL_IMAGE}" ]; then - cp -f ${IMAGE_ROOTFS}/boot/${@get_image_name(d, 'vmlinuz')[0]} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE} - fi - if [ -n "${INITRD_IMAGE}" ]; then - sudo cp -f ${IMAGE_ROOTFS}/boot/${@get_image_name(d, 'initrd.img')[0]} ${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE} - fi - - # Check DTB_FILE via inline python to handle unset case: - if [ -n "${@d.getVar('DTB_FILE', True) or ""}" ]; then - dtb="$(find '${IMAGE_ROOTFS}/usr/lib' -type f \ - -iwholename '*linux-image-*/${DTB_FILE}' | head -1)" - - if [ -z "$dtb" -o ! -e "$dtb" ]; then - die "${DTB_FILE} not found" - fi - - cp -f "$dtb" "${DEPLOY_DIR_IMAGE}/${DTB_FILE}" - fi -} -addtask copy_boot_files before do_rootfs_postprocess after do_rootfs +ROOTFS_POSTPROCESS_COMMAND = "postproc_image_conf_rootfs postproc_mark_rootfs postproc_image_cleanup" +do_rootfs_postprocess[vardeps] = "${ROOTFS_POSTPROCESS_COMMAND}" python do_rootfs_postprocess() { - """Virtual task""" - pass + cmds = d.getVar("ROOTFS_POSTPROCESS_COMMAND") + if cmds is None or not cmds.strip(): + return + cmds = cmds.split() + for cmd in cmds: + bb.build.exec_func(cmd, d) } addtask rootfs_postprocess before do_build after do_rootfs -- 2.20.1