From: Anton Mikanovich <amikan@ilbers.de>
To: isar-users@googlegroups.com
Cc: Uladzimir Bely <ubely@ilbers.de>
Subject: [PATCH v11 07/21] sbuild: Support of shell exports from dpkg_runbuild_prepend
Date: Mon, 23 May 2022 17:36:03 +0300 [thread overview]
Message-ID: <20220523143617.24759-8-amikan@ilbers.de> (raw)
In-Reply-To: <20220523143617.24759-1-amikan@ilbers.de>
From: Uladzimir Bely <ubely@ilbers.de>
Many of recipes often use shell exports done in dpkg_run_prepend.
While sbuild is performed in isolated environment, we need a way to pass
these exported variables to it. This is done by storing environment just
before dpkg_runbuild (after prepare_build) and finding just before
the actual build what has been changed or added.
This patch allows using shell exports, but warning will be produced.
It's recommended to modify the code (in downstreams) and replace shell
exports by other methods, like using templates.
Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
---
meta/classes/dpkg.bbclass | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass
index 218c7e8..05b46c9 100644
--- a/meta/classes/dpkg.bbclass
+++ b/meta/classes/dpkg.bbclass
@@ -32,6 +32,12 @@ do_install_builddeps[lockfiles] += "${REPO_ISAR_DIR}/isar.lock"
addtask devshell after do_install_builddeps
+DPKG_PREBUILD_ENV_FILE="${WORKDIR}/dpkg_prebuild.env"
+
+do_prepare_build_append() {
+ env > ${DPKG_PREBUILD_ENV_FILE}
+}
+
# Build package from sources using build script
dpkg_runbuild() {
E="${@ isar_export_proxies(d)}"
@@ -39,6 +45,26 @@ dpkg_runbuild() {
export DEB_BUILD_OPTIONS="${@ isar_deb_build_options(d)}"
export PARALLEL_MAKE="${PARALLEL_MAKE}"
+ env | while read -r line; do
+ # Filter the same lines
+ grep -q "^${line}" ${DPKG_PREBUILD_ENV_FILE} && continue
+ # Filter some standard variables
+ echo ${line} | grep -q "^HOME=" && continue
+ echo ${line} | grep -q "^PWD=" && continue
+
+ var=$(echo "${line}" | cut -d '=' -f1)
+ value=$(echo "${line}" | cut -d '=' -f2-)
+ sbuild_export $var "$value"
+
+ # Don't warn some variables
+ [ "${var}" = "PARALLEL_MAKE" ] && continue
+ [ "${var}" = "CCACHE_DIR" ] && continue
+ [ "${var}" = "PATH_PREPEND" ] && continue
+ [ "${var}" = "DEB_BUILD_OPTIONS" ] && continue
+
+ bbwarn "Export of '${line}' detected, please migrate to templates"
+ done
+
profiles="${@ isar_deb_build_profiles(d)}"
if [ ! -z "$profiles" ]; then
profiles=$(echo --profiles="$profiles" | sed -e 's/ \+/,/g')
--
2.17.1
next prev parent reply other threads:[~2022-05-23 14:36 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-23 14:35 [PATCH v11 00/21] Sbuild/Schroot migration Anton Mikanovich
2022-05-23 14:35 ` [PATCH v11 01/21] dpkg-gbp: Use separate command to export tarball Anton Mikanovich
2022-05-23 14:35 ` [PATCH v11 02/21] dpkg-gbp: Use host tools for dsc preparation Anton Mikanovich
2022-05-23 14:35 ` [PATCH v11 03/21] sbuild: Add recipes for host and target rootfs to run sbuild Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 04/21] sbuild: Introduce a class for another build method Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 05/21] dpkg: Build packages with sbuild Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 06/21] sbuild: Support of DEB_BUILD_PROFILES Anton Mikanovich
2022-05-23 14:36 ` Anton Mikanovich [this message]
2022-05-23 14:36 ` [PATCH v11 08/21] dpkg: Remove builddeps install task Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 09/21] sbuild: Add ccache support Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 10/21] dpkg-base: Switch devshell to use schroot Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 11/21] dpkg-base: Switch apt_fetch and apt_unpack " Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 12/21] doc: Add sbuild-related documentation Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 13/21] sbuild: Use .dsc file instead of source directory Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 14/21] sbuild: Fixed proxy support Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 15/21] sbuild: Fix debsrc_download for packages dependencies Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 16/21] fix: support build of packages with epoch version Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 17/21] always create apt-cache dirs in deb_dl_dir_import Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 18/21] avoid absolute SCHROOT_* paths to improve caching Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 19/21] dpkg-base: Cleanup on schroot fail Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 20/21] locate generated binary package in WORKDIR Anton Mikanovich
2022-05-23 14:36 ` [PATCH v11 21/21] sbuild: Add changelog entry Anton Mikanovich
2022-05-23 14:41 ` [PATCH v11 00/21] Sbuild/Schroot migration Anton Mikanovich
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=20220523143617.24759-8-amikan@ilbers.de \
--to=amikan@ilbers.de \
--cc=isar-users@googlegroups.com \
--cc=ubely@ilbers.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