diff options
author | Artturin <Artturin@artturin.com> | 2023-02-08 19:34:41 +0200 |
---|---|---|
committer | Artturin <Artturin@artturin.com> | 2023-02-08 19:34:41 +0200 |
commit | 4d32075a0e08712aba61c80312adb70c5e8ee822 (patch) | |
tree | ac70b4bc75899824801ca3d528768e5d22dd5e80 /pkgs/top-level/php-packages.nix | |
parent | 315664758c2d6154d769eb9c664892f01c580ac1 (diff) | |
download | nixpkgs-4d32075a0e08712aba61c80312adb70c5e8ee822.tar nixpkgs-4d32075a0e08712aba61c80312adb70c5e8ee822.tar.gz nixpkgs-4d32075a0e08712aba61c80312adb70c5e8ee822.tar.bz2 nixpkgs-4d32075a0e08712aba61c80312adb70c5e8ee822.tar.lz nixpkgs-4d32075a0e08712aba61c80312adb70c5e8ee822.tar.xz nixpkgs-4d32075a0e08712aba61c80312adb70c5e8ee822.tar.zst nixpkgs-4d32075a0e08712aba61c80312adb70c5e8ee822.zip |
phpPackages.mkDerivation: use lib.{fix,extends} instead of //
// on a overrideAttrs'able works badly here we use lib.fix and lib.extends instead of overrideAttrs to have less of a performance impact
Diffstat (limited to 'pkgs/top-level/php-packages.nix')
-rw-r--r-- | pkgs/top-level/php-packages.nix | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index 8b1bbecb249..905c0e1d9a3 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -57,15 +57,22 @@ lib.makeScope pkgs.newScope (self: with self; { # Wrap mkDerivation to prepend pname with "php-" to make names consistent # with how buildPecl does it and make the file easier to overview. - mkDerivation = { pname, ... }@args: pkgs.stdenv.mkDerivation (args // { - pname = "php-${pname}"; - passthru = { - updateScript = nix-update-script {}; - }; - meta = args.meta // { - mainProgram = args.meta.mainProgram or pname; - }; - }); + mkDerivation = origArgs: + let + args = lib.fix (lib.extends + (_: previousAttrs: { + pname = "php-${previousAttrs.pname}"; + passthru = (previousAttrs.passthru or { }) // { + updateScript = nix-update-script { }; + }; + meta = (previousAttrs.meta or { }) // { + mainProgram = previousAttrs.meta.mainProgram or previousAttrs.pname; + }; + }) + (if lib.isFunction origArgs then origArgs else (_: origArgs)) + ); + in + pkgs.stdenv.mkDerivation args; # Function to build an extension which is shipped as part of the php # source, based on the php version. |