public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@siemens.com>
To: isar-users <isar-users@googlegroups.com>
Subject: [PATCH 4/5] Install wic and bootloader dependencies via imager_install_deps
Date: Wed,  5 Sep 2018 20:18:03 +0200	[thread overview]
Message-ID: <b53260a461250d2005dcbf30d1d58e0cd9049a85.1536171484.git.jan.kiszka@siemens.com> (raw)
In-Reply-To: <cover.1536171484.git.jan.kiszka@siemens.com>
In-Reply-To: <cover.1536171484.git.jan.kiszka@siemens.com>

From: Jan Kiszka <jan.kiszka@siemens.com>

This removes the wic dependency installation hack from
buildchroot-target, modeling this instead with the new IMAGER_INSTALL
interface. The basic dependencies of wic are still automatically
installed as soon as the image type is switched to wic-img. However,
those of the bootloader now requires explicit statements.

For that, GRUB_BOOTLOADER_INSTALL and SYSLINUX_BOOTLOADER_INSTALL
variables are introduced and set by the distro confs accordingly. So the
user just needs to assign their value to IMAGE_INSTALL if the
corresponding bootloader is selected in a WKS file - or by some other
imaging mechanism.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 meta-isar/conf/distro/debian-buster.conf           |  4 +++
 meta-isar/conf/distro/debian-common.conf           | 19 +++++++++++++
 meta-isar/conf/distro/debian-jessie.conf           |  2 ++
 meta-isar/conf/distro/debian-stretch.conf          |  2 ++
 meta-isar/conf/distro/debian-wheezy.conf           |  2 ++
 meta-isar/conf/multiconfig/bananapi-stretch.conf   |  2 +-
 meta-isar/conf/multiconfig/qemuamd64-buster.conf   |  1 +
 meta-isar/conf/multiconfig/qemuamd64-stretch.conf  |  1 +
 meta-isar/conf/multiconfig/qemui386-buster.conf    |  1 +
 meta-isar/conf/multiconfig/qemui386-stretch.conf   |  1 +
 meta/classes/image.bbclass                         |  6 ++++
 meta/classes/wic-img.bbclass                       |  2 +-
 .../buildchroot/buildchroot-target.bb              | 33 ----------------------
 13 files changed, 41 insertions(+), 35 deletions(-)
 create mode 100644 meta-isar/conf/distro/debian-common.conf

diff --git a/meta-isar/conf/distro/debian-buster.conf b/meta-isar/conf/distro/debian-buster.conf
index 7d1c921..f3f843c 100644
--- a/meta-isar/conf/distro/debian-buster.conf
+++ b/meta-isar/conf/distro/debian-buster.conf
@@ -1,6 +1,10 @@
 # This software is a part of ISAR.
 
+require debian-common.conf
+
 DISTRO_APT_SOURCES += "conf/distro/debian-buster.list"
 DISTRO_CONFIG_SCRIPT ?= "debian-configscript.sh"
 DISTRO_KERNELS ?= "4kc-malta 5kc-malta 686 686-pae amd64 arm64 armmp \
     armmp-lpae cloud-amd64 loongson-3 marvell octeon powerpc64le s390x"
+
+WIC_IMAGER_INSTALL += "python3-distutils"
diff --git a/meta-isar/conf/distro/debian-common.conf b/meta-isar/conf/distro/debian-common.conf
new file mode 100644
index 0000000..bb74f1e
--- /dev/null
+++ b/meta-isar/conf/distro/debian-common.conf
@@ -0,0 +1,19 @@
+# This software is a part of ISAR.
+# Copyright (C) 2018 Siemens AG
+#
+# SPDX-License-Identifier: MIT
+
+WIC_IMAGER_INSTALL = "parted \
+                      gdisk \
+                      util-linux \
+                      dosfstools \
+                      mtools \
+                      e2fsprogs \
+                      python3"
+
+GRUB_BOOTLOADER_INSTALL_amd64 = "grub-efi-amd64-bin"
+GRUB_BOOTLOADER_INSTALL_i386 = "grub-efi-ia32-bin"
+GRUB_BOOTLOADER_INSTALL_armhf = "grub-efi-arm-bin"
+GRUB_BOOTLOADER_INSTALL_arm64 = "grub-efi-arm64-bin"
+
+SYSLINUX_BOOTLOADER_INSTALL = "syslinux syslinux-common"
diff --git a/meta-isar/conf/distro/debian-jessie.conf b/meta-isar/conf/distro/debian-jessie.conf
index ea46be6..cbdf791 100644
--- a/meta-isar/conf/distro/debian-jessie.conf
+++ b/meta-isar/conf/distro/debian-jessie.conf
@@ -3,6 +3,8 @@
 # This software is a part of ISAR.
 # Copyright (C) 2015-2016 ilbers GmbH
 
