gnu: Add clutter.
[jackhill/guix/guix.git] / gnu / packages / package-management.scm
index f31f872..3da9df9 100644 (file)
   #:use-module ((guix licenses) #:select (gpl2+ gpl3+ lgpl2.1+))
   #:use-module (gnu packages)
   #:use-module (gnu packages guile)
-  #:use-module ((gnu packages compression) #:select (bzip2 gzip))
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages gnutls)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages autotools)
@@ -37,6 +38,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages openssl)
   #:use-module (gnu packages bdw-gc))
                      arch "-linux"
                      "/20131110/guile-2.0.9.tar.xz")))
 
-(define-public guix-0.8.1
+(define-public guix-0.8.2
   (package
     (name "guix")
-    (version "0.8.1")
+    (version "0.8.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "ftp://alpha.gnu.org/gnu/guix/guix-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "12h5ldj1yf0za6ladlr8h7nx2gqrv2dxcsiwyqayvrza93lijkf5"))))
+               "1a5gnkh17w7fgi5zy63ph64iqdvarkdqypkwgw2iifpqa6jq04zz"))))
     (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 (alist-cons-before
-                 'configure 'copy-bootstrap-guile
-                 (lambda* (#:key system inputs #:allow-other-keys)
-                   (define (boot-guile-version arch)
-                     (if (string=? "armhf" arch)
-                         "2.0.11"
-                         "2.0.9"))
+       #:phases (modify-phases %standard-phases
+                  (add-before
+                   'configure 'copy-bootstrap-guile
+                   (lambda* (#:key system inputs #:allow-other-keys)
+                     (define (boot-guile-version arch)
+                       (if (string=? "armhf" arch)
+                           "2.0.11"
+                           "2.0.9"))
 
-                   (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")))
-                       (copy-file guile target)))
+                     (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")))
+                         (copy-file guile target)))
 
-                   (copy "i686")
-                   (copy "x86_64")
-                   (copy "mips64el")
-                   (copy "armhf")
-                   #t)
-                 %standard-phases)))
+                     (copy "i686")
+                     (copy "x86_64")
+                     (copy "mips64el")
+                     (copy "armhf")
+                     #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"))
+                            (json   (assoc-ref inputs "guile-json"))
+                            (gnutls (assoc-ref inputs "gnutls"))
+                            (path   (string-append
+                                     json "/share/guile/site/2.0:"
+                                     gnutls "/share/guile/site/2.0")))
+                       (wrap-program (string-append out "/bin/guix")
+                         `("GUILE_LOAD_PATH" ":" prefix (,path))
+                         `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,path)))
+                       #t))))))
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("emacs" ,emacs-no-x)))      ;for guix.el
     (inputs
                        (base32
                         "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5"))))))
     (propagated-inputs
-     `(("guile-json" ,guile-json)
+     `(("gnutls" ,gnutls)                         ;for 'guix download' & co.
+       ("guile-json" ,guile-json)
        ("geiser" ,geiser)))                       ;for guix.el
 
     (home-page "http://www.gnu.org/software/guix")
@@ -142,9 +163,12 @@ the Nix package manager.")
 
 (define guix-devel
   ;; Development version of Guix.
-  (let ((commit "9586011"))
-    (package (inherit guix-0.8.1)
-      (version (string-append "0.8.1." commit))
+  ;;
+  ;; Note: use a short commit id; when using the long one, the limit on socket
+  ;; file names is exceeded while running the tests.
+  (let ((commit "684bf7c"))
+    (package (inherit guix-0.8.2)
+      (version (string-append "0.8.2." commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -152,9 +176,10 @@ the Nix package manager.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "0dcmw8gz2qxknjnh9k8rdwmgysnxnvawdmlg1pyzngakwlsy1c3z"))))
+                  "0fq9ajj17kbb0f1p79al2vcqah9sl0imayhggcp31c3vq0ahya9g"))
+                (file-name (string-append "guix-" version "-checkout"))))
       (arguments
-       (substitute-keyword-arguments (package-arguments guix-0.8.1)
+       (substitute-keyword-arguments (package-arguments guix-0.8.2)
          ((#:phases phases)
           `(alist-cons-after
             'unpack 'bootstrap
@@ -172,7 +197,8 @@ the Nix package manager.")
          ("gettext" ,gnu-gettext)
          ("texinfo" ,texinfo)
          ("graphviz" ,graphviz)
-         ,@(package-native-inputs guix-0.8.1))))))
+         ("help2man" ,help2man)
+         ,@(package-native-inputs guix-0.8.2))))))
 
 (define-public guix guix-devel)
 
@@ -197,10 +223,10 @@ the Nix package manager.")
               ("openssl" ,openssl)
               ("libgc" ,libgc)
               ("sqlite" ,sqlite)
-              ("bzip2" ,bzip2)
-              ("perl-www-curl" ,perl-www-curl)
-              ("perl-dbi" ,perl-dbi)
-              ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
+              ("bzip2" ,bzip2)))
+    (propagated-inputs `(("perl-www-curl" ,perl-www-curl)
+                         ("perl-dbi" ,perl-dbi)
+                         ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
     (home-page "http://nixos.org/nix/")
     (synopsis "The Nix package manager")
     (description