From 108b5eec8fe7683684e5bb981f986e249ad29e1c Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Mon, 17 Feb 2025 21:54:33 +0100 Subject: [PATCH] php84Extensions.pdo_oci: fix build with PHP >= 8.4 --- .../php-packages/pdo_oci/default.nix | 29 +++++++++++++++++++ pkgs/top-level/php-packages.nix | 28 ++++++++++-------- 2 files changed, 45 insertions(+), 12 deletions(-) create mode 100644 pkgs/development/php-packages/pdo_oci/default.nix diff --git a/pkgs/development/php-packages/pdo_oci/default.nix b/pkgs/development/php-packages/pdo_oci/default.nix new file mode 100644 index 000000000000..f4e4bb2856d8 --- /dev/null +++ b/pkgs/development/php-packages/pdo_oci/default.nix @@ -0,0 +1,29 @@ +{ + buildPecl, + lib, + oracle-instantclient, + php, +}: + +buildPecl { + version = "1.1.0"; + pname = "pdo_oci"; + + hash = "sha256-XKtpWH6Rn8s19Wlu15eb/6dcCpJ7Bc/pr9Pxi8L4S8c="; + + buildInputs = [ oracle-instantclient ]; + configureFlags = [ "--with-pdo-oci=instantclient,${oracle-instantclient.lib}/lib" ]; + + internalDeps = [ php.extensions.pdo ]; + postPatch = '' + sed -i -e 's|OCISDKMANINC=`.*$|OCISDKMANINC="${oracle-instantclient.dev}/include"|' config.m4 + ''; + + meta = { + changelog = "https://pecl.php.net/package-changelog.php?package=PDO_OCI"; + description = "The PHP PDO_OCI extension lets you access Oracle Database"; + license = lib.licenses.php301; + homepage = "https://pecl.php.net/package/pdo_oci"; + maintainers = lib.teams.php.members; + }; +} diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index 978c42a0d305..b7d13f2a9637 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -342,22 +342,26 @@ lib.makeScope pkgs.newScope ( pcov = callPackage ../development/php-packages/pcov { }; - pdo_oci = buildPecl rec { - inherit (php.unwrapped) src version; + pdo_oci = + if (lib.versionAtLeast php.version "8.4") then + callPackage ../development/php-packages/pdo_oci { } + else + buildPecl rec { + inherit (php.unwrapped) src version; - pname = "pdo_oci"; - sourceRoot = "php-${version}/ext/pdo_oci"; + pname = "pdo_oci"; + sourceRoot = "php-${version}/ext/pdo_oci"; - buildInputs = [ pkgs.oracle-instantclient ]; - configureFlags = [ "--with-pdo-oci=instantclient,${pkgs.oracle-instantclient.lib}/lib" ]; + buildInputs = [ pkgs.oracle-instantclient ]; + configureFlags = [ "--with-pdo-oci=instantclient,${pkgs.oracle-instantclient.lib}/lib" ]; - internalDeps = [ php.extensions.pdo ]; - postPatch = '' - sed -i -e 's|OCISDKMANINC=`.*$|OCISDKMANINC="${pkgs.oracle-instantclient.dev}/include"|' config.m4 - ''; + internalDeps = [ php.extensions.pdo ]; + postPatch = '' + sed -i -e 's|OCISDKMANINC=`.*$|OCISDKMANINC="${pkgs.oracle-instantclient.dev}/include"|' config.m4 + ''; - meta.maintainers = lib.teams.php.members; - }; + meta.maintainers = lib.teams.php.members; + }; pdo_sqlsrv = callPackage ../development/php-packages/pdo_sqlsrv { };