From: Jan Kiszka <jan.kiszka@web.de>
To: isar-users <isar-users@googlegroups.com>
Subject: [PATCH] base-apt: Fix distro and codename retrieval
Date: Mon, 12 Nov 2018 09:34:10 +0100 [thread overview]
Message-ID: <09c55855-cf3f-2ef3-ddfa-5dfc2b40e2d4@web.de> (raw)
From: Jan Kiszka <jan.kiszka@siemens.com>
So far, the base-apt-helper derived the base distro name and codename
(so far called suite, but it was already the codename) from the DISTRO
variable. That broke downstream layers which defined their own DISTRO.
A better approach is to let the distro config file define those
parameters so that they can reliably propagate, also via derived
distros, to the helper tasks.
Fixes: d702b4cceb64 ("base-apt: Add helper class")
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
meta-isar/conf/distro/debian-buster.conf | 2 ++
meta-isar/conf/distro/debian-common.conf | 2 ++
meta-isar/conf/distro/debian-jessie.conf | 2 ++
meta-isar/conf/distro/debian-stretch.conf | 2 ++
meta-isar/conf/distro/raspbian-jessie.conf | 3 +++
meta/classes/base-apt-helper.bbclass | 17 +++++++----------
meta/recipes-core/isar-bootstrap/files/base-apt-sources | 2 +-
meta/recipes-core/isar-bootstrap/isar-bootstrap.inc | 4 +++-
meta/recipes-devtools/base-apt/base-apt.bb | 10 +++++-----
meta/recipes-devtools/base-apt/files/distributions.in | 2 +-
10 files changed, 28 insertions(+), 18 deletions(-)
diff --git a/meta-isar/conf/distro/debian-buster.conf b/meta-isar/conf/distro/debian-buster.conf
index 61367ef..6b1daa3 100644
--- a/meta-isar/conf/distro/debian-buster.conf
+++ b/meta-isar/conf/distro/debian-buster.conf
@@ -2,6 +2,8 @@
require debian-common.conf
+BASE_DISTRO_CODENAME = "buster"
+
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 \
diff --git a/meta-isar/conf/distro/debian-common.conf b/meta-isar/conf/distro/debian-common.conf
index bb74f1e..5a47483 100644
--- a/meta-isar/conf/distro/debian-common.conf
+++ b/meta-isar/conf/distro/debian-common.conf
@@ -3,6 +3,8 @@
#
# SPDX-License-Identifier: MIT
+BASE_DISTRO = "debian"
+
WIC_IMAGER_INSTALL = "parted \
gdisk \
util-linux \
diff --git a/meta-isar/conf/distro/debian-jessie.conf b/meta-isar/conf/distro/debian-jessie.conf
index cbdf791..5a46afe 100644
--- a/meta-isar/conf/distro/debian-jessie.conf
+++ b/meta-isar/conf/distro/debian-jessie.conf
@@ -5,6 +5,8 @@
require debian-common.conf
+BASE_DISTRO_CODENAME = "jessie"
+
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 b3d2c2d..cc9ca6e 100644
--- a/meta-isar/conf/distro/debian-stretch.conf
+++ b/meta-isar/conf/distro/debian-stretch.conf
@@ -3,6 +3,8 @@
require debian-common.conf
+BASE_DISTRO_CODENAME = "stretch"
+
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/raspbian-jessie.conf b/meta-isar/conf/distro/raspbian-jessie.conf
index 72d6067..de8b5a1 100644
--- a/meta-isar/conf/distro/raspbian-jessie.conf
+++ b/meta-isar/conf/distro/raspbian-jessie.conf
@@ -3,6 +3,9 @@
# This software is a part of ISAR.
# Copyright (C) 2015-2016 ilbers GmbH
+BASE_DISTRO = "raspbian"
+BASE_DISTRO_CODENAME = "jessie"
+
DISTRO_APT_SOURCES += "conf/distro/raspbian-jessie.list"
DISTRO_APT_KEYS += "https://archive.raspbian.org/raspbian.public.key;sha256sum=ca59cd4f2bcbc3a1d41ba6815a02a8dc5c175467a59bd87edeac458f4a5345de"
DISTRO_CONFIG_SCRIPT?= "raspbian-configscript.sh"
diff --git a/meta/classes/base-apt-helper.bbclass b/meta/classes/base-apt-helper.bbclass
index eb28f76..ba768da 100644
--- a/meta/classes/base-apt-helper.bbclass
+++ b/meta/classes/base-apt-helper.bbclass
@@ -1,9 +1,6 @@
# This software is a part of ISAR.
# Copyright (C) 2018 ilbers GmbH
-DISTRO_NAME ?= "${@ d.getVar('DISTRO', True).split('-')[0]}"
-DISTRO_SUITE ?= "${@ d.getVar('DISTRO', True).split('-')[1]}"
-
compare_pkg_md5sums() {
pkg1=$1
pkg2=$2
@@ -34,23 +31,23 @@ populate_base_apt() {
fi
# Check if this package is already in base-apt
- isar_package=$(find ${REPO_BASE_DIR}/${DISTRO_NAME} -name $base_name)
+ isar_package=$(find ${REPO_BASE_DIR}/${BASE_DISTRO} -name $base_name)
if [ -n "$isar_package" ]; then
compare_pkg_md5sums "$package" "$isar_package" && continue
# md5sum differs, so remove the package from base-apt
name=$(echo $base_name | cut -d '_' -f 1)
- reprepro -b ${REPO_BASE_DIR}/${DISTRO_NAME} \
- --dbdir ${REPO_BASE_DB_DIR}/${DISTRO_NAME} \
+ reprepro -b ${REPO_BASE_DIR}/${BASE_DISTRO} \
+ --dbdir ${REPO_BASE_DB_DIR}/${BASE_DISTRO} \
-C main -A ${DISTRO_ARCH} \
- remove ${DISTRO_SUITE} \
+ remove ${BASE_DISTRO_CODENAME} \
$name
fi
- reprepro -b ${REPO_BASE_DIR}/${DISTRO_NAME} \
- --dbdir ${REPO_BASE_DB_DIR}/${DISTRO_NAME} \
+ reprepro -b ${REPO_BASE_DIR}/${BASE_DISTRO} \
+ --dbdir ${REPO_BASE_DB_DIR}/${BASE_DISTRO} \
-C main \
- includedeb ${DISTRO_SUITE} \
+ includedeb ${BASE_DISTRO_CODENAME} \
$package
done
}
diff --git a/meta/recipes-core/isar-bootstrap/files/base-apt-sources b/meta/recipes-core/isar-bootstrap/files/base-apt-sources
index e806465..ddc4509 100644
--- a/meta/recipes-core/isar-bootstrap/files/base-apt-sources
+++ b/meta/recipes-core/isar-bootstrap/files/base-apt-sources
@@ -1 +1 @@
-deb [trusted=yes] file:///base-apt/debian {DISTRO} main
+deb [trusted=yes] file:///base-apt/{BASE_DISTRO} {BASE_DISTRO_CODENAME} main
diff --git a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc
index cc1791c..ebb88b0 100644
--- a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc
+++ b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc
@@ -214,7 +214,9 @@ isar_bootstrap() {
"${ROOTFSDIR}/etc/apt/preferences.d/bootstrap"
mkdir -p "${ROOTFSDIR}/etc/apt/sources.list.d"
if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ]; then
- sed -i -e "s#{DISTRO}#"${DISTRO_SUITE}"#g" ${BASEAPTSRCS}
+ sed -e "s#{BASE_DISTRO}#"${BASE_DISTRO}"#g" \
+ -e "s#{BASE_DISTRO_CODENAME}#"${BASE_DISTRO_CODENAME}"#g" \
+ -i ${BASEAPTSRCS}
mkdir -p ${ROOTFSDIR}/base-apt
sudo mount --bind ${REPO_BASE_DIR} ${ROOTFSDIR}/base-apt
install -v -m644 "${BASEAPTSRCS}" \
diff --git a/meta/recipes-devtools/base-apt/base-apt.bb b/meta/recipes-devtools/base-apt/base-apt.bb
index 2370905..d744ed6 100644
--- a/meta/recipes-devtools/base-apt/base-apt.bb
+++ b/meta/recipes-devtools/base-apt/base-apt.bb
@@ -5,7 +5,7 @@ SRC_URI = "file://distributions.in"
inherit base-apt-helper
-CACHE_CONF_DIR = "${REPO_BASE_DIR}/${DISTRO_NAME}/conf"
+CACHE_CONF_DIR = "${REPO_BASE_DIR}/${BASE_DISTRO}/conf"
do_cache_config[dirs] = "${CACHE_CONF_DIR}"
do_cache_config[stamp-extra-info] = "${DISTRO}"
do_cache_config[lockfiles] = "${REPO_BASE_DIR}/isar.lock"
@@ -14,17 +14,17 @@ do_cache_config[lockfiles] = "${REPO_BASE_DIR}/isar.lock"
# generated, this task should do nothing.
do_cache_config() {
if [ ! -e "${CACHE_CONF_DIR}/distributions" ]; then
- sed -e "s#{DISTRO_NAME}#"${DISTRO_SUITE}"#g" \
+ sed -e "s#{CODENAME}#"${BASE_DISTRO_CODENAME}"#g" \
${WORKDIR}/distributions.in > ${CACHE_CONF_DIR}/distributions
fi
- path_cache="${REPO_BASE_DIR}/${DISTRO_NAME}"
- path_databases="${REPO_BASE_DB_DIR}/${DISTRO_NAME}"
+ path_cache="${REPO_BASE_DIR}/${BASE_DISTRO}"
+ path_databases="${REPO_BASE_DB_DIR}/${BASE_DISTRO}"
if [ ! -d "${path_databases}" ]; then
reprepro -b ${path_cache} \
--dbdir ${path_databases} \
- export ${DISTRO_SUITE}
+ export ${BASE_DISTRO_CODENAME}
fi
}
diff --git a/meta/recipes-devtools/base-apt/files/distributions.in b/meta/recipes-devtools/base-apt/files/distributions.in
index cc82c57..6dcc5a6 100644
--- a/meta/recipes-devtools/base-apt/files/distributions.in
+++ b/meta/recipes-devtools/base-apt/files/distributions.in
@@ -1,3 +1,3 @@
-Codename: {DISTRO_NAME}
+Codename: {CODENAME}
Architectures: i386 armhf arm64 amd64 source
Components: main
--
2.16.4
next reply other threads:[~2018-11-12 8:34 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-12 8:34 Jan Kiszka [this message]
2018-11-14 3:17 ` 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=09c55855-cf3f-2ef3-ddfa-5dfc2b40e2d4@web.de \
--to=jan.kiszka@web.de \
--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