Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
15 kB · 550 lines
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551{ build-asdf-system, spec, quicklispPackagesFor, stdenv, pkgs, ...}:
let
inherit (pkgs.lib) head makeLibraryPath makeSearchPath setAttr hasAttr optionals optionalAttrs isDerivation hasSuffix splitString remove ;
# Used by builds that would otherwise attempt to write into storeDir. # # Will run build two times, keeping all files created during the # first run, exept the FASL's. Then using that directory tree as the # source of the second run. # # E.g. cl-unicode creating .txt files during compilation build-with-compile-into-pwd = args: let args' = if isDerivation args then args.drvAttrs else args; build = (build-asdf-system (args' // { version = args'.version + "-build"; })).overrideAttrs (o: { buildPhase = with builtins; '' runHook preBuild
mkdir __fasls export ASDF_OUTPUT_TRANSLATIONS="$(pwd):$(pwd)/__fasls:${storeDir}:${storeDir}" export CL_SOURCE_REGISTRY=$CL_SOURCE_REGISTRY:$(pwd)// ${o.pkg}/bin/${o.program} ${toString (o.flags or [ ])} < ${o.buildScript}
runHook postBuild ''; installPhase = '' runHook preInstall
mkdir -pv $out rm -rf __fasls cp -r * $out
runHook postInstall ''; }); in build-asdf-system ( args' // { # Patches are already applied in `build` patches = [ ]; postPatch = ""; src = build; } );
# 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: {
cl-unicode = build-with-compile-into-pwd { inherit (super.cl-unicode) pname version src systems ; lispLibs = super.cl-unicode.lispLibs ++ [ self.flexi-streams ]; };
jzon = super.com_dot_inuoe_dot_jzon;
cl-notify = build-asdf-system { pname = "cl-notify"; version = "20080904-138ca7038"; src = pkgs.fetchzip { url = "https://repo.or.cz/cl-notify.git/snapshot/138ca703861f4a1fbccbed557f92cf4d213668a1.tar.gz"; sha256 = "0k6ns6fzvjcbpsqgx85r4g5m25fvrdw9481i9vyabwym9q8bbqwx"; }; lispLibs = [ self.cffi ]; nativeLibs = [ pkgs.libnotify ]; };
cl-liballegro-nuklear = build-with-compile-into-pwd super.cl-liballegro-nuklear;
lessp = build-asdf-system { pname = "lessp"; version = "0.2-f8a9e4664"; src = pkgs.fetchzip { url = "https://github.com/facts-db/cl-lessp/archive/632217602b85b679e8d420654a0aa39e798ca3b5.tar.gz"; sha256 = "0i3ia14dzqwjpygd0zn785ff5vqnnmkn75psfpyx0ni3jr71lkq9"; }; };
rollback = build-asdf-system { pname = "rollback"; version = "0.1-5d3f21fda"; src = pkgs.fetchzip { url = "https://github.com/facts-db/cl-rollback/archive/5d3f21fda8f04f35c5e9d20ee3b87db767915d15.tar.gz"; sha256 = "12dpxsbm2al633y87i8p784k2dn4bbskz6sl40v9f5ljjmjqjzxf"; }; };
facts = build-asdf-system { pname = "facts"; version = "0.1-632217602"; src = pkgs.fetchzip { url = "https://beta.quicklisp.org/archive/cl-facts/2022-11-06/cl-facts-20221106-git.tgz"; sha256 = "sha256-PBpyyJYkq1NjKK9VikSAL4TmrGRwUJlEWRSeKj/f4Sc="; }; lispLibs = [ self.lessp self.rollback self.local-time ]; };
cl-fuse = build-with-compile-into-pwd { inherit (super.cl-fuse) pname version src lispLibs ; nativeBuildInputs = [ pkgs.fuse ]; nativeLibs = [ pkgs.fuse ]; };
cl-containers = build-asdf-system { inherit (super.cl-containers) pname version src; lispLibs = super.cl-containers.lispLibs ++ [ self.moptilities ]; systems = [ "cl-containers" "cl-containers/with-moptilities" ]; };
swank = build-with-compile-into-pwd rec { inherit (super.swank) pname lispLibs; version = "2.29.1"; src = pkgs.fetchFromGitHub { owner = "slime"; repo = "slime"; rev = "v${version}"; hash = "sha256-5hNB5XxbTER4HX3dn4umUGnw6UeiTQkczmggFz4uWoE="; }; systems = [ "swank" "swank/exts" ]; patches = [ ./patches/swank-pure-paths.patch ]; postConfigure = '' substituteAllInPlace swank-loader.lisp ''; };
slynk = build-asdf-system { pname = "slynk"; version = "trunk"; src = pkgs.fetchFromGitHub { owner = "joaotavora"; repo = "sly"; rev = "ba40c8f054ec3b7040a6c36a1ef3e9596b936421"; hash = "sha256-hoaCZtyezuXptDPnAvBTT0SZ14M9Ifrmki3beBOwFmI="; }; systems = [ "slynk" "slynk/arglists" "slynk/fancy-inspector" "slynk/package-fu" "slynk/mrepl" "slynk/trace-dialog" "slynk/profiler" "slynk/stickers" "slynk/indentation" "slynk/retro" ]; };
cephes = build-with-compile-into-pwd { inherit (super.cephes) pname version src lispLibs ; patches = [ ./patches/cephes-make.patch ]; postPatch = '' find \( -name '*.dll' -o -name '*.dylib' -o -name '*.so' \) -delete ''; postConfigure = '' substituteAllInPlace cephes.asd ''; postInstall = '' find $out -name '*.o' -delete ''; };
clx-truetype = build-asdf-system { pname = "clx-truetype"; version = "20160825-git"; src = pkgs.fetchzip { url = "http://beta.quicklisp.org/archive/clx-truetype/2016-08-25/clx-truetype-20160825-git.tgz"; sha256 = "079hyp92cjkdfn6bhkxsrwnibiqbz4y4af6nl31lzw6nm91j5j37"; }; lispLibs = with self; [ alexandria bordeaux-threads cl-aa cl-fad cl-paths cl-paths-ttf cl-store cl-vectors clx trivial-features zpb-ttf ]; };
mathkit = build-asdf-system { inherit (super.mathkit) pname version src asds ; lispLibs = super.mathkit.lispLibs ++ [ super.sb-cga ]; };
stumpwm = super.stumpwm.overrideLispAttrs { inherit (pkgs.stumpwm) src version; meta = { inherit (pkgs.stumpwm.meta) description license homepage; }; };
clfswm = super.clfswm.overrideAttrs (o: { buildScript = pkgs.writeText "build-clfswm.lisp" '' (load "${o.asdfFasl}/asdf.${o.faslExt}") (asdf:load-system 'clfswm) (sb-ext:save-lisp-and-die "clfswm" :executable t #+sb-core-compression :compression #+sb-core-compression t :toplevel #'clfswm:main) ''; installPhase = o.installPhase + '' mkdir -p $out/bin mv $out/clfswm $out/bin ''; });
magicl = build-with-compile-into-pwd { inherit (super.magicl) pname version src lispLibs ; nativeBuildInputs = [ pkgs.gfortran ]; nativeLibs = [ pkgs.openblas ]; };
cl-gtk4 = build-asdf-system { pname = "cl-gtk4"; version = "1.0.0"; src = pkgs.fetchFromGitHub { owner = "bohonghuang"; repo = "cl-gtk4"; rev = "ff60e3495cdbba5c09d0bb8aa49f3184cc060c8e"; hash = "sha256-06cyPf+5z+GE3YvZEJ67kC281nkwRz/hoaykTISsni0="; }; lispLibs = with self; [ cl-gobject-introspection-wrapper cl-glib cl-gio cl-gobject ]; nativeBuildInputs = [ pkgs.gobject-introspection pkgs.gtk4 ]; nativeLibs = [ pkgs.gtk4 ]; };
cl-gtk4_dot_adw = build-asdf-system { pname = "cl-gtk4.adw"; version = self.cl-gtk4.version; src = self.cl-gtk4.src; lispLibs = with self; [ cl-gobject-introspection-wrapper cl-gtk4 ]; nativeBuildInputs = [ pkgs.libadwaita ]; nativeLibs = [ pkgs.libadwaita ]; };
cl-gtk4_dot_webkit = build-asdf-system { pname = "cl-gtk4.webkit"; version = self.cl-gtk4.version; src = self.cl-gtk4.src; lispLibs = with self; [ cl-gobject-introspection-wrapper cl-gtk4 ]; nativeBuildInputs = [ pkgs.webkitgtk_6_0 ]; nativeLibs = [ pkgs.webkitgtk_6_0 ]; };
cl-avro = build-asdf-system { pname = "cl-avro"; version = "trunk"; src = pkgs.fetchFromGitHub { owner = "SahilKang"; repo = "cl-avro"; rev = "b8fa26320fa0ae88390215140d57f9cca937f691"; hash = "sha256-acXsotvKWuffrLbrG9YJ8yZc5E6WC8N0qCFCAiX6N0Q="; }; lispLibs = with self; [ alexandria babel chipz closer-mop ieee-floats flexi-streams local-time local-time-duration md5 salza2 st-json time-interval trivial-extensible-sequences ]; };
frugal-uuid = super.frugal-uuid.overrideLispAttrs (o: { systems = [ "frugal-uuid" "frugal-uuid/non-frugal" "frugal-uuid/benchmark" "frugal-uuid/test" ]; lispLibs = o.lispLibs ++ (with self; [ ironclad babel trivial-clock trivial-benchmark fiveam ]); });
duckdb = super.duckdb.overrideLispAttrs (o: { systems = [ "duckdb" "duckdb/test" "duckdb/benchmark" ]; });
polyclot = build-asdf-system { pname = "polyclot"; version = "trunk"; src = pkgs.fetchfossil { url = "https://fossil.turtleware.eu/fossil.turtleware.eu/polyclot"; rev = "18500c968b1fc1e2a915b5c70b8cddc4a2b54de51da4eedc5454e42bfea3b479"; sha256 = "sha256-KgBL1QQN4iG6d8E9GlKAuxSwkrY6Zy7e1ZzEDGKad+A="; }; systems = [ "eu.turtleware.polyclot" "eu.turtleware.polyclot/demo" ]; lispLibs = with self; [ clim mcclim mcclim-layouts ]; };
kons-9 = build-asdf-system { pname = "kons-9"; version = "trunk"; src = pkgs.fetchFromGitHub { owner = "kaveh808"; repo = "kons-9"; rev = "08770e7fbb839b91fd035f1cd4a50ecc81b42d57"; sha256 = "sha256-Tit/qmOU5+zp43/ecIXGbh4CtgWzltWM7tHdVWkga0k="; }; systems = [ "kons-9" "kons-9/testsuite" ]; patches = [ ./patches/kons-9-fix-testsuite-compilation.patch ]; lispLibs = with self; [ closer-mop trivial-main-thread trivial-backtrace cffi cl-opengl cl-glu cl-glfw3 cl-paths-ttf zpb-ttf cl-vectors origin clobber shasht org_dot_melusina_dot_confidence ]; };
nsb-cga = super.nsb-cga.overrideLispAttrs (oa: { lispLibs = oa.lispLibs ++ [ self.sb-cga ]; });
qlot-cli = build-asdf-system rec { pname = "qlot"; version = "1.5.2";
src = pkgs.fetchFromGitHub { owner = "fukamachi"; repo = "qlot"; rev = "refs/tags/${version}"; hash = "sha256-j9iT25Yz9Z6llCKwwiHlVNKLqwuKvY194LrAzXuljsE="; };
lispLibs = with self; [ archive deflate dexador fuzzy-match ironclad lparallel yason ];
nativeLibs = [ pkgs.openssl ];
nativeBuildInputs = [ pkgs.makeWrapper ];
buildScript = pkgs.writeText "build-qlot-cli" '' (load "${self.qlot-cli.asdfFasl}/asdf.${self.qlot-cli.faslExt}") (asdf:load-system :qlot/command) (asdf:load-system :qlot/subcommands)
;; Use uiop:dump-image instead of sb-ext:dump-image for the image restore hooks (setf uiop:*image-entry-point* #'qlot/cli:main) (uiop:dump-image "qlot" :executable t #+sb-core-compression :compression #+sb-core-compression t) '';
installPhase = '' runHook preInstall
mkdir -p $out/bin cp qlot.asd $out rm *.asd cp -r * $out
mv $out/qlot $out/bin wrapProgram $out/bin/qlot \ --prefix LD_LIBRARY_PATH : $LD_LIBRARY_PATH
runHook postInstall '';
meta.mainProgram = "qlot"; };
fset = super.fset.overrideLispAttrs (oa: { systems = [ "fset" "fset/test" ]; meta = { description = "Functional collections library"; homepage = "https://gitlab.common-lisp.net/fset/fset/-/wikis/home"; license = pkgs.lib.licenses.llgpl21; }; });
thih-coalton = self.coalton; quil-coalton = self.coalton; coalton = super.coalton.overrideLispAttrs (oa: { systems = [ "coalton" "thih-coalton" "quil-coalton" "thih-coalton/tests" "quil-coalton/tests" "coalton/tests" ]; lispLibs = oa.lispLibs ++ [ self.fiasco ]; nativeLibs = [ pkgs.mpfr ]; meta = { description = "Statically typed functional programming language that supercharges Common Lisp"; homepage = "https://coalton-lang.github.io"; license = pkgs.lib.licenses.mit; }; });
} // optionalAttrs pkgs.config.allowAliases { cl-glib_dot_gio = throw "cl-glib_dot_gio was replaced by cl-gio"; cl-gtk4_dot_webkit2 = throw "cl-gtk4_dot_webkit2 was replaced by cl-gtk4_dot_webkit"; stumpwm-unwrapped = throw "stumpwm-unwrapped is now just stumpwm"; } );
inpackages