Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 callPackage, 3 lib, 4 stdenv, 5 chicken, 6 makeWrapper, 7}: 8{ 9 name, 10 src, 11 buildInputs ? [ ], 12 chickenInstallFlags ? [ ], 13 cscOptions ? [ ], 14 ... 15}@args: 16 17let 18 overrides = callPackage ./overrides.nix { }; 19 baseName = lib.getName name; 20 override = 21 if builtins.hasAttr baseName overrides then builtins.getAttr baseName overrides else lib.id; 22in 23(stdenv.mkDerivation ( 24 { 25 name = "chicken-${name}"; 26 propagatedBuildInputs = buildInputs; 27 nativeBuildInputs = [ 28 chicken 29 makeWrapper 30 ]; 31 buildInputs = [ chicken ]; 32 33 strictDeps = true; 34 35 CSC_OPTIONS = lib.concatStringsSep " " cscOptions; 36 37 buildPhase = '' 38 runHook preBuild 39 chicken-install -cached -no-install -host ${lib.escapeShellArgs chickenInstallFlags} 40 runHook postBuild 41 ''; 42 43 installPhase = '' 44 runHook preInstall 45 46 export CHICKEN_INSTALL_PREFIX=$out 47 export CHICKEN_INSTALL_REPOSITORY=$out/lib/chicken/${toString chicken.binaryVersion} 48 chicken-install -cached -host ${lib.escapeShellArgs chickenInstallFlags} 49 50 for f in $out/bin/* 51 do 52 wrapProgram $f \ 53 --prefix CHICKEN_REPOSITORY_PATH : "$out/lib/chicken/${toString chicken.binaryVersion}:$CHICKEN_REPOSITORY_PATH" \ 54 --prefix CHICKEN_INCLUDE_PATH : "$CHICKEN_INCLUDE_PATH:$out/share" \ 55 --prefix PATH : "$out/bin:${chicken}/bin:$CHICKEN_REPOSITORY_PATH" 56 done 57 58 runHook postInstall 59 ''; 60 61 dontConfigure = true; 62 63 meta = { 64 inherit (chicken.meta) platforms; 65 } 66 // args.meta or { }; 67 } 68 // builtins.removeAttrs args [ 69 "name" 70 "buildInputs" 71 "meta" 72 ] 73)).overrideAttrs 74 override