diff options
author | Michael Raskin <7c6f434c@mail.ru> | 2017-03-30 12:15:08 +0200 |
---|---|---|
committer | Michael Raskin <7c6f434c@mail.ru> | 2017-03-30 12:15:50 +0200 |
commit | 8641a0ace93265e38872c709a1fe2b0f2353d0b7 (patch) | |
tree | 75d990018c50b5d340dd1ccac89b92e0fe9596f6 /pkgs/development/lisp-modules | |
parent | d7f3e5a8f0bddc8eaf9e0cffd9183bd28f71e26b (diff) | |
download | nixlib-8641a0ace93265e38872c709a1fe2b0f2353d0b7.tar nixlib-8641a0ace93265e38872c709a1fe2b0f2353d0b7.tar.gz nixlib-8641a0ace93265e38872c709a1fe2b0f2353d0b7.tar.bz2 nixlib-8641a0ace93265e38872c709a1fe2b0f2353d0b7.tar.lz nixlib-8641a0ace93265e38872c709a1fe2b0f2353d0b7.tar.xz nixlib-8641a0ace93265e38872c709a1fe2b0f2353d0b7.tar.zst nixlib-8641a0ace93265e38872c709a1fe2b0f2353d0b7.zip |
quicklisp-to-nix: support / in the system name
Add some more packages
Diffstat (limited to 'pkgs/development/lisp-modules')
19 files changed, 334 insertions, 4 deletions
diff --git a/pkgs/development/lisp-modules/define-package.nix b/pkgs/development/lisp-modules/define-package.nix index 8623032ed375..a3368e336e6c 100644 --- a/pkgs/development/lisp-modules/define-package.nix +++ b/pkgs/development/lisp-modules/define-package.nix @@ -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; diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/idna.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/idna.nix new file mode 100644 index 000000000000..feacb1264af7 --- /dev/null +++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/idna.nix @@ -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''; + }; +} diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib.nix new file mode 100644 index 000000000000..5badc04f2015 --- /dev/null +++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib.nix @@ -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''; + }; +} diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_asdf.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_asdf.nix new file mode 100644 index 000000000000..f6a78c85da92 --- /dev/null +++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_asdf.nix @@ -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''; + }; +} diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_base.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_base.nix new file mode 100644 index 000000000000..642e26e278ae --- /dev/null +++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_base.nix @@ -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''; + }; +} diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_common-lisp.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_common-lisp.nix new file mode 100644 index 000000000000..59fdbdc85d05 --- /dev/null +++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_common-lisp.nix @@ -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''; + }; +} diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_conf.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_conf.nix new file mode 100644 index 000000000000..0a0631caf447 --- /dev/null +++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_conf.nix @@ -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''; + }; +} diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_grovel.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_grovel.nix new file mode 100644 index 000000000000..e7c2d780f4e9 --- /dev/null +++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_grovel.nix @@ -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''; + }; +} diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_multiplex.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_multiplex.nix new file mode 100644 index 000000000000..07324035052d --- /dev/null +++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_multiplex.nix @@ -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''; + }; +} diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_sockets.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_sockets.nix new file mode 100644 index 000000000000..b956d3ece216 --- /dev/null +++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_sockets.nix @@ -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''; + }; +} diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_streams.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_streams.nix new file mode 100644 index 000000000000..267dbd8e6dec --- /dev/null +++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_streams.nix @@ -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''; + }; +} diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_syscalls.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_syscalls.nix new file mode 100644 index 000000000000..395b3d53934b --- /dev/null +++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_syscalls.nix @@ -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''; + }; +} diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/swap-bytes.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/swap-bytes.nix new file mode 100644 index 000000000000..cb1e293919b4 --- /dev/null +++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/swap-bytes.nix @@ -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''; + }; +} diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix index b1928c5bc775..cf1cdec327b9 100644 --- a/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix +++ b/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix @@ -17,4 +17,7 @@ hunchentoot = x: { propagatedBuildInputs = [pkgs.openssl]; }; + iolib = x: { + propagatedBuildInputs = [pkgs.libfixposix pkgs.gcc]; + }; } diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt b/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt index c5c075f1ebdd..12ec2d1f4e5c 100644 --- a/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt +++ b/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt @@ -4,3 +4,4 @@ esrap hunchentoot external-program drakma +iolib diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix.nix b/pkgs/development/lisp-modules/quicklisp-to-nix.nix index da30352e7181..0f7f58df4b84 100644 --- a/pkgs/development/lisp-modules/quicklisp-to-nix.nix +++ b/pkgs/development/lisp-modules/quicklisp-to-nix.nix @@ -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: {})) diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix/invocation.emb b/pkgs/development/lisp-modules/quicklisp-to-nix/invocation.emb index d3e8e91bfbde..a13cedf3dfe4 100644 --- a/pkgs/development/lisp-modules/quicklisp-to-nix/invocation.emb +++ b/pkgs/development/lisp-modules/quicklisp-to-nix/invocation.emb @@ -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 %> diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix/nix-package.emb b/pkgs/development/lisp-modules/quicklisp-to-nix/nix-package.emb index b54f555180d6..1be5345b3277 100644 --- a/pkgs/development/lisp-modules/quicklisp-to-nix/nix-package.emb +++ b/pkgs/development/lisp-modules/quicklisp-to-nix/nix-package.emb @@ -1,6 +1,6 @@ args @ { fetchurl, ... }: rec { - baseName = ''<% @var name %>''; + baseName = ''<% @var filename %>''; version = ''<% @var version %>''; description = ''<% @var description %>''; diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix/ql-to-nix.lisp b/pkgs/development/lisp-modules/quicklisp-to-nix/ql-to-nix.lisp index ded802ca693a..dc4b14c1f60b 100644 --- a/pkgs/development/lisp-modules/quicklisp-to-nix/ql-to-nix.lisp +++ b/pkgs/development/lisp-modules/quicklisp-to-nix/ql-to-nix.lisp @@ -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 |