From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7075595997826514944 X-Received: by 2002:a2e:6e0b:0:b0:247:f07d:ed69 with SMTP id j11-20020a2e6e0b000000b00247f07ded69mr19410268ljc.381.1647415579368; Wed, 16 Mar 2022 00:26:19 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:80d5:0:b0:247:df0a:13df with SMTP id r21-20020a2e80d5000000b00247df0a13dfls204930ljg.9.gmail; Wed, 16 Mar 2022 00:26:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxEbZ1hRe7JoRGzBFH7F3m4GOm+lF3MFrn0wDtX+9XUCYFuQ7+22BLO1/pLbI38M70xe9zw X-Received: by 2002:a2e:8686:0:b0:248:545:ebfd with SMTP id l6-20020a2e8686000000b002480545ebfdmr18754788lji.50.1647415578445; Wed, 16 Mar 2022 00:26:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647415578; cv=none; d=google.com; s=arc-20160816; b=UCYxeQiIQXShGyrsxsaNmIUuMLWfrMqHF2C7ejZNxJGat9b53cCiHnHfniE7b+ObYR UdcvxUrrT6xtCvQtL/4NXhPkcR/xrhuDPIJRzCsm0UuXjuC8VVtvNHoBwh+crENlKUTb crJxGTprY0+OrY9mNnSpdr25MMv2bkkfX7MJ2hT3q7S5GtapMbPc7jPkVdaZhnDWxN91 die7HIFNYXwXDes6fsiaNYiK1yk1gL7FS9c3cJBNoiMMJM29mA+T37+F4figIeNOBV9c WYsKYOoorZyNtgf0RwHmRiHMr4+dZh619ud4KX8E1S2r336PAmYzNQ3+WTvaaFacGuum I0cA== 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=GygOy62VV57JeydHhe78KeMiq4l9wjwDWLv63nvFG8U=; b=jBYNaIyYh18YtvbVE8kOaLRRxkn6Lch0d88JlvMVMYuLXqL55zMUw70MOBgU6Cp6SL grnPLJ9/6NyETor0OL5H+6zYqRKGkwKe0lfHRMkWwdmrDpcejtZGmw0xMi1EWfXTsmsj jQ1/xzteKmPFEwb1XWGH5sb99CH3QWkh48goTalV66aOcmf+5YX6jhlxEA/LznOwfapG o7Y82NC6xdh66IMBBCMsq2WhMRnnGOFr32beKcgkgeG/j7beAPWJSow+Y4qkNs796s4a fvzmEjPo0d5c8rvTYMD9clY8eh3JxwsM008eYunMbv/zDSO/Cg9T9uz3dLZU2a8UcGCB 8xUw== 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 i25-20020a0565123e1900b00448391a7e7bsi63706lfv.6.2022.03.16.00.26.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 16 Mar 2022 00:26:18 -0700 (PDT) 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 22G7Q7dl021517 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 16 Mar 2022 08:26:17 +0100 From: Uladzimir Bely To: isar-users@googlegroups.com Subject: [PATCH v8 07/15] sbuild: Support of shell exports from dpkg_runbuild_prepend Date: Wed, 16 Mar 2022 08:25:59 +0100 Message-Id: <20220316072607.20518-8-ubely@ilbers.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220316072607.20518-1-ubely@ilbers.de> References: <20220316072607.20518-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: weeZpWB5YUTo 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 | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass index 1f795c75..b61d182d 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.20.1