summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2015-06-18 01:32:37 -0400
committerMark H Weaver <mhw@netris.org>2015-06-18 01:32:37 -0400
commit2abf678682c42842c16e026c51d96b1fa86be88f (patch)
tree7bd59bd08dbaf00f23f37a91d1e7ae3d7a915843 /gnu
parent9ae1e920718e95577c12de890754b6a6a4ff70a1 (diff)
parentc362a40a5825faafc76b72f69fb6595fa29d3f60 (diff)
downloadguix-2abf678682c42842c16e026c51d96b1fa86be88f.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu')
-rw-r--r--gnu/build/install.scm20
-rw-r--r--gnu/packages.scm36
-rw-r--r--gnu/packages/bioinformatics.scm58
-rw-r--r--gnu/packages/ebook.scm4
-rw-r--r--gnu/packages/freedesktop.scm37
-rw-r--r--gnu/packages/image.scm23
-rw-r--r--gnu/packages/ocaml.scm7
-rw-r--r--gnu/packages/package-management.scm4
-rw-r--r--gnu/packages/qt.scm14
-rw-r--r--gnu/packages/samba.scm6
-rw-r--r--gnu/system.scm15
-rw-r--r--gnu/system/install.scm6
12 files changed, 197 insertions, 33 deletions
diff --git a/gnu/build/install.scm b/gnu/build/install.scm
index 32fbe8efbc..9085e22e09 100644
--- a/gnu/build/install.scm
+++ b/gnu/build/install.scm
@@ -161,20 +161,27 @@ as created and modified at the Epoch."
                   (utime file 0 0 0 0))))
             (find-files directory "")))
 
-(define (register-closure store closure)
+(define* (register-closure store closure
+                           #:key (deduplicate? #t))
   "Register CLOSURE in STORE, where STORE is the directory name of the target
 store and CLOSURE is the name of a file containing a reference graph as used
-by 'guix-register'.  As a side effect, this resets timestamps on store files."
-  (let ((status (system* "guix-register" "--prefix" store
-                         closure)))
+by 'guix-register'.  As a side effect, this resets timestamps on store files
+and, if DEDUPLICATE? is true, deduplicates files common to CLOSURE and the
+rest of STORE."
+  (let ((status (apply system* "guix-register" "--prefix" store
+                       (append (if deduplicate? '() '("--no-deduplication"))
+                               (list closure)))))
     (unless (zero? status)
       (error "failed to register store items" closure))))
 
 (define* (populate-single-profile-directory directory
-                                            #:key profile closure)
+                                            #:key profile closure
+                                            deduplicate?)
   "Populate DIRECTORY with a store containing PROFILE, whose closure is given
 in the file called CLOSURE (as generated by #:references-graphs.)  DIRECTORY
 is initialized to contain a single profile under /root pointing to PROFILE.
+DEDUPLICATE? determines whether to deduplicate files in the store.
+
 This is used to create the self-contained Guix tarball."
   (define (scope file)
     (string-append directory "/" file))
@@ -190,7 +197,8 @@ This is used to create the self-contained Guix tarball."
 
   ;; Populate the store.
   (populate-store (list closure) directory)
-  (register-closure (canonicalize-path directory) closure)
+  (register-closure (canonicalize-path directory) closure
+                    #:deduplicate? deduplicate?)
 
   ;; XXX: 'guix-register' registers profiles as GC roots but the symlink
   ;; target uses $TMPDIR.  Fix that.
diff --git a/gnu/packages.scm b/gnu/packages.scm
index 9eb4877be8..6e46a890bb 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -51,7 +51,8 @@
 
             check-package-freshness
 
-            specification->package))
+            specification->package
+            specification->package+output))
 
 ;;; Commentary:
 ;;;
@@ -418,3 +419,36 @@ present, return the preferred newest version."
            (leave (_ "~A: package not found for version ~a~%")
                   name version)
            (leave (_ "~A: unknown package~%") name))))))
