From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7075595997826514944 X-Received: by 2002:a5d:4f8b:0:b0:20c:6970:fb3c with SMTP id d11-20020a5d4f8b000000b0020c6970fb3cmr14068875wru.554.1651761599168; Thu, 05 May 2022 07:39:59 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:3590:b0:393:e880:6531 with SMTP id p16-20020a05600c359000b00393e8806531ls2336235wmq.1.canary-gmail; Thu, 05 May 2022 07:39:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyLxQxsyxSqU3SoDSOz8S4Dtdu5anwGMWnFG3f4WgMIk6XMDRBS5ZJTpv79kaEMcxwF5578 X-Received: by 2002:a7b:c341:0:b0:37b:ed90:7dad with SMTP id l1-20020a7bc341000000b0037bed907dadmr5253264wmj.138.1651761598251; Thu, 05 May 2022 07:39:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651761598; cv=none; d=google.com; s=arc-20160816; b=o8kIZbz03GiG1r0mbG+Q51ZIWUAwiqVsJktc7WTL1QklNSqxHMTUIo81B2UDS51pxm YLJzF3/zAb3y54nK9cImgESf5dLbbRACxvBSEsyBqGBIN/TxM1boxy7rsxwEQRiPXii2 /8X4kGGAZ3eP4HVImgE/QlR9HPrUWrIeukd/Qoqb15wUvOgE1pjiokJuADykfjyEI9Mx m9dHxZ9UJNeD2MhIlDIDH/vVbcQ5Hq8OTPxGOjY7AbbjvTdbpEbgTJlsyVpGyMw4NKB0 LIjXcXX4wE1nCbBaeIYdU2pFA+IMQE7g2nmXQk055LHo8IZ6TNnBWHdqhzUop7vEsx5X azQQ== 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=02I0i+0vnnXlRc9rmH1P/jfLqLHu9my8kwoduaqYTHI=; b=XCuNFuwWx0JDib2XBaCWMw6aYnKodcZDEWIbKHXuHaND7s5WclC1D+AOOE/r2dZ8gm ghO8w5kIvGm3URHqCkx7wBDBbyiXoKd8W6Zgz0DJ5DlQu3F2EdPn5nfTS6x2gQNpOO7/ 2v4JulIICgqqCO7FNbk1qEyn0boc+iN3EwcEgCQ1I2ozOrL9us1Av3DGiIp1Ha+78mu8 puLvFbxlYpfM0P4kb2Bml1PM2AVfRrxYt++JoqVlpzgLqv+JVhRVBuEWJDVXBTwElr+g 55huWjQ1cCaVwIRE0rgiM332evyXVHMNblomclbT8e64Dehuvl8Ms8jDpfW741h1k6Xm Dx2w== 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 a11-20020a05600c348b00b00393eb6edf83si128179wmq.0.2022.05.05.07.39.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 05 May 2022 07:39:58 -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-0-74-214-37.mgts.dynamic.pppoe.byfly.by [37.214.74.0] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id 245Edf7g014026 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 5 May 2022 16:39:57 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: adriaan.schmidt@siemens.com, Uladzimir Bely Subject: [PATCH v10 14/19] sbuild: Fixed proxy support Date: Thu, 5 May 2022 17:39:29 +0300 Message-Id: <20220505143934.16096-15-amikan@ilbers.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220505143934.16096-1-amikan@ilbers.de> References: <20220505143934.16096-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: Tw5hHhZJzs7Z 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 01676f5..e879bf9 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 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