diff options
author | Erich Eckner <git@eckner.net> | 2020-04-09 21:27:11 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2021-02-13 14:05:37 +0100 |
commit | f02e83e667fe7890ec6af7baff7f8e3bc67c33ef (patch) | |
tree | 139c23bc781b91e1707e5463d553f27c7a100283 | |
parent | 15a4ae46a29612513eda53909536b81bcec44859 (diff) | |
download | devtools-f02e83e667fe7890ec6af7baff7f8e3bc67c33ef.tar.xz |
allow to call setarch with a different value than $CARCH
Introduce setarch-aliases.d/ which gets installed inside
/usr/share/devtools. This allows to assign aliases which map one CARCH
to a different name which gets provided as argument for setarch. This is
necessary on archlinuxarm ("armv6h" -> "armv6l", "armv7h" -> "armv7l")
and allows for more fine-grained architectures (e.g. archlinux32 has
"i686" and "pentium4", which differ in the required cpu capabilities).
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | arch-nspawn.in | 7 | ||||
-rw-r--r-- | archbuild.in | 7 |
3 files changed, 17 insertions, 3 deletions
@@ -35,6 +35,8 @@ CONFIGFILES = \ pacman-kde-unstable.conf \ pacman-gnome-unstable.conf +SETARCH_ALIASES = \ + COMMITPKG_LINKS = \ extrapkg \ testingpkg \ @@ -102,9 +104,10 @@ clean: install: install -dm0755 $(DESTDIR)$(PREFIX)/bin - install -dm0755 $(DESTDIR)$(PREFIX)/share/devtools + install -dm0755 $(DESTDIR)$(PREFIX)/share/devtools/setarch-aliases.d install -m0755 ${BINPROGS} $(DESTDIR)$(PREFIX)/bin install -m0644 ${CONFIGFILES} $(DESTDIR)$(PREFIX)/share/devtools + for a in ${SETARCH_ALIASES}; do install -m0644 setarch-aliases.d/$$a $(DESTDIR)$(PREFIX)/share/devtools/setarch-aliases.d; done for l in ${COMMITPKG_LINKS}; do ln -sf commitpkg $(DESTDIR)$(PREFIX)/bin/$$l; done for l in ${ARCHBUILD_LINKS}; do ln -sf archbuild $(DESTDIR)$(PREFIX)/bin/$$l; done for l in ${CROSSREPOMOVE_LINKS}; do ln -sf crossrepomove $(DESTDIR)$(PREFIX)/bin/$$l; done @@ -120,6 +123,7 @@ install: uninstall: for f in ${BINPROGS}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done for f in ${CONFIGFILES}; do rm -f $(DESTDIR)$(PREFIX)/share/devtools/$$f; done + for f in ${SETARCH_ALIASES}; do rm -f $(DESTDIR)$(PREFIX)/share/devtools/setarch-aliases.d/$$f; done for l in ${COMMITPKG_LINKS}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$l; done for l in ${ARCHBUILD_LINKS}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$l; done for l in ${CROSSREPOMOVE_LINKS}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$l; done diff --git a/arch-nspawn.in b/arch-nspawn.in index cde1f60..eb4d52f 100644 --- a/arch-nspawn.in +++ b/arch-nspawn.in @@ -126,8 +126,13 @@ copy_hostconf eval "$(grep -a '^CARCH=' "$working_dir/etc/makepkg.conf")" [[ -z $nosetarch ]] || unset CARCH +if [[ -f "@pkgdatadir@/setarch-aliases.d/${CARCH}" ]]; then + set_arch=$(cat "@pkgdatadir@/setarch-aliases.d/${CARCH}") +else + set_arch="${CARCH}" +fi -exec ${CARCH:+setarch "$CARCH"} systemd-nspawn -q \ +exec ${CARCH:+setarch "$set_arch"} systemd-nspawn -q \ -D "$working_dir" \ -E "PATH=/usr/local/sbin:/usr/local/bin:/usr/bin" \ --register=no --keep-unit --as-pid2 \ diff --git a/archbuild.in b/archbuild.in index 32f0d03..c317cc2 100644 --- a/archbuild.in +++ b/archbuild.in @@ -17,6 +17,11 @@ else repo=${tag%-*} arch=${tag##*-} fi +if [[ -f "@pkgdatadir@/setarch-aliases.d/${arch}" ]]; then + set_arch=$(cat "@pkgdatadir@/setarch-aliases.d/${arch}") +else + set_arch="${arch}" +fi chroots='/var/lib/archbuild' clean_first=false @@ -69,7 +74,7 @@ if ${clean_first} || [[ ! -d "${chroots}/${repo}-${arch}" ]]; then rm -rf --one-file-system "${chroots}/${repo}-${arch}" (umask 0022; mkdir -p "${chroots}/${repo}-${arch}") - setarch "${arch}" mkarchroot \ + setarch "${set_arch}" mkarchroot \ -C "${pacman_config}" \ -M "${makepkg_config}" \ "${chroots}/${repo}-${arch}/root" \ |