quicklispPackages: improve non-SBCL support

This commit is contained in:
Michael Raskin 2021-03-28 16:40:56 +02:00
parent b4d085cb9a
commit 85b6efff7c
6 changed files with 178 additions and 14 deletions

View file

@ -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) */

View file

@ -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) */

View file

@ -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) */

View file

@ -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]));
}

View file

@ -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

View file

@ -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: {}))