public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
* [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