···2233rec {
4455- /* Uses generic-builder to evaluate provided drv containing OTP-version specific data.
55+ /* Similar to callPackageWith/callPackage, but without makeOverridable
66+ */
77+ callPackageWith = autoArgs: fn: args:
88+ let
99+ f = if builtins.isFunction fn then fn else import fn;
1010+ auto = builtins.intersectAttrs (builtins.functionArgs f) autoArgs;
1111+ in f (auto // args);
1212+1313+ callPackage = callPackageWith pkgs;
1414+1515+ /* Uses generic-builder to evaluate provided drv containing OTP-version
1616+ specific data.
617718 drv: package containing version-specific args;
819 builder: generic builder for all Erlang versions;
99- gargs: arguments passed to the generic-builder, used mostly to customize dependencies;
1010- args: arguments merged into version-specific args, used mostly to enable/disable high-level OTP
1111- features, like ODBC or WX support;
2020+ args: arguments merged into version-specific args, used mostly to customize
2121+ dependencies;
12221313- Please note that "mkDerivation" defined here is the one called from R16.nix and similar files.
2323+ Arguments passed to the generic-builder are overridable, used to
2424+ enable/disable high-level OTP features, like ODBC or WX support;
2525+2626+ Please note that "mkDerivation" defined here is the one called from R16.nix
2727+ and similar files.
1428 */
1515- callErlang = drv: gargs: args: pkgs.callPackage drv (
1616- let builder = pkgs.callPackage ../../development/interpreters/erlang/generic-builder.nix gargs;
1717- in {
1818- mkDerivation = a: builder (a // args);
1919- });
2929+ callErlang = drv: args:
3030+ let
3131+ builder = callPackage ../../development/interpreters/erlang/generic-builder.nix args;
3232+ in
3333+ callPackage drv {
3434+ mkDerivation = pkgs.makeOverridable builder;
3535+ };
20362137}