summaryrefslogtreecommitdiff
path: root/src/chroot-tools/mkarchroot.patch
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2016-05-09 22:48:09 -0400
committerLuke Shumaker <lukeshu@sbcglobal.net>2016-05-09 22:48:09 -0400
commit9f16ca1852e0461f493ccfbd33792623774d6e1e (patch)
treea1c70f43c4046fa53b7bd2d7365df4358ee344f7 /src/chroot-tools/mkarchroot.patch
parent4c55c0216c1efe94eeb9cad91b6052e463c9d57b (diff)
librechroot: Support using qemu for ARM builds on x86 via binfmt_misc.
Diffstat (limited to 'src/chroot-tools/mkarchroot.patch')
-rw-r--r--src/chroot-tools/mkarchroot.patch45
1 files changed, 41 insertions, 4 deletions
diff --git a/src/chroot-tools/mkarchroot.patch b/src/chroot-tools/mkarchroot.patch
index cb1acc2..3882ec6 100644
--- a/src/chroot-tools/mkarchroot.patch
+++ b/src/chroot-tools/mkarchroot.patch
@@ -1,5 +1,5 @@
---- mkarchroot.in 2014-11-05 18:57:12.175995949 -0500
-+++ mkarchroot.ugly 2014-11-05 18:57:12.209328664 -0500
+--- 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
@@ -7,10 +7,46 @@
# 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.
-@@ -68,6 +70,11 @@
+@@ -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}")
@@ -19,12 +55,13 @@
pacstrap -GMcd ${pac_conf:+-C "$pac_conf"} "$working_dir" \
"${cache_dirs[@]/#/--cachedir=}" "$@" || die 'Failed to install all packages'
-@@ -75,7 +82,7 @@
+@@ -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"} \