summaryrefslogtreecommitdiff
path: root/0001-libremakepkg-rw-startdir.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-libremakepkg-rw-startdir.patch')
-rw-r--r--0001-libremakepkg-rw-startdir.patch58
1 files changed, 58 insertions, 0 deletions
diff --git a/0001-libremakepkg-rw-startdir.patch b/0001-libremakepkg-rw-startdir.patch
new file mode 100644
index 0000000..75b2d6f
--- /dev/null
+++ b/0001-libremakepkg-rw-startdir.patch
@@ -0,0 +1,58 @@
+From e43ee910408794654dc3c498e4790ab39cbb3466 Mon Sep 17 00:00:00 2001
+From: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+Date: Fri, 17 May 2019 02:41:43 +0200
+Subject: [PATCH] libremakepkg: fix building packages requring a rw startdir
+
+Several packages require a read-write startdir:
+- Some packages have a pkgver that is computed dynamically
+ through a pkgver function. This is the case for many packages
+ using git repositories. At the end of the package build, the
+ pkgver is automatically updated in the PKGBUILD, however,
+ without that fix that fails with libremakepkg as the PKGBUILD
+ was set read-only.
+- Some packages like linux-libre are modifying the install=
+ script. This is done by creating a temporary install script
+ in the startdir that is then modified with sed. Once this is
+ done that install script is then dynamically selected.
+ As this also require to have read-write access to the
+ startdir to be read-write it fails to build the package if
+ it's not the case.
+
+In both cases it's possible to modify the PKGBUILDs to
+workaround the issue, however the Arch Linux distribution has
+a read-write startdir, and modifying each affected packages
+would significatively increase the cost (in time and efforts)
+of maintaining Parabola.
+
+This was broken by the following commit:
+646ac02 libremakepkg,chcleanup: Be stricter about network access
+
+Thanks to elibrokeit on the #parabola IRC channel on Freenode
+for helping me identifying the cause of read-only mounts in
+libremakepkg.
+
+Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+---
+ src/chroot-tools/libremakepkg | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/chroot-tools/libremakepkg b/src/chroot-tools/libremakepkg
+index 00eb2e0..fe7dd3a 100755
+--- a/src/chroot-tools/libremakepkg
++++ b/src/chroot-tools/libremakepkg
+@@ -124,11 +124,11 @@ build() (
+ local run_ynet=()
+ local run_nnet=()
+ if $INCHROOT; then
+- local _run=(sh -c "mount --bind -o ro -- ${startdir@Q} ${startdir@Q} && cd ${startdir@Q} && \$@" --)
++ local _run=(sh -c "cd ${startdir@Q} && \$@" --)
+ run_ynet=(unshare --mount -- "${_run[@]}")
+ run_nnet=(unshare --mount --net -- "${_run[@]}")
+ else
+- librechroot_flags+=(-r "$startdir:/startdir")
++ librechroot_flags+=(-w "$startdir:/startdir")
+ run_ynet=(librechroot "${librechroot_flags[@]}" run)
+ run_nnet=(librechroot "${librechroot_flags[@]}" -N run)
+ fi
+2.21.0
+