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
next prev 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