+require debian-common.conf
+
 DISTRO_APT_SOURCES += "conf/distro/debian-jessie.list"
 DISTRO_CONFIG_SCRIPT ?= "debian-configscript.sh"
 DISTRO_KERNELS ?= "486 4kc-malta 586 5kc-malta 686-pae amd64 arm64 armmp \
diff --git a/meta-isar/conf/distro/debian-stretch.conf b/meta-isar/conf/distro/debian-stretch.conf
index 99d1737..cce5493 100644
--- a/meta-isar/conf/distro/debian-stretch.conf
+++ b/meta-isar/conf/distro/debian-stretch.conf
@@ -1,6 +1,8 @@
 # This software is a part of ISAR.
 # Copyright (C) 2017 ilbers GmbH
 
+require debian-common.conf
+
 DISTRO_APT_SOURCES += "conf/distro/debian-stretch.list"
 DISTRO_CONFIG_SCRIPT ?= "debian-configscript.sh"
 DISTRO_KERNELS ?= "4kc-malta 586 5kc-malta 686 686-pae amd64 arm64 armmp \
diff --git a/meta-isar/conf/distro/debian-wheezy.conf b/meta-isar/conf/distro/debian-wheezy.conf
index 5b2e936..a5f52fc 100644
--- a/meta-isar/conf/distro/debian-wheezy.conf
+++ b/meta-isar/conf/distro/debian-wheezy.conf
@@ -3,6 +3,8 @@
 # This software is a part of ISAR.
 # Copyright (C) 2015-2016 ilbers GmbH
 
+require debian-common.conf
+
 DISTRO_APT_SOURCES += "conf/distro/debian-wheezy.list"
 DISTRO_CONFIG_SCRIPT ?= "debian-configscript.sh"
 DISTRO_KERNELS ?= "486 686-pae amd64 rt-686-pae rt-amd64 versatile vexpress \
diff --git a/meta-isar/conf/multiconfig/bananapi-stretch.conf b/meta-isar/conf/multiconfig/bananapi-stretch.conf
index a78300a..b884b44 100644
--- a/meta-isar/conf/multiconfig/bananapi-stretch.conf
+++ b/meta-isar/conf/multiconfig/bananapi-stretch.conf
@@ -16,9 +16,9 @@ DISTRO_APT_SOURCES_append = " conf/distro/debian-stretch-backports.list"
 DISTRO_APT_PREFERENCES += "conf/multiconfig/preferences.bananapi.conf"
 
 IMAGE_INSTALL += "u-boot-script"
-BUILDCHROOT_PREINSTALL_WIC_append = " u-boot-sunxi"
 
 IMAGE_TYPE ?= "wic-img"
 WKS_FILE ?= "bananapi"
+IMAGER_INSTALL += "u-boot-sunxi"
 
 ROOTFS_DEV ?= "mmcblk0p1"
diff --git a/meta-isar/conf/multiconfig/qemuamd64-buster.conf b/meta-isar/conf/multiconfig/qemuamd64-buster.conf
index 8140d13..404f48a 100644
--- a/meta-isar/conf/multiconfig/qemuamd64-buster.conf
+++ b/meta-isar/conf/multiconfig/qemuamd64-buster.conf
@@ -11,6 +11,7 @@ IMAGE_PREINSTALL += "init"
 
 IMAGE_TYPE ?= "wic-img"
 WKS_FILE ?= "sdimage-efi"
+IMAGER_INSTALL += "${GRUB_BOOTLOADER_INSTALL}"
 
 ROOTFS_DEV ?= "sda2"
 
diff --git a/meta-isar/conf/multiconfig/qemuamd64-stretch.conf b/meta-isar/conf/multiconfig/qemuamd64-stretch.conf
index 0184617..3d1ef28 100644
--- a/meta-isar/conf/multiconfig/qemuamd64-stretch.conf
+++ b/meta-isar/conf/multiconfig/qemuamd64-stretch.conf
@@ -12,6 +12,7 @@ IMAGE_PREINSTALL += "init"
 
 IMAGE_TYPE ?= "wic-img"
 WKS_FILE ?= "sdimage-efi"
+IMAGER_INSTALL += "${GRUB_BOOTLOADER_INSTALL}"
 
 ROOTFS_DEV ?= "sda2"
 
diff --git a/meta-isar/conf/multiconfig/qemui386-buster.conf b/meta-isar/conf/multiconfig/qemui386-buster.conf
index e09cd0c..279d321 100644
--- a/meta-isar/conf/multiconfig/qemui386-buster.conf
+++ b/meta-isar/conf/multiconfig/qemui386-buster.conf
@@ -11,6 +11,7 @@ IMAGE_PREINSTALL += "init"
 
 IMAGE_TYPE ?= "wic-img"
 WKS_FILE ?= "directdisk-isar"
+IMAGER_INSTALL += "${SYSLINUX_BOOTLOADER_INSTALL}"
 
 ROOTFS_DEV ?= "sda2"
 
