From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7075595997826514944 X-Received: by 2002:a17:90b:4a8a:b0:1e0:239c:fdcb with SMTP id lp10-20020a17090b4a8a00b001e0239cfdcbmr12213725pjb.31.1653316603039; Mon, 23 May 2022 07:36:43 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a17:90a:de04:b0:1e0:5cbc:73a5 with SMTP id m4-20020a17090ade0400b001e05cbc73a5ls1559078pjv.2.canary-gmail; Mon, 23 May 2022 07:36:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzeQdOYygJuNnN7VhjGML9trmp7TH+cxQYEIajssIHfcKSnwZ9SOAqFCKVhIwX9rP1uxivV X-Received: by 2002:a17:90a:8041:b0:1df:991f:df24 with SMTP id e1-20020a17090a804100b001df991fdf24mr27241962pjw.19.1653316602177; Mon, 23 May 2022 07:36:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653316602; cv=none; d=google.com; s=arc-20160816; b=QXuBpks6wPFCZnFZVyjA52s3oA5HD7Q60DM96L97cY2yeNBjoEIMruJZMKcJl3kLCQ mnfTlrOUrqnpuZlzpDHcaSyBJCFwWE0Ol7vkQBIn/ubXNQGuvZ1gPC5no2Kji7YR4kFw SultDZezdLU5avK5mEbVoWE1rVpaFJmbYiMlVVdCbA0S6TKFHb/K0V9aPt3HP9qYUQ+5 RNI/cOKrVsFbFKkkDSJFhCuqO+hGu5Lmn70MB2DPbNhF6Gc8HJiKHgf31UEU0UBphkxN KOLo2ycWa4fJ9Vsha1DLZ/brajBE7aLLqj/0/oF51LYgkC/Eg/egao12qw8S+uT1Qz/L cpPw== 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=r5GBkrH2jy/p5kGlI0vQmSbAwxybURzXCLpDhJwK4NHDg/rPqeLhm+CrgSvFrA3FGy WjDdFDJivjEsp8uxsqLRcvDYIzG7XyRHA0WrRPz5zPdCg3WqD0+F6drQvEInOh4724f6 8fr3s+qNFjlfSG/CBmH7ZeBtIxNnEilYBWoqe2STiXH7HmaJzkyQpcVivsFlqc5U5XP2 O4C2DCORPcUtLYczHOmvc4Wz9AGai1TqJ1F2K+WI0oq/squ7cCPbh6jM+HjtGz7HtAXU cq2tHEWIRlLP4UdtJ4o8ftlN2RNsfd/LWUFojDwOxTGbnuSRpZ840MtSr5ZvMYx2fD8m AVSA== 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 m3-20020a170902db0300b0015d06576cebsi332750plx.1.2022.05.23.07.36.41 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 23 May 2022 07:36:42 -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 24NEaO3a024879 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 23 May 2022 16:36:40 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Uladzimir Bely Subject: [PATCH v11 14/21] sbuild: Fixed proxy support Date: Mon, 23 May 2022 17:36:10 +0300 Message-Id: <20220523143617.24759-15-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: crKi5uHnH+U4 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