···274274 replacement. It stores backups as volume dump files and thus better integrates
275275 into contemporary backup solutions.
276276277277+- `services.maddy` now allows to configure users and their credentials using `services.maddy.ensureCredentials`.
278278+277279- The `dnsmasq` service now takes configuration via the
278280 `services.dnsmasq.settings` attribute set. The option
279281 `services.dnsmasq.extraConfig` will be deprecated when NixOS 22.11 reaches
+36-2
nixos/modules/services/mail/maddy.nix
···228228 default = [];
229229 description = lib.mdDoc ''
230230 List of IMAP accounts which get automatically created. Note that for
231231- a complete setup, user credentials for these accounts are required too
232232- and can be created using the command `maddyctl creds`.
231231+ a complete setup, user credentials for these accounts are required
232232+ and can be created using the `ensureCredentials` option.
233233 This option does not delete accounts which are not (anymore) listed.
234234 '';
235235 example = [
···238238 ];
239239 };
240240241241+ ensureCredentials = mkOption {
242242+ default = {};
243243+ description = lib.mdDoc ''
244244+ List of user accounts which get automatically created if they don't
245245+ exist yet. Note that for a complete setup, corresponding mail boxes
246246+ have to get created using the `ensureAccounts` option.
247247+ This option does not delete accounts which are not (anymore) listed.
248248+ '';
249249+ example = {
250250+ "user1@localhost".passwordFile = /secrets/user1-localhost;
251251+ "user2@localhost".passwordFile = /secrets/user2-localhost;
252252+ };
253253+ type = types.attrsOf (types.submodule {
254254+ options = {
255255+ passwordFile = mkOption {
256256+ type = types.path;
257257+ example = "/path/to/file";
258258+ default = null;
259259+ description = lib.mdDoc ''
260260+ Specifies the path to a file containing the
261261+ clear text password for the user.
262262+ '';
263263+ };
264264+ };
265265+ });
266266+ };
267267+241268 };
242269 };
243270···264291 ${pkgs.maddy}/bin/maddyctl imap-acct create ${account}
265292 fi
266293 '') cfg.ensureAccounts}
294294+ ''}
295295+ ${optionalString (cfg.ensureCredentials != {}) ''
296296+ ${concatStringsSep "\n" (mapAttrsToList (name: cfg: ''
297297+ if ! ${pkgs.maddy}/bin/maddyctl creds list | grep "${name}"; then
298298+ ${pkgs.maddy}/bin/maddyctl creds create --password $(cat ${escapeShellArg cfg.passwordFile}) ${name}
299299+ fi
300300+ '') cfg.ensureCredentials)}
267301 ''}
268302 '';
269303 serviceConfig = {
···28282929mkDerivation rec {
3030 pname = "jellyfin-media-player";
3131- version = "1.8.1";
3131+ version = "1.9.0";
32323333 src = fetchFromGitHub {
3434 owner = "jellyfin";
3535 repo = "jellyfin-media-player";
3636 rev = "v${version}";
3737- sha256 = "sha256-/FqxZd0cFSfkeBQmZ2gU+5FUZZ+WbQ8c2IjaZ4/uGt8=";
3737+ sha256 = "sha256-PfzBxvGroHgjEz4OchnECSfcb1Ds8xbE28yxneaiPuo=";
3838 };
39394040 patches = [
4141- # the webclient-files are not copied in the regular build script. Copy them just like the linux build
4242- ./fix-osx-resources.patch
4141+ # fix the location of the jellyfin-web path
4242+ ./fix-web-path.patch
4343 # disable update notifications since the end user can't simply download the release artifacts to update
4444 ./disable-update-notifications.patch
4545 ];
···7979 "-DLINUX_X11POWER=ON"
8080 ];
81818282- preBuild = ''
8383- # link the jellyfin-web files to the expected "dist" directory
8484- ln -s ${jellyfin-web}/share/jellyfin-web dist
8282+ preConfigure = ''
8383+ # link the jellyfin-web files to be copied by cmake (see fix-web-path.patch)
8484+ ln -s ${jellyfin-web}/share/jellyfin-web .
8585 '';
86868787 postInstall = lib.optionalString stdenv.isDarwin ''
···1818 # E.g. for cudaPackages_11_8 we use gcc11 with gcc12's libstdc++
1919 # Cf. https://github.com/NixOS/nixpkgs/pull/218265 for context
2020 backendStdenv = final.callPackage ./stdenv.nix {
2121- nixpkgsStdenv = prev.pkgs.stdenv;
2222- nvccCompatibleStdenv = prev.pkgs.buildPackages."${finalVersion.gcc}Stdenv";
2121+ # We use buildPackages (= pkgsBuildHost) because we look for a gcc that
2222+ # runs on our build platform, and that produces executables for the host
2323+ # platform (= platform on which we deploy and run the downstream packages).
2424+ # The target platform of buildPackages.gcc is our host platform, so its
2525+ # .lib output should be the libstdc++ we want to be writing in the runpaths
2626+ # Cf. https://github.com/NixOS/nixpkgs/pull/225661#discussion_r1164564576
2727+ nixpkgsCompatibleLibstdcxx = final.pkgs.buildPackages.gcc.cc.lib;
2828+ nvccCompatibleCC = final.pkgs.buildPackages."${finalVersion.gcc}".cc;
2329 };
24302531 ### Add classic cudatoolkit package
+28-12
pkgs/development/compilers/cudatoolkit/stdenv.nix
···11-{ nixpkgsStdenv
22-, nvccCompatibleStdenv
11+{ lib
22+, nixpkgsCompatibleLibstdcxx
33+, nvccCompatibleCC
34, overrideCC
55+, stdenv
46, wrapCCWith
57}:
6877-overrideCC nixpkgsStdenv (wrapCCWith {
88- cc = nvccCompatibleStdenv.cc.cc;
99+let
1010+ cc = wrapCCWith
1111+ {
1212+ cc = nvccCompatibleCC;
9131010- # This option is for clang's libcxx, but we (ab)use it for gcc's libstdc++.
1111- # Note that libstdc++ maintains forward-compatibility: if we load a newer
1212- # libstdc++ into the process, we can still use libraries built against an
1313- # older libstdc++. This, in practice, means that we should use libstdc++ from
1414- # the same stdenv that the rest of nixpkgs uses.
1515- # We currently do not try to support anything other than gcc and linux.
1616- libcxx = nixpkgsStdenv.cc.cc.lib;
1717-})
1414+ # This option is for clang's libcxx, but we (ab)use it for gcc's libstdc++.
1515+ # Note that libstdc++ maintains forward-compatibility: if we load a newer
1616+ # libstdc++ into the process, we can still use libraries built against an
1717+ # older libstdc++. This, in practice, means that we should use libstdc++ from
1818+ # the same stdenv that the rest of nixpkgs uses.
1919+ # We currently do not try to support anything other than gcc and linux.
2020+ libcxx = nixpkgsCompatibleLibstdcxx;
2121+ };
2222+ cudaStdenv = overrideCC stdenv cc;
2323+ passthruExtra = {
2424+ inherit nixpkgsCompatibleLibstdcxx;
2525+ # cc already exposed
2626+ };
2727+ assertCondition = true;
2828+in
2929+lib.extendDerivation
3030+ assertCondition
3131+ passthruExtra
3232+ cudaStdenv
3333+
-2
pkgs/development/compilers/elm/default.nix
···107107108108 # elm-format requires text >= 2.0
109109 text = self.text_2_0_2;
110110- # elm-format-lib requires hspec-golden < 0.2
111111- hspec-golden = self.hspec-golden_0_1_0_3;
112110 # unorderd-container's tests indirectly depend on text < 2.0
113111 unordered-containers = overrideCabal (drv: { doCheck = false; }) super.unordered-containers;
114112 # relude-1.1.0.0's tests depend on hedgehog < 1.2, which indirectly depends on text < 2.0