···100- [opensnitch](https://github.com/evilsocket/opensnitch), an application firewall. Available as [services.opensnitch](#opt-services.opensnitch.enable).
101102- [snapraid](https://www.snapraid.it/), a backup program for disk arrays.
103- Available as [snapraid](#opt-snapraid.enable).
104105- [Hockeypuck](https://github.com/hockeypuck/hockeypuck), a OpenPGP Key Server. Available as [services.hockeypuck](#opt-services.hockeypuck.enable).
106
···100- [opensnitch](https://github.com/evilsocket/opensnitch), an application firewall. Available as [services.opensnitch](#opt-services.opensnitch.enable).
101102- [snapraid](https://www.snapraid.it/), a backup program for disk arrays.
103+ Available as [snapraid](#opt-services.snapraid.enable).
104105- [Hockeypuck](https://github.com/hockeypuck/hockeypuck), a OpenPGP Key Server. Available as [services.hockeypuck](#opt-services.hockeypuck.enable).
106
+8
nixos/doc/manual/release-notes/rl-2311.section.md
···1313- When using [split parity files](https://www.snapraid.it/manual#7.1) in `snapraid`,
1314 the snapraid-sync systemd service will no longer fail to run.
1315000000001316## Nixpkgs Library {#sec-release-23.11-nixpkgs-lib}
13171318### Breaking Changes {#sec-release-23.11-lib-breaking}
···1313- When using [split parity files](https://www.snapraid.it/manual#7.1) in `snapraid`,
1314 the snapraid-sync systemd service will no longer fail to run.
13151316+- `wpa_supplicant`'s configuration file cannot be read by non-root users, and
1317+ secrets (such as Pre-Shared Keys) can safely be passed via
1318+ `networking.wireless.environmentFile`.
1319+1320+ The configuration file could previously be read, when `userControlled.enable` (non-default),
1321+ by users who are in both `wheel` and `userControlled.group` (defaults to `wheel`)
1322+1323+1324## Nixpkgs Library {#sec-release-23.11-nixpkgs-lib}
13251326### Breaking Changes {#sec-release-23.11-lib-breaking}
···4849 # To make a river session available if a display manager like SDDM is enabled:
50 services.xserver.displayManager.sessionPackages = optionals (cfg.package != null) [ cfg.package ];
00051 }
52 (import ./wayland-session.nix { inherit lib pkgs; })
53 ]);
···4849 # To make a river session available if a display manager like SDDM is enabled:
50 services.xserver.displayManager.sessionPackages = optionals (cfg.package != null) [ cfg.package ];
51+52+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
53+ xdg.portal.config.river.default = mkDefault [ "wlr" "gtk" ];
54 }
55 (import ./wayland-session.nix { inherit lib pkgs; })
56 ]);
+3
nixos/modules/services/hardware/udev.nix
···222 description = lib.mdDoc ''
223 Packages added to the {env}`PATH` environment variable when
224 executing programs from Udev rules.
000225 '';
226 };
227
···222 description = lib.mdDoc ''
223 Packages added to the {env}`PATH` environment variable when
224 executing programs from Udev rules.
225+226+ coreutils, gnu{sed,grep}, util-linux and config.systemd.package are
227+ automatically included.
228 '';
229 };
230
+4-4
nixos/modules/services/matrix/synapse.md
···1617## Synapse Homeserver {#module-services-matrix-synapse}
1819-[Synapse](https://github.com/matrix-org/synapse) is
20the reference homeserver implementation of Matrix from the core development
21team at matrix.org. The following configuration example will set up a
22synapse server for the `example.org` domain, served from
23the host `myhostname.example.org`. For more information,
24please refer to the
25-[installation instructions of Synapse](https://matrix-org.github.io/synapse/latest/setup/installation.html) .
26```
27{ pkgs, lib, config, ... }:
28let
···70 # the domain (i.e. example.org from @foo:example.org) and the federation port
71 # is 8448.
72 # Further reference can be found in the docs about delegation under
73- # https://matrix-org.github.io/synapse/latest/delegate.html
74 locations."= /.well-known/matrix/server".extraConfig = mkWellKnown serverConfig;
75 # This is usually needed for homeserver discovery (from e.g. other Matrix clients).
76 # Further reference can be found in the upstream docs at
···169::: {.note}
170It's also possible to user alternative authentication mechanism such as
171[LDAP (via `matrix-synapse-ldap3`)](https://github.com/matrix-org/matrix-synapse-ldap3)
172-or [OpenID](https://matrix-org.github.io/synapse/latest/openid.html).
173:::
174175## Element (formerly known as Riot) Web Client {#module-services-matrix-element-web}
···1617## Synapse Homeserver {#module-services-matrix-synapse}
1819+[Synapse](https://github.com/element-hq/synapse) is
20the reference homeserver implementation of Matrix from the core development
21team at matrix.org. The following configuration example will set up a
22synapse server for the `example.org` domain, served from
23the host `myhostname.example.org`. For more information,
24please refer to the
25+[installation instructions of Synapse](https://element-hq.github.io/synapse/latest/setup/installation.html) .
26```
27{ pkgs, lib, config, ... }:
28let
···70 # the domain (i.e. example.org from @foo:example.org) and the federation port
71 # is 8448.
72 # Further reference can be found in the docs about delegation under
73+ # https://element-hq.github.io/synapse/latest/delegate.html
74 locations."= /.well-known/matrix/server".extraConfig = mkWellKnown serverConfig;
75 # This is usually needed for homeserver discovery (from e.g. other Matrix clients).
76 # Further reference can be found in the upstream docs at
···169::: {.note}
170It's also possible to user alternative authentication mechanism such as
171[LDAP (via `matrix-synapse-ldap3`)](https://github.com/matrix-org/matrix-synapse-ldap3)
172+or [OpenID](https://element-hq.github.io/synapse/latest/openid.html).
173:::
174175## Element (formerly known as Riot) Web Client {#module-services-matrix-element-web}
+7-7
nixos/modules/services/matrix/synapse.nix
···446 default = { };
447 description = mdDoc ''
448 The primary synapse configuration. See the
449- [sample configuration](https://github.com/matrix-org/synapse/blob/v${pkgs.matrix-synapse-unwrapped.version}/docs/sample_config.yaml)
450 for possible values.
451452 Secrets should be passed in by using the `extraConfigFiles` option.
···749 by the module, but in practice it broke on runtime and as a result, no URL
750 preview worked anywhere if this was set.
751752- See https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#url_preview_url_blacklist
753 on how to configure it properly.
754 ''))
755 (types.attrsOf types.str));
···873 Redis configuration for synapse.
874875 See the
876- [upstream documentation](https://github.com/matrix-org/synapse/blob/v${pkgs.matrix-synapse-unwrapped.version}/usage/configuration/config_documentation.md#redis)
877 for available options.
878 '';
879 };
···886 description = lib.mdDoc ''
887 Options for configuring workers. Worker support will be enabled if at least one worker is configured here.
888889- See the [worker documention](https://matrix-org.github.io/synapse/latest/workers.html#worker-configuration)
890 for possible options for each worker. Worker-specific options overriding the shared homeserver configuration can be
891 specified here for each worker.
892···900 using [`services.matrix-synapse.configureRedisLocally`](#opt-services.matrix-synapse.configureRedisLocally).
901902 Workers also require a proper reverse proxy setup to direct incoming requests to the appropriate process. See
903- the [reverse proxy documentation](https://matrix-org.github.io/synapse/latest/reverse_proxy.html) for a
904 general reverse proxying setup and
905- the [worker documentation](https://matrix-org.github.io/synapse/latest/workers.html#available-worker-applications)
906 for the available endpoints per worker application.
907 :::
908 '';
···932 The file for log configuration.
933934 See the [python documentation](https://docs.python.org/3/library/logging.config.html#configuration-dictionary-schema)
935- for the schema and the [upstream repository](https://github.com/matrix-org/synapse/blob/v${pkgs.matrix-synapse-unwrapped.version}/docs/sample_log_config.yaml)
936 for an example.
937 '';
938 };
···446 default = { };
447 description = mdDoc ''
448 The primary synapse configuration. See the
449+ [sample configuration](https://github.com/element-hq/synapse/blob/v${pkgs.matrix-synapse-unwrapped.version}/docs/sample_config.yaml)
450 for possible values.
451452 Secrets should be passed in by using the `extraConfigFiles` option.
···749 by the module, but in practice it broke on runtime and as a result, no URL
750 preview worked anywhere if this was set.
751752+ See https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html#url_preview_url_blacklist
753 on how to configure it properly.
754 ''))
755 (types.attrsOf types.str));
···873 Redis configuration for synapse.
874875 See the
876+ [upstream documentation](https://github.com/element-hq/synapse/blob/v${pkgs.matrix-synapse-unwrapped.version}/docs/usage/configuration/config_documentation.md#redis)
877 for available options.
878 '';
879 };
···886 description = lib.mdDoc ''
887 Options for configuring workers. Worker support will be enabled if at least one worker is configured here.
888889+ See the [worker documention](https://element-hq.github.io/synapse/latest/workers.html#worker-configuration)
890 for possible options for each worker. Worker-specific options overriding the shared homeserver configuration can be
891 specified here for each worker.
892···900 using [`services.matrix-synapse.configureRedisLocally`](#opt-services.matrix-synapse.configureRedisLocally).
901902 Workers also require a proper reverse proxy setup to direct incoming requests to the appropriate process. See
903+ the [reverse proxy documentation](https://element-hq.github.io/synapse/latest/reverse_proxy.html) for a
904 general reverse proxying setup and
905+ the [worker documentation](https://element-hq.github.io/synapse/latest/workers.html#available-worker-applications)
906 for the available endpoints per worker application.
907 :::
908 '';
···932 The file for log configuration.
933934 See the [python documentation](https://docs.python.org/3/library/logging.config.html#configuration-dictionary-schema)
935+ for the schema and the [upstream repository](https://github.com/element-hq/synapse/blob/v${pkgs.matrix-synapse-unwrapped.version}/docs/sample_log_config.yaml)
936 for an example.
937 '';
938 };
···23buildGoModule rec {
4 pname = "pdfcpu";
5+ version = "0.6.0";
67 src = fetchFromGitHub {
8 owner = "pdfcpu";
9 repo = pname;
10 rev = "v${version}";
11+ hash = "sha256-New0+pWtKdEx/k69pNisNKYj6p998HoEjAhQEDugP/g=";
12+ # Apparently upstream requires that the compiled executable will know the
13+ # commit hash and the date of the commit. This information is also presented
14+ # in the output of `pdfcpu version` which we use as a sanity check in the
15+ # installCheckPhase. This was discussed upstream in:
16+ #
17+ # - https://github.com/pdfcpu/pdfcpu/issues/751
18+ # - https://github.com/pdfcpu/pdfcpu/pull/752
19+ #
20+ # The trick used here is to write that information into files in `src`'s
21+ # `$out`, and then read them into the `ldflags`. We also delete the `.git`
22+ # directories in `src`'s $out afterwards, imitating what's done if
23+ # `leaveDotGit = false;` See also:
24+ # https://github.com/NixOS/nixpkgs/issues/8567
25+ leaveDotGit = true;
26+ postFetch = ''
27+ cd "$out"
28+ git rev-parse HEAD > $out/COMMIT
29+ git log -1 --pretty=%cd --date=format:'%Y-%m-%dT%H:%M:%SZ' > $out/SOURCE_DATE
30+ find "$out" -name .git -print0 | xargs -0 rm -rf
31+ '';
32 };
3334+ vendorHash = "sha256-jVX/CFf9dd9qD3gyGVDjbfINtPLCsgdjWFix4BCpDZ0=";
35+36+ ldflags = [
37+ "-s"
38+ "-w"
39+ "-X main.version=v${version}"
40+ ];
41+42+ # ldflags based on metadata from git and source
43+ preBuild = ''
44+ ldflags+=" -X main.commit=$(cat COMMIT)"
45+ ldflags+=" -X main.date=$(cat SOURCE_DATE)"
46+ '';
47+4849 # No tests
50 doCheck = false;
···53 export HOME=$(mktemp -d)
54 echo checking the version print of pdfcpu
55 $out/bin/pdfcpu version | grep ${version}
56+ $out/bin/pdfcpu version | grep $(cat COMMIT | cut -c1-8)
57+ $out/bin/pdfcpu version | grep $(cat SOURCE_DATE)
58 '';
5960 subPackages = [ "cmd/pdfcpu" ];
···110 "azan@faissal.bensefia.id" = "azan-islamic-prayer-times";
111 "azan@hatem.masmoudi.org" = null;
112113- # That extension is broken because of https://github.com/NixOS/nixpkgs/issues/118612
114- "flypie@schneegans.github.com" = null;
115-116 # ############################################################################
117 # Overrides for extensions that were manually packaged in the past but are gradually
118 # being replaced by automatic packaging where possible.
···110 "azan@faissal.bensefia.id" = "azan-islamic-prayer-times";
111 "azan@hatem.masmoudi.org" = null;
112000113 # ############################################################################
114 # Overrides for extensions that were manually packaged in the past but are gradually
115 # being replaced by automatic packaging where possible.
···43 description = "gunicorn 'Green Unicorn' is a WSGI HTTP Server for UNIX, fast clients and sleepy applications";
44 license = licenses.mit;
45 maintainers = with maintainers; [ ];
046 };
47}
···43 description = "gunicorn 'Green Unicorn' is a WSGI HTTP Server for UNIX, fast clients and sleepy applications";
44 license = licenses.mit;
45 maintainers = with maintainers; [ ];
46+ mainProgram = "gunicorn";
47 };
48}
···33 description = "A general purpose syntax highlighter in pure Go";
34 license = licenses.mit;
35 maintainers = [ maintainers.sternenseemann ];
036 };
37}
···33 description = "A general purpose syntax highlighter in pure Go";
34 license = licenses.mit;
35 maintainers = [ maintainers.sternenseemann ];
36+ mainProgram = "chroma";
37 };
38}
+2-4
pkgs/top-level/all-packages.nix
···61 };
6263 stdenvNoLibs =
64- if stdenv.hostPlatform != stdenv.buildPlatform && (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isDarwin.useLLVM or false)
65 then
66 # We cannot touch binutils or cc themselves, because that will cause
67 # infinite recursion. So instead, we just choose a libc based on the
···3775537756 endless-sky = callPackage ../games/endless-sky { };
3775737758- extremetuxracer = callPackage ../games/extremetuxracer {
37759- libpng = libpng12;
37760- };
3776137762 exult = callPackage ../games/exult { };
37763
···61 };
6263 stdenvNoLibs =
64+ if stdenv.hostPlatform != stdenv.buildPlatform && (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.useLLVM or false)
65 then
66 # We cannot touch binutils or cc themselves, because that will cause
67 # infinite recursion. So instead, we just choose a libc based on the
···3775537756 endless-sky = callPackage ../games/endless-sky { };
3775737758+ extremetuxracer = callPackage ../games/extremetuxracer { };
003775937760 exult = callPackage ../games/exult { };
37761