From e5788047491a1b52ff267251d5dfc4565c48832f Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Thu, 22 Jun 2017 10:55:51 +0200 Subject: separate mirrorlist for i686 and x86_64 --- .gitignore | 1 + Makefile | 18 +++++++++++++++--- arch-nspawn.in | 15 ++++++++++----- archbuild.in | 10 ++++++++-- 4 files changed, 34 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index b63587b..1bde7ff 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ find-libdeps crossrepomove arch-nspawn doc/*.1 +pacman-*-i686.conf diff --git a/Makefile b/Makefile index ba2d3e4..7372f6f 100644 --- a/Makefile +++ b/Makefile @@ -22,6 +22,13 @@ BINPROGS = \ $(IN_PROGS) \ sogrep +GENERATED_CONFIGFILES = \ + pacman-extra-i686.conf \ + pacman-testing-i686.conf \ + pacman-staging-i686.conf \ + pacman-kde-unstable-i686.conf \ + pacman-gnome-unstable-i686.conf + CONFIGFILES = \ makepkg-x86_64.conf \ pacman-extra.conf \ @@ -31,7 +38,8 @@ CONFIGFILES = \ pacman-multilib-testing.conf \ pacman-multilib-staging.conf \ pacman-kde-unstable.conf \ - pacman-gnome-unstable.conf + pacman-gnome-unstable.conf \ + $(GENERATED_CONFIGFILES) COMMITPKG_LINKS = \ extrapkg \ @@ -74,11 +82,15 @@ MANS = \ doc/find-libprovides.1 -all: $(BINPROGS) bash_completion zsh_completion man +all: $(GENERATED_CONFIGFILES) $(BINPROGS) bash_completion zsh_completion man man: $(MANS) edit = sed -e "s|@pkgdatadir[@]|$(DESTDIR)$(PREFIX)/share/devtools|g" +pacman-%-i686.conf: pacman-%.conf + @echo "GEN $@" + @sed 's,/mirrorlist$$,\032,' "$<" > "$@" + %: %.in Makefile lib/common.sh @echo "GEN $@" @$(RM) "$@" @@ -93,7 +105,7 @@ doc/%: doc/%.asciidoc a2x --no-xmllint --asciidoc-opts="-f doc/asciidoc.conf" -d manpage -f manpage -D doc $< clean: - rm -f $(IN_PROGS) bash_completion zsh_completion $(MANS) + rm -f $(GENERATED_CONFIGFILES) $(IN_PROGS) bash_completion zsh_completion $(MANS) install: install -dm0755 $(DESTDIR)$(PREFIX)/bin diff --git a/arch-nspawn.in b/arch-nspawn.in index e68e2e7..1d2b845 100644 --- a/arch-nspawn.in +++ b/arch-nspawn.in @@ -58,10 +58,15 @@ else cache_dirs=("$cache_dir") fi +if [[ -n $makepkg_conf ]]; then + eval "$(grep -a '^CARCH=' "$makepkg_conf")" +else + eval "$(grep -a '^CARCH=' "$working_dir/etc/makepkg.conf")" +fi + pacconf_cmd=$(command -v pacman-conf || command -v pacconf) # shellcheck disable=2016 -host_mirrors=($($pacconf_cmd --repo extra Server 2> /dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#')) -# shellcheck disable=2016 +host_mirrors=($($pacconf_cmd --conf=$pac_conf --repo extra Server 2> /dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#')) # {{{ functions build_mount_args() { @@ -83,7 +88,9 @@ build_mount_args() { copy_hostconf () { cp -a /etc/pacman.d/gnupg "$working_dir/etc/pacman.d" - printf 'Server = %s\n' "${host_mirrors[@]}" >"$working_dir/etc/pacman.d/mirrorlist" + printf 'Server = %s\n' "${host_mirrors[@]}" | \ + tee "$working_dir/etc/pacman.d/mirrorlist" > \ + "$working_dir/etc/pacman.d/mirrorlist32" [[ -n $pac_conf ]] && cp "$pac_conf" "$working_dir/etc/pacman.conf" [[ -n $makepkg_conf ]] && cp "$makepkg_conf" "$working_dir/etc/makepkg.conf" @@ -110,8 +117,6 @@ fi build_mount_args copy_hostconf -eval "$(grep -a '^CARCH=' "$working_dir/etc/makepkg.conf")" - [[ -z $nosetarch ]] || unset CARCH exec ${CARCH:+setarch "$CARCH"} systemd-nspawn -q \ diff --git a/archbuild.in b/archbuild.in index 163a108..31c6317 100644 --- a/archbuild.in +++ b/archbuild.in @@ -11,11 +11,17 @@ cmd="${0##*/}" if [[ "${cmd%%-*}" == 'multilib' ]]; then repo="${cmd%-build}" arch='x86_64' + arch_ext='' base_packages+=(multilib-devel) else tag="${cmd%-build}" repo=${tag%-*} arch=${tag##*-} + if [ "${arch}" = 'x86_64' ]; then + arch_ext='' + else + arch_ext="-${arch}" + fi fi chroots='/var/lib/archbuild' clean_first=false @@ -61,14 +67,14 @@ if ${clean_first} || [[ ! -d "${chroots}/${repo}-${arch}" ]]; then rm -rf --one-file-system "${chroots}/${repo}-${arch}" mkdir -p "${chroots}/${repo}-${arch}" setarch "${arch}" mkarchroot \ - -C "@pkgdatadir@/pacman-${repo}.conf" \ + -C "@pkgdatadir@/pacman-${repo}${arch_ext}.conf" \ -M "@pkgdatadir@/makepkg-${arch}.conf" \ "${chroots}/${repo}-${arch}/root" \ "${base_packages[@]}" || abort else lock 9 "${chroots}/${repo}-${arch}/root.lock" "Locking clean chroot" arch-nspawn \ - -C "@pkgdatadir@/pacman-${repo}.conf" \ + -C "@pkgdatadir@/pacman-${repo}${arch_ext}.conf" \ -M "@pkgdatadir@/makepkg-${arch}.conf" \ "${chroots}/${repo}-${arch}/root" \ pacman -Syu --noconfirm || abort -- cgit v1.2.3-70-g09d2