+
+(define* (specification->package+output spec #:optional (output "out"))
+  "Return the package and output specified by SPEC, or #f and #f; SPEC may
+optionally contain a version number and an output name, as in these examples:
+
+  guile
+  guile-2.0.9
+  guile:debug
+  guile-2.0.9:debug
+
+If SPEC does not specify a version number, return the preferred newest
+version; if SPEC does not specify an output, return OUTPUT."
+  (define (ensure-output p sub-drv)
+    (if (member sub-drv (package-outputs p))
+        sub-drv
+        (leave (_ "package `~a' lacks output `~a'~%")
+               (package-full-name p)
+               sub-drv)))
+
+  (let-values (((name version sub-drv)
+                (package-specification->name+version+output spec output)))
+    (match (find-best-packages-by-name name version)
+      ((p)
+       (values p (ensure-output p sub-drv)))
+      ((p p* ...)
+       (warning (_ "ambiguous package specification `~a'~%")
+                spec)
+       (warning (_ "choosing ~a from ~a~%")
+                (package-full-name p)
+                (location->string (package-location p)))
+       (values p (ensure-output p sub-drv)))
+      (()
+       (leave (_ "~a: package not found~%") spec)))))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 0d8a6d518c..12c9175ed3 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +29,7 @@
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages algebra)
   #:use-module (gnu packages base)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
@@ -87,7 +89,7 @@ BAM files.")
 (define-public bedops
   (package
     (name "bedops")
-    (version "2.4.5")
+    (version "2.4.14")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/bedops/bedops/archive/v"
@@ -95,7 +97,7 @@ BAM files.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0wmg6j0icimlrnsidaxrzf3hfgjvlkkcwvpdg7n4gg7hdv2m9ni5"))))
+                "1kqbac547wyqma81cyky9n7mkgikjpsfd3nnmcm6hpqwanqgh10v"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f
@@ -615,6 +617,56 @@ file formats including SAM/BAM, Wiggle/BigWig, BED, GFF/GTF, VCF.")
 other types of unwanted sequence from high-throughput sequencing reads.")
     (license license:expat)))
 
