From: voidlinux-github@inbox.vuxu.org
To: ml@inbox.vuxu.org
Subject: [PR PATCH] xbps-src: per-architecture handling of repo confs
Date: Thu, 30 Jan 2020 15:24:09 +0100 [thread overview]
Message-ID: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-18661@inbox.vuxu.org> (raw)
[-- Attachment #1: Type: text/plain, Size: 772 bytes --]
There is a new pull request by q66 against master on the void-packages repository
https://github.com/void-ppc/void-packages repoconf-rework
https://github.com/void-linux/void-packages/pull/18661
xbps-src: per-architecture handling of repo confs
The new behavior is basically this:
1) Local repos are installed same as before.
2) Multilib configs are now handled only if they exist. They follow a naming system `repos-{local,remote}-ARCH-multilib.conf`.
3) Remote repo files follow naming `repos-remote-ARCH.conf`. If that does not exist, `repos-remote.conf` or `repos-remote-musl.conf` is used instead (fallback).
4) Cross follows the same behavior, just without multilib.
A patch file from https://github.com/void-linux/void-packages/pull/18661.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-repoconf-rework-18661.patch --]
[-- Type: text/x-diff, Size: 6705 bytes --]
From 574309debd120d0368084c234241280965947cac Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Thu, 30 Jan 2020 15:14:30 +0100
Subject: [PATCH] xbps-src: per-architecture handling of repo confs
The new behavior is basically this:
1) Local repos are installed same as before.
2) Multilib configs are now handled only if they exist. They follow
a naming system repos-{local,remote}-ARCH-multilib.conf.
3) Remote repo files follow naming repos-remote-ARCH.conf. If that
does not exist, repos-remote.conf or repos-remote-musl.conf is
used instead (fallback).
4) Cross follows the same behavior, just without multilib.
[ci skip]
---
common/xbps-src/shutils/chroot.sh | 81 ++++++++-----------
....conf => repos-local-x86_64-multilib.conf} | 0
etc/xbps.d/repos-remote-aarch64-musl.conf | 4 +
...conf => repos-remote-x86_64-multilib.conf} | 0
4 files changed, 38 insertions(+), 47 deletions(-)
rename etc/xbps.d/{repos-local-x86_64.conf => repos-local-x86_64-multilib.conf} (100%)
create mode 100644 etc/xbps.d/repos-remote-aarch64-musl.conf
rename etc/xbps.d/{repos-remote-x86_64.conf => repos-remote-x86_64-multilib.conf} (100%)
diff --git a/common/xbps-src/shutils/chroot.sh b/common/xbps-src/shutils/chroot.sh
index 228dd2e0399..e56d096412a 100644
--- a/common/xbps-src/shutils/chroot.sh
+++ b/common/xbps-src/shutils/chroot.sh
@@ -230,40 +230,33 @@ chroot_sync_repodata() {
sed -e "s,/host,$hostdir,g" ${XBPS_DISTDIR}/etc/xbps.d/repos-local.conf \
> $confdir/10-repository-local.conf
+ # Install multilib conf for local repos if it exists for the architecture
+ if [ -f "${XBPS_DISTDIR}/etc/xbps.d/repos-local-${XBPS_MACHINE}-multilib.conf" ]; then
+ install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-local-${XBPS_MACHINE}-multilib.conf \
+ $confdir/12-repository-local-multilib.conf
+ fi
+
if [ "$XBPS_SKIP_REMOTEREPOS" ]; then
rm -f $confdir/*remote*
- case "$XBPS_MACHINE" in
- x86_64)
- # x86_64/glibc
- install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-local-x86_64.conf \
- $confdir/12-repository-local-x86_64.conf
- ;;
- esac
else
- case "$XBPS_MACHINE" in
- *-musl)
- install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-remote-musl.conf \
- $confdir/20-repository-remote.conf
- ;;
- *)
- install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-remote.conf \
- $confdir/20-repository-remote.conf
- ;;
- esac
- case "$XBPS_MACHINE" in
- x86_64)
- # x86_64/glibc
- install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-local-x86_64.conf \
- $confdir/12-repository-local-x86_64.conf
- install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-remote-x86_64.conf \
- $confdir/22-repository-remote-x86_64.conf
- ;;
- aarch64*)
- # aarch64 glibc/musl
- install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-remote-aarch64.conf \
- $confdir/22-repository-remote-aarch64.conf
- ;;
- esac
+ if [ -f "${XBPS_DISTDIR}/etc/xbps.d/repos-remote-${XBPS_MACHINE}.conf" ]; then
+ # If per-architecture base remote repo config exists, use that
+ install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-remote-${XBPS_MACHINE}.conf \
+ $confdir/20-repository-remote.conf
+ else
+ # Otherwise use generic base for musl or glibc
+ local suffix=
+ case "$XBPS_MACHINE" in
+ *-musl) suffix="-musl";;
+ esac
+ install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-remote${suffix}.conf \
+ $confdir/20-repository-remote.conf
+ fi
+ # Install multilib conf for remote repos if it exists for the architecture
+ if [ -f "${XBPS_DISTDIR}/etc/xbps.d/repos-remote-${XBPS_MACHINE}-multilib.conf" ]; then
+ install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-remote-${XBPS_MACHINE}-multilib.conf \
+ $confdir/22-repository-remote-multilib.conf
+ fi
fi
# Copy host repos to the cross root.
@@ -276,24 +269,18 @@ chroot_sync_repodata() {
if [ "$XBPS_SKIP_REMOTEREPOS" ]; then
rm -f $crossconfdir/*remote*
else
- # and then remote repos for target machine
- case "$XBPS_TARGET_MACHINE" in
- aarch64*)
- # aarch64 glibc/musl
- install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-remote-aarch64.conf \
- $crossconfdir/22-repository-remote-aarch64.conf
- ;;
- *-musl)
- # !aarch64 && musl
- install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-remote-musl.conf \
+ # Same general logic as above, just into cross root, and no multilib
+ if [ -f "${XBPS_DISTDIR}/etc/xbps.d/repos-remote-${XBPS_TARGET_MACHINE}.conf" ]; then
+ install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-remote-${XBPS_TARGET_MACHINE}.conf \
$crossconfdir/20-repository-remote.conf
- ;;
- *)
- # !aarch64 && glibc
- install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-remote.conf \
+ else
+ local suffix=
+ case "$XBPS_TARGET_MACHINE" in
+ *-musl) suffix="-musl"
+ esac
+ install -Dm644 ${XBPS_DISTDIR}/etc/xbps.d/repos-remote${suffix}.conf \
$crossconfdir/20-repository-remote.conf
- ;;
- esac
+ fi
fi
fi
diff --git a/etc/xbps.d/repos-local-x86_64.conf b/etc/xbps.d/repos-local-x86_64-multilib.conf
similarity index 100%
rename from etc/xbps.d/repos-local-x86_64.conf
rename to etc/xbps.d/repos-local-x86_64-multilib.conf
diff --git a/etc/xbps.d/repos-remote-aarch64-musl.conf b/etc/xbps.d/repos-remote-aarch64-musl.conf
new file mode 100644
index 00000000000..4c81aaa9aa8
--- /dev/null
+++ b/etc/xbps.d/repos-remote-aarch64-musl.conf
@@ -0,0 +1,4 @@
+# aarch64 voidlinux remote repositories
+repository=https://alpha.de.repo.voidlinux.org/current/aarch64
+repository=https://alpha.de.repo.voidlinux.org/current/aarch64/nonfree
+repository=https://alpha.de.repo.voidlinux.org/current/aarch64/debug
diff --git a/etc/xbps.d/repos-remote-x86_64.conf b/etc/xbps.d/repos-remote-x86_64-multilib.conf
similarity index 100%
rename from etc/xbps.d/repos-remote-x86_64.conf
rename to etc/xbps.d/repos-remote-x86_64-multilib.conf
next reply other threads:[~2020-01-30 14:24 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-30 14:24 voidlinux-github [this message]
2020-01-30 14:28 ` [PR PATCH] [Updated] " voidlinux-github
2020-01-30 14:49 ` [PR PATCH] [Merged]: " voidlinux-github
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-18661@inbox.vuxu.org \
--to=voidlinux-github@inbox.vuxu.org \
--cc=ml@inbox.vuxu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).