about summary refs log tree commit diff
path: root/pkgs/development/interpreters
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/interpreters')
-rw-r--r--pkgs/development/interpreters/php/default.nix29
1 files changed, 22 insertions, 7 deletions
diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix
index 36f1d9f92e96..3c2a73a5c193 100644
--- a/pkgs/development/interpreters/php/default.nix
+++ b/pkgs/development/interpreters/php/default.nix
@@ -144,13 +144,17 @@ let
     };
   };
 
-  generic' = { version, sha256, ... }@args:
+  generic' = { version, sha256, self, selfWithExtensions, ... }@args:
     let
-      php = generic args;
+      php = generic (builtins.removeAttrs args [ "self" "selfWithExtensions" ]);
+      packages = callPackage ../../../top-level/php-packages.nix {
+        php = self;
+        phpWithExtensions = selfWithExtensions;
+      };
       buildEnv = { exts ? (_: []), extraConfig ? "" }:
         let
           getExtName = ext: lib.removePrefix "php-" (builtins.parseDrvName ext.name).name;
-          extList = exts (callPackage ../../../top-level/php-packages.nix { inherit php; });
+          extList = exts packages;
 
           # Generate extension load configuration snippets from
           # exts. This is an attrset suitable for use with
@@ -182,7 +186,9 @@ let
             name = "php-with-extensions-${version}";
             inherit version;
             nativeBuildInputs = [ makeWrapper ];
-            passthru.buildEnv = buildEnv;
+            passthru = {
+              inherit buildEnv packages;
+            };
             paths = [ php ];
             postBuild = ''
               wrapProgram $out/bin/php \
@@ -193,12 +199,16 @@ let
           };
     in
       php.overrideAttrs (_: {
-        passthru.buildEnv = buildEnv;
+        passthru = {
+          inherit buildEnv packages;
+        };
       });
 
   php72base = generic' {
     version = "7.2.28";
     sha256 = "18sjvl67z5a2x5s2a36g6ls1r3m4hbrsw52hqr2qsgfvg5dkm5bw";
+    self = php72base;
+    selfWithExtensions = php72;
 
     # https://bugs.php.net/bug.php?id=76826
     extraPatches = lib.optional stdenv.isDarwin ./php72-darwin-isfinite.patch;
@@ -207,6 +217,8 @@ let
   php73base = generic' {
     version = "7.3.15";
     sha256 = "0g84hws15s8gh8iq4h6q747dyfazx47vh3da3whz8d80x83ibgld";
+    self = php73base;
+    selfWithExtensions = php73;
 
     # https://bugs.php.net/bug.php?id=76826
     extraPatches = lib.optional stdenv.isDarwin ./php73-darwin-isfinite.patch;
@@ -215,6 +227,8 @@ let
   php74base = generic' {
     version = "7.4.3";
     sha256 = "wVF7pJV4+y3MZMc6Ptx21PxQfEp6xjmYFYTMfTtMbRQ=";
+    self = php74base;
+    selfWithExtensions = php74;
   };
 
   defaultPhpExtensions = {
@@ -226,10 +240,11 @@ let
       tokenizer xmlreader xmlwriter zip zlib
     ] ++ lib.optionals (!stdenv.isDarwin) [ imap ]);
   };
-in {
-  inherit php72base php73base php74base;
 
   php74 = php74base.buildEnv defaultPhpExtensions;
   php73 = php73base.buildEnv defaultPhpExtensions;
   php72 = php72base.buildEnv defaultPhpExtensions;
+
+in {
+  inherit php72base php73base php74base php72 php73 php74;
 }