anchor.diff:                networking.firewall.allowedUDPPorts = [ 137 138 ];
               </programlisting>
             </note>
  +        '';
  +      };
  +
  +      enableNmbd = mkOption {
  +        type = types.bool;
  +        default = true;
  +        description = ''
  +          Whether to enable Samba's nmbd, which replies to NetBIOS over IP name
  +          service requests. It also participates in the browsing protocols
  +          which make up the Windows "Network Neighborhood" view.
  +        '';
  +      };
  +
  +      enableWinbindd = mkOption {
  +        type = types.bool;
  +        default = true;
  +        description = ''
  +          Whether to enable Samba's winbindd, which provides a number of services
  +          to the Name Service Switch capability found in most modern C libraries,
  +          to arbitrary applications via PAM and ntlm_auth and to Samba itself.
           '';
         };
   
  
positive.code:           };
  
            services = {
              "samba-nmbd" = daemonService "nmbd" "-F";
              "samba-smbd" = daemonService "smbd" "-F";
              "samba-winbindd" = daemonService "winbindd" "-F";
              "samba-setup" = {
                description = "Samba Setup Task";
                script = setupScript;
  
negative.code:   ###### implementation
  
    config = mkMerge
      [ { assertions =
            [ { assertion = cfg.nsswins -> cfg.enableWinbindd;
                message   = "If samba.nsswins is enabled, then samba.enableWinbindd must also be enabled";
              }
            ];
          # Always provide a smb.conf to shut up programs like smbclient and smbspool.
          environment.etc = singleton
            { source =
                if cfg.enable then configFile
  