Unverified Commit b8fb460d authored by Pol Dellaiera's avatar Pol Dellaiera Committed by GitHub
Browse files

Merge pull request #309112 from drupol/nixfmt/php-packages

workflows/check-nix-format: enforce for PHP
parents 508a8e68 75ae7621
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -39,6 +39,8 @@ jobs:
            pkgs/test/cuda
            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
+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;
@@ -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
@@ -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;
+51 −26
Original line number Diff line number Diff line
{ callPackage, stdenvNoCC, lib, writeTextDir, fetchFromGitHub, php }:
{
  callPackage,
  stdenvNoCC,
  lib,
  writeTextDir,
  fetchFromGitHub,
  php,
}:

let
  mkComposerRepositoryOverride =
@@ -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;
@@ -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
@@ -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
+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;
@@ -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";

@@ -42,4 +65,5 @@ stdenv.mkDerivation (args // {
      isPhpExtension = true;
      updateScript = nix-update-script { };
    };
})
  }
)
+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
@@ -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