···25252626- `victoriametrics` no longer contains VictoriaLogs components. These have been separated into the new package `victorialogs`.
27272828+- `mx-puppet-discord` was removed from nixpkgs along with its NixOS module as it was unmaintained and was the only user of sha1 hashes in tree.
2929+2830- `gnome-keyring` no longer ships with an SSH agent anymore because it has been deprecated upstream. You should use `gcr_4` instead, which provides the same features. More information on why this was done can be found on [the relevant GCR upstream PR](https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/67).
29313032- `stdenv.mkDerivation` and other derivation builders that use it no longer allow the value of `env` to be anything but an attribute set, for the purpose of setting environment variables that are available to the [builder](https://nix.dev/manual/nix/latest/store/derivation/#builder) process. An environment variable called `env` can still be provided by means of `mkDerivation { env.env = ...; }`, though we recommend to use a more specific name than "env".
···108108109109- [influxdb-exporter](https://github.com/prometheus/influxdb_exporter) a Prometheus exporter that exports metrics received on an InfluxDB compatible endpoint is now available as [services.prometheus.exporters.influxdb](#opt-services.prometheus.exporters.influxdb.enable).
110110111111-- [mx-puppet-discord](https://github.com/matrix-discord/mx-puppet-discord), a discord puppeting bridge for matrix. Available as [services.mx-puppet-discord](#opt-services.mx-puppet-discord.enable).
111111+- [mx-puppet-discord](https://github.com/matrix-discord/mx-puppet-discord), a discord puppeting bridge for matrix. Available as `services.mx-puppet-discord`.
112112113113- [MeshCentral](https://www.meshcommander.com/meshcentral2/overview), a remote administration service ("TeamViewer but self-hosted and with more features") is now available with a package and a module: [services.meshcentral.enable](#opt-services.meshcentral.enable)
114114
···190190 (mkRemovedOptionModule [ "services" "matrix-sliding-sync" ]
191191 "The matrix-sliding-sync package has been removed, since matrix-synapse incorporated its functionality. Remove `services.sliding-sync` from your NixOS Configuration, and the `.well-known` record for `org.matrix.msc3575.proxy` from your webserver"
192192 )
193193+ (mkRemovedOptionModule [
194194+ "services"
195195+ "mx-puppet-discord"
196196+ ] "The corresponding package was removed from nixpkgs.")
193197 (mkRemovedOptionModule [ "services" "meguca" ] "Use meguca has been removed from nixpkgs")
194198 (mkRemovedOptionModule [ "services" "mesos" ] "The corresponding package was removed from nixpkgs.")
195199 (mkRemovedOptionModule [
+32
nixos/modules/services/matrix/mautrix-whatsapp.md
···11+# Mautrix-Whatsapp {#module-services-mautrix-whatsapp}
22+33+[Mautrix-Whatsapp](https://github.com/mautrix/whatsapp) is a Matrix-Whatsapp puppeting bridge.
44+55+## Configuration {#module-services-mautrix-whatsapp-configuration}
66+77+1. Set [](#opt-services.mautrix-whatsapp.enable) to `true`. The service will use
88+ SQLite by default.
99+2. To create your configuration check the default configuration for
1010+ [](#opt-services.mautrix-whatsapp.settings). To obtain the complete default
1111+ configuration, run
1212+ `nix-shell -p mautrix-whatsapp --run "mautrix-whatsapp -c default.yaml -e"`.
1313+1414+::: {.warning}
1515+Mautrix-Whatsapp allows for some options like `encryption.pickle_key`,
1616+`provisioning.shared_secret`, allow the value `generate` to be set.
1717+Since the configuration file is regenerated on every start of the
1818+service, the generated values would be discarded and might break your
1919+installation. Instead, set those values via
2020+[](#opt-services.mautrix-whatsapp.environmentFile).
2121+:::
2222+2323+## Migrating from an older configuration {#module-services-mautrix-whatsapp-migrate-configuration}
2424+2525+With Mautrix-Whatsapp v0.11.0 the configuration has been rearranged. Mautrix-Whatsapp
2626+performs an automatic configuration migration so your pre-0.7.0 configuration
2727+should just continue to work.
2828+2929+In case you want to update your NixOS configuration, compare the migrated configuration
3030+at `/var/lib/mautrix-whatsapp/config.yaml` with the default configuration
3131+(`nix-shell -p mautrix-whatsapp --run "mautrix-whatsapp -c example.yaml -e"`) and
3232+update your module configuration accordingly.
···3939 lib.trivial.pipe extensions [
4040 (map (extension: lib.nameValuePair extension.extensionUuid extension))
4141 builtins.listToAttrs
4242- (attrs: attrs // { __attrsFailEvaluation = true; })
4342 ];
44434544 # Map the list of extensions to an attrset based on the pname as key, which is more human readable than the UUID
···80798180 # Keep the last three versions in here
8281 gnomeExtensions = lib.trivial.pipe (gnome46Extensions // gnome47Extensions // gnome48Extensions) [
8383- (v: builtins.removeAttrs v [ "__attrsFailEvaluation" ])
8482 # Apply some custom patches for automatically packaged extensions
8583 (callPackage ./extensionOverrides.nix { })
8684 # Add all manually packaged extensions
+16-13
pkgs/development/compilers/jetbrains-jdk/17.nix
···2727 libgbm,
2828 wayland,
2929 udev,
3030+ fontconfig,
3031}:
31323233assert debugBuild -> withJcef;
···4243in
4344openjdk17.overrideAttrs (oldAttrs: rec {
4445 pname = "jetbrains-jdk" + lib.optionalString withJcef "-jcef";
4545- javaVersion = "17.0.11";
4646- build = "1207.24";
4646+ javaVersion = "17.0.15";
4747+ build = "1381";
4748 # To get the new tag:
4849 # git clone https://github.com/jetbrains/jetbrainsruntime
4950 # cd jetbrainsruntime
5050- # git reset --hard [revision]
5151- # git log --simplify-by-decoration --decorate=short --pretty=short | grep "jbr-" --color=never | cut -d "(" -f2 | cut -d ")" -f1 | awk '{print $2}' | sort -t "-" -k 2 -g | tail -n 1 | tr -d ","
5252- openjdkTag = "jbr-17.0.8+7";
5151+ # git tag --points-at [revision]
5252+ # Look for the line that starts with jbr-
5353+ openjdkTag = "jbr-17.0.15+6";
5354 version = "${javaVersion}-b${build}";
54555556 src = fetchFromGitHub {
5657 owner = "JetBrains";
5758 repo = "JetBrainsRuntime";
5859 rev = "jb${version}";
5959- hash = "sha256-a7cJF2iCW/1GK0/GmVbaY5pYcn3YtZy5ngFkyAGRhu0=";
6060+ hash = "sha256-Ckv2SNugHK75Af+ZzI91+QodOHIa5TMcjVQYsO45mQo=";
6061 };
61626262- BOOT_JDK = openjdk17-bootstrap.home;
6363- # run `git log -1 --pretty=%ct` in jdk repo for new value on update
6464- SOURCE_DATE_EPOCH = 1715809405;
6363+ env = {
6464+ BOOT_JDK = openjdk17-bootstrap.home;
6565+ # run `git log -1 --pretty=%ct` in jdk repo for new value on update
6666+ SOURCE_DATE_EPOCH = 1745907200;
6767+ };
65686669 patches = [ ];
6770···7780 -e "s/SOURCE_DATE_EPOCH=.*//" \
7881 -e "s/export SOURCE_DATE_EPOCH//" \
7982 -i jb/project/tools/common/scripts/common.sh
8080- sed -i "s/STATIC_CONF_ARGS/STATIC_CONF_ARGS \$configureFlags/" jb/project/tools/linux/scripts/mkimages_${arch}.sh
8383+ substituteInPlace jb/project/tools/linux/scripts/mkimages_${arch}.sh --replace-fail "STATIC_CONF_ARGS" "STATIC_CONF_ARGS ''${configureFlags[*]}"
8184 sed \
8285 -e "s/create_image_bundle \"jb/#/" \
8386 -e "s/echo Creating /exit 0 #/" \
···133136 libgbm
134137 wayland
135138 udev
139139+ fontconfig
136140 ]
137141 }"
138138- for output in $outputs; do
142142+ for output in ${lib.concatStringsSep " " oldAttrs.outputs}; do
139143 if [ "$output" = debug ]; then continue; fi
140144 LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS"
141145 done
142146 # Add the local library paths to remove dependencies on the bootstrap
143143- for output in $outputs; do
147147+ for output in ${lib.concatStringsSep " " oldAttrs.outputs}; do
144148 if [ "$output" = debug ]; then continue; fi
145149 OUTPUTDIR=$(eval echo \$$output)
146150 BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*)
147151 echo "$BINLIBS" | while read i; do
148152 patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true
149149- patchelf --shrink-rpath "$i" || true
150153 done
151154 done
152155 '';
···13361336 mustache-tcl = tclPackages.mustache-tcl; # Added 2024-10-02
13371337 mutt-with-sidebar = mutt; # Added 2022-09-17
13381338 mutter43 = throw "'mutter43' has been removed since it is no longer used by Pantheon."; # Added 2024-09-22
13391339+ mx-puppet-discord = throw "mx-puppet-discord was removed since the packaging was unmaintained and was the sole user of sha1 hashes in nixpkgs"; # Added 2025-07-24
13391340 mysql-client = hiPrio mariadb.client;
13401341 mysql = throw "'mysql' has been renamed to/replaced by 'mariadb'"; # Converted to throw 2024-10-17
13411342 mesa_drivers = throw "'mesa_drivers' has been removed, use 'pkgs.mesa' instead."; # Converted to throw 2024-07-11
···18111812 schildichat-desktop-wayland = schildichat-web;
18121813 scitoken-cpp = scitokens-cpp; # Added 2024-02-12
18131814 scry = throw "'scry' has been removed as it was archived upstream. Use 'crystalline' instead"; # Added 2025-02-12
18151815+ scudcloud = throw "'scudcloud' has been removed as it was archived by upstream"; # Added 2025-07-24
18141816 semeru-bin-16 = throw "Semeru 16 has been removed as it has reached its end of life"; # Added 2024-08-01
18151817 semeru-jre-bin-16 = throw "Semeru 16 has been removed as it has reached its end of life"; # Added 2024-08-01
18161818 sensu = throw "sensu has been removed as the upstream project is deprecated. Consider using `sensu-go`"; # Added 2024-10-28
+9-24
pkgs/top-level/all-packages.nix
···113113114114 stringsWithDeps = lib.stringsWithDeps;
115115116116- ### Evaluating the entire Nixpkgs naively will fail, make failure fast
116116+ ### Evaluating the entire Nixpkgs naively will likely fail, make failure fast
117117 AAAAAASomeThingsFailToEvaluate = throw ''
118118- Please be informed that this pseudo-package is not the only part
119119- of Nixpkgs that fails to evaluate. You should not evaluate
120120- entire Nixpkgs without some special measures to handle failing
121121- packages, like using pkgs/top-level/release-attrpaths-superset.nix.
118118+ This pseudo-package is likely not the only part of Nixpkgs that fails to evaluate.
119119+ You should not evaluate entire Nixpkgs without measures to handle failing packages.
122120 '';
123121124122 tests = callPackages ../test { };
···170168 system = stdenv.hostPlatform.system;
171169 callTest = config: config.test.driver;
172170 };
173173- __attrsFailEvaluation = true;
174171 };
175172176173 ### BUILD SUPPORT
···3530352735313528 mhonarc = perlPackages.MHonArc;
3532352935333533- mx-puppet-discord = callPackage ../servers/mx-puppet-discord { };
35343534-35353530 nanoemoji = with python3Packages; toPythonApplication nanoemoji;
3536353135373532 netdata = callPackage ../tools/system/netdata {
···40074002 opl3bankeditor = libsForQt5.callPackage ../tools/audio/opl3bankeditor { };
40084003 opn2bankeditor = libsForQt5.callPackage ../tools/audio/opl3bankeditor/opn2bankeditor.nix { };
4009400440104010- orangefs = callPackage ../tools/filesystems/orangefs {
40114011- autoreconfHook = buildPackages.autoreconfHook269;
40124012- };
40054005+ orangefs = callPackage ../tools/filesystems/orangefs { };
4013400640144007 osl = libsForQt5.callPackage ../development/compilers/osl {
40154008 libclang = llvmPackages_19.libclang;
···10078100711007910072 rstudioServerWrapper = rstudioWrapper.override { rstudio = rstudio-server; };
10080100731008110081- rPackages =
1008210082- (dontRecurseIntoAttrs (
1008310083- callPackage ../development/r-modules {
1008410084- overrides = (config.rPackageOverrides or (_: { })) pkgs;
1008510085- }
1008610086- ))
1008710087- // {
1008810088- __attrsFailEvaluation = true;
1008910089- };
1007410074+ rPackages = dontRecurseIntoAttrs (
1007510075+ callPackage ../development/r-modules {
1007610076+ overrides = (config.rPackageOverrides or (_: { })) pkgs;
1007710077+ }
1007810078+ );
10090100791009110080 ### SERVERS
1009210081···1625016239 terraforming = callPackage ../applications/networking/cluster/terraforming { };
16251162401625216241 terraform-landscape = callPackage ../applications/networking/cluster/terraform-landscape { };
1625316253-1625416254- trufflehog = callPackage ../tools/security/trufflehog {
1625516255- buildGoModule = buildGo123Module;
1625616256- };
16257162421625816243 unityhub = callPackage ../development/tools/unityhub { };
1625916244
···7070 else
7171 pkgs.extend (
7272 final: _: {
7373- __attrsFailEvaluation = true;
7473 recurseForDerivations = false;
7574 # The CUDA package set will be available as cudaPackages_x_y, so we need only update the aliases for the
7675 # minor-versioned and unversioned package sets.
···2424{
2525 lib ? import (path + "/lib"),
2626 trace ? false,
2727- enableWarnings ? true,
2827 checkMeta ? true,
2928 path ? ./../..,
3029}:
3130let
32313333- # __attrsFailEvaluation is a temporary workaround to get top-level
3434- # eval to succeed (under builtins.tryEval) for the entire
3535- # packageset, without deep invasve changes into individual
3636- # packages.
3737- #
3838- # Now that CI has been added, ensuring that top-level eval will
3939- # not be broken by any new commits, you should not add any new
4040- # occurrences of __attrsFailEvaluation, and should remove them
4141- # wherever you are able to (doing so will likely require deep
4242- # adjustments within packages). Once all of the uses of
4343- # __attrsFailEvaluation are removed, it will be deleted from the
4444- # routine below. In the meantime,
4545- #
4632 # The intended semantics are that an attrpath rooted at pkgs is
4747- # part of the (unfiltered) release jobset iff all of the following
3333+ # part of the (unfiltered) release jobset iff both of the following
4834 # are true:
4935 #
5036 # 1. The attrpath leads to a value for which lib.isDerivation is true
5137 #
5252- # 2. No proper prefix of the attrpath has __attrsFailEvaluation=true
5353- #
5454- # 3. Any proper prefix of the attrpath at which lib.isDerivation
3838+ # 2. Any proper prefix of the attrpath at which lib.isDerivation
5539 # is true also has __recurseIntoDerivationForReleaseJobs=true.
5640 #
5757- # The last condition is unfortunately necessary because there are
4141+ # The second condition is unfortunately necessary because there are
5842 # Hydra release jobnames which have proper prefixes which are
5943 # attrnames of derivations (!). We should probably restructure
6044 # the job tree so that this is not the case.
···6246 justAttrNames =
6347 path: value:
6448 let
6565- attempt =
6666- if
4949+ result =
5050+ if path == [ "AAAAAASomeThingsFailToEvaluate" ] then
5151+ [ ]
5252+ else if
6753 lib.isDerivation value
6854 &&
6955 # in some places we have *derivations* with jobsets as subattributes, ugh
···81678268 else if !(lib.isAttrs value) then
8369 [ ]
8484- else if (value.__attrsFailEvaluation or false) then
8585- [ ]
8670 else
8771 lib.pipe value [
8872 (builtins.mapAttrs (
···9478 builtins.attrValues
9579 builtins.concatLists
9680 ];
9797-9898- seq = builtins.deepSeq attempt attempt;
9999- tried = builtins.tryEval seq;
100100-101101- result =
102102- if tried.success then
103103- tried.value
104104- else if enableWarnings && path != [ "AAAAAASomeThingsFailToEvaluate" ] then
105105- lib.warn "tryEval failed at: ${lib.concatStringsSep "." path}" [ ]
106106- else
107107- [ ];
10881 in
10982 if !trace then result else lib.trace "** ${lib.concatStringsSep "." path}" result;
11083
···280280 else
281281 throw "i686 Linux package set can only be used with the x86 family.";
282282283283- # x86_64-darwin packages for aarch64-darwin users to use with Rosetta for incompatible packages
284284- pkgsx86_64Darwin =
285285- if stdenv.hostPlatform.isDarwin then
286286- nixpkgsFun {
287287- overlays = [
288288- (self': super': {
289289- pkgsx86_64Darwin = super';
290290- })
291291- ]
292292- ++ overlays;
293293- localSystem = {
294294- config = lib.systems.parse.tripleFromSystem (
295295- stdenv.hostPlatform.parsed
296296- // {
297297- cpu = lib.systems.parse.cpuTypes.x86_64;
298298- }
299299- );
300300- };
301301- }
302302- else
303303- throw "x86_64 Darwin package set can only be used on Darwin systems.";
304304-305283 # If already linux: the same package set unaltered
306284 # Otherwise, return a natively built linux package set for the current cpu architecture string.
307285 # (ABI and other details will be set to the default for the cpu/os pair)
+22
pkgs/top-level/variants.nix
···9090 else
9191 throw "Musl libc only supports 64-bit Linux systems.";
92929393+ # x86_64-darwin packages for aarch64-darwin users to use with Rosetta for incompatible packages
9494+ pkgsx86_64Darwin =
9595+ if stdenv.hostPlatform.isDarwin then
9696+ nixpkgsFun {
9797+ overlays = [
9898+ (self': super': {
9999+ pkgsx86_64Darwin = super';
100100+ })
101101+ ]
102102+ ++ overlays;
103103+ localSystem = {
104104+ config = lib.systems.parse.tripleFromSystem (
105105+ stdenv.hostPlatform.parsed
106106+ // {
107107+ cpu = lib.systems.parse.cpuTypes.x86_64;
108108+ }
109109+ );
110110+ };
111111+ }
112112+ else
113113+ throw "x86_64 Darwin package set can only be used on Darwin systems.";
114114+93115 # Full package set with rocm on cuda off
94116 # Mostly useful for asserting pkgs.pkgsRocm.torchWithRocm == pkgs.torchWithRocm and similar
95117 pkgsRocm = nixpkgsFun ({