From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7057122428766388224 X-Received: by 2002:a05:6512:138f:: with SMTP id p15mr4461362lfa.597.1644475584841; Wed, 09 Feb 2022 22:46:24 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:3b0e:: with SMTP id f14ls2371637lfv.0.gmail; Wed, 09 Feb 2022 22:46:24 -0800 (PST) X-Google-Smtp-Source: ABdhPJzWapI4IEGyad1L0N7P6FAQneUvJpQnmLBKqhHqa4101jmdpSjIotRRK+c9nxvQewQqHJ/3 X-Received: by 2002:a05:6512:1154:: with SMTP id m20mr4452705lfg.221.1644475583935; Wed, 09 Feb 2022 22:46:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644475583; cv=none; d=google.com; s=arc-20160816; b=Uatfq/5ytWbUBJP9wmnJvCgUWAQ77hyVBv0mh4/aVhtOJpvOhW9fjEfss2f2zrlgVv vwjqZWO4RNI9X/yyXOMfQO+L0z4OtrrKPPOM7MzcU7+zeB72DxiWkKevwprQWTL/QAYX zwHZG5Zp6BhWtfg0wAe7z9npExq+OcddUyJGphIPXpvyUHdmJa9x9TVCsXRjcB/t3Ndc ck8Z6mYfDVuDl//BlAvjclBdov4T+qBikOOlKu7onw5yXfuzmyDUUoXRSHwcgLuH1cSP z6U82JsYQAlR599YrbBQbcnmgEpoByDR8qeMnHvbvInK6Stm56y7VRpyD17bnUNhnmDo 0/9g== 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=cCvjE9kvPT/7BtmBZgjOfTxt+HRt+4+ZvDHheNrgv5v8ohQnz1BEXHgwg+Tu9xvpfA E7UfMkG69j3BPSwPvywimbMJIn95UAbdqs1LOu9ozZZrg0bG8SM29fYcgdPA42k3OD1w 6xC9t+cPUvIF4Fn+wGtw+meeViJzabVRW0BH9yPEmcXrvqcq7MzFA7/QkBMJpwnDhSMM MSK/Uk2FGexGgR8352WHI+pLhR9yTyrH33a1T3Eomd7P/GLOg+BJ91bKEtj2+Eel6rcY 14HB25PeRJzrwmw/bz4KvXzrvxVYET9R/hhGgXjGnA2SR7FTQ3CoG+9kMtwpFQqYOqTe Ik/Q== 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 x16si105530ljp.6.2022.02.09.22.46.23 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 09 Feb 2022 22:46:23 -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 21A6kKr9028169 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 10 Feb 2022 07:46:23 +0100 From: Uladzimir Bely To: isar-users@googlegroups.com Subject: [PATCH v6 07/12] sbuild: support of shell exports from dpkg_runbuild_prepend Date: Thu, 10 Feb 2022 07:46:15 +0100 Message-Id: <20220210064620.4392-8-ubely@ilbers.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220210064620.4392-1-ubely@ilbers.de> References: <20220210064620.4392-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: XdQtRXJIr/o8 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