quicklisp-to-nix: support / in the system name

Add some more packages
This commit is contained in:
Michael Raskin 2017-03-30 12:15:08 +02:00
parent d7f3e5a8f0
commit 8641a0ace9
19 changed files with 334 additions and 4 deletions

View File

@ -6,6 +6,7 @@ let
mkdir -p "$(dirname "$config_script")"
touch "$config_script"
chmod a+x "$config_script"
echo "export NIX_CFLAGS_COMPILE='$NIX_CFLAGS_COMPILE'\"\''${NIX_CFLAGS_COMPILE:+ $NIX_CFLAGS_COMPILE}\"" >> "$config_script"
echo "export NIX_LISP_COMMAND='$NIX_LISP_COMMAND'" >> "$config_script"
echo "export NIX_LISP_ASDF='$NIX_LISP_ASDF'" >> "$config_script"
echo "export CL_SOURCE_REGISTRY="\$CL_SOURCE_REGISTRY\''${CL_SOURCE_REGISTRY:+:}"'$CL_SOURCE_REGISTRY:$out/lib/common-lisp/${args.baseName}/'" >> "$config_script"
@ -46,6 +47,7 @@ basePackage = {
++ (args.propagatedBuildInputs or []);
buildInputs = buildInputs;
dontStrip=true;
meta = {
inherit description version;
} // meta;

View File

@ -0,0 +1,14 @@
args @ { fetchurl, ... }:
rec {
baseName = ''idna'';
version = ''20120107-git'';
description = ''IDNA (international domain names) string encoding and decoding routines'';
deps = [ args."split-sequence" ];
src = fetchurl {
url = ''http://beta.quicklisp.org/archive/idna/2012-01-07/idna-20120107-git.tgz'';
sha256 = ''0q9hja9v5q7z89p0bzm2whchn05hymn3255fr5zj3fkja8akma5c'';
};
}

View File

@ -0,0 +1,14 @@
args @ { fetchurl, ... }:
rec {
baseName = ''iolib'';
version = ''v0.8.1'';
description = ''I/O library.'';
deps = [ args."iolib/base" args."iolib/multiplex" args."iolib/streams" args."iolib/sockets" ];
src = fetchurl {
url = ''http://beta.quicklisp.org/archive/iolib/2016-03-18/iolib-v0.8.1.tgz'';
sha256 = ''090xmjzyx5d7arpk9g0fsyblwh6myq2d1cb7w52r3zy1394c9481'';
};
}

View File

@ -0,0 +1,14 @@
args @ { fetchurl, ... }:
rec {
baseName = ''iolib_slash_asdf'';
version = ''iolib-v0.8.1'';
description = ''A few ASDF component classes.'';
deps = [ args."alexandria" ];
src = fetchurl {
url = ''http://beta.quicklisp.org/archive/iolib/2016-03-18/iolib-v0.8.1.tgz'';
sha256 = ''090xmjzyx5d7arpk9g0fsyblwh6myq2d1cb7w52r3zy1394c9481'';
};
}

View File

@ -0,0 +1,14 @@
args @ { fetchurl, ... }:
rec {
baseName = ''iolib_slash_base'';
version = ''iolib-v0.8.1'';
description = ''Base IOlib package, used instead of CL.'';
deps = [ args."iolib/common-lisp" args."alexandria" args."split-sequence" ];
src = fetchurl {
url = ''http://beta.quicklisp.org/archive/iolib/2016-03-18/iolib-v0.8.1.tgz'';
sha256 = ''090xmjzyx5d7arpk9g0fsyblwh6myq2d1cb7w52r3zy1394c9481'';
};
}

View File

@ -0,0 +1,14 @@
args @ { fetchurl, ... }:
rec {
baseName = ''iolib_slash_common-lisp'';
version = ''iolib-v0.8.1'';
description = ''Slightly modified Common Lisp.'';
deps = [ args."alexandria" ];
src = fetchurl {
url = ''http://beta.quicklisp.org/archive/iolib/2016-03-18/iolib-v0.8.1.tgz'';
sha256 = ''090xmjzyx5d7arpk9g0fsyblwh6myq2d1cb7w52r3zy1394c9481'';
};
}

View File

@ -0,0 +1,14 @@
args @ { fetchurl, ... }:
rec {
baseName = ''iolib_slash_conf'';
version = ''iolib-v0.8.1'';
description = ''Compile-time configuration for IOLib.'';
deps = [ ];
src = fetchurl {
url = ''http://beta.quicklisp.org/archive/iolib/2016-03-18/iolib-v0.8.1.tgz'';
sha256 = ''090xmjzyx5d7arpk9g0fsyblwh6myq2d1cb7w52r3zy1394c9481'';
};
}

View File

@ -0,0 +1,14 @@
args @ { fetchurl, ... }:
rec {
baseName = ''iolib_slash_grovel'';
version = ''iolib-v0.8.1'';
description = ''The CFFI Groveller'';
deps = [ args."iolib/asdf" args."iolib/base" args."iolib/conf" args."alexandria" args."split-sequence" args."cffi" args."uiop" ];
src = fetchurl {
url = ''http://beta.quicklisp.org/archive/iolib/2016-03-18/iolib-v0.8.1.tgz'';
sha256 = ''090xmjzyx5d7arpk9g0fsyblwh6myq2d1cb7w52r3zy1394c9481'';
};
}

View File

@ -0,0 +1,14 @@
args @ { fetchurl, ... }:
rec {
baseName = ''iolib_slash_multiplex'';
version = ''iolib-v0.8.1'';
description = ''I/O multiplexing library.'';
deps = [ args."iolib/base" args."iolib/syscalls" args."cffi" ];
src = fetchurl {
url = ''http://beta.quicklisp.org/archive/iolib/2016-03-18/iolib-v0.8.1.tgz'';
sha256 = ''090xmjzyx5d7arpk9g0fsyblwh6myq2d1cb7w52r3zy1394c9481'';
};
}

View File

@ -0,0 +1,14 @@
args @ { fetchurl, ... }:
rec {
baseName = ''iolib_slash_sockets'';
version = ''iolib-v0.8.1'';
description = ''Socket library.'';
deps = [ args."iolib/base" args."iolib/syscalls" args."iolib/streams" args."babel" args."cffi" args."iolib/grovel" args."bordeaux-threads" args."idna" args."swap-bytes" ];
src = fetchurl {
url = ''http://beta.quicklisp.org/archive/iolib/2016-03-18/iolib-v0.8.1.tgz'';
sha256 = ''090xmjzyx5d7arpk9g0fsyblwh6myq2d1cb7w52r3zy1394c9481'';
};
}

View File

@ -0,0 +1,14 @@
args @ { fetchurl, ... }:
rec {
baseName = ''iolib_slash_streams'';
version = ''iolib-v0.8.1'';
description = ''Gray streams.'';
deps = [ args."iolib/base" args."iolib/multiplex" args."cffi" ];
src = fetchurl {
url = ''http://beta.quicklisp.org/archive/iolib/2016-03-18/iolib-v0.8.1.tgz'';
sha256 = ''090xmjzyx5d7arpk9g0fsyblwh6myq2d1cb7w52r3zy1394c9481'';
};
}

View File

@ -0,0 +1,14 @@
args @ { fetchurl, ... }:
rec {
baseName = ''iolib_slash_syscalls'';
version = ''iolib-v0.8.1'';
description = ''Syscalls and foreign types.'';
deps = [ args."trivial-features" args."cffi" args."iolib/base" args."iolib/grovel" ];
src = fetchurl {
url = ''http://beta.quicklisp.org/archive/iolib/2016-03-18/iolib-v0.8.1.tgz'';
sha256 = ''090xmjzyx5d7arpk9g0fsyblwh6myq2d1cb7w52r3zy1394c9481'';
};
}

View File

@ -0,0 +1,14 @@
args @ { fetchurl, ... }:
rec {
baseName = ''swap-bytes'';
version = ''v1.1'';
description = ''Optimized byte-swapping primitives.'';
deps = [ args."trivial-features" ];
src = fetchurl {
url = ''http://beta.quicklisp.org/archive/swap-bytes/2016-09-29/swap-bytes-v1.1.tgz'';
sha256 = ''0snwbfplqhg1y4y4m7lgvksg1hs0sygfikz3rlbkfl4gwg8pq8ky'';
};
}

View File

@ -17,4 +17,7 @@
hunchentoot = x: {
propagatedBuildInputs = [pkgs.openssl];
};
iolib = x: {
propagatedBuildInputs = [pkgs.libfixposix pkgs.gcc];
};
}