diff --git a/meta-isar/conf/multiconfig/qemui386-stretch.conf b/meta-isar/conf/multiconfig/qemui386-stretch.conf
index 8966c2b..6f3041b 100644
--- a/meta-isar/conf/multiconfig/qemui386-stretch.conf
+++ b/meta-isar/conf/multiconfig/qemui386-stretch.conf
@@ -12,6 +12,7 @@ IMAGE_PREINSTALL += "init"
 
 IMAGE_TYPE ?= "wic-img"
 WKS_FILE ?= "directdisk-isar"
+IMAGER_INSTALL += "${SYSLINUX_BOOTLOADER_INSTALL}"
 
 ROOTFS_DEV ?= "sda2"
 
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index d7f71e3..55f0b3a 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -114,6 +114,12 @@ IMAGER_INSTALL ??= ""
 IMAGER_BUILD_DEPS ??= ""
 DEPENDS += "${IMAGER_BUILD_DEPS}"
 
+python () {
+    if d.getVar('IMAGE_TYPE', True) == 'wic-img':
+        d.appendVar('IMAGER_INSTALL',
+                    ' ' + d.getVar('WIC_IMAGER_INSTALL', True))
+}
+
 do_install_imager_deps() {
     if [ -z "${@d.getVar("IMAGER_INSTALL", True).strip()}" ]; then
         exit
diff --git a/meta/classes/wic-img.bbclass b/meta/classes/wic-img.bbclass
index 167a54b..635fbbf 100644
--- a/meta/classes/wic-img.bbclass
+++ b/meta/classes/wic-img.bbclass
@@ -81,4 +81,4 @@ do_wic_image() {
 
 do_wic_image[depends] = "buildchroot-target:do_build"
 
-addtask wic_image before do_build after do_copy_boot_files
+addtask wic_image before do_build after do_install_imager_deps
diff --git a/meta/recipes-devtools/buildchroot/buildchroot-target.bb b/meta/recipes-devtools/buildchroot/buildchroot-target.bb
index 34abb72..42f47fc 100644
--- a/meta/recipes-devtools/buildchroot/buildchroot-target.bb
+++ b/meta/recipes-devtools/buildchroot/buildchroot-target.bb
@@ -20,37 +20,4 @@ BUILDCHROOT_PREINSTALL ?= "gcc \
                            devscripts \
                            equivs"
 
-BUILDCHROOT_PREINSTALL_WIC = " \
-                             parted \
-                             gdisk \
-                             util-linux \
-                             dosfstools \
-                             mtools \
-                             e2fsprogs \
-                             python3"
-
-BUILDCHROOT_PREINSTALL_WIC_append_debian-buster = " python3-distutils"
-
-BUILDCHROOT_PREINSTALL_WIC_append_amd64 = " \
-                             syslinux \
-                             syslinux-common \
-                             grub-efi-amd64-bin"
-
-BUILDCHROOT_PREINSTALL_WIC_append_armhf = " \
-                             grub-efi-arm-bin"
-
-BUILDCHROOT_PREINSTALL_WIC_append_arm64 = " \
-                             grub-efi-arm64-bin"
-
-BUILDCHROOT_PREINSTALL_WIC_append_i386 = " \
-                             syslinux \
-                             syslinux-common \
-                             grub-efi-ia32-bin"
-
-python () {
-    if d.getVar('IMAGE_TYPE', True) == 'wic-img':
-        d.appendVar('BUILDCHROOT_PREINSTALL',
-                    d.getVar('BUILDCHROOT_PREINSTALL_WIC', True))
-}
-
 do_build[depends] = "isar-apt:do_cache_config isar-bootstrap-target:do_bootstrap"
-- 
2.16.4


  parent reply	other threads:[~2018-09-05 18:18 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-05 18:17 [PATCH 0/5] Refactor bootloader installation, add custom U-Boot include Jan Kiszka
2018-09-05 18:18 ` [PATCH 1/5] meta: Factor out buildchroot class Jan Kiszka
2018-09-05 18:18 ` [PATCH 2/5] image: Add imager dependency installation task Jan Kiszka
2018-09-05 18:18 ` [PATCH 3/5] wic-img: Require explicit setting of WKS_FILE Jan Kiszka
2018-09-05 18:18 ` Jan Kiszka [this message]
2018-09-05 18:18 ` [PATCH 5/5] meta: Add custom U-Boot recipe include Jan Kiszka
2018-09-07 18:27   ` [PATCH v2 " Jan Kiszka
2018-09-05 18:19 ` [PATCH 0/5] Refactor bootloader installation, add custom U-Boot include Jan Kiszka
2018-09-11  8:33 ` Maxim Yu. Osipov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b53260a461250d2005dcbf30d1d58e0cd9049a85.1536171484.git.jan.kiszka@siemens.com \
    --to=jan.kiszka@siemens.com \
    --cc=isar-users@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox