Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at release-18.03 81 lines 2.5 kB view raw
1{ pkgs, stdenv }: 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 (stdenv.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 inherit (stdenv.lib) versionAtLeast; 53 builder = callPackage ../interpreters/elixir/generic-builder.nix args; 54 in 55 callPackage drv { 56 mkDerivation = pkgs.makeOverridable builder; 57 }; 58 59 /* Uses generic-builder to evaluate provided drv containing Elixir version 60 specific data. 61 62 drv: package containing version-specific args; 63 builder: generic builder for all Erlang versions; 64 args: arguments merged into version-specific args, used mostly to customize 65 dependencies; 66 67 Arguments passed to the generic-builder are overridable. 68 69 Please note that "mkDerivation" defined here is the one called from 1.2.nix 70 and similar files. 71 */ 72 callLFE = drv: args: 73 let 74 inherit (stdenv.lib) versionAtLeast; 75 builder = callPackage ../interpreters/lfe/generic-builder.nix args; 76 in 77 callPackage drv { 78 mkDerivation = pkgs.makeOverridable builder; 79 }; 80 81}