anchor.diff:      users.users.gnunet = {
         group = "gnunet";
         description = "GNUnet User";
  -      home = homeDir;
  -      createHome = true;
         uid = config.ids.uids.gnunet;
       };
   
  
positive.code: 
    cfg = config.services.gnunet;
  
    homeDir = "/var/lib/gnunet";
  
    configFile = with cfg; pkgs.writeText "gnunetd.conf"
      ''
        [PATHS]
        SERVICEHOME = ${homeDir}
  
        [ats]
        WAN_QUOTA_IN = ${toString load.maxNetDownBandwidth} b
  
negative.code:     # so install them globally.
      environment.systemPackages = [ cfg.package ];
  
      environment.etc."gnunet.conf".text = configFile;
  
      systemd.services.gnunet = {
        description = "GNUnet";
        after = [ "network.target" ];
        wantedBy = [ "multi-user.target" ];
        restartTriggers = [ configFile ];
        path = [ cfg.package pkgs.miniupnpc ];
        serviceConfig.ExecStart = "${cfg.package}/lib/gnunet/libexec/gnunet-service-arm -c /etc/gnunet.conf";
        serviceConfig.User = "gnunet";
        serviceConfig.UMask = "0007";
        serviceConfig.WorkingDirectory = stateDir;
        serviceConfig.RuntimeDirectory = "gnunet";
        serviceConfig.StateDirectory = "gnunet";
      };
  
    };
  