From: Christian Hesse mail@eworm.de
My system has a mirror configuration where only the host can access a special url from pacman.conf but chroots and containers fail.
Instead of host's pacman.conf use $pac_conf or pacman.conf from chroot. This still uses host's /etc/pacman.d/mirrorlist and should achieve the expected results.
Signed-off-by: Christian Hesse mail@eworm.de --- arch-nspawn.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch-nspawn.in b/arch-nspawn.in index c21b2ce..ffc7267 100644 --- a/arch-nspawn.in +++ b/arch-nspawn.in @@ -59,7 +59,7 @@ else fi
# shellcheck disable=2016 -host_mirror=$(pacman --cachedir /doesnt/exist -Sddp extra/devtools 2>/dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#') +host_mirror=$(pacman --config "${pac_conf:-$working_dir/etc/pacman.conf}" --cachedir /doesnt/exist -Sddp extra/devtools 2>/dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#') # shellcheck disable=2016 [[ $host_mirror == *file://* ]] && host_mirror_path=$(echo "$host_mirror" | sed -r 's#file://(/.*)/$repo/os/$arch#\1#g')
Christian Hesse list@eworm.de on Fri, 2017/07/14 12:04:
From: Christian Hesse mail@eworm.de
My system has a mirror configuration where only the host can access a special url from pacman.conf but chroots and containers fail.
Instead of host's pacman.conf use $pac_conf or pacman.conf from chroot. This still uses host's /etc/pacman.d/mirrorlist and should achieve the expected results.
Oh, this breaks if the chroot has repositories configured that the host does not have. *sigh*
From: Christian Hesse mail@eworm.de
My system has a mirror configuration where only the host can access a special url from pacman.conf but chroots and containers fail.
Instead of host's pacman.conf use $pac_conf or pacman.conf from chroot. This still uses host's /etc/pacman.d/mirrorlist and should achieve the expected results.
Signed-off-by: Christian Hesse mail@eworm.de --- arch-nspawn.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch-nspawn.in b/arch-nspawn.in index c21b2ce..bc9beb7 100644 --- a/arch-nspawn.in +++ b/arch-nspawn.in @@ -59,7 +59,7 @@ else fi
# shellcheck disable=2016 -host_mirror=$(pacman --cachedir /doesnt/exist -Sddp extra/devtools 2>/dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#') +host_mirror=$(pacman --config "${pac_conf:-$working_dir/etc/pacman.conf}" --dbpath "$working_dir/var/lib/pacman" --cachedir /doesnt/exist -Sddp extra/devtools 2>/dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#') # shellcheck disable=2016 [[ $host_mirror == *file://* ]] && host_mirror_path=$(echo "$host_mirror" | sed -r 's#file://(/.*)/$repo/os/$arch#\1#g')
On Fri, 14 Jul 2017 06:04:50 -0400, Christian Hesse wrote:
-host_mirror=$(pacman --cachedir /doesnt/exist -Sddp extra/devtools 2>/dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#') +host_mirror=$(pacman --config "${pac_conf:-$working_dir/etc/pacman.conf}" --cachedir /doesnt/exist -Sddp extra/devtools 2>/dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#') # shellcheck disable=2016 [[ $host_mirror == *file://* ]] && host_mirror_path=$(echo "$host_mirror" | sed -r 's#file://(/.*)/$repo/os/$arch#\1#g')
While we're at it: what is the point of setting host_mirror anyway? I've had users complain about it causing problems like this and others.
On Sat, Jul 15, 2017, 01:10 Luke Shumaker lukeshu@lukeshu.com wrote:
On Fri, 14 Jul 2017 06:04:50 -0400, Christian Hesse wrote:
-host_mirror=$(pacman --cachedir /doesnt/exist -Sddp extra/devtools
2>/dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#')
+host_mirror=$(pacman --config
"${pac_conf:-$working_dir/etc/pacman.conf}" --cachedir /doesnt/exist -Sddp extra/devtools 2>/dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#')
# shellcheck disable=2016 [[ $host_mirror == *file://* ]] && host_mirror_path=$(echo
"$host_mirror" | sed -r 's#file://(/.*)/$repo/os/$arch#\1#g')
While we're at it: what is the point of setting host_mirror anyway? I've had users complain about it causing problems like this and others.
Our build server also hosts a compete rsync'ed mirror, so the first server in the mirrorlist has a file:// URL, while additional cache dirs point into the mirror package pool.
arch-projects@lists.archlinux.org