From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7075595997826514944 X-Received: by 2002:a05:6402:40cc:b0:416:d191:54fe with SMTP id z12-20020a05640240cc00b00416d19154femr2549641edb.380.1647492627687; Wed, 16 Mar 2022 21:50:27 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a17:906:b104:b0:6db:68d:9213 with SMTP id u4-20020a170906b10400b006db068d9213ls2376218ejy.0.gmail; Wed, 16 Mar 2022 21:50:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwDRXRmGdQ4cb3uAeOA0NzAHM4/GdhlRVcGAMTRCq9el7JiPXXziT0WnqFhRlcLuxDZVVA+ X-Received: by 2002:a17:906:6158:b0:6ce:61d6:f243 with SMTP id p24-20020a170906615800b006ce61d6f243mr2644166ejl.268.1647492626898; Wed, 16 Mar 2022 21:50:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647492626; cv=none; d=google.com; s=arc-20160816; b=YUlajNC4YCXZvrDBE41ymeSJxZ5EI0RYPKPjJmrElkR9Z5UCgpm/H99VPgFf199vl3 nqo+/dZAsL0LPWmF26hfMy/owaBRzIX0ZhsccnHpM31rYicGxlEsSxPElz3J/GH4bqM4 HM73IcUoaIp50rp/ln1O/R8VgBlOA8gEMC4q+bmMbipkBb09fk32FWfk9uiAnUG2MUn4 bwn0+aUtuIAHZh9PXG6pxjDcAhHsR1+Utxm5uBG4OHul6tWglb0mKaCJRD9zTxMqQ8v8 hWiLvXcBvypCXkSgrL/WnmeaEUcPSTRa1xASAt2ReO1lTldSqEBFN4eGxZstDwlv5QLO nMTA== 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=6QzRMNpCUh7WDyue4SjJzk9YEwoZHzq9efdtVZUBZp4=; b=YC2J2lWvX59dsTFlCTVWvTF4wN3GH1MTy13liHsnXSzWz7det693NQwOufJ0INrzSe 67Cpv54Mx3/2+/XUg6+lWcd7oogvZW7h4kun/rHzTddWPbQTW5g/3Lvux1fCSOxzmWoK HIzjwG1yUCUUZepYHObAzMiG5mGr8+HWcUgugn+sZG/8vQFJQb+8lW4BqpgunHvo9KKY 8mNk3EQYTtuL1VPNBMXb9PBIipiRQnRSl9qybxXK3WDcZZ322A3T5uOPInCOPt/K6poO GQkkPFHzCjnQkvJmL7mwJrZj8KaraX5KJKbgq3CqaswaAfWSnzr6a/Xo0BuUvx4PEbeU GsWA== 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 s11-20020a056402520b00b004162c540122si183969edd.4.2022.03.16.21.50.26 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 16 Mar 2022 21:50:26 -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 22H4oLHl025716 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 17 Mar 2022 05:50:26 +0100 From: Uladzimir Bely To: isar-users@googlegroups.com Subject: [PATCH v8 14/16] sbuild: Fixed proxy support Date: Thu, 17 Mar 2022 05:50:19 +0100 Message-Id: <20220317045021.4018-15-ubely@ilbers.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220317045021.4018-1-ubely@ilbers.de> References: <20220317045021.4018-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: Lmu53wvyuU1d 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 01676f5e..e879bf9c 100644 --- a/meta/classes/dpkg-base.bbclass +++ b/meta/classes/dpkg-base.bbclass @@ -105,6 +105,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 da3b3ede..126a4ee4 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 f7c93bbe..7a732da5 100644 --- a/meta/classes/sbuild.bbclass +++ b/meta/classes/sbuild.bbclass @@ -99,16 +99,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} } schroot_install() { -- 2.20.1