2022-12-19 23:00:00 +00:00
|
|
|
{ lib, newScope, fetchzip }:
|
2018-11-14 03:17:50 +00:00
|
|
|
let
|
|
|
|
callPackage = newScope self;
|
|
|
|
|
2022-12-19 23:00:00 +00:00
|
|
|
self = with lib; {
|
2018-11-14 03:17:50 +00:00
|
|
|
pkgs = self;
|
|
|
|
|
2022-12-19 23:00:00 +00:00
|
|
|
fetchegg = { name, version, sha256, ... }:
|
|
|
|
fetchzip {
|
|
|
|
inherit sha256;
|
|
|
|
name = "chicken-${name}-${version}-source";
|
|
|
|
url =
|
|
|
|
"https://code.call-cc.org/egg-tarballs/5/${name}/${name}-${version}.tar.gz";
|
|
|
|
};
|
2018-11-14 03:17:50 +00:00
|
|
|
|
|
|
|
eggDerivation = callPackage ./eggDerivation.nix { };
|
|
|
|
|
|
|
|
chicken = callPackage ./chicken.nix {
|
|
|
|
bootstrap-chicken = self.chicken.override { bootstrap-chicken = null; };
|
|
|
|
};
|
|
|
|
|
2022-12-19 23:00:00 +00:00
|
|
|
chickenEggs = recurseIntoAttrs (mapAttrs (name:
|
|
|
|
eggData@{ version, synopsis, dependencies, license, ... }:
|
|
|
|
self.eggDerivation {
|
|
|
|
name = "chicken-${name}-${version}";
|
|
|
|
src = self.fetchegg (eggData // { inherit name; });
|
|
|
|
buildInputs = map (x: self.chickenEggs.${x}) dependencies;
|
|
|
|
meta.homepage =
|
|
|
|
"https://code.call-cc.org/cgi-bin/gitweb.cgi?p=eggs-5-latest.git;a=tree;f=${name}/${version}";
|
|
|
|
meta.description = synopsis;
|
|
|
|
meta.license = (licenses // {
|
|
|
|
"bsd-2-clause" = licenses.bsd2;
|
|
|
|
"bsd-3-clause" = licenses.bsd3;
|
|
|
|
"public-domain" = licenses.publicDomain;
|
|
|
|
}).${license} or license;
|
|
|
|
}) (importJSON ./deps.json));
|
2018-11-14 03:17:50 +00:00
|
|
|
|
|
|
|
egg2nix = callPackage ./egg2nix.nix { };
|
|
|
|
};
|
|
|
|
|
2021-02-26 10:38:08 +00:00
|
|
|
in lib.recurseIntoAttrs self
|