1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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
|