···154 The module now includes an optional config check, that is enabled by default, to make the change obvious before any deployment.
155 More information about the configuration syntax change is available in the [upstream repository](https://github.com/prometheus/snmp_exporter/blob/b75fc6b839ee3f3ccbee68bee55f1ae99555084a/auth-split-migration.md).
15600157## Other Notable Changes {#sec-release-24.05-notable-changes}
158159<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
···154 The module now includes an optional config check, that is enabled by default, to make the change obvious before any deployment.
155 More information about the configuration syntax change is available in the [upstream repository](https://github.com/prometheus/snmp_exporter/blob/b75fc6b839ee3f3ccbee68bee55f1ae99555084a/auth-split-migration.md).
156157+- [watchdogd](https://troglobit.com/projects/watchdogd/), a system and process supervisor using watchdog timers. Available as [services.watchdogd](#opt-services.watchdogd.enable).
158+159## Other Notable Changes {#sec-release-24.05-notable-changes}
160161<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
···897 certs = attrValues cfg.certs;
898 in [
899 {
900- assertion = cfg.email != null || all (certOpts: certOpts.email != null) certs;
901 message = ''
902 You must define `security.acme.certs.<name>.email` or
903- `security.acme.email` to register with the CA. Note that using
904 many different addresses for certs may trigger account rate limits.
905 '';
906 }
···897 certs = attrValues cfg.certs;
898 in [
899 {
900+ assertion = cfg.defaults.email != null || all (certOpts: certOpts.email != null) certs;
901 message = ''
902 You must define `security.acme.certs.<name>.email` or
903+ `security.acme.defaults.email` to register with the CA. Note that using
904 many different addresses for certs may trigger account rate limits.
905 '';
906 }
···264 inherit bintools;
265 inherit cc libc libcxx nativeTools nativeLibc nativePrefix isGNU isClang;
266267- # Expose the C++ standard library we're using. See the comments on "General
268- # libc++ support". This is also relevant when using older gcc than the
269- # stdenv's, as may be required e.g. by CUDAToolkit's nvcc.
270- cxxStdlib =
271- let
272- givenLibcxx = libcxx.isLLVM or false;
273- givenGccForLibs = useGccForLibs && gccForLibs.langCC or false;
274- in
275- if (!givenLibcxx) && givenGccForLibs then
276- { kind = "libstdc++"; package = gccForLibs; solib = gccForLibs_solib; }
277- else if givenLibcxx then
278- { kind = "libc++"; package = libcxx; solib = libcxx_solib;}
279- else
280- # We're probably using the `libstdc++` that came with our `gcc`.
281- # TODO: this is maybe not always correct?
282- # TODO: what happens when `nativeTools = true`?
283- { kind = "libstdc++"; package = cc; solib = cc_solib; }
284- ;
285-286 emacsBufferSetup = pkgs: ''
287 ; We should handle propagation here too
288 (mapc
···462 echo "-L${gccForLibs}/lib/gcc/${targetPlatform.config}/${gccForLibs.version}" >> $out/nix-support/cc-ldflags
463 echo "-L${gccForLibs_solib}/lib" >> $out/nix-support/cc-ldflags
464 ''
465- # The above "fix" may be incorrect; gcc.cc.lib doesn't contain a
466- # `target-triple` dir but the correct fix may be to just remove the above?
467- #
468- # For clang it's not necessary (see `--gcc-toolchain` below) and for other
469- # situations adding in the above will bring in lots of other gcc libraries
470- # (i.e. sanitizer libraries, `libatomic`, `libquadmath`) besides just
471- # `libstdc++`; this may actually break clang.
472473 # TODO We would like to connect this to `useGccForLibs`, but we cannot yet
474 # because `libcxxStdenv` on linux still needs this. Maybe someday we'll
···264 inherit bintools;
265 inherit cc libc libcxx nativeTools nativeLibc nativePrefix isGNU isClang;
2660000000000000000000267 emacsBufferSetup = pkgs: ''
268 ; We should handle propagation here too
269 (mapc
···443 echo "-L${gccForLibs}/lib/gcc/${targetPlatform.config}/${gccForLibs.version}" >> $out/nix-support/cc-ldflags
444 echo "-L${gccForLibs_solib}/lib" >> $out/nix-support/cc-ldflags
445 ''
0000000446447 # TODO We would like to connect this to `useGccForLibs`, but we cannot yet
448 # because `libcxxStdenv` on linux still needs this. Maybe someday we'll
···19 assertCondition = true;
20in
21022# We should use libstdc++ at least as new as nixpkgs' stdenv's one.
23assert let
24 cxxStdlibCuda = cudaStdenv.cc.cxxStdlib.package;
25 cxxStdlibNixpkgs = stdenv.cc.cxxStdlib.package;
0000000000000000000026in
27((stdenv.cc.cxxStdlib.kind or null) == "libstdc++")
28-> lib.versionAtLeast cxxStdlibCuda.version cxxStdlibNixpkgs.version;
02930lib.extendDerivation assertCondition passthruExtra cudaStdenv
···19 assertCondition = true;
20in
2122+/*
23# We should use libstdc++ at least as new as nixpkgs' stdenv's one.
24assert let
25 cxxStdlibCuda = cudaStdenv.cc.cxxStdlib.package;
26 cxxStdlibNixpkgs = stdenv.cc.cxxStdlib.package;
27+28+ # Expose the C++ standard library we're using. See the comments on "General
29+ # libc++ support". This is also relevant when using older gcc than the
30+ # stdenv's, as may be required e.g. by CUDAToolkit's nvcc.
31+ cxxStdlib = libcxx:
32+ let
33+ givenLibcxx = libcxx != null && (libcxx.isLLVM or false);
34+ givenGccForLibs = libcxx != null && !(libcxx.isLLVM or false) && (libcxx.isGNU or false);
35+ libcxx_solib = "${lib.getLib libcxx}/lib";
36+ in
37+ if (!givenLibcxx) && givenGccForLibs then
38+ { kind = "libstdc++"; package = libcxx; solib = libcxx_solib; }
39+ else if givenLibcxx then
40+ { kind = "libc++"; package = libcxx; solib = libcxx_solib;}
41+ else
42+ # We're probably using the `libstdc++` that came with our `gcc`.
43+ # TODO: this is maybe not always correct?
44+ # TODO: what happens when `nativeTools = true`?
45+ { kind = "libstdc++"; package = cc; solib = cc_solib; }
46+ ;
47in
48((stdenv.cc.cxxStdlib.kind or null) == "libstdc++")
49-> lib.versionAtLeast cxxStdlibCuda.version cxxStdlibNixpkgs.version;
50+*/
5152lib.extendDerivation assertCondition passthruExtra cudaStdenv