nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 newScope,
4 fetchurl,
5}:
6let
7 # Some eggs mistakenly declare dependencies on modules which are part of chicken itself and thus
8 # need not (and cannot) be installed as eggs. Instead of marking such eggs as broken, we remove
9 # these invalid dependencies.
10 invalidDependencies = [
11 "srfi-4"
12 ];
13in
14lib.makeScope newScope (self: {
15
16 fetchegg =
17 {
18 pname,
19 version,
20 sha256,
21 ...
22 }:
23 fetchurl {
24 inherit sha256;
25 url = "https://code.call-cc.org/egg-tarballs/5/${pname}/${pname}-${version}.tar.gz";
26 };
27
28 eggDerivation = self.callPackage ./eggDerivation.nix { };
29
30 chicken = self.callPackage ./chicken.nix {
31 bootstrap-chicken = self.chicken.override { bootstrap-chicken = null; };
32 };
33
34 chickenEggs = lib.recurseIntoAttrs (
35 lib.makeScope self.newScope (
36 eggself:
37 (lib.mapAttrs (
38 pname:
39 eggData@{
40 version,
41 synopsis,
42 dependencies,
43 license,
44 ...
45 }:
46 self.eggDerivation {
47 inherit pname version;
48 src = self.fetchegg (eggData // { inherit pname; });
49 buildInputs = map (x: eggself.${x}) (lib.subtractLists invalidDependencies dependencies);
50 meta.homepage = "https://wiki.call-cc.org/eggref/5/${pname}";
51 meta.description = synopsis;
52 meta.license =
53 (
54 lib.licenses
55 // {
56 "agpl" = lib.licenses.agpl3Only;
57 "artistic" = lib.licenses.artistic2;
58 "bsd" = lib.licenses.bsd3;
59 "bsd-1-clause" = lib.licenses.bsd1;
60 "bsd-2-clause" = lib.licenses.bsd2;
61 "bsd-3" = lib.licenses.bsd3;
62 "bsd-3-clause" = lib.licenses.bsd3;
63 "gpl" = lib.licenses.gpl3Only;
64 "gpl-2" = lib.licenses.gpl2Only;
65 "gplv2" = lib.licenses.gpl2Only;
66 "gpl-3" = lib.licenses.gpl3Only;
67 "gpl-3.0" = lib.licenses.gpl3Only;
68 "gplv3" = lib.licenses.gpl3Only;
69 "lgpl" = lib.licenses.lgpl3Only;
70 "lgpl-2" = lib.licenses.lgpl2Only;
71 "lgpl-2.0+" = lib.licenses.lgpl2Plus;
72 "lgpl-2.1" = lib.licenses.lgpl21Only;
73 "lgpl-2.1-or-later" = lib.licenses.lgpl21Plus;
74 "lgpl-3" = lib.licenses.lgpl3Only;
75 "lgplv3" = lib.licenses.lgpl3Only;
76 "public-domain" = lib.licenses.publicDomain;
77 "srfi" = lib.licenses.bsd3;
78 "unicode" = lib.licenses.ucd;
79 "unknown" = lib.licenses.free;
80 "zlib-acknowledgement" = lib.licenses.zlib;
81 }
82 ).${license} or license;
83 }
84 ) (lib.importTOML ./deps.toml))
85 )
86 );
87
88 egg2nix = self.callPackage ./egg2nix.nix { };
89
90})