From 7c91a1954992db9fa06619753faa3a193a196040 Mon Sep 17 00:00:00 2001
From: tv <tv@krebsco.de>
Date: Thu, 13 Oct 2016 21:49:04 +0200
Subject: [PATCH] lib: don't define defaults that require config

---
 krebs/3modules/makefu/default.nix |  1 +
 krebs/3modules/shared/default.nix |  2 ++
 krebs/4lib/default.nix            |  1 -
 krebs/4lib/types.nix              | 13 +------------
 4 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/krebs/3modules/makefu/default.nix b/krebs/3modules/makefu/default.nix
index de5be964f..f5190b6ba 100644
--- a/krebs/3modules/makefu/default.nix
+++ b/krebs/3modules/makefu/default.nix
@@ -791,6 +791,7 @@ TNs2RYfwDy/r6H/hDeB/BSngPouedEVcPwIDAQAB
 
   } // { # hosts only maintained in stockholm, not owned by me
     muhbaasu = rec {
+      owner = config.krebs.users.root;
       cores = 1;
       nets = {
         internet = {
diff --git a/krebs/3modules/shared/default.nix b/krebs/3modules/shared/default.nix
index 47767d370..a9868954e 100644
--- a/krebs/3modules/shared/default.nix
+++ b/krebs/3modules/shared/default.nix
@@ -8,6 +8,7 @@ let
     "test-centos7"
     "test-all-krebs-modules"
   ] (name: {
+    owner = config.krebs.users.shared;
     inherit name;
     cores = 1;
     nets = {
@@ -34,6 +35,7 @@ let
 in {
   hosts = {
     wolf = {
+      owner = config.krebs.users.shared;
       nets = {
         shack = {
           ip4.addr =  "10.42.2.150" ;
diff --git a/krebs/4lib/default.nix b/krebs/4lib/default.nix
index 3f224edd1..c40b9a868 100644
--- a/krebs/4lib/default.nix
+++ b/krebs/4lib/default.nix
@@ -19,7 +19,6 @@ let out = lib // rec {
       ]));
 
   types = import ./types.nix {
-    inherit config;
     lib = lib // { inherit genid optionalTrace; };
   };
 
diff --git a/krebs/4lib/types.nix b/krebs/4lib/types.nix
index 02ca2b8db..8d6ace2e5 100644
--- a/krebs/4lib/types.nix
+++ b/krebs/4lib/types.nix
@@ -1,14 +1,9 @@
-{ config, lib, ... }:
+{ lib, ... }:
 
 with builtins;
 with lib;
 with types;
 
-let
-  # Inherited attributes are used in submodules that have their own `config`.
-  inherit (config.krebs) build users;
-in
-
 types // rec {
 
   host = submodule ({ config, ... }: {
@@ -27,7 +22,6 @@ types // rec {
 
       owner = mkOption {
         type = user;
-        default = users.krebs;
       };
 
       extraZones = mkOption {
@@ -49,10 +43,6 @@ types // rec {
       ssh.pubkey = mkOption {
         type = nullOr ssh-pubkey;
         default = null;
-        apply = x:
-          optionalTrace (x == null && config.owner.name == build.user.name)
-            "The option `krebs.hosts.${config.name}.ssh.pubkey' is unused."
-            x;
       };
       ssh.privkey = mkOption {
         type = nullOr ssh-privkey;
@@ -187,7 +177,6 @@ types // rec {
       };
       owner = mkOption {
         type = user;
-        default = users.root;
       };
       group-name = mkOption {
         type = str;