about summary refs log tree commit diff
path: root/third_party
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2021-12-14T21·32+0300
committertazjin <mail@tazj.in>2021-12-15T10·34+0000
commite9bfa84aafc65896e2fffead2f1ef4853bdd59af (patch)
tree711bd7c6aa289a7175c635c8866e75c85287ab45 /third_party
parentb0614b5c83ae62672cb036bebb6ce12675aa3074 (diff)
refactor(3p/lisp): Use sources from nixpkgs where possible r/3246
nixpkgs includes a lispPackages set which is generated from something.
In the meantime, we pretty much never update our Lisp deps.

This commit ties our sources to nixpkgs.lispPackages where the desired
package is included in nixpkgs (which is actually most of them!)

Change-Id: I520a006535980271b2fa4e0ed4e34029475dcbef
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4331
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Diffstat (limited to 'third_party')
-rw-r--r--third_party/lisp/anaphora.nix7
-rw-r--r--third_party/lisp/babel.nix7
-rw-r--r--third_party/lisp/bordeaux-threads.nix7
-rw-r--r--third_party/lisp/cffi.nix7
-rw-r--r--third_party/lisp/chipz.nix7
-rw-r--r--third_party/lisp/chunga.nix7
-rw-r--r--third_party/lisp/cl-ansi-text.nix7
-rw-r--r--third_party/lisp/cl-base64.nix7
-rw-r--r--third_party/lisp/cl-colors.nix7
-rw-r--r--third_party/lisp/cl-colors2.nix11
-rw-r--r--third_party/lisp/cl-fad.nix7
-rw-r--r--third_party/lisp/cl-ppcre.nix7
-rw-r--r--third_party/lisp/cl-prevalence.nix7
-rw-r--r--third_party/lisp/cl-smtp.nix10
-rw-r--r--third_party/lisp/cl-who.nix10
-rw-r--r--third_party/lisp/closer-mop.nix7
-rw-r--r--third_party/lisp/closure-common.nix12
-rw-r--r--third_party/lisp/defclass-std.nix7
-rw-r--r--third_party/lisp/drakma.nix7
-rw-r--r--third_party/lisp/flexi-streams.nix9
-rw-r--r--third_party/lisp/global-vars.nix9
-rw-r--r--third_party/lisp/hunchentoot.nix8
-rw-r--r--third_party/lisp/ironclad.nix103
-rw-r--r--third_party/lisp/iterate.nix7
-rw-r--r--third_party/lisp/let-plus.nix7
-rw-r--r--third_party/lisp/local-time.nix19
-rw-r--r--third_party/lisp/marshal.nix9
-rw-r--r--third_party/lisp/md5.nix7
-rw-r--r--third_party/lisp/moptilities.nix7
-rw-r--r--third_party/lisp/nibbles.nix9
-rw-r--r--third_party/lisp/parse-float.nix9
-rw-r--r--third_party/lisp/parse-number.nix10
-rw-r--r--third_party/lisp/parseq.nix9
-rw-r--r--third_party/lisp/physical-quantities.nix9
-rw-r--r--third_party/lisp/postmodern.nix15
-rw-r--r--third_party/lisp/prove.nix7
-rw-r--r--third_party/lisp/puri.nix6
-rw-r--r--third_party/lisp/rfc2388.nix7
-rw-r--r--third_party/lisp/s-sysdeps.nix13
-rw-r--r--third_party/lisp/split-sequence.nix7
-rw-r--r--third_party/lisp/trivial-features.nix7
-rw-r--r--third_party/lisp/trivial-garbage.nix7
-rw-r--r--third_party/lisp/trivial-gray-streams.nix7
-rw-r--r--third_party/lisp/trivial-indent.nix9
-rw-r--r--third_party/lisp/trivial-mimes.nix7
-rw-r--r--third_party/lisp/uax-15.nix25
-rw-r--r--third_party/lisp/unix-opts.nix9
-rw-r--r--third_party/lisp/usocket-server.nix18
-rw-r--r--third_party/lisp/usocket.nix8
49 files changed, 172 insertions, 359 deletions
diff --git a/third_party/lisp/anaphora.nix b/third_party/lisp/anaphora.nix
index d2356f7b05ea..c079943e6725 100644
--- a/third_party/lisp/anaphora.nix
+++ b/third_party/lisp/anaphora.nix
@@ -1,11 +1,6 @@
 { depot, pkgs, ... }:
 
