From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7114179385042665472 X-Received: by 2002:a2e:9191:0:b0:25a:8858:f60d with SMTP id f17-20020a2e9191000000b0025a8858f60dmr8404250ljg.423.1656398972850; Mon, 27 Jun 2022 23:49:32 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:8ec4:0:b0:25a:a013:4f2b with SMTP id e4-20020a2e8ec4000000b0025aa0134f2bls1571855ljl.3.gmail; Mon, 27 Jun 2022 23:49:31 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tX7F1SERqNxyRBZ5vXFhzC4ERXGwlMRUTsDjtzbguUDCSdcsGJeGplsGzk+1UhI/lLfXqZ X-Received: by 2002:a2e:9656:0:b0:25a:7584:b095 with SMTP id z22-20020a2e9656000000b0025a7584b095mr8265743ljh.17.1656398971781; Mon, 27 Jun 2022 23:49:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656398971; cv=none; d=google.com; s=arc-20160816; b=CWGjuVYX6DEF6CQSnHY2Np+2vfp9cA3S+OVMWBmMcyKZkiES5tNCy+jVRPZGSCditc KlzSF8vWAgEbBAmo0BMhORiocvgL+XYRqGdBIF9d+nPB5zefj7PPU6Cb/gCk15W5nYHP l0Y4kgvRvZzTs9pLzD7RRTksjbMB1JIfxrpBVHDCokJTSZcF4NyZ+ij4aWjxJWF1uCXj UC3zHH3Jk4qDV1dByyD/eTFum+Kr0AFcOkFCkgsiKn/MT97afqYXruL9Q0nQWe090Nq0 DeUAqgnkMvMsoB2hPDNkDGYkOP5wp9H5pFiIjfQH+cV2ZJgFI3dvA6NsoQ2Y3VmHaol/ bNlg== 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=oTz5HY3L9jQngrlm/+4cykSOFnW9GKGSUsudDKrrS2Sjpz063Y8ESMOYgcvcyDlvU1 E/OFN3c/61zQja8YDnOIgfTLtKWUmfi5XpFt3abqZj4u9GAQ3nnZp5Rn0jGE5moFB0yk bv0wL7LTIfGelREzn5Av4xzLAC5fC4fkPGRs2uxBd6Nwi2ZMnuBhIqqp1ubVZlVb+7E5 XfGWhosUUQdVCVDRgqtMIL8IouQDMBDZ+T7DN9xzs191POrYV6Cglbssf2/vgm+cXbzB 0k+jWoqQ18bq2HgP1/iT22jSIpFYlB9SPwS+DArIC+fb6531Cxb5QJngvphUQRdlAIrs clPA== 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 h24-20020a2ea498000000b0025a70508721si482179lji.7.2022.06.27.23.49.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jun 2022 23:49:31 -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-172-27-214-37.mgts.dynamic.pppoe.byfly.by [37.214.27.172] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 25S6nMSB030758 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 28 Jun 2022 08:49:31 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Uladzimir Bely Subject: [PATCH v12 07/21] sbuild: Support of shell exports from dpkg_runbuild_prepend Date: Tue, 28 Jun 2022 09:48:59 +0300 Message-Id: <20220628064913.27938-8-amikan@ilbers.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220628064913.27938-1-amikan@ilbers.de> References: <20220628064913.27938-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: iWa47sR7j3Co 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