aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2022-08-05 18:06:23 -0400
committerLibravatarUnit 193 <unit193@unit193.net>2022-08-05 18:06:23 -0400
commit64bb46311547cb5ea13d3d8f7d0d1836f33a68f5 (patch)
treef7a60ef0ebfc50f94ad75a670f031e121a8ed14d
parent22faa4b00068fc50c66614c4e4812273aa231d55 (diff)
New upstream version 26.upstream/26
-rw-r--r--arch-chroot.in12
-rw-r--r--common4
-rw-r--r--pacstrap.in12
3 files changed, 18 insertions, 10 deletions
diff --git a/arch-chroot.in b/arch-chroot.in
index bcb38df..3bf6523 100644
--- a/arch-chroot.in
+++ b/arch-chroot.in
@@ -5,7 +5,7 @@ shopt -s extglob
m4_include(common)
setup=chroot_setup
-unshare="$root_unshare"
+unshare=0
usage() {
cat <<EOF
@@ -82,7 +82,7 @@ while getopts ':hNu:' flag; do
;;
N)
setup=unshare_setup
- unshare="$user_unshare"
+ unshare=1
;;
u)
userspec=$OPTARG
@@ -116,8 +116,12 @@ arch-chroot() {
chroot_args=()
[[ $userspec ]] && chroot_args+=(--userspec "$userspec")
- SHELL=/bin/bash chroot "${chroot_args[@]}" -- "$chrootdir" "${args[@]}"
+ SHELL=/bin/bash $pid_unshare chroot "${chroot_args[@]}" -- "$chrootdir" "${args[@]}"
}
args=("$@")
-$unshare bash -c "$(declare_all); arch-chroot"
+if (( unshare )); then
+ $mount_unshare bash -c "$(declare_all); arch-chroot"
+else
+ arch-chroot
+fi
diff --git a/common b/common
index bc2a334..d2520e0 100644
--- a/common
+++ b/common
@@ -152,8 +152,8 @@ unshare_teardown() {
unset CHROOT_ACTIVE_FILES
}
-root_unshare="unshare --fork --pid"
-user_unshare="$root_unshare --mount --map-auto --map-root-user --setuid 0 --setgid 0"
+pid_unshare="unshare --fork --pid"
+mount_unshare="$pid_unshare --mount --map-auto --map-root-user --setuid 0 --setgid 0"
# This outputs code for declaring all variables to stdout. For example, if
# FOO=BAR, then running
diff --git a/pacstrap.in b/pacstrap.in
index 9ffe17c..b1cfb09 100644
--- a/pacstrap.in
+++ b/pacstrap.in
@@ -17,7 +17,7 @@ copykeyring=1
copymirrorlist=1
pacmode=-Sy
setup=chroot_setup
-unshare="$root_unshare"
+unshare=0
usage() {
cat <<EOF
@@ -67,7 +67,7 @@ while getopts ':C:cdGiMNU' flag; do
;;
N)
setup=unshare_setup
- unshare="$user_unshare"
+ unshare=1
;;
U)
pacmode=-U
@@ -120,7 +120,7 @@ pacstrap() {
fi
msg 'Installing packages to %s' "$newroot"
- if ! pacman -r "$newroot" $pacmode "${pacman_args[@]}"; then
+ if ! $pid_unshare pacman -r "$newroot" $pacmode "${pacman_args[@]}"; then
die 'Failed to install packages to new root'
fi
@@ -130,6 +130,10 @@ pacstrap() {
fi
}
-$unshare bash -c "$(declare_all); pacstrap"
+if (( unshare )); then
+ $mount_unshare bash -c "$(declare_all); pacstrap"
+else
+ pacstrap
+fi
# vim: et ts=2 sw=2 ft=sh: