summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2021-03-28 16:40:56 +0200
committerMichael Raskin <7c6f434c@mail.ru>2021-03-28 18:19:29 +0200
commit85b6efff7cac3d455228b0207266431ba9e05570 (patch)
tree30d30034cbef576f6bd73ddfbbf08d5e24574cdb
parentb4d085cb9aaa1ab8edd371518416e6d9da36f580 (diff)
downloadnixpkgs-85b6efff7cac3d455228b0207266431ba9e05570.tar
nixpkgs-85b6efff7cac3d455228b0207266431ba9e05570.tar.gz
nixpkgs-85b6efff7cac3d455228b0207266431ba9e05570.tar.bz2
nixpkgs-85b6efff7cac3d455228b0207266431ba9e05570.tar.lz
nixpkgs-85b6efff7cac3d455228b0207266431ba9e05570.tar.xz
nixpkgs-85b6efff7cac3d455228b0207266431ba9e05570.tar.zst
nixpkgs-85b6efff7cac3d455228b0207266431ba9e05570.zip
quicklispPackages: improve non-SBCL support
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-uffi-compat.nix31
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-speedy-queue.nix26
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syslog.nix33
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix47
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt3
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix.nix52
6 files changed, 178 insertions, 14 deletions
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-uffi-compat.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-uffi-compat.nix
new file mode 100644
index 00000000000..49d8a74df3e
--- /dev/null
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-uffi-compat.nix
@@ -0,0 +1,31 @@
+args @ { fetchurl, ... }:
+rec {
+  baseName = ''cffi-uffi-compat'';
+  version = ''cffi_0.23.0'';
+
+  description = ''UFFI Compatibility Layer for CFFI'';
+
+  deps = [ args."alexandria" args."babel" args."cffi" args."trivial-features" ];
+
+  src = fetchurl {
+    url = ''http://beta.quicklisp.org/archive/cffi/2020-07-15/cffi_0.23.0.tgz'';
+    sha256 = ''1szpbg5m5fjq7bpkblflpnwmgz3ncsvp1y43g3jzwlk7yfxrwxck'';
+  };
+
+  packageName = "cffi-uffi-compat";
+
+  asdFilesToKeep = ["cffi-uffi-compat.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM cffi-uffi-compat DESCRIPTION UFFI Compatibility Layer for CFFI
+    SHA256 1szpbg5m5fjq7bpkblflpnwmgz3ncsvp1y43g3jzwlk7yfxrwxck URL
+    http://beta.quicklisp.org/archive/cffi/2020-07-15/cffi_0.23.0.tgz MD5
+    a43e3c440fc4f20494e6d2347887c963 NAME cffi-uffi-compat FILENAME
+    cffi-uffi-compat DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
+     (NAME cffi FILENAME cffi)
+     (NAME trivial-features FILENAME trivial-features))
+    DEPENDENCIES (alexandria babel cffi trivial-features) VERSION cffi_0.23.0
+    SIBLINGS
+    (cffi-examples cffi-grovel cffi-libffi cffi-tests cffi-toolchain cffi)
+    PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-speedy-queue.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-speedy-queue.nix
new file mode 100644
index 00000000000..f953573797f
--- /dev/null
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-speedy-queue.nix
@@ -0,0 +1,26 @@
+args @ { fetchurl, ... }:
+rec {
+  baseName = ''cl-speedy-queue'';
+  version = ''20150302-git'';
+
+  description = ''cl-speedy-queue is a portable, non-consing, optimized queue implementation.'';
+
+  deps = [ ];
+
+  src = fetchurl {
+    url = ''http://beta.quicklisp.org/archive/cl-speedy-queue/2015-03-02/cl-speedy-queue-20150302-git.tgz'';
+    sha256 = ''1w83vckk0ldr61vpkwg4i8l2b2yx54cs4ak62j4lxhshax105rqr'';
+  };
+
+  packageName = "cl-speedy-queue";
+
+  asdFilesToKeep = ["cl-speedy-queue.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM cl-speedy-queue DESCRIPTION
+    cl-speedy-queue is a portable, non-consing, optimized queue implementation.
+    SHA256 1w83vckk0ldr61vpkwg4i8l2b2yx54cs4ak62j4lxhshax105rqr URL
+    http://beta.quicklisp.org/archive/cl-speedy-queue/2015-03-02/cl-speedy-queue-20150302-git.tgz
+    MD5 509d1acf7e4cfcef99127de75b16521f NAME cl-speedy-queue FILENAME
+    cl-speedy-queue DEPS NIL DEPENDENCIES NIL VERSION 20150302-git SIBLINGS NIL
+    PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syslog.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syslog.nix
new file mode 100644
index 00000000000..5fe7fe25767
--- /dev/null
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-syslog.nix
@@ -0,0 +1,33 @@
+args @ { fetchurl, ... }:
+rec {
+  baseName = ''cl-syslog'';
+  version = ''20190202-git'';
+
+  description = ''Common Lisp syslog interface.'';
+
+  deps = [ args."alexandria" args."babel" args."cffi" args."global-vars" args."local-time" args."split-sequence" args."trivial-features" args."usocket" ];
+
+  src = fetchurl {
+    url = ''http://beta.quicklisp.org/archive/cl-syslog/2019-02-02/cl-syslog-20190202-git.tgz'';
+    sha256 = ''1kzz613y9fvx33svlwc65vjaj1cafnxz8icds80ww7il7y6alwgh'';
+  };
+
+  packageName = "cl-syslog";
+
+  asdFilesToKeep = ["cl-syslog.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM cl-syslog DESCRIPTION Common Lisp syslog interface. SHA256
+    1kzz613y9fvx33svlwc65vjaj1cafnxz8icds80ww7il7y6alwgh URL
+    http://beta.quicklisp.org/archive/cl-syslog/2019-02-02/cl-syslog-20190202-git.tgz
+    MD5 eafff19eb1f38a36a9535c729d2217fe NAME cl-syslog FILENAME cl-syslog DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
+     (NAME cffi FILENAME cffi) (NAME global-vars FILENAME global-vars)
+     (NAME local-time FILENAME local-time)
+     (NAME split-sequence FILENAME split-sequence)
+     (NAME trivial-features FILENAME trivial-features)
+     (NAME usocket FILENAME usocket))
+    DEPENDENCIES
+    (alexandria babel cffi global-vars local-time split-sequence
+     trivial-features usocket)
+    VERSION 20190202-git SIBLINGS NIL PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
index 79a799f76fb..b13794d6991 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
@@ -1,4 +1,4 @@
-{pkgs, quicklisp-to-nix-packages}:
+{pkgs, clwrapper, quicklisp-to-nix-packages}:
 let
   addNativeLibs = libs: x: { propagatedBuildInputs = libs; };
   skipBuildPhase = x: {
@@ -6,6 +6,10 @@ let
   };
   multiOverride = l: x: if l == [] then {} else
     ((builtins.head l) x) // (multiOverride (builtins.tail l) x);
+  lispName = (clwrapper.lisp.pname or (builtins.parseDrvName clwrapper.lisp.name).name);
+  ifLispIn = l: f: if (pkgs.lib.elem lispName l) then f else (x: {});
+  ifLispNotIn = l: f: if ! (pkgs.lib.elem lispName l) then f else (x: {});
+  extraLispDeps = l: x: { deps = x.deps ++ l; };
 in
 {
   stumpwm = x:{
@@ -23,7 +27,8 @@ in
       '';
     };
   };
-  iterate = skipBuildPhase;
+  iterate = multiOverride [ skipBuildPhase
+    (ifLispNotIn ["sbcl" "gcl"] (x: { parasites=[]; }))];
   cl-fuse = x: {
     propagatedBuildInputs = [pkgs.fuse];
     overrides = y : (x.overrides y) // {
@@ -65,15 +70,32 @@ in
   cl-libuv = addNativeLibs [pkgs.libuv];
   cl-async-ssl = addNativeLibs [pkgs.openssl (import ./openssl-lib-marked.nix)];
   cl-async-test = addNativeLibs [pkgs.openssl];
-  clsql = x: {
+  clsql = multiOverride [ (x: {
     propagatedBuildInputs = with pkgs; [libmysqlclient postgresql sqlite zlib];
     overrides = y: (x.overrides y) // {
       preConfigure = ((x.overrides y).preConfigure or "") + ''
         export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${pkgs.libmysqlclient}/include/mysql"
         export NIX_LDFLAGS="$NIX_LDFLAGS -L${pkgs.libmysqlclient}/lib/mysql"
-      '';
-    };
-  };
+      '';};}) 
+    (ifLispIn ["ecl" "clisp"] (x: {
+       deps = pkgs.lib.filter (x: x.outPath != quicklisp-to-nix-packages.uffi.outPath)
+         (x.deps ++ (with quicklisp-to-nix-packages; [cffi-uffi-compat]));
+       overrides = y: (x.overrides y) // {
+         postUnpack = ''
+           sed -e '1i(cl:push :clsql-cffi cl:*features*)' -i "$sourceRoot/clsql.asd"
+         '';
+       };
+    }))
+  ];
+  clsql-postgresql-socket = ifLispIn ["ecl" "clisp"] (x: {
+       deps = pkgs.lib.filter (x: x.outPath != quicklisp-to-nix-packages.uffi.outPath)
+         (x.deps ++ (with quicklisp-to-nix-packages; [cffi-uffi-compat]));
+       overrides = y: (x.overrides y) // {
+         postUnpack = ''
+           sed -e '1i(cl:push :clsql-cffi cl:*features*)' -i "$sourceRoot/clsql-postgresql-socket.asd"
+         '';
+       };
+    });
   clx-truetype = skipBuildPhase;
   query-fs = x: {
     overrides = y: (x.overrides y) // {
@@ -241,4 +263,17 @@ $out/lib/common-lisp/query-fs"
       '';
     };
   };
+  woo = ifLispNotIn ["sbcl" "gcl"]
+    (extraLispDeps (with quicklisp-to-nix-packages; [cl-speedy-queue]));
+  cl-syslog = x: {
+    overrides = y: (x.overrides y) // {
+      postUnpack = ''
+        sed -e '1a:serial t' -i $sourceRoot/cl-syslog.asd
+      '';
+    };
+  };
+  log4cl = ifLispNotIn ["sbcl" "gcl"]
+    (extraLispDeps (with quicklisp-to-nix-packages; [cl-syslog]));
+  md5 = ifLispNotIn ["sbcl" "ccl" "gcl"]
+    (extraLispDeps (with quicklisp-to-nix-packages; [flexi-streams]));
 }
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt b/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt
index 802a549a093..119648bb036 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt
@@ -13,6 +13,7 @@ calispel
 caveman
 cffi
 cffi-grovel
+cffi-uffi-compat
 chanl
 chipz
 chunga
@@ -64,7 +65,9 @@ cl-protobufs
 cl-qprint
 cl-reexport
 cl-slice
+cl-speedy-queue
 cl-smtp
+cl-syslog
 clsql
 clsql-postgresql
 clsql-postgresql-socket
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix.nix b/pkgs/development/lisp-modules/quicklisp-to-nix.nix
index d267c221c3a..f96f1a1f557 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix.nix
@@ -179,14 +179,6 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
-  "global-vars" = buildLispPackage
-    ((f: x: (x // (f x)))
-       (qlOverrides."global-vars" or (x: {}))
-       (import ./quicklisp-to-nix-output/global-vars.nix {
-         inherit fetchurl;
-       }));
-
-
   "cl-postgres_slash_tests" = quicklisp-to-nix-packages."cl-postgres";
 
 
@@ -678,6 +670,14 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "global-vars" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."global-vars" or (x: {}))
+       (import ./quicklisp-to-nix-output/global-vars.nix {
+         inherit fetchurl;
+       }));
+
+
   "clunit" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."clunit" or (x: {}))
