From: "Maxim Yu. Osipov" <mosipov@ilbers.de>
To: Jan Kiszka <jan.kiszka@web.de>, isar-users <isar-users@googlegroups.com>
Subject: Re: [PATCH] base-apt: Fix distro and codename retrieval
Date: Wed, 14 Nov 2018 06:17:05 +0300 [thread overview]
Message-ID: <72bec65a-8c9e-dc02-448a-0a0efb3ef77f@ilbers.de> (raw)
In-Reply-To: <09c55855-cf3f-2ef3-ddfa-5dfc2b40e2d4@web.de>
On 11/12/18 11:34 AM, Jan Kiszka wrote:
> 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.
Applied to the 'next',
Thanks,
Maxim.
> 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
>
--
Maxim Osipov
ilbers GmbH
Maria-Merian-Str. 8
85521 Ottobrunn
Germany
+49 (151) 6517 6917
mosipov@ilbers.de
http://ilbers.de/
Commercial register Munich, HRB 214197
General Manager: Baurzhan Ismagulov
prev parent reply other threads:[~2018-11-14 3:17 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-12 8:34 Jan Kiszka
2018-11-14 3:17 ` Maxim Yu. Osipov [this message]
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=72bec65a-8c9e-dc02-448a-0a0efb3ef77f@ilbers.de \
--to=mosipov@ilbers.de \
--cc=isar-users@googlegroups.com \
--cc=jan.kiszka@web.de \
/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