summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHerman Rimm <herman@rimm.ee>2024-05-15 20:01:58 +0200
committerLudovic Courtès <ludo@gnu.org>2024-06-02 12:05:10 +0200
commit4b443b41f46dc7575a72bbf1c1ab615c661177fa (patch)
tree232bd6c80d09b4300825331c3ade7e4414990e0c
parente170c51404846471c83756f448e693fb6f9ad027 (diff)
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>
-rw-r--r--gnu/packages/maths.scm105
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