-let src = pkgs.fetchFromGitHub {
-    owner = "tokenrove";
-    repo = "anaphora";
-    rev = "018590df36ffb30ece561fb28ea6521363efc6e2";
-    sha256 = "0pq6y5swvrjd0kjs2dl2648s13s0pzxin0chrq35jam8jrci3kd1";
-  };
+let src = with pkgs; srcOnly lispPackages.anaphora;
 in depot.nix.buildLisp.library {
   name = "anaphora";
 
diff --git a/third_party/lisp/babel.nix b/third_party/lisp/babel.nix
index c4a49e833f76..ae7c5dd23d18 100644
--- a/third_party/lisp/babel.nix
+++ b/third_party/lisp/babel.nix
@@ -1,10 +1,7 @@
 # Babel is an encoding conversion library for Common Lisp.
-{ depot, ... }:
+{ depot, pkgs, ... }:
 
-let src = builtins.fetchGit {
-  url = "https://github.com/cl-babel/babel.git";
-  rev = "f892d0587c7f3a1e6c0899425921b48008c29ee3"; # 2020-07-19
-};
+let src = with pkgs; srcOnly lispPackages.babel;
 in depot.nix.buildLisp.library {
   name = "babel";
   deps = [
diff --git a/third_party/lisp/bordeaux-threads.nix b/third_party/lisp/bordeaux-threads.nix
index 92bc1f2629c4..17ee6e539ef8 100644
--- a/third_party/lisp/bordeaux-threads.nix
+++ b/third_party/lisp/bordeaux-threads.nix
@@ -1,12 +1,9 @@
 # This library is meant to make writing portable multi-threaded apps
 # in Common Lisp simple.
-{ depot, ... }:
+{ depot, pkgs, ... }:
 
 let
-  src = builtins.fetchGit {
-    url = "https://github.com/sionescu/bordeaux-threads.git";
-    rev = "499b6d3f0ce635417d6096acf0a671d8bf3f6e5f";
-  };
+  src = with pkgs; srcOnly lispPackages.bordeaux-threads;
   getSrc = f: "${src}/src/${f}";
 in depot.nix.buildLisp.library {
   name = "bordeaux-threads";
diff --git a/third_party/lisp/cffi.nix b/third_party/lisp/cffi.nix
index c8d240c8cd0e..de1d0c2e8ed7 100644
--- a/third_party/lisp/cffi.nix
+++ b/third_party/lisp/cffi.nix
@@ -1,11 +1,8 @@
 # CFFI purports to be the Common Foreign Function Interface.
-{ depot, ... }:
+{ depot, pkgs, ... }:
 
 with depot.nix;
-let src = builtins.fetchGit {
-  url = "https://github.com/cffi/cffi.git";
-  rev = "a49ff36a95cb62ffa6cb069d98378d665769926b";
-};
+let src = with pkgs; srcOnly lispPackages.cffi;
 in buildLisp.library {
   name = "cffi";
   deps = with depot.third_party.lisp; [
diff --git a/third_party/lisp/chipz.nix b/third_party/lisp/chipz.nix
index 2a68d3b1f8e9..59e9914ee1d1 100644
--- a/third_party/lisp/chipz.nix
+++ b/third_party/lisp/chipz.nix
@@ -1,12 +1,7 @@
 # Common Lisp library for decompressing deflate, zlib, gzip, and bzip2 data
 { depot, pkgs, ... }:
 
-let src = pkgs.fetchFromGitHub {
-  owner = "froydnj";
-  repo = "chipz";
-  rev = "75dfbc660a5a28161c57f115adf74c8a926bfc4d";
-  sha256 = "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg";
-};
+let src = with pkgs; srcOnly lispPackages.chipz;
 in depot.nix.buildLisp.library {
   name = "chipz";
   deps = [ (depot.nix.buildLisp.bundled "asdf") ];
diff --git a/third_party/lisp/chunga.nix b/third_party/lisp/chunga.nix
index d40208063372..d3f50bcb1af8 100644
--- a/third_party/lisp/chunga.nix
+++ b/third_party/lisp/chunga.nix
@@ -1,12 +1,7 @@
 # Portable chunked streams for Common Lisp
 { depot, pkgs, ... }:
 
-let src = pkgs.fetchFromGitHub {
-  owner = "edicl";
-  repo = "chunga";
-  rev = "16330852d01dfde4dd97dee7cd985a88ea571e7e";
-  sha256 = "0jzn3nyb3f22gm983rfk99smqs3mhb9ivjmasvhq9qla5cl9pyhd";
-};
+let src = with pkgs; srcOnly lispPackages.chunga;
 in depot.nix.buildLisp.library {
   name = "chunga";
   deps = with depot.third_party.lisp; [
diff --git a/third_party/lisp/cl-ansi-text.nix b/third_party/lisp/cl-ansi-text.nix
index 5c01e023265a..0e3401524755 100644
--- a/third_party/lisp/cl-ansi-text.nix
+++ b/third_party/lisp/cl-ansi-text.nix
@@ -1,10 +1,7 @@
 # Enables ANSI colors for printing.
-{ depot, ... }:
+{ depot, pkgs, ... }:
 
-let src = builtins.fetchGit {
-  url = "https://github.com/pnathan/cl-ansi-text.git";
-  rev = "257a5f19a2dc92d22f8fd772c0a78923b99b36a8";
-};
+let src = with pkgs; srcOnly lispPackages.cl-ansi-text;
 in depot.nix.buildLisp.library {
   name = "cl-ansi-text";
   deps = with depot.third_party.lisp; [
diff --git a/third_party/lisp/cl-base64.nix b/third_party/lisp/cl-base64.nix
index 1152601a81d3..08055a047119 100644
--- a/third_party/lisp/cl-base64.nix
+++ b/third_party/lisp/cl-base64.nix
@@ -1,10 +1,7 @@
 # Base64 encoding for Common Lisp
-{ depot, ... }:
+{ depot, pkgs, ... }:
 
-let src = builtins.fetchGit {
-  url = "http://git.kpe.io/cl-base64.git";
-  rev = "fc62a5342445d4ec1dd44e95f7dc513473a8c89a";
-};
+let src = with pkgs; srcOnly lispPackages.cl-base64;
 in depot.nix.buildLisp.library {
   name = "cl-base64";
   srcs = [
diff --git a/third_party/lisp/cl-colors.nix b/third_party/lisp/cl-colors.nix
index 71f78e424e79..b51e4d46a747 100644
--- a/third_party/lisp/cl-colors.nix
+++ b/third_party/lisp/cl-colors.nix
@@ -1,11 +1,6 @@
 { depot, pkgs, ... }:
 
-let
-  src = pkgs.fetchgit {
-    url = "https://github.com/tpapp/cl-colors.git";
-    rev = "827410584553f5c717eec6182343b7605f707f75";
-    hash = "sha256:0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a";
-  };
+let src = with pkgs; srcOnly lispPackages.cl-colors;
 in depot.nix.buildLisp.library {
   name = "cl-colors";
   deps = [
diff --git a/third_party/lisp/cl-colors2.nix b/third_party/lisp/cl-colors2.nix
index c90b8eae0118..34201bc2faa0 100644
--- a/third_party/lisp/cl-colors2.nix
+++ b/third_party/lisp/cl-colors2.nix
@@ -1,10 +1,6 @@
+{ depot, pkgs, ... }:
 
-{ depot, ... }:
-
-let src = builtins.fetchGit {
-  url = "https://notabug.org/cage/cl-colors2.git";
-  rev = "795aedee593b095fecde574bd999b520dd03ed24";
-};
+let src = with pkgs; srcOnly lispPackages.cl-colors2;
 in depot.nix.buildLisp.library {
   name = "cl-colors2";
   deps = with depot.third_party.lisp; [
@@ -15,7 +11,8 @@ in depot.nix.buildLisp.library {
   srcs = map (f: src + ("/" + f)) [
     "package.lisp"
     "colors.lisp"
-    "colornames.lisp"
+    "colornames-x11.lisp"
+    "colornames-svg.lisp"
     "hexcolors.lisp"
   ];
 }
diff --git a/third_party/lisp/cl-fad.nix b/third_party/lisp/cl-fad.nix
index 905e0821cac7..ec1170bf1661 100644
--- a/third_party/lisp/cl-fad.nix
+++ b/third_party/lisp/cl-fad.nix
@@ -3,12 +3,7 @@
 
 with depot.nix;
 
-let src = pkgs.fetchFromGitHub {
-  owner = "edicl";
-  repo = "cl-fad";
-  rev = "13cbffe08fc660041359302f4057f8fc20d09402"; # 2021-01-10
-  sha256 = "049laj8an6g9bh0m0cn0bxhq313p8qq1h37cil15l66147ad8slc";
-};
+let src = with pkgs; srcOnly lispPackages.cl-fad;
 in buildLisp.library {
   name = "cl-fad";
 
diff --git a/third_party/lisp/cl-ppcre.nix b/third_party/lisp/cl-ppcre.nix
index 1dc9eb553118..561e306191ca 100644
--- a/third_party/lisp/cl-ppcre.nix
+++ b/third_party/lisp/cl-ppcre.nix
@@ -1,10 +1,7 @@
 # cl-ppcre is a Common Lisp regular expression library.
-{ depot, ... }:
+{ depot, pkgs, ... }:
 
-let src = builtins.fetchGit {
-  url = "https://github.com/edicl/cl-ppcre";
-  rev = "1ca0cd9ca0d161acd49c463d6cb5fff897596e2f";
-};
+let src = with pkgs; srcOnly lispPackages.cl-ppcre;
 in depot.nix.buildLisp.library {
   name = "cl-ppcre";
 
diff --git a/third_party/lisp/cl-prevalence.nix b/third_party/lisp/cl-prevalence.nix
index f793136194cb..188cbc686d28 100644
--- a/third_party/lisp/cl-prevalence.nix
+++ b/third_party/lisp/cl-prevalence.nix
@@ -2,12 +2,7 @@
 # an in-memory database)
 { depot, pkgs, ... }:
 
-let src = pkgs.fetchFromGitHub {
-  owner = "40ants";
-  repo = "cl-prevalence";
-  rev = "b1f90a525f37be0335a8761051fa5661aa74b696";
-  sha256 = "1svw58pp7jxb9l08cgnqxf0cf8qa9qsb0z2fnv86a51z7pfz4c0g";
-};
+let src = with pkgs; srcOnly lispPackages.cl-prevalence;
 in depot.nix.buildLisp.library {
   name = "cl-prevalence";
 
diff --git a/third_party/lisp/cl-smtp.nix b/third_party/lisp/cl-smtp.nix
index a9905b5ef6f5..7ab9bea59ff5 100644
--- a/third_party/lisp/cl-smtp.nix
+++ b/third_party/lisp/cl-smtp.nix
@@ -1,14 +1,6 @@
 { depot, pkgs, ... }:
 
-let
-  src = pkgs.fetchFromGitLab {
-    domain = "gitlab.common-lisp.net";
-    owner = "cl-smtp";
-    repo = "cl-smtp";
-    rev = "ed47d326fad867ee11323fa3a0f307b5d40e8f2b";
-    sha256 = "0vjjfapcrdc5671jz2d24h8zvpz7skq1x6pi9fvw6ls5sgms6fr0";
-  };
-
+let src = with pkgs; srcOnly lispPackages.cl-smtp;
 in depot.nix.buildLisp.library {
   name = "cl-smtp";
   deps = with depot.third_party.lisp; [
diff --git a/third_party/lisp/cl-who.nix b/third_party/lisp/cl-who.nix
index 50e4e68c0348..601b09f118db 100644
--- a/third_party/lisp/cl-who.nix
+++ b/third_party/lisp/cl-who.nix
@@ -1,14 +1,6 @@
 { depot, pkgs, ... }:
 
-let
-
-  src = pkgs.fetchFromGitHub {
-    owner = "edicl";
-    repo = "cl-who";
-    rev = "0d3826475133271ee8c590937136c1bc41b8cbe0";
-    sha256 = "0sc8nji9q1df04lhsiwsjy1a35996bibl31w5hp5sh8q6sa122dy";
-  };
-
+let src = with pkgs; srcOnly lispPackages.cl-who;
 in depot.nix.buildLisp.library {
   name = "cl-who";
 
diff --git a/third_party/lisp/closer-mop.nix b/third_party/lisp/closer-mop.nix
index 21fb3ba14bef..145b9cfd4325 100644
--- a/third_party/lisp/closer-mop.nix
+++ b/third_party/lisp/closer-mop.nix
@@ -3,12 +3,7 @@
 # Lisp implementations
 { depot, pkgs, ... }:
 
-let src = pkgs.fetchFromGitHub {
-  owner = "pcostanza";
-  repo = "closer-mop";
-  rev = "8ec9577029b08ade5978236121c9ac276f78d8be"; # 2021-07-30
-  sha256 = "0dm8xsa3hzpxjd7x248pbzd8blw01a8ls7spalzgbg1g7vbn6zg5";
-};
+let src = with pkgs; srcOnly lispPackages.closer-mop;
 in depot.nix.buildLisp.library {
   name = "closer-mop";
 
diff --git a/third_party/lisp/closure-common.nix b/third_party/lisp/closure-common.nix
index 591620e48705..0856fc9e52d8 100644
--- a/third_party/lisp/closure-common.nix
+++ b/third_party/lisp/closure-common.nix
@@ -1,17 +1,9 @@
 { depot, pkgs, ... }:
 
 let
-  src = pkgs.fetchFromGitHub {
-    owner = "sharplispers";
-    repo = "closure-common";
-    rev = "e3c5f5f454b72b01b89115e581c3c52a7e201e5c"; # 2018-09-09
-    sha256 = "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n";
-  };
-
+  src = with pkgs; srcOnly lispPackages.closure-common;
   getSrcs = builtins.map (p: "${src}/${p}");
-in
-
-depot.nix.buildLisp.library {
+in depot.nix.buildLisp.library {
   name = "closure-common";
 
   # closure-common.asd surpresses some warnings otherwise breaking
diff --git a/third_party/lisp/defclass-std.nix b/third_party/lisp/defclass-std.nix
index 781fd107f59d..c31ddb3c5b74 100644
--- a/third_party/lisp/defclass-std.nix
+++ b/third_party/lisp/defclass-std.nix
@@ -2,12 +2,7 @@
 # Seems to be unmaintained (since early 2021)
 { depot, pkgs, ... }:
 
-let src = pkgs.fetchFromGitHub {
-    owner = "EuAndreh";
-    repo = "defclass-std";
-    rev = "a4d32260a619eddf3a3e49df3af304f3c07ccec6";
-    sha256 = "1c0ymb49wd205lzxmnmsrpqyv0pn61snn2xvsbk5iis135r4fr18";
-  };
+let src = with pkgs; srcOnly lispPackages.defclass-std;
 in depot.nix.buildLisp.library {
   name = "defclass-std";
   deps = with depot.third_party.lisp; [
diff --git a/third_party/lisp/drakma.nix b/third_party/lisp/drakma.nix
index 3757aad7b144..607f438d7e72 100644
--- a/third_party/lisp/drakma.nix
+++ b/third_party/lisp/drakma.nix
@@ -1,12 +1,7 @@
 # Drakma is an HTTP client for Common Lisp.
 { depot, pkgs, ... }:
 
-let src = pkgs.fetchFromGitHub {
-  owner = "edicl";
-  repo = "drakma";
-  rev = "87feb02bef00b11a753d5fb21a5fec526b0d0bbb";
-  sha256 = "01b80am2vrw94xmdj7f21qm7p5ys08mmpzv4nc4icql81hqr1w2m";
-};
+let src = with pkgs; srcOnly lispPackages.drakma;
 in depot.nix.buildLisp.library {
   name = "drakma";
   deps = with depot.third_party.lisp; [
diff --git a/third_party/lisp/flexi-streams.nix b/third_party/lisp/flexi-streams.nix
index 8cdf062f1cf2..4b8880902458 100644
--- a/third_party/lisp/flexi-streams.nix
+++ b/third_party/lisp/flexi-streams.nix
@@ -1,10 +1,7 @@
 # Flexible bivalent streams for Common Lisp
-{ depot, ... }:
+{ depot, pkgs, ... }:
 
-let src = builtins.fetchGit {
-  url = "https://github.com/edicl/flexi-streams.git";
-  rev = "0fd872ae32022e834ef861a67d86879cf33a6b64";
-};
+let src = with pkgs; srcOnly lispPackages.flexi-streams;
 in depot.nix.buildLisp.library {
   name = "flexi-streams";
   deps = [ depot.third_party.lisp.trivial-gray-streams ];
@@ -14,7 +11,9 @@ in depot.nix.buildLisp.library {
     "mapping.lisp"
     "ascii.lisp"
     "koi8-r.lisp"
+    "mac.lisp"
     "iso-8859.lisp"
+    "enc-cn-tbl.lisp"
     "code-pages.lisp"
     "specials.lisp"
     "util.lisp"
diff --git a/third_party/lisp/global-vars.nix b/third_party/lisp/global-vars.nix
index 2b4078f588cd..0f6630f721de 100644
--- a/third_party/lisp/global-vars.nix
+++ b/third_party/lisp/global-vars.nix
@@ -1,13 +1,6 @@
 { depot, pkgs, ... }:
 
-let
-  src = pkgs.fetchFromGitHub {
-    owner = "lmj";
-    repo = "global-vars";
-    rev = "c749f32c9b606a1457daa47d59630708ac0c266e";
-    sha256 = "06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d";
-  };
-
+let src = with pkgs; srcOnly lispPackages.global-vars;
 in depot.nix.buildLisp.library {
   name = "global-vars";
   srcs = [ "${src}/global-vars.lisp" ] ;
diff --git a/third_party/lisp/hunchentoot.nix b/third_party/lisp/hunchentoot.nix
index 24eae6a348cf..5b953d94b29e 100644
--- a/third_party/lisp/hunchentoot.nix
+++ b/third_party/lisp/hunchentoot.nix
@@ -2,12 +2,8 @@
 { depot, pkgs, ...}:
 
 let
-  src = pkgs.fetchFromGitHub {
-    owner = "edicl";
-    repo = "hunchentoot";
-    rev = "585b45b6b873f2da421fdf456b61860ab5868207";
-    sha256 = "13nazwix067mdclq9vgjhsi2vpr57a8dz51dd5d3h99ccsq4mik5";
-  };
+  src = with pkgs; srcOnly lispPackages.hunchentoot;
+
   url-rewrite = depot.nix.buildLisp.library {
     name = "url-rewrite";
 
diff --git a/third_party/lisp/ironclad.nix b/third_party/lisp/ironclad.nix
index cdd829924ee5..3436776b7da6 100644
--- a/third_party/lisp/ironclad.nix
+++ b/third_party/lisp/ironclad.nix
@@ -3,13 +3,7 @@
 let
   inherit (pkgs) runCommand;
   inherit (depot.nix.buildLisp) bundled;
-  src = pkgs.fetchFromGitHub {
-    owner = "sharplispers";
-    repo = "ironclad";
-    rev = "c3aa33080621abc10fdb0f34acc4655cc4e982a6";
-    sha256 = "0k4bib9mbrzalbl9ivkw4a7g4c7bbad1l5jw4pzkifqszy2swkr5";
-  };
-
+  src = with pkgs; srcOnly lispPackages.ironclad;
   getSrc = f: "${src}/src/${f}";
 
 in depot.nix.buildLisp.library {
@@ -24,19 +18,22 @@ in depot.nix.buildLisp.library {
     nibbles
   ];
 
-  srcs = [
-    {
-      # TODO(grfn): Figure out how to get this compiling with the assembly
-      # optimization eventually - see https://cl.tvl.fyi/c/depot/+/1333
-      sbcl = runCommand "package.lisp" {} ''
-        substitute ${src}/src/package.lisp $out \
-          --replace \#-ecl-bytecmp "" \
-          --replace '(pushnew :ironclad-assembly *features*)' ""
-      '';
-      default = getSrc "package.lisp";
-    }
-  ] ++ map getSrc [
+  srcs = map getSrc [
+    # {
+    #   # TODO(grfn): Figure out how to get this compiling with the assembly
+    #   # optimization eventually - see https://cl.tvl.fyi/c/depot/+/1333
+    #   sbcl = runCommand "package.lisp" {} ''
+    #     substitute ${src}/src/package.lisp $out \
+    #       --replace \#-ecl-bytecmp "" \
+    #       --replace '(pushnew :ironclad-assembly *features*)' ""
+    #   '';
+    #   default = getSrc "package.lisp";
+    # }
+    "package.lisp"
+    "conditions.lisp"
+    "generic.lisp"
     "macro-utils.lisp"
+    "util.lisp"
   ] ++ [
     { sbcl = getSrc "opt/sbcl/fndb.lisp"; }
     { sbcl = getSrc "opt/sbcl/cpu-features.lisp"; }
@@ -46,36 +43,31 @@ in depot.nix.buildLisp.library {
 
     { ccl = getSrc "opt/ccl/x86oid-vm.lisp"; }
   ] ++ map getSrc [
-
     "common.lisp"
-    "conditions.lisp"
-    "generic.lisp"
-    "util.lisp"
 
-    "ciphers/padding.lisp"
     "ciphers/cipher.lisp"
-    "ciphers/chacha.lisp"
+    "ciphers/padding.lisp"
+    "ciphers/make-cipher.lisp"
     "ciphers/modes.lisp"
-    "ciphers/salsa20.lisp"
-    "ciphers/xchacha.lisp"
-    "ciphers/xsalsa20.lisp"
+
+    # subsystem def ironclad/ciphers
     "ciphers/aes.lisp"
     "ciphers/arcfour.lisp"
-    "ciphers/arcfour.lisp"
     "ciphers/aria.lisp"
     "ciphers/blowfish.lisp"
     "ciphers/camellia.lisp"
     "ciphers/cast5.lisp"
+    "ciphers/chacha.lisp"
     "ciphers/des.lisp"
     "ciphers/idea.lisp"
-    "ciphers/keystream.lisp"
     "ciphers/kalyna.lisp"
     "ciphers/kuznyechik.lisp"
-    "ciphers/make-cipher.lisp"
     "ciphers/misty1.lisp"
     "ciphers/rc2.lisp"
     "ciphers/rc5.lisp"
     "ciphers/rc6.lisp"
+    "ciphers/salsa20.lisp"
+    "ciphers/keystream.lisp"
     "ciphers/seed.lisp"
     "ciphers/serpent.lisp"
     "ciphers/sm4.lisp"
@@ -84,10 +76,13 @@ in depot.nix.buildLisp.library {
     "ciphers/tea.lisp"
     "ciphers/threefish.lisp"
     "ciphers/twofish.lisp"
+    "ciphers/xchacha.lisp"
     "ciphers/xor.lisp"
+    "ciphers/xsalsa20.lisp"
     "ciphers/xtea.lisp"
 
     "digests/digest.lisp"
+    # subsystem def ironclad/digests
     "digests/adler32.lisp"
     "digests/blake2.lisp"
     "digests/blake2s.lisp"
@@ -113,14 +108,8 @@ in depot.nix.buildLisp.library {
     "digests/tree-hash.lisp"
     "digests/whirlpool.lisp"
 
-    "prng/prng.lisp"
-    "prng/generator.lisp"
-    "prng/fortuna.lisp"
-    "prng/os-prng.lisp"
-
-    "math.lisp"
-
     "macs/mac.lisp"
+    # subsystem def ironclad/macs
     "macs/blake2-mac.lisp"
     "macs/blake2s-mac.lisp"
     "macs/cmac.lisp"
@@ -130,26 +119,44 @@ in depot.nix.buildLisp.library {
     "macs/siphash.lisp"
     "macs/skein-mac.lisp"
 
-    "kdf/kdf-common.lisp"
-    "kdf/argon2.lisp"
-    "kdf/password-hash.lisp"
-    "kdf/pkcs5.lisp"
-    "kdf/scrypt.lisp"
-    "kdf/hmac.lisp"
+    "prng/prng.lisp"
+    "prng/os-prng.lisp"
+    "prng/generator.lisp"
+    "prng/fortuna.lisp"
+
+    "math.lisp"
+
+    "octet-stream.lisp"
 
     "aead/aead.lisp"
+    # subsystem def ironclad/aead
     "aead/eax.lisp"
     "aead/etm.lisp"
     "aead/gcm.lisp"
 
+    "kdf/kdf.lisp"
+    # subsystem def ironclad/kdfs
+    "kdf/argon2.lisp"
+    "kdf/bcrypt.lisp"
+    "kdf/hmac.lisp"
+    "kdf/pkcs5.lisp"
+    "kdf/password-hash.lisp"
+    "kdf/scrypt.lisp"
+
     "public-key/public-key.lisp"
+    "public-key/pkcs1.lisp"
+    "public-key/elliptic-curve.lisp"
+    # subsystem def ironclad/public-keys
+    "public-key/dsa.lisp"
+    "public-key/rsa.lisp"
+    "public-key/elgamal.lisp"
     "public-key/curve25519.lisp"
     "public-key/curve448.lisp"
-    "public-key/dsa.lisp"
     "public-key/ed25519.lisp"
     "public-key/ed448.lisp"
-    "public-key/elgamal.lisp"
-    "public-key/pkcs1.lisp"
-    "public-key/rsa.lisp"
+    "public-key/secp256k1.lisp"
+    "public-key/secp256r1.lisp"
+    "public-key/secp384r1.lisp"
+    "public-key/secp521r1.lisp"
   ];
 }
diff --git a/third_party/lisp/iterate.nix b/third_party/lisp/iterate.nix
index 5875be8d5c88..b7d60265ac37 100644
--- a/third_party/lisp/iterate.nix
+++ b/third_party/lisp/iterate.nix
@@ -1,11 +1,8 @@
 # iterate is an iteration construct for Common Lisp, similar to the
 # LOOP macro.
-{ depot, ... }:
+{ depot, pkgs, ... }:
 
-let src = builtins.fetchGit {
-  url = "https://gitlab.common-lisp.net/iterate/iterate.git";
-  rev = "c24f6715bb3b962499bb4643636baaac2df4a957"; # 2021-05-23, 1.5.3
-};
+let src = with pkgs; srcOnly lispPackages.iterate;
 in depot.nix.buildLisp.library {
   name = "iterate";
   srcs = [
diff --git a/third_party/lisp/let-plus.nix b/third_party/lisp/let-plus.nix
index 3afb640e4e5a..bd7f31dfa0de 100644
--- a/third_party/lisp/let-plus.nix
+++ b/third_party/lisp/let-plus.nix
@@ -1,11 +1,6 @@
 { depot, pkgs, ... }:
 
-let
-  src = pkgs.fetchgit {
-    url = "https://github.com/tpapp/let-plus.git";
-    rev = "7cf18b29ed0fe9c667a9a6a101b08ab9661a59e9";
-    hash = "sha256:1xy3b05dwjddk33mah2jaigm4jzsmrxjcc1d0dhsw0krwgr4450f";
-  };
+let src = with pkgs; srcOnly lispPackages.let-plus;
 in depot.nix.buildLisp.library {
   name = "let-plus";
   deps = [
diff --git a/third_party/lisp/local-time.nix b/third_party/lisp/local-time.nix
index 65fb9c37fbf2..8e96c5e51714 100644
--- a/third_party/lisp/local-time.nix
+++ b/third_party/lisp/local-time.nix
@@ -1,15 +1,18 @@
 # Library for manipulating dates & times
 { depot, pkgs, ... }:
 
-let src = pkgs.fetchFromGitHub {
-  owner = "dlowe-net";
-  repo = "local-time";
-  rev = "dc54f61415c76ee755a6f69d4154a3a282f2789f";
-  sha256 = "1l9v07ghx7g9p2gp003fki4j8bsa1w2gbm40qc41i94mdzikc0ry";
-};
-in depot.nix.buildLisp.library {
+let
+  inherit (depot.nix) buildLisp;
+  src = with pkgs; srcOnly lispPackages.local-time;
+in buildLisp.library {
   name = "local-time";
-  deps = [ depot.third_party.lisp.cl-fad ];
+  deps = [
+    depot.third_party.lisp.cl-fad
+    {
+      scbl = buildLisp.bundled "uiop";
+      default = buildLisp.bundled "asdf";
+    }
+  ];
 
   srcs = [
     "${src}/src/package.lisp"
diff --git a/third_party/lisp/marshal.nix b/third_party/lisp/marshal.nix
index 711e6e082d61..73a1664a0162 100644
--- a/third_party/lisp/marshal.nix
+++ b/third_party/lisp/marshal.nix
@@ -1,13 +1,6 @@
 { depot, pkgs, ... }:
 
-let
-  src = pkgs.fetchFromGitHub {
-    owner = "wlbr";
-    repo = "cl-marshal";
-    rev = "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec";
-    sha256 = "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh";
-  };
-
+let src = with pkgs; srcOnly lispPackages.marshal;
 in depot.nix.buildLisp.library {
   name = "marshal";
   srcs = map (f: src + ("/" + f)) [
diff --git a/third_party/lisp/md5.nix b/third_party/lisp/md5.nix
index ef265d5b6e8f..8c3e255f166b 100644
--- a/third_party/lisp/md5.nix
+++ b/third_party/lisp/md5.nix
@@ -3,12 +3,7 @@
 
 with depot.nix;
 
-let src = pkgs.fetchFromGitHub {
-  owner = "pmai";
-  repo = "md5";
-  rev = "b1412600f60d526ee34a7ba1596ec483da7894ab";
-  sha256 = "0lzip6b6xg7gd70xl1xmqp24fvxqj6ywjnz9lmx7988zpj20nhl2";
-};
+let src = with pkgs; srcOnly lispPackages.md5;
 in buildLisp.library {
   name = "md5";
   deps = [
diff --git a/third_party/lisp/moptilities.nix b/third_party/lisp/moptilities.nix
index a8a387ab914f..d38fbcb9469a 100644
--- a/third_party/lisp/moptilities.nix
+++ b/third_party/lisp/moptilities.nix
@@ -1,12 +1,7 @@
 # Compatibility layer for minor MOP implementation differences
 { depot, pkgs, ... }:
 
-let src = pkgs.fetchFromGitHub {
-  owner = "gwkkwg";
-  repo = "moptilities";
-  rev = "a436f16b357c96b82397ec018ea469574c10dd41";
-  sha256 = "1q12bqjbj47lx98yim1kfnnhgfhkl80102fkgp9pdqxg0fp6g5fc";
-};
+let src = with pkgs; srcOnly lispPackages.moptilities;
 in depot.nix.buildLisp.library {
   name = "moptilities";
   deps = [ depot.third_party.lisp.closer-mop ];
diff --git a/third_party/lisp/nibbles.nix b/third_party/lisp/nibbles.nix
index da542fe91130..3c0a75e46dc7 100644
--- a/third_party/lisp/nibbles.nix
+++ b/third_party/lisp/nibbles.nix
@@ -2,14 +2,7 @@
 
 let
   inherit (depot.nix.buildLisp) bundled;
-  src = pkgs.fetchFromGitHub {
-    owner = "sharplispers";
-    repo = "nibbles";
-    rev = "dad25240928d5cf8f7df69c4398244e03570bb35";
-    sha256 = "0r6ljlpgjmkf87pmvdwzva8qj15bhznc3ylgcjjqyy4frbx9lygz";
-    name = "nibbles-source";
-  };
-
+  src = with pkgs; srcOnly lispPackages.nibbles;
 in depot.nix.buildLisp.library {
   name = "nibbles";
 
diff --git a/third_party/lisp/parse-float.nix b/third_party/lisp/parse-float.nix
index 4e36e69c7d98..e90824108ed1 100644
--- a/third_party/lisp/parse-float.nix
+++ b/third_party/lisp/parse-float.nix
@@ -1,13 +1,6 @@
 { depot, pkgs, ... }:
 
-let
-  src = pkgs.fetchFromGitHub {
-    owner = "soemraws";
-    repo = "parse-float";
-    rev = "3074765101e41222b6b624a66aaf1e6416379f9c";
-    sha256 = "0jd2spawc3v8vzqf8ky4cngl45jm65fhkrdf20mf6dcbn3mzpkmr";
-  };
-
+let src = with pkgs; srcOnly lispPackages.parse-float;
 in depot.nix.buildLisp.library {
   name = "parse-float";
 
diff --git a/third_party/lisp/parse-number.nix b/third_party/lisp/parse-number.nix
index 1ceba2863d8d..61b0b1fddbda 100644
--- a/third_party/lisp/parse-number.nix
+++ b/third_party/lisp/parse-number.nix
@@ -1,14 +1,6 @@
 { depot, pkgs, ... }:
 
-let
-
-  src = pkgs.fetchFromGitHub {
-    owner = "sharplispers";
-    repo = "parse-number";
-    rev = "7707b224c4b941c2cbd28459113534242cee3a31";
-    sha256 = "0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7";
-  };
-
+let src = with pkgs; srcOnly lispPackages.parse-number;
 in depot.nix.buildLisp.library {
   name = "parse-number";
   srcs = map (f: src + ("/" + f)) [
diff --git a/third_party/lisp/parseq.nix b/third_party/lisp/parseq.nix
index fe045d52996f..23c67c2d9c30 100644
--- a/third_party/lisp/parseq.nix
+++ b/third_party/lisp/parseq.nix
@@ -1,13 +1,6 @@
 { depot, pkgs, ... }:
 
-let
-  src = pkgs.fetchFromGitHub {
-    owner = "mrossini-ethz";
-    repo = "parseq";
-    rev = "5cd95b324b68255d89f27f8065f4c29674558b26";
-    sha256 = "1f3vvxgyiv0xn2hzafhh63l3gnvn2vaxr5pi3ld7d340mka2ndg0";
-  };
-
+let src = with pkgs; srcOnly lispPackages.parseq;
 in depot.nix.buildLisp.library {
   name = "parseq";
 
diff --git a/third_party/lisp/physical-quantities.nix b/third_party/lisp/physical-quantities.nix
index b8079e8ebaaf..d594ff1a1cf7 100644
--- a/third_party/lisp/physical-quantities.nix
+++ b/third_party/lisp/physical-quantities.nix
@@ -1,13 +1,6 @@
 { depot, pkgs, ... }:
 
-let
-  src = pkgs.fetchFromGitHub {
-    owner = "mrossini-ethz";
-    repo = "physical-quantities";
-    rev = "v0.2.1";
-    sha256 = "0mb2s94s6fhw5vfa89naalw7ld11sdsszlqpz0c65dvpfyfmmdmh";
-  };
-
+let src = with pkgs; srcOnly lispPackages.physical-quantities;
 in depot.nix.buildLisp.library {
   name = "physical-quantities";
 
diff --git a/third_party/lisp/postmodern.nix b/third_party/lisp/postmodern.nix
index 333a9d9b770f..b2ea318f8a40 100644
--- a/third_party/lisp/postmodern.nix
+++ b/third_party/lisp/postmodern.nix
@@ -2,13 +2,7 @@
 
 let
   inherit (depot.nix.buildLisp) bundled;
-
-  src = pkgs.fetchFromGitHub {
-    owner = "marijnh";
-    repo = "Postmodern";
-    rev = "v1.32";
-    sha256 = "0prwmpixcqpzqd67v77cs4zgbs73a10m6hs7q0rpv0z1qm7mqfcb";
-  };
+  src = with pkgs; srcOnly lispPackages.postmodern;
 
   cl-postgres = depot.nix.buildLisp.library {
     name = "cl-postgres";
@@ -24,13 +18,15 @@ let
     srcs = map (f: src + ("/cl-postgres/" + f)) [
       "package.lisp"
       "features.lisp"
+      "config.lisp"
+      "oid.lisp"
       "errors.lisp"
+      "data-types.lisp"
       "sql-string.lisp"
       "trivial-utf-8.lisp"
       "strings-utf-8.lisp"
       "communicate.lisp"
       "messages.lisp"
-      "oid.lisp"
       "ieee-floats.lisp"
       "interpret.lisp"
       "saslprep.lisp"
@@ -50,6 +46,7 @@ let
 
     srcs = map (f: src + ("/s-sql/" + f)) [
       "package.lisp"
+      "config.lisp"
       "s-sql.lisp"
     ];
   };
@@ -72,7 +69,9 @@ let
       "${src}/postmodern.asd"
     ] ++ (map (f: src + ("/postmodern/" + f)) [
       "package.lisp"
+      "config.lisp"
       "connect.lisp"
+      "json-encoder.lisp"
       "query.lisp"
       "prepare.lisp"
       "roles.lisp"
diff --git a/third_party/lisp/prove.nix b/third_party/lisp/prove.nix
index 358049865efb..af481499207f 100644
--- a/third_party/lisp/prove.nix
+++ b/third_party/lisp/prove.nix
@@ -1,11 +1,6 @@
 { depot, pkgs, ... }:
 
-let
-  src = pkgs.fetchgit {
-    url = "https://github.com/fukamachi/prove.git";
-    rev = "5d71f02795b89e36f34e8c7d50e69b67ec6ca2de";
-    hash = "sha256:0ca6ha3zhmckq3ad9lxm6sbg4i0hg3m81xhan4dkxd3x9898jzpc";
-  };
+let src = with pkgs; srcOnly lispPackages.prove;
 in depot.nix.buildLisp.library {
   name = "prove";
 
diff --git a/third_party/lisp/puri.nix b/third_party/lisp/puri.nix
index 925b457f9f03..f7146ba93f1f 100644
--- a/third_party/lisp/puri.nix
+++ b/third_party/lisp/puri.nix
@@ -1,11 +1,7 @@
 # Portable URI library
 { depot, pkgs, ... }:
 
-let src = pkgs.fetchgit {
-  url = "http://git.kpe.io/puri.git";
-  rev = "4bbab89d9ccbb26346899d1f496c97604fec567b";
-  sha256 = "0gq2rsr0aihs0z20v4zqvmdl4szq53b52rh97pvnmwrlbn4mapmd";
-};
+let src = with pkgs; srcOnly lispPackages.puri;
 in depot.nix.buildLisp.library {
   name = "puri";
   srcs = [
diff --git a/third_party/lisp/rfc2388.nix b/third_party/lisp/rfc2388.nix
index 6af55f927001..b82a490c9d71 100644
--- a/third_party/lisp/rfc2388.nix
+++ b/third_party/lisp/rfc2388.nix
@@ -1,12 +1,7 @@
 # Implementation of RFC2388 (multipart/form-data)
 { depot, pkgs, ... }:
 
-let src = pkgs.fetchFromGitHub {
-  owner = "jdz";
-  repo = "rfc2388";
-  rev = "591bcf7e77f2c222c43953a80f8c297751dc0c4e";
-  sha256 = "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k";
-};
+let src = with pkgs; srcOnly lispPackages.rfc2388;
 in depot.nix.buildLisp.library {
   name = "rfc2388";
 
diff --git a/third_party/lisp/s-sysdeps.nix b/third_party/lisp/s-sysdeps.nix
index 571eb147c724..9c4da4a02b25 100644
--- a/third_party/lisp/s-sysdeps.nix
+++ b/third_party/lisp/s-sysdeps.nix
@@ -1,12 +1,7 @@
 # A Common Lisp abstraction layer over platform dependent functionality.
 { depot, pkgs, ... }:
 
-let src = pkgs.fetchFromGitHub {
-  owner = "svenvc";
-  repo = "s-sysdeps";
-  rev = "d28246b5dffef9e73a0e0e6cfbc4e878006fe34d";
-  sha256 = "14b69b81yrxmjlvmm3lfxk04x5v7hqz4fql121334wh72czznfh9";
-};
+let src = with pkgs; srcOnly lispPackages.s-sysdeps;
 in depot.nix.buildLisp.library {
   name = "s-sysdeps";
 
@@ -14,4 +9,10 @@ in depot.nix.buildLisp.library {
     "${src}/src/package.lisp"
     "${src}/src/sysdeps.lisp"
   ];
+
+  deps = with depot.third_party.lisp; [
+    bordeaux-threads
+    usocket
+    usocket-server
+  ];
 }
diff --git a/third_party/lisp/split-sequence.nix b/third_party/lisp/split-sequence.nix
index 105646386fd3..4e8f723c3182 100644
--- a/third_party/lisp/split-sequence.nix
+++ b/third_party/lisp/split-sequence.nix
@@ -1,10 +1,7 @@
 # split-sequence is a library for, well, splitting sequences apparently.
-{ depot, ... }:
+{ depot, pkgs, ... }:
 
-let src = builtins.fetchGit {
-  url = "https://github.com/sharplispers/split-sequence.git";
-  rev = "41c0fc79a5a2871d16e5727969a8f699ef44d791";
-};
+let src = with pkgs; srcOnly lispPackages.split-sequence;
 in depot.nix.buildLisp.library {
   name = "split-sequence";
   srcs = map (f: src + ("/" + f)) [
diff --git a/third_party/lisp/trivial-features.nix b/third_party/lisp/trivial-features.nix
index 13a63bab1aba..02abac54a853 100644
--- a/third_party/lisp/trivial-features.nix
+++ b/third_party/lisp/trivial-features.nix
@@ -1,9 +1,6 @@
-{ depot, ... }:
+{ depot, pkgs, ... }:
 
-let src = builtins.fetchGit {
-  url = "https://github.com/trivial-features/trivial-features.git";
-  rev = "f6e8dd7268ae0137dbde4be469101a7f735f6416"; # 2021-02-28
-};
+let src = with pkgs; srcOnly lispPackages.trivial-features;
 in depot.nix.buildLisp.library {
   name = "trivial-features";
   srcs = [
diff --git a/third_party/lisp/trivial-garbage.nix b/third_party/lisp/trivial-garbage.nix
index e5b3550de7ba..74224df60d91 100644
--- a/third_party/lisp/trivial-garbage.nix
+++ b/third_party/lisp/trivial-garbage.nix
@@ -1,11 +1,8 @@
 # trivial-garbage provides a portable API to finalizers, weak
 # hash-tables and weak pointers
-{ depot, ... }:
+{ depot, pkgs, ... }:
 
-let src = builtins.fetchGit {
-  url = "https://github.com/trivial-garbage/trivial-garbage.git";
-  rev = "dbc8e35acb0176b9a14fdc1027f5ebea93435a84";
-};
+let src = with pkgs; srcOnly lispPackages.trivial-garbage;
 in depot.nix.buildLisp.library {
   name = "trivial-garbage";
   srcs = [ (src + "/trivial-garbage.lisp") ];
diff --git a/third_party/lisp/trivial-gray-streams.nix b/third_party/lisp/trivial-gray-streams.nix
index b5722f9a685a..62a30f1e94f3 100644
--- a/third_party/lisp/trivial-gray-streams.nix
+++ b/third_party/lisp/trivial-gray-streams.nix
@@ -1,10 +1,7 @@
 # Portability library for CL gray streams.
-{ depot, ... }:
+{ depot, pkgs, ... }:
 
-let src = builtins.fetchGit {
-  url = "https://github.com/trivial-gray-streams/trivial-gray-streams.git";
-  rev = "ebd59b1afed03b9dc8544320f8f432fdf92ab010";
-};
+let src = with pkgs; srcOnly lispPackages.trivial-gray-streams;
 in depot.nix.buildLisp.library {
   name = "trivial-gray-streams";
   srcs = [
diff --git a/third_party/lisp/trivial-indent.nix b/third_party/lisp/trivial-indent.nix
index 65d98604d78c..70a6e19d48a9 100644
--- a/third_party/lisp/trivial-indent.nix
+++ b/third_party/lisp/trivial-indent.nix
@@ -1,13 +1,6 @@
-
 { depot, pkgs, ... }:
 
-let
-  src = pkgs.fetchFromGitHub {
-    owner = "Shinmera";
-    repo = "trivial-indent";
-    rev = "2d016941751647c6cc5bd471751c2cf68861c94a";
-    sha256 = "1sj90nqz17w4jq0ixz00gb9g5g6d2s7l8r17zdby27gxxh51w266";
-  };
+let src = with pkgs; srcOnly lispPackages.trivial-indent;
 in depot.nix.buildLisp.library {
   name = "trivial-indent";
 
diff --git a/third_party/lisp/trivial-mimes.nix b/third_party/lisp/trivial-mimes.nix
index ce45993d05e9..04e8b5ef5d10 100644
--- a/third_party/lisp/trivial-mimes.nix
+++ b/third_party/lisp/trivial-mimes.nix
@@ -1,12 +1,7 @@
 { depot, pkgs, ... }:
 
 let
-  src = pkgs.fetchFromGitHub {
-    owner = "Shinmera";
-    repo = "trivial-mimes";
-    rev = "a741fc2f567a4f86b853fd4677d75e62c03e51d9";
-    sha256 = "00kcm17q5plpzdj1qwg83ldhxksilgpcdkf3m9azxcdr968xs9di";
-  };
+  src = with pkgs; srcOnly lispPackages.trivial-mimes;
 
   mime-types = pkgs.runCommand "mime-types.lisp" {} ''
     substitute ${src}/mime-types.lisp $out \
diff --git a/third_party/lisp/uax-15.nix b/third_party/lisp/uax-15.nix
index a13e5c1690d3..1e44f88d5cb7 100644
--- a/third_party/lisp/uax-15.nix
+++ b/third_party/lisp/uax-15.nix
@@ -3,16 +3,7 @@
 let
   inherit (pkgs) runCommand;
   inherit (depot.nix.buildLisp) bundled;
-
-  src = pkgs.fetchFromGitHub {
-    owner = "sabracrolleton";
-    repo = "uax-15";
-    rev = "a62fc7253663fac6467fc6b6bb69a73a0e8dfaa0";
-    sha256 = "028kc3yfi29qjxs2nyr7dbrr2rcrr8lwpvbxvrq3g8bcwamc4jz4";
-  };
-
-  # src = ../../../uax-15;
-
+  src = with pkgs; srcOnly lispPackages.uax-15;
 in depot.nix.buildLisp.library {
   name = "uax-15";
 
@@ -23,22 +14,28 @@ in depot.nix.buildLisp.library {
   ];
 
   srcs = [
-    "${src}/uax-15.asd"
     "${src}/src/package.lisp"
     "${src}/src/utilities.lisp"
     "${src}/src/trivial-utf-16.lisp"
+
+    # uax-15 has runtime data files that need to have their references
+    # replaced with store paths.
+    #
+    # additionally there are some wonky variable usages of variables
+    # that are never defined, for which we patch in defvar statements.
     (runCommand "precomputed-tables.lisp" {} ''
       substitute ${src}/src/precomputed-tables.lisp precomputed-tables.lisp \
         --replace "(asdf:system-source-directory (asdf:find-system 'uax-15 nil))" \
                   '"${src}/"'
 
       sed -i precomputed-tables.lisp \
-        -e '17i(defvar *canonical-decomp-map*)' \
-        -e '17i(defvar *compatible-decomp-map*)' \
-        -e '17i(defvar *canonical-combining-class*)'
+        -e '10i(defvar *canonical-decomp-map*)' \
+        -e '10i(defvar *compatible-decomp-map*)' \
+        -e '10i(defvar *canonical-combining-class*)'
 
       cp precomputed-tables.lisp $out
     '')
+
     "${src}/src/normalize-backend.lisp"
     "${src}/src/uax-15.lisp"
   ];
diff --git a/third_party/lisp/unix-opts.nix b/third_party/lisp/unix-opts.nix
index 389de25eff4f..e52eab959d3e 100644
--- a/third_party/lisp/unix-opts.nix
+++ b/third_party/lisp/unix-opts.nix
@@ -1,13 +1,8 @@
 # unix-opts is a portable command line argument parser
 { depot, pkgs, ...}:
 
-let
-  src = pkgs.fetchFromGitHub {
-    owner = "libre-man";
-    repo = "unix-opts";
-    rev = "b805050b074bd860edd18cfc8776fdec666ec36e";
-    sha256 = "0j93dkc9f77wz1zfspm7q1scx6wwbm6jhk8vl2rm6bfd0n8scxla";
-  };
+
+let src = with pkgs; srcOnly lispPackages.unix-opts;
 in depot.nix.buildLisp.library {
   name = "unix-opts";
 
diff --git a/third_party/lisp/usocket-server.nix b/third_party/lisp/usocket-server.nix
new file mode 100644
index 000000000000..f2f11d7a17c8
--- /dev/null
+++ b/third_party/lisp/usocket-server.nix
@@ -0,0 +1,18 @@
+# Universal socket library for Common Lisp (server side)
+{ depot, pkgs, ... }:
+
+let
+  inherit (depot.nix) buildLisp;
+  src = with pkgs; srcOnly lispPackages.usocket-server;
+in buildLisp.library {
+  name = "usocket-server";
+
+  deps = with depot.third_party.lisp; [
+    usocket
+    bordeaux-threads
+  ];
+
+  srcs = [
+    "${src}/server.lisp"
+  ];
+}
diff --git a/third_party/lisp/usocket.nix b/third_party/lisp/usocket.nix
index dc4281c795c0..335954978494 100644
--- a/third_party/lisp/usocket.nix
+++ b/third_party/lisp/usocket.nix
@@ -3,13 +3,7 @@
 
 let
   inherit (depot.nix) buildLisp;
-
-  src = pkgs.fetchFromGitHub {
-    owner = "usocket";
-    repo = "usocket";
-    rev = "fdf4fd1e0051ce83340ccfbbc8a43a462bb19cf2";
-    sha256 = "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826";
-  };
+  src = with pkgs; srcOnly lispPackages.usocket;
 in buildLisp.library {
   name = "usocket";
   deps = with depot.third_party.lisp; [