summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/package-management.scm362
1 files changed, 176 insertions, 186 deletions
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index d5248a3047..0c69cda0b5 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -68,207 +68,197 @@
                         arch "-linux"
                         "/20131110/guile-2.0.9.tar.xz"))))
 
-(define-public guix-release
-  (package
-    (name "guix")
-    (version "0.12.0")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "ftp://alpha.gnu.org/gnu/guix/guix-"
-                                 version ".tar.gz"))
-             (sha256
-              (base32
-               "1jgy5mlygmhxdqhrp6vr8w83ndcm5mk64xfravr8l2d7hq8y40b2"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:configure-flags (list
-                          "--localstatedir=/var"
-                          "--sysconfdir=/etc"
-                          (string-append "--with-bash-completion-dir="
-                                         (assoc-ref %outputs "out")
-                                         "/etc/bash_completion.d")
-                          (string-append "--with-libgcrypt-prefix="
-                                         (assoc-ref %build-inputs
-                                                    "libgcrypt")))
-       #:parallel-tests? #f           ;work around <http://bugs.gnu.org/21097>
+(define-public guix
+  ;; Latest version of Guix, which may or may not correspond to a release.
+  (let ((version "0.12.0")
+        (commit "25a49294caf2386e65fc1b12a2508324be0b1cc2")
+        (revision 9))
+    (package
+      (name "guix")
 
-       #:modules ((guix build gnu-build-system)
-                  (guix build utils)
-                  (ice-9 popen)
-                  (ice-9 rdelim))
+      ;; Note: use a very short commit id; with a longer one, the limit on
+      ;; hash-bang lines would be exceeded while running the tests.
+      (version (if (zero? revision)
+                   version
+                   (string-append version "-"
+                                  (number->string revision)
+                                  "." (string-take commit 4))))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.savannah.gnu.org/r/guix.git")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "0p4rh0629j89v4ka5dsp70a1xrfhg7sxjjq54p68vw7x5dkann4a"))
+                (file-name (string-append "guix-" version "-checkout"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:configure-flags (list
+                            "--localstatedir=/var"
+                            "--sysconfdir=/etc"
+                            (string-append "--with-bash-completion-dir="
+                                           (assoc-ref %outputs "out")
+                                           "/etc/bash_completion.d")
+                            (string-append "--with-libgcrypt-prefix="
+                                           (assoc-ref %build-inputs
+                                                      "libgcrypt"))
 
-       #:phases (modify-phases %standard-phases
-                  (add-before
-                   'configure 'copy-bootstrap-guile
-                   (lambda* (#:key system inputs #:allow-other-keys)
-                     (define (boot-guile-version arch)
-                       (cond ((string=? "armhf" arch)   "2.0.11")
-                             ((string=? "aarch64" arch) "2.0.14")
-                             (else "2.0.9")))
+                            ;; Set 'DOT_USER_PROGRAM' to the empty string so
+                            ;; we don't keep a reference to Graphviz, whose
+                            ;; closure is pretty big (too big for the GuixSD
+                            ;; installation image.)
+                            "ac_cv_path_DOT_USER_PROGRAM=dot")
+         #:parallel-tests? #f         ;work around <http://bugs.gnu.org/21097>
 
-                     (define (copy arch)
-                       (let ((guile  (assoc-ref inputs
-                                                (string-append "boot-guile/"
-                                                               arch)))
-                             (target (string-append "gnu/packages/bootstrap/"
-                                                    arch "-linux/"
-                                                    "/guile-"
-                                                    (boot-guile-version arch)
-                                                    ".tar.xz")))
-                         (mkdir-p (dirname target)) ;XXX: eventually unneeded
-                         (copy-file guile target)))
+         #:modules ((guix build gnu-build-system)
+                    (guix build utils)
+                    (ice-9 popen)
+                    (ice-9 rdelim))
 
-                     (copy "i686")
-                     (copy "x86_64")
-                     (copy "mips64el")
-                     (copy "armhf")
-                     (copy "aarch64")
-                     #t))
-                  (add-after
-                   'unpack 'disable-container-tests
-                   ;; XXX FIXME: These tests fail within the build container.
-                   (lambda _
-                     (substitute* "tests/syscalls.scm"
-                       (("^\\(test-(assert|equal) \"(clone|setns|pivot-root)\"" all)
-                        (string-append "(test-skip 1)\n" all)))
-                     (substitute* "tests/containers.scm"
-                       (("^\\(test-(assert|equal)" all)
-                        (string-append "(test-skip 1)\n" all)))
-                     (when (file-exists? "tests/guix-environment-container.sh")
-                       (substitute* "tests/guix-environment-container.sh"
-                         (("guix environment --version")
-                          "exit 77\n")))
-                     #t))
-                  (add-before 'check 'set-SHELL
-                    (lambda _
-                      ;; 'guix environment' tests rely on 'SHELL' having a
-                      ;; correct value, so set it.
-                      (setenv "SHELL" (which "sh"))
-                      #t))
-                  (add-after 'install 'wrap-program
-                   (lambda* (#:key inputs outputs #:allow-other-keys)
-                     ;; Make sure the 'guix' command finds GnuTLS and
-                     ;; Guile-JSON automatically.
-                     (let* ((out    (assoc-ref outputs "out"))
-                            (guile  (assoc-ref inputs "guile"))
-                            (json   (assoc-ref inputs "guile-json"))
-                            (ssh    (assoc-ref inputs "guile-ssh"))
-                            (gnutls (assoc-ref inputs "gnutls"))
-                            (effective
-                             (read-line
-                              (open-pipe* OPEN_READ
-                                          (string-append guile "/bin/guile")
-                                          "-c" "(display (effective-version))")))
-                            (path   (string-append
-                                     json "/share/guile/site/" effective ":"
-                                     ssh "/share/guile/site/" effective ":"
-                                     gnutls "/share/guile/site/" effective)))
+         #:phases (modify-phases %standard-phases
+                    (add-after 'unpack 'bootstrap
+                      (lambda _
+                        ;; Make sure 'msgmerge' can modify the PO files.
+                        (for-each (lambda (po)
+                                    (chmod po #o666))
+                                  (find-files "." "\\.po$"))
 
-                       (wrap-program (string-append out "/bin/guix")
-                         `("GUILE_LOAD_PATH" ":" prefix (,path))
-                         `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,path)))
+                        (zero? (system* "sh" "bootstrap"))))
+                    (add-before
+                        'configure 'copy-bootstrap-guile
+                      (lambda* (#:key system inputs #:allow-other-keys)
+                        (define (boot-guile-version arch)
+                          (cond ((string=? "armhf" arch)   "2.0.11")
+                                ((string=? "aarch64" arch) "2.0.14")
+                                (else "2.0.9")))
 
-                       #t))))))
-    (native-inputs `(("pkg-config" ,pkg-config)
+                        (define (copy arch)
+                          (let ((guile  (assoc-ref inputs
+                                                   (string-append "boot-guile/"
+                                                                  arch)))
+                                (target (string-append "gnu/packages/bootstrap/"
+                                                       arch "-linux/"
+                                                       "/guile-"
+                                                       (boot-guile-version arch)
+                                                       ".tar.xz")))
+                            (mkdir-p (dirname target)) ;XXX: eventually unneeded
+                            (copy-file guile target)))
 
-                     ;; XXX: Keep the development inputs here even though
-                     ;; they're unnecessary, just so that 'guix environment
-                     ;; guix' always contains them.
-                     ("autoconf" ,(autoconf-wrapper))
-                     ("automake" ,automake)
-                     ("gettext" ,gettext-minimal)
-                     ("texinfo" ,texinfo)
-                     ("graphviz" ,graphviz)
-                     ("help2man" ,help2man)))
-    (inputs
-     (let ((boot-guile (lambda (arch hash)
-                         (origin
-                          (method url-fetch)
-                          (uri (boot-guile-uri arch))
-                          (sha256 hash)))))
-       `(("bzip2" ,bzip2)
-         ("gzip" ,gzip)
-         ("zlib" ,zlib)                           ;for 'guix publish'
+                        (copy "i686")
+                        (copy "x86_64")
+                        (copy "mips64el")
+                        (copy "armhf")
+                        (copy "aarch64")
+                        #t))
+                    (add-after
+                        'unpack 'disable-container-tests
+                      ;; XXX FIXME: These tests fail within the build container.
+                      (lambda _
+                        (substitute* "tests/syscalls.scm"
+                          (("^\\(test-(assert|equal) \"(clone|setns|pivot-root)\"" all)
+                           (string-append "(test-skip 1)\n" all)))
+                        (substitute* "tests/containers.scm"
+                          (("^\\(test-(assert|equal)" all)
+                           (string-append "(test-skip 1)\n" all)))
+                        (when (file-exists? "tests/guix-environment-container.sh")
+                          (substitute* "tests/guix-environment-container.sh"
+                            (("guix environment --version")
+                             "exit 77\n")))
+                        #t))
+                    (add-before 'check 'set-SHELL
+                      (lambda _
+                        ;; 'guix environment' tests rely on 'SHELL' having a
+                        ;; correct value, so set it.
+                        (setenv "SHELL" (which "sh"))
+                        #t))
+                    (add-after 'install 'wrap-program
+                      (lambda* (#:key inputs outputs #:allow-other-keys)
+                        ;; Make sure the 'guix' command finds GnuTLS and
+                        ;; Guile-JSON automatically.
+                        (let* ((out    (assoc-ref outputs "out"))
+                               (guile  (assoc-ref inputs "guile"))
+                               (json   (assoc-ref inputs "guile-json"))
+                               (ssh    (assoc-ref inputs "guile-ssh"))
+                               (gnutls (assoc-ref inputs "gnutls"))
+                               (effective
+                                (read-line
+                                 (open-pipe* OPEN_READ
+                                             (string-append guile "/bin/guile")
+                                             "-c" "(display (effective-version))")))
+                               (path   (string-append
+                                        json "/share/guile/site/" effective ":"
+                                        ssh "/share/guile/site/" effective ":"
+                                        gnutls "/share/guile/site/" effective)))
 
-         ("sqlite" ,sqlite)
-         ("libgcrypt" ,libgcrypt)
-         ("guile" ,guile-2.0)
+                          (wrap-program (string-append out "/bin/guix")
+                            `("GUILE_LOAD_PATH" ":" prefix (,path))
+                            `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,path)))
 
-         ("boot-guile/i686"
-          ,(boot-guile "i686"
-                       (base32
-                        "0im800m30abgh7msh331pcbjvb4n02smz5cfzf1srv0kpx3csmxp")))
-         ("boot-guile/x86_64"
-          ,(boot-guile "x86_64"
-                       (base32
-                        "1w2p5zyrglzzniqgvyn1b55vprfzhgk8vzbzkkbdgl5248si0yq3")))
-         ("boot-guile/mips64el"
-          ,(boot-guile "mips64el"
-                       (base32
-                        "0fzp93lvi0hn54acc0fpvhc7bvl0yc853k62l958cihk03q80ilr")))
-         ("boot-guile/armhf"
-          ,(boot-guile "armhf"
-                       (base32
-                        "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5")))
-         ("boot-guile/aarch64"
-          ,(boot-guile "aarch64"
-                       (base32
-                        "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r"))))))
-    (propagated-inputs
-     `(("gnutls" ,gnutls)                         ;for 'guix download' & co.
-       ("guile-json" ,guile-json)
-       ("guile-ssh" ,guile-ssh)))
+                          #t))))))
+      (native-inputs `(("pkg-config" ,pkg-config)
 
-    (home-page "https://www.gnu.org/software/guix/")
-    (synopsis "Functional package manager for installed software packages and versions")
-    (description
-     "GNU Guix is a functional package manager for the GNU system, and is
+                       ;; XXX: Keep the development inputs here even though
+                       ;; they're unnecessary, just so that 'guix environment
+                       ;; guix' always contains them.
+                       ("autoconf" ,(autoconf-wrapper))
+                       ("automake" ,automake)
+                       ("gettext" ,gettext-minimal)
+                       ("texinfo" ,texinfo)
+                       ("graphviz" ,graphviz)
+                       ("help2man" ,help2man)))
+      (inputs
+       (let ((boot-guile (lambda (arch hash)
+                           (origin
+                             (method url-fetch)
+                             (uri (boot-guile-uri arch))
+                             (sha256 hash)))))
+         `(("bzip2" ,bzip2)
+           ("gzip" ,gzip)
+           ("zlib" ,zlib)                         ;for 'guix publish'
+
+           ("sqlite" ,sqlite)
+           ("libgcrypt" ,libgcrypt)
+           ("guile" ,guile-2.0)
+
+           ("boot-guile/i686"
+            ,(boot-guile "i686"
+                         (base32
+                          "0im800m30abgh7msh331pcbjvb4n02smz5cfzf1srv0kpx3csmxp")))
+           ("boot-guile/x86_64"
+            ,(boot-guile "x86_64"
+                         (base32
+                          "1w2p5zyrglzzniqgvyn1b55vprfzhgk8vzbzkkbdgl5248si0yq3")))
+           ("boot-guile/mips64el"
+            ,(boot-guile "mips64el"
+                         (base32
+                          "0fzp93lvi0hn54acc0fpvhc7bvl0yc853k62l958cihk03q80ilr")))
+           ("boot-guile/armhf"
+            ,(boot-guile "armhf"
+                         (base32
+                          "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5")))
+           ("boot-guile/aarch64"
+            ,(boot-guile "aarch64"
+                         (base32
+                          "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r"))))))
+      (propagated-inputs
+       `(("gnutls" ,gnutls)                       ;for 'guix download' & co.
+         ("guile-json" ,guile-json)
+         ("guile-ssh" ,guile-ssh)))
+
+      (home-page "https://www.gnu.org/software/guix/")
+      (synopsis "Functional package manager for installed software packages and versions")
+      (description
+       "GNU Guix is a functional package manager for the GNU system, and is
 also a distribution thereof.  It includes a virtual machine image.  Besides
 the usual package management features, it also supports transactional
 upgrades and roll-backs, per-user profiles, and much more.  It is based on
 the Nix package manager.")
-    (license gpl3+)
-    (properties '((ftp-server . "alpha.gnu.org")))))
-
-(define guix-devel
-  ;; Development version of Guix.
-  ;;
-  ;; Note: use a very short commit id; with a longer one, the limit on
-  ;; hash-bang lines would be exceeded while running the tests.
-  (let ((commit "25a49294caf2386e65fc1b12a2508324be0b1cc2"))
-    (package (inherit guix-release)
-      (version (string-append "0.12.0-9." (string-take commit 4)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      ;; "git://git.sv.gnu.org/guix.git" temporarily
-                      ;; unavailable (XXX).
-                      (url "http://git.savannah.gnu.org/r/guix.git")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "0p4rh0629j89v4ka5dsp70a1xrfhg7sxjjq54p68vw7x5dkann4a"))
-                (file-name (string-append "guix-" version "-checkout"))))
-      (arguments
-       (substitute-keyword-arguments (package-arguments guix-release)
-         ((#:configure-flags flags)
-          ;; Set 'DOT_USER_PROGRAM' to the empty string so we don't keep a
-          ;; reference to Graphviz, whose closure is pretty big (too big for
-          ;; the GuixSD installation image.)
-          `(cons "ac_cv_path_DOT_USER_PROGRAM=dot" ,flags))
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (add-after
-              'unpack 'bootstrap
-              (lambda _
-                ;; Make sure 'msgmerge' can modify the PO files.
-                (for-each (lambda (po)
-                            (chmod po #o666))
-                          (find-files "." "\\.po$"))
-
-                (zero? (system* "sh" "bootstrap")))))))))))
+      (license gpl3+)
+      (properties '((ftp-server . "alpha.gnu.org"))))))
 
-(define-public guix guix-devel)
+;; Alias for backward compatibility.
+(define-public guix-devel guix)
 
 (define (source-file? file stat)
   "Return true if FILE is likely a source file, false if it is a typical