···19 To avoid updating this field when dependencies change, run `go mod vendor` in your source repo and set `vendorHash = null;`
2021 To obtain the actual hash, set `vendorHash = lib.fakeSha256;` and run the build ([more details here](#sec-source-hashes)).
22-- `proxyVendor`: Fetches (go mod download) and proxies the vendor directory. This is useful if your code depends on c code and go mod tidy does not include the needed sources to build or if any dependency has case-insensitive conflicts which will produce platform dependant `vendorHash` checksums.
23- `modPostBuild`: Shell commands to run after the build of the go-modules executes `go mod vendor`, and before calculating fixed output derivation's `vendorHash` (or `vendorSha256`). Note that if you change this attribute, you need to update `vendorHash` (or `vendorSha256`) attribute.
2425```nix
···19 To avoid updating this field when dependencies change, run `go mod vendor` in your source repo and set `vendorHash = null;`
2021 To obtain the actual hash, set `vendorHash = lib.fakeSha256;` and run the build ([more details here](#sec-source-hashes)).
22+- `proxyVendor`: Fetches (go mod download) and proxies the vendor directory. This is useful if your code depends on c code and go mod tidy does not include the needed sources to build or if any dependency has case-insensitive conflicts which will produce platform-dependent `vendorHash` checksums.
23- `modPostBuild`: Shell commands to run after the build of the go-modules executes `go mod vendor`, and before calculating fixed output derivation's `vendorHash` (or `vendorSha256`). Note that if you change this attribute, you need to update `vendorHash` (or `vendorSha256`) attribute.
2425```nix
···1011<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
120013## Backward Incompatibilities {#sec-release-23.11-incompatibilities}
1415- The latest version of `clonehero` now stores custom content in `~/.clonehero`. See the [migration instructions](https://clonehero.net/2022/11/29/v23-to-v1-migration-instructions.html). Typically, these content files would exist along side the binary, but the previous build used a wrapper script that would store them in `~/.config/unity3d/srylain Inc_/Clone Hero`.
160017## Other Notable Changes {#sec-release-23.11-notable-changes}
1819- A new option was added to the virtualisation module that enables specifying explicitly named network interfaces in QEMU VMs. The existing `virtualisation.vlans` is still supported for cases where the name of the network interface is irrelevant.
00
···1011<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
1213+- [river](https://github.com/riverwm/river), A dynamic tiling wayland compositor. Available as [programs.river](#opt-programs.river.enable).
14+15## Backward Incompatibilities {#sec-release-23.11-incompatibilities}
1617- The latest version of `clonehero` now stores custom content in `~/.clonehero`. See the [migration instructions](https://clonehero.net/2022/11/29/v23-to-v1-migration-instructions.html). Typically, these content files would exist along side the binary, but the previous build used a wrapper script that would store them in `~/.config/unity3d/srylain Inc_/Clone Hero`.
1819+- `etcd` has been updated to 3.5, you will want to read the [3.3 to 3.4](https://etcd.io/docs/v3.5/upgrades/upgrade_3_4/) and [3.4 to 3.5](https://etcd.io/docs/v3.5/upgrades/upgrade_3_5/) upgrade guides
20+21## Other Notable Changes {#sec-release-23.11-notable-changes}
2223- A new option was added to the virtualisation module that enables specifying explicitly named network interfaces in QEMU VMs. The existing `virtualisation.vlans` is still supported for cases where the name of the network interface is irrelevant.
24+25+- `services.nginx` gained a `defaultListen` option at server-level with support for PROXY protocol listeners, also `proxyProtocol` is now exposed in `services.nginx.virtualHosts.<name>.listen` option. It is now possible to run PROXY listeners and non-PROXY listeners at a server-level, see [#213510](https://github.com/NixOS/nixpkgs/pull/213510/) for more details.
···1+{
2+ config,
3+ pkgs,
4+ lib,
5+ ...
6+}:
7+with lib; let
8+ cfg = config.programs.river;
9+in {
10+ options.programs.river = {
11+ enable = mkEnableOption (lib.mdDoc "river, a dynamic tiling Wayland compositor");
12+13+ package = mkOption {
14+ type = with types; nullOr package;
15+ default = pkgs.river;
16+ defaultText = literalExpression "pkgs.river";
17+ description = lib.mdDoc ''
18+ River package to use.
19+ Set to `null` to not add any River package to your path.
20+ This should be done if you want to use the Home Manager River module to install River.
21+ '';
22+ };
23+24+ extraPackages = mkOption {
25+ type = with types; listOf package;
26+ default = with pkgs; [
27+ swaylock
28+ foot
29+ dmenu
30+ ];
31+ defaultText = literalExpression ''
32+ with pkgs; [ swaylock foot dmenu ];
33+ '';
34+ example = literalExpression ''
35+ with pkgs; [
36+ termite rofi light
37+ ]
38+ '';
39+ description = lib.mdDoc ''
40+ Extra packages to be installed system wide. See
41+ [Common X11 apps used on i3 with Wayland alternatives](https://github.com/swaywm/sway/wiki/i3-Migration-Guide#common-x11-apps-used-on-i3-with-wayland-alternatives)
42+ for a list of useful software.
43+ '';
44+ };
45+ };
46+47+ config =
48+ mkIf cfg.enable (mkMerge [
49+ {
50+ environment.systemPackages = optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
51+52+ # To make a river session available if a display manager like SDDM is enabled:
53+ programs.xwayland.enable = mkDefault true;
54+ }
55+ (import ./wayland-session.nix { inherit lib pkgs; })
56+ ]);
57+58+ meta.maintainers = with lib.maintainers; [ GaetanLepage ];
59+}
···893 The address must be in the default VLAN (10.0.2.0/24).
894 '';
895 }
896- ]));
000000897898 warnings =
899 optional (
···893 The address must be in the default VLAN (10.0.2.0/24).
894 '';
895 }
896+ ])) ++ [
897+ { assertion = pkgs.stdenv.hostPlatform.is32bit -> cfg.memorySize < 2047;
898+ message = ''
899+ virtualisation.memorySize is above 2047, but qemu is only able to allocate 2047MB RAM on 32bit max.
900+ '';
901+ }
902+ ];
903904 warnings =
905 optional (
···19 node.wait_for_unit("etcd.service")
2021 with subtest("should write and read some values to etcd"):
22- node.succeed("etcdctl set /foo/bar 'Hello world'")
23 node.succeed("etcdctl get /foo/bar | grep 'Hello world'")
24 '';
25})
···19 node.wait_for_unit("etcd.service")
2021 with subtest("should write and read some values to etcd"):
22+ node.succeed("etcdctl put /foo/bar 'Hello world'")
23 node.succeed("etcdctl get /foo/bar | grep 'Hello world'")
24 '';
25})
···74 "-Dinstalled_tests=false" # TODO: enable these
75 "-Dwayland_eglstream=true"
76 "-Dprofiler=true"
77- "-Dxwayland_path=${xwayland}/bin/Xwayland"
78 # This should be auto detected, but it looks like it manages a false
79 # positive.
80 "-Dxwayland_initfd=disabled"
···74 "-Dinstalled_tests=false" # TODO: enable these
75 "-Dwayland_eglstream=true"
76 "-Dprofiler=true"
77+ "-Dxwayland_path=${lib.getExe xwayland}"
78 # This should be auto detected, but it looks like it manages a false
79 # positive.
80 "-Dxwayland_initfd=disabled"
+1-1
pkgs/desktops/gnome/core/mutter/default.nix
···81 "-Dtests=false"
82 "-Dwayland_eglstream=true"
83 "-Dprofiler=true"
84- "-Dxwayland_path=${xwayland}/bin/Xwayland"
85 # This should be auto detected, but it looks like it manages a false
86 # positive.
87 "-Dxwayland_initfd=disabled"
···81 "-Dtests=false"
82 "-Dwayland_eglstream=true"
83 "-Dprofiler=true"
84+ "-Dxwayland_path=${lib.getExe xwayland}"
85 # This should be auto detected, but it looks like it manages a false
86 # positive.
87 "-Dxwayland_initfd=disabled"
···160 license = licenses.asl20;
161 maintainers = with maintainers; [ arianvp justinas sigma tomberek freezeboy ];
162 platforms = platforms.unix;
163+ # go-libfido2 is broken on platforms with less than 64-bit because it defines an array
164+ # which occupies more than 31 bits of address space.
165+ broken = stdenv.hostPlatform.parsed.cpu.bits < 64;
166 };
167}
+1
pkgs/servers/x11/xorg/xwayland.nix
···108 description = "An X server for interfacing X11 apps with the Wayland protocol";
109 homepage = "https://wayland.freedesktop.org/xserver.html";
110 license = licenses.mit;
0111 maintainers = with maintainers; [ emantor ];
112 platforms = platforms.linux;
113 };
···108 description = "An X server for interfacing X11 apps with the Wayland protocol";
109 homepage = "https://wayland.freedesktop.org/xserver.html";
110 license = licenses.mit;
111+ mainProgram = "Xwayland";
112 maintainers = with maintainers; [ emantor ];
113 platforms = platforms.linux;
114 };
···1690 ufraw = throw "ufraw is unmaintained and has been removed from nixpkgs. Its successor, nufraw, doesn't seem to be stable enough. Consider using Darktable for now"; # Added 2020-01-11
1691 ultrastardx-beta = throw "'ultrastardx-beta' has been renamed to/replaced by 'ultrastardx'"; # Converted to throw 2022-02-22
1692 unicorn-emu = unicorn; # Added 2020-10-29
01693 unifi-poller = unpoller; # Added 2022-11-24
1694 unifiStable = unifi6; # Added 2020-12-28
1695 unity3d = throw "'unity3d' is unmaintained, has seen no updates in years and depends on deprecated GTK2"; # Added 2022-06-16
···1690 ufraw = throw "ufraw is unmaintained and has been removed from nixpkgs. Its successor, nufraw, doesn't seem to be stable enough. Consider using Darktable for now"; # Added 2020-01-11
1691 ultrastardx-beta = throw "'ultrastardx-beta' has been renamed to/replaced by 'ultrastardx'"; # Converted to throw 2022-02-22
1692 unicorn-emu = unicorn; # Added 2020-10-29
1693+ uniffi-bindgen = throw "uniffi-bindgen has been removed since upstream no longer provides a standalone package for the CLI";
1694 unifi-poller = unpoller; # Added 2022-11-24
1695 unifiStable = unifi6; # Added 2020-12-28
1696 unity3d = throw "'unity3d' is unmaintained, has seen no updates in years and depends on deprecated GTK2"; # Added 2022-06-16