Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at fix-function-merge 889 lines 25 kB view raw
1{ build-asdf-system, spec, quicklispPackagesFor, stdenv, pkgs, ... }: 2 3let 4 5 inherit (pkgs.lib) 6 head 7 makeLibraryPath 8 makeSearchPath 9 setAttr 10 hasAttr 11 optionals 12 hasSuffix 13 splitString 14 remove 15 ; 16 17 # Used by builds that would otherwise attempt to write into storeDir. 18 # 19 # Will run build two times, keeping all files created during the 20 # first run, exept the FASL's. Then using that directory tree as the 21 # source of the second run. 22 # 23 # E.g. cl-unicode creating .txt files during compilation 24 build-with-compile-into-pwd = args: 25 let 26 build = (build-asdf-system (args // { version = args.version + "-build"; })) 27 .overrideAttrs(o: { 28 buildPhase = with builtins; '' 29 mkdir __fasls 30 export ASDF_OUTPUT_TRANSLATIONS="$(pwd):$(pwd)/__fasls:${storeDir}:${storeDir}" 31 export CL_SOURCE_REGISTRY=$CL_SOURCE_REGISTRY:$(pwd)// 32 ${o.pkg}/bin/${o.program} ${toString (o.flags or [])} < ${o.buildScript} 33 ''; 34 installPhase = '' 35 mkdir -pv $out 36 rm -rf __fasls 37 cp -r * $out 38 ''; 39 }); 40 in build-asdf-system (args // { 41 # Patches are already applied in `build` 42 patches = []; 43 src = build; 44 }); 45 46 # Makes it so packages imported from Quicklisp can be re-used as 47 # lispLibs ofpackages in this file. 48 ql = quicklispPackagesFor spec; 49 50 packages = ql.overrideScope (self: super: { 51 52 cl-environments = super.cl-environments.overrideLispAttrs (old: { 53 patches = old.patches or [] ++ [ 54 # Needed because SB-INT:TRULY-DYNAMIC-EXTENT has been removed since sbcl 2.3.10. 55 # The update isn't available on quicklisp yet, but we can fetch from upstream directly 56 (pkgs.fetchpatch { 57 url = "https://github.com/alex-gutev/cl-environments/commit/1bd7ecf68adeaf654616c6fb763c1239e0f2e221.patch"; 58 sha256 = "sha256-i6KdthYqPlJPvxM2c2kossHYvXNhpZHl/7NzELNrOHU="; 59 }) 60 ]; 61 }); 62 63 cl-unicode = build-with-compile-into-pwd { 64 inherit (super.cl-unicode) pname version src systems; 65 lispLibs = super.cl-unicode.lispLibs ++ [ self.flexi-streams ]; 66 }; 67 68 dissect = super.dissect.overrideAttrs { 69 version = "1.0.0-trunk"; 70 src = pkgs.fetchFromGitHub { 71 owner = "Shinmera"; 72 repo = "dissect"; 73 rev = "a70cabcd748cf7c041196efd711e2dcca2bbbb2c"; 74 hash = "sha256-WXv/jbokgKJTc47rBjvOF5npnqDlsyr8oSXIzN/7ofo="; 75 }; 76 }; 77 78 cl-gobject-introspection = super.cl-gobject-introspection.overrideLispAttrs (o: { 79 postPatch = '' 80 substituteInPlace src/init.lisp \ 81 --replace sb-ext::set-floating-point-modes sb-int:set-floating-point-modes 82 ''; 83 }); 84 85 jzon = super.com_dot_inuoe_dot_jzon; 86 87 cl-notify = build-asdf-system { 88 pname = "cl-notify"; 89 version = "20080904-138ca7038"; 90 src = pkgs.fetchzip { 91 url = "https://repo.or.cz/cl-notify.git/snapshot/138ca703861f4a1fbccbed557f92cf4d213668a1.tar.gz"; 92 sha256 = "0k6ns6fzvjcbpsqgx85r4g5m25fvrdw9481i9vyabwym9q8bbqwx"; 93 }; 94 lispLibs = [ 95 self.cffi 96 ]; 97 nativeLibs = [ 98 pkgs.libnotify 99 ]; 100 }; 101 102 cl-liballegro-nuklear = build-with-compile-into-pwd { 103 inherit (super.cl-liballegro-nuklear) pname version src; 104 nativeBuildInputs = [ pkgs.allegro5 ]; 105 nativeLibs = [ pkgs.allegro5 ]; 106 lispLibs = super.cl-liballegro-nuklear.lispLibs ++ [ self.cl-liballegro ]; 107 patches = [ ./patches/cl-liballegro-nuklear-missing-dll.patch ]; 108 }; 109 110 lessp = build-asdf-system { 111 pname = "lessp"; 112 version = "0.2-f8a9e4664"; 113 src = pkgs.fetchzip { 114 url = "https://github.com/facts-db/cl-lessp/archive/632217602b85b679e8d420654a0aa39e798ca3b5.tar.gz"; 115 sha256 = "0i3ia14dzqwjpygd0zn785ff5vqnnmkn75psfpyx0ni3jr71lkq9"; 116 }; 117 }; 118 119 rollback = build-asdf-system { 120 pname = "rollback"; 121 version = "0.1-5d3f21fda"; 122 src = pkgs.fetchzip { 123 url = "https://github.com/facts-db/cl-rollback/archive/5d3f21fda8f04f35c5e9d20ee3b87db767915d15.tar.gz"; 124 sha256 = "12dpxsbm2al633y87i8p784k2dn4bbskz6sl40v9f5ljjmjqjzxf"; 125 }; 126 }; 127 128 facts = build-asdf-system { 129 pname = "facts"; 130 version = "0.1-632217602"; 131 src = pkgs.fetchzip { 132 url = "https://beta.quicklisp.org/archive/cl-facts/2022-11-06/cl-facts-20221106-git.tgz"; 133 sha256 = "sha256-PBpyyJYkq1NjKK9VikSAL4TmrGRwUJlEWRSeKj/f4Sc="; 134 }; 135 lispLibs = [ self.lessp self.rollback self.local-time ]; 136 }; 137 138 cl-fuse = build-with-compile-into-pwd { 139 inherit (super.cl-fuse) pname version src lispLibs; 140 nativeBuildInputs = [ pkgs.fuse ]; 141 nativeLibs = [ pkgs.fuse ]; 142 }; 143 144 cl-containers = build-asdf-system { 145 inherit (super.cl-containers) pname version src; 146 lispLibs = super.cl-containers.lispLibs ++ [ self.moptilities ]; 147 systems = [ "cl-containers" "cl-containers/with-moptilities" ]; 148 }; 149 150 swank = build-with-compile-into-pwd rec { 151 inherit (super.swank) pname lispLibs; 152 version = "2.29.1"; 153 src = pkgs.fetchFromGitHub { 154 owner = "slime"; 155 repo = "slime"; 156 rev = "v${version}"; 157 hash = "sha256-5hNB5XxbTER4HX3dn4umUGnw6UeiTQkczmggFz4uWoE="; 158 }; 159 systems = [ "swank" "swank/exts" ]; 160 patches = [ ./patches/swank-pure-paths.patch ]; 161 postConfigure = '' 162 substituteAllInPlace swank-loader.lisp 163 ''; 164 }; 165 166 slynk = build-asdf-system { 167 pname = "slynk"; 168 version = "trunk"; 169 src = pkgs.fetchFromGitHub { 170 owner = "joaotavora"; 171 repo = "sly"; 172 rev = "ba40c8f054ec3b7040a6c36a1ef3e9596b936421"; 173 hash = "sha256-hoaCZtyezuXptDPnAvBTT0SZ14M9Ifrmki3beBOwFmI="; 174 }; 175 systems = [ 176 "slynk" "slynk/arglists" "slynk/fancy-inspector" 177 "slynk/package-fu" "slynk/mrepl" "slynk/trace-dialog" 178 "slynk/profiler" "slynk/stickers" "slynk/indentation" 179 "slynk/retro" 180 ]; 181 }; 182 183 cephes = build-with-compile-into-pwd { 184 inherit (super.cephes) pname version src lispLibs; 185 patches = [ ./patches/cephes-make.patch ]; 186 postConfigure = '' 187 substituteAllInPlace cephes.asd 188 ''; 189 }; 190 191 clx-truetype = build-asdf-system { 192 pname = "clx-truetype"; 193 version = "20160825-git"; 194 src = pkgs.fetchzip { 195 url = "http://beta.quicklisp.org/archive/clx-truetype/2016-08-25/clx-truetype-20160825-git.tgz"; 196 sha256 = "079hyp92cjkdfn6bhkxsrwnibiqbz4y4af6nl31lzw6nm91j5j37"; 197 }; 198 lispLibs = with self; [ 199 alexandria bordeaux-threads cl-aa cl-fad cl-paths cl-paths-ttf 200 cl-store cl-vectors clx trivial-features zpb-ttf 201 ]; 202 }; 203 204 mathkit = build-asdf-system { 205 inherit (super.mathkit) pname version src asds ; 206 lispLibs = super.mathkit.lispLibs ++ [ super.sb-cga ]; 207 }; 208 209 cl-colors2_0_5_4 = build-asdf-system { 210 inherit (super.cl-colors2) pname systems lispLibs; 211 version = "0.5.4"; 212 213 src = pkgs.fetchgit { 214 url = "https://codeberg.org/cage/cl-colors2"; 215 rev = "v0.5.4"; 216 sha256 = "sha256-JbT1BKjaXDwdlzHLPjX1eg0RMIOT86R17SPgbe2h+tA="; 217 }; 218 }; 219 220 prompter = build-asdf-system rec { 221 pname = "prompter"; 222 version = "20240108-git"; 223 224 src = pkgs.fetchFromGitHub { 225 owner = "atlas-engineer"; 226 repo = "prompter"; 227 rev = "7890ed5d02e70aba01ceb964c6ee4f40776e7dc0"; 228 hash = "sha256-rRKtpSKAqfzvnlC3NQ4840RrlbBUpI4V6uX6p5hRJWQ="; 229 }; 230 231 lispLibs = [ 232 self.cl-containers 233 self.nclasses 234 self.alexandria 235 self.calispel 236 self.closer-mop 237 self.lparallel 238 self.moptilities 239 self.serapeum 240 self.str 241 self.trivial-package-local-nicknames 242 ]; 243 244 }; 245 246 njson = build-asdf-system rec { 247 pname = "njson"; 248 version = "1.2.2"; 249 src = pkgs.fetchFromGitHub { 250 owner = "atlas-engineer"; 251 repo = "njson"; 252 rev = version; 253 sha256 = "sha256-kw5DD0GJp/TeCiYATBY8GL8UKqYS6Q4j0a0eQsdcZRc="; 254 }; 255 lispLibs = [ self.cl-json self.com_dot_inuoe_dot_jzon]; 256 systems = [ "njson" "njson/cl-json" "njson/jzon"]; 257 }; 258 259 nsymbols = build-asdf-system rec { 260 pname = "nsymbols"; 261 version = "0.3.2"; 262 src = pkgs.fetchFromGitHub { 263 owner = "atlas-engineer"; 264 repo = "nsymbols"; 265 rev = version; 266 sha256 = "sha256-psk29WEA7Hxgp29oUniBNvI+lyZfMkdpa5A7okc6kKs="; 267 }; 268 lispLibs = [ self.closer-mop ]; 269 systems = [ "nsymbols" "nsymbols/star" ]; 270 271 }; 272 273 nclasses = build-asdf-system rec { 274 pname = "nclasses"; 275 version = "0.6.1"; 276 src = pkgs.fetchFromGitHub { 277 owner = "atlas-engineer"; 278 repo = "nclasses"; 279 rev = version; 280 sha256 = "sha256-foXmaLxMYMFieB2Yd2iPsU4EX5kLXq7kyElqGZ47OgI="; 281 }; 282 lispLibs = [ self.moptilities ]; 283 }; 284 285 nfiles = build-asdf-system rec { 286 pname = "nfiles"; 287 version = "1.1.4"; 288 src = pkgs.fetchFromGitHub { 289 owner = "atlas-engineer"; 290 repo = "nfiles"; 291 rev = version; 292 sha256 = "sha256-4rhpBErQgZHcwZRblxgiYaUmKalvllSbJjnRteDVH6k="; 293 }; 294 lispLibs = [ 295 self.nclasses 296 self.quri 297 self.alexandria 298 self.iolib 299 self.serapeum 300 self.trivial-garbage 301 self.trivial-package-local-nicknames 302 self.trivial-types 303 ]; 304 }; 305 306 nhooks = build-asdf-system rec { 307 pname = "nhooks"; 308 version = "1.2.2"; 309 src = pkgs.fetchFromGitHub { 310 owner = "atlas-engineer"; 311 repo = "nhooks"; 312 rev = version; 313 hash = "sha256-6A3fsemsv2KbTmdGMQeL9iHFUBHc4kK6CRNVyc91LdU="; 314 }; 315 lispLibs = with self; [ bordeaux-threads closer-mop serapeum ]; 316 }; 317 318 nkeymaps = build-asdf-system rec { 319 pname = "nkeymaps"; 320 version = "1.1.1"; 321 src = pkgs.fetchFromGitHub { 322 owner = "atlas-engineer"; 323 repo = "nkeymaps"; 324 rev = version; 325 hash = "sha256-/t85Yh4EvnSyIM6xeDBLmfVz3wddmavInXzeYafNMJ0="; 326 }; 327 lispLibs = with self; [ alexandria fset trivial-package-local-nicknames 328 str ]; 329 }; 330 331 332 history-tree = build-asdf-system rec { 333 pname = "history-tree"; 334 version = "0.1.2"; 335 src = pkgs.fetchFromGitHub { 336 owner = "atlas-engineer"; 337 repo = "history-tree"; 338 rev = version; 339 hash = "sha256-wpVONvShNnvrPOlbNoX/t9sYiwxnIKnnJaJyALEyeNg="; 340 }; 341 lispLibs = with self; [ 342 alexandria 343 cl-custom-hash-table 344 local-time 345 nclasses 346 trivial-package-local-nicknames 347 ]; 348 }; 349 350 nyxt-gtk = build-asdf-system { 351 pname = "nyxt"; 352 version = "3.11.6"; 353 354 lispLibs = (with self; [ 355 alexandria 356 bordeaux-threads 357 calispel 358 cl-base64 359 cl-gopher 360 cl-html-diff 361 cl-json 362 cl-ppcre 363 cl-ppcre-unicode 364 cl-prevalence 365 cl-qrencode 366 cl-tld 367 closer-mop 368 dissect 369 moptilities 370 dexador 371 enchant 372 flexi-streams 373 idna 374 iolib 375 lass 376 local-time 377 lparallel 378 log4cl 379 montezuma 380 ndebug 381 osicat 382 parenscript 383 py-configparser 384 serapeum 385 str 386 phos 387 plump 388 clss 389 spinneret 390 trivia 391 trivial-features 392 trivial-garbage 393 trivial-package-local-nicknames 394 trivial-types 395 unix-opts 396 cluffer 397 cl-cffi-gtk 398 quri 399 sqlite 400 trivial-clipboard 401 cl-gobject-introspection 402 cl-webkit2 403 slynk 404 iterate 405 symbol-munger 406 history-tree 407 nhooks 408 nkeymaps 409 prompter 410 cl-colors2_0_5_4 411 njson 412 nsymbols 413 nclasses 414 nfiles 415 cl-containers 416 swank 417 ]); 418 419 src = pkgs.fetchFromGitHub { 420 owner = "atlas-engineer"; 421 repo = "nyxt"; 422 rev = "3.11.6"; 423 hash = "sha256-o+4LnSNyhdz5YAjNQJuE2ERtt48PckjKfts9QVRw82A="; 424 }; 425 426 nativeBuildInputs = [ pkgs.makeWrapper ]; 427 428 buildInputs = [ 429 # needed for GSETTINGS_SCHEMAS_PATH 430 pkgs.gsettings-desktop-schemas pkgs.glib pkgs.gtk3 431 432 # needed for XDG_ICON_DIRS 433 pkgs.adwaita-icon-theme 434 ]; 435 436 # This patch removes the :build-operation component from the nyxt/gi-gtk-application system. 437 # This is done because if asdf:operate is used and the operation matches the system's :build-operation 438 # then output translations are ignored, causing the result of the operation to be placed where 439 # the .asd is located, which in this case is the nix store. 440 # see: https://gitlab.common-lisp.net/asdf/asdf/-/blob/master/doc/asdf.texinfo#L2582 441 patches = [ ./patches/nyxt-remove-build-operation.patch ]; 442 443 NASDF_USE_LOGICAL_PATHS = true; 444 445 buildScript = pkgs.writeText "build-nyxt.lisp" '' 446 (load "${super.alexandria.asdfFasl}/asdf.${super.alexandria.faslExt}") 447 (require :uiop) 448 (let ((pwd (uiop:ensure-directory-pathname (uiop/os:getcwd)))) 449 (asdf:load-asd (uiop:merge-pathnames* "libraries/nasdf/nasdf.asd" pwd)) 450 (asdf:load-asd (uiop:merge-pathnames* "nyxt.asd" pwd))) 451 ;; There's a weird error while copy/pasting in Nyxt that manifests with sb-ext:save-lisp-and-die, so we use asdf:operare :program-op instead 452 (asdf:operate :program-op :nyxt/gi-gtk-application) 453 ''; 454 455 # TODO(kasper): use wrapGAppsHook3 456 installPhase = '' 457 mkdir -pv $out 458 cp -r * $out 459 rm -fv $out/nyxt 460 mkdir -p $out/bin 461 cp -v nyxt $out/bin 462 wrapProgram $out/bin/nyxt \ 463 --prefix LD_LIBRARY_PATH : $LD_LIBRARY_PATH \ 464 --prefix XDG_DATA_DIRS : $XDG_ICON_DIRS \ 465 --prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \ 466 --prefix GI_TYPELIB_PATH : $GI_TYPELIB_PATH \ 467 --prefix GIO_EXTRA_MODULES ":" ${pkgs.dconf.lib}/lib/gio/modules/ \ 468 --prefix GIO_EXTRA_MODULES ":" ${pkgs.glib-networking}/lib/gio/modules/ 469 ''; 470 }; 471 472 nyxt = self.nyxt-gtk; 473 474 stumpwm = super.stumpwm.overrideLispAttrs (o: rec { 475 version = "22.11"; 476 src = pkgs.fetchFromGitHub { 477 owner = "stumpwm"; 478 repo = "stumpwm"; 479 rev = version; 480 hash = "sha256-zXj17ucgyFhv7P0qEr4cYSVRPGrL1KEIofXWN2trr/M="; 481 }; 482 buildScript = pkgs.writeText "build-stumpwm.lisp" '' 483 (load "${super.stumpwm.asdfFasl}/asdf.${super.stumpwm.faslExt}") 484 485 (asdf:load-system 'stumpwm) 486 487 ;; Prevents package conflict error 488 (when (uiop:version<= "3.1.5" (asdf:asdf-version)) 489 (uiop:symbol-call '#:asdf '#:register-immutable-system :stumpwm) 490 (dolist (system-name (uiop:symbol-call '#:asdf 491 '#:system-depends-on 492 (asdf:find-system :stumpwm))) 493 (uiop:symbol-call '#:asdf '#:register-immutable-system system-name))) 494 495 ;; Prevents "cannot create /homeless-shelter" error 496 (asdf:disable-output-translations) 497 498 (sb-ext:save-lisp-and-die 499 "stumpwm" 500 :executable t 501 :purify t 502 #+sb-core-compression :compression 503 #+sb-core-compression t 504 :toplevel #'stumpwm:stumpwm) 505 ''; 506 installPhase = '' 507 mkdir -p $out/bin 508 cp -v stumpwm $out/bin 509 ''; 510 }); 511 512 stumpwm-unwrapped = super.stumpwm; 513 514 clfswm = super.clfswm.overrideAttrs (o: rec { 515 buildScript = pkgs.writeText "build-clfswm.lisp" '' 516 (load "${o.asdfFasl}/asdf.${o.faslExt}") 517 (asdf:load-system 'clfswm) 518 (sb-ext:save-lisp-and-die 519 "clfswm" 520 :executable t 521 #+sb-core-compression :compression 522 #+sb-core-compression t 523 :toplevel #'clfswm:main) 524 ''; 525 installPhase = o.installPhase + '' 526 mkdir -p $out/bin 527 mv $out/clfswm $out/bin 528 ''; 529 }); 530 531 magicl = build-with-compile-into-pwd { 532 inherit (super.magicl) pname version src lispLibs; 533 nativeBuildInputs = [ pkgs.gfortran ]; 534 nativeLibs = [ pkgs.openblas ]; 535 patches = [ ./patches/magicl-dont-build-fortran-twice.patch ]; 536 }; 537 538 cl-glib = build-asdf-system { 539 pname = "cl-glib"; 540 version = "1.0.0"; 541 src = pkgs.fetchFromGitHub { 542 owner = "bohonghuang"; 543 repo = "cl-glib"; 544 rev = "84b128192d6b11cf03f1150e474a23368f07edff"; 545 hash = "sha256-A56Yz+W4n1rAxxZg15zfkrLMbKMEG/zsWqaX7+kx4Qg="; 546 }; 547 lispLibs = with self; [ 548 cl-gobject-introspection-wrapper 549 bordeaux-threads 550 ]; 551 }; 552 553 cl-glib_dot_gio = build-asdf-system { 554 pname = "cl-glib.gio"; 555 version = "1.0.0"; 556 src = pkgs.fetchFromGitHub { 557 owner = "bohonghuang"; 558 repo = "cl-glib"; 559 rev = "84b128192d6b11cf03f1150e474a23368f07edff"; 560 hash = "sha256-A56Yz+W4n1rAxxZg15zfkrLMbKMEG/zsWqaX7+kx4Qg="; 561 }; 562 lispLibs = with self; [ 563 cl-gobject-introspection-wrapper 564 ]; 565 }; 566 567 cl-gtk4 = build-asdf-system { 568 pname = "cl-gtk4"; 569 version = "1.0.0"; 570 src = pkgs.fetchFromGitHub { 571 owner = "bohonghuang"; 572 repo = "cl-gtk4"; 573 rev = "e18f621b996fd986d9829d590203c690440dee64"; 574 hash = "sha256-++qydw6db4O3m+DAjutVPN8IuePOxseo9vhWEvwiR6E="; 575 }; 576 lispLibs = with self; [ 577 cl-gobject-introspection-wrapper 578 cl-glib 579 cl-glib_dot_gio 580 ]; 581 nativeBuildInputs = [ 582 pkgs.gobject-introspection 583 pkgs.gtk4 584 ]; 585 nativeLibs = [ 586 pkgs.gtk4 587 ]; 588 }; 589 590 cl-gtk4_dot_adw = build-asdf-system { 591 pname = "cl-gtk4.adw"; 592 version = "1.0.0"; 593 src = pkgs.fetchFromGitHub { 594 owner = "bohonghuang"; 595 repo = "cl-gtk4"; 596 rev = "e18f621b996fd986d9829d590203c690440dee64"; 597 hash = "sha256-++qydw6db4O3m+DAjutVPN8IuePOxseo9vhWEvwiR6E="; 598 }; 599 lispLibs = with self; [ 600 cl-gobject-introspection-wrapper 601 cl-gtk4 602 ]; 603 nativeBuildInputs = [ 604 pkgs.libadwaita 605 ]; 606 nativeLibs = [ 607 pkgs.libadwaita 608 ]; 609 }; 610 611 cl-gtk4_dot_webkit2 = build-asdf-system { 612 pname = "cl-gtk4.webkit2"; 613 version = "1.0.0"; 614 src = pkgs.fetchFromGitHub { 615 owner = "bohonghuang"; 616 repo = "cl-gtk4"; 617 rev = "e18f621b996fd986d9829d590203c690440dee64"; 618 hash = "sha256-++qydw6db4O3m+DAjutVPN8IuePOxseo9vhWEvwiR6E="; 619 }; 620 lispLibs = with self; [ 621 cl-gobject-introspection-wrapper 622 cl-gtk4 623 ]; 624 nativeBuildInputs = [ 625 pkgs.webkitgtk_6_0 626 ]; 627 nativeLibs = [ 628 pkgs.webkitgtk_6_0 629 ]; 630 # Requires old webkitgtk_5_0 which was replaced by webkitgtk_6_0 631 meta.broken = true; 632 }; 633 634 cl-avro = build-asdf-system { 635 pname = "cl-avro"; 636 version = "trunk"; 637 src = pkgs.fetchFromGitHub { 638 owner = "SahilKang"; 639 repo = "cl-avro"; 640 rev = "7d624253e98afb987a01729bd72c99bae02f0d7d"; 641 hash = "sha256-AlTn+Q1gKnAFEfcnz9+VeHz681pPIirg2za3VXYiNWk="; 642 }; 643 lispLibs = with self; [ 644 alexandria 645 babel 646 chipz 647 closer-mop 648 ieee-floats 649 flexi-streams 650 local-time 651 local-time-duration 652 md5 653 salza2 654 st-json 655 time-interval 656 trivial-extensible-sequences 657 ]; 658 }; 659 660 trivial-clock = build-asdf-system { 661 pname = "trivial-clock"; 662 version = "trunk"; 663 src = pkgs.fetchFromGitHub { 664 owner = "ak-coram"; 665 repo = "cl-trivial-clock"; 666 rev = "641e12ab1763914996beb1ceee67aabc9f1a3b1e"; 667 hash = "sha256-mltQEJ2asxyQ/aS/9BuWmN3XZ9bGmmkopcF5YJU1cPk="; 668 }; 669 systems = [ "trivial-clock" "trivial-clock/test" ]; 670 lispLibs = [ self.cffi self.fiveam ]; 671 }; 672 673 frugal-uuid = build-asdf-system { 674 pname = "frugal-uuid"; 675 version = "trunk"; 676 src = pkgs.fetchFromGitHub { 677 owner = "ak-coram"; 678 repo = "cl-frugal-uuid"; 679 rev = "be27972333a16fc3f16bc7fbf9e3013b2123d75c"; 680 hash = "sha256-rWO43vWMibF8/OxL70jle5nhd9oRWC7+MI44KWrQD48="; 681 }; 682 systems = [ "frugal-uuid" 683 "frugal-uuid/non-frugal" 684 "frugal-uuid/benchmark" 685 "frugal-uuid/test" ]; 686 lispLibs = with self; [ 687 babel 688 bordeaux-threads 689 fiveam 690 ironclad 691 trivial-benchmark 692 trivial-clock 693 ]; 694 }; 695 696 duckdb = build-asdf-system { 697 pname = "duckdb"; 698 version = "trunk"; 699 src = pkgs.fetchFromGitHub { 700 owner = "ak-coram"; 701 repo = "cl-duckdb"; 702 rev = "3ed1df5ba5c738a0b7fed7aa73632ec86f558d09"; 703 hash = "sha256-AJMxhtDACe6WTwEOxLsC8y6uBaPqjt8HLRw/eIZI02E="; 704 }; 705 systems = [ "duckdb" "duckdb/test" "duckdb/benchmark" ]; 706 lispLibs = with self; [ 707 bordeaux-threads 708 cffi-libffi 709 cl-ascii-table 710 cl-spark 711 cl-ppcre 712 frugal-uuid 713 let-plus 714 local-time 715 local-time-duration 716 periods 717 float-features 718 ]; 719 nativeLibs = with pkgs; [ 720 duckdb libffi 721 ]; 722 }; 723 724 polyclot = build-asdf-system { 725 pname = "polyclot"; 726 version = "trunk"; 727 src = pkgs.fetchfossil { 728 url = "https://fossil.turtleware.eu/polyclot"; 729 rev = "e678b3c3e002f53b446780406c9ed13f8451309d22a1dc50ced4dbeedf08a1ec"; 730 sha256 = "sha256-J08bU9HSVbzEivYtQsyIYPZJTrugj+jJSa4LglS0Olg="; 731 }; 732 systems = [ "eu.turtleware.polyclot" "eu.turtleware.polyclot/demo" ]; 733 lispLibs = with self; [ clim mcclim mcclim-layouts ]; 734 }; 735 736 kons-9 = build-asdf-system rec { 737 pname = "kons-9"; 738 version = "trunk"; 739 src = pkgs.fetchFromGitHub { 740 owner = "kaveh808"; 741 repo = "kons-9"; 742 rev = "95ad44fac0566f445c4b7bd040339dcff75ee992"; 743 sha256 = "19rl7372j9f1cv2kl55r8vyf4dhcz4way4hkjgysbxzrb1psp17n"; 744 }; 745 systems = [ "kons-9" "kons-9/testsuite" ]; 746 lispLibs = with self; [ 747 closer-mop trivial-main-thread trivial-backtrace cffi cl-opengl cl-glu 748 cl-glfw3 cl-paths-ttf zpb-ttf cl-vectors origin clobber 749 org_dot_melusina_dot_confidence 750 ]; 751 }; 752 753 sb-cga = build-asdf-system { 754 pname = "sb-cga"; 755 version = "1.0.1"; 756 src = pkgs.fetchFromGitHub { 757 owner = "nikodemus"; 758 repo = "sb-cga"; 759 rev = "9a554ea1c01cac998ff7eaa5f767bc5bcdc4c094"; 760 sha256 = "sha256-iBM+VXu6JRqGmeIFzfXbGot+elvangmfSpDB7DjFpPg"; 761 }; 762 lispLibs = [ self.alexandria ]; 763 }; 764 765 nsb-cga = super.nsb-cga.overrideLispAttrs (oa: { 766 lispLibs = oa.lispLibs ++ [ self.sb-cga ]; 767 }); 768 769 qlot-cli = build-asdf-system rec { 770 pname = "qlot"; 771 version = "1.5.2"; 772 773 src = pkgs.fetchFromGitHub { 774 owner = "fukamachi"; 775 repo = "qlot"; 776 rev = "refs/tags/${version}"; 777 hash = "sha256-j9iT25Yz9Z6llCKwwiHlVNKLqwuKvY194LrAzXuljsE="; 778 }; 779 780 lispLibs = with self; [ 781 archive 782 deflate 783 dexador 784 fuzzy-match 785 ironclad 786 lparallel 787 yason 788 ]; 789 790 nativeLibs = [ 791 pkgs.openssl 792 ]; 793 794 nativeBuildInputs = [ 795 pkgs.makeWrapper 796 ]; 797 798 buildScript = pkgs.writeText "build-qlot-cli" '' 799 (load "${self.qlot-cli.asdfFasl}/asdf.${self.qlot-cli.faslExt}") 800 (asdf:load-system :qlot/command) 801 (asdf:load-system :qlot/subcommands) 802 803 ;; Use uiop:dump-image instead of sb-ext:dump-image for the image restore hooks 804 (setf uiop:*image-entry-point* #'qlot/cli:main) 805 (uiop:dump-image "qlot" 806 :executable t 807 #+sb-core-compression :compression 808 #+sb-core-compression t) 809 ''; 810 811 installPhase = '' 812 runHook preInstall 813 814 mkdir -p $out/bin 815 cp qlot.asd $out 816 rm *.asd 817 cp -r * $out 818 819 mv $out/qlot $out/bin 820 wrapProgram $out/bin/qlot \ 821 --prefix LD_LIBRARY_PATH : $LD_LIBRARY_PATH 822 823 runHook postInstall 824 ''; 825 826 meta.mainProgram = "qlot"; 827 }; 828 829 misc-extensions = super.misc-extensions.overrideLispAttrs (old: rec { 830 version = "4.0.3"; 831 src = pkgs.fetchFromGitLab { 832 domain = "gitlab.common-lisp.net"; 833 owner = "misc-extensions"; 834 repo = "misc-extensions"; 835 rev = "v${version}"; 836 hash = "sha256-bDNI4mIaNw/rf7ZwvwolKo6+mUUxsgubGUd/988sHAo="; 837 }; 838 }); 839 840 fset = super.fset.overrideLispAttrs (old: rec { 841 version = "1.4.0"; 842 src = pkgs.fetchFromGitHub { 843 owner = "slburson"; 844 repo = "fset"; 845 rev = "v${version}"; 846 hash = "sha256-alO8Ek5Xpyl5N99/LgyIZ50aoRbY7bKh3XBntFV6Q5k="; 847 }; 848 lispLibs = with super; [ 849 self.misc-extensions 850 mt19937 851 named-readtables 852 ]; 853 meta = { 854 description = "functional collections library"; 855 homepage = "https://gitlab.common-lisp.net/fset/fset/-/wikis/home"; 856 license = pkgs.lib.licenses.llgpl21; 857 }; 858 }); 859 860 coalton = build-asdf-system { 861 pname = "coalton"; 862 version = "trunk"; 863 src = pkgs.fetchFromGitHub { 864 owner = "coalton-lang"; 865 repo = "coalton"; 866 rev = "05111b8a59e3f7346b175ce1ec621bff588e1e1f"; 867 hash = "sha256-L9o7Y3zDx9qLXGe/70c1LWEKUWsSRgBQru66mIuaCFw="; 868 }; 869 lispLibs = with super; [ 870 alexandria 871 eclector-concrete-syntax-tree 872 fiasco 873 float-features 874 self.fset 875 named-readtables 876 trivial-garbage 877 ]; 878 nativeLibs = [ pkgs.mpfr ]; 879 systems = [ "coalton" "coalton/tests" ]; 880 meta = { 881 description = "statically typed functional programming language that supercharges Common Lisp"; 882 homepage = "https://coalton-lang.github.io"; 883 license = pkgs.lib.licenses.mit; 884 }; 885 }; 886 887 }); 888 889in packages