@@ -3179,6 +3179,22 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "cl-syslog" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."cl-syslog" or (x: {}))
+       (import ./quicklisp-to-nix-output/cl-syslog.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "babel" = quicklisp-to-nix-packages."babel";
+           "cffi" = quicklisp-to-nix-packages."cffi";
+           "global-vars" = quicklisp-to-nix-packages."global-vars";
+           "local-time" = quicklisp-to-nix-packages."local-time";
+           "split-sequence" = quicklisp-to-nix-packages."split-sequence";
+           "trivial-features" = quicklisp-to-nix-packages."trivial-features";
+           "usocket" = quicklisp-to-nix-packages."usocket";
+       }));
+
+
   "cl-smtp" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."cl-smtp" or (x: {}))
@@ -3199,6 +3215,14 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "cl-speedy-queue" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."cl-speedy-queue" or (x: {}))
+       (import ./quicklisp-to-nix-output/cl-speedy-queue.nix {
+         inherit fetchurl;
+       }));
+
+
   "cl-slice" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."cl-slice" or (x: {}))
@@ -3904,6 +3928,18 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "cffi-uffi-compat" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."cffi-uffi-compat" or (x: {}))
+       (import ./quicklisp-to-nix-output/cffi-uffi-compat.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "babel" = quicklisp-to-nix-packages."babel";
+           "cffi" = quicklisp-to-nix-packages."cffi";
+           "trivial-features" = quicklisp-to-nix-packages."trivial-features";
+       }));
+
+
   "cffi-grovel" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."cffi-grovel" or (x: {}))