anchor.diff:          protocols.source  = pkgs.iana-etc + "/etc/protocols";
   
           # /etc/hosts: Hostname-to-IP mappings.
  -        hosts.text = let
  -          oneToString = set: ip: ip + " " + concatStringsSep " " set.${ip};
  -          allToString = set: concatMapStringsSep "\n" (oneToString set) (attrNames set);
  -        in ''
  -          ${allToString (filterAttrs (_: v: v != []) cfg.hosts)}
  -          ${cfg.extraHosts}
  +        hosts.source = pkgs.runCommandNoCC "hosts" {} ''
  +          cat ${escapeShellArgs cfg.hostFiles} > $out
           '';
   
           # /etc/host.conf: resolver configuration file
  
positive.code:       "::1" = [ "localhost" ];
      };
  
      environment.etc =
        { # /etc/services: TCP/UDP port assignments.
          services.source = pkgs.iana-etc + "/etc/services";
  
negative.code:       '';
      };
  
      networking.hostFiles = lib.mkOption {
        type = types.listOf types.path;
        defaultText = lib.literalExample "Hosts from `networking.hosts` and `networking.extraHosts`";
        example = lib.literalExample ''[ "''${pkgs.my-blocklist-package}/share/my-blocklist/hosts" ]'';
        description = ''
          Files that should be concatenated together to form <filename>/etc/hosts</filename>.
        '';
      };
  
      networking.extraHosts = lib.mkOption {
        type = types.lines;
        default = "";
        example = "192.168.0.1 lanlocalhost";
        description = ''
          Additional verbatim entries to be appended to <filename>/etc/hosts</filename>.
          For adding hosts from derivation results, use <option>networking.hostFiles</option> instead.
        '';
      };
  
  