diff --git a/gnu/local.mk b/gnu/local.mk index 1ce95f21c1..206b794a4a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -475,6 +475,7 @@ dist_patch_DATA = \ %D%/packages/patches/clang-libc-search-path.patch \ %D%/packages/patches/clang-3.8-libc-search-path.patch \ %D%/packages/patches/clucene-pkgconfig.patch \ + %D%/packages/patches/clx-remove-demo.patch \ %D%/packages/patches/cmake-fix-tests.patch \ %D%/packages/patches/cpio-CVE-2016-2037.patch \ %D%/packages/patches/cpufrequtils-fix-aclocal.patch \ diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 9b7d8a7296..5da2592e76 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -700,3 +700,48 @@ (define-public cl-ppcre (define-public ecl-cl-ppcre (sbcl-package->ecl-package sbcl-cl-ppcre)) + +(define-public sbcl-clx + (let ((revision "1") + (commit "1c62774b03c1cf3fe6e5cb532df8b14b44c96b95")) + (package + (name "sbcl-clx") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/sharplispers/clx.git") + (commit commit))) + (sha256 + (base32 "0qffag03ns52kwq9xjns2qg1yr0bf3ba507iwq5cmx5xz0b0rmjm")) + (file-name (string-append "clx-" version "-checkout")) + (patches + (list + (search-patch "clx-remove-demo.patch"))) + (modules '((guix build utils))) + (snippet + '(begin + ;; These removed files cause the compiled system to crash when + ;; loading. + (delete-file-recursively "demo") + (delete-file "test/trapezoid.lisp") + (substitute* "clx.asd" + (("\\(:file \"trapezoid\"\\)") "")))))) + (build-system asdf-build-system/sbcl) + (arguments + '(#:special-dependencies '("sb-bsd-sockets"))) + (home-page "http://www.cliki.net/portable-clx") + (synopsis "X11 client library for Common Lisp") + (description "CLX is an X11 client library for Common Lisp. The code was +originally taken from a CMUCL distribution, was modified somewhat in order to +make it compile and run under SBCL, then a selection of patches were added +from other CLXes around the net.") + (license license:x11)))) + +(define-public cl-clx + (sbcl-package->cl-source-package sbcl-clx)) + +(define-public ecl-clx + (sbcl-package->ecl-package sbcl-clx)) diff --git a/gnu/packages/patches/clx-remove-demo.patch b/gnu/packages/patches/clx-remove-demo.patch new file mode 100644 index 0000000000..c5fffea0d0 --- /dev/null +++ b/gnu/packages/patches/clx-remove-demo.patch @@ -0,0 +1,27 @@ +--- a/clx.asd 2016-02-16 00:06:48.161596976 -0500 ++++ b/clx.asd 2016-02-16 00:06:54.793774658 -0500 +@@ -79,24 +79,6 @@ + (:file "xtest") + (:file "screensaver") + (:file "xinerama"))) +- (:module demo +- :default-component-class example-source-file +- :components +- ((:file "bezier") +- ;; KLUDGE: this requires "bezier" for proper operation, +- ;; but we don't declare that dependency here, because +- ;; asdf doesn't load example files anyway. +- (:file "beziertest") +- (:file "clclock") +- (:file "clipboard") +- (:file "clx-demos") +- (:file "gl-test") +- ;; FIXME: compiling this generates 30-odd spurious code +- ;; deletion notes. Find out why, and either fix or +- ;; workaround the problem. +- (:file "mandel") +- (:file "menu") +- (:file "zoid"))) + (:module test + :default-component-class example-source-file + :components