mirror of
https://github.com/nix-community/home-manager.git
synced 2025-11-08 19:46:05 +01:00
Revert "nixos-module: Fix potential recursion between users.users and home-ma…" (#6745)
This reverts commit 216690777e.
Reverts #6622
Seems to be causing issues for other users, though. Will revert and we can try again with some tests in place.
This commit is contained in:
parent
55cf1f1632
commit
0afad8f080
2 changed files with 9 additions and 19 deletions
|
|
@ -54,17 +54,17 @@ let
|
||||||
|
|
||||||
hmPath = toString ./..;
|
hmPath = toString ./..;
|
||||||
|
|
||||||
buildOptionsDocs =
|
buildOptionsDocs = args@{ modules, includeModuleSystemOptions ? true, ... }:
|
||||||
args@{ modules, includeModuleSystemOptions ? true, isNixos ? false, ... }:
|
|
||||||
let
|
let
|
||||||
options = (lib.evalModules {
|
options = (lib.evalModules {
|
||||||
inherit modules;
|
inherit modules;
|
||||||
class = "homeManager";
|
class = "homeManager";
|
||||||
}).options;
|
}).options;
|
||||||
in pkgs.buildPackages.nixosOptionsDoc ({
|
in pkgs.buildPackages.nixosOptionsDoc ({
|
||||||
options = builtins.removeAttrs options ([ ]
|
options = if includeModuleSystemOptions then
|
||||||
++ (lib.optional (!includeModuleSystemOptions) "_module")
|
options
|
||||||
++ (lib.optional (isNixos) "users"));
|
else
|
||||||
|
builtins.removeAttrs options [ "_module" ];
|
||||||
transformOptions = opt:
|
transformOptions = opt:
|
||||||
opt // {
|
opt // {
|
||||||
# Clean up declaration sites to not refer to the Home Manager
|
# Clean up declaration sites to not refer to the Home Manager
|
||||||
|
|
@ -80,11 +80,7 @@ let
|
||||||
else
|
else
|
||||||
decl) opt.declarations;
|
decl) opt.declarations;
|
||||||
};
|
};
|
||||||
} // builtins.removeAttrs args [
|
} // builtins.removeAttrs args [ "modules" "includeModuleSystemOptions" ]);
|
||||||
"modules"
|
|
||||||
"includeModuleSystemOptions"
|
|
||||||
"isNixos"
|
|
||||||
]);
|
|
||||||
|
|
||||||
hmOptionsDocs = buildOptionsDocs {
|
hmOptionsDocs = buildOptionsDocs {
|
||||||
modules = import ../modules/modules.nix {
|
modules = import ../modules/modules.nix {
|
||||||
|
|
@ -97,7 +93,6 @@ let
|
||||||
nixosOptionsDocs = buildOptionsDocs {
|
nixosOptionsDocs = buildOptionsDocs {
|
||||||
modules = [ ../nixos scrubbedPkgsModule dontCheckDefinitions ];
|
modules = [ ../nixos scrubbedPkgsModule dontCheckDefinitions ];
|
||||||
includeModuleSystemOptions = false;
|
includeModuleSystemOptions = false;
|
||||||
isNixos = true;
|
|
||||||
variablelistId = "nixos-options";
|
variablelistId = "nixos-options";
|
||||||
optionIdPrefix = "nixos-opt-";
|
optionIdPrefix = "nixos-opt-";
|
||||||
};
|
};
|
||||||
|
|
@ -105,7 +100,6 @@ let
|
||||||
nixDarwinOptionsDocs = buildOptionsDocs {
|
nixDarwinOptionsDocs = buildOptionsDocs {
|
||||||
modules = [ ../nix-darwin scrubbedPkgsModule dontCheckDefinitions ];
|
modules = [ ../nix-darwin scrubbedPkgsModule dontCheckDefinitions ];
|
||||||
includeModuleSystemOptions = false;
|
includeModuleSystemOptions = false;
|
||||||
isNixos = true;
|
|
||||||
variablelistId = "nix-darwin-options";
|
variablelistId = "nix-darwin-options";
|
||||||
optionIdPrefix = "nix-darwin-opt-";
|
optionIdPrefix = "nix-darwin-opt-";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -50,13 +50,6 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
in {
|
in {
|
||||||
options.users.users = mkOption {
|
|
||||||
type = types.attrsOf (types.submodule ({ name, config, ... }: {
|
|
||||||
config.packages = mkIf ((config.enable or true) && cfg.useUserPackages
|
|
||||||
&& lib.hasAttr name cfg.users) [ cfg.users.${name}.home.path ];
|
|
||||||
}));
|
|
||||||
};
|
|
||||||
|
|
||||||
options.home-manager = {
|
options.home-manager = {
|
||||||
useUserPackages = mkEnableOption ''
|
useUserPackages = mkEnableOption ''
|
||||||
installation of user packages through the
|
installation of user packages through the
|
||||||
|
|
@ -111,7 +104,10 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
config = (lib.mkMerge [
|
config = (lib.mkMerge [
|
||||||
|
# Fix potential recursion when configuring home-manager users based on values in users.users #594
|
||||||
(mkIf (cfg.useUserPackages && cfg.users != { }) {
|
(mkIf (cfg.useUserPackages && cfg.users != { }) {
|
||||||
|
users.users = (lib.mapAttrs
|
||||||
|
(_username: usercfg: { packages = [ usercfg.home.path ]; }) cfg.users);
|
||||||
environment.pathsToLink = [ "/etc/profile.d" ];
|
environment.pathsToLink = [ "/etc/profile.d" ];
|
||||||
})
|
})
|
||||||
(mkIf (cfg.users != { }) {
|
(mkIf (cfg.users != { }) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue