···910The different versions of PHP that nixpkgs provides are located under
11attributes named based on major and minor version number; e.g.,
12-`php74` is PHP 7.4.
1314Only versions of PHP that are supported by upstream for the entirety
15of a given NixOS release will be included in that release of
···23All available PHP attributes are wrappers around their respective
24binary PHP package and provide commonly used extensions this way. The
25real PHP 7.4 package, i.e. the unwrapped one, is available as
26-`php74.unwrapped`; see the next section for more details.
2728Interactive tools built on PHP are put in `php.packages`; composer is
29for example available at `php.packages.composer`.
···910The different versions of PHP that nixpkgs provides are located under
11attributes named based on major and minor version number; e.g.,
12+`php81` is PHP 8.1.
1314Only versions of PHP that are supported by upstream for the entirety
15of a given NixOS release will be included in that release of
···23All available PHP attributes are wrappers around their respective
24binary PHP package and provide commonly used extensions this way. The
25real PHP 7.4 package, i.e. the unwrapped one, is available as
26+`php81.unwrapped`; see the next section for more details.
2728Interactive tools built on PHP are put in `php.packages`; composer is
29for example available at `php.packages.composer`.
+17-6
lib/types.nix
···570 { modules
571 , specialArgs ? {}
572 , shorthandOnlyDefinesConfig ? false
0573574 # Internal variable to avoid `_key` collisions regardless
575 # of `extendModules`. Wired through by `evalModules`.
···618619 freeformType = base._module.freeformType;
62000621 in
622- mkOptionType rec {
623- name = "submodule";
624- description = freeformType.description or name;
00625 check = x: isAttrs x || isFunction x || path.check x;
626 merge = loc: defs:
627 (base.extendModules {
···647 functor = defaultFunctor name // {
648 type = types.submoduleWith;
649 payload = {
650- modules = modules;
651- specialArgs = specialArgs;
652- shorthandOnlyDefinesConfig = shorthandOnlyDefinesConfig;
653 };
654 binOp = lhs: rhs: {
655 modules = lhs.modules ++ rhs.modules;
···666 else if lhs.shorthandOnlyDefinesConfig == rhs.shorthandOnlyDefinesConfig
667 then lhs.shorthandOnlyDefinesConfig
668 else throw "A submoduleWith option is declared multiple times with conflicting shorthandOnlyDefinesConfig values";
00000000669 };
670 };
671 };
···570 { modules
571 , specialArgs ? {}
572 , shorthandOnlyDefinesConfig ? false
573+ , description ? null
574575 # Internal variable to avoid `_key` collisions regardless
576 # of `extendModules`. Wired through by `evalModules`.
···619620 freeformType = base._module.freeformType;
621622+ name = "submodule";
623+624 in
625+ mkOptionType {
626+ inherit name;
627+ description =
628+ if description != null then description
629+ else freeformType.description or name;
630 check = x: isAttrs x || isFunction x || path.check x;
631 merge = loc: defs:
632 (base.extendModules {
···652 functor = defaultFunctor name // {
653 type = types.submoduleWith;
654 payload = {
655+ inherit modules specialArgs shorthandOnlyDefinesConfig description;
00656 };
657 binOp = lhs: rhs: {
658 modules = lhs.modules ++ rhs.modules;
···669 else if lhs.shorthandOnlyDefinesConfig == rhs.shorthandOnlyDefinesConfig
670 then lhs.shorthandOnlyDefinesConfig
671 else throw "A submoduleWith option is declared multiple times with conflicting shorthandOnlyDefinesConfig values";
672+ description =
673+ if lhs.description == null
674+ then rhs.description
675+ else if rhs.description == null
676+ then lhs.description
677+ else if lhs.description == rhs.description
678+ then lhs.description
679+ else throw "A submoduleWith option is declared multiple times with conflicting descriptions";
680 };
681 };
682 };
···108 <literal>(with foo; isPower && is32bit && isBigEndian)</literal>.
109 </para>
110 </listitem>
111+ <listitem>
112+ <para>
113+ PHP 7.4 is no longer supported due to upstream not supporting
114+ this version for the entire lifecycle of the 22.11 release.
115+ </para>
116+ </listitem>
117 </itemizedlist>
118 </section>
119 <section xml:id="sec-release-22.11-notable-changes">
+2
nixos/doc/manual/release-notes/rl-2211.section.md
···4546- The `isPowerPC` predicate, found on `platform` attrsets (`hostPlatform`, `buildPlatform`, `targetPlatform`, etc) has been removed in order to reduce confusion. The predicate was was defined such that it matches only the 32-bit big-endian members of the POWER/PowerPC family, despite having a name which would imply a broader set of systems. If you were using this predicate, you can replace `foo.isPowerPC` with `(with foo; isPower && is32bit && isBigEndian)`.
47004849<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
50
···4546- The `isPowerPC` predicate, found on `platform` attrsets (`hostPlatform`, `buildPlatform`, `targetPlatform`, etc) has been removed in order to reduce confusion. The predicate was was defined such that it matches only the 32-bit big-endian members of the POWER/PowerPC family, despite having a name which would imply a broader set of systems. If you were using this predicate, you can replace `foo.isPowerPC` with `(with foo; isPower && is32bit && isBigEndian)`.
4748+- PHP 7.4 is no longer supported due to upstream not supporting this
49+ version for the entire lifecycle of the 22.11 release.
5051<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
52
···115 user = "grocy";
116 group = "nginx";
117118- # PHP 7.4 is the only version which is supported/tested by upstream:
119- # https://github.com/grocy/grocy/blob/v3.0.0/README.md#how-to-install
120- phpPackage = pkgs.php74;
121122 inherit (cfg.phpfpm) settings;
123
···115 user = "grocy";
116 group = "nginx";
117118+ # PHP 8.0 is the only version which is supported/tested by upstream:
119+ # https://github.com/grocy/grocy/blob/v3.3.0/README.md#how-to-install
120+ phpPackage = pkgs.php80;
121122 inherit (cfg.phpfpm) settings;
123
···126127 # Workaround for the following error affecting newer versions of Clang:
128 # ./config.def.h:xxx:x: error: 'TARGET_OS_TV' is not defined, evaluates to 0 [-Werror,-Wundef-prefix=TARGET_OS_]
129- NIX_CFLAGS_COMPILE = lib.optional stdenv.cc.isClang [ "-Wno-undef-prefix" ];
00000130131 meta = with lib; {
132 homepage = "https://libretro.com";
···126127 # Workaround for the following error affecting newer versions of Clang:
128 # ./config.def.h:xxx:x: error: 'TARGET_OS_TV' is not defined, evaluates to 0 [-Werror,-Wundef-prefix=TARGET_OS_]
129+ NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isClang [ "-Wno-undef-prefix" ]
130+ # Workaround build failure on -fno-common toolchains:
131+ # duplicate symbol '_apple_platform' in:ui_cocoa.o cocoa_common.o
132+ # TODO: drop when upstream gets a fix for it:
133+ # https://github.com/libretro/RetroArch/issues/14025
134+ ++ lib.optionals stdenv.isDarwin [ "-fcommon" ];
135136 meta = with lib; {
137 homepage = "https://libretro.com";
···1013 phwmon = throw "phwmon has been removed: abandoned by upstream"; # Added 2022-04-24
10141015 # Obsolete PHP version aliases
00001016 php73 = throw "php73 has been dropped due to the lack of maintanence from upstream for future releases"; # Added 2021-06-03
1017 php73Packages = php73; # Added 2021-06-03
1018 php73Extensions = php73; # Added 2021-06-03
···1013 phwmon = throw "phwmon has been removed: abandoned by upstream"; # Added 2022-04-24
10141015 # Obsolete PHP version aliases
1016+ php74 = throw "php74 has been dropped due to the lack of maintanence from upstream for future releases"; # Added 2022-05-24
1017+ php74Packages = php74; # Added 2022-05-24
1018+ php74Extensions = php74; # Added 2022-05-24
1019+1020 php73 = throw "php73 has been dropped due to the lack of maintanence from upstream for future releases"; # Added 2021-06-03
1021 php73Packages = php73; # Added 2021-06-03
1022 php73Extensions = php73; # Added 2021-06-03