···2526- `victoriametrics` no longer contains VictoriaLogs components. These have been separated into the new package `victorialogs`.
270028- `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).
2930- `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".
···2526- `victoriametrics` no longer contains VictoriaLogs components. These have been separated into the new package `victorialogs`.
2728+- `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.
29+30- `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).
3132- `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".
···108109- [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).
110111-- [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).
112113- [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)
114
···108109- [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).
110111+- [mx-puppet-discord](https://github.com/matrix-discord/mx-puppet-discord), a discord puppeting bridge for matrix. Available as `services.mx-puppet-discord`.
112113- [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)
114
···190 (mkRemovedOptionModule [ "services" "matrix-sliding-sync" ]
191 "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"
192 )
0000193 (mkRemovedOptionModule [ "services" "meguca" ] "Use meguca has been removed from nixpkgs")
194 (mkRemovedOptionModule [ "services" "mesos" ] "The corresponding package was removed from nixpkgs.")
195 (mkRemovedOptionModule [
···190 (mkRemovedOptionModule [ "services" "matrix-sliding-sync" ]
191 "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"
192 )
193+ (mkRemovedOptionModule [
194+ "services"
195+ "mx-puppet-discord"
196+ ] "The corresponding package was removed from nixpkgs.")
197 (mkRemovedOptionModule [ "services" "meguca" ] "Use meguca has been removed from nixpkgs")
198 (mkRemovedOptionModule [ "services" "mesos" ] "The corresponding package was removed from nixpkgs.")
199 (mkRemovedOptionModule [
+32
nixos/modules/services/matrix/mautrix-whatsapp.md
···00000000000000000000000000000000
···1+# Mautrix-Whatsapp {#module-services-mautrix-whatsapp}
2+3+[Mautrix-Whatsapp](https://github.com/mautrix/whatsapp) is a Matrix-Whatsapp puppeting bridge.
4+5+## Configuration {#module-services-mautrix-whatsapp-configuration}
6+7+1. Set [](#opt-services.mautrix-whatsapp.enable) to `true`. The service will use
8+ SQLite by default.
9+2. To create your configuration check the default configuration for
10+ [](#opt-services.mautrix-whatsapp.settings). To obtain the complete default
11+ configuration, run
12+ `nix-shell -p mautrix-whatsapp --run "mautrix-whatsapp -c default.yaml -e"`.
13+14+::: {.warning}
15+Mautrix-Whatsapp allows for some options like `encryption.pickle_key`,
16+`provisioning.shared_secret`, allow the value `generate` to be set.
17+Since the configuration file is regenerated on every start of the
18+service, the generated values would be discarded and might break your
19+installation. Instead, set those values via
20+[](#opt-services.mautrix-whatsapp.environmentFile).
21+:::
22+23+## Migrating from an older configuration {#module-services-mautrix-whatsapp-migrate-configuration}
24+25+With Mautrix-Whatsapp v0.11.0 the configuration has been rearranged. Mautrix-Whatsapp
26+performs an automatic configuration migration so your pre-0.7.0 configuration
27+should just continue to work.
28+29+In case you want to update your NixOS configuration, compare the migrated configuration
30+at `/var/lib/mautrix-whatsapp/config.yaml` with the default configuration
31+(`nix-shell -p mautrix-whatsapp --run "mautrix-whatsapp -c example.yaml -e"`) and
32+update your module configuration accordingly.
···39 lib.trivial.pipe extensions [
40 (map (extension: lib.nameValuePair extension.extensionUuid extension))
41 builtins.listToAttrs
42- (attrs: attrs // { __attrsFailEvaluation = true; })
43 ];
4445 # Map the list of extensions to an attrset based on the pname as key, which is more human readable than the UUID
···8081 # Keep the last three versions in here
82 gnomeExtensions = lib.trivial.pipe (gnome46Extensions // gnome47Extensions // gnome48Extensions) [
83- (v: builtins.removeAttrs v [ "__attrsFailEvaluation" ])
84 # Apply some custom patches for automatically packaged extensions
85 (callPackage ./extensionOverrides.nix { })
86 # Add all manually packaged extensions
···39 lib.trivial.pipe extensions [
40 (map (extension: lib.nameValuePair extension.extensionUuid extension))
41 builtins.listToAttrs
042 ];
4344 # Map the list of extensions to an attrset based on the pname as key, which is more human readable than the UUID
···7980 # Keep the last three versions in here
81 gnomeExtensions = lib.trivial.pipe (gnome46Extensions // gnome47Extensions // gnome48Extensions) [
082 # Apply some custom patches for automatically packaged extensions
83 (callPackage ./extensionOverrides.nix { })
84 # Add all manually packaged extensions
+16-13
pkgs/development/compilers/jetbrains-jdk/17.nix
···27 libgbm,
28 wayland,
29 udev,
030}:
3132assert debugBuild -> withJcef;
···42in
43openjdk17.overrideAttrs (oldAttrs: rec {
44 pname = "jetbrains-jdk" + lib.optionalString withJcef "-jcef";
45- javaVersion = "17.0.11";
46- build = "1207.24";
47 # To get the new tag:
48 # git clone https://github.com/jetbrains/jetbrainsruntime
49 # cd jetbrainsruntime
50- # git reset --hard [revision]
51- # 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 ","
52- openjdkTag = "jbr-17.0.8+7";
53 version = "${javaVersion}-b${build}";
5455 src = fetchFromGitHub {
56 owner = "JetBrains";
57 repo = "JetBrainsRuntime";
58 rev = "jb${version}";
59- hash = "sha256-a7cJF2iCW/1GK0/GmVbaY5pYcn3YtZy5ngFkyAGRhu0=";
60 };
6162- BOOT_JDK = openjdk17-bootstrap.home;
63- # run `git log -1 --pretty=%ct` in jdk repo for new value on update
64- SOURCE_DATE_EPOCH = 1715809405;
006566 patches = [ ];
67···77 -e "s/SOURCE_DATE_EPOCH=.*//" \
78 -e "s/export SOURCE_DATE_EPOCH//" \
79 -i jb/project/tools/common/scripts/common.sh
80- sed -i "s/STATIC_CONF_ARGS/STATIC_CONF_ARGS \$configureFlags/" jb/project/tools/linux/scripts/mkimages_${arch}.sh
81 sed \
82 -e "s/create_image_bundle \"jb/#/" \
83 -e "s/echo Creating /exit 0 #/" \
···133 libgbm
134 wayland
135 udev
0136 ]
137 }"
138- for output in $outputs; do
139 if [ "$output" = debug ]; then continue; fi
140 LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS"
141 done
142 # Add the local library paths to remove dependencies on the bootstrap
143- for output in $outputs; do
144 if [ "$output" = debug ]; then continue; fi
145 OUTPUTDIR=$(eval echo \$$output)
146 BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*)
147 echo "$BINLIBS" | while read i; do
148 patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true
149- patchelf --shrink-rpath "$i" || true
150 done
151 done
152 '';
···27 libgbm,
28 wayland,
29 udev,
30+ fontconfig,
31}:
3233assert debugBuild -> withJcef;
···43in
44openjdk17.overrideAttrs (oldAttrs: rec {
45 pname = "jetbrains-jdk" + lib.optionalString withJcef "-jcef";
46+ javaVersion = "17.0.15";
47+ build = "1381";
48 # To get the new tag:
49 # git clone https://github.com/jetbrains/jetbrainsruntime
50 # cd jetbrainsruntime
51+ # git tag --points-at [revision]
52+ # Look for the line that starts with jbr-
53+ openjdkTag = "jbr-17.0.15+6";
54 version = "${javaVersion}-b${build}";
5556 src = fetchFromGitHub {
57 owner = "JetBrains";
58 repo = "JetBrainsRuntime";
59 rev = "jb${version}";
60+ hash = "sha256-Ckv2SNugHK75Af+ZzI91+QodOHIa5TMcjVQYsO45mQo=";
61 };
6263+ env = {
64+ BOOT_JDK = openjdk17-bootstrap.home;
65+ # run `git log -1 --pretty=%ct` in jdk repo for new value on update
66+ SOURCE_DATE_EPOCH = 1745907200;
67+ };
6869 patches = [ ];
70···80 -e "s/SOURCE_DATE_EPOCH=.*//" \
81 -e "s/export SOURCE_DATE_EPOCH//" \
82 -i jb/project/tools/common/scripts/common.sh
83+ substituteInPlace jb/project/tools/linux/scripts/mkimages_${arch}.sh --replace-fail "STATIC_CONF_ARGS" "STATIC_CONF_ARGS ''${configureFlags[*]}"
84 sed \
85 -e "s/create_image_bundle \"jb/#/" \
86 -e "s/echo Creating /exit 0 #/" \
···136 libgbm
137 wayland
138 udev
139+ fontconfig
140 ]
141 }"
142+ for output in ${lib.concatStringsSep " " oldAttrs.outputs}; do
143 if [ "$output" = debug ]; then continue; fi
144 LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS"
145 done
146 # Add the local library paths to remove dependencies on the bootstrap
147+ for output in ${lib.concatStringsSep " " oldAttrs.outputs}; do
148 if [ "$output" = debug ]; then continue; fi
149 OUTPUTDIR=$(eval echo \$$output)
150 BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*)
151 echo "$BINLIBS" | while read i; do
152 patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true
0153 done
154 done
155 '';
···1336 mustache-tcl = tclPackages.mustache-tcl; # Added 2024-10-02
1337 mutt-with-sidebar = mutt; # Added 2022-09-17
1338 mutter43 = throw "'mutter43' has been removed since it is no longer used by Pantheon."; # Added 2024-09-22
01339 mysql-client = hiPrio mariadb.client;
1340 mysql = throw "'mysql' has been renamed to/replaced by 'mariadb'"; # Converted to throw 2024-10-17
1341 mesa_drivers = throw "'mesa_drivers' has been removed, use 'pkgs.mesa' instead."; # Converted to throw 2024-07-11
···1811 schildichat-desktop-wayland = schildichat-web;
1812 scitoken-cpp = scitokens-cpp; # Added 2024-02-12
1813 scry = throw "'scry' has been removed as it was archived upstream. Use 'crystalline' instead"; # Added 2025-02-12
01814 semeru-bin-16 = throw "Semeru 16 has been removed as it has reached its end of life"; # Added 2024-08-01
1815 semeru-jre-bin-16 = throw "Semeru 16 has been removed as it has reached its end of life"; # Added 2024-08-01
1816 sensu = throw "sensu has been removed as the upstream project is deprecated. Consider using `sensu-go`"; # Added 2024-10-28
···1336 mustache-tcl = tclPackages.mustache-tcl; # Added 2024-10-02
1337 mutt-with-sidebar = mutt; # Added 2022-09-17
1338 mutter43 = throw "'mutter43' has been removed since it is no longer used by Pantheon."; # Added 2024-09-22
1339+ 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
1340 mysql-client = hiPrio mariadb.client;
1341 mysql = throw "'mysql' has been renamed to/replaced by 'mariadb'"; # Converted to throw 2024-10-17
1342 mesa_drivers = throw "'mesa_drivers' has been removed, use 'pkgs.mesa' instead."; # Converted to throw 2024-07-11
···1812 schildichat-desktop-wayland = schildichat-web;
1813 scitoken-cpp = scitokens-cpp; # Added 2024-02-12
1814 scry = throw "'scry' has been removed as it was archived upstream. Use 'crystalline' instead"; # Added 2025-02-12
1815+ scudcloud = throw "'scudcloud' has been removed as it was archived by upstream"; # Added 2025-07-24
1816 semeru-bin-16 = throw "Semeru 16 has been removed as it has reached its end of life"; # Added 2024-08-01
1817 semeru-jre-bin-16 = throw "Semeru 16 has been removed as it has reached its end of life"; # Added 2024-08-01
1818 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
···113114 stringsWithDeps = lib.stringsWithDeps;
115116- ### Evaluating the entire Nixpkgs naively will fail, make failure fast
117 AAAAAASomeThingsFailToEvaluate = throw ''
118- Please be informed that this pseudo-package is not the only part
119- of Nixpkgs that fails to evaluate. You should not evaluate
120- entire Nixpkgs without some special measures to handle failing
121- packages, like using pkgs/top-level/release-attrpaths-superset.nix.
122 '';
123124 tests = callPackages ../test { };
···170 system = stdenv.hostPlatform.system;
171 callTest = config: config.test.driver;
172 };
173- __attrsFailEvaluation = true;
174 };
175176 ### BUILD SUPPORT
···35303531 mhonarc = perlPackages.MHonArc;
35323533- mx-puppet-discord = callPackage ../servers/mx-puppet-discord { };
3534-3535 nanoemoji = with python3Packages; toPythonApplication nanoemoji;
35363537 netdata = callPackage ../tools/system/netdata {
···4007 opl3bankeditor = libsForQt5.callPackage ../tools/audio/opl3bankeditor { };
4008 opn2bankeditor = libsForQt5.callPackage ../tools/audio/opl3bankeditor/opn2bankeditor.nix { };
40094010- orangefs = callPackage ../tools/filesystems/orangefs {
4011- autoreconfHook = buildPackages.autoreconfHook269;
4012- };
40134014 osl = libsForQt5.callPackage ../development/compilers/osl {
4015 libclang = llvmPackages_19.libclang;
···1007810079 rstudioServerWrapper = rstudioWrapper.override { rstudio = rstudio-server; };
1008010081- rPackages =
10082- (dontRecurseIntoAttrs (
10083- callPackage ../development/r-modules {
10084- overrides = (config.rPackageOverrides or (_: { })) pkgs;
10085- }
10086- ))
10087- // {
10088- __attrsFailEvaluation = true;
10089- };
1009010091 ### SERVERS
10092···16250 terraforming = callPackage ../applications/networking/cluster/terraforming { };
1625116252 terraform-landscape = callPackage ../applications/networking/cluster/terraform-landscape { };
16253-16254- trufflehog = callPackage ../tools/security/trufflehog {
16255- buildGoModule = buildGo123Module;
16256- };
1625716258 unityhub = callPackage ../development/tools/unityhub { };
16259
···113114 stringsWithDeps = lib.stringsWithDeps;
115116+ ### Evaluating the entire Nixpkgs naively will likely fail, make failure fast
117 AAAAAASomeThingsFailToEvaluate = throw ''
118+ This pseudo-package is likely not the only part of Nixpkgs that fails to evaluate.
119+ You should not evaluate entire Nixpkgs without measures to handle failing packages.
00120 '';
121122 tests = callPackages ../test { };
···168 system = stdenv.hostPlatform.system;
169 callTest = config: config.test.driver;
170 };
0171 };
172173 ### BUILD SUPPORT
···35273528 mhonarc = perlPackages.MHonArc;
3529003530 nanoemoji = with python3Packages; toPythonApplication nanoemoji;
35313532 netdata = callPackage ../tools/system/netdata {
···4002 opl3bankeditor = libsForQt5.callPackage ../tools/audio/opl3bankeditor { };
4003 opn2bankeditor = libsForQt5.callPackage ../tools/audio/opl3bankeditor/opn2bankeditor.nix { };
40044005+ orangefs = callPackage ../tools/filesystems/orangefs { };
0040064007 osl = libsForQt5.callPackage ../development/compilers/osl {
4008 libclang = llvmPackages_19.libclang;
···1007110072 rstudioServerWrapper = rstudioWrapper.override { rstudio = rstudio-server; };
1007310074+ rPackages = dontRecurseIntoAttrs (
10075+ callPackage ../development/r-modules {
10076+ overrides = (config.rPackageOverrides or (_: { })) pkgs;
10077+ }
10078+ );
00001007910080 ### SERVERS
10081···16239 terraforming = callPackage ../applications/networking/cluster/terraforming { };
1624016241 terraform-landscape = callPackage ../applications/networking/cluster/terraform-landscape { };
00001624216243 unityhub = callPackage ../development/tools/unityhub { };
16244
···70 else
71 pkgs.extend (
72 final: _: {
73- __attrsFailEvaluation = true;
74 recurseForDerivations = false;
75 # The CUDA package set will be available as cudaPackages_x_y, so we need only update the aliases for the
76 # minor-versioned and unversioned package sets.
···70 else
71 pkgs.extend (
72 final: _: {
073 recurseForDerivations = false;
74 # The CUDA package set will be available as cudaPackages_x_y, so we need only update the aliases for the
75 # minor-versioned and unversioned package sets.
···24{
25 lib ? import (path + "/lib"),
26 trace ? false,
27- enableWarnings ? true,
28 checkMeta ? true,
29 path ? ./../..,
30}:
31let
3233- # __attrsFailEvaluation is a temporary workaround to get top-level
34- # eval to succeed (under builtins.tryEval) for the entire
35- # packageset, without deep invasve changes into individual
36- # packages.
37- #
38- # Now that CI has been added, ensuring that top-level eval will
39- # not be broken by any new commits, you should not add any new
40- # occurrences of __attrsFailEvaluation, and should remove them
41- # wherever you are able to (doing so will likely require deep
42- # adjustments within packages). Once all of the uses of
43- # __attrsFailEvaluation are removed, it will be deleted from the
44- # routine below. In the meantime,
45- #
46 # The intended semantics are that an attrpath rooted at pkgs is
47- # part of the (unfiltered) release jobset iff all of the following
48 # are true:
49 #
50 # 1. The attrpath leads to a value for which lib.isDerivation is true
51 #
52- # 2. No proper prefix of the attrpath has __attrsFailEvaluation=true
53- #
54- # 3. Any proper prefix of the attrpath at which lib.isDerivation
55 # is true also has __recurseIntoDerivationForReleaseJobs=true.
56 #
57- # The last condition is unfortunately necessary because there are
58 # Hydra release jobnames which have proper prefixes which are
59 # attrnames of derivations (!). We should probably restructure
60 # the job tree so that this is not the case.
···62 justAttrNames =
63 path: value:
64 let
65- attempt =
66- if
0067 lib.isDerivation value
68 &&
69 # in some places we have *derivations* with jobsets as subattributes, ugh
···8182 else if !(lib.isAttrs value) then
83 [ ]
84- else if (value.__attrsFailEvaluation or false) then
85- [ ]
86 else
87 lib.pipe value [
88 (builtins.mapAttrs (
···94 builtins.attrValues
95 builtins.concatLists
96 ];
97-98- seq = builtins.deepSeq attempt attempt;
99- tried = builtins.tryEval seq;
100-101- result =
102- if tried.success then
103- tried.value
104- else if enableWarnings && path != [ "AAAAAASomeThingsFailToEvaluate" ] then
105- lib.warn "tryEval failed at: ${lib.concatStringsSep "." path}" [ ]
106- else
107- [ ];
108 in
109 if !trace then result else lib.trace "** ${lib.concatStringsSep "." path}" result;
110
···24{
25 lib ? import (path + "/lib"),
26 trace ? false,
027 checkMeta ? true,
28 path ? ./../..,
29}:
30let
31000000000000032 # The intended semantics are that an attrpath rooted at pkgs is
33+ # part of the (unfiltered) release jobset iff both of the following
34 # are true:
35 #
36 # 1. The attrpath leads to a value for which lib.isDerivation is true
37 #
38+ # 2. Any proper prefix of the attrpath at which lib.isDerivation
0039 # is true also has __recurseIntoDerivationForReleaseJobs=true.
40 #
41+ # The second condition is unfortunately necessary because there are
42 # Hydra release jobnames which have proper prefixes which are
43 # attrnames of derivations (!). We should probably restructure
44 # the job tree so that this is not the case.
···46 justAttrNames =
47 path: value:
48 let
49+ result =
50+ if path == [ "AAAAAASomeThingsFailToEvaluate" ] then
51+ [ ]
52+ else if
53 lib.isDerivation value
54 &&
55 # in some places we have *derivations* with jobsets as subattributes, ugh
···6768 else if !(lib.isAttrs value) then
69 [ ]
0070 else
71 lib.pipe value [
72 (builtins.mapAttrs (
···78 builtins.attrValues
79 builtins.concatLists
80 ];
0000000000081 in
82 if !trace then result else lib.trace "** ${lib.concatStringsSep "." path}" result;
83
···280 else
281 throw "i686 Linux package set can only be used with the x86 family.";
282283- # x86_64-darwin packages for aarch64-darwin users to use with Rosetta for incompatible packages
284- pkgsx86_64Darwin =
285- if stdenv.hostPlatform.isDarwin then
286- nixpkgsFun {
287- overlays = [
288- (self': super': {
289- pkgsx86_64Darwin = super';
290- })
291- ]
292- ++ overlays;
293- localSystem = {
294- config = lib.systems.parse.tripleFromSystem (
295- stdenv.hostPlatform.parsed
296- // {
297- cpu = lib.systems.parse.cpuTypes.x86_64;
298- }
299- );
300- };
301- }
302- else
303- throw "x86_64 Darwin package set can only be used on Darwin systems.";
304-305 # If already linux: the same package set unaltered
306 # Otherwise, return a natively built linux package set for the current cpu architecture string.
307 # (ABI and other details will be set to the default for the cpu/os pair)
···280 else
281 throw "i686 Linux package set can only be used with the x86 family.";
2820000000000000000000000283 # If already linux: the same package set unaltered
284 # Otherwise, return a natively built linux package set for the current cpu architecture string.
285 # (ABI and other details will be set to the default for the cpu/os pair)
+22
pkgs/top-level/variants.nix
···90 else
91 throw "Musl libc only supports 64-bit Linux systems.";
92000000000000000000000093 # Full package set with rocm on cuda off
94 # Mostly useful for asserting pkgs.pkgsRocm.torchWithRocm == pkgs.torchWithRocm and similar
95 pkgsRocm = nixpkgsFun ({
···90 else
91 throw "Musl libc only supports 64-bit Linux systems.";
9293+ # x86_64-darwin packages for aarch64-darwin users to use with Rosetta for incompatible packages
94+ pkgsx86_64Darwin =
95+ if stdenv.hostPlatform.isDarwin then
96+ nixpkgsFun {
97+ overlays = [
98+ (self': super': {
99+ pkgsx86_64Darwin = super';
100+ })
101+ ]
102+ ++ overlays;
103+ localSystem = {
104+ config = lib.systems.parse.tripleFromSystem (
105+ stdenv.hostPlatform.parsed
106+ // {
107+ cpu = lib.systems.parse.cpuTypes.x86_64;
108+ }
109+ );
110+ };
111+ }
112+ else
113+ throw "x86_64 Darwin package set can only be used on Darwin systems.";
114+115 # Full package set with rocm on cuda off
116 # Mostly useful for asserting pkgs.pkgsRocm.torchWithRocm == pkgs.torchWithRocm and similar
117 pkgsRocm = nixpkgsFun ({