summaryrefslogtreecommitdiff
path: root/src/chroot-tools/mkarchroot.patch
diff options
context:
space:
mode:
Diffstat (limited to 'src/chroot-tools/mkarchroot.patch')
-rw-r--r--src/chroot-tools/mkarchroot.patch67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/chroot-tools/mkarchroot.patch b/src/chroot-tools/mkarchroot.patch
new file mode 100644
index 0000000..3882ec6
--- /dev/null
+++ b/src/chroot-tools/mkarchroot.patch
@@ -0,0 +1,67 @@
+--- mkarchroot.in 2016-04-15 17:38:00.221067734 -0400
++++ mkarchroot.ugly 2016-05-09 22:36:18.284175885 -0400
+@@ -1,4 +1,6 @@
+ #!/bin/bash
++# License: GNU GPLv2
++#
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; version 2 of the License.
+@@ -14,23 +16,29 @@
+
+ working_dir=''
+
++files=()
++
+ usage() {
+ echo "Usage: ${0##*/} [options] working-dir package-list..."
+ echo ' options:'
+ echo ' -C <file> Location of a pacman config file'
+ echo ' -M <file> Location of a makepkg config file'
+ echo ' -c <dir> Set pacman cache'
++ echo ' -f <file> Copy file from the host to the chroot'
++ echo ' -s Do not run setarch'
+ echo ' -h This message'
+ exit 1
+ }
+
+ orig_argv=("$@")
+
+-while getopts 'hC:M:c:' arg; do
++while getopts 'hC:M:c:f:s' arg; do
+ case "$arg" in
+ C) pac_conf="$OPTARG" ;;
+ M) makepkg_conf="$OPTARG" ;;
+ c) cache_dir="$OPTARG" ;;
++ f) files+=("$OPTARG") ;;
++ s) nosetarch=1 ;;
+ h|?) usage ;;
+ *) error "invalid argument '%s'" "$arg"; usage ;;
+ esac
+@@ -68,6 +76,16 @@
+ chmod 0755 "$working_dir"
+ fi
+
++for file in "${files[@]}"; do
++ mkdir -p "$(dirname "$working_dir$file")"
++ cp "$file" "$working_dir$file"
++done
++
++_env=()
++while read -r varname; do
++ _env+=("$varname=${!varname}")
++done < <(declare -x | sed -r 's/^declare -x ([^=]*)=.*/\1/' | grep -i '_proxy$')
++env -i "${_env[@]}" \
+ pacstrap -GMcd ${pac_conf:+-C "$pac_conf"} "$working_dir" \
+ "${cache_dirs[@]/#/--cachedir=}" "$@" || die 'Failed to install all packages'
+
+@@ -75,7 +93,8 @@
+ echo 'LANG=C' > "$working_dir/etc/locale.conf"
+ echo "$CHROOT_VERSION" > "$working_dir/.arch-chroot"
+
+-exec arch-nspawn \
++exec "$(librelib chroot/arch-nspawn)" \
++ ${nosetarch:+-s} \
+ ${pac_conf:+-C "$pac_conf"} \
+ ${makepkg_conf:+-M "$makepkg_conf"} \
+ ${cache_dir:+-c "$cache_dir"} \