#:configure-flags '("--enable-shared")
#:phases
(modify-phases %standard-phases
+ ;; This is inspired by two of Debian's patches.
+ (add-before 'configure 'add-more-aarch64-support
+ (lambda _
+ (substitute* '("mfhdf/ncgen/ncgen.l"
+ "mfhdf/ncgen/ncgenyy.c"
+ "mfhdf/libsrc/netcdf.h.in")
+ (("AIX5L64") "__aarch64__"))
+ #t))
(add-before 'configure 'patchbuild
(lambda _
(substitute*
-R\\$\\(abs_top_builddir\\)/mfhdf/xdr/\\.libs") "")
(("@HDF_BUILD_SHARED_TRUE@AM_LDFLAGS = \
-R\\$\\(abs_top_builddir\\)/mfhdf/libsrc/\\.libs \
--R\\$\\(abs_top_builddir\\)/hdf/src/\\.libs \\$\\(XDR_ADD\\)") "")))))))
+-R\\$\\(abs_top_builddir\\)/hdf/src/\\.libs \\$\\(XDR_ADD\\)") ""))
+ #t)))))
(home-page "https://www.hdfgroup.org/products/hdf4/")
(synopsis
"Library and multi-object file format for storing and managing data")
(assoc-ref %build-inputs "superlu") "/include")
,(string-append "--with-superlu-lib="
(assoc-ref %build-inputs "superlu") "/lib/libsuperlu.a"))
+ #:make-flags
+ ;; Honor (parallel-job-count) for build. Do not use --with-make-np,
+ ;; whose value is dumped to $out/lib/petsc/conf/petscvariables.
+ (list (format #f "MAKE_NP=~a" (parallel-job-count)))
#:phases
(modify-phases %standard-phases
(replace 'configure
(format #t "configure flags: ~s~%" flags)
(zero? (apply system* "./configure" flags)))))
(add-after 'configure 'clean-local-references
- (lambda* (#:key inputs outputs #:allow-other-keys)
+ (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* (find-files "." "^petsc(conf|machineinfo).h$")
;; Prevent build directory from leaking into compiled code
(((getcwd)) out)
;; Scrub timestamp for reproducibility
((".*Libraries compiled on.*") ""))
+ (substitute* (find-files "." "petscvariables")
+ ;; Do not expose build machine characteristics, set to defaults.
+ (("MAKE_NP = [:digit:]+") "MAKE_NP = 2")
+ (("NPMAX = [:digit:]+") "NPMAX = 2"))
#t)))
(add-after 'install 'clean-install
;; Try to keep installed files from leaking build directory names.
#:configure-flags
`(,(string-append "--with-arpack-dir="
(assoc-ref %build-inputs "arpack") "/lib"))
+ #:make-flags ;honor (parallel-job-count)
+ `(,(format #f "MAKE_NP=~a" (parallel-job-count)))
#:phases
(modify-phases %standard-phases
(replace 'configure
(build-system gnu-build-system)
(inputs
`(("zlib" ,zlib)
- ("flex" ,flex-2.6.1) ; A bug in flex prevents building with flex-2.6.3.
+ ("flex" ,flex)
("bison" ,bison)))
(arguments
`(#:phases
(define-public wxmaxima
(package
(name "wxmaxima")
- (version "17.05.0")
+ (version "17.05.1")
(source
(origin
(method url-fetch)
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1bsyd7r12xm2crpizb9iyyki3j0mbazzzwbsh871m06dv2wk97gq"))))
+ "0dv0cy0cf46v0cbw32izscpkdmpxg1qhwq1f4cz46kkqd8k4yfbj"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
("gtk+" ,gtk+)
("shared-mime-info" ,shared-mime-info)))
(arguments
- `(#:phases (modify-phases %standard-phases
- (add-before
- 'configure 'autoconf
- (lambda _
- (zero? (system* "./bootstrap"))))
- (add-after
- 'install 'wrap-program
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (wrap-program (string-append (assoc-ref outputs "out")
- "/bin/wxmaxima")
- `("PATH" ":" prefix
- (,(string-append (assoc-ref inputs "maxima")
- "/bin")))
- ;; For GtkFileChooserDialog.
- `("GSETTINGS_SCHEMA_DIR" =
- (,(string-append (assoc-ref inputs "gtk+")
- "/share/glib-2.0/schemas")))
- `("XDG_DATA_DIRS" ":" prefix
- (;; Needed by gdk-pixbuf to know supported icon formats.
- ,(string-append
- (assoc-ref inputs "shared-mime-info") "/share")
- ;; The default icon theme of GTK+.
- ,(string-append
- (assoc-ref inputs "adwaita-icon-theme") "/share"))))
- #t)))))
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'autoconf
+ (lambda _
+ (zero? (system* "sh" "bootstrap"))))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (wrap-program (string-append (assoc-ref outputs "out")
+ "/bin/wxmaxima")
+ `("PATH" ":" prefix
+ (,(string-append (assoc-ref inputs "maxima")
+ "/bin")))
+ ;; For GtkFileChooserDialog.
+ `("GSETTINGS_SCHEMA_DIR" =
+ (,(string-append (assoc-ref inputs "gtk+")
+ "/share/glib-2.0/schemas")))
+ `("XDG_DATA_DIRS" ":" prefix
+ (;; Needed by gdk-pixbuf to know supported icon formats.
+ ,(string-append
+ (assoc-ref inputs "shared-mime-info") "/share")
+ ;; The default icon theme of GTK+.
+ ,(string-append
+ (assoc-ref inputs "adwaita-icon-theme") "/share"))))
+ #t)))))
(home-page "https://andrejv.github.io/wxmaxima/")
(synopsis "Graphical user interface for the Maxima computer algebra system")
(description
(define-public suitesparse
(package
(name "suitesparse")
- (version "4.4.3")
+ (version "4.5.5")
(source
(origin
(method url-fetch)
version ".tar.gz"))
(sha256
(base32
- "100hdzr0mf4mzlwnqpmwpfw4pymgsf9n3g0ywb1yps2nk1zbkdy5"))))
+ "1dnr6pmjzc2qmbkmb4shigx1l74ilf6abn7svyd6brxgvph8vadr"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Remove bundled metis source
+ '(delete-file-recursively "metis-5.1.0"))))
(build-system gnu-build-system)
(arguments
- '(#:parallel-build? #f ;cholmod build fails otherwise
- #:tests? #f ;no "check" target
+ '(#:tests? #f ;no "check" target
#:make-flags
(list "CC=gcc"
"BLAS=-lblas"
"TBB=-ltbb"
- "CHOLMOD_CONFIG=-DNPARTITION" ;required when METIS is not used
+ "MY_METIS_LIB=-lmetis"
(string-append "INSTALL_LIB="
(assoc-ref %outputs "out") "/lib")
(string-append "INSTALL_INCLUDE="
- (assoc-ref %outputs "out") "/include"))
+ (assoc-ref %outputs "out") "/include")
+ "library")
#:phases
- (alist-cons-before
- 'install 'prepare-out
- ;; README.txt states that the target directories must exist prior to
- ;; running "make install".
- (lambda _
- (mkdir-p (string-append (assoc-ref %outputs "out") "/lib"))
- (mkdir-p (string-append (assoc-ref %outputs "out") "/include")))
- ;; no configure script
- (alist-delete 'configure %standard-phases))))
+ (modify-phases %standard-phases
+ (delete 'configure)))) ;no configure script
(inputs
`(("tbb" ,tbb)
- ("lapack" ,lapack)))
+ ("lapack" ,lapack)
+ ("metis" ,metis)))
(home-page "http://faculty.cse.tamu.edu/davis/suitesparse.html")
(synopsis "Suite of sparse matrix software")
(description
(define-public dealii
(package
(name "dealii")
- (version "8.4.1")
+ (version "8.5.0")
(source
(origin
(method url-fetch)
"download/v" version "/dealii-" version ".tar.gz"))
(sha256
(base32
- "1bdksvvyp1rj37df1ndh8j3x9nzpc3sazw8nd0hzvnlw0qnyk800"))
+ "0yfpy4zh8j7hmqakw17zdlmvfdcmhwgs66wcb716plc4y7v3z4g6"))
(modules '((guix build utils)))
(snippet
;; Remove bundled sources: UMFPACK, TBB, muParser, and boost
("suitesparse" ,suitesparse))) ;for UMFPACK
(arguments
`(#:build-type "DebugRelease" ;only supports Release, Debug, or DebugRelease
- #:configure-flags '("-DCOMPAT_FILES=OFF") ;Follow new directory structure
- #:phases (modify-phases %standard-phases
- (add-after
- 'install 'hint-example-prefix
- ;; Set Cmake hints in examples so that they can find this
- ;; deal.II when configuring.
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref %outputs "out"))
- (exmpl (string-append out "/share/doc"
- "/dealii/examples")))
- (substitute* (find-files exmpl "CMakeLists.txt")
- (("([[:space:]]*HINTS.*)\n" _ line)
- (string-append line " $ENV{HOME}/.guix-profile "
- out "\n")))
- #t))))))
+ #:configure-flags
+ ;; Work around a bug in libsuitesparseconfig linking
+ ;; see https://github.com/dealii/dealii/issues/4745
+ '("-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON")))
(home-page "https://www.dealii.org")
(synopsis "Finite element library")
(description
(sha256
(base32
"032a5lvji2liwmc25jv52bdrhimqflvqbpg77ccaq1jykhiivbmf"))))
- (build-system gnu-build-system)
+ (build-system cmake-build-system)
(arguments
- `(#:test-target "test"
+ `(#:configure-flags
+ (list "-DBUILD_PYTHON_BINDINGS=true"
+ "-DINSTALL_PYTHON_BINDINGS=true"
+ (string-append "-DCMAKE_INSTALL_PYTHON_PKG_DIR="
+ %output
+ "/lib/python2.7/site-packages")
+ (string-append "-DCMAKE_INSTALL_LIBDIR="
+ %output
+ "/lib"))
+
#:phases
(modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-before 'configure 'bootstrap
+ (lambda _
(zero?
- (system* "python" "scripts/mk_make.py"
- (string-append "--prefix="
- (assoc-ref outputs "out"))))))
- (add-after 'configure 'change-dir
+ (system* "python" "contrib/cmake/bootstrap.py" "create"))))
+ (add-before 'check 'make-test-z3
(lambda _
- (chdir "build")
- #t)))))
+ ;; Build the test suite executable.
+ (zero? (system* "make" "test-z3" "-j"
+ (number->string (parallel-job-count))))))
+ (replace 'check
+ (lambda _
+ ;; Run all the tests that don't require arguments.
+ (zero? (system* "./test-z3" "/a")))))))
(native-inputs
`(("python" ,python-2)))
(synopsis "Theorem prover")
(description "Z3 is a theorem prover and @dfn{satisfiability modulo
-theories} (SMT) solver. It provides a C/C++ API.")
+theories} (SMT) solver. It provides a C/C++ API, as well as Python bindings.")
(home-page "https://github.com/Z3Prover/z3")
(license license:expat)))