View File

@ -4,3 +4,4 @@ esrap
hunchentoot
external-program
drakma
iolib

View File

@ -6,6 +6,82 @@ let quicklisp-to-nix-packages = rec {
buildLispPackage = callPackage ./define-package.nix;
qlOverrides = callPackage ./quicklisp-to-nix-overrides.nix {};
"iolib/conf" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."iolib/conf" or (x: {}))
(import ./quicklisp-to-nix-output/iolib_slash_conf.nix {
inherit fetchurl;
}));
"iolib_slash_conf" = quicklisp-to-nix-packages."iolib/conf";
"iolib/asdf" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."iolib/asdf" or (x: {}))
(import ./quicklisp-to-nix-output/iolib_slash_asdf.nix {
inherit fetchurl;
"alexandria" = quicklisp-to-nix-packages."alexandria";
}));
"iolib_slash_asdf" = quicklisp-to-nix-packages."iolib/asdf";
"swap-bytes" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."swap-bytes" or (x: {}))
(import ./quicklisp-to-nix-output/swap-bytes.nix {
inherit fetchurl;
"trivial-features" = quicklisp-to-nix-packages."trivial-features";
}));
"idna" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."idna" or (x: {}))
(import ./quicklisp-to-nix-output/idna.nix {
inherit fetchurl;
"split-sequence" = quicklisp-to-nix-packages."split-sequence";
}));
"iolib/grovel" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."iolib/grovel" or (x: {}))
(import ./quicklisp-to-nix-output/iolib_slash_grovel.nix {
inherit fetchurl;
"iolib/asdf" = quicklisp-to-nix-packages."iolib/asdf";
"iolib/base" = quicklisp-to-nix-packages."iolib/base";
"iolib/conf" = quicklisp-to-nix-packages."iolib/conf";
"alexandria" = quicklisp-to-nix-packages."alexandria";
"split-sequence" = quicklisp-to-nix-packages."split-sequence";
"cffi" = quicklisp-to-nix-packages."cffi";
"uiop" = quicklisp-to-nix-packages."uiop";
}));
"iolib_slash_grovel" = quicklisp-to-nix-packages."iolib/grovel";
"iolib/syscalls" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."iolib/syscalls" or (x: {}))
(import ./quicklisp-to-nix-output/iolib_slash_syscalls.nix {
inherit fetchurl;
"trivial-features" = quicklisp-to-nix-packages."trivial-features";
"cffi" = quicklisp-to-nix-packages."cffi";
"iolib/base" = quicklisp-to-nix-packages."iolib/base";
"iolib/grovel" = quicklisp-to-nix-packages."iolib/grovel";
}));
"iolib_slash_syscalls" = quicklisp-to-nix-packages."iolib/syscalls";
"iolib/common-lisp" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."iolib/common-lisp" or (x: {}))
(import ./quicklisp-to-nix-output/iolib_slash_common-lisp.nix {
inherit fetchurl;
"alexandria" = quicklisp-to-nix-packages."alexandria";
}));
"iolib_slash_common-lisp" = quicklisp-to-nix-packages."iolib/common-lisp";
"split-sequence" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."split-sequence" or (x: {}))
@ -48,6 +124,60 @@ let quicklisp-to-nix-packages = rec {
}));
"iolib/sockets" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."iolib/sockets" or (x: {}))
(import ./quicklisp-to-nix-output/iolib_slash_sockets.nix {
inherit fetchurl;
"iolib/base" = quicklisp-to-nix-packages."iolib/base";
"iolib/syscalls" = quicklisp-to-nix-packages."iolib/syscalls";
"iolib/streams" = quicklisp-to-nix-packages."iolib/streams";
"babel" = quicklisp-to-nix-packages."babel";
"cffi" = quicklisp-to-nix-packages."cffi";
"iolib/grovel" = quicklisp-to-nix-packages."iolib/grovel";
"bordeaux-threads" = quicklisp-to-nix-packages."bordeaux-threads";
"idna" = quicklisp-to-nix-packages."idna";
"swap-bytes" = quicklisp-to-nix-packages."swap-bytes";
}));
"iolib_slash_sockets" = quicklisp-to-nix-packages."iolib/sockets";
"iolib/streams" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."iolib/streams" or (x: {}))
(import ./quicklisp-to-nix-output/iolib_slash_streams.nix {
inherit fetchurl;
"iolib/base" = quicklisp-to-nix-packages."iolib/base";
"iolib/multiplex" = quicklisp-to-nix-packages."iolib/multiplex";
"cffi" = quicklisp-to-nix-packages."cffi";
}));
"iolib_slash_streams" = quicklisp-to-nix-packages."iolib/streams";
"iolib/multiplex" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."iolib/multiplex" or (x: {}))
(import ./quicklisp-to-nix-output/iolib_slash_multiplex.nix {
inherit fetchurl;
"iolib/base" = quicklisp-to-nix-packages."iolib/base";
"iolib/syscalls" = quicklisp-to-nix-packages."iolib/syscalls";
"cffi" = quicklisp-to-nix-packages."cffi";
}));
"iolib_slash_multiplex" = quicklisp-to-nix-packages."iolib/multiplex";
"iolib/base" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."iolib/base" or (x: {}))
(import ./quicklisp-to-nix-output/iolib_slash_base.nix {
inherit fetchurl;
"iolib/common-lisp" = quicklisp-to-nix-packages."iolib/common-lisp";
"alexandria" = quicklisp-to-nix-packages."alexandria";
"split-sequence" = quicklisp-to-nix-packages."split-sequence";
}));
"iolib_slash_base" = quicklisp-to-nix-packages."iolib/base";
"chipz" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."chipz" or (x: {}))
@ -224,6 +354,18 @@ let quicklisp-to-nix-packages = rec {
}));
"iolib" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."iolib" or (x: {}))
(import ./quicklisp-to-nix-output/iolib.nix {
inherit fetchurl;
"iolib/base" = quicklisp-to-nix-packages."iolib/base";
"iolib/multiplex" = quicklisp-to-nix-packages."iolib/multiplex";
"iolib/streams" = quicklisp-to-nix-packages."iolib/streams";
"iolib/sockets" = quicklisp-to-nix-packages."iolib/sockets";
}));
"drakma" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."drakma" or (x: {}))

