* [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