···1111[`nixos/doc/manual`](https://github.com/NixOS/nixpkgs/tree/master/nixos/doc/manual)
1212subdirectory of the Nixpkgs repository.
13131414-You can quickly validate your edits with `make`:
1414+You can quickly validate your edits with `devmode`:
15151616```ShellSession
1717$ cd /path/to/nixpkgs/nixos/doc/manual
1818$ nix-shell
1919-nix-shell$ devmode
1919+[nix-shell:~]$ devmode
2020```
21212222Once you are done making modifications to the manual, it's important to
···11{
22+ lib,
23 fetchurl,
34 buildDotnetPackage,
45 unzip,
···1415 ...
1516}:
1617if md5 != "" then
1717- throw "fetchnuget does not support md5 anymore, please use 'hash' attribute with SRI hash"
1818+ throw "fetchnuget does not support md5 anymore, please use 'hash' attribute with SRI hash: ${
1919+ lib.generators.toPretty { } attrs
2020+ }"
1821# This is also detected in fetchurl, but we just throw here to avoid confusion
1922else if (sha256 != "" && hash != "") then
2020- throw "multiple hashes passed to fetchNuGet"
2323+ throw "multiple hashes passed to fetchNuGet: ${lib.generators.toPretty { } url}"
2124else
2225 buildDotnetPackage (
2326 {
+14-7
pkgs/build-support/fetchurl/default.nix
···119119120120 # Additional packages needed as part of a fetch
121121 nativeBuildInputs ? [ ],
122122-}:
122122+}@args:
123123124124let
125125 urls_ =
126126 if urls != [ ] && url == "" then
127127- (if lib.isList urls then urls else throw "`urls` is not a list")
127127+ (
128128+ if lib.isList urls then urls else throw "`urls` is not a list: ${lib.generators.toPretty { } urls}"
129129+ )
128130 else if urls == [ ] && url != "" then
129129- (if lib.isString url then [ url ] else throw "`url` is not a string")
131131+ (
132132+ if lib.isString url then
133133+ [ url ]
134134+ else
135135+ throw "`url` is not a string: ${lib.generators.toPretty { } urls}"
136136+ )
130137 else
131131- throw "fetchurl requires either `url` or `urls` to be set";
138138+ throw "fetchurl requires either `url` or `urls` to be set: ${lib.generators.toPretty { } args}";
132139133140 hash_ =
134141 if
···143150 ]
144151 ) > 1
145152 then
146146- throw "multiple hashes passed to fetchurl"
153153+ throw "multiple hashes passed to fetchurl: ${lib.generators.toPretty { } urls_}"
147154 else
148155149156 if hash != "" then
···155162 if outputHashAlgo != "" then
156163 { inherit outputHashAlgo outputHash; }
157164 else
158158- throw "fetchurl was passed outputHash without outputHashAlgo"
165165+ throw "fetchurl was passed outputHash without outputHashAlgo: ${lib.generators.toPretty { } urls_}"
159166 else if sha512 != "" then
160167 {
161168 outputHashAlgo = "sha512";
···177184 outputHash = "";
178185 }
179186 else
180180- throw "fetchurl requires a hash for fixed-output derivation: ${lib.concatStringsSep ", " urls_}";
187187+ throw "fetchurl requires a hash for fixed-output derivation: ${lib.generators.toPretty urls_}";
181188in
182189183190assert
+3-3
pkgs/by-name/an/ankama-launcher/package.nix
···55}:
66let
77 pname = "ankama-launcher";
88- version = "3.12.35";
88+ version = "3.12.38";
991010 # The original URL for the launcher is:
1111 # https://launcher.cdn.ankama.com/installers/production/Ankama%20Launcher-Setup-x86_64.AppImage
1212 # As it does not encode the version, we use the wayback machine (web.archive.org) to get a fixed URL.
1313 # To update the client, head to web.archive.org and create a new snapshot of the download page.
1414 src = fetchurl {
1515- url = "https://web.archive.org/web/20250217184754/https://launcher.cdn.ankama.com/installers/production/Ankama%20Launcher-Setup-x86_64.AppImage";
1616- hash = "sha256-/M5Wymahq0JWRgATRWoFoFFJ4qxu/cJvSqoz81/euug=";
1515+ url = "https://web.archive.org/web/20250325223011/https://launcher.cdn.ankama.com/installers/production/Ankama%20Launcher-Setup-x86_64.AppImage";
1616+ hash = "sha256-psN7aJQ19s4dYI1s/o6mma32g9++wKZyINDpNo3/q+U=";
1717 };
18181919 appimageContents = appimageTools.extract { inherit pname version src; };
···303303 linux_6_13_hardened = hardenedKernelFor kernels.linux_6_13 { };
304304305305 } // lib.optionalAttrs config.allowAliases {
306306- linux_4_14 = throw "linux 4.14 was removed because it will reach its end of life within 23.11";
307306 linux_4_19 = throw "linux 4.19 was removed because it will reach its end of life within 24.11";
308308- linux_6_4 = throw "linux 6.4 was removed because it has reached its end of life upstream";
309309- linux_6_5 = throw "linux 6.5 was removed because it has reached its end of life upstream";
310310- linux_6_7 = throw "linux 6.7 was removed because it has reached its end of life upstream";
311311- linux_6_8 = throw "linux 6.8 was removed because it has reached its end of life upstream";
312307 linux_6_9 = throw "linux 6.9 was removed because it has reached its end of life upstream";
313308 linux_6_10 = throw "linux 6.10 was removed because it has reached its end of life upstream";
314309 linux_6_11 = throw "linux 6.11 was removed because it has reached its end of life upstream";
315310316316- linux_xanmod_tt = throw "linux_xanmod_tt was removed because upstream no longer offers this option";
317317-318318- linux_4_14_hardened = throw "linux 4.14 was removed because it will reach its end of life within 23.11";
319311 linux_4_19_hardened = throw "linux 4.19 was removed because it will reach its end of life within 24.11";
320320- linux_6_4_hardened = throw "linux 6.4 was removed because it has reached its end of life upstream";
321321- linux_6_5_hardened = throw "linux 6.5 was removed because it has reached its end of life upstream";
322322- linux_6_7_hardened = throw "linux 6.7 was removed because it has reached its end of life upstream";
323323- linux_6_8_hardened = throw "linux 6.8 was removed because it has reached its end of life upstream";
324312 linux_6_9_hardened = throw "linux 6.9 was removed because it has reached its end of life upstream";
325313 linux_6_10_hardened = throw "linux 6.10 was removed because it has reached its end of life upstream";
326314 linux_6_11_hardened = throw "linux 6.11 was removed because it has reached its end of life upstream";
···684672 linux_6_13 = recurseIntoAttrs (packagesFor kernels.linux_6_13);
685673 linux_6_14 = recurseIntoAttrs (packagesFor kernels.linux_6_14);
686674 } // lib.optionalAttrs config.allowAliases {
687687- linux_4_14 = throw "linux 4.14 was removed because it will reach its end of life within 23.11"; # Added 2023-10-11
688675 linux_4_19 = throw "linux 4.19 was removed because it will reach its end of life within 24.11"; # Added 2024-09-21
689689- linux_6_4 = throw "linux 6.4 was removed because it reached its end of life upstream"; # Added 2023-10-02
690690- linux_6_5 = throw "linux 6.5 was removed because it reached its end of life upstream"; # Added 2024-02-28
691691- linux_6_7 = throw "linux 6.7 was removed because it reached its end of life upstream"; # Added 2024-04-04
692692- linux_6_8 = throw "linux 6.8 was removed because it reached its end of life upstream"; # Added 2024-08-02
693676 linux_6_9 = throw "linux 6.9 was removed because it reached its end of life upstream"; # Added 2024-08-02
694677 linux_6_10 = throw "linux 6.10 was removed because it reached its end of life upstream"; # Added 2024-10-23
695678 linux_6_11 = throw "linux 6.11 was removed because it reached its end of life upstream"; # Added 2025-03-23
···739722 linux_latest_libre = recurseIntoAttrs (packagesFor kernels.linux_latest_libre);
740723 __recurseIntoDerivationForReleaseJobs = true;
741724 } // lib.optionalAttrs config.allowAliases {
742742- linux_4_14_hardened = throw "linux 4.14 was removed because it will reach its end of life within 23.11";
743725 linux_4_19_hardened = throw "linux 4.19 was removed because it will reach its end of life within 24.11";
744744- linux_6_4_hardened = throw "linux 6.4 was removed because it has reached its end of life upstream";
745745- linux_6_5_hardened = throw "linux 6.5 was removed because it has reached its end of life upstream";
746746- linux_6_7_hardened = throw "linux 6.7 was removed because it has reached its end of life upstream";
747747- linux_6_8_hardened = throw "linux 6.8 was removed because it has reached its end of life upstream";
748726 linux_6_9_hardened = throw "linux 6.9 was removed because it has reached its end of life upstream";
727727+ linux_6_10_hardened = throw "linux 6.10 was removed because it has reached its end of life upstream";
749728 linux_6_11_hardened = throw "linux 6.11 was removed because it has reached its end of life upstream";
750750- linux_xanmod_tt = throw "linux_xanmod_tt was removed because upstream no longer offers this option";
751729 });
752730753731 packageAliases = {