···37 pkgs/development/cuda-modules
38 pkgs/test/cuda
39 pkgs/top-level/cuda-packages.nix
040 # Iterate over all environment variables beginning with NIX_FMT_PATHS_.
41 run: |
42 for env_var in "${!NIX_FMT_PATHS_@}"; do
···37 pkgs/development/cuda-modules
38 pkgs/test/cuda
39 pkgs/top-level/cuda-packages.nix
40+ NIX_FMT_PATHS_VSCODE_EXTS: pkgs/applications/editors/vscode/extensions
41 # Iterate over all environment variables beginning with NIX_FMT_PATHS_.
42 run: |
43 for env_var in "${!NIX_FMT_PATHS_@}"; do
···1011- `cryptsetup` has been upgraded from 2.6.1 to 2.7.0. Cryptsetup is a critical component enabling LUKS-based (but not only) full disk encryption.
12 Take the time to review [the release notes](https://gitlab.com/cryptsetup/cryptsetup/-/raw/v2.7.0/docs/v2.7.0-ReleaseNotes).
13- One of the highlight is that it is now possible to use hardware OPAL-based encryption of your disk with `cryptsetup`, it has a lot of caveats, see the above notes for the full details.
1415- `screen`'s module has been cleaned, and will now require you to set `programs.screen.enable` in order to populate `screenrc` and add the program to the environment.
1617- `linuxPackages_testing_bcachefs` is now fully deprecated by `linuxPackages_latest`, and is therefore no longer available.
1819-- The default kernel package has been updated from 6.1 to 6.6. All supported kernels remain available.
2021- NixOS now installs a stub ELF loader that prints an informative error message when users attempt to run binaries not made for NixOS.
22 - This can be disabled through the `environment.stub-ld.enable` option.
···34 - `nixVersions.git` which tracks the latest Nix master and is roughly updated once a week. This is intended to enable people to easily test unreleased changes of Nix to catch regressions earlier.
35 - `nixVersions.latest` which points to the latest Nix version packaged in nixpkgs.
3637-- Julia environments can now be built with arbitrary packages from the ecosystem using the `.withPackages` function. For example: `julia.withPackages ["Plots"]`.
3839-- The PipeWire and WirePlumber modules have removed support for using
40`environment.etc."pipewire/..."` and `environment.etc."wireplumber/..."`.
41Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for PipeWire and
42`services.pipewire.wireplumber.configPackages` for WirePlumber instead."
···45 Refer to upstream [upgrade instructions](https://goteleport.com/docs/management/operations/upgrading/)
46 and release notes for [v15](https://goteleport.com/docs/changelog/#1500-013124).
4748-- A new option `systemd.sysusers.enable` was added. If enabled, users and
49 groups are created with systemd-sysusers instead of with a custom perl script.
5051- `virtualisation.docker.enableNvidia` and `virtualisation.podman.enableNvidia` options are deprecated. `hardware.nvidia-container-toolkit.enable` should be used instead. This option will expose GPUs on containers with the `--device` CLI option. This is supported by Docker 25, Podman 3.2.0 and Singularity 4. Any container runtime that supports the CDI specification will take advantage of this feature.
···69 }
70 ```
7172-- The initial Incus LTS release (v6.0.x) is now available through `virtualisation.incus` as the default. Users who wish to continue using the non-LTS release will need to set `virtualisation.incus.package = pkgs.incus`. Stable release users are encouraged to stay on the LTS release as non-LTS releases will by default not be backported.
7374-- Canonical LXD has been upgraded to v5.21.x, an LTS release. The LTS release is now the only supported LXD release. Users are encouraged to [migrate to Incus](https://linuxcontainers.org/incus/docs/main/howto/server_migrate_lxd/) for better support on NixOS.
7576-- lua interpreters default LUA_PATH and LUA_CPATH are not overriden by nixpkgs
77 anymore, we patch LUA_ROOT instead which is more respectful to upstream.
7879-- Plasma 6 is now available and can be installed with `services.xserver.desktopManager.plasma6.enable = true;`. Plasma 5 will likely be deprecated in the next release (24.11). Note that Plasma 6 runs as Wayland by default, and the X11 session needs to be explicitly selected if necessary.
8081-- The desktop mode of Lomiri (formerly known as Unity8), using Mir 2.x to function as a Wayland compositor, is now available and can be installed with `services.desktopManager.lomiri.enable = true`. Note that some core applications, services and indicators have yet to be packaged, and some functions may remain incomplete, but the base experience should be there.
8283## New Services {#sec-release-24.05-new-services}
84···100101- [ryzen-smu](https://gitlab.com/leogx9r/ryzen_smu), Linux kernel driver to expose the SMU (System Management Unit) for certain AMD Ryzen Processors. Includes the userspace program `monitor_cpu`. Available at [hardward.cpu.amd.ryzen-smu](#opt-hardware.cpu.amd.ryzen-smu.enable)
102103-- systemd's gateway, upload, and remote services, which provides ways of sending journals across the network. Enable using [services.journald.gateway](#opt-services.journald.gateway.enable), [services.journald.upload](#opt-services.journald.upload.enable), and [services.journald.remote](#opt-services.journald.remote.enable).
104105- [GNS3](https://www.gns3.com/), a network software emulator. Available as [services.gns3-server](#opt-services.gns3-server.enable).
106···127- [db-rest](https://github.com/derhuerst/db-rest), a wrapper around Deutsche Bahn's internal API for public transport data. Available as [services.db-rest](#opt-services.db-rest.enable).
128129- [Anki Sync Server](https://docs.ankiweb.net/sync-server.html), the official sync server built into recent versions of Anki. Available as [services.anki-sync-server](#opt-services.anki-sync-server.enable).
130-The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been marked deprecated and will be dropped after 24.05 due to lack of maintenance of the anki-sync-server softwares.
131132- [mautrix-meta](https://github.com/mautrix/meta), a Matrix <-> Facebook and Matrix <-> Instagram hybrid puppeting/relaybot bridge. Available as services.mautrix-meta
133···139140- [Suwayomi Server](https://github.com/Suwayomi/Suwayomi-Server), a free and open source manga reader server that runs extensions built for [Tachiyomi](https://tachiyomi.org). Available as [services.suwayomi-server](#opt-services.suwayomi-server.enable).
141142-- A self-hosted management server for the [Netbird](https://netbird.io). Available as [services.netbird.server](#opt-services.netbird.server.enable).
143144- [ping_exporter](https://github.com/czerwonk/ping_exporter), a Prometheus exporter for ICMP echo requests. Available as [services.prometheus.exporters.ping](#opt-services.prometheus.exporters.ping.enable).
145···151152- [Monado](https://monado.freedesktop.org/), an open source XR runtime. Available as [services.monado](#opt-services.monado.enable).
153154-- [Pretix](https://pretix.eu/about/en/), an open source ticketing software for events. Available as [services.pretix]($opt-services-pretix.enable).
155156-- [microsocks](https://github.com/rofl0r/microsocks), a tiny, portable SOCKS5 server with very moderate resource usage. Available as [services.microsocks]($opt-services-microsocks.enable).
157158- [inadyn](https://github.com/troglobit/inadyn), a Dynamic DNS client with built-in support for multiple providers. Available as [services.inadyn](#opt-services.inadyn.enable).
159···163164- [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`.
165166-- [wyoming-satellite](https://github.com/rhasspy/wyoming-satellite), a voice assistant satellite for Home Assistant using the Wyoming protocol. Available as [services.wyoming.satellite]($opt-services.wyoming.satellite.enable).
167168- [TuxClocker](https://github.com/Lurkki14/tuxclocker), a hardware control and monitoring program. Available as [programs.tuxclocker](#opt-programs.tuxclocker.enable).
169170-- binfmt option for AppImage-run to support running [AppImage](https://appimage.org/)'s seamlessly on NixOS.. Available as [programs.appimage.binfmt](#opt-programs.appimage.binfmt).
171172- [nh](https://github.com/viperML/nh), yet another Nix CLI helper. Available as [programs.nh](#opt-programs.nh.enable).
173174- [ALVR](https://github.com/alvr-org/alvr), a VR desktop streamer. Available as [programs.alvr](#opt-programs.alvr.enable)
175176-- [RustDesk](https://rustdesk.com), a full-featured open source remote control alternative for self-hosting and security with minimal configuration. Alternative to TeamViewer.
177178-- [Scrutiny](https://github.com/AnalogJ/scrutiny), a S.M.A.R.T monitoring tool for hard disks with a web frontend.
179180-- [davis](https://github.com/tchapi/davis), a simple CardDav and CalDav server inspired by Baïkal. Available as [services.davis]($opt-services-davis.enable).
181182- [Firefly-iii](https://www.firefly-iii.org), a free and open source personal finance manager. Available as [services.firefly-iii](#opt-services.firefly-iii.enable)
183···208 defaulting to `/etc/ssh/authorized_keys.d/%u`.
209 ::: {.warning}
210 Users of {manpage}`pam_ssh_agent_auth(8)` must take care that the pubkeys they use (for instance with `sudo`)
211- are listed in [`sshAgentAuth.authorizedKeysFiles`]..
212 :::
213 ::: {.note}
214 Previously, all `services.openssh.authorizedKeysFiles` were trusted, including `~/.ssh/authorized_keys`,
···226227- `cudaPackages.autoFixElfFiles` has been deprecated for `pkgs.autoFixElfFiles`. Functionality has not changed, but the setuphook has been renamed and moved to the top-level package scope.
228229-- `appimageTools.wrapAppImage` now create the binary at `$out/bin/${pname}` rather than `$out/bin/${pname}-${version}`, which will break downstream workarounds.
230231- `pdns` was updated to version [v4.9.x](https://doc.powerdns.com/authoritative/changelog/4.9.html), which introduces breaking changes. Check out the [Upgrade Notes](https://doc.powerdns.com/authoritative/upgrading.html#to-4-9-0) for details.
232···246 The list in `nixos/modules/virtualisation/amazon-ec2-amis.nix` will stop
247 being updated and will be removed in the future.
248249-- The option `services.postgresql.ensureUsers._.ensurePermissions` has been removed as it's
250 not declarative and is broken with newer postgresql versions. Consider using
251 [](#opt-services.postgresql.ensureUsers._.ensureDBOwnership)
252- instead or a tool that's more suited for managing the data inside a postgresql database.
253254- `idris2` was updated to v0.7.0. This version introduces breaking changes. Check out the [changelog](https://github.com/idris-lang/Idris2/blob/v0.7.0/CHANGELOG.md#v070) for details.
255256- `nvtop` family of packages was reorganized into nested attrset. `nvtop` has been renamed to `nvtopPackages.full`, and all `nvtop-{amd,nvidia,intel,msm}` packages are now named as `nvtopPackages.{amd,nvidia,intel,msm}`
257258-- `neo4j` has been updated to version 5, you may want to read the [release notes for Neo4j 5](https://neo4j.com/release-notes/database/neo4j-5/)
259260- `services.neo4j.allowUpgrade` was removed and no longer has any effect. Neo4j 5 supports automatic rolling upgrades.
261
···1011- `cryptsetup` has been upgraded from 2.6.1 to 2.7.0. Cryptsetup is a critical component enabling LUKS-based (but not only) full disk encryption.
12 Take the time to review [the release notes](https://gitlab.com/cryptsetup/cryptsetup/-/raw/v2.7.0/docs/v2.7.0-ReleaseNotes).
13+ One of the highlights is that it is now possible to use hardware OPAL-based encryption of your disk with `cryptsetup`. It has a lot of caveats, see the above notes for the full details.
1415- `screen`'s module has been cleaned, and will now require you to set `programs.screen.enable` in order to populate `screenrc` and add the program to the environment.
1617- `linuxPackages_testing_bcachefs` is now fully deprecated by `linuxPackages_latest`, and is therefore no longer available.
1819+- (TODO not sure what path to use here) The default kernel package has been updated from 6.1 to 6.6. All supported kernels remain available.
2021- NixOS now installs a stub ELF loader that prints an informative error message when users attempt to run binaries not made for NixOS.
22 - This can be disabled through the `environment.stub-ld.enable` option.
···34 - `nixVersions.git` which tracks the latest Nix master and is roughly updated once a week. This is intended to enable people to easily test unreleased changes of Nix to catch regressions earlier.
35 - `nixVersions.latest` which points to the latest Nix version packaged in nixpkgs.
3637+- `julia` environments can now be built with arbitrary packages from the ecosystem using the `.withPackages` function. For example: `julia.withPackages ["Plots"]`.
3839+- `pipewire` and `wireplumber` modules have removed support for using
40`environment.etc."pipewire/..."` and `environment.etc."wireplumber/..."`.
41Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for PipeWire and
42`services.pipewire.wireplumber.configPackages` for WirePlumber instead."
···45 Refer to upstream [upgrade instructions](https://goteleport.com/docs/management/operations/upgrading/)
46 and release notes for [v15](https://goteleport.com/docs/changelog/#1500-013124).
4748+- `systemd.sysusers.enable` option was added. If enabled, users and
49 groups are created with systemd-sysusers instead of with a custom perl script.
5051- `virtualisation.docker.enableNvidia` and `virtualisation.podman.enableNvidia` options are deprecated. `hardware.nvidia-container-toolkit.enable` should be used instead. This option will expose GPUs on containers with the `--device` CLI option. This is supported by Docker 25, Podman 3.2.0 and Singularity 4. Any container runtime that supports the CDI specification will take advantage of this feature.
···69 }
70 ```
7172+- `virtialisation.incus` now defaults to the newly-added `incus-lts` release (v6.0.x). Users who wish to continue using the non-LTS release will need to set `virtualisation.incus.package = pkgs.incus`. Stable release users are encouraged to stay on the LTS release as non-LTS releases will by default not be backported.
7374+- Canonical `lxd` has been upgraded to v5.21.x, an LTS release. The LTS release is now the only supported LXD release. Users are encouraged to [migrate to Incus](https://linuxcontainers.org/incus/docs/main/howto/server_migrate_lxd/) for better support on NixOS.
7576+- `lua` interpreters default LUA_PATH and LUA_CPATH are not overriden by nixpkgs
77 anymore, we patch LUA_ROOT instead which is more respectful to upstream.
7879+- `plasma6` is now available and can be installed with `services.xserver.desktopManager.plasma6.enable = true;`. Plasma 5 will likely be deprecated in the next release (24.11). Note that Plasma 6 runs as Wayland by default, and the X11 session needs to be explicitly selected if necessary.
8081+- `lomiri` (formerly known as Unity8) desktop mode, using Mir 2.x to function as a Wayland compositor, is now available and can be installed with `services.desktopManager.lomiri.enable = true`. Note that some core applications, services and indicators have yet to be packaged, and some functions may remain incomplete, but the base experience should be there.
8283## New Services {#sec-release-24.05-new-services}
84···100101- [ryzen-smu](https://gitlab.com/leogx9r/ryzen_smu), Linux kernel driver to expose the SMU (System Management Unit) for certain AMD Ryzen Processors. Includes the userspace program `monitor_cpu`. Available at [hardward.cpu.amd.ryzen-smu](#opt-hardware.cpu.amd.ryzen-smu.enable)
102103+- `systemd`'s `gateway`, `upload`, and `remote` services, which provide ways of sending journals across the network. Enable using [services.journald.gateway](#opt-services.journald.gateway.enable), [services.journald.upload](#opt-services.journald.upload.enable), and [services.journald.remote](#opt-services.journald.remote.enable).
104105- [GNS3](https://www.gns3.com/), a network software emulator. Available as [services.gns3-server](#opt-services.gns3-server.enable).
106···127- [db-rest](https://github.com/derhuerst/db-rest), a wrapper around Deutsche Bahn's internal API for public transport data. Available as [services.db-rest](#opt-services.db-rest.enable).
128129- [Anki Sync Server](https://docs.ankiweb.net/sync-server.html), the official sync server built into recent versions of Anki. Available as [services.anki-sync-server](#opt-services.anki-sync-server.enable).
130+The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been marked deprecated and will be dropped after 24.05 due to lack of maintenance of the anki-sync-server software.
131132- [mautrix-meta](https://github.com/mautrix/meta), a Matrix <-> Facebook and Matrix <-> Instagram hybrid puppeting/relaybot bridge. Available as services.mautrix-meta
133···139140- [Suwayomi Server](https://github.com/Suwayomi/Suwayomi-Server), a free and open source manga reader server that runs extensions built for [Tachiyomi](https://tachiyomi.org). Available as [services.suwayomi-server](#opt-services.suwayomi-server.enable).
141142+- [Netbird](https://netbird.io), an open-source VPN management platform, now has a self-hosted management server. Available as [services.netbird.server](#opt-services.netbird.server.enable).
143144- [ping_exporter](https://github.com/czerwonk/ping_exporter), a Prometheus exporter for ICMP echo requests. Available as [services.prometheus.exporters.ping](#opt-services.prometheus.exporters.ping.enable).
145···151152- [Monado](https://monado.freedesktop.org/), an open source XR runtime. Available as [services.monado](#opt-services.monado.enable).
153154+- [Pretix](https://pretix.eu/about/en/), an open source ticketing software for events. Available as [services.pretix](#opt-services.pretix.enable).
155156+- [microsocks](https://github.com/rofl0r/microsocks), a tiny, portable SOCKS5 server with very moderate resource usage. Available as [services.microsocks](#opt-services.microsocks.enable).
157158- [inadyn](https://github.com/troglobit/inadyn), a Dynamic DNS client with built-in support for multiple providers. Available as [services.inadyn](#opt-services.inadyn.enable).
159···163164- [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`.
165166+- [wyoming-satellite](https://github.com/rhasspy/wyoming-satellite), a voice assistant satellite for Home Assistant using the Wyoming protocol. Available as [services.wyoming.satellite](#opt-services.wyoming.satellite.enable).
167168- [TuxClocker](https://github.com/Lurkki14/tuxclocker), a hardware control and monitoring program. Available as [programs.tuxclocker](#opt-programs.tuxclocker.enable).
169170+- [AppImage](https://appimage.org/), a tool to package desktop applications, now has a `binfmt` option to support running AppImages seamlessly on NixOS. Available as [programs.appimage.binfmt](#opt-programs.appimage.binfmt).
171172- [nh](https://github.com/viperML/nh), yet another Nix CLI helper. Available as [programs.nh](#opt-programs.nh.enable).
173174- [ALVR](https://github.com/alvr-org/alvr), a VR desktop streamer. Available as [programs.alvr](#opt-programs.alvr.enable)
175176+- [RustDesk](https://rustdesk.com), a full-featured open source remote control alternative for self-hosting and security with minimal configuration. Alternative to TeamViewer. Available as [services.rustdesk-server](#opt-services.rustdesk-server.enable).
177178+- [Scrutiny](https://github.com/AnalogJ/scrutiny), a S.M.A.R.T monitoring tool for hard disks with a web frontend. Available as [services.scrutiny](#opt-services.scrutiny.enable).
179180+- [davis](https://github.com/tchapi/davis), a simple CardDav and CalDav server inspired by Baïkal. Available as [services.davis](#opt-services.davis.enable).
181182- [Firefly-iii](https://www.firefly-iii.org), a free and open source personal finance manager. Available as [services.firefly-iii](#opt-services.firefly-iii.enable)
183···208 defaulting to `/etc/ssh/authorized_keys.d/%u`.
209 ::: {.warning}
210 Users of {manpage}`pam_ssh_agent_auth(8)` must take care that the pubkeys they use (for instance with `sudo`)
211+ are listed in [`sshAgentAuth.authorizedKeysFiles`].
212 :::
213 ::: {.note}
214 Previously, all `services.openssh.authorizedKeysFiles` were trusted, including `~/.ssh/authorized_keys`,
···226227- `cudaPackages.autoFixElfFiles` has been deprecated for `pkgs.autoFixElfFiles`. Functionality has not changed, but the setuphook has been renamed and moved to the top-level package scope.
228229+- `appimageTools.wrapAppImage` now creates the binary at `$out/bin/${pname}` rather than `$out/bin/${pname}-${version}`, which will break downstream workarounds.
230231- `pdns` was updated to version [v4.9.x](https://doc.powerdns.com/authoritative/changelog/4.9.html), which introduces breaking changes. Check out the [Upgrade Notes](https://doc.powerdns.com/authoritative/upgrading.html#to-4-9-0) for details.
232···246 The list in `nixos/modules/virtualisation/amazon-ec2-amis.nix` will stop
247 being updated and will be removed in the future.
248249+- The option `services.postgresql.ensureUsers._.ensurePermissions` has been removed as it is
250 not declarative and is broken with newer postgresql versions. Consider using
251 [](#opt-services.postgresql.ensureUsers._.ensureDBOwnership)
252+ instead or a tool that is more suited for managing the data inside a postgresql database.
253254- `idris2` was updated to v0.7.0. This version introduces breaking changes. Check out the [changelog](https://github.com/idris-lang/Idris2/blob/v0.7.0/CHANGELOG.md#v070) for details.
255256- `nvtop` family of packages was reorganized into nested attrset. `nvtop` has been renamed to `nvtopPackages.full`, and all `nvtop-{amd,nvidia,intel,msm}` packages are now named as `nvtopPackages.{amd,nvidia,intel,msm}`
257258+- `neo4j` has been updated to version 5. You may want to read the [release notes for Neo4j 5](https://neo4j.com/release-notes/database/neo4j-5/).
259260- `services.neo4j.allowUpgrade` was removed and no longer has any effect. Neo4j 5 supports automatic rolling upgrades.
261
···19 [Startup]
20 sync_effects_enabled = ${toPyBoolStr cfg.syncEffectsEnabled}
21 devices_off_on_screensaver = ${toPyBoolStr cfg.devicesOffOnScreensaver}
22+ battery_notifier = ${toPyBoolStr (cfg.mouseBatteryNotifier || cfg.batteryNotifier.enable)}
23+ battery_notifier_freq = ${builtins.toString cfg.batteryNotifier.frequency}
24+ battery_notifier_percent = ${builtins.toString cfg.batteryNotifier.percentage}
2526 [Statistics]
27 key_statistics = ${toPyBoolStr cfg.keyStatistics}
···88 '';
89 };
9091+ batteryNotifier = mkOption {
92+ description = ''
93+ Settings for device battery notifications.
94+ '';
95+ default = {};
96+ type = types.submodule {
97+ options = {
98+ enable = mkOption {
99+ type = types.bool;
100+ default = true;
101+ description = ''
102+ Mouse battery notifier.
103+ '';
104+ };
105+ frequency = mkOption {
106+ type = types.int;
107+ default = 600;
108+ description = ''
109+ How often battery notifications should be shown (in seconds).
110+ A value of 0 disables notifications.
111+ '';
112+ };
113+114+ percentage = mkOption {
115+ type = types.int;
116+ default = 33;
117+ description = ''
118+ At what battery percentage the device should reach before
119+ sending notifications.
120+ '';
121+ };
122+ };
123+ };
124+ };
125+126 keyStatistics = mkOption {
127 type = types.bool;
128 default = false;
···144 };
145146 config = mkIf cfg.enable {
147+ warnings = flatten [
148+ (optional cfg.mouseBatteryNotifier ''
149+ The option openrazer.mouseBatteryNotifier is deprecated.
150+ Please use openrazer.batteryNotifier instead to enable and configure battery notifications.
151+ '')
152+ ];
153+154 boot.extraModulePackages = [ kernelPackages.openrazer ];
155 boot.kernelModules = drivers;
156···171 systemd.user.services.openrazer-daemon = {
172 description = "Daemon to manage razer devices in userspace";
173 unitConfig.Documentation = "man:openrazer-daemon(8)";
174+ # Requires a graphical session so the daemon knows when the screensaver
175+ # starts. See the 'devicesOffOnScreensaver' option.
176+ wantedBy = [ "graphical-session.target" ];
177+ partOf = [ "graphical-session.target" ];
178+ serviceConfig = {
179+ Type = "dbus";
180+ BusName = "org.razer";
181+ ExecStart = "${daemonExe} --foreground";
182+ Restart = "always";
183 };
184 };
185 };
+28-5
nixos/modules/services/databases/postgresql.nix
···1{ config, lib, pkgs, ... }:
23-with lib;
4-5let
000000000000000000000000067 cfg = config.services.postgresql;
8···24 if true == value then "yes"
25 else if false == value then "no"
26 else if isString value then "'${lib.replaceStrings ["'"] ["''"] value}'"
27- else toString value;
2829 # The main PostgreSQL configuration file.
30 configFile = pkgs.writeTextDir "postgresql.conf" (concatStringsSep "\n" (mapAttrsToList (n: v: "${n} = ${toStr v}") (filterAttrs (const (x: x != null)) cfg.settings)));
···439 config = mkIf cfg.enable {
440441 assertions = map ({ name, ensureDBOwnership, ... }: {
442- assertion = ensureDBOwnership -> builtins.elem name cfg.ensureDatabases;
443 message = ''
444 For each database user defined with `services.postgresql.ensureUsers` and
445 `ensureDBOwnership = true;`, a database with the same name must be defined
···537 # Wait for PostgreSQL to be ready to accept connections.
538 postStart =
539 ''
540- PSQL="psql --port=${toString cfg.settings.port}"
541542 while ! $PSQL -d postgres -c "" 2> /dev/null; do
543 if ! kill -0 "$MAINPID"; then exit 1; fi
···1{ config, lib, pkgs, ... }:
2003let
4+ inherit (lib)
5+ attrValues
6+ concatMapStrings
7+ concatStringsSep
8+ const
9+ elem
10+ filterAttrs
11+ isString
12+ literalExpression
13+ mapAttrs
14+ mapAttrsToList
15+ mkAfter
16+ mkBefore
17+ mkDefault
18+ mkEnableOption
19+ mkIf
20+ mkMerge
21+ mkOption
22+ mkPackageOption
23+ mkRemovedOptionModule
24+ mkRenamedOptionModule
25+ optionalString
26+ types
27+ versionAtLeast
28+ ;
2930 cfg = config.services.postgresql;
31···47 if true == value then "yes"
48 else if false == value then "no"
49 else if isString value then "'${lib.replaceStrings ["'"] ["''"] value}'"
50+ else builtins.toString value;
5152 # The main PostgreSQL configuration file.
53 configFile = pkgs.writeTextDir "postgresql.conf" (concatStringsSep "\n" (mapAttrsToList (n: v: "${n} = ${toStr v}") (filterAttrs (const (x: x != null)) cfg.settings)));
···462 config = mkIf cfg.enable {
463464 assertions = map ({ name, ensureDBOwnership, ... }: {
465+ assertion = ensureDBOwnership -> elem name cfg.ensureDatabases;
466 message = ''
467 For each database user defined with `services.postgresql.ensureUsers` and
468 `ensureDBOwnership = true;`, a database with the same name must be defined
···560 # Wait for PostgreSQL to be ready to accept connections.
561 postStart =
562 ''
563+ PSQL="psql --port=${builtins.toString cfg.settings.port}"
564565 while ! $PSQL -d postgres -c "" 2> /dev/null; do
566 if ! kill -0 "$MAINPID"; then exit 1; fi
+2-2
nixos/modules/services/security/vault.nix
···56 };
5758 devRootTokenID = mkOption {
59- type = types.str;
60- default = false;
61 description = ''
62 Initial root token. This only applies when {option}`services.vault.dev` is true
63 '';
···56 };
5758 devRootTokenID = mkOption {
59+ type = types.nullOr types.str;
60+ default = null;
61 description = ''
62 Initial root token. This only applies when {option}`services.vault.dev` is true
63 '';
···352353 # The acme-challenge location doesn't need to be added if we are not using any automated
354 # certificate provisioning and can also be omitted when we use a certificate obtained via a DNS-01 challenge
355- acmeLocation = optionalString (vhost.enableACME || (vhost.useACMEHost != null && config.security.acme.certs.${vhost.useACMEHost}.dnsProvider == null))
0356 # Rule for legitimate ACME Challenge requests (like /.well-known/acme-challenge/xxxxxxxxx)
357 # We use ^~ here, so that we don't check any regexes (which could
358 # otherwise easily override this intended match accidentally).
···352353 # The acme-challenge location doesn't need to be added if we are not using any automated
354 # certificate provisioning and can also be omitted when we use a certificate obtained via a DNS-01 challenge
355+ acmeName = if vhost.useACMEHost != null then vhost.useACMEHost else vhostName;
356+ acmeLocation = optionalString ((vhost.enableACME || vhost.useACMEHost != null) && config.security.acme.certs.${acmeName}.dnsProvider == null)
357 # Rule for legitimate ACME Challenge requests (like /.well-known/acme-challenge/xxxxxxxxx)
358 # We use ^~ here, so that we don't check any regexes (which could
359 # otherwise easily override this intended match accidentally).
···1-{ lib
2-, nixosTests
3-, vscode-utils
4-, useLocalExtensions ? false
05}:
6# Note that useLocalExtensions requires that vscode-server is not running
7# on host. If it is, you'll need to remove $HOME/.vscode-server,
···92 --replace '# Start the server\n' '${patch}'
93 '';
9495- passthru.tests = { inherit (nixosTests) vscode-remote-ssh; };
009697 meta = {
98 description = "Use any remote machine with a SSH server as your development environment.";
···1+{
2+ lib,
3+ nixosTests,
4+ vscode-utils,
5+ useLocalExtensions ? false,
6}:
7# Note that useLocalExtensions requires that vscode-server is not running
8# on host. If it is, you'll need to remove $HOME/.vscode-server,
···93 --replace '# Start the server\n' '${patch}'
94 '';
9596+ passthru.tests = {
97+ inherit (nixosTests) vscode-remote-ssh;
98+ };
99100 meta = {
101 description = "Use any remote machine with a SSH server as your development environment.";
···1-{ lib, vscode-utils
2-, fetchurl, writeScript, runtimeShell
3-, jq, clang-tools
4-, gdbUseFixed ? true, gdb # The gdb default setting will be fixed to specified. Use version from `PATH` otherwise.
5-, autoPatchelfHook, makeWrapper, stdenv, lttng-ust, libkrb5, zlib
000000000006}:
78/*
···94 description = "The C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging.";
95 homepage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools";
96 license = lib.licenses.unfree;
97- maintainers = [ lib.maintainers.jraygauthier lib.maintainers.stargate01 ];
98- platforms = [ "x86_64-linux" "aarch64-linux" ];
00000099 };
100}
···1+{
2+ lib,
3+ vscode-utils,
4+ fetchurl,
5+ writeScript,
6+ runtimeShell,
7+ jq,
8+ clang-tools,
9+ gdbUseFixed ? true,
10+ gdb, # The gdb default setting will be fixed to specified. Use version from `PATH` otherwise.
11+ autoPatchelfHook,
12+ makeWrapper,
13+ stdenv,
14+ lttng-ust,
15+ libkrb5,
16+ zlib,
17}:
1819/*
···105 description = "The C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging.";
106 homepage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools";
107 license = lib.licenses.unfree;
108+ maintainers = [
109+ lib.maintainers.jraygauthier
110+ lib.maintainers.stargate01
111+ ];
112+ platforms = [
113+ "x86_64-linux"
114+ "aarch64-linux"
115+ ];
116 };
117}