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

php: add `phpSrc` attribute (#254556)

This will allow building PHP from source, without using `.overrideAttrs()`.
When the new attribute `phpSrc` is not set, the default behavior (with `fetchurl`) is used.
parent dbc3aaed
Loading
Loading
Loading
Loading
+18 −5
Original line number Diff line number Diff line
@@ -33,10 +33,12 @@ let
    , jq

    , version
    , hash
    , phpSrc ? null
    , hash ? null
    , extraPatches ? [ ]
    , packageOverrides ? (final: prev: { })
    , phpAttrsOverrides ? (attrs: { })
    , pearInstallPhar ? (callPackage ./install-pear-nozlib-phar.nix { })

      # Sapi flags
    , cgiSupport ? true
@@ -192,6 +194,11 @@ let

      mkWithExtensions = prevArgs: prevExtensionFunctions: extensions:
        mkBuildEnv prevArgs prevExtensionFunctions { inherit extensions; };

      defaultPhpSrc = fetchurl {
        url = "https://www.php.net/distributions/php-${version}.tar.bz2";
        inherit hash;
      };
    in
    stdenv.mkDerivation (
      let
@@ -278,6 +285,15 @@ let
              substituteInPlace configure --replace "-lstdc++" "-lc++"
            '';

          # When compiling PHP sources from Github, this file is missing and we
          # need to install it ourselves.
          # On the other hand, a distribution includes this file by default.
          preInstall = ''
            if [[ ! -f ./pear/install-pear-nozlib.phar ]]; then
              cp ${pearInstallPhar} ./pear/install-pear-nozlib.phar
            fi
          '';

          postInstall = ''
            test -d $out/etc || mkdir $out/etc
            cp php.ini-production $out/etc/php.ini
@@ -291,10 +307,7 @@ let
               $dev/share/man/man1/
          '';

          src = fetchurl {
            url = "https://www.php.net/distributions/php-${version}.tar.bz2";
            inherit hash;
          };
          src = if phpSrc == null then defaultPhpSrc else phpSrc;

          patches = [ ./fix-paths-php7.patch ] ++ extraPatches;

+8 −0
Original line number Diff line number Diff line
{
  fetchurl
}:

fetchurl {
  url = "https://pear.php.net/install-pear-nozlib.phar";
  hash = "sha256-UblKVcsm030tNSA6mdeab+h7ZhANNz7MkFf4Z1iigjs=";
}