summaryrefslogtreecommitdiff
path: root/arch-nspawn.in
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@parabola.nu>2017-02-15 14:40:06 -0500
committerLuke Shumaker <lukeshu@parabola.nu>2018-05-20 21:57:40 -0400
commit527621ed8b8ac2a4b0384baa475070d87415a253 (patch)
treeea61b8e2ba476d245a0d8b32d6a772134b139e1c /arch-nspawn.in
parent38cc02ec9a7e27c9c35380215d8535c857a704a7 (diff)
downloaddevtools32-527621ed8b8ac2a4b0384baa475070d87415a253.tar.xz
makechrootpkg, arch-nspawn: Force-enable local '/repo/' repository
The change in arch-nspawn is subtle: This was the source of "infamous" "it fails every other time" bug that took me over a year to solve. <https://labs.parabola.nu/issues/435> By having a repository of local packages (rather than simply running `pacman -U`), we are inviting pacman to cache them in `/var/cache/pacman/pkg`. Besides being needless disk writes, this actually causes a real issue. If the package gets rebuilt, pacman will balk, as the file no longer matches the cached signature. So, how do we prevent pacman from caching these local packages? Simple: include the directory they are already in in the pacman.conf:CacheDir list. This will prevent pacman from copying the files to one of the other cache directories.
Diffstat (limited to 'arch-nspawn.in')
-rw-r--r--arch-nspawn.in1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch-nspawn.in b/arch-nspawn.in
index 028191b..c448056 100644
--- a/arch-nspawn.in
+++ b/arch-nspawn.in
@@ -105,6 +105,7 @@ elif [[ $(cat "$working_dir/.arch-chroot") != "$CHROOT_VERSION" ]]; then
fi
build_mount_args
+cache_dirs+=('/repo/')
copy_hostconf
eval "$(grep -a '^CARCH=' "$working_dir/etc/makepkg.conf")"