public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: Uladzimir Bely <ubely@ilbers.de>
To: isar-users@googlegroups.com
Subject: [PATCH v8 14/16] sbuild: Fixed proxy support
Date: Thu, 17 Mar 2022 05:50:19 +0100	[thread overview]
Message-ID: <20220317045021.4018-15-ubely@ilbers.de> (raw)
In-Reply-To: <20220317045021.4018-1-ubely@ilbers.de>

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 <ubely@ilbers.de>
---
 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


  parent reply	other threads:[~2022-03-17  4:50 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-17  4:50 [PATCH v8 00/16] Sbuild/Schroot migration Uladzimir Bely
2022-03-17  4:50 ` [PATCH v8 01/16] dpkg-gbp: Use separate command to export tarball Uladzimir Bely
2022-03-17  4:50 ` [PATCH v8 02/16] dpkg-gbp: Use host tools for dsc preparation Uladzimir Bely
2022-03-17  4:50 ` [PATCH v8 03/16] sbuild: Add recipes for host and target rootfs to run sbuild Uladzimir Bely
2022-03-17  4:50 ` [PATCH v8 04/16] sbuild: Introduce a class for another build method Uladzimir Bely
2022-03-17 15:31   ` Moessbauer, Felix
2022-03-17  4:50 ` [PATCH v8 05/16] dpkg: Build packages with sbuild Uladzimir Bely
2022-03-17  4:50 ` [PATCH v8 06/16] sbuild: Support of DEB_BUILD_PROFILES Uladzimir Bely
2022-03-17  4:50 ` [PATCH v8 07/16] sbuild: Support of shell exports from dpkg_runbuild_prepend Uladzimir Bely
2022-03-17  4:50 ` [PATCH v8 08/16] dpkg: Remove builddeps install task Uladzimir Bely
2022-04-08  9:11   ` Moessbauer, Felix
2022-03-17  4:50 ` [PATCH v8 09/16] sbuild: Add ccache support Uladzimir Bely
2022-03-17  4:50 ` [PATCH v8 10/16] dpkg-base: Switch devshell to use schroot Uladzimir Bely
2022-03-17  4:50 ` [PATCH v8 11/16] dpkg-base: Switch apt_fetch and apt_unpack " Uladzimir Bely
2022-03-17  4:50 ` [PATCH v8 12/16] doc: Add sbuild-related documentation Uladzimir Bely
2022-03-17  4:50 ` [PATCH v8 13/16] sbuild: Use .dsc file instead of source directory Uladzimir Bely
2022-03-17  4:50 ` Uladzimir Bely [this message]
2022-03-17  4:50 ` [PATCH v8 15/16] sbuild: Fix debsrc_download for packages dependencies Uladzimir Bely
2022-03-17  4:50 ` [PATCH v8 16/16] fix: support build of packages with epoch version Uladzimir Bely
2022-04-07  9:32 ` [PATCH v8 00/16] Sbuild/Schroot migration Anton Mikanovich
2022-04-07 10:15   ` Moessbauer, Felix
2022-05-04  8:56 ` Anton Mikanovich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220317045021.4018-15-ubely@ilbers.de \
    --to=ubely@ilbers.de \
    --cc=isar-users@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox