From de2e36411feb2f29edfed563b3ad143f8a9ea3d7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 29 Mar 2021 17:31:32 +0200 Subject: gnu: metis: Add 'release-monitoring-url' property. * gnu/packages/maths.scm (metis)[properties]: New field. --- gnu/packages/maths.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 565f109f47..2e072e7d82 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2015 Fabian Harfert ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016, 2018, 2020 Kei Kebreau -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès +;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016, 2017 Thomas Danckaert ;;; Copyright © 2017, 2018, 2019, 2020 Paul Garlick @@ -3305,6 +3305,9 @@ YACC = bison -pscotchyy -y -b y (sha256 (base32 "1cjxgh41r8k6j029yxs8msp3z6lcnpm16g5pvckk35kc7zhfpykn")))) + (properties + `((release-monitoring-url + . "http://glaros.dtc.umn.edu/gkhome/metis/metis/download"))) (build-system cmake-build-system) (inputs `(("blas" ,openblas))) -- cgit v1.2.3 From bab809cef0600a1c5d0c7d3fc5d434435b4c5688 Mon Sep 17 00:00:00 2001 From: Felix Gruber Date: Thu, 1 Apr 2021 23:07:18 +0200 Subject: gnu: suitesparse: Update to 5.9.0. * gnu/packages/maths.scm (suitesparse): Update to 5.9.0. [arguments]: Use cc-for-target instead of hard-coding gcc. Signed-off-by: Efraim Flashner --- gnu/packages/maths.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 2e072e7d82..5cd11ec435 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -34,7 +34,7 @@ ;;; Copyright © 2019 Steve Sprang ;;; Copyright © 2019 Robert Smith ;;; Copyright © 2020 Jakub Kądziołka -;;; Copyright © 2020 Felix Gruber +;;; Copyright © 2020, 2021 Felix Gruber ;;; Copyright © 2020 R Veera Kumar ;;; Copyright © 2020 Vincent Legoll ;;; Copyright © 2020 Nicolò Balzarotti @@ -3910,7 +3910,7 @@ Fresnel integrals, and similar related functions as well.") (define-public suitesparse (package (name "suitesparse") - (version "5.8.1") + (version "5.9.0") (source (origin (method git-fetch) @@ -3920,7 +3920,7 @@ Fresnel integrals, and similar related functions as well.") (file-name (git-file-name name version)) (sha256 (base32 - "0qjlyfxs8s48rs63c2fzspisgq1kk4bwkgnhmh125hgkdhrq2w1c")) + "1zhkix58afw92s7p291prljdm3yi0pjg1kbi3lczdb8rb14jkz5n")) (patches (search-patches "suitesparse-mongoose-cmake.patch")) (modules '((guix build utils))) (snippet @@ -3930,9 +3930,9 @@ Fresnel integrals, and similar related functions as well.") #t)))) (build-system gnu-build-system) (arguments - '(#:tests? #f ;no "check" target + `(#:tests? #f ;no "check" target #:make-flags - (list "CC=gcc" + (list (string-append "CC=" ,(cc-for-target)) "TBB=-ltbb" "MY_METIS_LIB=-lmetis" ;; Flags for cmake (required to build GraphBLAS and Mongoose) -- cgit v1.2.3 From 5fd046cbfd73ac178c02c503f3d8e2104a929e52 Mon Sep 17 00:00:00 2001 From: Franck Pérignon Date: Tue, 6 Apr 2021 11:20:00 +0000 Subject: gnu: Add scotch and pt-scotch with shared libraries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/maths.scm (scotch-shared, pt-scotch-shared): New variables. Signed-off-by: Leo Famulari --- gnu/packages/maths.scm | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 5cd11ec435..ff1b46f095 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -43,6 +43,7 @@ ;;; Copyright © 2020 Simon Tournier ;;; Copyright © 2020 Martin Becze ;;; Copyright © 2021 Gerd Heber +;;; Copyright © 2021 Franck Pérignon ;;; ;;; This file is part of GNU Guix. ;;; @@ -3246,6 +3247,63 @@ YACC = bison -pscotchyy -y -b y (synopsis "Programs and libraries for graph algorithms (32-bit integers)"))) +(define-public scotch-shared + (package (inherit scotch) + (name "scotch-shared") + (native-inputs + `(("gcc" ,gcc) + ("flex" ,flex) + ("bison" ,bison))) + (arguments + (substitute-keyword-arguments (package-arguments scotch) + ((#:phases scotch-shared-phases) + `(modify-phases ,scotch-shared-phases + (replace + 'configure + (lambda _ + ;; Otherwise, the RUNPATH will lack the final path component. + (setenv "RPATHFLAGS" (string-append "-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib")) + (call-with-output-file "Makefile.inc" + (lambda (port) + (format port " +EXE = +LIB = .so +OBJ = .o +MAKE = make +AR = gcc +ARFLAGS = -shared -o +CAT = cat +CCS = gcc +CCP = mpicc +CCD = gcc +CPPFLAGS =~{ -D~a~} +CFLAGS = -O2 -g -fPIC $(CPPFLAGS) $(RPATHFLAGS) +CLIBFLAGS = -shared -fPIC +LDFLAGS = -lz -lm -lrt -lpthread -Xlinker --no-as-needed +CP = cp +LEX = flex -Pscotchyy -olex.yy.c +LN = ln +MKDIR = mkdir +MV = mv +RANLIB = echo +YACC = bison -pscotchyy -y -b y +" + '("COMMON_FILE_COMPRESS_GZ" + "COMMON_PTHREAD" + "COMMON_RANDOM_FIXED_SEED" + "INTSIZE64" ;use 'int64_t' + ;; Prevents symbolc clashes with libesmumps + "SCOTCH_RENAME" + ;; XXX: Causes invalid frees in superlu-dist tests + ;; "SCOTCH_PTHREAD" + ;; "SCOTCH_PTHREAD_NUMBER=2" + "restrict=__restrict" + ))))#t)) + (delete 'check))))) + (synopsis + "Programs and libraries for graph algorithms (shared libraries version)"))) + (define-public pt-scotch (package (inherit scotch) (name "pt-scotch") @@ -3293,6 +3351,28 @@ YACC = bison -pscotchyy -y -b y (synopsis "Programs and libraries for graph algorithms (with MPI and 32-bit integers)"))) +(define-public pt-scotch-shared + (package (inherit scotch-shared) + (name "pt-scotch-shared") + (propagated-inputs + `(("openmpi" ,openmpi))) ;Headers include MPI headers + (arguments + (substitute-keyword-arguments (package-arguments scotch-shared) + ((#:phases scotch-shared-phases) + `(modify-phases ,scotch-shared-phases + (replace + 'build + (lambda _ + (invoke "make" (format #f "-j~a" (parallel-job-count)) + "ptscotch" "ptesmumps") + + ;; Install the serial metis compatibility library + (invoke "make" "-C" "libscotchmetis" "install"))) + (add-before 'check 'mpi-setup + ,%openmpi-setup))))) + (synopsis "Graph algorithms (shared libraries version, with MPI)"))) + + (define-public metis (package (name "metis") -- cgit v1.2.3 From c990604cb044dacf9c52fa33ec63b660329d4cb6 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Mon, 22 Feb 2021 21:15:21 +1100 Subject: gnu: python-sip: Update to 5.5.0. Add python-sip-4 * gnu/packages/qt.scm (python-sip): Update to 5.5.0. (python-sip-4): New variable. Rename the old python-sip to python-sip-4. (python2-sip): Inherit from python-sip-4. * gnu/packages/maths.scm (veusz)[native-inputs]: Use python-sip-4. * gnu/packages/pdf.scm (python-poppler-qt5): Use python-sip-4. * gnu/packages/geo.scm (qgis)[arguments]: Fix build for python-sip@5. --- gnu/packages/geo.scm | 16 ++++++++++++++- gnu/packages/maths.scm | 3 ++- gnu/packages/pdf.scm | 2 +- gnu/packages/qt.scm | 54 +++++++++++++++++++++++++++++++++++++------------- 4 files changed, 58 insertions(+), 17 deletions(-) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index bc5e6820f3..c4bdb6aca0 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -2082,7 +2082,21 @@ growing set of geoscientific methods.") (("sip_dir = cfg.default_sip_dir") (string-append "sip_dir = \"" (assoc-ref inputs "python-pyqt+qscintilla") - "/share/sip\""))) + "/share/sip\"")) + ;; Fix building with python-sip@5. + ;; + ;; The reason for this is that python-sip@5 introduces some + ;; changes such as a new build system 'sip-build' as well as the + ;; use of the path "/lib/pythonX.X/site-packages/*/bindings/" + ;; instead of "/share/sip/" for .sip files. However, we do not + ;; actually use that those yet. QGIS detects SIP5 and assumes we + ;; are, messing up the build. The long term solution is to fully + ;; upgrade SIP, use sip-build and fix all failing packages, but + ;; for now I just want to get the build working. + ((".pyqt_sip_dir...os.path.join.*,") + (string-append "'pyqt_sip_dir': \"" + (assoc-ref inputs "python-pyqt+qscintilla") + "/share/sip" "\","))) (substitute* (list "scripts/prepare_commit.sh" "scripts/qstringfixup.sh" "scripts/release.pl" diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ff1b46f095..c1c29bc1d3 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2290,7 +2290,8 @@ ASCII text files using Gmsh's own scripting language.") (native-inputs `(("pkg-config" ,pkg-config) ;;("python-astropy" ,python-astropy) ;; FIXME: Package this. - ("qttools" ,qttools))) + ("qttools" ,qttools) + ("python-sip" ,python-sip-4))) (inputs `(("ghostscript" ,ghostscript) ;optional, for EPS/PS output ("python-dbus" ,python-dbus) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index cbbdf68f5b..689d03afc8 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -339,7 +339,7 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.") (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("python-sip" ,python-sip) + `(("python-sip" ,python-sip-4) ("python-pyqt" ,python-pyqt) ("poppler-qt5" ,poppler-qt5) ("qtbase" ,qtbase))) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 21ccf15dc3..83501b82ca 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2020 Jonathan Brielmaier ;;; Copyright © 2020 Michael Rohleder ;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2021 Brendan Tildesley ;;; ;;; This file is part of GNU Guix. ;;; @@ -88,6 +89,7 @@ #:use-module (gnu packages pulseaudio) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) #:use-module (gnu packages regex) #:use-module (gnu packages ruby) @@ -1806,6 +1808,42 @@ and binaries removed, and adds modular support for using system libraries.") (define-public python-sip (package + (name "python-sip") + (version "5.5.0") + (source + (origin + (method url-fetch) + (uri (list (pypi-uri "sip" version) + (string-append "https://www.riverbankcomputing.com/static/" + "Downloads/sip/" version + "/sip-" version ".tar.gz"))) + (sha256 + (base32 + "1idaivamp1jvbbai9yzv471c62xbqxhaawccvskaizihkd0lq0jx")))) + (build-system python-build-system) + (native-inputs + `(("python" ,python-wrapper))) + (propagated-inputs + `(("python-toml" ,python-toml) + ("python-packaging" ,python-packaging))) + (home-page "https://www.riverbankcomputing.com/software/sip/intro") + (synopsis "Python binding creator for C and C++ libraries") + (description + "SIP is a tool to create Python bindings for C and C++ libraries. It +was originally developed to create PyQt, the Python bindings for the Qt +toolkit, but can be used to create bindings for any C or C++ library. + +SIP comprises a code generator and a Python module. The code generator +processes a set of specification files and generates C or C++ code, which +is then compiled to create the bindings extension module. The SIP Python +module provides support functions to the automatically generated code.") + ;; There is a choice between a python like license, gpl2 and gpl3. + ;; For compatibility with pyqt, we need gpl3. + (license license:gpl3))) + +(define-public python-sip-4 + (package + (inherit python-sip) (name "python-sip") (version "4.19.24") (source @@ -1821,6 +1859,7 @@ and binaries removed, and adds modular support for using system libraries.") (build-system gnu-build-system) (native-inputs `(("python" ,python-wrapper))) + (propagated-inputs `()) (arguments `(#:tests? #f ; no check target #:imported-modules ((guix build python-build-system) @@ -1843,23 +1882,10 @@ and binaries removed, and adds modular support for using system libraries.") "--bindir" bin "--destdir" lib "--incdir" include))))))) - (home-page "https://www.riverbankcomputing.com/software/sip/intro") - (synopsis "Python binding creator for C and C++ libraries") - (description - "SIP is a tool to create Python bindings for C and C++ libraries. It -was originally developed to create PyQt, the Python bindings for the Qt -toolkit, but can be used to create bindings for any C or C++ library. - -SIP comprises a code generator and a Python module. The code generator -processes a set of specification files and generates C or C++ code, which -is then compiled to create the bindings extension module. The SIP Python -module provides support functions to the automatically generated code.") - ;; There is a choice between a python like license, gpl2 and gpl3. - ;; For compatibility with pyqt, we need gpl3. (license license:gpl3))) (define-public python2-sip - (package/inherit python-sip + (package/inherit python-sip-4 (name "python2-sip") (native-inputs `(("python" ,python-2))))) -- cgit v1.2.3 From 969adb235ee34decb65255e1ea821ff0e221ed3d Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Wed, 7 Apr 2021 18:51:23 -0400 Subject: gnu: blis: Update to 0.8.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/maths.scm (make-blis): Remove internal function. Inline into ... (bliss): ... this variable. Update to 0.8.1. [native-inputs]: Add "python" and "perl". [arguments]: Adjust 'configure' phase to take advantage of new support for "configuration families" with runtime hardware detection. Select configuration automatically based on target systems, and allow "--blis-config=" in #:configure-flags to override the default. When building for x86_64, include all supported microarchetecture specializations. Add "--enable-verbose-make" configure flag for better build logs. Stop ignoring other flags from #:configure-flags. Remove explicit #:substitutable? argument: the package is now always substitutable. Add (srfi srfi-1) to #:modules. (blis/x86_64): Remove internal macro. (blis-sandybridge): Remove package: included in 'blis'. (blis-haswell): Remove package: included in 'blis'. (blis-knl): Remove package: included in 'blis'. Signed-off-by: Ludovic Courtès --- gnu/packages/maths.scm | 142 +++++++++++++++++++++++++++---------------------- 1 file changed, 79 insertions(+), 63 deletions(-) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index c1c29bc1d3..15eb0d9ee1 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -44,6 +44,7 @@ ;;; Copyright © 2020 Martin Becze ;;; Copyright © 2021 Gerd Heber ;;; Copyright © 2021 Franck Pérignon +;;; Copyright © 2021 Philip McGrath ;;; ;;; This file is part of GNU Guix. ;;; @@ -3825,52 +3826,94 @@ parts of it.") (synopsis "Optimized BLAS library based on GotoBLAS (ILP64 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: -." +(define-public blis (package - (name (if (string=? implementation "reference") - "blis" - (string-append "blis-" implementation))) - (version "0.2.2") + (name "blis") + (version "0.8.1") (home-page "https://github.com/flame/blis") (source (origin (method git-fetch) (uri (git-reference (url home-page) (commit version))) (sha256 (base32 - "1wr79a50nm4abhw8w3sn96nmwp5mrzifcigk7khw9qcgyyyqayfh")) + "05ifil6jj9424sr8kmircl8k4bmxnl3y12a79vwj1kxxva5gz50g")) (file-name (git-file-name "blis" version)))) + (native-inputs + `(("python" ,python) + ("perl" ,perl))) (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"))) - (invoke "./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))))) + `(#:modules + ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:test-target "test" + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs + target + system + (configure-flags '()) + #:allow-other-keys) + ;; This is a home-made 'configure' script. + (let* ((out (assoc-ref outputs "out")) + ;; Guix-specific support for choosing the configuration + ;; via #:configure-flags: see below for details. + (config-flag-prefix "--blis-config=") + (maybe-config-flag (find + (lambda (s) + (string-prefix? config-flag-prefix s)) + configure-flags)) + (configure-flags (if maybe-config-flag + (delete maybe-config-flag + configure-flags) + configure-flags)) + ;; Select the "configuration" to build. + ;; The "generic" configuration is non-optimized but + ;; portable (no assembly). + ;; The "x86_64" configuration family includes + ;; sub-configurations for all supported + ;; x86_64 microarchitectures. + ;; BLIS currently lacks runtime hardware detection + ;; for other architectures: see + ;; . + ;; Conservatively, we stick to "generic" on armhf, + ;; aarch64, and ppc64le for now. (But perhaps + ;; "power9", "cortexa9", and "cortexa57" might be + ;; general enough to use?) + ;; Another approach would be to use the "auto" + ;; configuration and make this package + ;; non-substitutable. + ;; The build is fairly intensive, though. + (blis-config + (cond + (maybe-config-flag + (substring maybe-config-flag + (string-length config-flag-prefix))) + ((string-prefix? "x86_64" (or target system)) + "x86_64") + (else + "generic"))) + (configure-args + `("-p" ,out + "-d" "opt" + "--disable-static" + "--enable-shared" + "--enable-threading=openmp" + "--enable-verbose-make" + ,@configure-flags + ,blis-config))) + (format #t "configure args: ~s~%" configure-args) + (apply invoke + "./configure" + configure-args) + #t))) + (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 @@ -3882,35 +3925,8 @@ 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 From f67663d6694c20eefe006dd8910008defbbcb2d3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 12 Apr 2021 12:37:19 +0200 Subject: gnu: blis: Add deprecated aliases. Add deprecated aliases for packages removed in the parent commit. * gnu/packages/maths.scm (blis-sandybridge, blis-haswell, blis-knl): New variables. --- gnu/packages/maths.scm | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 15eb0d9ee1..758f0a5c32 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -3925,6 +3925,10 @@ 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-sandybridge (deprecated-package "blis-sandybridge" blis)) +(define-public blis-haswell (deprecated-package "blis-haswell" blis)) +(define-public blis-knl (deprecated-package "blis-knl" blis)) + (define ignorance blis) (define-public openlibm -- cgit v1.2.3