summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2019-04-01 10:38:05 +0200
committerErich Eckner <git@eckner.net>2019-06-16 14:11:01 +0200
commitbd53fd6e9a8fb3dadfdf325b24f22aaa00bb1337 (patch)
treec77dd0145d8c20cd6c73aac30a4da2b754ab9672
parentf522ce2277100a147baa2656753231b14cf1f71d (diff)
downloaddevtools-bd53fd6e9a8fb3dadfdf325b24f22aaa00bb1337.tar.xz
arch-nspawn should use the correct pacman config file
If arch-nspawn is called with -C, pacman inside the chroot will use the provided configuration file. This should also be the case for $pacconf_cmd and pacman outside the chroot. If arch-nspawn is called without -C, pacman inside the chroot will use $workdir/etc/pacman.conf -- again, $pacconf_cmd and pacman outside the chroot should use that, too. So lets just set $pac_conf in that case. For example, Arch Linux 32 provides separate pacman configurations inside /usr/share/devtools which use /etc/pacman.d/mirrorlist32 as mirrorlist for their build commands (extra-i686-build, etc.). This way, we can build i686 and x86_64 packages on the same x86_64 host with very minimal changes to devtools.
-rw-r--r--arch-nspawn.in7
1 files changed, 4 insertions, 3 deletions
diff --git a/arch-nspawn.in b/arch-nspawn.in
index e68e2e7..cebeb2e 100644
--- a/arch-nspawn.in
+++ b/arch-nspawn.in
@@ -52,16 +52,17 @@ shift 1
[[ -z $working_dir ]] && die 'Please specify a working directory.'
+[[ -z $pac_conf ]] && pac_conf="$working_dir/etc/pacman.conf"
+
if [[ -z $cache_dir ]]; then
- cache_dirs=($(pacman -v 2>&1 | grep '^Cache Dirs:' | sed 's/Cache Dirs:\s*//g'))
+ cache_dirs=($(pacman --config "$pac_conf" -v 2>&1 | grep '^Cache Dirs:' | sed 's/Cache Dirs:\s*//g'))
else
cache_dirs=("$cache_dir")
fi
pacconf_cmd=$(command -v pacman-conf || command -v pacconf)
# shellcheck disable=2016
-host_mirrors=($($pacconf_cmd --repo extra Server 2> /dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#'))
-# shellcheck disable=2016
+host_mirrors=($($pacconf_cmd --conf "$pac_conf" --repo extra Server 2> /dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#'))
# {{{ functions
build_mount_args() {