From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6670502250014572544 X-Received: by 2002:a17:906:1c46:: with SMTP id l6mr3192444ejg.9.1553097332208; Wed, 20 Mar 2019 08:55:32 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a17:906:6015:: with SMTP id o21ls502582ejj.3.gmail; Wed, 20 Mar 2019 08:55:31 -0700 (PDT) X-Google-Smtp-Source: APXvYqzugn9/uoOQzvcYSyYSpklW4jZNqYRfN+B05r4qN/dKmeTrde16/+tgxf7rqY7KAW67cx8S X-Received: by 2002:a17:906:9701:: with SMTP id k1mr3192992ejx.13.1553097331718; Wed, 20 Mar 2019 08:55:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553097331; cv=none; d=google.com; s=arc-20160816; b=a2rbfjZDxgZnCXwLKPrMbJHYe2EoKLI8+lfcQ04Oh46ETlrSNVV+6YJ/mYqJI7h1P0 CBG1jSSBKEx6qAPCu1dmiJ5E872L/P9U0hyITvNwEPSCamjbfgTj/cRFU6mULMo6ZSga yPiQMcGMDwgrqFFtv3qAe6eTW1OkA75H2vi96rkacuMoPMqkP6ISzLkEhncOE8TSHdiO jiaK/LkPu2rVZHqZ+4Pzq3cNVRELBSTHXpTcoGYyyV4DTP9PvtCZEH68IL4V8Sc2CipE yEogPQBR+BS4/jF1XNijQkoXAX/k4wkdKN5YUurMvc/21ua8xKgt/KYwV9c3qr64oc8q szug== 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=ME/9qLaS06gw+27Sn5EkKGzx8+uJACC0nqDzaWgiXDY=; b=F2OIbQVy8K6LOZyAGqk1ej6tDQaDwmen+6v4B7kQHgbnOIHHcfBB8ziDySrzsK6tJ3 Bv1TYQ4eH7HGV7jRa+3Z/czXHrDtIguvPb/d5m9C4tVv2fXqkdfNYnGl6LARwBwSpLPp iEUY+L1bU6UFvVXupINx1mvRKiZlTAZLAleEMWXSez5Rj9jCa/rFwYvY0Y/3PpW74gqX LQMobP3GFZJ6m9us49bG4Pd+B8BDDBfuPz11x+/jiRqecmPPaFJApf59fKDyIr6VipMw z4K28mDADDSHGJryVHtjJgEmuVbiAGTfmwBdODHxDi5PXwHmAFieMUJsy8KdoGrcNG1c Ui1Q== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of claudius.heine.ext@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=claudius.heine.ext@siemens.com Return-Path: Received: from gecko.sbs.de (gecko.sbs.de. [194.138.37.40]) by gmr-mx.google.com with ESMTPS id a5si76105edn.3.2019.03.20.08.55.31 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Mar 2019 08:55:31 -0700 (PDT) Received-SPF: pass (google.com: domain of claudius.heine.ext@siemens.com designates 194.138.37.40 as permitted sender) client-ip=194.138.37.40; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of claudius.heine.ext@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=claudius.heine.ext@siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by gecko.sbs.de (8.15.2/8.15.2) with ESMTPS id x2KFtUdg010118 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 20 Mar 2019 16:55:31 +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 x2KFtTv7031067; Wed, 20 Mar 2019 16:55:30 +0100 From: claudius.heine.ext@siemens.com To: isar-users@googlegroups.com Cc: Claudius Heine Subject: [PATCH 1/1] meta: merges isar-image into image class Date: Wed, 20 Mar 2019 16:55:24 +0100 Message-Id: <20190320155524.17713-2-claudius.heine.ext@siemens.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190320155524.17713-1-claudius.heine.ext@siemens.com> References: <20190320155524.17713-1-claudius.heine.ext@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: fTf2YOdrnczI From: Claudius Heine (no functional change intended) Signed-off-by: Claudius Heine --- meta/classes/image.bbclass | 86 +++++++++++++++++++++++++++++-- meta/classes/isar-image.bbclass | 90 +-------------------------------- 2 files changed, 85 insertions(+), 91 deletions(-) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index bebac6b..3ba755f 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -25,6 +25,24 @@ BUILDROOT_DEPLOY = "${BUILDCHROOT_DIR}${PP_DEPLOY}" BUILDROOT_ROOTFS = "${BUILDCHROOT_DIR}${PP_ROOTFS}" BUILDROOT_WORK = "${BUILDCHROOT_DIR}${PP_WORK}" +def cfg_script(d): + cf = d.getVar('DISTRO_CONFIG_SCRIPT', True) or '' + if cf: + return 'file://' + cf + return '' + +FILESPATH =. "${LAYERDIR_core}/conf/distro:" +SRC_URI += "${@ cfg_script(d) }" + +DEPENDS += "${IMAGE_INSTALL} ${IMAGE_TRANSIENT_PACKAGES}" + +IMAGE_TRANSIENT_PACKAGES += "isar-cfg-localepurge isar-cfg-rootpw" + +WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${MACHINE}/${PN}" + +ISAR_RELEASE_CMD_DEFAULT = "git -C ${LAYERDIR_core} describe --tags --dirty --match 'v[0-9].[0-9]*'" +ISAR_RELEASE_CMD ?= "${ISAR_RELEASE_CMD_DEFAULT}" + image_do_mounts() { sudo flock ${MOUNT_LOCKFILE} -c ' \ mkdir -p "${BUILDROOT_DEPLOY}" "${BUILDROOT_ROOTFS}" "${BUILDROOT_WORK}" @@ -36,6 +54,7 @@ image_do_mounts() { } inherit ${IMAGE_TYPE} +inherit isar-bootstrap-helper # Extra space for rootfs in MB ROOTFS_EXTRA ?= "64" @@ -97,18 +116,79 @@ python set_image_size () { d.setVarFlag('ROOTFS_SIZE', 'export', '1') } +isar_image_gen_fstab() { + cat > ${WORKDIR}/fstab << EOF +# Begin /etc/fstab +/dev/root / auto defaults 0 0 +proc /proc proc nosuid,noexec,nodev 0 0 +sysfs /sys sysfs nosuid,noexec,nodev 0 0 +devpts /dev/pts devpts gid=5,mode=620 0 0 +tmpfs /run tmpfs defaults 0 0 +devtmpfs /dev devtmpfs mode=0755,nosuid 0 0 + +# End /etc/fstab +EOF +} + +isar_image_gen_rootfs() { + setup_root_file_system --clean --keep-apt-cache \ + --fstab "${WORKDIR}/fstab" \ + "${IMAGE_ROOTFS}" ${IMAGE_PREINSTALL} ${IMAGE_INSTALL} +} + +isar_image_conf_rootfs() { + # Configure root filesystem + if [ -n "${DISTRO_CONFIG_SCRIPT}" ]; then + sudo install -m 755 "${WORKDIR}/${DISTRO_CONFIG_SCRIPT}" "${IMAGE_ROOTFS}" + TARGET_DISTRO_CONFIG_SCRIPT="$(basename ${DISTRO_CONFIG_SCRIPT})" + sudo chroot ${IMAGE_ROOTFS} "/$TARGET_DISTRO_CONFIG_SCRIPT" \ + "${MACHINE_SERIAL}" "${BAUDRATE_TTY}" + sudo rm "${IMAGE_ROOTFS}/$TARGET_DISTRO_CONFIG_SCRIPT" + fi +} + +isar_image_cleanup() { + # Cleanup + sudo sh -c ' \ + rm "${IMAGE_ROOTFS}/etc/apt/sources.list.d/isar-apt.list" + test ! -e "${IMAGE_ROOTFS}/usr/share/doc/qemu-user-static" && \ + find "${IMAGE_ROOTFS}/usr/bin" \ + -maxdepth 1 -name 'qemu-*-static' -type f -delete + umount -l ${IMAGE_ROOTFS}/isar-apt + rmdir ${IMAGE_ROOTFS}/isar-apt + umount -l ${IMAGE_ROOTFS}/dev + umount -l ${IMAGE_ROOTFS}/proc + umount -l ${IMAGE_ROOTFS}/sys + rm -f "${IMAGE_ROOTFS}/etc/apt/apt.conf.d/55isar-fallback.conf" + if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ]; then + umount -l ${IMAGE_ROOTFS}/base-apt + rmdir ${IMAGE_ROOTFS}/base-apt + # Replace the local apt we bootstrapped with the + # APT sources initially defined in DISTRO_APT_SOURCES + rm -f "${IMAGE_ROOTFS}/etc/apt/sources.list.d/base-apt.list" + mv "${IMAGE_ROOTFS}/etc/apt/sources-list" \ + "${IMAGE_ROOTFS}/etc/apt/sources.list.d/bootstrap.list" + fi + rm -f "${IMAGE_ROOTFS}/etc/apt/sources-list" + ' +} + do_fetch[stamp-extra-info] = "${DISTRO}-${MACHINE}" do_unpack[stamp-extra-info] = "${DISTRO}-${MACHINE}" do_rootfs[stamp-extra-info] = "${DISTRO}-${MACHINE}" 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() { - die "No root filesystem function defined, please implement in your recipe" + isar_image_gen_fstab + isar_image_gen_rootfs + isar_image_conf_rootfs + isar_image_cleanup } - addtask rootfs before do_build after do_unpack -do_rootfs[deptask] = "do_deploy_deb" do_mark_rootfs() { BUILD_ID=$(get_build_id) diff --git a/meta/classes/isar-image.bbclass b/meta/classes/isar-image.bbclass index e7a5dee..1d5870b 100644 --- a/meta/classes/isar-image.bbclass +++ b/meta/classes/isar-image.bbclass @@ -1,92 +1,6 @@ -# Root filesystem for target installation +# Class for backwards compatibility of images that use it # # This software is a part of ISAR. # Copyright (C) 2015-2018 ilbers GmbH - +# Copyright (c) Siemens AG, 2019 inherit image -inherit isar-bootstrap-helper - -def cfg_script(d): - cf = d.getVar('DISTRO_CONFIG_SCRIPT', True) or '' - if cf: - return 'file://' + cf - return '' - -FILESPATH =. "${LAYERDIR_core}/conf/distro:" -SRC_URI += "${@ cfg_script(d) }" - -DEPENDS += "${IMAGE_INSTALL} ${IMAGE_TRANSIENT_PACKAGES}" - -IMAGE_TRANSIENT_PACKAGES += "isar-cfg-localepurge isar-cfg-rootpw" - -WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${MACHINE}/${PN}" - -ISAR_RELEASE_CMD_DEFAULT = "git -C ${LAYERDIR_core} describe --tags --dirty --match 'v[0-9].[0-9]*'" -ISAR_RELEASE_CMD ?= "${ISAR_RELEASE_CMD_DEFAULT}" - -do_rootfs[root_cleandirs] = "${IMAGE_ROOTFS} \ - ${IMAGE_ROOTFS}/isar-apt" - -isar_image_gen_fstab() { - cat > ${WORKDIR}/fstab << EOF -# Begin /etc/fstab -/dev/root / auto defaults 0 0 -proc /proc proc nosuid,noexec,nodev 0 0 -sysfs /sys sysfs nosuid,noexec,nodev 0 0 -devpts /dev/pts devpts gid=5,mode=620 0 0 -tmpfs /run tmpfs defaults 0 0 -devtmpfs /dev devtmpfs mode=0755,nosuid 0 0 - -# End /etc/fstab -EOF -} - -isar_image_gen_rootfs() { - setup_root_file_system --clean --keep-apt-cache \ - --fstab "${WORKDIR}/fstab" \ - "${IMAGE_ROOTFS}" ${IMAGE_PREINSTALL} ${IMAGE_INSTALL} -} - -isar_image_conf_rootfs() { - # Configure root filesystem - if [ -n "${DISTRO_CONFIG_SCRIPT}" ]; then - sudo install -m 755 "${WORKDIR}/${DISTRO_CONFIG_SCRIPT}" "${IMAGE_ROOTFS}" - TARGET_DISTRO_CONFIG_SCRIPT="$(basename ${DISTRO_CONFIG_SCRIPT})" - sudo chroot ${IMAGE_ROOTFS} "/$TARGET_DISTRO_CONFIG_SCRIPT" \ - "${MACHINE_SERIAL}" "${BAUDRATE_TTY}" - sudo rm "${IMAGE_ROOTFS}/$TARGET_DISTRO_CONFIG_SCRIPT" - fi -} - -isar_image_cleanup() { - # Cleanup - sudo sh -c ' \ - rm "${IMAGE_ROOTFS}/etc/apt/sources.list.d/isar-apt.list" - test ! -e "${IMAGE_ROOTFS}/usr/share/doc/qemu-user-static" && \ - find "${IMAGE_ROOTFS}/usr/bin" \ - -maxdepth 1 -name 'qemu-*-static' -type f -delete - umount -l ${IMAGE_ROOTFS}/isar-apt - rmdir ${IMAGE_ROOTFS}/isar-apt - umount -l ${IMAGE_ROOTFS}/dev - umount -l ${IMAGE_ROOTFS}/proc - umount -l ${IMAGE_ROOTFS}/sys - rm -f "${IMAGE_ROOTFS}/etc/apt/apt.conf.d/55isar-fallback.conf" - if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ]; then - umount -l ${IMAGE_ROOTFS}/base-apt - rmdir ${IMAGE_ROOTFS}/base-apt - # Replace the local apt we bootstrapped with the - # APT sources initially defined in DISTRO_APT_SOURCES - rm -f "${IMAGE_ROOTFS}/etc/apt/sources.list.d/base-apt.list" - mv "${IMAGE_ROOTFS}/etc/apt/sources-list" \ - "${IMAGE_ROOTFS}/etc/apt/sources.list.d/bootstrap.list" - fi - rm -f "${IMAGE_ROOTFS}/etc/apt/sources-list" - ' -} - -do_rootfs() { - isar_image_gen_fstab - isar_image_gen_rootfs - isar_image_conf_rootfs - isar_image_cleanup -} -- 2.20.1