From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7075595997826514944 X-Received: by 2002:a2e:a239:0:b0:247:ee8e:b891 with SMTP id i25-20020a2ea239000000b00247ee8eb891mr18390445ljm.385.1647415581736; Wed, 16 Mar 2022 00:26:21 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:1509:0:b0:249:20e5:8215 with SMTP id s9-20020a2e1509000000b0024920e58215ls204069ljd.10.gmail; Wed, 16 Mar 2022 00:26:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyJNmFqNLKTOawlx2B38Ha3onb+JkZIRXIVHf5u6oKv0C6LHHclQ/2cd6gyWAhn5P8/0xV9 X-Received: by 2002:a05:651c:1a14:b0:249:3670:a705 with SMTP id by20-20020a05651c1a1400b002493670a705mr9050697ljb.89.1647415580790; Wed, 16 Mar 2022 00:26:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647415580; cv=none; d=google.com; s=arc-20160816; b=cMDfhmBsR+/OrS/4AU3Pfe1AnWEAN6SPpM1JGmV7NBf0eQ/1Lms9lDAx1fpd/zwIt4 g+LeVAV/1q0c5aZ17z9hrKnQQYSofTtxFZ0iGR14VEMDM3/tD75vuxGxJfSJnfFaD6+/ ZbCrtq2YqhbYWiS+oI3muHpG9rgx8eOTfHi1bUf9gaE4cLsitZamxG0YFeKN0W4wCkbB 25H3GRrMZX/r0MVT6M2dITme6drtr66G6Zuvr2mpd+81HE2ciD0UAqRoUxSC9klfCWiI EvH3MJ0OO030Lwby4xbgSJdcbtYNWEXcn7WQQ8kvh2CzswUYQQBkKhSWn/sGcKbOAycS BAbg== 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=rq0qEbVYXgEYjfbnVppi5wPQ9yeMYVhpGH8fahn/u1etBhB84/OwiI+7pqWySkD8y7 yACViO2df+ue6GRQrW/l8ICblZfhB9FgFhgr6epK0K5xHIqtvc+4QWRpzGr3hnGAGnga TGGLE3BHBDkzGPiWDGjWLzhmaRB25x7RSg7ROZlfdeRkweGoEd99RkscdJOEkjYIbnFJ 6KIfQJsiEqbDcSQrXKROtG0tAf1F7k5YzE23YO9haq7NC2n9W/QMGfJLOx9CtpCGAj3Q m1+lAYkJ2HsElUqhheudgqai6c+fikLGK4ouvxFKYUMO6affAT5e46IKHtqrorkko8km RKEg== 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 i25-20020a0565123e1900b00448391a7e7bsi63707lfv.6.2022.03.16.00.26.20 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 16 Mar 2022 00:26:20 -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 22G7Q7ds021517 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 16 Mar 2022 08:26:20 +0100 From: Uladzimir Bely To: isar-users@googlegroups.com Subject: [PATCH v8 14/15] sbuild: Fixed proxy support Date: Wed, 16 Mar 2022 08:26:06 +0100 Message-Id: <20220316072607.20518-15-ubely@ilbers.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220316072607.20518-1-ubely@ilbers.de> References: <20220316072607.20518-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: xp4Ge+GtOR4M 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