From 5cad1b4aff3054b9c3ab97c420cce7b09b342dc8 Mon Sep 17 00:00:00 2001 From: talyz Date: Wed, 29 Apr 2020 12:46:26 +0200 Subject: [PATCH] php: Get rid of the phpXXbase attributes, update docs Since the introduction of php.unwrapped there's no real need for the phpXXbase attributes, so let's remove them to lessen potential confusion and clutter. Also update the docs to make it clear how to get hold of an unwrapped PHP if needed. --- doc/languages-frameworks/php.section.md | 27 ++++++++++--------- pkgs/development/interpreters/php/default.nix | 2 +- pkgs/servers/http/unit/default.nix | 12 ++++----- pkgs/top-level/all-packages.nix | 2 +- 4 files changed, 22 insertions(+), 21 deletions(-) diff --git a/doc/languages-frameworks/php.section.md b/doc/languages-frameworks/php.section.md index abf91a317695..101f7b043fff 100644 --- a/doc/languages-frameworks/php.section.md +++ b/doc/languages-frameworks/php.section.md @@ -9,18 +9,24 @@ Several versions of PHP are available on Nix, each of which having a wide variety of extensions and libraries available. -The attribute `php` refers to the version of PHP considered most -stable and thoroughly tested in nixpkgs for any given release of -NixOS. Note that while this version of PHP may not be the latest major -release from upstream, any version of PHP supported in nixpkgs may be -utilized by specifying the desired attribute by version, such as -`php74`. +The different versions of PHP that nixpkgs provides are located under +attributes named based on major and minor version number; e.g., +`php74` is PHP 7.4. Only versions of PHP that are supported by upstream for the entirety of a given NixOS release will be included in that release of NixOS. See [PHP Supported Versions](https://www.php.net/supported-versions.php). +The attribute `php` refers to the version of PHP considered most +stable and thoroughly tested in nixpkgs for any given release of +NixOS - not necessarily the latest major release from upstream. + +All available PHP attributes are wrappers around their respective +binary PHP package and provide commonly used extensions this way. The +real PHP 7.4 package, i.e. the unwrapped one, is available as +`php74.unwrapped`; see the next section for more details. + Interactive tools built on PHP are put in `php.packages`; composer is for example available at `php.packages.composer`. @@ -30,12 +36,7 @@ opcache extension shipped with PHP is available at `php.extensions.opcache` and the third-party ImageMagick extension at `php.extensions.imagick`. -The different versions of PHP that nixpkgs provides are located under -attributes named based on major and minor version number; e.g., -`php74` is PHP 7.4 with commonly used extensions installed, -`php74base` is the same PHP runtime without extensions. - -#### Installing PHP with packages +#### Installing PHP with extensions A PHP package with specific extensions enabled can be built using `php.withExtensions`. This is a function which accepts an anonymous @@ -68,7 +69,7 @@ php.withExtensions ({ all, ... }: with all; [ opcache imagick ]) `php.withExtensions` provides extensions by wrapping a minimal php base package, providing a `php.ini` file listing all extensions to be -loaded. You can access this package through the `php.unwrappedPhp` +loaded. You can access this package through the `php.unwrapped` attribute; useful if you, for example, need access to the `dev` output. The generated `php.ini` file can be accessed through the `php.phpIni` attribute. diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix index 57a0b716979e..a67a26f083bf 100644 --- a/pkgs/development/interpreters/php/default.nix +++ b/pkgs/development/interpreters/php/default.nix @@ -302,5 +302,5 @@ let php72 = php72base.withExtensions defaultPhpExtensionsWithHash; in { - inherit php72base php73base php74base php72 php73 php74; + inherit php72 php73 php74; } diff --git a/pkgs/servers/http/unit/default.nix b/pkgs/servers/http/unit/default.nix index f8992bf166b3..0779a31f1064 100644 --- a/pkgs/servers/http/unit/default.nix +++ b/pkgs/servers/http/unit/default.nix @@ -1,8 +1,8 @@ { stdenv, fetchFromGitHub, which , withPython2 ? false, python2 , withPython3 ? true, python3, ncurses -, withPHP72 ? false, php72base -, withPHP73 ? true, php73base +, withPHP72 ? false, php72 +, withPHP73 ? true, php73 , withPerl528 ? false, perl528 , withPerl530 ? true, perl530 , withPerldevel ? false, perldevel @@ -26,8 +26,8 @@ let fpmSupport = false; }; - php72-unit = php72base.override phpConfig; - php73-unit = php73base.override phpConfig; + php72-unit = php72.override phpConfig; + php73-unit = php73.override phpConfig; in stdenv.mkDerivation rec { version = "1.16.0"; pname = "unit"; @@ -71,8 +71,8 @@ in stdenv.mkDerivation rec { postConfigure = '' ${optionalString withPython2 "./configure python --module=python2 --config=${python2}/bin/python2-config --lib-path=${python2}/lib"} ${optionalString withPython3 "./configure python --module=python3 --config=${python3}/bin/python3-config --lib-path=${python3}/lib"} - ${optionalString withPHP72 "./configure php --module=php72 --config=${php72-unit.dev}/bin/php-config --lib-path=${php72-unit}/lib"} - ${optionalString withPHP73 "./configure php --module=php73 --config=${php73-unit.dev}/bin/php-config --lib-path=${php73-unit}/lib"} + ${optionalString withPHP72 "./configure php --module=php72 --config=${php72-unit.unwrapped.dev}/bin/php-config --lib-path=${php72-unit}/lib"} + ${optionalString withPHP73 "./configure php --module=php73 --config=${php73-unit.unwrapped.dev}/bin/php-config --lib-path=${php73-unit}/lib"} ${optionalString withPerl528 "./configure perl --module=perl528 --perl=${perl528}/bin/perl"} ${optionalString withPerl530 "./configure perl --module=perl530 --perl=${perl530}/bin/perl"} ${optionalString withPerldevel "./configure perl --module=perldev --perl=${perldevel}/bin/perl"} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7f2c34039b46..c960ebcf7c3c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9496,7 +9496,7 @@ in inherit (callPackage ../development/interpreters/php { stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv; - }) php74 php73 php72 php74base php73base php72base; + }) php74 php73 php72; picoc = callPackage ../development/interpreters/picoc {};