From fef77109370e6bda675297f74ac1073bfe5518ec Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Mon, 16 Mar 2020 08:17:16 +0100
Subject: [PATCH] gnu: bootstrap: Use fall-back mechanism for
 bootstrap-executables.

* gnu/packages/bootstrap.scm (%bootstrap-executable-base-urls): New variable.
Add lilypond.org url as a fall-back.
(bootstrap-executable-file-name): New function.
(bootstrap-executable): Use them to implement fall-back for donwloads of
bootstrap executables.
---
 gnu/packages/bootstrap.scm | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 0fbe8ef64a..63760c7555 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -114,12 +114,17 @@
      ("xz"
       ,(base32 "09j1d69qr0hhhx4k4ih8wp00dfc9y4rp01hfg3vc15yxd0jxabh5")))))
 
-(define (bootstrap-executable-url program system)
-  "Return the URL where PROGRAM can be found for SYSTEM."
-  (string-append
-   "https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootstrap/"
-   system "/" program
-   "?id=44f07d1dc6806e97c4e9ee3e6be883cc59dc666e"))
+(define %bootstrap-executable-base-urls
+  ;; This is where the bootstrap executables come from.
+  '("https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootstrap/"
+    "http://lilypond.org/janneke/guix/"))
+
+(define (bootstrap-executable-file-name system program)
+  "Return the FILE-NAME part of url where PROGRAM can be found for SYSTEM."
+  (match system
+    ("i586-gnu" (string-append system "/20200315/" program))
+    (_ (string-append system "/" program
+                      "?id=44f07d1dc6806e97c4e9ee3e6be883cc59dc666e"))))
 
 (define bootstrap-executable
   (mlambda (program system)
@@ -140,7 +145,9 @@ for system '~a'")
         ((sha256)
          (origin
            (method url-fetch/executable)
-           (uri (bootstrap-executable-url program system))
+           (uri (map (cute string-append <>
+                           (bootstrap-executable-file-name system program))
+                     %bootstrap-executable-base-urls))
            (file-name program)
            (sha256 sha256)))))))