diff options
-rw-r--r-- | gnu/local.mk | 10 | ||||
-rw-r--r-- | gnu/packages/admin.scm | 4 | ||||
-rw-r--r-- | gnu/packages/asciidoc.scm | 52 | ||||
-rw-r--r-- | gnu/packages/backup.scm | 9 | ||||
-rw-r--r-- | gnu/packages/documentation.scm | 117 | ||||
-rw-r--r-- | gnu/packages/doxygen.scm | 59 | ||||
-rw-r--r-- | gnu/packages/linux.scm | 12 | ||||
-rw-r--r-- | gnu/packages/mail.scm | 14 | ||||
-rw-r--r-- | gnu/packages/maths.scm | 261 | ||||
-rw-r--r-- | gnu/packages/patches/doc++-include-directives.patch | 224 | ||||
-rw-r--r-- | gnu/packages/patches/doc++-segfault-fix.patch | 169 | ||||
-rw-r--r-- | gnu/packages/patches/hdf5-config-date.patch | 21 | ||||
-rw-r--r-- | gnu/packages/patches/hypre-doc-tables.patch | 25 | ||||
-rw-r--r-- | gnu/packages/patches/hypre-ldflags.patch | 9 | ||||
-rw-r--r-- | gnu/packages/patches/libarchive-CVE-2016-1541.patch | 67 | ||||
-rw-r--r-- | gnu/packages/patches/netcdf-config-date.patch | 47 | ||||
-rw-r--r-- | gnu/packages/vpn.scm | 9 |
17 files changed, 972 insertions, 137 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 8611158c66..acb979067b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -40,7 +40,6 @@ GNU_SYSTEM_MODULES = \ gnu/packages/anthy.scm \ gnu/packages/apl.scm \ gnu/packages/apr.scm \ - gnu/packages/asciidoc.scm \ gnu/packages/aspell.scm \ gnu/packages/attr.scm \ gnu/packages/audacity.scm \ @@ -98,7 +97,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/dns.scm \ gnu/packages/docbook.scm \ gnu/packages/docker.scm \ - gnu/packages/doxygen.scm \ + gnu/packages/documentation.scm \ gnu/packages/dunst.scm \ gnu/packages/dvtm.scm \ gnu/packages/ebook.scm \ @@ -459,6 +458,8 @@ dist_patch_DATA = \ gnu/packages/patches/dico-libtool-deterministic.patch \ gnu/packages/patches/diffutils-gets-undeclared.patch \ gnu/packages/patches/dfu-programmer-fix-libusb.patch \ + gnu/packages/patches/doc++-include-directives.patch \ + gnu/packages/patches/doc++-segfault-fix.patch \ gnu/packages/patches/doxygen-test.patch \ gnu/packages/patches/duplicity-piped-password.patch \ gnu/packages/patches/duplicity-test_selection-tmp.patch \ @@ -527,10 +528,13 @@ dist_patch_DATA = \ gnu/packages/patches/gtk2-theme-paths.patch \ gnu/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \ + gnu/packages/patches/hdf5-config-date.patch \ gnu/packages/patches/hop-bigloo-4.0b.patch \ gnu/packages/patches/hop-linker-flags.patch \ gnu/packages/patches/hydra-automake-1.15.patch \ gnu/packages/patches/hydra-disable-darcs-test.patch \ + gnu/packages/patches/hypre-doc-tables.patch \ + gnu/packages/patches/hypre-ldflags.patch \ gnu/packages/patches/icecat-avoid-bundled-includes.patch \ gnu/packages/patches/icu4c-CVE-2014-6585.patch \ gnu/packages/patches/icu4c-CVE-2015-1270.patch \ @@ -561,6 +565,7 @@ dist_patch_DATA = \ gnu/packages/patches/liba52-use-mtune-not-mcpu.patch \ gnu/packages/patches/libarchive-bsdtar-test.patch \ gnu/packages/patches/libarchive-CVE-2013-0211.patch \ + gnu/packages/patches/libarchive-CVE-2016-1541.patch \ gnu/packages/patches/libarchive-fix-lzo-test-case.patch \ gnu/packages/patches/libarchive-mtree-filename-length-fix.patch \ gnu/packages/patches/libbonobo-activation-test-race.patch \ @@ -626,6 +631,7 @@ dist_patch_DATA = \ gnu/packages/patches/mupen64plus-ui-console-notice.patch \ gnu/packages/patches/mutt-store-references.patch \ gnu/packages/patches/net-tools-bitrot.patch \ + gnu/packages/patches/netcdf-config-date.patch \ gnu/packages/patches/ngircd-handle-zombies.patch \ gnu/packages/patches/ngircd-no-dns-in-tests.patch \ gnu/packages/patches/ninja-tests.patch \ 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 |