From 8cd511dde1f7c19ebd9d1d075b013487aba686fd Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Thu, 29 Dec 2022 14:07:39 +0100 Subject: [PATCH] feat: add `passthru` flags in PHP extension builder So they can be handled correctly by `nix-update` tool --- pkgs/build-support/build-pecl.nix | 11 ++++++++++- pkgs/top-level/php-packages.nix | 6 +++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/build-pecl.nix b/pkgs/build-support/build-pecl.nix index d30a073d2fb9..389447e066fa 100644 --- a/pkgs/build-support/build-pecl.nix +++ b/pkgs/build-support/build-pecl.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, php, autoreconfHook, fetchurl, re2c }: +{ stdenv, lib, php, autoreconfHook, fetchurl, re2c, nix-update-script }: { pname , version @@ -12,6 +12,7 @@ url = "https://pecl.php.net/get/${pname}-${version}.tgz"; inherit (args) sha256; } +, passthru ? { } , ... }@args: @@ -34,4 +35,12 @@ stdenv.mkDerivation (args // { internalDeps} ''; checkPhase = "NO_INTERACTON=yes make test"; + + passthru = passthru // { + # Thes flags were introduced for `nix-update` so that it can update + # PHP extensions correctly. + # See the corresponding PR: https://github.com/Mic92/nix-update/pull/123 + isPhpExtension = true; + updateScript = nix-update-script {}; + }; }) diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index df2167b99077..410e28827d8d 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -30,6 +30,7 @@ , libxslt , libzip , net-snmp +, nix-update-script , oniguruma , openldap , openssl_1_1 @@ -51,13 +52,16 @@ lib.makeScope pkgs.newScope (self: with self; { buildPecl = import ../build-support/build-pecl.nix { php = php.unwrapped; inherit lib; - inherit (pkgs) stdenv autoreconfHook fetchurl re2c; + inherit (pkgs) stdenv autoreconfHook fetchurl re2c nix-update-script; }; # Wrap mkDerivation to prepend pname with "php-" to make names consistent # with how buildPecl does it and make the file easier to overview. mkDerivation = { pname, ... }@args: pkgs.stdenv.mkDerivation (args // { pname = "php-${pname}"; + passthru = { + updateScript = nix-update-script {}; + }; meta = args.meta // { mainProgram = args.meta.mainProgram or pname; };