Toggle diff (203 lines)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index d551b751e6..48f43f264b 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -63,6 +63,7 @@
;;; Copyright © 2023 Jake Leporte <jakeleporte@outlook.com>
;;; Copyright © 2023 Camilo Q.S. (Distopico) <distopico@riseup.net>
;;; Copyright © 2023 David Elsing <david.elsing@posteo.net>
+;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2612,73 +2613,81 @@ (define-public clp
(license license:epl1.0)))
(define-public gecode
- (package
- (name "gecode")
- (version "6.2.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/Gecode/gecode")
- (commit (string-append "release-" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0b1cq0c810j1xr2x9y9996p894571sdxng5h74py17c6nr8c6dmk"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; delete generated sources
- (for-each delete-file
- '("gecode/kernel/var-imp.hpp"
- "gecode/kernel/var-type.hpp"))))))
- (outputs '("out" "examples"))
- (build-system gnu-build-system)
- (arguments
- `(#:configure-flags
- (list (string-append "GLDFLAGS=-Wl,-rpath="
- (assoc-ref %outputs "out")
- "/lib")
- "--enable-examples=no")
- #:modules ((guix build gnu-build-system)
- (guix build utils)
- (ice-9 rdelim)
- (ice-9 popen))
- #:phases
- (modify-phases %standard-phases
- (add-after 'build 'build-examples
- (lambda* (#:key outputs #:allow-other-keys)
- (invoke "make" "compileexamples")))
- ;; The Makefile disrespects GLDFLAGS for some reason, so we have to
- ;; patch it ourselves... *sigh*
- (add-after 'install 'fix-rpath
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((libdir (string-append (assoc-ref outputs "out") "/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$")))))
- (add-after 'install 'install-examples
- (lambda* (#:key outputs #:allow-other-keys)
- (invoke "make" "installexamples"
- (string-append "bindir=" (assoc-ref outputs "examples")
- "/bin"))))
- ;; Tests depend on installed libraries.
- (delete 'check)
- (add-after 'fix-rpath 'check
- (assoc-ref %standard-phases 'check)))))
- (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.")
- (license license:expat)))
+ (let* ((commit "f7f0d7c273d6844698f01cec8229ebe0b66a016a")
+ (version (git-version "6.2.0" "1" commit)))
+ (package
+ (name "gecode")
+ (version version)
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Gecode/gecode")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "16gzwa64w90vifaflmii515rsrqclf2y7nziq621m4ad9cjgcixj"))
+ (modules '((guix build utils)))
+ ;; 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
+ (list
+ #:configure-flags
+ #~(list (string-append "GLDFLAGS=-Wl,-rpath="
+ (assoc-ref %outputs "out") "/lib")
+ "--enable-examples=no")
+ #:modules '((guix build gnu-build-system)
+ (guix build utils)
+ (ice-9 rdelim)
+ (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")))
+ ;; The Makefile disrespects GLDFLAGS for some reason, so
+ ;; we have to patch it ourselves... *sigh*
+ (add-after 'install 'fix-rpath
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (libdir (string-append out "/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$")))))
+ (add-after 'install 'install-examples
+ (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.")
+ (license license:expat))))
(define-public libfixmath
(let ((commit "1416c9979635c69f344d3c1de84b3246001a6540")
@@ -4083,31 +4092,12 @@ (define-public minizinc
}"
port)
(newline port)))
-
- (mkdir-p (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))))))))
(native-inputs
(list bison flex))
(inputs
base-commit: 059c9ed104c91f7a537f369c4524b91d6cf8a13e
--
2.41.0