xbps-src: support temp overlays with bwrap

This commit is contained in:
Duncaen
2025-09-26 16:25:03 +02:00
parent 7eaba204f0
commit fb9e41a1d1
4 changed files with 21 additions and 10 deletions
+11 -3
View File
@@ -18,6 +18,14 @@ if [ -z "$MASTERDIR" -o -z "$DISTDIR" ]; then
exit 1
fi
exec bwrap --bind "$MASTERDIR" / --ro-bind "$DISTDIR" /void-packages \
--dev /dev --tmpfs /tmp --proc /proc \
${HOSTDIR:+--bind "$HOSTDIR" /host} $EXTRA_ARGS "$@"
if [ -z "$XBPS_TEMP_MASTERDIR" ]; then
exec bwrap --bind "$MASTERDIR" / \
--ro-bind "$DISTDIR" /void-packages \
--dev /dev --tmpfs /tmp --proc /proc \
${HOSTDIR:+--bind "$HOSTDIR" /host} ${EXTRA_ARGS} "$@"
else
exec bwrap --overlay-src "$MASTERDIR" --tmp-overlay / \
--ro-bind "$DISTDIR" /void-packages \
--dev /dev --tmpfs /tmp --proc /proc \
${HOSTDIR:+--bind "$HOSTDIR" /host} ${EXTRA_ARGS} "$@"
fi
+1 -1
View File
@@ -33,4 +33,4 @@ if [ -z "$MASTERDIR" ] || [ -z "$DISTDIR" ]; then
exit 1
fi
exec xbps-uchroot $EXTRA_ARGS -b $DISTDIR:/void-packages ${HOSTDIR:+-b $HOSTDIR:/host} -- $MASTERDIR $CMD $@
exec xbps-uchroot ${XBPS_TEMP_MASTERDIR:+-O} $EXTRA_ARGS -b $DISTDIR:/void-packages ${HOSTDIR:+-b $HOSTDIR:/host} -- $MASTERDIR $CMD "$@"
+1
View File
@@ -179,6 +179,7 @@ chroot_handler() {
SOURCE_DATE_EPOCH="$SOURCE_DATE_EPOCH" \
XBPS_GIT_REVS="$XBPS_GIT_REVS" \
XBPS_ALLOW_CHROOT_BREAKOUT="$XBPS_ALLOW_CHROOT_BREAKOUT" \
XBPS_TEMP_MASTERDIR="$XBPS_TEMP_MASTERDIR" \
${XBPS_ALT_REPOSITORY:+XBPS_ALT_REPOSITORY=$XBPS_ALT_REPOSITORY} \
$XBPS_COMMONDIR/chroot-style/${XBPS_CHROOT_CMD:=uunshare}.sh \
$XBPS_MASTERDIR $XBPS_DISTDIR "$XBPS_HOSTDIR" "$XBPS_CHROOT_CMD_ARGS" \
+8 -6
View File
@@ -627,6 +627,14 @@ if [ "$2" ]; then
XBPS_TARGET_PKG="${2##*/}"
fi
# A temporary masterdir requires xbps-uchroot(1) or bwrap(1).
if [ -z "$IN_CHROOT" -a -n "$XBPS_TEMP_MASTERDIR" ]; then
case "$XBPS_CHROOT_CMD" in
uchroot|bwrap) ;;
*) XBPS_CHROOT_CMD="uchroot" ;;
esac
fi
# Check for CHROOT_READY and set up XBPS_ARCH environment var for xbps.
chroot_check
check_native_arch
@@ -719,12 +727,6 @@ for i in REPOSITORY DESTDIR BUILDDIR SRCDISTDIR; do
unset val
done
# A temporary masterdir requires xbps-uchroot(1) and -O to use overlayfs
# on tmpfs (available with xbps-0.45).
if [ -z "$IN_CHROOT" -a -n "$XBPS_TEMP_MASTERDIR" ]; then
export XBPS_CHROOT_CMD="uchroot"
export XBPS_CHROOT_CMD_ARGS+=" -O"
fi
#
# Sanitize PATH.
#