View File

@ -1,7 +1,8 @@
"<% @var name %>" = buildLispPackage
((f: x: (x // (f x)))
(qlOverrides."<% @var name %>" or (x: {}))
(import ./quicklisp-to-nix-output/<% @var name %>.nix {
(import ./quicklisp-to-nix-output/<% @var filename %>.nix {
inherit fetchurl;<% @loop deps %>
"<% @var name %>" = quicklisp-to-nix-packages."<% @var name %>";<% @endloop %>
}));
}));<% @ifequal name filename %><% @else %>
"<% @var filename %>" = quicklisp-to-nix-packages."<% @var name %>";<% @endif %>

View File

@ -1,6 +1,6 @@
args @ { fetchurl, ... }:
rec {
baseName = ''<% @var name %>'';
baseName = ''<% @var filename %>'';
version = ''<% @var version %>'';
description = ''<% @var description %>'';

View File

@ -33,6 +33,17 @@
(format nil "~{~16,2,'0r~}"
(map 'list 'identity (md5:md5sum-file path))))))))
(defun escape-filename (s)
(format nil "~{~a~}"
(loop
for x in (map 'list 'identity s)
collect
(case x
(#\/ "_slash_")
(#\\ "_backslash_")
(#\_ "__")
(t x)))))
(defun system-data (system)
(ql:quickload system)
(let*
@ -64,6 +75,7 @@
:url url
:md5 file-md5
:name name
:filename (escape-filename name)
:deps deps
:dependencies dependencies
:version version)))
@ -112,7 +124,8 @@
for s in closure
do (alexandria:write-string-into-file
(nix-expression s)
(format nil "~a/quicklisp-to-nix-output/~a.nix" target-directory s)
(format nil "~a/quicklisp-to-nix-output/~a.nix"
target-directory (escape-filename s))
:if-exists :supersede))
(alexandria:write-string-into-file
(cl-emb:execute-emb