From 7dbd50832a197f205dcdb2cecdfe2b8f9e84ab2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sat, 30 Aug 2025 00:19:01 +0200 Subject: [PATCH 1/4] nixos/plymouth: fix theme == "breeze" breakage after removing Plasma 5 --- nixos/modules/system/boot/plymouth.nix | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/nixos/modules/system/boot/plymouth.nix b/nixos/modules/system/boot/plymouth.nix index 8636ec7957d2..84ff3e4af48e 100644 --- a/nixos/modules/system/boot/plymouth.nix +++ b/nixos/modules/system/boot/plymouth.nix @@ -17,6 +17,13 @@ let cfg = config.boot.plymouth; opt = options.boot.plymouth; + nixosBreezePlymouth = pkgs.kdePackages.breeze-plymouth.override { + logoFile = cfg.logo; + logoName = "nixos"; + osName = "NixOS"; + osVersion = config.system.nixos.release; + }; + plymouthLogos = pkgs.runCommand "plymouth-logos" { inherit (cfg) logo; } '' mkdir -p $out @@ -80,7 +87,12 @@ in }; themePackages = mkOption { - default = [ ]; + default = lib.optional (cfg.theme == "breeze") nixosBreezePlymouth; + defaultText = literalMD '' + A NixOS branded variant of the breeze theme when + `config.${opt.theme} == "breeze"`, otherwise + `[ ]`. + ''; type = types.listOf types.package; description = '' Extra theme packages for plymouth. From c7c502a5fc719dda78f07678aa49139dc4870b0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sat, 30 Aug 2025 00:19:25 +0200 Subject: [PATCH 2/4] nixos/plymouth: list available themes if the current one does not exist --- nixos/modules/system/boot/plymouth.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nixos/modules/system/boot/plymouth.nix b/nixos/modules/system/boot/plymouth.nix index 84ff3e4af48e..270f562459c9 100644 --- a/nixos/modules/system/boot/plymouth.nix +++ b/nixos/modules/system/boot/plymouth.nix @@ -192,6 +192,7 @@ in # Check if the actual requested theme is here if [[ ! -d ${themesEnv}/share/plymouth/themes/${cfg.theme} ]]; then echo "The requested theme: ${cfg.theme} is not provided by any of the packages in boot.plymouth.themePackages" + echo "The following themes exist: $(ls ${themesEnv}/share/plymouth/themes/)" exit 1 fi @@ -208,6 +209,7 @@ in # Check if the actual requested theme is here if [[ ! -d ${themesEnv}/share/plymouth/themes/${cfg.theme} ]]; then echo "The requested theme: ${cfg.theme} is not provided by any of the packages in boot.plymouth.themePackages" + echo "The following themes exist: $(ls ${themesEnv}/share/plymouth/themes/)" exit 1 fi @@ -290,6 +292,7 @@ in # Check if the actual requested theme is here if [[ ! -d ${themesEnv}/share/plymouth/themes/${cfg.theme} ]]; then echo "The requested theme: ${cfg.theme} is not provided by any of the packages in boot.plymouth.themePackages" + echo "The following themes exist: $(ls ${themesEnv}/share/plymouth/themes/)" exit 1 fi From e9e0a0984f12a44238ed7e8f21ab6ac5107078fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sat, 30 Aug 2025 00:24:54 +0200 Subject: [PATCH 3/4] nixos/plymouth: dedupe theme check --- nixos/modules/system/boot/plymouth.nix | 179 ++++++++++++------------- 1 file changed, 89 insertions(+), 90 deletions(-) diff --git a/nixos/modules/system/boot/plymouth.nix b/nixos/modules/system/boot/plymouth.nix index 270f562459c9..3e93bf0433a7 100644 --- a/nixos/modules/system/boot/plymouth.nix +++ b/nixos/modules/system/boot/plymouth.nix @@ -67,6 +67,14 @@ let ${cfg.extraConfig} ''; + checkIfThemeExists = '' + # Check if the actual requested theme is here + if [[ ! -d ${themesEnv}/share/plymouth/themes/${cfg.theme} ]]; then + echo "The requested theme: ${cfg.theme} is not provided by any of the packages in boot.plymouth.themePackages" + echo "The following themes exist: $(ls ${themesEnv}/share/plymouth/themes/)" + exit 1 + fi + ''; in { @@ -188,50 +196,42 @@ in "/etc/plymouth/logo.png".source = cfg.logo; "/etc/plymouth/plymouthd.defaults".source = "${plymouth}/share/plymouth/plymouthd.defaults"; # Directories - "/etc/plymouth/plugins".source = pkgs.runCommand "plymouth-initrd-plugins" { } '' - # Check if the actual requested theme is here - if [[ ! -d ${themesEnv}/share/plymouth/themes/${cfg.theme} ]]; then - echo "The requested theme: ${cfg.theme} is not provided by any of the packages in boot.plymouth.themePackages" - echo "The following themes exist: $(ls ${themesEnv}/share/plymouth/themes/)" - exit 1 - fi + "/etc/plymouth/plugins".source = pkgs.runCommand "plymouth-initrd-plugins" { } ( + checkIfThemeExists + + '' + moduleName="$(sed -n 's,ModuleName *= *,,p' ${themesEnv}/share/plymouth/themes/${cfg.theme}/${cfg.theme}.plymouth)" - moduleName="$(sed -n 's,ModuleName *= *,,p' ${themesEnv}/share/plymouth/themes/${cfg.theme}/${cfg.theme}.plymouth)" - - mkdir -p $out/renderers - # module might come from a theme - cp ${themesEnv}/lib/plymouth/*.so $out - cp ${plymouth}/lib/plymouth/renderers/*.so $out/renderers - # useless in the initrd, and adds several megabytes to the closure - rm $out/renderers/x11.so - ''; - "/etc/plymouth/themes".source = pkgs.runCommand "plymouth-initrd-themes" { } '' - # Check if the actual requested theme is here - if [[ ! -d ${themesEnv}/share/plymouth/themes/${cfg.theme} ]]; then - echo "The requested theme: ${cfg.theme} is not provided by any of the packages in boot.plymouth.themePackages" - echo "The following themes exist: $(ls ${themesEnv}/share/plymouth/themes/)" - exit 1 - fi - - mkdir -p $out/${cfg.theme} - cp -r ${themesEnv}/share/plymouth/themes/${cfg.theme}/* $out/${cfg.theme} - # Copy more themes if the theme depends on others - for theme in $(grep -hRo '/share/plymouth/themes/.*$' $out | xargs -n1 basename); do - if [[ -d "${themesEnv}/share/plymouth/themes/$theme" ]]; then - if [[ ! -d "$out/$theme" ]]; then - echo "Adding dependent theme: $theme" - mkdir -p "$out/$theme" - cp -r "${themesEnv}/share/plymouth/themes/$theme"/* "$out/$theme" - fi - else - echo "Missing theme dependency: $theme" - fi - done - # Fixup references - for theme in $out/*/*.plymouth; do - sed -i "s,${builtins.storeDir}/.*/share/plymouth/themes,$out," "$theme" - done - ''; + mkdir -p $out/renderers + # module might come from a theme + cp ${themesEnv}/lib/plymouth/*.so $out + cp ${plymouth}/lib/plymouth/renderers/*.so $out/renderers + # useless in the initrd, and adds several megabytes to the closure + rm $out/renderers/x11.so + '' + ); + "/etc/plymouth/themes".source = pkgs.runCommand "plymouth-initrd-themes" { } ( + checkIfThemeExists + + '' + mkdir -p $out/${cfg.theme} + cp -r ${themesEnv}/share/plymouth/themes/${cfg.theme}/* $out/${cfg.theme} + # Copy more themes if the theme depends on others + for theme in $(grep -hRo '/share/plymouth/themes/.*$' $out | xargs -n1 basename); do + if [[ -d "${themesEnv}/share/plymouth/themes/$theme" ]]; then + if [[ ! -d "$out/$theme" ]]; then + echo "Adding dependent theme: $theme" + mkdir -p "$out/$theme" + cp -r "${themesEnv}/share/plymouth/themes/$theme"/* "$out/$theme" + fi + else + echo "Missing theme dependency: $theme" + fi + done + # Fixup references + for theme in $out/*/*.plymouth; do + sed -i "s,${builtins.storeDir}/.*/share/plymouth/themes,$out," "$theme" + done + '' + ); # Fonts "/etc/plymouth/fonts".source = pkgs.runCommand "plymouth-initrd-fonts" { } '' @@ -285,63 +285,62 @@ in '') ]; - boot.initrd.extraUtilsCommands = lib.mkIf (!config.boot.initrd.systemd.enable) '' - copy_bin_and_libs ${plymouth}/bin/plymouth - copy_bin_and_libs ${plymouth}/bin/plymouthd + boot.initrd.extraUtilsCommands = lib.mkIf (!config.boot.initrd.systemd.enable) ( + '' + copy_bin_and_libs ${plymouth}/bin/plymouth + copy_bin_and_libs ${plymouth}/bin/plymouthd - # Check if the actual requested theme is here - if [[ ! -d ${themesEnv}/share/plymouth/themes/${cfg.theme} ]]; then - echo "The requested theme: ${cfg.theme} is not provided by any of the packages in boot.plymouth.themePackages" - echo "The following themes exist: $(ls ${themesEnv}/share/plymouth/themes/)" - exit 1 - fi + '' + + checkIfThemeExists + + '' - moduleName="$(sed -n 's,ModuleName *= *,,p' ${themesEnv}/share/plymouth/themes/${cfg.theme}/${cfg.theme}.plymouth)" + moduleName="$(sed -n 's,ModuleName *= *,,p' ${themesEnv}/share/plymouth/themes/${cfg.theme}/${cfg.theme}.plymouth)" - mkdir -p $out/lib/plymouth/renderers - # module might come from a theme - cp ${themesEnv}/lib/plymouth/*.so $out/lib/plymouth - cp ${plymouth}/lib/plymouth/renderers/*.so $out/lib/plymouth/renderers - # useless in the initrd, and adds several megabytes to the closure - rm $out/lib/plymouth/renderers/x11.so + mkdir -p $out/lib/plymouth/renderers + # module might come from a theme + cp ${themesEnv}/lib/plymouth/*.so $out/lib/plymouth + cp ${plymouth}/lib/plymouth/renderers/*.so $out/lib/plymouth/renderers + # useless in the initrd, and adds several megabytes to the closure + rm $out/lib/plymouth/renderers/x11.so - mkdir -p $out/share/plymouth/themes - cp ${plymouth}/share/plymouth/plymouthd.defaults $out/share/plymouth + mkdir -p $out/share/plymouth/themes + cp ${plymouth}/share/plymouth/plymouthd.defaults $out/share/plymouth - # Copy themes into working directory for patching - mkdir themes + # Copy themes into working directory for patching + mkdir themes - # Use -L to copy the directories proper, not the symlinks to them. - # Copy all themes because they're not large assets, and bgrt depends on the ImageDir of - # the spinner theme. - cp -r -L ${themesEnv}/share/plymouth/themes/* themes + # Use -L to copy the directories proper, not the symlinks to them. + # Copy all themes because they're not large assets, and bgrt depends on the ImageDir of + # the spinner theme. + cp -r -L ${themesEnv}/share/plymouth/themes/* themes - # Patch out any attempted references to the theme or plymouth's themes directory - chmod -R +w themes - find themes -type f | while read file - do - sed -i "s,${builtins.storeDir}/.*/share/plymouth/themes,$out/share/plymouth/themes,g" $file - done + # Patch out any attempted references to the theme or plymouth's themes directory + chmod -R +w themes + find themes -type f | while read file + do + sed -i "s,${builtins.storeDir}/.*/share/plymouth/themes,$out/share/plymouth/themes,g" $file + done - # Install themes - cp -r themes/* $out/share/plymouth/themes + # Install themes + cp -r themes/* $out/share/plymouth/themes - # Install logo - mkdir -p $out/etc/plymouth - cp -r -L ${themesEnv}/etc/plymouth $out/etc + # Install logo + mkdir -p $out/etc/plymouth + cp -r -L ${themesEnv}/etc/plymouth $out/etc - # Setup font - mkdir -p $out/share/fonts - cp ${cfg.font} $out/share/fonts - mkdir -p $out/etc/fonts - cat > $out/etc/fonts/fonts.conf < - - - $out/share/fonts - - EOF - ''; + # Setup font + mkdir -p $out/share/fonts + cp ${cfg.font} $out/share/fonts + mkdir -p $out/etc/fonts + cat > $out/etc/fonts/fonts.conf < + + + $out/share/fonts + + EOF + '' + ); boot.initrd.extraUtilsCommandsTest = mkIf (!config.boot.initrd.systemd.enable) '' $out/bin/plymouthd --help >/dev/null From b2774b3bd684209f0ef10a74b31ec3a745720c94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sat, 30 Aug 2025 03:24:07 +0200 Subject: [PATCH 4/4] dnscontrol: 4.23.0 -> 4.24.0 Diff: https://github.com/StackExchange/dnscontrol/compare/v4.23.0...v4.24.0 Changelog: https://github.com/StackExchange/dnscontrol/releases/tag/v4.24.0 --- pkgs/by-name/dn/dnscontrol/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/dn/dnscontrol/package.nix b/pkgs/by-name/dn/dnscontrol/package.nix index f32409a95402..5acd2f141f8b 100644 --- a/pkgs/by-name/dn/dnscontrol/package.nix +++ b/pkgs/by-name/dn/dnscontrol/package.nix @@ -1,24 +1,24 @@ { lib, - buildGoModule, + buildGo125Module, fetchFromGitHub, installShellFiles, testers, dnscontrol, }: -buildGoModule rec { +buildGo125Module rec { pname = "dnscontrol"; - version = "4.23.0"; + version = "4.24.0"; src = fetchFromGitHub { owner = "StackExchange"; repo = "dnscontrol"; tag = "v${version}"; - hash = "sha256-Jaa+geO2836kQHTRhaQru367iQvqac6sgnpL9244dkw="; + hash = "sha256-DAH6XpRZz6KnkUYcQVWqLc3GP//dgojYH5AUvJ/X7v8="; }; - vendorHash = "sha256-PbOqi9vfz46lwoP3aUPl/JKDJtYYF7IwnN9lppZ8KYA="; + vendorHash = "sha256-lY4E0ediBPsOXL/1KKu0QeYC0llswzYYV4JvtxMQ+PE="; nativeBuildInputs = [ installShellFiles ];