From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7075595997826514944 X-Received: by 2002:a6b:3f03:0:b0:65a:4236:bb3e with SMTP id m3-20020a6b3f03000000b0065a4236bb3emr10308399ioa.194.1653316595328; Mon, 23 May 2022 07:36:35 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6e02:198e:b0:2cf:523a:fcf5 with SMTP id g14-20020a056e02198e00b002cf523afcf5ls1884531ilf.7.gmail; Mon, 23 May 2022 07:36:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwG+G6P3b9lL++I+URsmBOcmbV/vlAsm70yhdS8RvS5Kk1tKLPwzf0tUpwBNrcDZQLQu3vb X-Received: by 2002:a05:6e02:1a8b:b0:2d1:ab13:6e1c with SMTP id k11-20020a056e021a8b00b002d1ab136e1cmr2625721ilv.184.1653316594872; Mon, 23 May 2022 07:36:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653316594; cv=none; d=google.com; s=arc-20160816; b=wXUUqKcyP2vN+3PQatiJMEsIZSL0EySZ672vof6uI7ebWzMFKszAHCHLxYrpHIWqHA apDVVCXiDOY/Or+5Htn2g2CjE7euMyOSDPQaH58PMmORYDe+KWJxAee/jHlbtyEJ4x3R 0TrZN6XyoRh1g1X5xc/pcXdVU7I2tDUIlQRJWjR+8W1KD3dVUQnm81DvAV/1tPywH8+u eX1tfYoDKcRLfUdW6Tv+3m8MFGmL0TIHeXlSjKo/Pt6INkUYC223yk1lg0zBrhvCc4tU NyiQvPjDVo+lCVWpF4hUdKyA7926IGBRsTxkDy17kJMe8JHANIc3rhvmrt5EW0B7AvMw noCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from; bh=WXysfftbOpy2EkWRwuxT4XIkA+sHaxlhHJS9SLmevZ4=; b=Zq9MHpzBRpDWJ92UQV57nNuKkBsX4FVZeMk9cacB/f+Gw6rudIlLRd54Z5Y6vBRraz kQsLV5ipEPwrNhJZjgZ/7lqjrN/fU2Mxd9qcyQpN4McIgmVAlTOqbJaL4N2T2FKGpPx4 ZRj6K93kQKbjMKGlpZfdWXuxBHnj7bHvJIMW7tJVDRaN1J6uhrHtC9BMddYtoVl0RKVu kjx6Yu2K7uyN/kOM7zno3HbKSYVU7nCNfz7Oy7ZZrRslNMjSQhovW+fterXLGcPJ6Yne Sbyi9WT585mX4SHdeKvHzlHC187ErH9dbysPD8xWGcLjH9xjsKD2KJ6gZow0KzQX6RbK 3eqQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id y21-20020a02c015000000b0032b603bf16esi681043jai.2.2022.05.23.07.36.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 23 May 2022 07:36:34 -0700 (PDT) Received-SPF: pass (google.com: domain of amikan@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 amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Received: from localhost.localdomain (mm-40-50-214-37.mgts.dynamic.pppoe.byfly.by [37.214.50.40] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id 24NEaO3T024879 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 23 May 2022 16:36:33 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Uladzimir Bely Subject: [PATCH v11 07/21] sbuild: Support of shell exports from dpkg_runbuild_prepend Date: Mon, 23 May 2022 17:36:03 +0300 Message-Id: <20220523143617.24759-8-amikan@ilbers.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220523143617.24759-1-amikan@ilbers.de> References: <20220523143617.24759-1-amikan@ilbers.de> 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: wpjkK1r7Pwlp From: Uladzimir Bely 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 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