···283283284284 _Default value:_ `""`.
285285286286-`recursiveHash` (Boolean; _optional_)
286286+`recursiveHash` (Boolean; _optional_) []{#sec-pkgs-fetchers-fetchurl-inputs-recursiveHash}
287287: If set to `true`, will signal to Nix that the hash given to `fetchurl` was calculated using the `"recursive"` mode.
288288 See [the documentation on the Nix manual](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-outputHashMode) for more information about the existing modes.
289289···296296297297 _Default value_: `false`.
298298299299-`downloadToTemp` (Boolean; _optional_)
299299+`downloadToTemp` (Boolean; _optional_) []{#sec-pkgs-fetchers-fetchurl-inputs-downloadToTemp}
300300: If `true`, saves the downloaded file to a temporary location instead of the expected Nix store location.
301301 This is useful when used in conjunction with `postFetch` attribute, otherwise `fetchurl` will not produce any meaningful output.
302302···519519520520## `fetchzip` {#sec-pkgs-fetchers-fetchzip}
521521522522-Downloads content from a given URL (which is assumed to be an archive), and decompresses the archive for you, making files and directories directly accessible.
523523-`fetchzip` can only be used with archives.
524524-Despite its name, `fetchzip` is not limited to `.zip` files and can also be used with any tarball.
522522+Returns a [fixed-output derivation](https://nixos.org/manual/nix/stable/glossary.html#gloss-fixed-output-derivation) which downloads an archive from a given URL and decompresses it.
523523+524524+Despite its name, `fetchzip` is not limited to `.zip` files but can also be used with [various compressed tarball formats](#tar-files) by default.
525525+This can extended by specifying additional attributes, see [](#ex-fetchers-fetchzip-rar-archive) to understand how to do that.
526526+527527+### Inputs {#sec-pkgs-fetchers-fetchzip-inputs}
528528+529529+`fetchzip` requires an attribute set, and most attributes are passed to the underlying call to [`fetchurl`](#sec-pkgs-fetchers-fetchurl).
530530+531531+The attributes below are treated differently by `fetchzip` when compared to what `fetchurl` expects:
532532+533533+`name` (String; _optional_)
534534+: Works as defined in `fetchurl`, but has a different default value than `fetchurl`.
535535+536536+ _Default value:_ `"source"`.
537537+538538+`nativeBuildInputs` (List of Attribute Set; _optional_)
539539+: Works as defined in `fetchurl`, but it is also augmented by `fetchzip` to include packages to deal with additional archives (such as `.zip`).
540540+541541+ _Default value:_ `[]`.
542542+543543+`postFetch` (String; _optional_)
544544+: Works as defined in `fetchurl`, but it is also augmented with the code needed to make `fetchzip` work.
545545+546546+ :::{.caution}
547547+ It is only safe to modify files in `$out` in `postFetch`.
548548+ Consult the implementation of `fetchzip` for anything more involved.
549549+ :::
525550526526-It has two required arguments, a URL and a hash.
527527-The hash is typically `hash`, although many more hash algorithms are supported.
528528-Nixpkgs contributors are currently recommended to use `hash`.
529529-This hash will be used by Nix to identify your source.
530530-A typical usage of `fetchzip` is provided below.
551551+ _Default value:_ `""`.
552552+553553+`stripRoot` (Boolean; _optional_)
554554+: If `true`, the decompressed contents are moved one level up the directory tree.
555555+556556+ This is useful for archives that decompress into a single directory which commonly includes some values that change with time, such as version numbers.
557557+ When this is the case (and `stripRoot` is `true`), `fetchzip` will remove this directory and make the decompressed contents available in the top-level directory.
558558+559559+ [](#ex-fetchers-fetchzip-simple-striproot) shows what this attribute does.
560560+561561+ This attribute is **not** passed through to `fetchurl`.
562562+563563+ _Default value:_ `true`.
564564+565565+`extension` (String or Null; _optional_)
566566+: If set, the archive downloaded by `fetchzip` will be renamed to a filename with the extension specified in this attribute.
567567+568568+ This is useful when making `fetchzip` support additional types of archives, because the implementation may use the extension of an archive to determine whether they can decompress it.
569569+ If the URL you're using to download the contents doesn't end with the extension associated with the archive, use this attribute to fix the filename of the archive.
570570+571571+ This attribute is **not** passed through to `fetchurl`.
572572+573573+ _Default value:_ `null`.
574574+575575+`recursiveHash` (Boolean; _optional_)
576576+: Works [as defined in `fetchurl`](#sec-pkgs-fetchers-fetchurl-inputs-recursiveHash), but its default value is different than for `fetchurl`.
577577+578578+ _Default value:_ `true`.
579579+580580+`downloadToTemp` (Boolean; _optional_)
581581+: Works [as defined in `fetchurl`](#sec-pkgs-fetchers-fetchurl-inputs-downloadToTemp), but its default value is different than for `fetchurl`.
582582+583583+ _Default value:_ `true`.
584584+585585+`extraPostFetch` **DEPRECATED**
586586+: This attribute is deprecated.
587587+ Please use `postFetch` instead.
588588+589589+ This attribute is **not** passed through to `fetchurl`.
590590+591591+### Examples {#sec-pkgs-fetchers-fetchzip-examples}
592592+593593+::::{.example #ex-fetchers-fetchzip-simple-striproot}
594594+# Using `fetchzip` to output contents directly
595595+596596+The following recipe shows how to use `fetchzip` to decompress a `.tar.gz` archive:
531597532598```nix
533599{ fetchzip }:
···536602 hash = "sha256-3ABYlME9R8klcpJ7MQpyFEFwHmxDDEzIYBqu/CpDYmg=";
537603}
538604```
605605+606606+This archive has all its contents in a directory named `patchelf-0.18.0`.
607607+This means that after decompressing, you'd have to enter this directory to see the contents of the archive.
608608+However, `fetchzip` makes this easier through the attribute `stripRoot` (enabled by default).
609609+610610+After building the recipe, the derivation output will show all the files in the archive at the top level:
611611+612612+```shell
613613+$ nix-build
614614+(output removed for clarity)
615615+/nix/store/1b7h3fvmgrcddvs0m299hnqxlgli1yjw-source
616616+617617+$ ls /nix/store/1b7h3fvmgrcddvs0m299hnqxlgli1yjw-source
618618+aclocal.m4 completions configure.ac m4 Makefile.in patchelf.spec README.md tests
619619+build-aux configure COPYING Makefile.am patchelf.1 patchelf.spec.in src version
620620+```
621621+622622+If `stripRoot` is set to `false`, the derivation output will be the decompressed archive as-is:
623623+624624+```nix
625625+{ fetchzip }:
626626+fetchzip {
627627+ url = "https://github.com/NixOS/patchelf/releases/download/0.18.0/patchelf-0.18.0.tar.gz";
628628+ hash = "sha256-uv3FuKE4DqpHT3yfE0qcnq0gYjDNQNKZEZt2+PUAneg=";
629629+ stripRoot = false;
630630+}
631631+```
632632+633633+:::{.caution}
634634+The hash changed!
635635+Whenever changing attributes of a Nixpkgs fetcher, [remember to invalidate the hash](#chap-pkgs-fetchers-caveats), otherwise you won't get the results you're expecting!
636636+:::
637637+638638+After building the recipe:
639639+640640+```shell
641641+$ nix-build
642642+(output removed for clarity)
643643+/nix/store/2hy5bxw7xgbgxkn0i4x6hjr8w3dbx16c-source
644644+645645+$ ls /nix/store/2hy5bxw7xgbgxkn0i4x6hjr8w3dbx16c-source
646646+patchelf-0.18.0
647647+```
648648+::::
649649+650650+::::{.example #ex-fetchers-fetchzip-rar-archive}
651651+# Using `fetchzip` to decompress a `.rar` file
652652+653653+The `unrar` package provides a [setup hook](#ssec-setup-hooks) to decompress `.rar` archives during the [unpack phase](#ssec-unpack-phase), which can be used with `fetchzip` to decompress those archives:
654654+655655+```nix
656656+{ fetchzip, unrar }:
657657+fetchzip {
658658+ url = "https://archive.org/download/SpaceCadet_Plus95/Space_Cadet.rar";
659659+ hash = "sha256-fC+zsR8BY6vXpUkVd6i1jF0IZZxVKVvNi6VWCKT+pA4=";
660660+ stripRoot = false;
661661+ nativeBuildInputs = [ unrar ];
662662+}
663663+```
664664+665665+Since this particular `.rar` file doesn't put its contents in a directory inside the archive, `stripRoot` must be set to `false`.
666666+667667+After building the recipe, the derivation output will show the decompressed files:
668668+669669+```shell
670670+$ nix-build
671671+(output removed for clarity)
672672+/nix/store/zpn7knxfva6rfjja2gbb4p3l9w1f0d36-source
673673+674674+$ ls /nix/store/zpn7knxfva6rfjja2gbb4p3l9w1f0d36-source
675675+FONT.DAT PINBALL.DAT PINBALL.EXE PINBALL2.MID TABLE.BMP WMCONFIG.EXE
676676+MSCREATE.DIR PINBALL.DOC PINBALL.MID Sounds WAVEMIX.INF
677677+```
678678+::::
539679540680## `fetchpatch` {#fetchpatch}
541681
···90909191- [maubot](https://github.com/maubot/maubot), a plugin-based Matrix bot framework. Available as [services.maubot](#opt-services.maubot.enable).
92929393+- [ryzen-monitor-ng](https://github.com/mann1x/ryzen_monitor_ng), a desktop AMD CPU power monitor and controller, similar to Ryzen Master but for Linux. Available as [programs.ryzen-monitor-ng](#opt-programs.ryzen-monitor-ng.enable)
9494+9595+- [ryzen-smu](https://gitlab.com/leogx9r/ryzen_smu), Linux kernel driver to expose the SMU (System Management Unit) for certain AMD Ryzen Processors. Includes the userspace program `monitor_cpu`. Available at [hardward.cpu.amd.ryzen-smu](#opt-hardware.cpu.amd.ryzen-smu.enable)
9696+9397- systemd's gateway, upload, and remote services, which provides ways of sending journals across the network. Enable using [services.journald.gateway](#opt-services.journald.gateway.enable), [services.journald.upload](#opt-services.journald.upload.enable), and [services.journald.remote](#opt-services.journald.remote.enable).
94989599- [GNS3](https://www.gns3.com/), a network software emulator. Available as [services.gns3-server](#opt-services.gns3-server.enable).
···497501 non-child processes. This means you will not be able to attach gdb to an
498502 existing process, but will need to start that process from gdb (so it is a
499503 child). Or you can set `boot.kernel.sysctl."kernel.yama.ptrace_scope"` to 0.
500500-501501-- The new option `services.getty.autologinOnce` was added to limit the automatic login to once per boot and on the first tty only.
502502- When using full disk encryption, this option allows to unlock the system without retyping the passphrase while keeping the other ttys protected.
503504504505- The netbird module now allows running multiple tunnels in parallel through [`services.netbird.tunnels`](#opt-services.netbird.tunnels).
505506
+26
nixos/modules/hardware/cpu/amd-ryzen-smu.nix
···11+{ config
22+, lib
33+, ...
44+}:
55+let
66+ inherit (lib) mkEnableOption mkIf;
77+ cfg = config.hardware.cpu.amd.ryzen-smu;
88+ ryzen-smu = config.boot.kernelPackages.ryzen-smu;
99+in
1010+{
1111+ options.hardware.cpu.amd.ryzen-smu = {
1212+ enable = mkEnableOption ''
1313+ ryzen_smu, a linux kernel driver that exposes access to the SMU (System Management Unit) for certain AMD Ryzen Processors.
1414+1515+ WARNING: Damage cause by use of your AMD processor outside of official AMD specifications or outside of factory settings are not covered under any AMD product warranty and may not be covered by your board or system manufacturer's warranty
1616+ '';
1717+ };
1818+1919+ config = mkIf cfg.enable {
2020+ boot.kernelModules = [ "ryzen-smu" ];
2121+ boot.extraModulePackages = [ ryzen-smu ];
2222+ environment.systemPackages = [ ryzen-smu ];
2323+ };
2424+2525+ meta.maintainers = with lib.maintainers; [ Cryolitia phdyellow ];
2626+}
···11+{ pkgs
22+, config
33+, lib
44+, ...
55+}:
66+let
77+ inherit (lib) mkEnableOption mkPackageOption mkIf;
88+ cfg = config.programs.ryzen-monitor-ng;
99+in
1010+{
1111+ options = {
1212+ programs.ryzen-monitor-ng = {
1313+ enable = mkEnableOption ''
1414+ ryzen_monitor_ng, a userspace application for setting and getting Ryzen SMU (System Management Unit) parameters via the ryzen_smu kernel driver.
1515+1616+ Monitor power information of Ryzen processors via the PM table of the SMU.
1717+1818+ SMU Set and Get for many parameters and CO counts.
1919+2020+ https://github.com/mann1x/ryzen_monitor_ng
2121+2222+ WARNING: Damage cause by use of your AMD processor outside of official AMD specifications or outside of factory settings are not covered under any AMD product warranty and may not be covered by your board or system manufacturer's warranty
2323+ '';
2424+2525+ package = mkPackageOption pkgs "ryzen-monitor-ng" {};
2626+ };
2727+ };
2828+2929+ config = mkIf cfg.enable {
3030+ environment.systemPackages = [ cfg.package ];
3131+ hardware.cpu.amd.ryzen-smu.enable = true;
3232+ };
3333+3434+ meta.maintainers = with lib.maintainers; [ Cryolitia phdyellow ];
3535+}
+1-1
nixos/modules/services/networking/cloudflared.nix
···1111 default = null;
1212 example = "30s";
1313 description = lib.mdDoc ''
1414- Timeout for establishing a new TCP connection to your origin server. This excludes the time taken to establish TLS, which is controlled by [https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/local-management/ingress/#tlstimeout](tlsTimeout).
1414+ Timeout for establishing a new TCP connection to your origin server. This excludes the time taken to establish TLS, which is controlled by [tlsTimeout](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/local-management/ingress/#tlstimeout).
1515 '';
1616 };
1717
···1818 };
1919 };
20202121+ # We don't ship gnome-text-editor in Budgie module, we add this line mainly
2222+ # to catch eval issues related to this option.
2323+ environment.budgie.excludePackages = [ pkgs.gnome-text-editor ];
2424+2125 services.xserver.desktopManager.budgie = {
2226 enable = true;
2327 extraPlugins = [
+4
nixos/tests/cinnamon.nix
···88 services.xserver.enable = true;
99 services.xserver.desktopManager.cinnamon.enable = true;
10101111+ # We don't ship gnome-text-editor in Cinnamon module, we add this line mainly
1212+ # to catch eval issues related to this option.
1313+ environment.cinnamon.excludePackages = [ pkgs.gnome-text-editor ];
1414+1115 # For the sessionPath subtest.
1216 services.xserver.desktopManager.cinnamon.sessionPath = [ pkgs.gnome.gpaste ];
1317 };
+7
nixos/tests/pantheon.nix
···1313 services.xserver.enable = true;
1414 services.xserver.desktopManager.pantheon.enable = true;
15151616+ # We ship pantheon.appcenter by default when this is enabled.
1717+ services.flatpak.enable = true;
1818+1919+ # We don't ship gnome-text-editor in Pantheon module, we add this line mainly
2020+ # to catch eval issues related to this option.
2121+ environment.pantheon.excludePackages = [ pkgs.gnome-text-editor ];
2222+1623 environment.systemPackages = [ pkgs.xdotool ];
1724 };
1825
···941941 mktplcRef = {
942942 name = "coder-remote";
943943 publisher = "coder";
944944- version = "0.1.18";
945945- sha256 = "soNGZuyvG5+haWRcwYmYB+0OcyDAm4UQ419UnEd8waA=";
944944+ version = "0.1.36";
945945+ hash = "sha256-N1X8wB2n6JYoFHCP5iHBXHnEaRa9S1zooQZsR5mUeh8=";
946946 };
947947 meta = {
948948 description = "An extension for Visual Studio Code to open any Coder workspace in VS Code with a single click.";