diff options
author | Brad Jensen <brad@bradjensen.net> | 2017-07-31 19:29:53 -0700 |
---|---|---|
committer | Brad Jensen <brad@bradjensen.net> | 2017-08-31 20:10:18 -0700 |
commit | f0c8027ae35139a171b04524b2e33c60aea23c5b (patch) | |
tree | 953572f2462e66c32c566a1753d90d9ff3623e37 /pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix | |
parent | 86e6e8016d0f9280167745c19d394311be0f9002 (diff) | |
download | nixpkgs-f0c8027ae35139a171b04524b2e33c60aea23c5b.tar nixpkgs-f0c8027ae35139a171b04524b2e33c60aea23c5b.tar.gz nixpkgs-f0c8027ae35139a171b04524b2e33c60aea23c5b.tar.bz2 nixpkgs-f0c8027ae35139a171b04524b2e33c60aea23c5b.tar.lz nixpkgs-f0c8027ae35139a171b04524b2e33c60aea23c5b.tar.xz nixpkgs-f0c8027ae35139a171b04524b2e33c60aea23c5b.tar.zst nixpkgs-f0c8027ae35139a171b04524b2e33c60aea23c5b.zip |
Overhaul quicklisp-to-nix
1. Detect (and automatically handle) parasitic systems. 2. Each nix package has only one asd, and (almost) every parasitic package inside it builds. 3. Ensure that parasitic systems are compiled. 4. Remove unnecessary testnames lisp override mechanism (the testnae/testSystem is replaced by parasites/buildSystems). 5. Parasitic systems (if included in the system closure) become aliases to their host package. 6. Support caching fasl files in a known directory (for faster re-generation after modifying quicklisp-to-nix-system-info). 7. Eliminate unnecessary overrides. We're going to determine ALL lisp dependencies correctly. 8. Don't try to "build" lisp packages with make. lispPackages should be about bringing in a lisp library. 9. Eliminate the hand-maintained list of aliases. Parasites should become aliases. Everything else should be a real package.
Diffstat (limited to 'pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix')
-rw-r--r-- | pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix | 130 |
1 files changed, 7 insertions, 123 deletions
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix index 877389811d0..6ea0a2166e3 100644 --- a/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix +++ b/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix @@ -5,7 +5,6 @@ let skipBuildPhase = x: { overrides = y: ((x.overrides y) // { buildPhase = "true"; }); }; - qlnp = quicklisp-to-nix-packages; multiOverride = l: x: if l == [] then {} else ((builtins.head l) x) // (multiOverride (builtins.tail l) x); in @@ -23,9 +22,6 @@ in cp "$out/lib/common-lisp/stumpwm/stumpwm" "$out/bin" ''; }; - propagatedBuildInputs = (x.propagatedBuildInputs or []) ++ (with qlnp; [ - alexandria cl-ppcre clx - ]); }; iterate = skipBuildPhase; cl-fuse = x: { @@ -45,84 +41,16 @@ in iolib = x: rec { propagatedBuildInputs = (x.propagatedBuildInputs or []) ++ (with pkgs; [libfixposix gcc]) - ++ (with qlnp; [ - alexandria split-sequence cffi bordeaux-threads idna swap-bytes - ]) ; - testSystems = ["iolib" "iolib/syscalls" "iolib/multiplex" "iolib/streams" - "iolib/zstreams" "iolib/sockets" "iolib/trivial-sockets" - "iolib/pathnames" "iolib/os"]; - - version = "0.8.3"; - src = pkgs.fetchFromGitHub { - owner = "sionescu"; - repo = "iolib"; - rev = "v${version}"; - sha256 = "0pa86bf3jrysnmhasbc0lm6cid9xzril4jsg02g3gziav1xw5x2m"; - }; }; - iolib_slash_syscalls = x: rec { - propagatedBuildInputs = (x.propagatedBuildInputs or []) - ++ (with pkgs; [libfixposix gcc]) - ++ (with qlnp; [ - alexandria split-sequence cffi bordeaux-threads idna swap-bytes - ]) - ; - testSystems = ["iolib" "iolib/syscalls" "iolib/multiplex" "iolib/streams" - "iolib/zstreams" "iolib/sockets" "iolib/trivial-sockets" - "iolib/pathnames" "iolib/os"]; - - version = "0.8.3"; - src = pkgs.fetchFromGitHub { - owner = "sionescu"; - repo = "iolib"; - rev = "v${version}"; - sha256 = "0pa86bf3jrysnmhasbc0lm6cid9xzril4jsg02g3gziav1xw5x2m"; - }; - }; - cl-unicode = addDeps (with qlnp; [cl-ppcre flexi-streams]); - clack = addDeps (with qlnp;[lack bordeaux-threads prove]); - clack-v1-compat = addDeps (with qlnp;[ - lack bordeaux-threads prove usocket dexador http-body trivial-backtrace - marshal local-time cl-base64 cl-ppcre quri trivial-mimes trivial-types - flexi-streams circular-streams ironclad cl-syntax-annot alexandria - split-sequence - ]); - lack = addDeps (with qlnp; [ironclad]); - cxml = multiOverride [ skipBuildPhase (addDeps (with qlnp; [ - closure-common puri trivial-gray-streams - ]))]; - wookie = multiOverride [(addDeps (with qlnp; [ - alexandria blackbird cl-async chunga fast-http quri babel cl-ppcre - cl-fad fast-io vom do-urlencode cl-async-ssl - ])) - (addNativeLibs (with pkgs; [libuv openssl]))]; - woo = addDeps (with qlnp; [ - cffi lev clack swap-bytes static-vectors fast-http proc-parse quri fast-io - trivial-utf-8 vom - ]); + cxml = skipBuildPhase; + wookie = addNativeLibs (with pkgs; [libuv openssl]); lev = addNativeLibs [pkgs.libev]; - dexador = addDeps (with qlnp; [ - usocket fast-http quri fast-io chunga cl-ppcre cl-cookie trivial-mimes - chipz cl-base64 cl-reexport qlnp."cl+ssl" alexandria bordeaux-threads - ]); - fast-http = addDeps (with qlnp; [ - alexandria cl-utilities proc-parse xsubseq smart-buffer - ]); - cl-emb = addDeps (with qlnp; [cl-ppcre]); "cl+ssl" = addNativeLibs [pkgs.openssl]; cl-colors = skipBuildPhase; cl-libuv = addNativeLibs [pkgs.libuv]; - cl-async = addDeps (with qlnp; [cl-async-base]); - cl-async-ssl = multiOverride [(addDeps (with qlnp; [cl-async-base])) - (addNativeLibs [pkgs.openssl])]; - cl-async-repl = addDeps (with qlnp; [cl-async]); - cl-async-base = addDeps (with qlnp; [ - cffi fast-io vom cl-libuv cl-ppcre trivial-features static-vectors - trivial-gray-streams babel - ]); - cl-async-util = addDeps (with qlnp; [ cl-async-base ]); - css-lite = addDeps (with qlnp; [parenscript]); + cl-async-ssl = addNativeLibs [pkgs.openssl]; + cl-async-test = addNativeLibs [pkgs.openssl]; clsql = x: { propagatedBuildInputs = with pkgs; [mysql postgresql sqlite zlib]; overrides = y: (x.overrides y) // { @@ -146,17 +74,7 @@ in ''; }; }; - cffi = multiOverride [(addNativeLibs [pkgs.libffi]) - (addDeps (with qlnp; [uffi uiop trivial-features]))]; - cl-vectors = addDeps (with qlnp; [zpb-ttf]); - cl-paths-ttf = addDeps (with qlnp; [zpb-ttf]); - "3bmd" = addDeps (with qlnp; [esrap split-sequence]); - cl-dbi = addDeps (with qlnp; [ - cl-syntax cl-syntax-annot split-sequence closer-mop bordeaux-threads - ]); - dbd-sqlite3 = addDeps (with qlnp; [cl-dbi]); - dbd-postgres = addDeps (with qlnp; [cl-dbi]); - dbd-mysql = addDeps (with qlnp; [cl-dbi]); + cffi = addNativeLibs [pkgs.libffi]; cl-mysql = addNativeLibs [pkgs.mysql]; cl-ppcre-template = x: { overrides = y: (x.overrides y) // { @@ -164,21 +82,10 @@ in ln -s lib-dependent/*.asd . ''; }; - propagatedBuildInputs = (x.propagatedBuildInputs or []) ++ (with qlnp; [ - cl-ppcre - ]); }; - cl-unification = addDeps (with qlnp; [cl-ppcre]); - cl-syntax-annot = addDeps (with qlnp; [cl-syntax]); - cl-syntax-anonfun = addDeps (with qlnp; [cl-syntax]); - cl-syntax-markup = addDeps (with qlnp; [cl-syntax]); - cl-test-more = addDeps (with qlnp; [prove]); - babel-streams = addDeps (with qlnp; [babel trivial-gray-streams]); - babel = addDeps (with qlnp; [trivial-features alexandria]); - plump = addDeps (with qlnp; [array-utils trivial-indent]); sqlite = addNativeLibs [pkgs.sqlite]; uiop = x: { - testSystems = (x.testSystems or ["uiop"]) ++ [ + parasites = (x.parasites or []) ++ [ "uiop/version" ]; overrides = y: (x.overrides y) // { @@ -192,28 +99,5 @@ in postConfigure = "rm GNUmakefile"; }; }; - esrap = addDeps (with qlnp; [alexandria]); - fast-io = addDeps (with qlnp; [ - alexandria trivial-gray-streams static-vectors - ]); - hu_dot_dwim_dot_def = addDeps (with qlnp; [ - hu_dot_dwim_dot_asdf alexandria anaphora iterate metabang-bind - ]); - ironclad = addDeps (with qlnp; [nibbles flexi-streams]); - ixf = addDeps (with qlnp; [ - split-sequence md5 alexandria babel local-time cl-ppcre ieee-floats - ]); - jonathan = addDeps (with qlnp; [ - cl-syntax cl-syntax-annot fast-io proc-parse cl-ppcre - ]); - local-time = addDeps (with qlnp; [cl-fad]); - lquery = addDeps (with qlnp; [array-utils form-fiddle plump clss]); - clss = addDeps (with qlnp; [array-utils plump]); - form-fiddle = addDeps (with qlnp; [documentation-utils]); - documentation-utils = addDeps (with qlnp; [trivial-indent]); - mssql = x: { - testSystems = []; - }; - cl-postgres = addDeps (with qlnp; [cl-ppcre md5]); - postmodern = addDeps (with qlnp; [md5]); + mssql = addNativeLibs [pkgs.freetds]; } |