From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7114179385042665472 X-Received: by 2002:a05:6000:1446:b0:218:5a5d:6cb5 with SMTP id v6-20020a056000144600b002185a5d6cb5mr15863336wrx.629.1656398980235; Mon, 27 Jun 2022 23:49:40 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:4ec7:b0:39c:871d:313f with SMTP id g7-20020a05600c4ec700b0039c871d313fls4423510wmq.2.canary-gmail; Mon, 27 Jun 2022 23:49:39 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uBlsxaNppTqyrl0GYW8EgmOcvBtDay3gJyuz4ehPeNV6zGqEOdm9UwRMxiKYCVf4IE9Z8C X-Received: by 2002:a05:600c:4f84:b0:39c:9897:5295 with SMTP id n4-20020a05600c4f8400b0039c98975295mr20254911wmq.158.1656398979304; Mon, 27 Jun 2022 23:49:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656398979; cv=none; d=google.com; s=arc-20160816; b=YzVhO4ZqvnaoZJjOQpxXktYmrFXqURXwAfW6XNho3kzfRyCmbGxtdum8SjZhpMsgNd mM7Ust911ExT+r7/eeUnAoLQ7jYtzYagddG2M1oq15hxLOitto+woTNOa3uQB1dc+2Oo s1M3F3e3PkWIhJexFlJKlkQFrvTrQIRHXrEabMEtyWLmhYXBshypfSPmTrqWqhIsIlJu QY4TrJipGqqE+iCKl9QN4BhlVokqauUwCuIOuAvlOEz4IAYs5jFXqvv/pcZ2i0OjmYon xgqfk/j1qqd95uXQl4Qvk2r1oDyWGVLcx1npneEP89F73Zlir67/FuE2zyB2rcnGsCbB xqGA== 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=eEO2Opi7mD7bjL7q4kc660MqMAItWSv4JZS5jln2JWo=; b=BZcdzJHIa+RWhsiKZr8JNuTIbW5l01SuWy8k2v/ZDiTp/fAb7vPNXnvnM/XXxuS7dN Yl6+efOC3SqY9tDbLE6d+RQfrE7LrXq+q0wRTylhVPj66dk2SECBSVqI4qErUXoVnG0e DUx3OzXY0uH5IAdbX0G13k18m1fsHXa6PzwvbXnL2/xFBX2EH1zrvpxT3Yjwto2XN9iz eeu1GrWCnXuDJym72dauTRVWVqHnEZ2nS8Sd1VhepqvMm2ZyOiun8FhGNYas2woSYXj0 dWi7ZCxkI9GMx7qsZHsJgEOSLX7Q8QOizpS6Q4Mf0HAEgapLxaD3OpdH8iUdJTPsMx3Y ozZw== 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 i17-20020a7bc951000000b0039c903985c6si705699wml.2.2022.06.27.23.49.39 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jun 2022 23:49:39 -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 25S6nMSI030758 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 28 Jun 2022 08:49:38 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Uladzimir Bely Subject: [PATCH v12 14/21] sbuild: Fixed proxy support Date: Tue, 28 Jun 2022 09:49:06 +0300 Message-Id: <20220628064913.27938-15-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: ljPyFSJG/wVC From: Uladzimir Bely This makes sbuild able to work via proxy. Proxy settings passed via 'sbuild_export' seem to work only for build stage in sbuild. Previous stages (like schroot setup, downloading deps) don't use this values. To work via proxy in this stages there should be environment filter for sbuild set via sbuild.conf. Signed-off-by: Uladzimir Bely --- meta/classes/dpkg-base.bbclass | 1 + meta/classes/dpkg.bbclass | 14 ++++++++++++++ meta/classes/sbuild.bbclass | 31 ++++++++++++++++++++++++------- 3 files changed, 39 insertions(+), 7 deletions(-) diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass index 87dc3f7..7948b23 100644 --- a/meta/classes/dpkg-base.bbclass +++ b/meta/classes/dpkg-base.bbclass @@ -104,6 +104,7 @@ python() { } do_apt_fetch() { + E="${@ isar_export_proxies(d)}" schroot_create_configs for uri in "${SRC_APT}"; do schroot -d / -c ${SBUILD_CHROOT} -- \ diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass index 564e654..d8c4dd8 100644 --- a/meta/classes/dpkg.bbclass +++ b/meta/classes/dpkg.bbclass @@ -35,6 +35,15 @@ dpkg_runbuild() { [ "${var}" = "PATH_PREPEND" ] && continue [ "${var}" = "DEB_BUILD_OPTIONS" ] && continue + [ "${var}" = "http_proxy" ] && continue + [ "${var}" = "HTTP_PROXY" ] && continue + [ "${var}" = "https_proxy" ] && continue + [ "${var}" = "HTTPS_PROXY" ] && continue + [ "${var}" = "ftp_proxy" ] && continue + [ "${var}" = "FTP_PROXY" ] && continue + [ "${var}" = "no_proxy" ] && continue + [ "${var}" = "NO_PROXY" ] && continue + bbwarn "Export of '${line}' detected, please migrate to templates" done @@ -59,6 +68,11 @@ dpkg_runbuild() { export SBUILD_CONFIG="${SBUILD_CONFIG}" + for envvar in http_proxy HTTP_PROXY https_proxy HTTPS_PROXY \ + ftp_proxy FTP_PROXY no_proxy NO_PROXY; do + sbuild_add_env_filter "$envvar" + done + echo '$apt_keep_downloaded_packages = 1;' >> ${SBUILD_CONFIG} # Create a .dsc file from source directory to use it with sbuild diff --git a/meta/classes/sbuild.bbclass b/meta/classes/sbuild.bbclass index 2d52307..7d24c47 100644 --- a/meta/classes/sbuild.bbclass +++ b/meta/classes/sbuild.bbclass @@ -76,16 +76,33 @@ schroot_delete_configs() { EOSUDO } +sbuild_add_env_filter() { + [ -w ${SBUILD_CONFIG} ] || touch ${SBUILD_CONFIG} + + if ! grep -q "^\$environment_filter =" ${SBUILD_CONFIG}; then + echo "\$environment_filter = [" >> ${SBUILD_CONFIG} + echo "];" >> ${SBUILD_CONFIG} + fi + + FILTER=${1} + + sed -i -e "/'\^${FILTER}\\$/d" \ + -e "/^\$environment_filter =.*/a '^${FILTER}\$'," ${SBUILD_CONFIG} +} + sbuild_export() { - VAR=${1}; shift - VAR_LINE="'${VAR}' => '${@}'," - if [ -s "${SBUILD_CONFIG}" ]; then - sed -i -e "\$i\\" -e "${VAR_LINE}" ${SBUILD_CONFIG} - else - echo "\$build_environment = {" > ${SBUILD_CONFIG} - echo "${VAR_LINE}" >> ${SBUILD_CONFIG} + [ -w ${SBUILD_CONFIG} ] || touch ${SBUILD_CONFIG} + + if ! grep -q "^\$build_environment =" ${SBUILD_CONFIG}; then + echo "\$build_environment = {" >> ${SBUILD_CONFIG} echo "};" >> ${SBUILD_CONFIG} fi + + VAR=${1}; shift + VAR_LINE="'${VAR}' => '${@}'," + + sed -i -e "/^'${VAR}' =>/d" ${SBUILD_CONFIG} \ + -e "/^\$build_environment =.*/a ${VAR_LINE}" ${SBUILD_CONFIG} } insert_mounts() { -- 2.17.1