about summary refs log tree commit diff
path: root/pkgs/development/lisp-modules-new
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/lisp-modules-new')
-rw-r--r--pkgs/development/lisp-modules-new/lisp-packages.nix11
-rw-r--r--pkgs/development/lisp-modules-new/patches/cl-sat.glucose-binary-from-PATH-if-present.patch27
-rw-r--r--pkgs/development/lisp-modules-new/ql.nix212
3 files changed, 155 insertions, 95 deletions
diff --git a/pkgs/development/lisp-modules-new/lisp-packages.nix b/pkgs/development/lisp-modules-new/lisp-packages.nix
index aebcfdb1878eb..78dd34ccdcedd 100644
--- a/pkgs/development/lisp-modules-new/lisp-packages.nix
+++ b/pkgs/development/lisp-modules-new/lisp-packages.nix
@@ -40,6 +40,7 @@ let
     removeSuffix
     hasInfix
     optionalString
+    makeBinPath
     makeLibraryPath
     makeSearchPath
     recurseIntoAttrs
@@ -249,6 +250,12 @@ let
             then pkgs.applyPatches { inherit (args) src patches; }
             else args.src;
       patches = [];
+
+      # make sure that propagated build-inputs from lispLibs are propagated
+      propagatedBuildInputs = lib.unique
+        (builtins.concatLists
+          (lib.catAttrs "propagatedBuildInputs"
+            (builtins.concatLists [[args] lispLibs nativeLibs javaLibs])));
     })));
 
   # Build the set of lisp packages using `lisp`
@@ -353,7 +360,9 @@ let
           --prefix LD_LIBRARY_PATH : "${o.LD_LIBRARY_PATH}" \
           --prefix LD_LIBRARY_PATH : "${makeLibraryPath o.nativeLibs}" \
           --prefix CLASSPATH : "${o.CLASSPATH}" \
