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