···275275 </listitem>
276276 <listitem>
277277 <para>
278278+ <link xlink:href="https://maddy.email">maddy</link>, a
279279+ composable all-in-one mail server. Available as
280280+ <link xlink:href="options.html#opt-services.maddy.enable">services.maddy</link>.
281281+ </para>
282282+ </listitem>
283283+ <listitem>
284284+ <para>
278285 <link xlink:href="https://sr.ht">sourcehut</link>, a
279286 collection of tools useful for software development. Available
280287 as
+2
nixos/doc/manual/release-notes/rl-2111.section.md
···74747575- [PeerTube](https://joinpeertube.org/), developed by Framasoft, is the free and decentralized alternative to video platforms. Available at [services.peertube](options.html#opt-services.peertube.enable).
76767777+- [maddy](https://maddy.email), a composable all-in-one mail server. Available as [services.maddy](options.html#opt-services.maddy.enable).
7878+7779- [sourcehut](https://sr.ht), a collection of tools useful for software development. Available as [services.sourcehut](options.html#opt-services.sourcehut.enable).
78807981- [ucarp](https://download.pureftpd.org/pub/ucarp/README), an userspace implementation of the Common Address Redundancy Protocol (CARP). Available as [networking.ucarp](options.html#opt-networking.ucarp.enable).
+36-14
nixos/lib/eval-config.nix
···88# as subcomponents (e.g. the container feature, or nixops if network
99# expressions are ever made modular at the top level) can just use
1010# types.submodule instead of using eval-config.nix
1111+evalConfigArgs@
1112{ # !!! system can be set modularly, would be nice to remove
1213 system ? builtins.currentSystem
1314, # !!! is this argument needed any more? The pkgs argument can
···2829 in if e == "" then [] else [(import e)]
2930}:
30313131-let extraArgs_ = extraArgs; pkgs_ = pkgs;
3232+let pkgs_ = pkgs;
3233in
33343435let
···5152 };
5253 };
53545454- noUserModules = lib.evalModules {
5555- inherit prefix check;
5656- modules = baseModules ++ extraModules ++ [ pkgsModule ];
5757- args = extraArgs;
5555+ withWarnings = x:
5656+ lib.warnIf (evalConfigArgs?args) "The extraArgs argument to eval-config.nix is deprecated. Please set config._module.args instead."
5757+ lib.warnIf (evalConfigArgs?check) "The check argument to eval-config.nix is deprecated. Please set config._module.check instead."
5858+ x;
5959+6060+ legacyModules =
6161+ lib.optional (evalConfigArgs?args) {
6262+ config = {
6363+ _module.args = extraArgs;
6464+ };
6565+ }
6666+ ++ lib.optional (evalConfigArgs?check) {
6767+ config = {
6868+ _module.check = lib.mkDefault check;
6969+ };
7070+ };
7171+ allUserModules = modules ++ legacyModules;
7272+7373+ noUserModules = lib.evalModules ({
7474+ inherit prefix;
7575+ modules = baseModules ++ extraModules ++ [ pkgsModule modulesModule ];
5876 specialArgs =
5977 { modulesPath = builtins.toString ../modules; } // specialArgs;
7878+ });
7979+8080+ # Extra arguments that are useful for constructing a similar configuration.
8181+ modulesModule = {
8282+ config = {
8383+ _module.args = {
8484+ inherit noUserModules baseModules extraModules modules;
8585+ };
8686+ };
6087 };
61886262- # These are the extra arguments passed to every module. In
6363- # particular, Nixpkgs is passed through the "pkgs" argument.
6464- extraArgs = extraArgs_ // {
6565- inherit noUserModules baseModules extraModules modules;
6666- };
8989+ nixosWithUserModules = noUserModules.extendModules { modules = allUserModules; };
67906868-in rec {
9191+in withWarnings {
69927093 # Merge the option definitions in all modules, forming the full
7194 # system configuration.
7272- inherit (noUserModules.extendModules { inherit modules; })
7373- config options _module type;
9595+ inherit (nixosWithUserModules) config options _module type;
74967597 inherit extraArgs;
76987777- inherit (_module.args) pkgs;
9999+ inherit (nixosWithUserModules._module.args) pkgs;
78100}
+7-13
nixos/modules/misc/documentation.nix
···11-{ config, lib, pkgs, baseModules, extraModules, modules, modulesPath, ... }:
11+{ config, lib, pkgs, extendModules, noUserModules, ... }:
2233with lib;
44···6677 cfg = config.documentation;
8899- manualModules =
1010- baseModules
1111- # Modules for which to show options even when not imported
1212- ++ [ ../virtualisation/qemu-vm.nix ]
1313- ++ optionals cfg.nixos.includeAllModules (extraModules ++ modules);
99+ /* Modules for which to show options even when not imported. */
1010+ extraDocModules = [ ../virtualisation/qemu-vm.nix ];
14111512 /* For the purpose of generating docs, evaluate options with each derivation
1613 in `pkgs` (recursively) replaced by a fake with path "\${pkgs.attribute.path}".
···2421 extraSources = cfg.nixos.extraModuleSources;
2522 options =
2623 let
2727- scrubbedEval = evalModules {
2828- modules = [ { nixpkgs.localSystem = config.nixpkgs.localSystem; } ] ++ manualModules;
2929- args = (config._module.args) // { modules = [ ]; };
3030- specialArgs = {
3131- pkgs = scrubDerivations "pkgs" pkgs;
3232- inherit modulesPath;
3333- };
2424+ extendNixOS = if cfg.nixos.includeAllModules then extendModules else noUserModules.extendModules;
2525+ scrubbedEval = extendNixOS {
2626+ modules = extraDocModules;
2727+ specialArgs.pkgs = scrubDerivations "pkgs" pkgs;
3428 };
3529 scrubDerivations = namePrefix: pkgSet: mapAttrs
3630 (name: value:
···2727}:
28282929let
3030- version = "1.10.1";
3030+ version = "1.10.2";
31313232 # build stimuli file for PGO build and the script to generate it
3333 # independently of the foot's build, so we can cache the result
···9999 owner = "dnkl";
100100 repo = pname;
101101 rev = version;
102102- sha256 = "12n1v9by519fg40xvjf4v0g2phi08lcg0clz7rxs2i2xwlizz7nc";
102102+ sha256 = "00096c2m8pn4gpafvmg9lhyprwgnsis62bq4qmagnbb49bj5kr9v";
103103 };
104104105105 depsBuildBuild = [