summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/admin.scm4
-rw-r--r--gnu/packages/asciidoc.scm52
-rw-r--r--gnu/packages/backup.scm9
-rw-r--r--gnu/packages/documentation.scm117
-rw-r--r--gnu/packages/doxygen.scm59
-rw-r--r--gnu/packages/linux.scm12
-rw-r--r--gnu/packages/mail.scm14
-rw-r--r--gnu/packages/maths.scm261
-rw-r--r--gnu/packages/patches/doc++-include-directives.patch224
-rw-r--r--gnu/packages/patches/doc++-segfault-fix.patch169
-rw-r--r--gnu/packages/patches/hdf5-config-date.patch21
-rw-r--r--gnu/packages/patches/hypre-doc-tables.patch25
-rw-r--r--gnu/packages/patches/hypre-ldflags.patch9
-rw-r--r--gnu/packages/patches/libarchive-CVE-2016-1541.patch67
-rw-r--r--gnu/packages/patches/netcdf-config-date.patch47
-rw-r--r--gnu/packages/vpn.scm9
16 files changed, 964 insertions, 135 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 303e9978a5..633606e840 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -1569,14 +1569,14 @@ done with the @code{auditctl} utility.")
(define-public nmap
(package
(name "nmap")
- (version "7.11")
+ (version "7.12")
(source (origin
(method url-fetch)
(uri (string-append "https://nmap.org/dist/nmap-" version
".tar.bz2"))
(sha256
(base32
- "0jlmq1w0gjqpa7qa523kdj73ndm1xzww2wjvb94hxh6yalargyhk"))
+ "014vagh9ak10hidwzp9s6g30y5h5fhsh8wykcnc1hnn9hwm0ipv3"))
(modules '((guix build utils)))
(snippet
'(map delete-file-recursively
diff --git a/gnu/packages/asciidoc.scm b/gnu/packages/asciidoc.scm
deleted file mode 100644
index 5bc5cfa7f9..0000000000
--- a/gnu/packages/asciidoc.scm
+++ /dev/null
@@ -1,52 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages asciidoc)
- #:use-module (guix licenses)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (gnu packages python)
- #:use-module (guix build-system gnu)
- #:autoload (gnu packages zip) (unzip))
-
-(define-public asciidoc
- (package
- (name "asciidoc")
- (version "8.6.9")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/asciidoc/asciidoc-"
- version ".tar.gz"))
- (sha256
- (base32
- "1w71nk527lq504njmaf0vzr93pgahkgzzxzglrq6bay8cw2rvnvq"))))
- (build-system gnu-build-system)
- (arguments '(#:tests? #f)) ; no 'check' target
- (inputs `(("python" ,python-2)))
- (home-page "http://www.methods.co.nz/asciidoc/")
- (synopsis "Text-based document generation system")
- (description
- "AsciiDoc is a text document format for writing notes, documentation,
-articles, books, ebooks, slideshows, web pages, man pages and blogs.
-AsciiDoc files can be translated to many formats including HTML, PDF,
-EPUB, man page.
-
-AsciiDoc is highly configurable: both the AsciiDoc source file syntax and
-the backend output markups (which can be almost any type of SGML/XML
-markup) can be customized and extended by the user.")
- (license gpl2+)))
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index a7b48f1154..917bee78d9 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -136,6 +136,7 @@ backups (called chunks) to allow easy burning to CD/DVD.")
(define-public libarchive
(package
(name "libarchive")
+ (replacement libarchive/fixed)
(version "3.1.2")
(source
(origin
@@ -193,6 +194,14 @@ archive. In particular, note that there is currently no built-in support for
random access nor for in-place modification.")
(license license:bsd-2)))
+(define libarchive/fixed
+ (package
+ (inherit libarchive)
+ (source (origin
+ (inherit (package-source libarchive))
+ (patches (cons (search-patch "libarchive-CVE-2016-1541.patch")
+ (origin-patches (package-source libarchive))))))))
+
(define-public rdup
(package
(name "rdup")
diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
new file mode 100644
index 0000000000..17a69e2c25
--- /dev/null
+++ b/gnu/packages/documentation.scm
@@ -0,0 +1,117 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2016 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages documentation)
+ #:use-module (guix licenses)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system cmake)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages flex)
+ #:use-module (gnu packages graphviz)
+ #:use-module (gnu packages gettext)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages xml)
+ #:autoload (gnu packages zip) (unzip))
+
+(define-public asciidoc
+ (package
+ (name "asciidoc")
+ (version "8.6.9")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/asciidoc/asciidoc-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1w71nk527lq504njmaf0vzr93pgahkgzzxzglrq6bay8cw2rvnvq"))))
+ (build-system gnu-build-system)
+ (arguments '(#:tests? #f)) ; no 'check' target
+ (inputs `(("python" ,python-2)))
+ (home-page "http://www.methods.co.nz/asciidoc/")
+ (synopsis "Text-based document generation system")
+ (description
+ "AsciiDoc is a text document format for writing notes, documentation,
+articles, books, ebooks, slideshows, web pages, man pages and blogs.
+AsciiDoc files can be translated to many formats including HTML, PDF,
+EPUB, man page.
+
+AsciiDoc is highly configurable: both the AsciiDoc source file syntax and
+the backend output markups (which can be almost any type of SGML/XML
+markup) can be customized and extended by the user.")
+ (license gpl2+)))
+
+(define-public doxygen
+ (package
+ (name "doxygen")
+ (version "1.8.11")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://ftp.stack.nl/pub/users/dimitri/"
+ name "-" version ".src.tar.gz"))
+ (sha256
+ (base32
+ "0ja02pm3fpfhc5dkry00kq8mn141cqvdqqpmms373ncbwi38pl35"))
+ (patches (search-patches "doxygen-test.patch"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("bison" ,bison)
+ ("flex" ,flex)
+ ("libxml2" ,libxml2) ; provides xmllint for the tests
+ ("python" ,python-2))) ; for creating the documentation
+ (arguments
+ `(#:test-target "tests"))
+ (home-page "http://www.stack.nl/~dimitri/doxygen/")
+ (synopsis "Generate documentation from annotated sources")
+ (description "Doxygen is the de facto standard tool for generating
+documentation from annotated C++ sources, but it also supports other popular
+programming languages such as C, Objective-C, C#, PHP, Java, Python,
+IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl,
+and to some extent D.")
+ (license gpl3+)))
+
+(define-public doc++
+ (package
+ (name "doc++")
+ (version "3.4.10")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://sourceforge.net/projects/docpp/"
+ "files/doc++-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0i37zlxl8g352s4hzpdx0657k5x3czh3xcsfr27irc708gb277pn"))
+ (patches (search-patches "doc++-include-directives.patch"
+ "doc++-segfault-fix.patch"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("flex" ,flex)
+ ("gettext" ,gnu-gettext)))
+ (home-page "http://docpp.sourceforge.net/")
+ (synopsis "Documentation system for C, C++, IDL, and Java")
+ (description
+ "DOC++ is a documentation system for C, C++, IDL, and Java. It can
+generate both TeX output for high-quality hardcopies or HTML output for online
+brwosing. The documentation is extracted directly from the C/C++/IDL source
+or Java class files.")
+ (license gpl2+)))
diff --git a/gnu/packages/doxygen.scm b/gnu/packages/doxygen.scm
deleted file mode 100644
index 8e4cbb936c..0000000000
--- a/gnu/packages/doxygen.scm
+++ /dev/null
@@ -1,59 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2016 Andreas Enge <andreas@enge.fr>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages doxygen)
- #:use-module ((guix licenses) #:select (gpl3+))
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix build-system cmake)
- #:use-module (gnu packages)
- #:use-module (gnu packages bison)
- #:use-module (gnu packages flex)
- #:use-module (gnu packages graphviz)
- #:use-module (gnu packages perl)
- #:use-module (gnu packages xml)
- #:use-module (gnu packages python))
-
-(define-public doxygen
- (package
- (name "doxygen")
- (version "1.8.11")
- (source (origin
- (method url-fetch)
- (uri (string-append "http://ftp.stack.nl/pub/users/dimitri/"
- name "-" version ".src.tar.gz"))
- (sha256
- (base32
- "0ja02pm3fpfhc5dkry00kq8mn141cqvdqqpmms373ncbwi38pl35"))
- (patches (search-patches "doxygen-test.patch"))))
- (build-system cmake-build-system)
- (native-inputs
- `(("bison" ,bison)
- ("flex" ,flex)
- ("libxml2" ,libxml2) ; provides xmllint for the tests
- ("python" ,python-2))) ; for creating the documentation
- (arguments
- `(#:test-target "tests"))
- (home-page "http://www.stack.nl/~dimitri/doxygen/")
- (synopsis "Generate documentation from annotated sources")
- (description "Doxygen is the de facto standard tool for generating
-documentation from annotated C++ sources, but it also supports other popular
-programming languages such as C, Objective-C, C#, PHP, Java, Python,
-IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl,
-and to some extent D.")
- (license gpl3+)))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 550068156c..79d675a830 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -224,7 +224,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
(search-path %load-path file)))
(define-public linux-libre
- (let* ((version "4.5.3")
+ (let* ((version "4.5.4")
(build-phase
'(lambda* (#:key system inputs #:allow-other-keys #:rest args)
;; Avoid introducing timestamps
@@ -302,7 +302,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
(uri (linux-libre-urls version))
(sha256
(base32
- "1zb1qvbzkzih8fdfcvaxcgbhm5kckl6n8d312pbd478svx6fqi2s"))))
+ "0c587v03kz5whh82apva6gwqvczdi6djy29gk0gfd9dbkb2518b1"))))
(build-system gnu-build-system)
(supported-systems '("x86_64-linux" "i686-linux"))
(native-inputs `(("perl" ,perl)
@@ -339,13 +339,13 @@ It has been modified to remove all non-free binary blobs.")
(define-public linux-libre-4.4
(package
(inherit linux-libre)
- (version "4.4.9")
+ (version "4.4.10")
(source (origin
(method url-fetch)
(uri (linux-libre-urls version))
(sha256
(base32
- "04zwmqp5ib19jmbv2b1zzxdp4zhjkmx408mjky92dkyj33j43iki"))))
+ "1k7h632vgh3wlz44qqawy238f4mzn19bm9sz9zqq0ql6wwhkjdkj"))))
(native-inputs
(let ((conf (kernel-config (or (%current-target-system)
(%current-system))
@@ -356,13 +356,13 @@ It has been modified to remove all non-free binary blobs.")
(define-public linux-libre-4.1
(package
(inherit linux-libre)
- (version "4.1.23")
+ (version "4.1.24")
(source (origin
(method url-fetch)
(uri (linux-libre-urls version))
(sha256
(base32
- "0f9ilyr05jmc3416sjy3n42zwch2h7mwg9wazaawjwc7905n8yy0"))))
+ "14jlnq0k86bl4wj8shmvgf34w90bbm9in44j1pdjwwvn169zh9ra"))))
(native-inputs
(let ((conf (kernel-config (or (%current-target-system)
(%current-system))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 13749aa1f8..b127419d7b 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -6,7 +6,7 @@
;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
@@ -605,10 +605,18 @@ MailCore 2.")
("libsm" ,libsm)
("libxml2" ,libxml2)
("perl" ,perl)
- ("python-2" ,python-2)))
+ ("python-2" ,python-2)
+ ("mime-info" ,shared-mime-info)))
(arguments
'(#:configure-flags
- '("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant")))
+ '("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant")
+ #:phases (modify-phases %standard-phases
+ (add-before 'build 'patch-mime
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/procmime.c"
+ (("/usr/share/mime/globs")
+ (string-append (assoc-ref inputs "mime-info")
+ "/share/mime/globs"))))))))
(synopsis "GTK-based Email client")
(description
"Claws-Mail is an email client (and news reader) based on GTK+. The
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 9ba7138f88..10b1e9be45 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -46,6 +46,7 @@
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
#:use-module (gnu packages flex)
#:use-module (gnu packages fltk)
@@ -54,6 +55,7 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages gd)
#:use-module (gnu packages ghostscript)
+ #:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages less)
@@ -65,6 +67,7 @@
#:use-module (gnu packages m4)
#:use-module (gnu packages mpi)
#:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages netpbm)
#:use-module (gnu packages pcre)
#:use-module (gnu packages popt)
#:use-module (gnu packages perl)
@@ -404,7 +407,7 @@ plotting engine by third-party applications like Octave.")
(define-public hdf5
(package
(name "hdf5")
- (version "1.8.12")
+ (version "1.8.17")
(source
(origin
(method url-fetch)
@@ -412,18 +415,27 @@ plotting engine by third-party applications like Octave.")
version "/src/hdf5-"
version ".tar.bz2"))
(sha256
- (base32 "0f9n0v3p3lwc7564791a39c6cn1d3dbrn7d1j3ikqsi27a8hy23d"))))
+ (base32 "0sj8x0gfs5fb28gipnynb9wpkz113h8wq9sva9mxx66kv27xsdgw"))
+ (patches (list (search-patch "hdf5-config-date.patch")))))
(build-system gnu-build-system)
(inputs
`(("zlib" ,zlib)))
(arguments
`(#:phases
- (alist-cons-before
- 'configure 'patch-configure
- (lambda _
- (substitute* "configure"
- (("/bin/mv") "mv")))
- %standard-phases)))
+ (modify-phases %standard-phases
+ (add-before 'configure 'patch-configure
+ (lambda _
+ (substitute* "configure"
+ (("/bin/mv") "mv"))
+ #t))
+ (add-after 'install 'patch-references
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
+ (zlib (assoc-ref inputs "zlib")))
+ (substitute* (find-files bin "h5p?cc")
+ (("-lz" lib)
+ (string-append "-L" zlib "/lib " lib)))
+ #t))))))
(home-page "http://www.hdfgroup.org")
(synopsis "Management suite for extremely large and complex data")
(description "HDF5 is a suite that makes possible the management of
@@ -431,6 +443,103 @@ extremely large and complex data collections.")
(license (license:x11-style
"http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING"))))
+(define-public hdf5-parallel-openmpi
+ (package (inherit hdf5)
+ (name "hdf5-parallel-openmpi")
+ (inputs
+ `(("mpi" ,openmpi)
+ ,@(package-inputs hdf5)))
+ (arguments
+ (substitute-keyword-arguments `(#:configure-flags '("--enable-parallel")
+ ,@(package-arguments hdf5))
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-before 'check 'patch-tests
+ (lambda _
+ ;; OpenMPI's mpirun will exit with non-zero status if it
+ ;; detects an "abnormal termination", i.e. any process not
+ ;; calling MPI_Finalize(). Since the test is explicitely
+ ;; avoiding MPI_Finalize so as not to have at_exit and thus
+ ;; H5C_flush_cache from being called, mpirun will always
+ ;; complain, so turn this test off.
+ (substitute* "testpar/Makefile"
+ (("(^TEST_PROG_PARA.*)t_pflush1(.*)" front back)
+ (string-append front back "\n")))
+ (substitute* "tools/h5diff/testph5diff.sh"
+ (("/bin/sh") (which "sh")))
+ #t))))))
+ (synopsis "Management suite for data with parallel IO support")))
+
+(define-public h5check
+ (package
+ (name "h5check")
+ (version "2.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.hdfgroup.org/ftp/HDF5/tools/"
+ "h5check/src/h5check-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1gm76jbwhz9adbxgn14zx8cj33dmjdr2g5xcy0m9c2gakp8w59kj"))))
+ (build-system gnu-build-system)
+ (inputs `(("hdf5" ,hdf5))) ;h5cc for tests
+ (home-page "https://www.hdfgroup.org/products/hdf5_tools/h5check.html")
+ (synopsis "HDF5 format checker")
+ (description "@code{h5check} is a validation tool for verifying that an
+HDF5 file is encoded according to the HDF File Format Specification.")
+ (license (license:x11-style "file://COPYING"))))
+
+(define-public netcdf
+ (package
+ (name "netcdf")
+ (version "4.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "ftp://ftp.unidata.ucar.edu/pub/netcdf/"
+ "netcdf-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0y6gdcplarwqqnrav2xg1xd6ih732rzzbmdw78v3rl5b8mwcnh0d"))
+ (patches (list (search-patch "netcdf-config-date.patch")))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("m4" ,m4)
+ ("doxygen" ,doxygen)
+ ("graphviz" ,graphviz)))
+ (inputs
+ `(("hdf5" ,hdf5)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:configure-flags '("--enable-doxygen" "--enable-dot")
+ #:parallel-tests? #f)) ;various race conditions
+ (home-page "http://www.unidata.ucar.edu/software/netcdf/")
+ (synopsis "Library for scientific data")
+ (description "NetCDF is an interface for scientific data access and a
+software library that provides an implementation of the interface. The netCDF
+library defines a machine-independent format for representing scientific data.
+Together, the interface, library, and format support the creation, access, and
+sharing of scientific data.")
+ (license (license:x11-style "file://COPYRIGHT"))))
+
+(define-public netcdf-parallel-openmpi
+ (package (inherit netcdf)
+ (name "netcdf-parallel-openmpi")
+ (inputs
+ `(("mpi" ,openmpi)
+ ,@(alist-replace "hdf5" (list hdf5-parallel-openmpi)
+ (package-inputs netcdf))))
+ ;; TODO: Replace pkg-config references in nc-config with absolute references
+ (arguments
+ (substitute-keyword-arguments (package-arguments netcdf)
+ ((#:configure-flags flags)
+ `(cons* "CC=mpicc" "CXX=mpicxx"
+ "--enable-parallel-tests"
+ ;; Shared libraries not supported with parallel IO.
+ "--disable-shared" "--with-pic"
+ ,flags))))))
+
(define-public nlopt
(package
(name "nlopt")
@@ -469,7 +578,6 @@ common interface for a number of different free optimization routines available
online as well as original implementations of various other algorithms.")
(license license:lgpl2.1+)))
-
;; For a fully featured Octave, users are strongly recommended also to install
;; the following packages: texinfo, less, ghostscript, gnuplot.
(define-public octave
@@ -2158,3 +2266,138 @@ are built. It can generate many different fractal types such as the Mandelbrot
set.")
(home-page "http://www.gnu.org/software/xaos/")
(license license:gpl2+)))
+
+(define-public hypre
+ (package
+ (name "hypre")
+ (version "2.11.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/LLNL/hypre/archive/"
+ "v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0q69ia0jivzcr8p049dn3mg8yjpn6nwq4sw9iqac8vr63vi54l6m"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove use of __DATE__ and __TIME__ for reproducibility;
+ ;; substitute the tarball creation time.
+ (substitute* "src/utilities/HYPRE_utilities.h"
+ (("Date Compiled: .*$")
+ "Date Compiled: Mar 28 2016 20:19:59 +0000\"\n"))
+ #t))))
+ (build-system gnu-build-system)
+ (outputs '("out" ;6.1 MiB of headers and libraries
+ "doc")) ;4.8 MiB of documentation
+ (native-inputs
+ `(("doc++" ,doc++)
+ ("netpbm" ,netpbm)
+ ("texlive" ,texlive) ;full package required for fonts
+ ("ghostscript" ,ghostscript)))
+ (inputs
+ `(("blas" ,openblas)
+ ("lapack" ,lapack)))
+ (arguments
+ `(#:modules ((srfi srfi-1)
+ ,@%gnu-build-system-modules)
+ #:configure-flags '("--enable-shared"
+ "--disable-fortran"
+ "--without-MPI"
+ "--with-openmp"
+ "--with-fei"
+ "--with-lapack"
+ "--with-blas")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir-src
+ (lambda _ (chdir "src")))
+ (replace 'configure
+ (lambda* (#:key build target configure-flags
+ #:allow-other-keys #:rest args)
+ (let* ((configure (assoc-ref %standard-phases 'configure)))
+ (apply configure
+ (append args
+ (list #:configure-flags
+ (cons (string-append
+ "--host=" (or target build))
+ configure-flags)))))))
+ (add-after 'build 'build-docs
+ (lambda _
+ (zero? (system* "make" "-Cdocs" "pdf" "html"))))
+ (replace 'check
+ (lambda _
+ (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/hypre/lib"))
+ (setenv "PATH" (string-append "." ":" (getenv "PATH")))
+ (and (system* "make" "check" "CHECKRUN=")
+ (fold (lambda (filename result)
+ (and result
+ (let ((size (stat:size (stat filename))))
+ (when (not (zero? size))
+ (format #t "~a size ~d; error indication~%"
+ filename size))
+ (zero? size))))
+ #t
+ (find-files "test" ".*\\.err$")))))
+ (add-after 'install 'install-docs
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Custom install because docs/Makefile doesn't honor ${docdir}.
+ (let* ((doc (assoc-ref outputs "doc"))
+ (docdir (string-append doc "/share/doc/hypre-" ,version)))
+ (mkdir-p docdir)
+ (with-directory-excursion "docs"
+ (for-each (lambda (base)
+ (install-file (string-append base ".pdf") docdir)
+ (copy-recursively base docdir)) ;html docs
+ '("HYPRE_usr_manual"
+ "HYPRE_ref_manual")))
+ #t))))))
+ (home-page "http://www.llnl.gov/casc/hypre/")
+ (synopsis "Library of solvers and preconditioners for linear equations")
+ (description
+ "HYPRE is a software library of high performance preconditioners and
+solvers for the solution of large, sparse linear systems of equations. It
+features multigrid solvers for both structured and unstructured grid
+problems.")
+ (license license:lgpl2.1)))
+
+(define-public hypre-openmpi
+ (package (inherit hypre)
+ (name "hypre-openmpi")
+ (inputs
+ `(("mpi" ,openmpi)
+ ,@(package-inputs hypre)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments hypre)
+ ((#:configure-flags flags)
+ ``("--with-MPI"
+ ,@(delete "--without-MPI" ,flags)))))
+ (synopsis "Parallel solvers and preconditioners for linear equations")
+ (description
+ "HYPRE is a software library of high performance preconditioners and
+solvers for the solution of large, sparse linear systems of equations on
+parallel computers. It features parallel multigrid solvers for both
+structured and unstructured grid problems.")))
+
+(define-public matio
+ (package
+ (name "matio")
+ (version "1.5.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/matio/" version "/"
+ "matio-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0y2qymgxank8wdiwc68ap8bxdzrhvyw86i29yh3xgn4z1njfd9ir"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("zlib" ,zlib)
+ ("hdf5" ,hdf5)))
+ (home-page "http://matio.sourceforge.net/")
+ (synopsis "Library for reading and writing MAT files")
+ (description "Matio is a library for reading and writing MAT files. It
+supports compressed MAT files, as well as newer (version 7.3) MAT files.")
+ (license license:bsd-2)))
diff --git a/gnu/packages/patches/doc++-include-directives.patch b/gnu/packages/patches/doc++-include-directives.patch
new file mode 100644
index 0000000000..a59a907c3b
--- /dev/null
+++ b/gnu/packages/patches/doc++-include-directives.patch
@@ -0,0 +1,224 @@
+Adapted from https://sourceforge.net/p/docpp/patches/1/
+
+--- doc++-3.4.10/src/comment.ll 2000-06-24 18:50:23.000000000 +0200
++++ doc++-3.4.10/src/comment.ll 2012-09-17 11:14:50.744922841 +0200
+@@ -24,7 +24,7 @@
+
+ #include <assert.h>
+ #include <ctype.h>
+-#include <iostream.h>
++#include <iostream>
+ #include <stdarg.h>
+ #include <stdio.h>
+
+--- doc++-3.4.10/src/cpp.ll 2002-05-09 08:11:14.000000000 +0200
++++ doc++-3.4.10/src/cpp.ll 2012-09-17 11:15:21.184333236 +0200
+@@ -26,7 +26,7 @@
+
+ #include <assert.h>
+ #include <ctype.h>
+-#include <iostream.h>
++#include <iostream>
+ #include <stdarg.h>
+ #include <stdio.h>
+
+--- doc++-3.4.10/src/datahashtable.h 2000-08-27 21:44:34.000000000 +0200
++++ doc++-3.4.10/src/datahashtable.h 2012-09-17 11:22:59.442589960 +0200
+@@ -26,11 +26,13 @@
+ #define _DATAHASHTABLE_H
+
+ #include <assert.h>
+-#include <iostream.h>
++#include <iostream>
+ #include <stdlib.h>
+
+ #include "McDArray.h"
+
++using namespace std;
++
+ /* This should be a private subclass of #DataHashTable#. However, since cfront
+ is not able to compile this constrution, we had move the class to global
+ scope.
+--- doc++-3.4.10/src/doc2dbsgml.ll 2002-05-09 08:11:14.000000000 +0200
++++ doc++-3.4.10/src/doc2dbsgml.ll 2012-09-17 11:20:49.077259414 +0200
+@@ -22,8 +22,8 @@
+
+ %{
+ #include <assert.h>
+-#include <fstream.h>
+-#include <iostream.h>
++#include <fstream>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -36,6 +36,8 @@
+ #undef YY_INPUT
+ #define YY_INPUT(buf, result, max_size) result = yyread(buf, max_size);
+
++using namespace std;
++
+ static Entry* current;
+ static int inPos;
+ static int lastContext;
+--- doc++-3.4.10/src/doc2dbxml.ll 2002-05-09 08:11:14.000000000 +0200
++++ doc++-3.4.10/src/doc2dbxml.ll 2012-09-17 11:20:22.264831159 +0200
+@@ -25,8 +25,8 @@
+
+ %{
+ #include <assert.h>
+-#include <fstream.h>
+-#include <iostream.h>
++#include <fstream>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -39,6 +39,8 @@
+ #undef YY_INPUT
+ #define YY_INPUT(buf, result, max_size) result = yyread(buf, max_size);
+
++using namespace std;
++
+ static Entry* current;
+ static int inPos;
+ static int lastContext;
+--- doc++-3.4.10/src/doc2html.ll 2000-07-17 23:17:24.000000000 +0200
++++ doc++-3.4.10/src/doc2html.ll 2012-09-17 11:22:40.354469631 +0200
+@@ -29,6 +29,8 @@
+ #include "doc.h"
+ #include "nametable.h"
+
++using namespace std;
++
+ extern NameTable gifs;
+
+ #define YY_DECL int yylex()
+--- doc++-3.4.10/src/doc2tex.ll 2000-11-05 17:21:16.000000000 +0100
++++ doc++-3.4.10/src/doc2tex.ll 2012-09-17 11:23:22.210701715 +0200
+@@ -23,8 +23,8 @@
+
+ %{
+ #include <assert.h>
+-#include <fstream.h>
+-#include <iostream.h>
++#include <fstream>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -38,6 +38,8 @@
+ #undef YY_INPUT
+ #define YY_INPUT(buf, result, max_size) result = yyread(buf, max_size);
+
++using namespace std;
++
+ static Entry* current;
+ static int inPos;
+ static int lastContext;
+--- doc++-3.4.10/src/doc.ll 2000-09-17 21:41:17.000000000 +0200
++++ doc++-3.4.10/src/doc.ll 2012-09-17 11:15:37.068009454 +0200
+@@ -23,8 +23,8 @@
+
+ %{
+ #include <assert.h>
+-#include <fstream.h>
+-#include <iostream.h>
++#include <fstream>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+--- doc++-3.4.10/src/equate.cc 2002-05-02 21:13:10.000000000 +0200
++++ doc++-3.4.10/src/equate.cc 2012-09-17 11:25:42.850669366 +0200
+@@ -23,9 +23,9 @@
+
+ #include "config.h"
+
+-#include <fstream.h>
++#include <fstream>
+ #include <getopt.h>
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <string.h>
+
+--- doc++-3.4.10/src/html.cc 2001-02-17 07:34:49.000000000 +0100
++++ doc++-3.4.10/src/html.cc 2012-09-17 11:24:07.978824681 +0200
+@@ -31,7 +31,7 @@
+ #include <direct.h>
+ #endif
+ #include <errno.h>
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+--- doc++-3.4.10/src/java.ll 2001-11-25 18:04:12.000000000 +0100
++++ doc++-3.4.10/src/java.ll 2012-09-17 11:24:19.138834603 +0200
+@@ -26,7 +26,7 @@
+
+ #include <assert.h>
+ #include <ctype.h>
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+
+ #include "doc.h"
+--- doc++-3.4.10/src/main.cc 2002-05-09 08:11:14.000000000 +0200
++++ doc++-3.4.10/src/main.cc 2012-09-17 11:25:30.650719070 +0200
+@@ -25,7 +25,7 @@
+ #include "config.h"
+
+ #include <assert.h>
+-#include <fstream.h>
++#include <fstream>
+ #include <getopt.h>
+ #include <locale.h>
+ #include <stdio.h>
+--- doc++-3.4.10/src/nametable.cc 2000-04-08 23:11:54.000000000 +0200
++++ doc++-3.4.10/src/nametable.cc 2012-09-17 11:25:58.894591128 +0200
+@@ -22,7 +22,7 @@
+ */
+
+ #include <assert.h>
+-#include <iostream.h>
++#include <iostream>
+ #include <stdlib.h>
+ #include <string.h>
+
+--- doc++-3.4.10/src/nametable.h 2000-04-08 23:11:56.000000000 +0200
++++ doc++-3.4.10/src/nametable.h 2012-09-17 11:22:07.826207198 +0200
+@@ -25,7 +25,7 @@
+ #define _NAME_TABLE_H
+
+ #include <assert.h>
+-#include <iostream.h>
++#include <iostream>
+
+ #include "datahashtable.h"
+
+--- doc++-3.4.10/src/php.ll 2001-02-16 23:34:47.000000000 +0100
++++ doc++-3.4.10/src/php.ll 2012-09-17 11:25:18.582759801 +0200
+@@ -23,7 +23,7 @@
+ %{
+ #include <assert.h>
+ #include <ctype.h>
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+
+ #include "doc.h"
+--- doc++-3.4.10/src/tex2gif.cc 2001-08-07 20:55:40.000000000 +0200
++++ doc++-3.4.10/src/tex2gif.cc 2012-09-17 11:26:06.698547836 +0200
+@@ -21,8 +21,8 @@
+ Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+-#include <iostream.h>
+-#include <fstream.h>
++#include <iostream>
++#include <fstream>
+ #include <stdio.h>
+ #include <string.h>
+
diff --git a/gnu/packages/patches/doc++-segfault-fix.patch b/gnu/packages/patches/doc++-segfault-fix.patch
new file mode 100644
index 0000000000..bad34c814e
--- /dev/null
+++ b/gnu/packages/patches/doc++-segfault-fix.patch
@@ -0,0 +1,169 @@
+Adapted from https://sources.debian.net/data/main/d/doc%2B%2B/3.4.10-3.4/debian/patches/segfault_fix.patch
+
+--- doc++-3.4.10/src/McDArray.h 2000-07-30 12:40:48.000000000 +0200
++++ doc++-3.4.10/src/McDArray.h 2005-05-10 15:02:06.000000000 +0200
+@@ -80,9 +80,14 @@
+ McDArray(const McDArray& old) : memFactor(old.memFactor),
+ thesize(old.thesize), themax(old.themax)
+ {
+- data = (T*)malloc(themax * sizeof(T));
+- if(thesize)
+- memcpy(data, old.data, thesize * sizeof(T));
++ if (themax)
++ {
++ data = (T*)malloc(themax * sizeof(T));
++ if(thesize)
++ memcpy(data, old.data, thesize * sizeof(T));
++ }
++ else
++ data = 0;
+ assert(isConsistent());
+ }
+
+--- doc++-3.4.10/src/McDirectory.cc 2000-03-14 22:17:36.000000000 +0100
++++ doc++-3.4.10/src/McDirectory.cc 2005-05-10 15:02:18.000000000 +0200
+@@ -23,12 +23,13 @@
+ */
+
+ #include "McDirectory.h"
+-#include "McSorter.h"
+ #include "McString.h"
+ #include "doc.h"
+
+ #include <stdio.h>
+
++#include <algorithm>
++
+ #ifdef WIN32
+ #include <windows.h>
+ #ifdef __BORLANDC__
+@@ -62,7 +63,7 @@
+ FindClose(searchHandle);
+ StringCompare comp;
+ if(list.size())
+- sort((char **)list, list.size(), comp, 0);
++ std::sort((char **)list, (char **)list + list.size(), comp);
+ return 0;
+ }
+
+@@ -107,7 +108,7 @@
+ closedir(dir);
+ StringCompare comp;
+ if(list.size())
+- sort((char **)list, list.size(), comp, 0);
++ std::sort((char **)list, (char **)list + list.size(), comp);
+ return list.size();
+ }
+
+--- doc++-3.4.10/src/McDirectory.h 2000-06-28 21:54:58.000000000 +0200
++++ doc++-3.4.10/src/McDirectory.h 2005-05-10 15:02:18.000000000 +0200
+@@ -59,9 +59,9 @@
+ class StringCompare
+ {
+ public:
+- int operator()(const char *t1, const char *t2)
++ bool operator()(const char *t1, const char *t2)
+ {
+- return strcmp(t1, t2);
++ return strcmp(t1, t2) < 0;
+ }
+ };
+ };
+--- doc++-3.4.10/src/html.cc 2001-02-17 07:34:49.000000000 +0100
++++ doc++-3.4.10/src/html.cc 2005-05-10 15:02:18.000000000 +0200
+@@ -38,9 +38,10 @@
+ #include <sys/stat.h>
+ #include <sys/types.h>
+
++#include <algorithm>
++
+ #include "McDirectory.h"
+ #include "McHashTable.h"
+-#include "McSorter.h"
+ #include "classgraph.h"
+ #include "doc.h"
+ #include "gifs.h"
+@@ -314,9 +315,11 @@
+ virtual void writeMember(Entry *e, bool links, bool withSub = true);
+ class EntryCompare {
+ public:
+- int operator()(const MemberWriterListEntry& l1, const MemberWriterListEntry& l2)
++ bool operator()(const MemberWriterListEntry& l1, const MemberWriterListEntry& l2)
+ {
+- return strcmp(l1.entry->fullName.c_str(), l2.entry->fullName.c_str());
++ const char *s1 = l1.entry->fullName.c_str();
++ const char *s2 = l2.entry->fullName.c_str();
++ return strcmp(s1, s2) < 0;
+ }
+ };
+ public:
+@@ -324,7 +327,7 @@
+ {
+ EntryCompare comp;
+ if(list.size())
+- ::sort((MemberWriterListEntry *)list, list.size(), comp, 0);
++ std::sort((MemberWriterListEntry *)list, (MemberWriterListEntry *)list + list.size(), comp);
+ }
+ virtual void startList(FILE *f, char *heading, bool withLinks);
+ virtual void addMember(Entry *e, bool links, bool withSub = true)
+@@ -376,7 +379,7 @@
+ int lp;
+
+ if(list.size() > 1)
+- ::sort((TOCListEntry *)list, list.size(), comp, 0);
++ std::sort((TOCListEntry *)list, (TOCListEntry *)list + list.size(), comp);
+
+ // Sort subsections
+ for(lp = 0; lp < list.size(); lp++)
+@@ -385,9 +388,9 @@
+ }
+ class EntryCompare {
+ public:
+- int operator()(TOCListEntry& l1, TOCListEntry& l2)
++ bool operator()(const TOCListEntry& l1, const TOCListEntry& l2)
+ {
+- return strcmp(l1.name, l2.name);
++ return strcmp(l1.name, l2.name) < 0;
+ }
+ };
+ void addEntry(Entry *entry, TOClist *tl);
+@@ -487,7 +490,7 @@
+
+ for(i = 0; i < list.size(); i++)
+ if(list[i].tl)
+- free(list[i].tl);
++ delete list[i].tl;
+ }
+
+ class HIERlist;
+@@ -509,7 +512,7 @@
+ int i;
+
+ if(list.size() > 1)
+- ::sort((HIERListEntry *)list, list.size(), comp, 0);
++ std::sort((HIERListEntry *)list, (HIERListEntry *)list + list.size(), comp);
+
+ // Sort subentries
+ for(i = 0; i < list.size(); i++)
+@@ -519,9 +522,9 @@
+ class EntryCompare
+ {
+ public:
+- int operator()(HIERListEntry& l1, HIERListEntry& l2)
++ bool operator()(const HIERListEntry& l1, const HIERListEntry& l2)
+ {
+- return strcmp(l1.name, l2.name);
++ return strcmp(l1.name, l2.name) < 0;
+ }
+ };
+ void addEntry(Entry *entry, HIERlist *hl);
+--- doc++-3.4.10/src/readfiles.ll 2001-11-25 18:04:48.000000000 +0100
++++ doc++-3.4.10/src/readfiles.ll 2005-05-10 15:02:18.000000000 +0200
+@@ -28,7 +28,6 @@
+ #include <sys/types.h>
+
+ #include "McDirectory.h"
+-#include "McSorter.h"
+ #include "McString.h"
+ #include "doc.h"
+ #include "nametable.h"
diff --git a/gnu/packages/patches/hdf5-config-date.patch b/gnu/packages/patches/hdf5-config-date.patch
new file mode 100644
index 0000000000..c105435dc2
--- /dev/null
+++ b/gnu/packages/patches/hdf5-config-date.patch
@@ -0,0 +1,21 @@
+Honor SOURCE_DATE_EPOCH when exporting configuration date.
+Autoconf-level patch submitted upstream on Wed Apr 13 17:03:23 UTC 2016
+
+--- a/configure
++++ b/configure
+@@ -27737,7 +28573,14 @@
+
+
+ ## Configuration date
+- CONFIG_DATE="`date`"
++ CONFIG_DATE="`date -u`"
++if test -n "$SOURCE_DATE_EPOCH"; then
++ CONFIG_DATE=`date -u -d "@$SOURCE_DATE_EPOCH" 2>/dev/null \
++ || date -u -r "$SOURCE_DATE_EPOCH" 2>/dev/null`
++ if test -z "$CONFIG_DATE"; then
++ as_fn_error $? "malformed SOURCE_DATE_EPOCH" "$LINENO" 5
++ fi
++fi
+
+ ## User doing the configuration
+ CONFIG_USER="`whoami`@`hostname`"
diff --git a/gnu/packages/patches/hypre-doc-tables.patch b/gnu/packages/patches/hypre-doc-tables.patch
new file mode 100644
index 0000000000..6a852ee78e
--- /dev/null
+++ b/gnu/packages/patches/hypre-doc-tables.patch
@@ -0,0 +1,25 @@
+Fixes doc++'s treatment of tabular within a parameter block.
+
+From commit 883925f8a at http://github.com/LLNL/hypre
+
+--- hypre-2.10.1/src/parcsr_ls/HYPRE_parcsr_ls.h 2015-12-04 22:12:19.000000000 -0600
++++ hypre-2.10.1/src/parcsr_ls/HYPRE_parcsr_ls.h 2016-03-16 09:02:58.547501336 -0500
+@@ -1154,8 +1154,6 @@
+ * Set the symmetry parameter for the
+ * ParaSails preconditioner.
+ *
+- * @param solver [IN] Preconditioner object for which to set symmetry parameter.
+- * @param sym [IN] Value of the symmetry parameter:
+ * \begin{tabular}{|c|l|} \hline
+ * value & meaning \\ \hline
+ * 0 & nonsymmetric and/or indefinite problem, and nonsymmetric preconditioner\\
+@@ -1163,6 +1161,9 @@
+ * 2 & nonsymmetric, definite problem, and SPD (factored) preconditioner \\
+ * \hline
+ * \end{tabular}
++ *
++ * @param solver [IN] Preconditioner object for which to set symmetry parameter.
++ * @param sym [IN] Value of the symmetry parameter:
+ **/
+ HYPRE_Int HYPRE_ParaSailsSetSym(HYPRE_Solver solver,
+ HYPRE_Int sym);
diff --git a/gnu/packages/patches/hypre-ldflags.patch b/gnu/packages/patches/hypre-ldflags.patch
new file mode 100644
index 0000000000..a94fafa463
--- /dev/null
+++ b/gnu/packages/patches/hypre-ldflags.patch
@@ -0,0 +1,9 @@
+--- hypre-2.10.1/src/lib/Makefile.orig 2016-03-11 16:04:03.740259228 -0600
++++ hypre-2.10.1/src/lib/Makefile 2016-03-11 16:04:57.296260190 -0600
+@@ -107,5 +107,5 @@
+
+ libHYPRE.so: ${FILES_HYPRE}
+ @echo "Building $@ ... "
+- ${BUILD_CC_SHARED} -o ${SONAME} ${FILES_HYPRE} ${SOLIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
++ ${BUILD_CC_SHARED} ${LDFLAGS} -o ${SONAME} ${FILES_HYPRE} ${SOLIBS} ${SHARED_SET_SONAME}${SONAME} ${SHARED_OPTIONS}
+ ln -s ${SONAME} $@
diff --git a/gnu/packages/patches/libarchive-CVE-2016-1541.patch b/gnu/packages/patches/libarchive-CVE-2016-1541.patch
new file mode 100644
index 0000000000..6ac8773244
--- /dev/null
+++ b/gnu/packages/patches/libarchive-CVE-2016-1541.patch
@@ -0,0 +1,67 @@
+Fix CVE-2016-1541 (buffer overflow zip_read_mac_metadata)
+
+Taken from upstream source repository:
+https://github.com/libarchive/libarchive/commit/d0331e8e5b05b475f20b1f3101fe1ad772d7e7e7
+
+When reading OS X metadata entries in Zip archives that were stored
+without compression, libarchive would use the uncompressed entry size
+to allocate a buffer but would use the compressed entry size to limit
+the amount of data copied into that buffer. Since the compressed
+and uncompressed sizes are provided by data in the archive itself,
+an attacker could manipulate these values to write data beyond
+the end of the allocated buffer.
+
+This fix provides three new checks to guard against such
+manipulation and to make libarchive generally more robust when
+handling this type of entry:
+ 1. If an OS X metadata entry is stored without compression,
+ abort the entire archive if the compressed and uncompressed
+ data sizes do not match.
+ 2. When sanity-checking the size of an OS X metadata entry,
+ abort this entry if either the compressed or uncompressed
+ size is larger than 4MB.
+ 3. When copying data into the allocated buffer, check the copy
+ size against both the compressed entry size and uncompressed
+ entry size.
+---
+ libarchive/archive_read_support_format_zip.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/libarchive/archive_read_support_format_zip.c b/libarchive/archive_read_support_format_zip.c
+index 0f8262c..0a0be96 100644
+--- a/libarchive/archive_read_support_format_zip.c
++++ b/libarchive/archive_read_support_format_zip.c
+@@ -2778,6 +2778,11 @@ zip_read_mac_metadata(struct archive_read *a, struct archive_entry *entry,
+
+ switch(rsrc->compression) {
+ case 0: /* No compression. */
++ if (rsrc->uncompressed_size != rsrc->compressed_size) {
++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
++ "Malformed OS X metadata entry: inconsistent size");
++ return (ARCHIVE_FATAL);
++ }
+ #ifdef HAVE_ZLIB_H
+ case 8: /* Deflate compression. */
+ #endif
+@@ -2798,6 +2803,12 @@ zip_read_mac_metadata(struct archive_read *a, struct archive_entry *entry,
+ (intmax_t)rsrc->uncompressed_size);
+ return (ARCHIVE_WARN);
+ }
++ if (rsrc->compressed_size > (4 * 1024 * 1024)) {
++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
++ "Mac metadata is too large: %jd > 4M bytes",
++ (intmax_t)rsrc->compressed_size);
++ return (ARCHIVE_WARN);
++ }
+
+ metadata = malloc((size_t)rsrc->uncompressed_size);
+ if (metadata == NULL) {
+@@ -2836,6 +2847,8 @@ zip_read_mac_metadata(struct archive_read *a, struct archive_entry *entry,
+ bytes_avail = remaining_bytes;
+ switch(rsrc->compression) {
+ case 0: /* No compression. */
++ if ((size_t)bytes_avail > metadata_bytes)
++ bytes_avail = metadata_bytes;
+ memcpy(mp, p, bytes_avail);
+ bytes_used = (size_t)bytes_avail;
+ metadata_bytes -= bytes_used;
diff --git a/gnu/packages/patches/netcdf-config-date.patch b/gnu/packages/patches/netcdf-config-date.patch
new file mode 100644
index 0000000000..5054612e95
--- /dev/null
+++ b/gnu/packages/patches/netcdf-config-date.patch
@@ -0,0 +1,47 @@
+Honor SOURCE_DATE_EPOCH when exporting configuration date.
+Autoconf-level patch submitted upstream on Fri Apr 15 23:07:42 UTC 2016
+
+--- a/configure
++++ b/configure
+@@ -2866,7 +2866,17 @@
+
+
+ # Configuration Date
+- CONFIG_DATE="`date`"
++ CONFIG_DATE="`date -u`"
++if test -n "$SOURCE_DATE_EPOCH"; then
++ CONFIG_DATE=`date -u -d "@$SOURCE_DATE_EPOCH" 2>/dev/null \
++ || date -u -r "$SOURCE_DATE_EPOCH" 2>/dev/null`
++ if test -z "$CONFIG_DATE"; then
++ as_fn_error $? "malformed SOURCE_DATE_EPOCH" "$LINENO" 5
++ fi
++fi
++cat >>confdefs.h <<_ACEOF
++#define CONFIG_DATE "$CONFIG_DATE"
++_ACEOF
+
+ # Find out about the host we're building on.
+ ac_aux_dir=
+--- a/libdispatch/derror.c
++++ b/libdispatch/derror.c
+@@ -13,7 +13,7 @@
+ #endif
+
+ /* Tell the user the version of netCDF. */
+-static const char nc_libvers[] = PACKAGE_VERSION " of "__DATE__" "__TIME__" $";
++static const char nc_libvers[] = PACKAGE_VERSION " of "CONFIG_DATE" $";
+
+ /**
+ \defgroup lib_version Library Version
+--- a/config.h.in
++++ b/config.h.in
+@@ -393,6 +393,9 @@
+ /* Define to the version of this package. */
+ #undef PACKAGE_VERSION
+
++/* Define to the configuration date */
++#undef CONFIG_DATE
++
+ /* The size of `double', as computed by sizeof. */
+ #undef SIZEOF_DOUBLE
+
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index d7c2616dfe..477b05189c 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2013, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -148,7 +149,7 @@ and probably others.")
(define-public openvpn
(package
(name "openvpn")
- (version "2.3.6")
+ (version "2.3.9")
(source (origin
(method url-fetch)
(uri (string-append
@@ -156,7 +157,7 @@ and probably others.")
version ".tar.xz"))
(sha256
(base32
- "1v8h2nshxnvn2zyr08vzkfby1kc7ma6bi0s6hix389cj9krjxbmd"))))
+ "1hfwmdsp7s34qx34qgwrpp89h30744lbsks6y619cdh27bpnpwaj"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--enable-iproute2=yes")))
@@ -178,14 +179,14 @@ traversing network address translators (NATs) and firewalls.")
(define-public tinc
(package
(name "tinc")
- (version "1.0.26")
+ (version "1.0.28")
(source (origin
(method url-fetch)
(uri (string-append "http://tinc-vpn.org/packages/"
name "-" version ".tar.gz"))
(sha256
(base32
- "08ds8s32cjslms1q227ihd6jz35583v378ij4pknfa5xngfijhrb"))))
+ "0i5kx3hza359nclyhb60kxlzqyx0phmg175350hww28g6scjcl0b"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags