diff options
author | Herman Rimm <herman@rimm.ee> | 2024-05-15 20:01:58 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-06-02 12:05:10 +0200 |
commit | 4b443b41f46dc7575a72bbf1c1ab615c661177fa (patch) | |
tree | 232bd6c80d09b4300825331c3ade7e4414990e0c /gnu/packages/maths.scm | |
parent | e170c51404846471c83756f448e693fb6f9ad027 (diff) | |
download | guix-4b443b41f46dc7575a72bbf1c1ab615c661177fa.tar.gz guix-4b443b41f46dc7575a72bbf1c1ab615c661177fa.zip |
gnu: gecode: Update to 6.2.0-1.f7f0d7c.
* gnu/packages/maths.scm (gecode): Update to 6.2.0-1.f7f0d7c.
[version]: Use version.
[arguments]: Add patch-msc-and-version phase. Install examples to the
examples output again.
(minizinc)[arguments]: Copy provided gecode.msc file instead.
Change-Id: I5e89105f3fef61d6aa677a4a118225679220ce5d
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/maths.scm')
-rw-r--r-- | gnu/packages/maths.scm | 105 |
1 files changed, 43 insertions, 62 deletions
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 9a37b681e9..84e1ed03ed 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2704,28 +2704,26 @@ and quadratic objectives using the Simplex algorithm.") (license license:epl1.0))) (define-public gecode - ;; The current release is not compatible with minizinc anymore. - ;; Use a commit that has been tested with minizinc. - (let ((commit "2d20e88cae176584b6e09d909aca3eb72ae76829") - (revision "2")) + (let* ((commit "f7f0d7c273d6844698f01cec8229ebe0b66a016a") + (version (git-version "6.2.0" "1" commit))) (package (name "gecode") - (version (git-version "6.2.0" revision commit)) + (version version) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/Gecode/gecode") - (commit commit))) + (url "https://github.com/Gecode/gecode") + (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0hf7hd7m5p26xwn8f561f0gn2a6q33xz818jg3ivmvp2ysmmmm4r")) + (base32 + "16gzwa64w90vifaflmii515rsrqclf2y7nziq621m4ad9cjgcixj")) (modules '((guix build utils))) - (snippet '(begin - ;; delete generated sources - (for-each delete-file - '("gecode/kernel/var-imp.hpp" - "gecode/kernel/var-type.hpp")))))) + ;; delete generated sources + (snippet '(for-each delete-file + '("gecode/kernel/var-imp.hpp" + "gecode/kernel/var-type.hpp"))))) (outputs '("out" "examples")) (build-system gnu-build-system) (arguments @@ -2739,6 +2737,16 @@ and quadratic objectives using the Simplex algorithm.") (ice-9 popen)) #:phases #~(modify-phases %standard-phases + (add-before 'configure 'patch-msc-and-version + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "tools/flatzinc/gecode.msc.in" + (("\\.\\./../..") out) + (("\\.\\.") + (string-append out "/share/minizinc"))) + (substitute* "configure" + (("(PACKAGE_[^0-9]*)[0-9\\.]+" all match) + (string-append match #$version)))))) (add-after 'build 'build-examples (lambda _ (invoke "make" "compileexamples"))) @@ -2747,33 +2755,27 @@ and quadratic objectives using the Simplex algorithm.") (add-after 'install 'fix-rpath (lambda _ (let ((libdir (string-append #$output "/lib"))) - (for-each (lambda (file) - (let* ((pipe (open-pipe* OPEN_READ - "patchelf" - "--print-rpath" file)) - (line (read-line pipe))) - (and (zero? (close-pipe pipe)) - (invoke "patchelf" "--set-rpath" - (string-append libdir - ":" line) - file)))) - (find-files libdir ".*\\.so$"))))) + (for-each + (lambda (file) + (let* ((pipe (open-pipe* OPEN_READ "patchelf" + "--print-rpath" file)) + (line (read-line pipe))) + (and (zero? (close-pipe pipe)) + (invoke "patchelf" "--set-rpath" + (string-append libdir ":" line) + file)))) + (find-files libdir ".*\\.so$"))))) (add-after 'install 'install-examples - (lambda _ - (invoke "make" "installexamples" - (string-append "bindir=" - #$output "/bin")))) - ;; Tests depend on installed libraries. - (delete 'check) - (add-after 'fix-rpath 'check - (assoc-ref %standard-phases - 'check))))) + (lambda* (#:key outputs #:allow-other-keys) + (let* ((examples (assoc-ref outputs "examples")) + (bindir (format #f "bindir=~a/bin" examples))) + (invoke "make" "installexamples" bindir))))))) (native-inputs (list patchelf perl sed)) (home-page "https://www.gecode.org") (synopsis "Toolkit for developing constraint-based systems") (description - "Gecode is a C++ toolkit for developing constraint-based -systems and applications. It provides a modular and extensible solver.") + "Gecode is a C++ toolkit for developing constraint-based systems +and applications. It provides a modular and extensible solver.") (license license:expat)))) (define-public libfixmath @@ -4181,33 +4183,12 @@ book.") }" port) (newline port))) - - (copy-recursively - (string-append chuffed "/share/minizinc/solvers") - (string-append pkgdatadir "/solvers")) - (call-with-output-file (string-append pkgdatadir - "/solvers/gecode.msc") - (lambda (port) - (format port - "\ -{ - \"id\": \"org.gecode.gecode\", - \"name\": \"Gecode\", - \"description\": \"Gecode FlatZinc executable\", - \"version\": ~s, - \"mznlib\": ~s, - \"executable\": ~s, - \"supportsMzn\": false, - \"supportsFzn\": true, - \"needsSolns2Out\": true, - \"needsMznExecutable\": false, - \"needsStdlibDir\": false, - \"isGUIApplication\": false -}" - (last (string-split gecode #\-)) - (string-append gecode "/share/gecode/mznlib") - (string-append gecode "/bin/fzn-gecode")) - (newline port))))))))) + (for-each + (lambda (solver) + (copy-recursively + (string-append solver "/share/minizinc/solvers") + (string-append pkgdatadir "/solvers"))) + (list gecode chuffed)))))))) (native-inputs (list bison flex)) (inputs |