-          --prefix CLASSPATH : "${makeSearchPath "share/java/*" o.javaLibs}"
+          --prefix CLASSPATH : "${makeSearchPath "share/java/*" o.javaLibs}" \
+          --prefix PATH : "${makeBinPath (o.buildInputs or [])}" \
+          --prefix PATH : "${makeBinPath (o.propagatedBuildInputs or [])}"
       '';
     });
 
diff --git a/pkgs/development/lisp-modules-new/patches/cl-sat.glucose-binary-from-PATH-if-present.patch b/pkgs/development/lisp-modules-new/patches/cl-sat.glucose-binary-from-PATH-if-present.patch
new file mode 100644
index 0000000000000..6a0d2d07666b2
--- /dev/null
+++ b/pkgs/development/lisp-modules-new/patches/cl-sat.glucose-binary-from-PATH-if-present.patch
@@ -0,0 +1,27 @@
+From 2040fcab5a7be2f28add46a1412bef62ac5ccf11 Mon Sep 17 00:00:00 2001
+From: Maximilian Marx <mmarx@wh2.tu-dresden.de>
+Date: Thu, 24 Nov 2022 20:00:33 +0100
+Subject: [PATCH] Use glucose binary from PATH if present
+
+---
+ src/package.lisp | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/package.lisp b/src/package.lisp
+index b6e26ac..bdb2581 100644
+--- a/src/package.lisp
++++ b/src/package.lisp
+@@ -13,7 +13,9 @@
+ (defvar *glucose-home* (asdf:system-relative-pathname :cl-sat.glucose "glucose-syrup/"))
+ 
+ (defun glucose-binary (&optional (*glucose-home* *glucose-home*))
+-  (merge-pathnames "simp/glucose_static" *glucose-home*))
++  (if (trivial-package-manager:which "glucose")
++      "glucose"
++      (merge-pathnames "simp/glucose_static" *glucose-home*)))
+ 
+ (defmethod solve ((input pathname) (solver (eql :glucose)) &rest options &key debug &allow-other-keys)
+   (remf options :debug)
+-- 
+2.36.2
+
diff --git a/pkgs/development/lisp-modules-new/ql.nix b/pkgs/development/lisp-modules-new/ql.nix
index 07dd90feb3028..aa04a8dce2e2e 100644
--- a/pkgs/development/lisp-modules-new/ql.nix
+++ b/pkgs/development/lisp-modules-new/ql.nix
@@ -9,97 +9,97 @@ let
 
   # FIXME: automatically add nativeLibs based on conditions signalled
 
+  # Try to keep this list sorted
   extras = {
+    cffi-libffi = pkg: {
+      nativeBuildInputs = [ libffi ];
+      nativeLibs = [ libffi ];
+    };
     "cl+ssl" = pkg: {
       nativeLibs = [ openssl_1_1 ];
     };
+    "cl-ana.hdf-cffi" = pkg: {
+      nativeBuildInputs = [ pkgs.hdf5 ];
+      nativeLibs = [ pkgs.hdf5 ];
+      NIX_LDFLAGS = [ "-lhdf5" ];
+    };
+    cl-async-ssl = pkg: {
+      nativeLibs = [ openssl_1_1 ];
+    };
     cl-cffi-gtk-glib = pkg: {
       nativeLibs = [ glib ];
     };
     cl-cffi-gtk-cairo = pkg: {
       nativeLibs = [ cairo ];
     };
+    cl-cffi-gtk-gdk = pkg: {
+      nativeLibs = [ gtk3 ];
+    };
+    cl-cffi-gtk-gdk-pixbuf = pkg: {
+      nativeLibs = [ gdk-pixbuf ];
+    };
+    cl-cffi-gtk-pango = pkg: {
+      nativeLibs = [ pango ];
+    };
     cl-cairo2 = pkg: {
       nativeLibs = [ cairo ];
     };
     cl-cairo2-xlib = pkg: {
       nativeLibs = [ gtk2-x11 ];
     };
+    cl-devil = pkg: {
+      nativeBuildInputs = [ pkgs.libdevil ];
+      nativeLibs = [ pkgs.libdevil ];
+    };
     cl-freetype2 = pkg: {
       nativeLibs = [ freetype ];
       nativeBuildInputs = [ freetype ];
       patches = [ ./patches/cl-freetype2-fix-grovel-includes.patch ];
     };
-    cl-pango = pkg: {
-      nativeLibs = [ pango ];
-    };
-    cl-gtk2-gdk = pkg: {
-      nativeLibs = [ gtk2-x11 ];
-    };
-    cl-gtk2-glib = pkg: {
-      nativeLibs = [ glib ];
-    };
-    cl-gtk2-pango = pkg: {
-      nativeLibs = [ pango ];
+    cl-glfw = pkg: {
+      nativeLibs = [ glfw ];
     };
-    cl-rsvg2 = pkg: {
-      nativeLibs = [ librsvg ];
+    cl-glfw-opengl-core = pkg: {
+      nativeLibs = [ libGL ];
     };
-    cl-cffi-gtk-gdk = pkg: {
-      nativeLibs = [ gtk3 ];
+    cl-glfw3 = pkg: {
+      nativeLibs = [ glfw ];
     };
-    cl-cffi-gtk-gdk-pixbuf = pkg: {
-      nativeLibs = [ gdk-pixbuf ];
+    cl-glu = pkg: {
+      nativeLibs = [ libGLU ];
     };
-    cl-cffi-gtk-pango = pkg: {
-      nativeLibs = [ pango ];
+    cl-glut = pkg: {
+      nativeLibs = [ freeglut ];
     };
     cl-gobject-introspection = pkg: {
       nativeLibs = [ glib gobject-introspection ];
     };
-    cl-mysql = pkg: {
-      nativeLibs = [ mariadb.client ];
-    };
-    clsql-postgresql = pkg: {
-      nativeLibs = [ postgresql.lib ];
-    };
-    clsql-sqlite3 = pkg: {
-      nativeLibs = [ sqlite ];
-    };
-    cl-webkit2 = pkg: {
-      nativeLibs = [ webkitgtk ];
-    };
-    dbd-mysql = pkg: {
-      nativeLibs = [ mariadb.client ];
-    };
-    lla = pkg: {
-      nativeLibs = [ openblas ];
-    };
-    cffi-libffi = pkg: {
-      nativeBuildInputs = [ libffi ];
-      nativeLibs = [ libffi ];
-    };
-    cl-rabbit = pkg: {
-      nativeBuildInputs = [ rabbitmq-c ];
-      nativeLibs = [ rabbitmq-c ];
+    cl-gtk2-gdk = pkg: {
+      nativeLibs = [ gtk2-x11 ];
     };
-    trivial-ssh-libssh2 = pkg: {
-      nativeLibs = [ libssh2 ];
+    cl-gtk2-glib = pkg: {
+      nativeLibs = [ glib ];
     };
-    mssql = pkg: {
-      nativeLibs = [ freetds ];
+    cl-gtk2-pango = pkg: {
+      nativeLibs = [ pango ];
     };
-    sqlite = pkg: {
-      nativeLibs = [ sqlite ];
+    cl-liballegro = pkg: {
+      # build doesnt fail without this, but fails on runtime
+      # weird...
+      nativeLibs = [ allegro5 ];
     };
     cl-libuv = pkg: {
       nativeBuildInputs = [ libuv ];
       nativeLibs = [ libuv ];
     };
-    cl-liballegro = pkg: {
-      # build doesnt fail without this, but fails on runtime
-      # weird...
-      nativeLibs = [ allegro5 ];
+    cl-libxml2 = pkg: {
+      nativeLibs = [ pkgs.libxml2 ];
+    };
+    cl-libyaml = pkg: {
+      nativeLibs = [ pkgs.libyaml ];
+    };
+    cl-mysql = pkg: {
+      nativeLibs = [ mariadb.client ];
     };
     cl-ode = pkg: {
       nativeLibs = let
@@ -111,68 +111,76 @@ let
         });
       in [ ode' ];
     };
-    classimp = pkg: {
-      nativeLibs = [ assimp ];
+    cl-opengl = pkg: {
+      nativeLibs = [ libGL ];
     };
-    sdl2 = pkg: {
-      nativeLibs = [ SDL2 ];
+    cl-pango = pkg: {
+      nativeLibs = [ pango ];
     };
-    lispbuilder-sdl-cffi = pkg: {
-      nativeLibs = [ SDL ];
+    cl-rabbit = pkg: {
+      nativeBuildInputs = [ rabbitmq-c ];
+      nativeLibs = [ rabbitmq-c ];
     };
-    cl-opengl = pkg: {
-      nativeLibs = [ libGL ];
+    cl-rdkafka = pkg: {
+      nativeBuildInputs = [ rdkafka ];
+      nativeLibs = [ rdkafka ];
     };
-    cl-glu = pkg: {
-      nativeLibs = [ libGLU ];
+    cl-readline = pkg: {
+      nativeLibs = [ pkgs.readline ];
     };
-    cl-glut = pkg: {
-      nativeLibs = [ freeglut ];
+    cl-rsvg2 = pkg: {
+      nativeLibs = [ librsvg ];
     };
-    cl-glfw = pkg: {
-      nativeLibs = [ glfw ];
+    "cl-sat.glucose" = pkg: {
+      propagatedBuildInputs = [ pkgs.glucose ];
+      patches = [ ./patches/cl-sat.glucose-binary-from-PATH-if-present.patch ];
+
     };
-    cl-glfw-opengl-core = pkg: {
-      nativeLibs = [ libGL ];
+    "cl-sat.minisat" = pkg: {
+      propagatedBuildInputs = [ pkgs.minisat ];
     };
-    cl-glfw3 = pkg: {
-      nativeLibs = [ glfw ];
+    cl-webkit2 = pkg: {
+      nativeLibs = [ webkitgtk ];
     };
-    lev = pkg: {
-      nativeLibs = [ libev ];
+    classimp = pkg: {
+      nativeLibs = [ assimp ];
     };
-    cl-rdkafka = pkg: {
-      nativeBuildInputs = [ rdkafka ];
-      nativeLibs = [ rdkafka ];
+    clsql-postgresql = pkg: {
+      nativeLibs = [ postgresql.lib ];
     };
-    cl-async-ssl = pkg: {
-      nativeLibs = [ openssl_1_1 ];
+    clsql-sqlite3 = pkg: {
+      nativeLibs = [ sqlite ];
     };
-    osicat = pkg: {
-      LD_LIBRARY_PATH = "${pkg}/posix/";
+    dbd-mysql = pkg: {
+      nativeLibs = [ mariadb.client ];
+    };
+    gsll = pkg: {
+      nativeBuildInputs = [ pkgs.gsl ];
+      nativeLibs = [ pkgs.gsl ];
     };
     iolib = pkg: {
       nativeBuildInputs = [ libfixposix ];
       nativeLibs = [ libfixposix ];
       systems = [ "iolib" "iolib/os" "iolib/pathnames" ];
     };
-    "cl-ana.hdf-cffi" = pkg: {
-      nativeBuildInputs = [ pkgs.hdf5 ];
-      nativeLibs = [ pkgs.hdf5 ];
-      NIX_LDFLAGS = [ "-lhdf5" ];
+    lev = pkg: {
+      nativeLibs = [ libev ];
     };
-    gsll = pkg: {
-      nativeBuildInputs = [ pkgs.gsl ];
-      nativeLibs = [ pkgs.gsl ];
+    lispbuilder-sdl-cffi = pkg: {
+      nativeLibs = [ SDL ];
     };
-    cl-libyaml = pkg: {
-      nativeLibs = [ pkgs.libyaml ];
+    lla = pkg: {
+      nativeLibs = [ openblas ];
     };
-    cl-libxml2 = pkg: {
-      nativeLibs = [ pkgs.libxml2 ];
+    mssql = pkg: {
+      nativeLibs = [ freetds ];
     };
-    cl-readline = pkg: {
-      nativeLibs = [ pkgs.readline ];
+    osicat = pkg: {
+      LD_LIBRARY_PATH = "${pkg}/posix/";
+    };
+    png = pkg: {
+      nativeBuildInputs = [ pkgs.libpng ];
+      nativeLibs = [ pkgs.libpng ];
     };
     pzmq = pkg: {
       nativeBuildInputs = [ pkgs.zeromq ];
@@ -190,6 +198,22 @@ let
       nativeBuildInputs = [ pkgs.zeromq ];
       nativeLibs = [ pkgs.zeromq ];
     };
+    sdl2 = pkg: {
+      nativeLibs = [ SDL2 ];
+    };
+    sqlite = pkg: {
+      nativeLibs = [ sqlite ];
+    };
+    trivial-package-manager = pkg: {
+      propagatedBuildInputs = [ pkgs.which ];
+    };
+    trivial-ssh-libssh2 = pkg: {
+      nativeLibs = [ libssh2 ];
+    };
+    zmq = pkg: {
+      nativeBuildInputs = [ pkgs.zeromq ];
+      nativeLibs = [ pkgs.zeromq ];
+    };
   };
 
   qlpkgs =