Loading .github/workflows/check-nix-format.yml +1 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ jobs: pkgs/top-level/cuda-packages.nix NIX_FMT_PATHS_VSCODE_EXTS: pkgs/applications/editors/vscode/extensions NIX_FMT_PATHS_PHP_PACKAGES: pkgs/development/php-packages NIX_FMT_PATHS_BUILD_SUPPORT_PHP: pkgs/build-support/php # Iterate over all environment variables beginning with NIX_FMT_PATHS_. run: | for env_var in "${!NIX_FMT_PATHS_@}"; do Loading pkgs/build-support/php/build-composer-project.nix +48 −29 Original line number Diff line number Diff line { callPackage, stdenvNoCC, lib, writeTextDir, php, makeBinaryWrapper, fetchFromGitHub, fetchurl }: { callPackage, stdenvNoCC, lib, writeTextDir, php, makeBinaryWrapper, fetchFromGitHub, fetchurl, }: let buildComposerProjectOverride = finalAttrs: previousAttrs: buildComposerProjectOverride = finalAttrs: previousAttrs: let phpDrv = finalAttrs.php or php; Loading @@ -22,41 +32,44 @@ let phpDrv.composerHooks.composerInstallHook ]; buildInputs = (previousAttrs.buildInputs or [ ]) ++ [ phpDrv ]; buildInputs = (previousAttrs.buildInputs or [ ]) ++ [ phpDrv ]; patches = previousAttrs.patches or [ ]; strictDeps = previousAttrs.strictDeps or true; # Should we keep these empty phases? configurePhase = previousAttrs.configurePhase or '' configurePhase = previousAttrs.configurePhase or '' runHook preConfigure runHook postConfigure ''; buildPhase = previousAttrs.buildPhase or '' buildPhase = previousAttrs.buildPhase or '' runHook preBuild runHook postBuild ''; doCheck = previousAttrs.doCheck or true; checkPhase = previousAttrs.checkPhase or '' checkPhase = previousAttrs.checkPhase or '' runHook preCheck runHook postCheck ''; installPhase = previousAttrs.installPhase or '' installPhase = previousAttrs.installPhase or '' runHook preInstall runHook postInstall ''; doInstallCheck = previousAttrs.doInstallCheck or false; installCheckPhase = previousAttrs.installCheckPhase or '' installCheckPhase = previousAttrs.installCheckPhase or '' runHook preInstallCheck runHook postInstallCheck Loading @@ -64,7 +77,13 @@ let composerRepository = phpDrv.mkComposerRepository { inherit composer composer-local-repo-plugin; inherit (finalAttrs) patches pname src vendorHash version; inherit (finalAttrs) patches pname src vendorHash version ; composerLock = previousAttrs.composerLock or null; composerNoDev = previousAttrs.composerNoDev or true; Loading pkgs/build-support/php/build-composer-repository.nix +51 −26 Original line number Diff line number Diff line { callPackage, stdenvNoCC, lib, writeTextDir, fetchFromGitHub, php }: { callPackage, stdenvNoCC, lib, writeTextDir, fetchFromGitHub, php, }: let mkComposerRepositoryOverride = Loading @@ -22,12 +29,24 @@ let composer-local-repo-plugin = callPackage ./pkgs/composer-local-repo-plugin.nix { }; in assert (lib.assertMsg (previousAttrs ? src) "mkComposerRepository expects src argument."); assert (lib.assertMsg (previousAttrs ? vendorHash) "mkComposerRepository expects vendorHash argument."); assert ( lib.assertMsg (previousAttrs ? vendorHash) "mkComposerRepository expects vendorHash argument." ); assert (lib.assertMsg (previousAttrs ? version) "mkComposerRepository expects version argument."); assert (lib.assertMsg (previousAttrs ? pname) "mkComposerRepository expects pname argument."); assert (lib.assertMsg (previousAttrs ? composerNoDev) "mkComposerRepository expects composerNoDev argument."); assert (lib.assertMsg (previousAttrs ? composerNoPlugins) "mkComposerRepository expects composerNoPlugins argument."); assert (lib.assertMsg (previousAttrs ? composerNoScripts) "mkComposerRepository expects composerNoScripts argument."); assert ( lib.assertMsg (previousAttrs ? composerNoDev) "mkComposerRepository expects composerNoDev argument." ); assert ( lib.assertMsg ( previousAttrs ? composerNoPlugins ) "mkComposerRepository expects composerNoPlugins argument." ); assert ( lib.assertMsg ( previousAttrs ? composerNoScripts ) "mkComposerRepository expects composerNoScripts argument." ); { composerNoDev = previousAttrs.composerNoDev or true; composerNoPlugins = previousAttrs.composerNoPlugins or true; Loading @@ -51,33 +70,38 @@ let strictDeps = previousAttrs.strictDeps or true; # Should we keep these empty phases? configurePhase = previousAttrs.configurePhase or '' configurePhase = previousAttrs.configurePhase or '' runHook preConfigure runHook postConfigure ''; buildPhase = previousAttrs.buildPhase or '' buildPhase = previousAttrs.buildPhase or '' runHook preBuild runHook postBuild ''; doCheck = previousAttrs.doCheck or true; checkPhase = previousAttrs.checkPhase or '' checkPhase = previousAttrs.checkPhase or '' runHook preCheck runHook postCheck ''; installPhase = previousAttrs.installPhase or '' installPhase = previousAttrs.installPhase or '' runHook preInstall runHook postInstall ''; doInstallCheck = previousAttrs.doInstallCheck or false; installCheckPhase = previousAttrs.installCheckPhase or '' installCheckPhase = previousAttrs.installCheckPhase or '' runHook preInstallCheck runHook postInstallCheck Loading @@ -89,7 +113,8 @@ let COMPOSER_DISABLE_NETWORK = "0"; outputHashMode = "recursive"; outputHashAlgo = if (finalAttrs ? vendorHash && finalAttrs.vendorHash != "") then null else "sha256"; outputHashAlgo = if (finalAttrs ? vendorHash && finalAttrs.vendorHash != "") then null else "sha256"; outputHash = finalAttrs.vendorHash or ""; }; in Loading pkgs/build-support/php/build-pecl.nix +61 −37 Original line number Diff line number Diff line { stdenv, lib, php, autoreconfHook, fetchurl, re2c, nix-update-script }: { stdenv, lib, php, autoreconfHook, fetchurl, re2c, nix-update-script, }: { pname , version , internalDeps ? [ ] , peclDeps ? [ ] , buildInputs ? [ ] , nativeBuildInputs ? [ ] , postPhpize ? "" , makeFlags ? [ ] , src ? fetchurl ({ { pname, version, internalDeps ? [ ], peclDeps ? [ ], buildInputs ? [ ], nativeBuildInputs ? [ ], postPhpize ? "", makeFlags ? [ ], src ? fetchurl ( { url = "https://pecl.php.net/get/${pname}-${version}.tgz"; } // lib.filterAttrs (attrName: _: lib.elem attrName [ "sha256" "hash" ]) args) , passthru ? { } , ... } // lib.filterAttrs ( attrName: _: lib.elem attrName [ "sha256" "hash" ] ) args ), passthru ? { }, ... }@args: stdenv.mkDerivation (args // { stdenv.mkDerivation ( args // { name = "php-${pname}-${version}"; extensionName = pname; inherit src; nativeBuildInputs = [ autoreconfHook re2c ] ++ nativeBuildInputs; nativeBuildInputs = [ autoreconfHook re2c ] ++ nativeBuildInputs; buildInputs = [ php ] ++ peclDeps ++ buildInputs; makeFlags = [ "EXTENSION_DIR=$(out)/lib/php/extensions" ] ++ makeFlags; Loading @@ -29,9 +52,9 @@ stdenv.mkDerivation (args // { autoreconfPhase = '' phpize ${postPhpize} ${lib.concatMapStringsSep "\n" (dep: "mkdir -p ext; ln -s ${dep.dev}/include ext/${dep.extensionName}") internalDeps} ${lib.concatMapStringsSep "\n" ( dep: "mkdir -p ext; ln -s ${dep.dev}/include ext/${dep.extensionName}" ) internalDeps} ''; checkPhase = "NO_INTERACTON=yes make test"; Loading @@ -42,4 +65,5 @@ stdenv.mkDerivation (args // { isPhpExtension = true; updateScript = nix-update-script { }; }; }) } ) pkgs/build-support/php/hooks/default.nix +34 −27 Original line number Diff line number Diff line { lib , makeSetupHook , diffutils , jq , writeShellApplication , moreutils , cacert , buildPackages { lib, makeSetupHook, diffutils, jq, writeShellApplication, moreutils, cacert, buildPackages, }: let Loading @@ -16,19 +17,25 @@ let }; in { composerRepositoryHook = makeSetupHook { composerRepositoryHook = makeSetupHook { name = "composer-repository-hook.sh"; propagatedBuildInputs = [ jq moreutils cacert ]; propagatedBuildInputs = [ jq moreutils cacert ]; substitutions = { phpScriptUtils = lib.getExe php-script-utils; }; } ./composer-repository-hook.sh; composerInstallHook = makeSetupHook { composerInstallHook = makeSetupHook { name = "composer-install-hook.sh"; propagatedBuildInputs = [ jq moreutils cacert ]; propagatedBuildInputs = [ jq moreutils cacert ]; substitutions = { # Specify the stdenv's `diff` by abspath to ensure that the user's build # inputs do not cause us to find the wrong `diff`. Loading Loading
.github/workflows/check-nix-format.yml +1 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ jobs: pkgs/top-level/cuda-packages.nix NIX_FMT_PATHS_VSCODE_EXTS: pkgs/applications/editors/vscode/extensions NIX_FMT_PATHS_PHP_PACKAGES: pkgs/development/php-packages NIX_FMT_PATHS_BUILD_SUPPORT_PHP: pkgs/build-support/php # Iterate over all environment variables beginning with NIX_FMT_PATHS_. run: | for env_var in "${!NIX_FMT_PATHS_@}"; do Loading
pkgs/build-support/php/build-composer-project.nix +48 −29 Original line number Diff line number Diff line { callPackage, stdenvNoCC, lib, writeTextDir, php, makeBinaryWrapper, fetchFromGitHub, fetchurl }: { callPackage, stdenvNoCC, lib, writeTextDir, php, makeBinaryWrapper, fetchFromGitHub, fetchurl, }: let buildComposerProjectOverride = finalAttrs: previousAttrs: buildComposerProjectOverride = finalAttrs: previousAttrs: let phpDrv = finalAttrs.php or php; Loading @@ -22,41 +32,44 @@ let phpDrv.composerHooks.composerInstallHook ]; buildInputs = (previousAttrs.buildInputs or [ ]) ++ [ phpDrv ]; buildInputs = (previousAttrs.buildInputs or [ ]) ++ [ phpDrv ]; patches = previousAttrs.patches or [ ]; strictDeps = previousAttrs.strictDeps or true; # Should we keep these empty phases? configurePhase = previousAttrs.configurePhase or '' configurePhase = previousAttrs.configurePhase or '' runHook preConfigure runHook postConfigure ''; buildPhase = previousAttrs.buildPhase or '' buildPhase = previousAttrs.buildPhase or '' runHook preBuild runHook postBuild ''; doCheck = previousAttrs.doCheck or true; checkPhase = previousAttrs.checkPhase or '' checkPhase = previousAttrs.checkPhase or '' runHook preCheck runHook postCheck ''; installPhase = previousAttrs.installPhase or '' installPhase = previousAttrs.installPhase or '' runHook preInstall runHook postInstall ''; doInstallCheck = previousAttrs.doInstallCheck or false; installCheckPhase = previousAttrs.installCheckPhase or '' installCheckPhase = previousAttrs.installCheckPhase or '' runHook preInstallCheck runHook postInstallCheck Loading @@ -64,7 +77,13 @@ let composerRepository = phpDrv.mkComposerRepository { inherit composer composer-local-repo-plugin; inherit (finalAttrs) patches pname src vendorHash version; inherit (finalAttrs) patches pname src vendorHash version ; composerLock = previousAttrs.composerLock or null; composerNoDev = previousAttrs.composerNoDev or true; Loading
pkgs/build-support/php/build-composer-repository.nix +51 −26 Original line number Diff line number Diff line { callPackage, stdenvNoCC, lib, writeTextDir, fetchFromGitHub, php }: { callPackage, stdenvNoCC, lib, writeTextDir, fetchFromGitHub, php, }: let mkComposerRepositoryOverride = Loading @@ -22,12 +29,24 @@ let composer-local-repo-plugin = callPackage ./pkgs/composer-local-repo-plugin.nix { }; in assert (lib.assertMsg (previousAttrs ? src) "mkComposerRepository expects src argument."); assert (lib.assertMsg (previousAttrs ? vendorHash) "mkComposerRepository expects vendorHash argument."); assert ( lib.assertMsg (previousAttrs ? vendorHash) "mkComposerRepository expects vendorHash argument." ); assert (lib.assertMsg (previousAttrs ? version) "mkComposerRepository expects version argument."); assert (lib.assertMsg (previousAttrs ? pname) "mkComposerRepository expects pname argument."); assert (lib.assertMsg (previousAttrs ? composerNoDev) "mkComposerRepository expects composerNoDev argument."); assert (lib.assertMsg (previousAttrs ? composerNoPlugins) "mkComposerRepository expects composerNoPlugins argument."); assert (lib.assertMsg (previousAttrs ? composerNoScripts) "mkComposerRepository expects composerNoScripts argument."); assert ( lib.assertMsg (previousAttrs ? composerNoDev) "mkComposerRepository expects composerNoDev argument." ); assert ( lib.assertMsg ( previousAttrs ? composerNoPlugins ) "mkComposerRepository expects composerNoPlugins argument." ); assert ( lib.assertMsg ( previousAttrs ? composerNoScripts ) "mkComposerRepository expects composerNoScripts argument." ); { composerNoDev = previousAttrs.composerNoDev or true; composerNoPlugins = previousAttrs.composerNoPlugins or true; Loading @@ -51,33 +70,38 @@ let strictDeps = previousAttrs.strictDeps or true; # Should we keep these empty phases? configurePhase = previousAttrs.configurePhase or '' configurePhase = previousAttrs.configurePhase or '' runHook preConfigure runHook postConfigure ''; buildPhase = previousAttrs.buildPhase or '' buildPhase = previousAttrs.buildPhase or '' runHook preBuild runHook postBuild ''; doCheck = previousAttrs.doCheck or true; checkPhase = previousAttrs.checkPhase or '' checkPhase = previousAttrs.checkPhase or '' runHook preCheck runHook postCheck ''; installPhase = previousAttrs.installPhase or '' installPhase = previousAttrs.installPhase or '' runHook preInstall runHook postInstall ''; doInstallCheck = previousAttrs.doInstallCheck or false; installCheckPhase = previousAttrs.installCheckPhase or '' installCheckPhase = previousAttrs.installCheckPhase or '' runHook preInstallCheck runHook postInstallCheck Loading @@ -89,7 +113,8 @@ let COMPOSER_DISABLE_NETWORK = "0"; outputHashMode = "recursive"; outputHashAlgo = if (finalAttrs ? vendorHash && finalAttrs.vendorHash != "") then null else "sha256"; outputHashAlgo = if (finalAttrs ? vendorHash && finalAttrs.vendorHash != "") then null else "sha256"; outputHash = finalAttrs.vendorHash or ""; }; in Loading
pkgs/build-support/php/build-pecl.nix +61 −37 Original line number Diff line number Diff line { stdenv, lib, php, autoreconfHook, fetchurl, re2c, nix-update-script }: { stdenv, lib, php, autoreconfHook, fetchurl, re2c, nix-update-script, }: { pname , version , internalDeps ? [ ] , peclDeps ? [ ] , buildInputs ? [ ] , nativeBuildInputs ? [ ] , postPhpize ? "" , makeFlags ? [ ] , src ? fetchurl ({ { pname, version, internalDeps ? [ ], peclDeps ? [ ], buildInputs ? [ ], nativeBuildInputs ? [ ], postPhpize ? "", makeFlags ? [ ], src ? fetchurl ( { url = "https://pecl.php.net/get/${pname}-${version}.tgz"; } // lib.filterAttrs (attrName: _: lib.elem attrName [ "sha256" "hash" ]) args) , passthru ? { } , ... } // lib.filterAttrs ( attrName: _: lib.elem attrName [ "sha256" "hash" ] ) args ), passthru ? { }, ... }@args: stdenv.mkDerivation (args // { stdenv.mkDerivation ( args // { name = "php-${pname}-${version}"; extensionName = pname; inherit src; nativeBuildInputs = [ autoreconfHook re2c ] ++ nativeBuildInputs; nativeBuildInputs = [ autoreconfHook re2c ] ++ nativeBuildInputs; buildInputs = [ php ] ++ peclDeps ++ buildInputs; makeFlags = [ "EXTENSION_DIR=$(out)/lib/php/extensions" ] ++ makeFlags; Loading @@ -29,9 +52,9 @@ stdenv.mkDerivation (args // { autoreconfPhase = '' phpize ${postPhpize} ${lib.concatMapStringsSep "\n" (dep: "mkdir -p ext; ln -s ${dep.dev}/include ext/${dep.extensionName}") internalDeps} ${lib.concatMapStringsSep "\n" ( dep: "mkdir -p ext; ln -s ${dep.dev}/include ext/${dep.extensionName}" ) internalDeps} ''; checkPhase = "NO_INTERACTON=yes make test"; Loading @@ -42,4 +65,5 @@ stdenv.mkDerivation (args // { isPhpExtension = true; updateScript = nix-update-script { }; }; }) } )
pkgs/build-support/php/hooks/default.nix +34 −27 Original line number Diff line number Diff line { lib , makeSetupHook , diffutils , jq , writeShellApplication , moreutils , cacert , buildPackages { lib, makeSetupHook, diffutils, jq, writeShellApplication, moreutils, cacert, buildPackages, }: let Loading @@ -16,19 +17,25 @@ let }; in { composerRepositoryHook = makeSetupHook { composerRepositoryHook = makeSetupHook { name = "composer-repository-hook.sh"; propagatedBuildInputs = [ jq moreutils cacert ]; propagatedBuildInputs = [ jq moreutils cacert ]; substitutions = { phpScriptUtils = lib.getExe php-script-utils; }; } ./composer-repository-hook.sh; composerInstallHook = makeSetupHook { composerInstallHook = makeSetupHook { name = "composer-install-hook.sh"; propagatedBuildInputs = [ jq moreutils cacert ]; propagatedBuildInputs = [ jq moreutils cacert ]; substitutions = { # Specify the stdenv's `diff` by abspath to ensure that the user's build # inputs do not cause us to find the wrong `diff`. Loading