summary refs log tree commit diff
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2018-02-18 20:27:24 +0100
committerTobias Geerinckx-Rice <me@tobias.gr>2018-02-19 06:00:28 +0100
commitcb443e55dcfdce628c0f4f81269adad9fed414d2 (patch)
tree5b5cd0de3c96560f3acf1b2ba0c4dd2d8b41be28
parent5ae76e8f167bf4d721339aeace37fdb48b3b69b2 (diff)
downloadguix-cb443e55dcfdce628c0f4f81269adad9fed414d2.tar.gz
gnu: lsof: Factorise source URIs.
* gnu/packages/lsof.scm (%ftp-base): Remove variable.
(lsof)[source]: Construct mirror URI list programatically.
-rw-r--r--gnu/packages/lsof.scm61
1 files changed, 24 insertions, 37 deletions
diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm
index eff361dc8c..f8742b6af9 100644
--- a/gnu/packages/lsof.scm
+++ b/gnu/packages/lsof.scm
@@ -25,48 +25,35 @@
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages perl))
 
-(define %ftp-base
-  "ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/")
-
 (define-public lsof
   (package
    (name "lsof")
    (version "4.89")
-   (source (origin
-            (method url-fetch)
-            (uri (list (string-append %ftp-base "lsof_"
-                                      version ".tar.bz2")
-                       (string-append %ftp-base "OLD/lsof_"
-                                      version ".tar.bz2")
+   (source
+    (origin
+      (method url-fetch)
+      (uri
+       (apply append
+              (map
+               (lambda (mirror-uri)
+                 (let ((tarball (string-append name "_" version ".tar.bz2")))
+                   (list
+                    (string-append mirror-uri "/" tarball)
+                    ;; Upon every new release, the previous one is moved here:
+                    (string-append mirror-uri "/OLD/" tarball))))
+               (list
+                "ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/"
 
-                       ;; Add mirrors because the FTP server at purdue.edu
-                       ;; bails out when it cannot do a reverse DNS lookup, as
-                       ;; noted at <http://people.freebsd.org/~abe/>.
-                       (string-append
-                        "ftp://ftp.fu-berlin.de/pub/unix/tools/lsof/lsof_"
-                        version ".tar.bz2")
-                       (string-append
-                        "ftp://ftp.fu-berlin.de/pub/unix/tools/lsof/OLD/lsof_"
-                        version ".tar.bz2")
-                       (string-append
-                        "http://www.mirrorservice.org/sites/"
-                        "lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_"
-                        version ".tar.bz2")
-                       (string-append
-                        "http://www.mirrorservice.org/sites/"
-                        "lsof.itap.purdue.edu/pub/tools/unix/lsof/OLD/lsof_"
-                        version ".tar.bz2")
-                       (string-append
-                        "ftp://ftp.mirrorservice.org/sites/"
-                        "lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_"
-                        version ".tar.bz2")
-                       (string-append
-                        "ftp://ftp.mirrorservice.org/sites/"
-                        "lsof.itap.purdue.edu/pub/tools/unix/lsof/OLD/lsof_"
-                        version ".tar.bz2")))
-            (sha256
-             (base32
-              "061p18v0mhzq517791xkjs8a5dfynq1418a1mwxpji69zp2jzb41"))))
+                ;; Add mirrors because the canonical FTP server at purdue.edu
+                ;; bails out when it cannot do a reverse DNS lookup, as noted
+                ;; at <http://people.freebsd.org/~abe/>.
+                "ftp://ftp.fu-berlin.de/pub/unix/tools/lsof/"
+                (string-append "http://www.mirrorservice.org/sites/"
+                               "lsof.itap.purdue.edu/pub/tools/unix/lsof")
+                (string-append "ftp://ftp.mirrorservice.org/sites/"
+                               "lsof.itap.purdue.edu/pub/tools/unix/lsof")))))
+      (sha256
+       (base32 "061p18v0mhzq517791xkjs8a5dfynq1418a1mwxpji69zp2jzb41"))))
    (build-system gnu-build-system)
    (inputs `(("perl" ,perl)))
    (arguments