diff options
Diffstat (limited to 'gnu/packages/lisp-xyz.scm')
-rw-r--r-- | gnu/packages/lisp-xyz.scm | 306 |
1 files changed, 173 insertions, 133 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 5f64809b28..2a07a1b92f 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -4385,61 +4385,57 @@ is statically typed so there are differences.") (sbcl-package->cl-source-package sbcl-varjo)) (define-public sbcl-cffi - (package - (name "sbcl-cffi") - (version "0.24.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/cffi/cffi") - (commit (string-append "v" version)))) - (file-name (git-file-name "cl-cffi" version)) - (sha256 - (base32 "17ryim4xilb1rzxydfr7595dnhqkk02lmrbkqrkvi9091shi4cj3")))) - (build-system asdf-build-system/sbcl) - (inputs - (list libffi - sbcl-alexandria - sbcl-babel - sbcl-trivial-features)) - (native-inputs - (list pkg-config - sbcl-bordeaux-threads - sbcl-rt)) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-arm-support - (lambda _ - ;; This is apparently deprecated since libffi-3.3. - (substitute* "libffi/libffi-types.lisp" - (("\\\(\\\(:unix64.*") ")\n")))) - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "libffi/libffi.lisp" - (("libffi.so.7" all) (string-append - (assoc-ref inputs "libffi") - "/lib/" all))) - (substitute* "toolchain/c-toolchain.lisp" - (("\"cc\"") (format #f "~S" (which "gcc")))))) - (add-after 'build 'install-headers - (lambda* (#:key outputs #:allow-other-keys) - (install-file "grovel/common.h" - (string-append - (assoc-ref outputs "out") - "/include/grovel"))))) - #:asd-systems '("cffi" - "cffi-libffi" - "cffi-uffi-compat"))) - (home-page "https://common-lisp.net/project/cffi/") - (synopsis "Common Foreign Function Interface for Common Lisp") - (description "The Common Foreign Function Interface (CFFI) + (let ((commit "33970351e71bb5f12ba56fc40270089e948ae112") + (revision "1")) + (package + (name "sbcl-cffi") + (version (git-version "0.24.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cffi/cffi") + (commit commit))) + (file-name (git-file-name "cl-cffi" version)) + (sha256 + (base32 "1h7cw15f08gm6m4yz8hk7qkfwp7mwwnykjc5py6dhjakv0wh1g37")))) + (build-system asdf-build-system/sbcl) + (inputs + (list libffi + sbcl-alexandria + sbcl-babel + sbcl-trivial-features)) + (native-inputs + (list pkg-config + sbcl-bordeaux-threads + sbcl-rt)) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "libffi/libffi.lisp" + (("libffi.so.8" all) + (search-input-file inputs (string-append "/lib/" all)))) + (substitute* "toolchain/c-toolchain.lisp" + (("\"cc\"") + (format #f "~S" (which "gcc")))))) + (add-after 'build 'install-headers + (lambda _ + (install-file "grovel/common.h" + (string-append #$output + "/include/grovel"))))) + #:asd-systems ''("cffi" + "cffi-libffi" + "cffi-uffi-compat"))) + (home-page "https://common-lisp.net/project/cffi/") + (synopsis "Common Foreign Function Interface for Common Lisp") + (description "The Common Foreign Function Interface (CFFI) purports to be a portable foreign function interface for Common Lisp. The CFFI library is composed of a Lisp-implementation-specific backend in the CFFI-SYS package, and a portable frontend in the CFFI package.") - (license license:expat))) + (license license:expat)))) (define-public cl-cffi (sbcl-package->cl-source-package sbcl-cffi)) @@ -4900,68 +4896,73 @@ Lisp implementations.") (sbcl-package->ecl-package sbcl-closer-mop)) (define-public sbcl-cl-cffi-gtk - (let ((commit "e9a46df65995d9a16e6c8dbdc1e09b775eb4a966")) + (let ((commit "1700fe672c65455c1fc33061ec92a3df84287ec7") + (revision "3")) (package (name "sbcl-cl-cffi-gtk") - (version (git-version "0.11.2" "2" commit)) + (version (git-version "3.8.8" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/Ferada/cl-cffi-gtk/") + (url "https://github.com/sharplispers/cl-cffi-gtk/") (commit commit))) (file-name (git-file-name "cl-cffi-gtk" version)) (sha256 - (base32 - "04vix0gmqsj91lm975sx7jhlnz5gq1xf9jp873mp7c8frc5dk1jj")))) + (base32 "1cn2f6b62axjzdzfv971218ably32dvqfdy499li25vjd8nb2qm3")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-fiveam)) (inputs - `(("bordeaux-threads" ,sbcl-bordeaux-threads) - ("cairo" ,cairo) - ("cffi" ,sbcl-cffi) - ("closer-mop" ,sbcl-closer-mop) - ("gdk-pixbuf" ,gdk-pixbuf) - ("glib" ,glib) - ("gtk" ,gtk+) - ("iterate" ,sbcl-iterate) - ("pango" ,pango) - ("trivial-features" ,sbcl-trivial-features) - ("trivial-garbage" ,sbcl-trivial-garbage))) + (list cairo + gdk-pixbuf + glib + gtk+ + pango + sbcl-bordeaux-threads + sbcl-cffi + sbcl-closer-mop + sbcl-iterate + sbcl-trivial-features + sbcl-trivial-garbage)) (arguments - `(;; TODO: Tests fail with memory fault. - ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24. - #:tests? #f - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "glib/glib.init.lisp" - (("libglib|libgthread" all) - (string-append (assoc-ref inputs "glib") "/lib/" all))) - (substitute* "gobject/gobject.init.lisp" - (("libgobject" all) - (string-append (assoc-ref inputs "glib") "/lib/" all))) - (substitute* "gio/gio.init.lisp" - (("libgio" all) - (string-append (assoc-ref inputs "glib") "/lib/" all))) - (substitute* "cairo/cairo.init.lisp" - (("libcairo" all) - (string-append (assoc-ref inputs "cairo") "/lib/" all))) - (substitute* "pango/pango.init.lisp" - (("libpango" all) - (string-append (assoc-ref inputs "pango") "/lib/" all))) - (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp" - (("libgdk_pixbuf" all) - (string-append (assoc-ref inputs "gdk-pixbuf") "/lib/" all))) - (substitute* "gdk/gdk.init.lisp" - (("libgdk" all) - (string-append (assoc-ref inputs "gtk") "/lib/" all))) - (substitute* "gdk/gdk.package.lisp" - (("libgtk" all) - (string-append (assoc-ref inputs "gtk") "/lib/" all)))))))) - (home-page "https://github.com/Ferada/cl-cffi-gtk/") + (list + ;; TODO: Tests fail with memory fault. + ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24. + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "glib/glib.init.lisp" + (("libglib-[0-9.]*\\.so" all) + (search-input-file inputs (string-append "/lib/" all))) + (("libgthread-[0-9.]*\\.so" all) + (search-input-file inputs (string-append "/lib/" all)))) + (substitute* "gobject/gobject.init.lisp" + (("libgobject-[0-9.]*\\.so" all) + (search-input-file inputs (string-append "/lib/" all)))) + (substitute* "gio/gio.init.lisp" + (("libgio-[0-9.]*\\.so" all) + (search-input-file inputs (string-append "/lib/" all)))) + (substitute* "cairo/cairo.init.lisp" + (("libcairo\\.so" all) + (search-input-file inputs (string-append "/lib/" all)))) + (substitute* "pango/pango.init.lisp" + (("libpango-[0-9.]*\\.so" all) + (search-input-file inputs (string-append "/lib/" all))) + (("libpangocairo-[0-9.]*\\.so" all) + (search-input-file inputs (string-append "/lib/" all)))) + (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp" + (("libgdk_pixbuf-[0-9.]*\\.so" all) + (search-input-file inputs (string-append "/lib/" all)))) + (substitute* "gdk/gdk.init.lisp" + (("libgdk-[0-9]\\.so" all) + (search-input-file inputs (string-append "/lib/" all)))) + (substitute* "gdk/gdk.package.lisp" + (("libgtk-[0-9]\\.so" all) + (search-input-file inputs (string-append "/lib/" all))))))))) + (home-page "https://github.com/sharplispers/cl-cffi-gtk/") (synopsis "Common Lisp binding for GTK+3") (description "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which @@ -7583,13 +7584,19 @@ high-level way. This library provides such operators.") (setenv "BB_PYTHON3_DYLIB" (string-append python "/lib/libpython3.so")) #t))) - (add-after 'unpack 'adjust-for-python-3.9 + (add-after 'unpack 'adjust-for-python-3.10 (lambda _ ;; These methods are no longer part of the public API. (substitute* "ffi-interface.lisp" ((".*PyEval_ReInitThreads.*") "") ((".*\"PyErr_Warn\".*") "") - ((".*\"PyFloat_ClearFreeList\".*") ""))))))) + ((".*\"PyFloat_ClearFreeList\".*") "") + ((".*\"PyParser_SimpleParseString\".*") "") + ((".*\"PyParser_SimpleParseStringFlags\".*") "") + ((".*\"PyParser_SimpleParseStringFlagsFilename\".*") "") + ((".*\"PyParser_SimpleParseFile\".*") "") + ((".*\"PyParser_SimpleParseFileFlags\".*") "") + ((".*\"PyLong_FromUnicode\".*") ""))))))) (native-inputs (list sbcl-cl-fad sbcl-lift sbcl-cl-quickcheck)) (inputs @@ -10808,16 +10815,35 @@ sacrificing much in the way of power.") (propagated-inputs (list gnuplot)) ;; for gnuplot-interface (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "hdf-cffi/src/library.lisp" - (("libhdf5.so") - (search-input-file inputs "/lib/libhdf5.so"))) - (substitute* "gsl-cffi/gsl-cffi.lisp" - (("libgsl.so") - (search-input-file inputs "/lib/libgsl.so")))))))) + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "hdf-cffi/src/library.lisp" + (("libhdf5.so") + (search-input-file inputs "/lib/libhdf5.so"))) + (substitute* (list "gsl-cffi/gsl-cffi.lisp" + "spline/spline.lisp") + (("libgsl.so") + (search-input-file inputs "/lib/libgsl.so"))))) + (add-after 'fix-paths 'fix-newer-hdf5-compatibility + (lambda _ + (substitute* (list "hdf-cffi/src/h5-grovel.lisp" + "hdf-cffi/src/h5a-grovel.lisp" + "hdf-cffi/src/h5d-grovel.lisp" + "hdf-cffi/src/h5f-grovel.lisp" + "hdf-cffi/src/h5g-grovel.lisp" + "hdf-cffi/src/h5i-grovel.lisp" + "hdf-cffi/src/h5l-grovel.lisp" + "hdf-cffi/src/h5o-grovel.lisp" + "hdf-cffi/src/h5p-grovel.lisp" + "hdf-cffi/src/h5pl-grovel.lisp" + "hdf-cffi/src/h5r-grovel.lisp" + "hdf-cffi/src/h5s-grovel.lisp" + "hdf-cffi/src/h5t-grovel.lisp" + "hdf-cffi/src/h5z-grovel.lisp") + (("_H5private_H") + "H5private_H"))))))) (synopsis "Common Lisp data analysis library") (description "CL-ANA is a data analysis library in Common Lisp providing tabular and @@ -12181,10 +12207,9 @@ them as PNG files.") (uri (git-reference (url "https://github.com/hdfgroup/hdf5-cffi") (commit commit))) - (file-name (git-file-name name version)) + (file-name (git-file-name "cl-hdf5-cffi" version)) (sha256 - (base32 - "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf")))) + (base32 "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf")))) (build-system asdf-build-system/sbcl) (synopsis "Common Lisp bindings for the HDF5 library") (description @@ -12195,28 +12220,43 @@ them as PNG files.") commit "/LICENSE"))) (inputs - `(("cffi" ,sbcl-cffi) - ("hdf5" ,hdf5-1.10))) + (list hdf5-1.10 sbcl-cffi)) (native-inputs (list sbcl-fiveam)) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "src/library.lisp" - (("libhdf5.so") - (string-append - (assoc-ref inputs "hdf5") - "/lib/libhdf5.so"))))) - (add-after 'unpack 'fix-dependencies - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "hdf5-cffi.asd" - ((":depends-on \\(:cffi\\)") - ":depends-on (:cffi :cffi-grovel)")) - (substitute* "hdf5-cffi.test.asd" - ((":depends-on \\(:cffi :hdf5-cffi") - ":depends-on (:cffi :cffi-grovel :hdf5-cffi")))))))))) + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/library.lisp" + (("libhdf5.so") + (search-input-file inputs "/lib/libhdf5.so"))))) + (add-after 'fix-paths 'fix-newer-hdf5-compatibility + (lambda _ + (substitute* (list "src/h5-grovel.lisp" + "src/h5a-grovel.lisp" + "src/h5d-grovel.lisp" + "src/h5f-grovel.lisp" + "src/h5g-grovel.lisp" + "src/h5i-grovel.lisp" + "src/h5l-grovel.lisp" + "src/h5o-grovel.lisp" + "src/h5p-grovel.lisp" + "src/h5pl-grovel.lisp" + "src/h5r-grovel.lisp" + "src/h5s-grovel.lisp" + "src/h5t-grovel.lisp" + "src/h5z-grovel.lisp") + (("_H5private_H") + "H5private_H")))) + (add-after 'unpack 'fix-dependencies + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "hdf5-cffi.asd" + ((":depends-on \\(:cffi\\)") + ":depends-on (:cffi :cffi-grovel)")) + (substitute* "hdf5-cffi.test.asd" + ((":depends-on \\(:cffi :hdf5-cffi") + ":depends-on (:cffi :cffi-grovel :hdf5-cffi")))))))))) (define-public cl-hdf5-cffi (sbcl-package->cl-source-package sbcl-hdf5-cffi)) |