Subject: [bug#70028] [PATCH] Switch order of the default substitute servers.

From: Christopher Baines <[email-masked]>
Date: Wed, 27 Mar 2024 13:43:43 +0000

The aim here is to improve the user experience.  There's anecdotal evidence
that the network performance for bordeaux is better compared to ci at least
for some users, and I don't know of any issues with rate limiting or access
restriction for bordeaux compared to ci.  It also has IPv6 support.

Additionally, bordeaux generally had more substitutes than ci, particularly
for aarch64-linux and armhf-linux.  This change will offer a very slight
speedup for those substitutes that only bordeaux has.

Bordeaux has been a default substitute server for nearly 3 years now and I
think this change is overdue.  I'm also hopeful that we'll be able to build on
the testing regarding mirrors for bordeaux, and that'll allow potentially
improving the hosting setup (through providing more redundancy) and further
improving substitute fetching for users who currently have issues with
substitute access.

* config-daemon.ac: Switch substitute urls order.
* doc/guix.texi: Ditto.
* etc/guix-install.sh: Ditto.
* gnu/installer/newt/network.scm (wait-service-online): Ditto.
* guix/store.scm (%default-substitute-urls): Ditto.

Change-Id: I4f6d93ae1fc8b03d80b47b18b5749a51f1fde17b
---
 config-daemon.ac               | 2 +-
 doc/guix.texi                  | 4 ++--
 etc/guix-install.sh            | 2 +-
 gnu/installer/newt/network.scm | 4 ++--
 guix/scripts/substitute.scm    | 4 ++--
 guix/store.scm                 | 4 ++--
 6 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/config-daemon.ac b/config-daemon.ac
index 86306effe1..9188f93bda 100644
--- a/config-daemon.ac
+++ b/config-daemon.ac
@@ -106,7 +106,7 @@ if test "x$guix_build_daemon" = "xyes"; then
 
   dnl Determine the appropriate default list of substitute URLs (GnuTLS
   dnl is required so we can default to 'https'.)
-  guix_substitute_urls="https://ci.guix.gnu.org https://bordeaux.guix.gnu.org"
+  guix_substitute_urls="https://bordeaux.guix.gnu.org https://ci.guix.gnu.org"
 
   AC_MSG_CHECKING([for default substitute URLs])
   AC_MSG_RESULT([$guix_substitute_urls])
diff --git a/doc/guix.texi b/doc/guix.texi
index ddd98a5fd4..ee3d5f5c3c 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -17,8 +17,8 @@
 @set BASE-URL https://ftp.gnu.org/gnu/guix
 
 @c The official substitute server used by default.
-@set SUBSTITUTE-SERVER-1 ci.guix.gnu.org
-@set SUBSTITUTE-SERVER-2 bordeaux.guix.gnu.org
+@set SUBSTITUTE-SERVER-1 bordeaux.guix.gnu.org
+@set SUBSTITUTE-SERVER-2 ci.guix.gnu.org
 @set SUBSTITUTE-URLS https://@value{SUBSTITUTE-SERVER-1} https://@value{SUBSTITUTE-SERVER-2}
 
 @copying
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 982fb0a266..dde35e6d39 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -503,8 +503,8 @@ sys_enable_guix_daemon()
 sys_authorize_build_farms()
 { # authorize the public key(s) of the build farm(s)
     local hosts=(
-	ci.guix.gnu.org
 	bordeaux.guix.gnu.org
+	ci.guix.gnu.org
     )
 
     if prompt_yes_no "Permit downloading pre-built package binaries from the \
diff --git a/gnu/installer/newt/network.scm b/gnu/installer/newt/network.scm
index ba26fc7c76..b22cc71305 100644
--- a/gnu/installer/newt/network.scm
+++ b/gnu/installer/newt/network.scm
@@ -127,8 +127,8 @@ (define (wait-service-online)
           (lambda _ #f))
         (alarm 3))
       (lambda ()
-        (or (url-alive? "https://ci.guix.gnu.org")
-            (url-alive? "https://bordeaux.guix.gnu.org")))
+        (or (url-alive? "https://bordeaux.guix.gnu.org")
+            (url-alive? "https://ci.guix.gnu.org")))
       (lambda ()
         (alarm 0))))
 
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index 37cd08e289..90ce1be76c 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -749,8 +749,8 @@ (define %default-substitute-urls
     (#f
      ;; This can only happen when this script is not invoked by the
      ;; daemon.
-     '("http://ci.guix.gnu.org"
-       "http://bordeaux.guix.gnu.org"))))
+     '("http://bordeaux.guix.gnu.org"
+       "http://ci.guix.gnu.org"))))
 
 ;; In order to prevent using large number of discovered local substitute
 ;; servers, limit the local substitute urls list size.
diff --git a/guix/store.scm b/guix/store.scm
index 97c4f32a5b..1229198b09 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -767,8 +767,8 @@ (define %default-substitute-urls
   (map (if (false-if-exception (resolve-interface '(gnutls)))
            (cut string-append "https://" <>)
            (cut string-append "http://" <>))
-       '("ci.guix.gnu.org"
-         "bordeaux.guix.gnu.org")))
+       '("bordeaux.guix.gnu.org"
+         "ci.guix.gnu.org")))
 
 (define (current-user-name)
   "Return the name of the calling user."

base-commit: e9a547d2c57e22bea0b6da6cc67d423ff9d47b07
-- 
2.41.0