* [PATCH 0/1] Move isar-image into image class @ 2019-03-20 15:55 claudius.heine.ext 2019-03-20 15:55 ` [PATCH 1/1] meta: merges " claudius.heine.ext 0 siblings, 1 reply; 4+ messages in thread From: claudius.heine.ext @ 2019-03-20 15:55 UTC (permalink / raw) To: isar-users; +Cc: Claudius Heine From: Claudius Heine <ch@denx.de> Hi, this patch moves the isar-image into the image class as a first preparation for further refactoring done to the image creation pipeline. The following steps will be: - Implementation of a clean image generation pipeline, as described in github issue #46, no functional change intended - Implementation of a rootfs postprocessing functionality similar to how OE solved it - Splitting up of the isar-bootstrap-helper/setup_root_file_system function to allow adding tasks/function that are executed between copying of isar-bootstrap and installation of custom packages etc. -> rootfs preprocessing - Moving existing functionality into idempotent tasks/functions and into the correct position within the pipeline - Implementing additional post/pre-process tasks (user management, rootfs minimization, debug settings, etc.) - Deprecating transient packages if no other uses for this can be found. regards, Claudius Claudius Heine (1): meta: merges isar-image into image class meta/classes/image.bbclass | 86 +++++++++++++++++++++++++++++-- meta/classes/isar-image.bbclass | 90 +-------------------------------- 2 files changed, 85 insertions(+), 91 deletions(-) -- 2.20.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/1] meta: merges isar-image into image class 2019-03-20 15:55 [PATCH 0/1] Move isar-image into image class claudius.heine.ext @ 2019-03-20 15:55 ` claudius.heine.ext 2019-03-20 16:50 ` Jan Kiszka 0 siblings, 1 reply; 4+ messages in thread From: claudius.heine.ext @ 2019-03-20 15:55 UTC (permalink / raw) To: isar-users; +Cc: Claudius Heine From: Claudius Heine <ch@denx.de> (no functional change intended) Signed-off-by: Claudius Heine <ch@denx.de> --- 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 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/1] meta: merges isar-image into image class 2019-03-20 15:55 ` [PATCH 1/1] meta: merges " claudius.heine.ext @ 2019-03-20 16:50 ` Jan Kiszka 2019-03-21 7:24 ` Claudius Heine 0 siblings, 1 reply; 4+ messages in thread From: Jan Kiszka @ 2019-03-20 16:50 UTC (permalink / raw) To: [ext] claudius.heine.ext@siemens.com, isar-users; +Cc: Claudius Heine On 20.03.19 16:55, [ext] claudius.heine.ext@siemens.com wrote: > From: Claudius Heine <ch@denx.de> > > (no functional change intended) > > Signed-off-by: Claudius Heine <ch@denx.de> > --- > 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 > -} > You should also update RECIPE-API-CHANGELOG.md to move people from "inherit isar-image" to "inherit image". And the user manual. And meta-isar. Maybe even issue a warning when people are still using isar-image. Jan -- Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate Competence Center Embedded Linux ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/1] meta: merges isar-image into image class 2019-03-20 16:50 ` Jan Kiszka @ 2019-03-21 7:24 ` Claudius Heine 0 siblings, 0 replies; 4+ messages in thread From: Claudius Heine @ 2019-03-21 7:24 UTC (permalink / raw) To: Jan Kiszka, isar-users; +Cc: Claudius Heine Hi Jan, On 20/03/2019 17.50, Jan Kiszka wrote: > On 20.03.19 16:55, [ext] claudius.heine.ext@siemens.com wrote: >> From: Claudius Heine <ch@denx.de> >> >> (no functional change intended) >> >> Signed-off-by: Claudius Heine <ch@denx.de> >> --- >> 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 >> -} >> > > You should also update RECIPE-API-CHANGELOG.md to move people from "inherit > isar-image" to "inherit image". And the user manual. And meta-isar. Maybe even > issue a warning when people are still using isar-image. Ok. But I will do that in an additional patch. IMO here I want just to move isar-image to image while maintaining backward compatibility. The next patch can then deprecate the isar-image usage. regards, Claudius -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-03-21 7:24 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-03-20 15:55 [PATCH 0/1] Move isar-image into image class claudius.heine.ext 2019-03-20 15:55 ` [PATCH 1/1] meta: merges " claudius.heine.ext 2019-03-20 16:50 ` Jan Kiszka 2019-03-21 7:24 ` Claudius Heine
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox