Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2017-06-23 15:43:39 +0200
committerErich Eckner <git@eckner.net>2017-06-23 15:43:39 +0200
commite6407986535c5f17fff79315e7b541d8258d64e0 (patch)
treea2c6cb61900cad5359d7a9f35216a1c73d3b353e
parent3a92880a3011e29422902a01f3f23fa39aa4497f (diff)
bin/common-functions: bin/mksrcinfo new and used via systemd-nspawn with overlayfs to generate .SRCINFO
-rwxr-xr-xbin/common-functions31
-rwxr-xr-xbin/mksrcinfo3
2 files changed, 29 insertions, 5 deletions
diff --git a/bin/common-functions b/bin/common-functions
index b07e75d..714a05a 100755
--- a/bin/common-functions
+++ b/bin/common-functions
@@ -194,15 +194,36 @@ generate_package_metadata() {
exit 1
fi
+ overlays_dir="$(mktemp -d)"
+
+ sudo mount -t tmpfs none "${overlays_dir}"
+
+ mkdir \
+ "${overlays_dir}/upper" \
+ "${overlays_dir}/work" \
+ "${overlays_dir}/merged"
+
+ sudo mount -t overlay overlay -o lowerdir="${PKGBUILD%/*}":"/",upperdir="${overlays_dir}/upper",workdir="${overlays_dir}/work" "${overlays_dir}/merged"
+
(
- cd "${PKGBUILD%/*}"
+ cd "${overlays_dir}/merged"
apply_package_customizations
- grep -q '\$CARCH' 'PKGBUILD' && \
- CARCH=i686 makepkg --printsrcinfo > \
- "${file_prefix}.SRCINFO" || \
- mksrcinfo -o "${file_prefix}.SRCINFO"
)
+ sudo systemd-nspawn -q \
+ -D "${overlays_dir}/merged" \
+ --register=no \
+ ${base_dir}/bin/mksrcinfo
+
+ sudo umount -f "${overlays_dir}/merged"
+
+ mv \
+ "${overlays_dir}/upper/.SRCINFO" \
+ "${file_prefix}.SRCINFO"
+
+ sudo umount -f "${overlays_dir}"
+ rmdir "${overlays_dir}"
+
# otherwise this just calls for trouble
sed -i '/=\s*$/d' "${file_prefix}.SRCINFO"
diff --git a/bin/mksrcinfo b/bin/mksrcinfo
new file mode 100755
index 0000000..a033a6a
--- /dev/null
+++ b/bin/mksrcinfo
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+mksrcinfo -o .SRCINFO