summary refs log tree commit diff
path: root/pkgs/development/lisp-modules
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2017-03-30 12:15:08 +0200
committerMichael Raskin <7c6f434c@mail.ru>2017-03-30 12:15:50 +0200
commit8641a0ace93265e38872c709a1fe2b0f2353d0b7 (patch)
tree75d990018c50b5d340dd1ccac89b92e0fe9596f6 /pkgs/development/lisp-modules
parentd7f3e5a8f0bddc8eaf9e0cffd9183bd28f71e26b (diff)
downloadnixlib-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')
-rw-r--r--pkgs/development/lisp-modules/define-package.nix2
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/idna.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_asdf.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_base.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_common-lisp.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_conf.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_grovel.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_multiplex.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_sockets.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_streams.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/iolib_slash_syscalls.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/swap-bytes.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix3
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt1
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix.nix142
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix/invocation.emb5
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix/nix-package.emb2
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix/ql-to-nix.lisp15
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