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.
This commit is contained in:
parent
b1106a1851
commit
90dcab948c
|
@ -171,7 +171,8 @@ let
|
||||||
in
|
in
|
||||||
lib.nameValuePair extName {
|
lib.nameValuePair extName {
|
||||||
text = "${type}=${ext}/lib/php/extensions/${extName}.so";
|
text = "${type}=${ext}/lib/php/extensions/${extName}.so";
|
||||||
deps = lib.optionals (ext ? internalDeps) ext.internalDeps;
|
deps = lib.optionals (ext ? internalDeps)
|
||||||
|
(map getExtName ext.internalDeps);
|
||||||
})
|
})
|
||||||
extList);
|
extList);
|
||||||
|
|
||||||
|
|
|
@ -733,6 +733,7 @@ in
|
||||||
, ...
|
, ...
|
||||||
}@args: stdenv.mkDerivation ((builtins.removeAttrs args [ "name" ]) // {
|
}@args: stdenv.mkDerivation ((builtins.removeAttrs args [ "name" ]) // {
|
||||||
pname = "php-${name}";
|
pname = "php-${name}";
|
||||||
|
extensionName = name;
|
||||||
|
|
||||||
inherit (php) version src;
|
inherit (php) version src;
|
||||||
sourceRoot = "php-${php.version}/ext/${name}";
|
sourceRoot = "php-${php.version}/ext/${name}";
|
||||||
|
@ -755,13 +756,20 @@ in
|
||||||
phpize
|
phpize
|
||||||
${postPhpize}
|
${postPhpize}
|
||||||
${lib.concatMapStringsSep "\n"
|
${lib.concatMapStringsSep "\n"
|
||||||
(dep: "mkdir -p ext; ln -s ../../${dep} ext/")
|
(dep: "mkdir -p ext; ln -s ${dep.dev}/include ext/${dep.extensionName}")
|
||||||
internalDeps}
|
internalDeps}
|
||||||
'';
|
'';
|
||||||
checkPhase = "echo n | make test";
|
checkPhase = "echo n | make test";
|
||||||
|
outputs = [ "out" "dev" ];
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/lib/php/extensions
|
mkdir -p $out/lib/php/extensions
|
||||||
cp modules/${name}.so $out/lib/php/extensions/${name}.so
|
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; }
|
doCheck = false; }
|
||||||
{ name = "mbstring"; buildInputs = [ oniguruma ]; doCheck = false; }
|
{ name = "mbstring"; buildInputs = [ oniguruma ]; doCheck = false; }
|
||||||
{ name = "mysqli";
|
{ name = "mysqli";
|
||||||
internalDeps = [ "mysqlnd" ];
|
internalDeps = [ php.packages.exts.mysqlnd ];
|
||||||
configureFlags = [ "--with-mysqli=mysqlnd" "--with-mysql-sock=/run/mysqld/mysqld.sock" ];
|
configureFlags = [ "--with-mysqli=mysqlnd" "--with-mysql-sock=/run/mysqld/mysqld.sock" ];
|
||||||
doCheck = false; }
|
doCheck = false; }
|
||||||
{ name = "mysqlnd";
|
{ name = "mysqlnd";
|
||||||
|
@ -914,27 +922,27 @@ in
|
||||||
{ name = "pcntl"; }
|
{ name = "pcntl"; }
|
||||||
{ name = "pdo"; doCheck = false; }
|
{ name = "pdo"; doCheck = false; }
|
||||||
{ name = "pdo_dblib";
|
{ name = "pdo_dblib";
|
||||||
internalDeps = [ "pdo" ];
|
internalDeps = [ php.packages.exts.pdo ];
|
||||||
configureFlags = [ "--with-pdo-dblib=${freetds}" ];
|
configureFlags = [ "--with-pdo-dblib=${freetds}" ];
|
||||||
# Doesn't seem to work on darwin.
|
# Doesn't seem to work on darwin.
|
||||||
enable = (!stdenv.isDarwin);
|
enable = (!stdenv.isDarwin);
|
||||||
doCheck = false; }
|
doCheck = false; }
|
||||||
# pdo_firebird (7.4, 7.3, 7.2)
|
# pdo_firebird (7.4, 7.3, 7.2)
|
||||||
{ name = "pdo_mysql";
|
{ name = "pdo_mysql";
|
||||||
internalDeps = [ "mysqlnd" "pdo" ];
|
internalDeps = with php.packages.exts; [ pdo mysqlnd ];
|
||||||
configureFlags = [ "--with-pdo-mysql=mysqlnd" ];
|
configureFlags = [ "--with-pdo-mysql=mysqlnd" ];
|
||||||
doCheck = false; }
|
doCheck = false; }
|
||||||
# pdo_oci (7.4, 7.3, 7.2)
|
# pdo_oci (7.4, 7.3, 7.2)
|
||||||
{ name = "pdo_odbc";
|
{ name = "pdo_odbc";
|
||||||
internalDeps = [ "pdo" ];
|
internalDeps = [ php.packages.exts.pdo ];
|
||||||
configureFlags = [ "--with-pdo-odbc=unixODBC,${unixODBC}" ];
|
configureFlags = [ "--with-pdo-odbc=unixODBC,${unixODBC}" ];
|
||||||
doCheck = false; }
|
doCheck = false; }
|
||||||
{ name = "pdo_pgsql";
|
{ name = "pdo_pgsql";
|
||||||
internalDeps = [ "pdo" ];
|
internalDeps = [ php.packages.exts.pdo ];
|
||||||
configureFlags = [ "--with-pdo-pgsql=${postgresql}" ];
|
configureFlags = [ "--with-pdo-pgsql=${postgresql}" ];
|
||||||
doCheck = false; }
|
doCheck = false; }
|
||||||
{ name = "pdo_sqlite";
|
{ name = "pdo_sqlite";
|
||||||
internalDeps = [ "pdo" ];
|
internalDeps = [ php.packages.exts.pdo ];
|
||||||
buildInputs = [ sqlite ];
|
buildInputs = [ sqlite ];
|
||||||
configureFlags = [ "--with-pdo-sqlite=${sqlite.dev}" ];
|
configureFlags = [ "--with-pdo-sqlite=${sqlite.dev}" ];
|
||||||
doCheck = false; }
|
doCheck = false; }
|
||||||
|
@ -982,7 +990,7 @@ in
|
||||||
{ name = "tokenizer"; }
|
{ name = "tokenizer"; }
|
||||||
{ name = "wddx";
|
{ name = "wddx";
|
||||||
buildInputs = [ libxml2 ];
|
buildInputs = [ libxml2 ];
|
||||||
internalDeps = [ "session" ];
|
internalDeps = [ php.extensions.session ];
|
||||||
configureFlags = [ "--enable-wddx" "--with-libxml-dir=${libxml2.dev}" ];
|
configureFlags = [ "--enable-wddx" "--with-libxml-dir=${libxml2.dev}" ];
|
||||||
# Removed in php 7.4.
|
# Removed in php 7.4.
|
||||||
enable = lib.versionOlder php.version "7.4"; }
|
enable = lib.versionOlder php.version "7.4"; }
|
||||||
|
|
Loading…
Reference in a new issue