From 3c8ba11a97d3f3b671b8919da8c41f0b0e2ccaf3 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sun, 27 Aug 2017 22:27:56 -0400 Subject: Update e-mail for Kei Kebreau. * .mailmap: Map kei@openmailbox.org to current address. * gnu/local.mk: Replace kei@openmailbox.org to current address. * gnu/packages/backup.scm: Likewise. * gnu/packages/calendar.scm: Likewise. * gnu/packages/check.scm: Likewise. * gnu/packages/compression.scm: Likewise. * gnu/packages/documentation.scm: Likewise. * gnu/packages/emacs.scm: Likewise. * gnu/packages/fltk.scm: Likewise. * gnu/packages/freedesktop.scm: Likewise. * gnu/packages/game-development.scm: Likewise. * gnu/packages/games.scm: Likewise. * gnu/packages/gnome.scm: Likewise. * gnu/packages/gnustep.scm: Likewise. * gnu/packages/gtk.scm: Likewise. * gnu/packages/hexedit.scm: Likewise. * gnu/packages/image.scm: Likewise. * gnu/packages/maths.scm: Likewise. * gnu/packages/music.scm: Likewise. * gnu/packages/xfce.scm: Likewise. * gnu/packages/python.scm: Likewise. * gnu/packages/tcl.scm: Likewise. * gnu/packages/textutils.scm: Likewise. * gnu/packages/video.scm: Likewise. * gnu/packages/w3m.scm: Likewise. * gnu/packages/web.scm: Likewise. * gnu/packages/web-browsers.scm: Likewise. * gnu/packages/patches/wmfire-update-for-new-gdk-versions.patch: Likewise. --- gnu/packages/maths.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index c3c2191a94..1c396a04c1 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2015, 2016, 2017 Efraim Flashner ;;; Copyright © 2015 Fabian Harfert ;;; Copyright © 2016 Roel Janssen -;;; Copyright © 2016 Kei Kebreau +;;; Copyright © 2016 Kei Kebreau ;;; Copyright © 2016, 2017 Ludovic Courtès ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016 Thomas Danckaert -- cgit v1.2.3 From e0fbf37350e5e993a47e93ddb8631d2fdf769849 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Thu, 24 Aug 2017 16:40:56 +0200 Subject: gnu: coda: Update to 2.18.2. * gnu/packages/maths.scm (coda): Update to 2.18.2. --- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 1c396a04c1..70c5a775ab 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -149,14 +149,14 @@ interactive dialogs to guide them.") (define-public coda (package (name "coda") - (version "2.18") + (version "2.18.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/stcorp/coda/releases/download/" version "/coda-" version ".tar.gz")) (sha256 - (base32 "11asla1ap8vd73farqjlpb179sfiy0biydcwxjfcakrp9sf8v9bs")) + (base32 "01fnqcby9jijvf3jxr1fk4bny059lvvq5wbqm7ns60ilykfdnm6a")) (patches (search-patches "coda-use-system-libs.patch")) (modules '((guix build utils))) (snippet -- cgit v1.2.3 From 1c39f3b87719b4ab12f118ab5947f64be15e3b3d Mon Sep 17 00:00:00 2001 From: Paul Garlick Date: Thu, 24 Aug 2017 15:56:44 +0100 Subject: gnu: Add "scotch32". MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/maths.scm (scotch32): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/maths.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 70c5a775ab..79cceec763 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1946,6 +1946,55 @@ bio-chemistry.") ;; See LICENSE_en.txt (license license:cecill-c))) +(define-public scotch32 + ;; This is the 'INTSIZE32' variant, which uses 32-bit integers, as needed by + ;; some applications. + (package (inherit scotch) + (name "scotch32") + (arguments + (substitute-keyword-arguments (package-arguments scotch) + ((#:phases scotch-phases) + `(modify-phases ,scotch-phases + (replace + 'configure + (lambda _ + (call-with-output-file "Makefile.inc" + (lambda (port) + (format port " +EXE = +LIB = .a +OBJ = .o +MAKE = make +AR = ar +ARFLAGS = -ruv +CAT = cat +CCS = gcc +CCP = mpicc +CCD = gcc +CPPFLAGS =~{ -D~a~} +CFLAGS = -O2 -g -fPIC $(CPPFLAGS) +LDFLAGS = -lz -lm -lrt -lpthread +CP = cp +LEX = flex -Pscotchyy -olex.yy.c +LN = ln +MKDIR = mkdir +MV = mv +RANLIB = ranlib +YACC = bison -pscotchyy -y -b y +" + '("COMMON_FILE_COMPRESS_GZ" + "COMMON_PTHREAD" + "COMMON_RANDOM_FIXED_SEED" + "INTSIZE32" ;use 32-bit integers. See INSTALL.txt + ;; Prevents symbolc clashes with libesmumps + "SCOTCH_RENAME" + ;; XXX: Causes invalid frees in superlu-dist tests + ;; "SCOTCH_PTHREAD" + ;; "SCOTCH_PTHREAD_NUMBER=2" + "restrict=__restrict")))))))))) + (synopsis + "Programs and libraries for graph algorithms (32-bit integers)"))) + (define-public pt-scotch (package (inherit scotch) (name "pt-scotch") -- cgit v1.2.3 From 1c25a52c4ab14338948a2e91108afc87859a1781 Mon Sep 17 00:00:00 2001 From: Paul Garlick Date: Thu, 24 Aug 2017 15:56:45 +0100 Subject: gnu: Add pt-scotch32. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/maths.scm (pt-scotch32): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/maths.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 79cceec763..7481636faa 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2018,6 +2018,29 @@ YACC = bison -pscotchyy -y -b y (lambda _ (zero? (system* "make" "ptcheck")))))))) (synopsis "Programs and libraries for graph algorithms (with MPI)"))) +(define-public pt-scotch32 + (package (inherit scotch32) + (name "pt-scotch32") + (propagated-inputs + `(("openmpi" ,openmpi))) ;headers include MPI headers + (arguments + (substitute-keyword-arguments (package-arguments scotch) + ((#:phases scotch-phases) + `(modify-phases ,scotch-phases + (replace 'build + (lambda _ + (and + (zero? (system* "make" + (format #f "-j~a" (parallel-job-count)) + "ptscotch" "ptesmumps")) + ;; Install the serial metis compatibility library + (zero? (system* "make" "-C" "libscotchmetis" "install"))))) + (replace 'check + (lambda _ + (zero? (system* "make" "ptcheck")))))))) + (synopsis + "Programs and libraries for graph algorithms (with MPI and 32-bit integers)"))) + (define-public metis (package (name "metis") -- cgit v1.2.3 From e3a1a1deda03e52fbdb38e9c7a92ce69f78c8eb3 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Thu, 24 Aug 2017 11:00:59 +0200 Subject: gnu: hdf5: Add output for fortran interface. * gnu/packages/maths.scm (hdf5) [native-inputs]: Add gfortran. [outputs]: Add "fortran". [arguments]: Enable Fortran compilation; add "/lib" directory of the fortran output to the runpath of the Fortran libs; add a 'split phase to move all Fortran-related files to the the Fortran output store location. --- gnu/packages/maths.scm | 53 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 7481636faa..b56153199b 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -648,16 +648,30 @@ incompatible with HDF5.") (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) + (native-inputs + `(("gfortran" ,gfortran))) + (outputs '("out" ; core library + "fortran")) ; fortran interface (arguments `(;; Some of the users, notably Flann, need the C++ interface. - #:configure-flags '("--enable-cxx") + #:configure-flags '("--enable-cxx" + "--enable-fortran" + "--enable-fortran2003") #:phases (modify-phases %standard-phases (add-before 'configure 'patch-configure - (lambda _ + (lambda* (#:key outputs #:allow-other-keys) (substitute* "configure" (("/bin/mv") "mv")) + (substitute* "fortran/src/Makefile.in" + (("libhdf5_fortran_la_LDFLAGS =") + (string-append "libhdf5_fortran_la_LDFLAGS = -Wl-rpath=" + (assoc-ref outputs "fortran") "/lib"))) + (substitute* "hl/fortran/src/Makefile.in" + (("libhdf5hl_fortran_la_LDFLAGS =") + (string-append "libhdf5hl_fortran_la_LDFLAGS = -Wl,-rpath=" + (assoc-ref outputs "fortran") "/lib"))) #t)) (add-after 'install 'patch-references (lambda* (#:key inputs outputs #:allow-other-keys) @@ -666,7 +680,40 @@ incompatible with HDF5.") (substitute* (find-files bin "h5p?cc") (("-lz" lib) (string-append "-L" zlib "/lib " lib))) - #t)))))) + #t))) + (add-after 'install 'split + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Move all fortran-related files + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (lib (string-append out "/lib")) + (inc (string-append out "/include")) + (ex (string-append out "/share/hdf5_examples/fortran")) + (fort (assoc-ref outputs "fortran")) + (fbin (string-append fort "/bin")) + (flib (string-append fort "/lib")) + (finc (string-append fort "/include")) + (fex (string-append fort "/share/hdf5_examples/fortran"))) + (mkdir-p fbin) + (mkdir-p flib) + (mkdir-p finc) + (mkdir-p fex) + (rename-file (string-append bin "/h5fc") + (string-append fbin "/h5fc")) + (for-each (lambda (file) + (rename-file file + (string-append flib "/" (basename file)))) + (find-files lib ".*fortran.*")) + (for-each (lambda (file) + (rename-file file + (string-append finc "/" (basename file)))) + (find-files inc ".*mod")) + (for-each (lambda (file) + (rename-file file + (string-append fex "/" (basename file)))) + (find-files ex ".*")) + (delete-file-recursively ex)) + #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 -- cgit v1.2.3 From fd0378a1475900bdbd1da43066811677ba41f3ea Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Thu, 31 Aug 2017 17:29:36 +0200 Subject: gnu: hdf5: Avoid unneeded store references to compilers. * gnu/packages/maths.scm (hdf5) [arguments]: Add phase to patch "libhdf5.settings", removing references to the C/C++/Fortran compilers. --- gnu/packages/maths.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index b56153199b..47e7ba35db 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -673,6 +673,16 @@ incompatible with HDF5.") (string-append "libhdf5hl_fortran_la_LDFLAGS = -Wl,-rpath=" (assoc-ref outputs "fortran") "/lib"))) #t)) + (add-after 'configure 'patch-settings + (lambda _ + ;; libhdf5.settings contains the full path of the + ;; compilers used, and its contents are included in + ;; libhdf5.so. We truncate the hashes to avoid + ;; unnecessary store references to those compilers: + (substitute* "src/libhdf5.settings" + (("(/gnu/store/)([a-Z0-9]*)" all prefix hash) + (string-append prefix (string-take hash 10) "..."))) + #t)) (add-after 'install 'patch-references (lambda* (#:key inputs outputs #:allow-other-keys) (let ((bin (string-append (assoc-ref outputs "out") "/bin")) -- cgit v1.2.3 From e464b4550e42d913655bd5939d3e370982ee294b Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Thu, 24 Aug 2017 14:27:29 +0200 Subject: gnu: hdf4: Avoid unneeded store references to compilers. * gnu/packages/maths.scm (hdf4) [arguments]: Add phase 'patch-settings to truncate hashes of compiler store items. --- gnu/packages/maths.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 47e7ba35db..a8c81a79ca 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -605,7 +605,18 @@ computations.") (("@HDF_BUILD_SHARED_TRUE@AM_LDFLAGS = \ -R\\$\\(abs_top_builddir\\)/mfhdf/libsrc/\\.libs \ -R\\$\\(abs_top_builddir\\)/hdf/src/\\.libs \\$\\(XDR_ADD\\)") "")) - #t))))) + #t)) + (add-after 'configure 'patch-settings + (lambda _ + ;; libhdf4.settings contains the full path of the + ;; compilers used, and its contents are included in + ;; .so-files. We truncate the hashes to avoid + ;; unnecessary store references to those compilers: + (substitute* "libhdf4.settings" + (("(/gnu/store/)([a-Z0-9]*)" all prefix hash) + (string-append prefix (string-take hash 10) "..."))) + #t)) + ))) (home-page "https://www.hdfgroup.org/products/hdf4/") (synopsis "Library and multi-object file format for storing and managing data") -- cgit v1.2.3 From 43d01672a11814ca4cdcc592544064d75d1653f0 Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Thu, 24 Aug 2017 15:13:02 +0200 Subject: gnu: netcdf: Fix reproducibility issue; remove unneeded references. * gnu/packages/maths.scm (netcdf) [arguments]: Add phase to fix the embedded 'Configured On' date; truncate reference to compiler store item. --- gnu/packages/maths.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index a8c81a79ca..bebed14b52 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -918,6 +918,29 @@ similar to MATLAB, GNU Octave or SciPy.") ("libjpeg" ,libjpeg))) (arguments `(#:configure-flags '("--enable-doxygen" "--enable-dot" "--enable-hdf4") + + #:phases (modify-phases %standard-phases + (add-before 'configure 'fix-source-date + (lambda _ + ;; As we ${SOURCE_DATE_EPOCH} evaluates to "1" in the build + ;; environment, `date -u -d ${SOURCE_DATE_EPOCH}` will evaluate + ;; to '1st hour of the current day', and therefore makes the + ;; package not reproducible. + (substitute* "./configure" + (("date -u -d \"\\$\\{SOURCE_DATE_EPOCH\\}\"") + "date --date='@0'")) + #t)) + (add-after 'configure 'patch-settings + (lambda _ + ;; libnetcdf.settings contains the full filename of the compilers + ;; used to build the library. We truncate the hashes of those + ;; filenames to avoid unnecessary references to the corresponding + ;; store items. + (substitute* "libnetcdf.settings" + (("(/gnu/store/)([a-Z0-9]*)" all prefix hash) + (string-append prefix (string-take hash 10) "..."))) + #t))) + #:parallel-tests? #f)) ;various race conditions (home-page "http://www.unidata.ucar.edu/software/netcdf/") (synopsis "Library for scientific data") -- cgit v1.2.3 From c4d4a779238b4a0284f5d835cf03ed5baf28d34c Mon Sep 17 00:00:00 2001 From: Paul Garlick Date: Fri, 1 Sep 2017 17:19:48 +0100 Subject: gnu: pt-scotch32: use keyword arguments from "scotch32" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *gnu/packages/maths.scm (pt-scotch32) [arguments]: substitute keyword arguments from "scotch32" package, ensuring that the INTSIZE32 macro is set Signed-off-by: Ludovic Courtès --- gnu/packages/maths.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index bebed14b52..d48c31f5e3 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2115,9 +2115,9 @@ YACC = bison -pscotchyy -y -b y (propagated-inputs `(("openmpi" ,openmpi))) ;headers include MPI headers (arguments - (substitute-keyword-arguments (package-arguments scotch) - ((#:phases scotch-phases) - `(modify-phases ,scotch-phases + (substitute-keyword-arguments (package-arguments scotch32) + ((#:phases scotch32-phases) + `(modify-phases ,scotch32-phases (replace 'build (lambda _ (and -- cgit v1.2.3 From 5a7deb117424ff4d430b771b50e534cf065c0ba1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 7 Sep 2017 15:38:56 +0200 Subject: gnu: Add BLIS. * gnu/packages/maths.scm (make-blis): New procedure. (blis, ignorance): New variables. (blis/x86_64): New macro. (blis-sandybridge, blis-haswell, blis-knl): New variables. --- gnu/packages/maths.scm | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index d48c31f5e3..f326f6af72 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2516,6 +2516,92 @@ parts of it.") "OpenBLAS is a BLAS library forked from the GotoBLAS2-1.13 BSD version.") (license license:bsd-3))) +(define* (make-blis implementation #:optional substitutable?) + "Return a BLIS package with the given IMPLEMENTATION (see config/ in the +source tree for a list of implementations.) + +SUBSTITUTABLE? determines whether the package is made available as a +substitute. + +Currently the specialization must be selected at configure-time, but work is +underway to allow BLIS to select the right optimized kernels at run time: +." + (package + (name (if (string=? implementation "reference") + "blis" + (string-append "blis-" implementation))) + (version "0.2.2") + (home-page "https://github.com/flame/blis") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (sha256 + (base32 + "1wr79a50nm4abhw8w3sn96nmwp5mrzifcigk7khw9qcgyyyqayfh")) + (file-name (git-file-name "blis" version)))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + + #:substitutable? ,substitutable? + + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + ;; This is a home-made 'configure' script. + (let ((out (assoc-ref outputs "out"))) + (zero? (system* "./configure" "-p" out + "-d" "opt" + "--disable-static" + "--enable-shared" + "--enable-threading=openmp" + + ,implementation))))) + (add-before 'check 'show-test-output + (lambda _ + ;; By default "make check" is silent. Make it verbose. + (system "tail -F output.testsuite &") + #t))))) + (synopsis "High-performance basic linear algebra (BLAS) routines") + (description + "BLIS is a portable software framework for instantiating high-performance +BLAS-like dense linear algebra libraries. The framework was designed to +isolate essential kernels of computation that, when optimized, immediately +enable optimized implementations of most of its commonly used and +computationally intensive operations. While BLIS exports a new BLAS-like API, +it also includes a BLAS compatibility layer which gives application developers +access to BLIS implementations via traditional BLAS routine calls.") + (license license:bsd-3))) + +(define-public blis + ;; This is the "reference" implementation, which is the non-optimized but + ;; portable variant (no assembly). + (make-blis "reference" #t)) + +(define ignorance blis) + +(define-syntax-rule (blis/x86_64 processor) + "Expand to a package specialized for PROCESSOR." + (package + (inherit (make-blis processor)) + (supported-systems '("x86_64-linux")))) + +(define-public blis-sandybridge + ;; BLIS specialized for Sandy Bridge processors (launched 2011): + ;; . + (blis/x86_64 "sandybridge")) + +(define-public blis-haswell + ;; BLIS specialized for Haswell processors (launched 2013): + ;; . + (blis/x86_64 "haswell")) + +(define-public blis-knl + ;; BLIS specialized for Knights Landing processor (launched 2016): + ;; . + (blis/x86_64 "knl")) + + (define-public openlibm (package (name "openlibm") -- cgit v1.2.3