diff --git a/pkgs/development/lisp-modules/nix-cl.nix b/pkgs/development/lisp-modules/nix-cl.nix index 6bec2c3513db..e97cc9892830 100644 --- a/pkgs/development/lisp-modules/nix-cl.nix +++ b/pkgs/development/lisp-modules/nix-cl.nix @@ -215,18 +215,22 @@ let # save-lisp-and-die binaries in the past dontStrip = true; - } // (args // { + } // (args // (let + isJVM = args.pkg.pname == "abcl"; + javaLibs = lib.optionals isJVM args.javaLibs or []; + in { pname = "${args.pkg.pname}-${args.pname}"; src = if builtins.length (args.patches or []) > 0 then pkgs.applyPatches { inherit (args) src patches; } else args.src; patches = []; + inherit javaLibs; propagatedBuildInputs = args.propagatedBuildInputs or [] ++ lispLibs ++ javaLibs ++ nativeLibs; meta = (args.meta or {}) // { maintainers = args.meta.maintainers or lib.teams.lisp.members; }; - })) // { + }))) // { # Useful for overriding # Overriding code would prefer to use pname from the attribute set # However, pname is extended with the implementation name diff --git a/pkgs/development/lisp-modules/packages.nix b/pkgs/development/lisp-modules/packages.nix index 3c2a52273ea8..9326e23fc7b9 100644 --- a/pkgs/development/lisp-modules/packages.nix +++ b/pkgs/development/lisp-modules/packages.nix @@ -43,46 +43,12 @@ let src = build; }); - # A little hacky - isJVM = spec.pkg.pname == "abcl"; - # Makes it so packages imported from Quicklisp can be re-used as # lispLibs ofpackages in this file. ql = quicklispPackagesFor spec; packages = ql.overrideScope (self: super: { - cffi = let - jna = pkgs.fetchMavenArtifact { - groupId = "net.java.dev.jna"; - artifactId = "jna"; - version = "5.9.0"; - sha256 = "0qbis8acv04fi902qzak1mbagqaxcsv2zyp7b8y4shs5nj0cgz7a"; - }; - in build-asdf-system { - src = pkgs.fetchzip { - url = "http://beta.quicklisp.org/archive/cffi/2021-04-11/cffi_0.24.1.tgz"; - sha256 = "17ryim4xilb1rzxydfr7595dnhqkk02lmrbkqrkvi9091shi4cj3"; - }; - version = "0.24.1"; - pname = "cffi"; - lispLibs = with super; [ - alexandria - babel - trivial-features - ]; - javaLibs = optionals isJVM [ jna ]; - }; - - cffi-libffi = build-asdf-system { - inherit (super.cffi-libffi) pname version asds lispLibs nativeLibs nativeBuildInputs; - src = pkgs.fetchzip { - url = "https://github.com/cffi/cffi/archive/3f842b92ef808900bf20dae92c2d74232c2f6d3a.tar.gz"; - sha256 = "1jilvmbbfrmb23j07lwmkbffc6r35wnvas5s4zjc84i856ccclm2"; - }; - patches = optionals stdenv.isDarwin [ ./patches/cffi-libffi-darwin-ffi-h.patch ]; - }; - cl-environments = super.cl-environments.overrideLispAttrs (old: { patches = old.patches or [] ++ [ # Needed because SB-INT:TRULY-DYNAMIC-EXTENT has been removed since sbcl 2.3.10. diff --git a/pkgs/development/lisp-modules/ql.nix b/pkgs/development/lisp-modules/ql.nix index 33e4c5168376..a745bfd4fe20 100644 --- a/pkgs/development/lisp-modules/ql.nix +++ b/pkgs/development/lisp-modules/ql.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, build-asdf-system, ... }: +{ pkgs, lib, stdenv, build-asdf-system, ... }: let @@ -73,9 +73,20 @@ let lla = super.lla.overrideLispAttrs (o: { nativeLibs = [ pkgs.openblas ]; }); + cffi = super.cffi.overrideLispAttrs (o: { + javaLibs = [ + (pkgs.fetchMavenArtifact { + groupId = "net.java.dev.jna"; + artifactId = "jna"; + version = "5.9.0"; + sha256 = "0qbis8acv04fi902qzak1mbagqaxcsv2zyp7b8y4shs5nj0cgz7a"; + }) + ]; + }); cffi-libffi = super.cffi-libffi.overrideLispAttrs (o: { nativeBuildInputs = [ pkgs.libffi ]; nativeLibs = [ pkgs.libffi ]; + patches = lib.optionals stdenv.isDarwin [ ./patches/cffi-libffi-darwin-ffi-h.patch ]; }); cl-rabbit = super.cl-rabbit.overrideLispAttrs (o: { nativeBuildInputs = [ pkgs.rabbitmq-c ];