diff --git a/nixos/doc/manual/release-notes/rl-2511.section.md b/nixos/doc/manual/release-notes/rl-2511.section.md index 13e67bfe3244..456da850e45c 100644 --- a/nixos/doc/manual/release-notes/rl-2511.section.md +++ b/nixos/doc/manual/release-notes/rl-2511.section.md @@ -275,6 +275,8 @@ - The `boot.readOnlyNixStore` has been removed. Control over bind mount options on `/nix/store` is now offered by the `boot.nixStoreMountOpts` option. +- Direct use of `pkgs.formats.systemd` has been deprecated, and should now be instantiated with `pkgs.formats.systemd { }` similarly to other items in `pkgs.formats`. + - The Postfix module has been updated and likely requires configuration changes: - The `services.postfix.sslCert` and `sslKey` options were removed and you now need to configure - [services.postfix.settings.main.smtpd_tls_chain_files](#opt-services.postfix.settings.main.smtpd_tls_chain_files) for server certificates, diff --git a/nixos/modules/system/boot/systemd/journald-remote.nix b/nixos/modules/system/boot/systemd/journald-remote.nix index 5aeb3c8f1597..89baf421f591 100644 --- a/nixos/modules/system/boot/systemd/journald-remote.nix +++ b/nixos/modules/system/boot/systemd/journald-remote.nix @@ -7,7 +7,7 @@ let cfg = config.services.journald.remote; - format = pkgs.formats.systemd; + format = pkgs.formats.systemd { }; cliArgs = lib.cli.toGNUCommandLineShell { } { inherit (cfg) output; diff --git a/nixos/modules/system/boot/systemd/journald-upload.nix b/nixos/modules/system/boot/systemd/journald-upload.nix index c2437e7aadf8..8cd67918f4f0 100644 --- a/nixos/modules/system/boot/systemd/journald-upload.nix +++ b/nixos/modules/system/boot/systemd/journald-upload.nix @@ -7,7 +7,7 @@ let cfg = config.services.journald.upload; - format = pkgs.formats.systemd; + format = pkgs.formats.systemd { }; in { meta.maintainers = [ lib.maintainers.raitobezarius ]; diff --git a/pkgs/pkgs-lib/formats.nix b/pkgs/pkgs-lib/formats.nix index f83a00b9e610..92f27267b609 100644 --- a/pkgs/pkgs-lib/formats.nix +++ b/pkgs/pkgs-lib/formats.nix @@ -425,10 +425,22 @@ optionalAttrs allowAliases aliases let mkValueString = mkValueStringDefault { }; mkKeyValue = k: v: if v == null then "# ${k} is unset" else "${k} = ${mkValueString v}"; + + rawFormat = ini { + listsAsDuplicateKeys = true; + inherit mkKeyValue; + }; in - ini { - listsAsDuplicateKeys = true; - inherit mkKeyValue; + rawFormat + // { + generate = + name: value: + lib.warn + "Direct use of `pkgs.formats.systemd` has been deprecated, please use `pkgs.formats.systemd { }` instead." + rawFormat.generate + name + value; + __functor = self: { }: rawFormat; }; keyValue =