diff options
author | talyz <kim.lindberger@gmail.com> | 2020-03-28 23:03:35 +0100 |
---|---|---|
committer | talyz <kim.lindberger@gmail.com> | 2020-04-05 16:44:01 +0200 |
commit | 90dcab948c22f997a76f9f77afe5f542af2e6734 (patch) | |
tree | f38d3824399f0165bbfa93a63705c9d05d7db836 /pkgs/top-level/php-packages.nix | |
parent | b1106a18510245bfd642c057dda43ad5ea985baa (diff) | |
download | nixpkgs-90dcab948c22f997a76f9f77afe5f542af2e6734.tar nixpkgs-90dcab948c22f997a76f9f77afe5f542af2e6734.tar.gz nixpkgs-90dcab948c22f997a76f9f77afe5f542af2e6734.tar.bz2 nixpkgs-90dcab948c22f997a76f9f77afe5f542af2e6734.tar.lz nixpkgs-90dcab948c22f997a76f9f77afe5f542af2e6734.tar.xz nixpkgs-90dcab948c22f997a76f9f77afe5f542af2e6734.tar.zst nixpkgs-90dcab948c22f997a76f9f77afe5f542af2e6734.zip |
php.packages: Use derivations for internalDeps in mkExtension
Make mkExtension put headers in the dev output and use them, instead of a different part of the current source tree, when referring to another extension by using internalDeps. This means external extensions can be built against the internal ones.
Diffstat (limited to 'pkgs/top-level/php-packages.nix')
-rw-r--r-- | pkgs/top-level/php-packages.nix | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index 604a7b0474c..2ebc0697824 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -733,6 +733,7 @@ in , ... }@args: stdenv.mkDerivation ((builtins.removeAttrs args [ "name" ]) // { pname = "php-${name}"; + extensionName = name; inherit (php) version src; sourceRoot = "php-${php.version}/ext/${name}"; @@ -755,13 +756,20 @@ in phpize ${postPhpize} ${lib.concatMapStringsSep "\n" - (dep: "mkdir -p ext; ln -s ../../${dep} ext/") + (dep: "mkdir -p ext; ln -s ${dep.dev}/include ext/${dep.extensionName}") internalDeps} ''; checkPhase = "echo n | make test"; + outputs = [ "out" "dev" ]; installPhase = '' mkdir -p $out/lib/php/extensions cp modules/${name}.so $out/lib/php/extensions/${name}.so + mkdir -p $dev/include + ${rsync}/bin/rsync -r --filter="+ */" \ + --filter="+ *.h" \ + --filter="- *" \ + --prune-empty-dirs \ + . $dev/include/ ''; }); @@ -853,7 +861,7 @@ in doCheck = false; } { name = "mbstring"; buildInputs = [ oniguruma ]; doCheck = false; } { name = "mysqli"; - internalDeps = [ "mysqlnd" ]; + internalDeps = [ php.packages.exts.mysqlnd ]; configureFlags = [ "--with-mysqli=mysqlnd" "--with-mysql-sock=/run/mysqld/mysqld.sock" ]; doCheck = false; } { name = "mysqlnd"; @@ -914,27 +922,27 @@ in { name = "pcntl"; } { name = "pdo"; doCheck = false; } { name = "pdo_dblib"; - internalDeps = [ "pdo" ]; + internalDeps = [ php.packages.exts.pdo ]; configureFlags = [ "--with-pdo-dblib=${freetds}" ]; # Doesn't seem to work on darwin. enable = (!stdenv.isDarwin); doCheck = false; } # pdo_firebird (7.4, 7.3, 7.2) { name = "pdo_mysql"; - internalDeps = [ "mysqlnd" "pdo" ]; + internalDeps = with php.packages.exts; [ pdo mysqlnd ]; configureFlags = [ "--with-pdo-mysql=mysqlnd" ]; doCheck = false; } # pdo_oci (7.4, 7.3, 7.2) { name = "pdo_odbc"; - internalDeps = [ "pdo" ]; + internalDeps = [ php.packages.exts.pdo ]; configureFlags = [ "--with-pdo-odbc=unixODBC,${unixODBC}" ]; doCheck = false; } { name = "pdo_pgsql"; - internalDeps = [ "pdo" ]; + internalDeps = [ php.packages.exts.pdo ]; configureFlags = [ "--with-pdo-pgsql=${postgresql}" ]; doCheck = false; } { name = "pdo_sqlite"; - internalDeps = [ "pdo" ]; + internalDeps = [ php.packages.exts.pdo ]; buildInputs = [ sqlite ]; configureFlags = [ "--with-pdo-sqlite=${sqlite.dev}" ]; doCheck = false; } @@ -982,7 +990,7 @@ in { name = "tokenizer"; } { name = "wddx"; buildInputs = [ libxml2 ]; - internalDeps = [ "session" ]; + internalDeps = [ php.extensions.session ]; configureFlags = [ "--enable-wddx" "--with-libxml-dir=${libxml2.dev}" ]; # Removed in php 7.4. enable = lib.versionOlder php.version "7.4"; } |