···187188- The `services.pipewire.config` options have been removed, as they have basically never worked correctly. All behavior defined by the default configuration can be overridden with drop-in files as necessary - see [below](#sec-release-23.05-migration-pipewire) for details.
189000000190- `services.pipewire.media-session` and the `pipewire-media-session` package have been removed, as they are no longer supported upstream. Users are encouraged to use `services.pipewire.wireplumber` instead.
191192- The `baget` package and module was removed due to being unmaintained.
···270 [headscale's example configuration](https://github.com/juanfont/headscale/blob/main/config-example.yaml)
271 can be directly written as attribute-set in Nix within this option.
272273-- The `hardware.video.hidpi.enable` was renamed to `fonts.optimizeForVeryHighDPI` to be consistent with what it actually does.
274- They disable by default: antialiasing, hinting and LCD filter for subpixel rendering. They can be overridden if you experience problems with font rendering.
275- On Xorg, the default cursor is upscaled.
276- Please see the documentation for the new option to decide if you want to keep it enabled.
277-278- `nixos/lib/make-disk-image.nix` can now mutate EFI variables, run user-provided EFI firmware or variable templates. This is now extensively documented in the NixOS manual.
279280- `services.grafana` listens only on localhost by default again. This was changed to upstreams default of `0.0.0.0` by accident in the freeform setting conversion.
···344- The option `services.prometheus.exporters.pihole.interval` does not exist anymore and has been removed.
345346- `k3s` can now be configured with an EnvironmentFile for its systemd service, allowing secrets to be provided without ending up in the Nix Store.
00347348## Detailed migration information {#sec-release-23.05-migration}
349
···187188- The `services.pipewire.config` options have been removed, as they have basically never worked correctly. All behavior defined by the default configuration can be overridden with drop-in files as necessary - see [below](#sec-release-23.05-migration-pipewire) for details.
189190+- The catch-all `hardware.video.hidpi.enable` option was removed. Users on high density displays may want to:
191+192+ - Set `services.xserver.upscaleDefaultCursor` to upscale the default X11 cursor for higher resolutions
193+ - Adjust settings under `fonts.fontconfig` according to preference
194+ - Adjust `console.font` according to preference, though the kernel will generally choose a reasonably sized font
195+196- `services.pipewire.media-session` and the `pipewire-media-session` package have been removed, as they are no longer supported upstream. Users are encouraged to use `services.pipewire.wireplumber` instead.
197198- The `baget` package and module was removed due to being unmaintained.
···276 [headscale's example configuration](https://github.com/juanfont/headscale/blob/main/config-example.yaml)
277 can be directly written as attribute-set in Nix within this option.
27800000279- `nixos/lib/make-disk-image.nix` can now mutate EFI variables, run user-provided EFI firmware or variable templates. This is now extensively documented in the NixOS manual.
280281- `services.grafana` listens only on localhost by default again. This was changed to upstreams default of `0.0.0.0` by accident in the freeform setting conversion.
···345- The option `services.prometheus.exporters.pihole.interval` does not exist anymore and has been removed.
346347- `k3s` can now be configured with an EnvironmentFile for its systemd service, allowing secrets to be provided without ending up in the Nix Store.
348+349+- `boot.initrd.luks.device.<name>` has a new `tryEmptyPassphrase` option, this is useful for OEM's who need to install an encrypted disk with a future settable passphrase
350351## Detailed migration information {#sec-release-23.05-migration}
352
+17
nixos/modules/config/fonts/fontconfig.nix
···7Fontconfig reads files in folder name / file name order, so the number prepended to the configuration file name decide the order of parsing.
8Low number means high priority.
9000000000000010*/
1112{ config, pkgs, lib, ... }:
···218 paths = cfg.confPackages;
219 ignoreCollisions = true;
220 };
00221in
222{
223 imports = [
···229 (mkRemovedOptionModule [ "fonts" "fontconfig" "forceAutohint" ] "")
230 (mkRemovedOptionModule [ "fonts" "fontconfig" "renderMonoTTFAsBitmap" ] "")
231 (mkRemovedOptionModule [ "fonts" "fontconfig" "dpi" ] "Use display server-specific options")
00232 ] ++ lib.forEach [ "enable" "substitutions" "preset" ]
233 (opt: lib.mkRemovedOptionModule [ "fonts" "fontconfig" "ultimate" "${opt}" ] ''
234 The fonts.fontconfig.ultimate module and configuration is obsolete.
···7Fontconfig reads files in folder name / file name order, so the number prepended to the configuration file name decide the order of parsing.
8Low number means high priority.
910+NOTE: Please take extreme care when adjusting the default settings of this module.
11+People care a lot, and I mean A LOT, about their font rendering, and you will be
12+The Person That Broke It if it changes in a way people don't like.
13+14+See prior art:
15+- https://github.com/NixOS/nixpkgs/pull/194594
16+- https://github.com/NixOS/nixpkgs/pull/222236
17+- https://github.com/NixOS/nixpkgs/pull/222689
18+19+And do not repeat our mistakes.
20+21+- @K900, March 2023
22+23*/
2425{ config, pkgs, lib, ... }:
···231 paths = cfg.confPackages;
232 ignoreCollisions = true;
233 };
234+235+ fontconfigNote = "Consider manually configuring fonts.fontconfig according to personal preference.";
236in
237{
238 imports = [
···244 (mkRemovedOptionModule [ "fonts" "fontconfig" "forceAutohint" ] "")
245 (mkRemovedOptionModule [ "fonts" "fontconfig" "renderMonoTTFAsBitmap" ] "")
246 (mkRemovedOptionModule [ "fonts" "fontconfig" "dpi" ] "Use display server-specific options")
247+ (mkRemovedOptionModule [ "hardware" "video" "hidpi" "enable" ] fontconfigNote)
248+ (mkRemovedOptionModule [ "fonts" "optimizeForVeryHighDPI" ] fontconfigNote)
249 ] ++ lib.forEach [ "enable" "substitutions" "preset" ]
250 (opt: lib.mkRemovedOptionModule [ "fonts" "fontconfig" "ultimate" "${opt}" ] ''
251 The fonts.fontconfig.ultimate module and configuration is obsolete.
···702 users.groups.${user.name} = {};
703 '';
704 }
705+ ] ++ (map (shell: {
706+ assertion = (user.shell == pkgs.${shell}) -> (config.programs.${shell}.enable == true);
707+ message = ''
708+ users.users.${user.name}.shell is set to ${shell}, but
709+ programs.${shell}.enable is not true. This will cause the ${shell}
710+ shell to lack the basic nix directories in its PATH and might make
711+ logging in as that user impossible. You can fix it with:
712+ programs.${shell}.enable = true;
713+ '';
714+ }) [
715+ "fish"
716+ "xonsh"
717+ "zsh"
718+ ])
719 ));
720721 warnings =
+1-1
nixos/modules/services/logging/logrotate.nix
···187 A configuration file automatically generated by NixOS.
188 '';
189 description = lib.mdDoc ''
190- Override the configuration file used by MySQL. By default,
191 NixOS generates one automatically from [](#opt-services.logrotate.settings).
192 '';
193 example = literalExpression ''
···187 A configuration file automatically generated by NixOS.
188 '';
189 description = lib.mdDoc ''
190+ Override the configuration file used by logrotate. By default,
191 NixOS generates one automatically from [](#opt-services.logrotate.settings).
192 '';
193 example = literalExpression ''
···636465def main() -> None:
0000000066 crate_manifest = load_file(sys.argv[1])
67- workspace_manifest = load_file(sys.argv[2])["workspace"]
6869 if "workspace" in crate_manifest:
70 return
···636465def main() -> None:
66+ top_cargo_toml = load_file(sys.argv[2])
67+68+ if "workspace" not in top_cargo_toml:
69+ # If top_cargo_toml is not a workspace manifest, then this script was probably
70+ # ran on something that does not actually use workspace dependencies
71+ print(f"{sys.argv[2]} is not a workspace manifest, doing nothing.")
72+ return
73+74 crate_manifest = load_file(sys.argv[1])
75+ workspace_manifest = top_cargo_toml["workspace"]
7677 if "workspace" in crate_manifest:
78 return
+4-2
pkgs/build-support/rust/sysroot/Cargo.lock
···1# This file is automatically @generated by Cargo.
2# It is not intended for manual editing.
003[[package]]
4name = "alloc"
5version = "0.0.0"
···1011[[package]]
12name = "compiler_builtins"
13-version = "0.1.52"
14source = "registry+https://github.com/rust-lang/crates.io-index"
15-checksum = "b6591c2442ee984e2b264638a8b5e7ae44fd47b32d28e3a08e2e9c3cdb0c2fb0"
16dependencies = [
17 "rustc-std-workspace-core",
18]
···1# This file is automatically @generated by Cargo.
2# It is not intended for manual editing.
3+version = 3
4+5[[package]]
6name = "alloc"
7version = "0.0.0"
···1213[[package]]
14name = "compiler_builtins"
15+version = "0.1.87"
16source = "registry+https://github.com/rust-lang/crates.io-index"
17+checksum = "f867ce54c09855ccd135ad4a50c777182a0c7af5ff20a8f537617bd648b10d50"
18dependencies = [
19 "rustc-std-workspace-core",
20]
···1+diff --git a/src/elf_locations.ml b/src/elf_locations.ml
2+index a08b359..0db9274 100644
3+--- a/src/elf_locations.ml
4++++ b/src/elf_locations.ml
5+@@ -37,7 +37,8 @@ let resolve_from_dwarf t ~program_counter =
6+ | Some section ->
7+ let body = Owee_buf.cursor (Owee_elf.section_body t.map section) in
8+ let rec aux () =
9+- match Owee_debug_line.read_chunk body with
10++ let pointers_to_other_sections = Owee_elf.debug_line_pointers t.map t.sections in
11++ match Owee_debug_line.read_chunk body ~pointers_to_other_sections with
12+ | None -> ()
13+ | Some (header, chunk) ->
14+ (* CR-soon mshinwell: fix owee .mli to note that [state] is
···3132buildPythonPackage rec {
33 pname = "cairo-lang";
34- version = "0.10.0";
35 format = "setuptools";
3637 disabled = pythonOlder "3.7";
3839 src = fetchzip {
40 url = "https://github.com/starkware-libs/cairo-lang/releases/download/v${version}/cairo-lang-${version}.zip";
41- hash = "sha256-+PE7RSKEGADbue63FoT6UBOwURJs7lBNkL7aNlpSxP8=";
42 };
43-44- # TODO: remove a substantial part when https://github.com/starkware-libs/cairo-lang/pull/88/files is merged.
45- postPatch = ''
46- substituteInPlace requirements.txt \
47- --replace "lark-parser" "lark"
48-49- substituteInPlace starkware/cairo/lang/compiler/parser_transformer.py \
50- --replace 'value, meta' 'meta, value' \
51- --replace 'value: Tuple[CommaSeparatedWithNotes], meta' 'meta, value: Tuple[CommaSeparatedWithNotes]'
52- substituteInPlace starkware/cairo/lang/compiler/parser.py \
53- --replace 'standard' 'basic'
54- '';
5556 nativeBuildInputs = [
57 pythonRelaxDepsHook
···98 "pytest"
99 "pytest-asyncio"
100 ];
0000101102 # There seems to be no test included in the ZIP release…
103 # Cloning from GitHub is harder because they use a custom CMake setup
···3132buildPythonPackage rec {
33 pname = "cairo-lang";
34+ version = "0.10.1";
35 format = "setuptools";
3637 disabled = pythonOlder "3.7";
3839 src = fetchzip {
40 url = "https://github.com/starkware-libs/cairo-lang/releases/download/v${version}/cairo-lang-${version}.zip";
41+ hash = "sha256-MNbzDqqNhij9JizozLp9hhQjbRGzWxECOErS3TOPlAA=";
42 };
0000000000004344 nativeBuildInputs = [
45 pythonRelaxDepsHook
···86 "pytest"
87 "pytest-asyncio"
88 ];
89+90+ postFixup = ''
91+ chmod +x $out/bin/*
92+ '';
9394 # There seems to be no test included in the ZIP release…
95 # Cloning from GitHub is harder because they use a custom CMake setup
···129 # Without this curl might detect /etc/ssl/cert.pem at build time on macOS, causing curl to ignore NIX_SSL_CERT_FILE.
130 "--without-ca-bundle"
131 "--without-ca-path"
00132 ];
133134 CXX = "${stdenv.cc.targetPrefix}c++";
···129 # Without this curl might detect /etc/ssl/cert.pem at build time on macOS, causing curl to ignore NIX_SSL_CERT_FILE.
130 "--without-ca-bundle"
131 "--without-ca-path"
132+ ] ++ lib.optionals (!gnutlsSupport && !opensslSupport && !wolfsslSupport) [
133+ "--without-ssl"
134 ];
135136 CXX = "${stdenv.cc.targetPrefix}c++";