+(define-public diamond
+  (package
+    (name "diamond")
+    (version "0.7.9")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/bbuchfink/diamond/archive/v"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0hfkcfv9f76h5brbyw9fyvmc0l9cmbsxrcdqk0fa9xv82zj47p15"))
+              (snippet '(begin
+                          (delete-file "bin/diamond")
+                          #t))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f  ;no "check" target
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enter-source-dir
+                    (lambda _
+                      (chdir "src")
+                      #t))
+         (delete 'configure)
+         (replace 'install
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (let ((bin (string-append (assoc-ref outputs "out")
+                                              "/bin")))
+                      (mkdir-p bin)
+                      (copy-file "../bin/diamond"
+                                 (string-append bin "/diamond"))
+                      #t))))))
+    (native-inputs
+     `(("bc" ,bc)))
+    (inputs
+     `(("boost" ,boost)
+       ("zlib" ,zlib)))
+    (home-page "https://github.com/bbuchfink/diamond")
+    (synopsis "Accelerated BLAST compatible local sequence aligner")
+    (description
+     "DIAMOND is a BLAST-compatible local aligner for mapping protein and
+translated DNA query sequences against a protein reference database (BLASTP
+and BLASTX alignment mode).  The speedup over BLAST is up to 20,000 on short
+reads at a typical sensitivity of 90-99% relative to BLAST depending on the
+data and settings.")
+    (license (license:non-copyleft "file://src/COPYING"
+                                   "See src/COPYING in the distribution."))))
+
 (define-public edirect
   (package
     (name "edirect")
@@ -1063,7 +1115,7 @@ sequencing tag position and orientation.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://pypi.python.org/packages/source/m/misopy/misopy-"
+                    "https://pypi.python.org/packages/source/m/misopy/misopy-"
                     version ".tar.gz"))
               (sha256
                (base32
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 2be5ea351a..670fc64de8 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -60,7 +60,7 @@
 (define-public calibre
   (package
     (name "calibre")
-    (version "2.29.0")
+    (version "2.30.0")
     (source
       (origin
         (method url-fetch)
@@ -69,7 +69,7 @@
                             version ".tar.xz"))
         (sha256
           (base32
-           "1n3cfnjnghhhsgzcbcvbr0gh191lhl6az09q1s68jhlcc2lski6l"))
+           "1k2rpn06nfzqjy5k6fh8pwfj8vbhpn7rgkpkkpz5n2fqg3z8ph1j"))
         ;; Remove non-free or doubtful code, see
         ;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html
         (modules '((guix build utils)))
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index c5b55f30a2..eeb97cdc85 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -38,7 +38,9 @@
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages glib)                ;intltool
   #:use-module (gnu packages xdisorg)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages doxygen)
+  #:use-module (gnu packages libffi))
 
 (define-public xdg-utils
   (package
@@ -197,3 +199,36 @@ Python")
 
 (define-public python2-pyxdg
   (package-with-python2 python-pyxdg))
+
+(define-public wayland
+  (package
+    (name "wayland")
+    (version "1.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://wayland.freedesktop.org/releases/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1j3gfzn8i0xhk3j34mwb2srrscjxfyi279jhyq80mz943j6r6z7i"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("pkg-config" ,pkg-config)
+       ("xmlto" ,xmlto)
+       ("xsltproc" ,libxslt)))
+    (inputs
+     `(("docbook-xml" ,docbook-xml)
+       ("docbook-xsl" ,docbook-xsl)
+       ("expat" ,expat)
+       ("libffi" ,libffi)
+       ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
+    (home-page "http://wayland.freedesktop.org/")
+    (synopsis "Display server protocol")
+    (description
+     "Wayland is a protocol for a compositor to talk to its clients as well as
+a C library implementation of that protocol.  The compositor can be a standalone
+display server running on Linux kernel modesetting and evdev input devices, an X
+application, or a wayland client itself.  The clients can be traditional
+applications, X servers (rootless or fullscreen) or other display servers.")
+    (license license:x11)))
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index a7483ba94a..ad4acb787e 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -582,3 +582,26 @@ with lossy compression and typically provides 3x smaller file sizes compared
 to PNG when lossy compression is acceptable for the red/green/blue color
 channels.")
     (license license:bsd-3)))
+
+(define-public libmng
+  (package
+    (name "libmng")
+    (version "2.0.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/libmng/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1lvxnpds0vcf0lil6ia2036ghqlbl740c4d2sz0q5g6l93fjyija"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+     ;; These are all in the 'Libs.private' field of libmng.pc.
+     `(("lcms" ,lcms)
+       ("libjpeg" ,libjpeg)
+       ("zlib" ,zlib)))
+    (home-page "http://www.libmng.com/")
+    (synopsis "Library for handling MNG files")
+    (description
+     "Libmng is the MNG (Multiple-image Network Graphics) reference library.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 5baf24cac0..84841d017c 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -24,12 +24,12 @@
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages base)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages commencement)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages texlive)
   #:use-module (gnu packages perl)
@@ -57,8 +57,9 @@
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("libx11" ,libx11)
-       ("gcc:lib" ,gcc-final "lib") ; for libiberty, needed for objdump support
-       ("zlib" ,zlib)))             ; also needed for objdump support
+       ;; For libiberty, needed for objdump support.
+       ("gcc:lib" ,(canonical-package gcc-4.8) "lib")
+       ("zlib" ,zlib)))                       ;also needed for objdump support
     (arguments
      `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 7f6ec56151..3da9df92cc 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -166,7 +166,7 @@ the Nix package manager.")
   ;;
   ;; 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 "a43b55f"))
+  (let ((commit "684bf7c"))
     (package (inherit guix-0.8.2)
       (version (string-append "0.8.2." commit))
       (source (origin
@@ -176,7 +176,7 @@ the Nix package manager.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "1r0l8gfh5nxc1j0sqj8ywkg280k9qbj7zsk33z84rvl7l0nwnk88"))
+                  "0fq9ajj17kbb0f1p79al2vcqah9sl0imayhggcp31c3vq0ahya9g"))
                 (file-name (string-append "guix-" version "-checkout"))))
       (arguments
        (substitute-keyword-arguments (package-arguments guix-0.8.2)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 3bc3145e8d..1cf72e1586 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -29,6 +29,8 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cups)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gl)
@@ -93,7 +95,7 @@ X11 (yet).")
 (define-public qt
   (package
     (name "qt")
-    (version "5.4.1")
+    (version "5.4.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://download.qt-project.org/official_releases/qt/"
@@ -103,7 +105,7 @@ X11 (yet).")
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0q6qzakq8xihw91xv310qi3vyylq7x2bzdkjgy8sqxii2lgbjzhv"))
+               "09gay5cimfdb0apy60v7z4r4zkl2vjysdppzihpla8dp2c30fvcc"))
              (patches (list (search-patch "qt5-conflicting-typedefs.patch")
                             (search-patch "qt5-runpath.patch")))
              (snippet
@@ -119,12 +121,14 @@ webrtc/tools/e2e_quality/audio/perf")))))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("dbus" ,dbus)
+       ("cups" ,cups)
        ("expat" ,expat)
        ("fontconfig" ,fontconfig)
        ("freetype" ,freetype)
        ("glib" ,glib)
        ("icu4c" ,icu4c)
        ("libjpeg" ,libjpeg)
+       ("libmng" ,libmng)
        ("libpci" ,pciutils)
        ("libpng" ,libpng)
        ("libx11" ,libx11)
@@ -143,10 +147,12 @@ webrtc/tools/e2e_quality/audio/perf")))))
        ("mysql" ,mysql)
        ("nss" ,nss)
        ("openssl" ,openssl)
+       ("postgresql" ,postgresql)
        ("pulseaudio" ,pulseaudio)
        ("pcre" ,pcre)
        ("sqlite" ,sqlite)
        ("udev" ,eudev)
+       ("unixodbc" ,unixodbc)
        ("xcb-util" ,xcb-util)
        ("xcb-util-image" ,xcb-util-image)
        ("xcb-util-keysyms" ,xcb-util-keysyms)
@@ -221,7 +227,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
 
 (define-public qt-4
   (package (inherit qt)
-    (version "4.8.6")
+    (version "4.8.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://download.qt-project.org/official_releases/qt/"
@@ -231,7 +237,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0b036iqgmbbv37dgwwfihw3mihjbnw3kb5kaisdy0qi8nn8xs54b"))
+               "183fca7n7439nlhxyg1z7aky0izgbyll3iwakw4gwivy16aj5272"))
              (patches (map search-patch
                            '("qt4-ldflags.patch" "qt4-tests.patch")))))
     (inputs `(,@(alist-delete "libjpeg" (package-inputs qt))
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index 8e53debcb3..d7223bc0ba 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -168,14 +168,14 @@ Desktops into Active Directory environments using the winbind daemon.")
 (define-public talloc
   (package
     (name "talloc")
-    (version "2.1.0")
+    (version "2.1.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://www.samba.org/ftp/talloc/talloc-"
+              (uri (string-append "https://www.samba.org/ftp/talloc/talloc-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "13zh628hzlp2v9vj70knnfac2xbxqrdhgap30csq4zv4h8w3j087"))))
+                "13c365f7y8idjf2v1jxdjpkc3lxdmsxxfxjx1ymianm7zjiph393"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (alist-replace
diff --git a/gnu/system.scm b/gnu/system.scm
index 92ed454b2c..565d6c10c7 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -148,8 +149,8 @@
   (setuid-programs operating-system-setuid-programs
                    (default %setuid-programs))    ; list of string-valued gexps
 
-  (sudoers operating-system-sudoers               ; file-like
-           (default %sudoers-specification)))
+  (sudoers-file operating-system-sudoers-file     ; file-like
+                (default %sudoers-specification)))
 
 
 ;;;
@@ -440,7 +441,7 @@ on SHELLS.  /etc/shells is used by xterm, polkit, and other programs."
                         (pam-services '())
                         (profile "/run/current-system/profile")
                         hosts-file nss (shells '())
-                        (sudoers (plain-file "sudoers" "")))
+                        (sudoers-file (plain-file "sudoers" "")))
   "Return a derivation that builds the static part of the /etc directory."
   (mlet* %store-monad
       ((pam.d      (pam-services->directory pam-services))
@@ -540,7 +541,7 @@ fi\n"))
                   ("hosts" ,#~#$hosts-file)
                   ("localtime" ,#~(string-append #$tzdata "/share/zoneinfo/"
                                                  #$timezone))
-                  ("sudoers" ,sudoers)))))
+                  ("sudoers" ,sudoers-file)))))
 
 (define (operating-system-profile os)
   "Return a derivation that builds the system profile of OS."
@@ -624,9 +625,9 @@ use 'plain-file' instead~%")
                   #:timezone (operating-system-timezone os)
                   #:hosts-file /etc/hosts
                   #:shells shells
-                  #:sudoers (maybe-string->file
-                             "sudoers"
-                             (operating-system-sudoers os))
+                  #:sudoers-file (maybe-string->file
+                                  "sudoers"
+                                  (operating-system-sudoers-file os))
                   #:profile profile-drv)))
 
 (define %setuid-programs
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index e8a36b3def..6f4116ef9b 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -63,15 +63,19 @@ under /root/.guix-profile where GUIX is installed."
           (setenv "PATH"
                   (string-append #$guix "/sbin:" #$tar "/bin:" #$xz "/bin"))
 
+          ;; Note: there is not much to gain here with deduplication and there
+          ;; is the overhead of the '.links' directory, so turn it off.
           (populate-single-profile-directory %root
                                              #:profile #$profile
-                                             #:closure "profile")
+                                             #:closure "profile"
+                                             #:deduplicate? #f)
 
           ;; Create the tarball.  Use GNU format so there's no file name
           ;; length limitation.
           (with-directory-excursion %root
             (zero? (system* "tar" "--xz" "--format=gnu"
                             "--owner=root:0" "--group=root:0"
+                            "--check-links"
                             "-cvf" #$output
                             ;; Avoid adding / and /var to the tarball,
                             ;; so that the ownership and permissions of those