Github messages for voidlinux
 help / color / mirror / Atom feed
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

             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).