Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ pkgs, lib }: 2 3rec { 4 5 /* Similar to callPackageWith/callPackage, but without makeOverridable 6 */ 7 callPackageWith = autoArgs: fn: args: 8 let 9 f = if pkgs.lib.isFunction fn then fn else import fn; 10 auto = builtins.intersectAttrs (lib.functionArgs f) autoArgs; 11 in f (auto // args); 12 13 callPackage = callPackageWith pkgs; 14 15 /* Uses generic-builder to evaluate provided drv containing OTP-version 16 specific data. 17 18 drv: package containing version-specific args; 19 builder: generic builder for all Erlang versions; 20 args: arguments merged into version-specific args, used mostly to customize 21 dependencies; 22 23 Arguments passed to the generic-builder are overridable, used to 24 enable/disable high-level OTP features, like ODBC or WX support; 25 26 Please note that "mkDerivation" defined here is the one called from R16.nix 27 and similar files. 28 */ 29 callErlang = drv: args: 30 let 31 builder = callPackage ../../development/interpreters/erlang/generic-builder.nix args; 32 in 33 callPackage drv { 34 mkDerivation = pkgs.makeOverridable builder; 35 }; 36 37 /* Uses generic-builder to evaluate provided drv containing Elixir version 38 specific data. 39 40 drv: package containing version-specific args; 41 builder: generic builder for all Erlang versions; 42 args: arguments merged into version-specific args, used mostly to customize 43 dependencies; 44 45 Arguments passed to the generic-builder are overridable. 46 47 Please note that "mkDerivation" defined here is the one called from 1.4.nix 48 and similar files. 49 */ 50 callElixir = drv: args: 51 let 52 builder = callPackage ../interpreters/elixir/generic-builder.nix args; 53 in 54 callPackage drv { 55 mkDerivation = pkgs.makeOverridable builder; 56 }; 57 58 /* Uses generic-builder to evaluate provided drv containing Elixir version 59 specific data. 60 61 drv: package containing version-specific args; 62 builder: generic builder for all Erlang versions; 63 args: arguments merged into version-specific args, used mostly to customize 64 dependencies; 65 66 Arguments passed to the generic-builder are overridable. 67 68 Please note that "mkDerivation" defined here is the one called from 1.2.nix 69 and similar files. 70 */ 71 callLFE = drv: args: 72 let 73 builder = callPackage ../interpreters/lfe/generic-builder.nix args; 74 in 75 callPackage drv { 76 mkDerivation = pkgs.makeOverridable builder; 77 }; 78 79}