From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7057122428766388224 X-Received: by 2002:a5d:5917:: with SMTP id v23mr7245355wrd.350.1644738304181; Sat, 12 Feb 2022 23:45:04 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:3b20:: with SMTP id m32ls199295wms.3.canary-gmail; Sat, 12 Feb 2022 23:45:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJxsSVGjDPTvBIZYy5z66sbXjUqn++KpDgTp/I0iBB5hpG2VevNObzmrCsA0MUfY1nwls2xE X-Received: by 2002:a05:600c:4fcf:: with SMTP id o15mr6468710wmq.145.1644738303260; Sat, 12 Feb 2022 23:45:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644738303; cv=none; d=google.com; s=arc-20160816; b=T1+bXuliTlnQSZB0pwHA3uhJw3bwF3uT3AgygUGUiuXm5IgvIxVhVor2ndfKcP3ASh NTElqKxP4pHXO2JlGk7PyyOoY6CIc4INYkbxU1U+8SO7t7J26023lvV5YkzElh60gzO+ nr/cL6aDIwV9IbqL3GXWF4ogcHbSubcMKsBvEVjH3/1YYKwX2WzQATuB+6V1oo3ENkY6 6XL+/Y8v82RPkysOjefjOiXXrtX64Z6z2F24N60Ma6RaMMC9NYwUnB9Y/gfjiSClj8h8 KdxAoDSgS5S0dHLaA+3kPMhPNKBQdmTA9GwXiZCWZPww+a2TXRgnrNYh4G/LRGoQkQ8q MGzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from; bh=AVeW0kZ73yDbVCRACXznQR/4szImeESRjerEH2tf/Mc=; b=PLRvsNfK8EisYCsAm9ho1zu4dGTZzzyYSSspEeMWB7HTfSYxSajRkFcXI46tuveoQJ XfMULLw8kdFHj8baAtBQbilg72kfeuGq5HAUO3/wzj5Lt3F5yYtGRc6y+nvGor1ZeQtD WV7w2Fd1f3EWxtm0cQDqSsT7+ZAON10IuiOOxUu9hTwAslknDxVoeFz3Lvdu4FjgKBdo 4W7oJ7YGQ08kvBu8OR879tfSOmEoDtimIfH5JEmNuI95tCq8+EUMxjNn7/IpP7fI6ty6 uqZYr/ta+mx/7K2MS0PUF0+TdO+5IYnBPnT0fzNplfrEvFj9eFCpjz4FLzOnihK9dMbr ii0A== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id v13si302957wro.0.2022.02.12.23.45.03 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sat, 12 Feb 2022 23:45:03 -0800 (PST) Received-SPF: pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Received: from baighyz.m.ilbers.de (host-80-81-17-52.static.customer.m-online.net [80.81.17.52]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id 21D7j0BZ010453 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Sun, 13 Feb 2022 08:45:02 +0100 From: Uladzimir Bely To: isar-users@googlegroups.com Subject: [PATCH v7 07/13] sbuild: support of shell exports from dpkg_runbuild_prepend Date: Sun, 13 Feb 2022 08:44:53 +0100 Message-Id: <20220213074459.24200-8-ubely@ilbers.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220213074459.24200-1-ubely@ilbers.de> References: <20220213074459.24200-1-ubely@ilbers.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: aP3oafO3yZil 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 --- meta/classes/dpkg.bbclass | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass index 5511de64..82a722df 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)}" @@ -40,6 +46,27 @@ dpkg_runbuild() { export DEB_BUILD_PROFILES="${@ isar_deb_build_profiles(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 + [ "${var}" = "DEB_BUILD_PROFILES" ] && continue + + bbwarn "Export of '${line}' detected, please migrate to templates" + done + profiles=$(grep "DEB_BUILD_PROFILES" ${SBUILD_CONFIG} | tail -n1 | cut -d "'" -f 4) if [ ${ISAR_CROSS_COMPILE} -eq 1 ]; then profiles="${profiles} cross nocheck" -- 2.20.1