about summary refs log tree commit diff
path: root/nixpkgs/nixos/modules/services/network-filesystems
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2024-05-03 15:14:25 +0200
committerAlyssa Ross <hi@alyssa.is>2024-05-07 11:19:19 +0200
commitd92b2b6a1bbd322dd65a8b6f51019610d350046e (patch)
tree7f7c21927b9cc05676501f297c51eb76b49e326c /nixpkgs/nixos/modules/services/network-filesystems
parent93c9e56b40530cc627d921cfc255c05b495d4017 (diff)
parent49050352f602fe87d16ff7b2b6a05b79eb20dc6f (diff)
downloadnixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.gz
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.bz2
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.lz
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.xz
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.zst
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.zip
Merge remote-tracking branch 'nixpkgs/nixos-unstable-small'
Conflicts:
	nixpkgs/nixos/modules/services/mail/mailman.nix
	nixpkgs/nixos/modules/services/mail/public-inbox.nix
	nixpkgs/pkgs/build-support/go/module.nix
Diffstat (limited to 'nixpkgs/nixos/modules/services/network-filesystems')
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/cachefilesd.nix6
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/ceph.nix60
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/davfs2.nix121
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/diod.nix26
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/drbd.nix4
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/glusterfs.nix22
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/kbfs.nix8
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/kubo.nix40
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/litestream/default.nix6
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/moosefs.nix32
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/netatalk.nix8
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/nfsd.nix37
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/openafs/client.nix34
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/openafs/lib.nix4
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/openafs/server.nix44
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/orangefs/client.nix12
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/orangefs/server.nix30
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/rsyncd.nix9
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/samba-wsdd.nix22
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/samba.nix20
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/tahoe.nix46
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/u9fs.nix10
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/webdav-server-rs.nix12
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/webdav.nix12
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/xtreemfs.nix52
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/yandex-disk.nix12
26 files changed, 372 insertions, 317 deletions
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/cachefilesd.nix b/nixpkgs/nixos/modules/services/network-filesystems/cachefilesd.nix
index 3fb6a19c6fa3..8db0fdb8a417 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/cachefilesd.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/cachefilesd.nix
@@ -20,20 +20,20 @@ in
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Whether to enable cachefilesd network filesystems caching daemon.";
+        description = "Whether to enable cachefilesd network filesystems caching daemon.";
       };
 
       cacheDir = mkOption {
         type = types.str;
         default = "/var/cache/fscache";
-        description = lib.mdDoc "Directory to contain filesystem cache.";
+        description = "Directory to contain filesystem cache.";
       };
 
       extraConfig = mkOption {
         type = types.lines;
         default = "";
         example = "brun 10%";
-        description = lib.mdDoc "Additional configuration file entries. See cachefilesd.conf(5) for more information.";
+        description = "Additional configuration file entries. See cachefilesd.conf(5) for more information.";
       };
 
     };
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/ceph.nix b/nixpkgs/nixos/modules/services/network-filesystems/ceph.nix
index df9a2f802bb9..d375434a1bd4 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/ceph.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/ceph.nix
@@ -71,7 +71,7 @@ in
   options.services.ceph = {
     # Ceph has a monolithic configuration file but different sections for
     # each daemon, a separate client section and a global section
-    enable = mkEnableOption (lib.mdDoc "Ceph global configuration");
+    enable = mkEnableOption "Ceph global configuration";
 
     global = {
       fsid = mkOption {
@@ -79,7 +79,7 @@ in
         example = ''
           433a2193-4f8a-47a0-95d2-209d7ca2cca5
         '';
-        description = lib.mdDoc ''
+        description = ''
           Filesystem ID, a generated uuid, its must be generated and set before
           attempting to start a cluster
         '';
@@ -88,7 +88,7 @@ in
       clusterName = mkOption {
         type = types.str;
         default = "ceph";
-        description = lib.mdDoc ''
+        description = ''
           Name of cluster
         '';
       };
@@ -97,7 +97,7 @@ in
         type = types.path;
         default = "${pkgs.ceph.lib}/lib/ceph/mgr";
         defaultText = literalExpression ''"''${pkgs.ceph.lib}/lib/ceph/mgr"'';
-        description = lib.mdDoc ''
+        description = ''
           Path at which to find ceph-mgr modules.
         '';
       };
@@ -108,7 +108,7 @@ in
         example = ''
           node0, node1, node2
         '';
-        description = lib.mdDoc ''
+        description = ''
           List of hosts that will be used as monitors at startup.
         '';
       };
@@ -119,7 +119,7 @@ in
         example = ''
           10.10.0.1, 10.10.0.2, 10.10.0.3
         '';
-        description = lib.mdDoc ''
+        description = ''
           List of hostname shortnames/IP addresses of the initial monitors.
         '';
       };
@@ -127,7 +127,7 @@ in
       maxOpenFiles = mkOption {
         type = types.int;
         default = 131072;
-        description = lib.mdDoc ''
+        description = ''
           Max open files for each OSD daemon.
         '';
       };
@@ -135,7 +135,7 @@ in
       authClusterRequired = mkOption {
         type = types.enum [ "cephx" "none" ];
         default = "cephx";
-        description = lib.mdDoc ''
+        description = ''
           Enables requiring daemons to authenticate with eachother in the cluster.
         '';
       };
@@ -143,7 +143,7 @@ in
       authServiceRequired = mkOption {
         type = types.enum [ "cephx" "none" ];
         default = "cephx";
-        description = lib.mdDoc ''
+        description = ''
           Enables requiring clients to authenticate with the cluster to access services in the cluster (e.g. radosgw, mds or osd).
         '';
       };
@@ -151,7 +151,7 @@ in
       authClientRequired = mkOption {
         type = types.enum [ "cephx" "none" ];
         default = "cephx";
-        description = lib.mdDoc ''
+        description = ''
           Enables requiring the cluster to authenticate itself to the client.
         '';
       };
@@ -162,7 +162,7 @@ in
         example = ''
           10.20.0.0/24, 192.168.1.0/24
         '';
-        description = lib.mdDoc ''
+        description = ''
           A comma-separated list of subnets that will be used as public networks in the cluster.
         '';
       };
@@ -173,7 +173,7 @@ in
         example = ''
           10.10.0.0/24, 192.168.0.0/24
         '';
-        description = lib.mdDoc ''
+        description = ''
           A comma-separated list of subnets that will be used as cluster networks in the cluster.
         '';
       };
@@ -182,7 +182,7 @@ in
         type = with types; nullOr path;
         default = "${pkgs.mailcap}/etc/mime.types";
         defaultText = literalExpression ''"''${pkgs.mailcap}/etc/mime.types"'';
-        description = lib.mdDoc ''
+        description = ''
           Path to mime types used by radosgw.
         '';
       };
@@ -194,18 +194,18 @@ in
       example = {
         "ms bind ipv6" = "true";
       };
-      description = lib.mdDoc ''
+      description = ''
         Extra configuration to add to the global section. Use for setting values that are common for all daemons in the cluster.
       '';
     };
 
     mgr = {
-      enable = mkEnableOption (lib.mdDoc "Ceph MGR daemon");
+      enable = mkEnableOption "Ceph MGR daemon";
       daemons = mkOption {
         type = with types; listOf str;
         default = [];
         example = [ "name1" "name2" ];
-        description = lib.mdDoc ''
+        description = ''
           A list of names for manager daemons that should have a service created. The names correspond
           to the id part in ceph i.e. [ "name1" ] would result in mgr.name1
         '';
@@ -214,19 +214,19 @@ in
       extraConfig = mkOption {
         type = with types; attrsOf str;
         default = {};
-        description = lib.mdDoc ''
+        description = ''
           Extra configuration to add to the global section for manager daemons.
         '';
       };
     };
 
     mon = {
-      enable = mkEnableOption (lib.mdDoc "Ceph MON daemon");
+      enable = mkEnableOption "Ceph MON daemon";
       daemons = mkOption {
         type = with types; listOf str;
         default = [];
         example = [ "name1" "name2" ];
-        description = lib.mdDoc ''
+        description = ''
           A list of monitor daemons that should have a service created. The names correspond
           to the id part in ceph i.e. [ "name1" ] would result in mon.name1
         '';
@@ -235,19 +235,19 @@ in
       extraConfig = mkOption {
         type = with types; attrsOf str;
         default = {};
-        description = lib.mdDoc ''
+        description = ''
           Extra configuration to add to the monitor section.
         '';
       };
     };
 
     osd = {
-      enable = mkEnableOption (lib.mdDoc "Ceph OSD daemon");
+      enable = mkEnableOption "Ceph OSD daemon";
       daemons = mkOption {
         type = with types; listOf str;
         default = [];
         example = [ "name1" "name2" ];
-        description = lib.mdDoc ''
+        description = ''
           A list of OSD daemons that should have a service created. The names correspond
           to the id part in ceph i.e. [ "name1" ] would result in osd.name1
         '';
@@ -263,19 +263,19 @@ in
           "osd pool default pgp num" = "200";
           "osd crush chooseleaf type" = "1";
         };
-        description = lib.mdDoc ''
+        description = ''
           Extra configuration to add to the OSD section.
         '';
       };
     };
 
     mds = {
-      enable = mkEnableOption (lib.mdDoc "Ceph MDS daemon");
+      enable = mkEnableOption "Ceph MDS daemon";
       daemons = mkOption {
         type = with types; listOf str;
         default = [];
         example = [ "name1" "name2" ];
-        description = lib.mdDoc ''
+        description = ''
           A list of metadata service daemons that should have a service created. The names correspond
           to the id part in ceph i.e. [ "name1" ] would result in mds.name1
         '';
@@ -284,20 +284,20 @@ in
       extraConfig = mkOption {
         type = with types; attrsOf str;
         default = {};
-        description = lib.mdDoc ''
+        description = ''
           Extra configuration to add to the MDS section.
         '';
       };
     };
 
     rgw = {
-      enable = mkEnableOption (lib.mdDoc "Ceph RadosGW daemon");
+      enable = mkEnableOption "Ceph RadosGW daemon";
       package = mkPackageOption pkgs "ceph" { };
       daemons = mkOption {
         type = with types; listOf str;
         default = [];
         example = [ "name1" "name2" ];
-        description = lib.mdDoc ''
+        description = ''
           A list of rados gateway daemons that should have a service created. The names correspond
           to the id part in ceph i.e. [ "name1" ] would result in client.name1, radosgw daemons
           aren't daemons to cluster in the sense that OSD, MGR or MON daemons are. They are simply
@@ -307,7 +307,7 @@ in
     };
 
     client = {
-      enable = mkEnableOption (lib.mdDoc "Ceph client configuration");
+      enable = mkEnableOption "Ceph client configuration";
       extraConfig = mkOption {
         type = with types; attrsOf (attrsOf str);
         default = {};
@@ -318,7 +318,7 @@ in
             "client.radosgw.node0" = { "some config option" = "true"; };
           };
         '';
-        description = lib.mdDoc ''
+        description = ''
           Extra configuration to add to the client section. Configuration for rados gateways
           would be added here, with their own sections, see example.
         '';
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/davfs2.nix b/nixpkgs/nixos/modules/services/network-filesystems/davfs2.nix
index 8024cfba08be..23c04658031f 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/davfs2.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/davfs2.nix
@@ -1,38 +1,52 @@
 { config, lib, pkgs, ... }:
 
-with lib;
-
 let
+  inherit (lib.attrsets) optionalAttrs;
+  inherit (lib.generators) toINIWithGlobalSection;
+  inherit (lib.lists) optional;
+  inherit (lib.modules) mkIf;
+  inherit (lib.options) literalExpression mkEnableOption mkOption;
+  inherit (lib.strings) escape;
+  inherit (lib.types) attrsOf bool int lines oneOf str submodule;
+
   cfg = config.services.davfs2;
-  cfgFile = pkgs.writeText "davfs2.conf" ''
-    dav_user ${cfg.davUser}
-    dav_group ${cfg.davGroup}
-    ${cfg.extraConfig}
-  '';
+
+  escapeString = escape ["\"" "\\"];
+
+  formatValue = value:
+    if true == value then "1"
+    else if false == value then "0"
+    else if builtins.isString value then "\"${escapeString value}\""
+    else toString value;
+
+  configFile = pkgs.writeText "davfs2.conf" (
+    if (cfg.settings != { }) then
+      (toINIWithGlobalSection {
+        mkSectionName = escapeString;
+        mkKeyValue = k: v: "${k} ${formatValue v}";
+      } cfg.settings)
+    else
+      cfg.extraConfig
+  );
 in
 {
+
   options.services.davfs2 = {
-    enable = mkOption {
-      type = types.bool;
-      default = false;
-      description = lib.mdDoc ''
-        Whether to enable davfs2.
-      '';
-    };
+    enable = mkEnableOption "davfs2";
 
     davUser = mkOption {
-      type = types.str;
+      type = str;
       default = "davfs2";
-      description = lib.mdDoc ''
+      description = ''
         When invoked by root the mount.davfs daemon will run as this user.
         Value must be given as name, not as numerical id.
       '';
     };
 
     davGroup = mkOption {
-      type = types.str;
+      type = str;
       default = "davfs2";
-      description = lib.mdDoc ''
+      description = ''
         The group of the running mount.davfs daemon. Ordinary users must be
         member of this group in order to mount a davfs2 file system. Value must
         be given as name, not as numerical id.
@@ -40,22 +54,85 @@ in
     };
 
     extraConfig = mkOption {
-      type = types.lines;
+      type = lines;
       default = "";
       example = ''
-        kernel_fs coda
         proxy foo.bar:8080
         use_locks 0
+
+        [/media/dav]
+        use_locks 1
+
+        [/home/otto/mywebspace]
+        gui_optimize 1
       '';
-      description = lib.mdDoc ''
+      description = ''
         Extra lines appended to the configuration of davfs2.
+        See {manpage}`davfs2.conf(5)` for available settings.
+
+        **Note**: Please pass structured settings via
+        {option}`settings` instead, this option
+        will get deprecated in the future.
+      ''  ;
+    };
+
+    settings = mkOption {
+      type = submodule {
+        freeformType = let
+          valueTypes = [ bool int str ];
+        in
+        attrsOf (attrsOf (oneOf (valueTypes ++ [ (attrsOf (oneOf valueTypes)) ] )));
+      };
+      default = { };
+      example = literalExpression ''
+        {
+          globalSection = {
+            proxy = "foo.bar:8080";
+            use_locks = false;
+          };
+          sections = {
+            "/media/dav" = {
+              use_locks = true;
+            };
+            "/home/otto/mywebspace" = {
+              gui_optimize = true;
+            };
+          };
+        }
+      '';
+      description = ''
+        Extra settings appended to the configuration of davfs2.
+        See {manpage}`davfs2.conf(5)` for available settings.
       ''  ;
     };
   };
 
   config = mkIf cfg.enable {
+
+    assertions = [
+      {
+        assertion = cfg.extraConfig != "" -> cfg.settings == { };
+        message = ''
+          services.davfs2.extraConfig and services.davfs2.settings cannot be used together.
+          Please prefer using services.davfs2.settings.
+        '';
+      }
+    ];
+
+    warnings = optional (cfg.extraConfig != "") ''
+      services.davfs2.extraConfig will be deprecated in future releases;
+      please use services.davfs2.settings instead.
+    '';
+
     environment.systemPackages = [ pkgs.davfs2 ];
-    environment.etc."davfs2/davfs2.conf".source = cfgFile;
+    environment.etc."davfs2/davfs2.conf".source = configFile;
+
+    services.davfs2.settings = {
+      globalSection = {
+        dav_user = cfg.davUser;
+        dav_group = cfg.davGroup;
+      };
+    };
 
     users.groups = optionalAttrs (cfg.davGroup == "davfs2") {
       davfs2.gid = config.ids.gids.davfs2;
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/diod.nix b/nixpkgs/nixos/modules/services/network-filesystems/diod.nix
index 541b4ffd6b46..063bae6ddb1d 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/diod.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/diod.nix
@@ -26,13 +26,13 @@ in
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Whether to enable the diod 9P file server.";
+        description = "Whether to enable the diod 9P file server.";
       };
 
       listen = mkOption {
         type = types.listOf types.str;
         default = [ "0.0.0.0:564" ];
-        description = lib.mdDoc ''
+        description = ''
           [ "IP:PORT" [,"IP:PORT",...] ]
           List the interfaces and ports that diod should listen on.
         '';
@@ -41,7 +41,7 @@ in
       exports = mkOption {
         type = types.listOf types.str;
         default = [];
-        description = lib.mdDoc ''
+        description = ''
           List the file systems that clients will be allowed to mount. All paths should
           be fully qualified. The exports table can include two types of element:
           a string element (as above),
@@ -57,7 +57,7 @@ in
       exportall = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        description = ''
           Export all file systems listed in /proc/mounts. If new file systems are mounted
           after diod has started, they will become immediately mountable. If there is a
           duplicate entry for a file system in the exports list, any options listed in
@@ -68,7 +68,7 @@ in
       exportopts = mkOption {
         type = types.listOf types.str;
         default = [];
-        description = lib.mdDoc ''
+        description = ''
           Establish a default set of export options. These are overridden, not appended
           to, by opts attributes in an "exports" entry.
         '';
@@ -77,7 +77,7 @@ in
       nwthreads = mkOption {
         type = types.int;
         default = 16;
-        description = lib.mdDoc ''
+        description = ''
           Sets the (fixed) number of worker threads created to handle 9P
           requests for a unique aname.
         '';
@@ -86,7 +86,7 @@ in
       authRequired = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Allow clients to connect without authentication, i.e. without a valid MUNGE credential.
         '';
       };
@@ -94,7 +94,7 @@ in
       userdb = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           This option disables password/group lookups. It allows any uid to attach and
           assumes gid=uid, and supplementary groups contain only the primary gid.
         '';
@@ -103,7 +103,7 @@ in
       allsquash = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        description = ''
           Remap all users to "nobody". The attaching user need not be present in the
           password file.
         '';
@@ -112,7 +112,7 @@ in
       squashuser = mkOption {
         type = types.str;
         default = "nobody";
-        description = lib.mdDoc ''
+        description = ''
           Change the squash user. The squash user must be present in the password file.
         '';
       };
@@ -120,7 +120,7 @@ in
       logdest = mkOption {
         type = types.str;
         default = "syslog:daemon:err";
-        description = lib.mdDoc ''
+        description = ''
           Set the destination for logging.
           The value has the form of "syslog:facility:level" or "filename".
         '';
@@ -130,7 +130,7 @@ in
       statfsPassthru = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           This option configures statfs to return the host file system's type
           rather than V9FS_MAGIC.
         '';
@@ -139,7 +139,7 @@ in
       extraConfig = mkOption {
         type = types.lines;
         default = "";
-        description = lib.mdDoc "Extra configuration options for diod.conf.";
+        description = "Extra configuration options for diod.conf.";
       };
     };
   };
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/drbd.nix b/nixpkgs/nixos/modules/services/network-filesystems/drbd.nix
index 79a1b768b461..b971fadebf71 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/drbd.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/drbd.nix
@@ -15,7 +15,7 @@ let cfg = config.services.drbd; in
     services.drbd.enable = mkOption {
       default = false;
       type = types.bool;
-      description = lib.mdDoc ''
+      description = ''
         Whether to enable support for DRBD, the Distributed Replicated
         Block Device.
       '';
@@ -24,7 +24,7 @@ let cfg = config.services.drbd; in
     services.drbd.config = mkOption {
       default = "";
       type = types.lines;
-      description = lib.mdDoc ''
+      description = ''
         Contents of the {file}`drbd.conf` configuration file.
       '';
     };
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/glusterfs.nix b/nixpkgs/nixos/modules/services/network-filesystems/glusterfs.nix
index ee03bada492d..f23e2842f3a8 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/glusterfs.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/glusterfs.nix
@@ -33,17 +33,17 @@ in
 
     services.glusterfs = {
 
-      enable = mkEnableOption (lib.mdDoc "GlusterFS Daemon");
+      enable = mkEnableOption "GlusterFS Daemon";
 
       logLevel = mkOption {
         type = types.enum ["DEBUG" "INFO" "WARNING" "ERROR" "CRITICAL" "TRACE" "NONE"];
-        description = lib.mdDoc "Log level used by the GlusterFS daemon";
+        description = "Log level used by the GlusterFS daemon";
         default = "INFO";
       };
 
       useRpcbind = mkOption {
         type = types.bool;
-        description = lib.mdDoc ''
+        description = ''
           Enable use of rpcbind. This is required for Gluster's NFS functionality.
 
           You may want to turn it off to reduce the attack surface for DDoS reflection attacks.
@@ -56,13 +56,13 @@ in
 
       enableGlustereventsd = mkOption {
         type = types.bool;
-        description = lib.mdDoc "Whether to enable the GlusterFS Events Daemon";
+        description = "Whether to enable the GlusterFS Events Daemon";
         default = true;
       };
 
       killMode = mkOption {
         type = types.enum ["control-group" "process" "mixed" "none"];
-        description = lib.mdDoc ''
+        description = ''
           The systemd KillMode to use for glusterd.
 
           glusterd spawns other daemons like gsyncd.
@@ -79,7 +79,7 @@ in
 
       stopKillTimeout = mkOption {
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           The systemd TimeoutStopSec to use.
 
           After this time after having been asked to shut down, glusterd
@@ -94,12 +94,12 @@ in
 
       extraFlags = mkOption {
         type = types.listOf types.str;
-        description = lib.mdDoc "Extra flags passed to the GlusterFS daemon";
+        description = "Extra flags passed to the GlusterFS daemon";
         default = [];
       };
 
       tlsSettings = mkOption {
-        description = lib.mdDoc ''
+        description = ''
           Make the server communicate via TLS.
           This means it will only connect to other gluster
           servers having certificates signed by the same CA.
@@ -114,17 +114,17 @@ in
           options = {
             tlsKeyPath = mkOption {
               type = types.str;
-              description = lib.mdDoc "Path to the private key used for TLS.";
+              description = "Path to the private key used for TLS.";
             };
 
             tlsPem = mkOption {
               type = types.path;
-              description = lib.mdDoc "Path to the certificate used for TLS.";
+              description = "Path to the certificate used for TLS.";
             };
 
             caCert = mkOption {
               type = types.path;
-              description = lib.mdDoc "Path certificate authority used to sign the cluster certificates.";
+              description = "Path certificate authority used to sign the cluster certificates.";
             };
           };
         });
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/kbfs.nix b/nixpkgs/nixos/modules/services/network-filesystems/kbfs.nix
index 578675e75dc3..903cae379986 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/kbfs.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/kbfs.nix
@@ -15,13 +15,13 @@ in {
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Whether to mount the Keybase filesystem.";
+        description = "Whether to mount the Keybase filesystem.";
       };
 
       enableRedirector = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to enable the Keybase root redirector service, allowing
           any user to access KBFS files via `/keybase`,
           which will show different contents depending on the requester.
@@ -32,7 +32,7 @@ in {
         type = types.str;
         default = "%h/keybase";
         example = "/keybase";
-        description = lib.mdDoc "Mountpoint for the Keybase filesystem.";
+        description = "Mountpoint for the Keybase filesystem.";
       };
 
       extraFlags = mkOption {
@@ -42,7 +42,7 @@ in {
           "-label kbfs"
           "-mount-type normal"
         ];
-        description = lib.mdDoc ''
+        description = ''
           Additional flags to pass to the Keybase filesystem on launch.
         '';
       };
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/kubo.nix b/nixpkgs/nixos/modules/services/network-filesystems/kubo.nix
index 9a05a28550d3..d4ffda7c374e 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/kubo.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/kubo.nix
@@ -99,25 +99,25 @@ in
 
     services.kubo = {
 
-      enable = mkEnableOption (lib.mdDoc ''
+      enable = mkEnableOption ''
         the Interplanetary File System (WARNING: may cause severe network degradation).
         NOTE: after enabling this option and rebuilding your system, you need to log out
         and back in for the `IPFS_PATH` environment variable to be present in your shell.
         Until you do that, the CLI tools won't be able to talk to the daemon by default
-      '');
+      '';
 
       package = mkPackageOption pkgs "kubo" { };
 
       user = mkOption {
         type = types.str;
         default = "ipfs";
-        description = lib.mdDoc "User under which the Kubo daemon runs";
+        description = "User under which the Kubo daemon runs";
       };
 
       group = mkOption {
         type = types.str;
         default = "ipfs";
-        description = lib.mdDoc "Group under which the Kubo daemon runs";
+        description = "Group under which the Kubo daemon runs";
       };
 
       dataDir = mkOption {
@@ -131,37 +131,37 @@ in
           then "/var/lib/ipfs"
           else "/var/lib/ipfs/.ipfs"
         '';
-        description = lib.mdDoc "The data dir for Kubo";
+        description = "The data dir for Kubo";
       };
 
       defaultMode = mkOption {
         type = types.enum [ "online" "offline" "norouting" ];
         default = "online";
-        description = lib.mdDoc "systemd service that is enabled by default";
+        description = "systemd service that is enabled by default";
       };
 
       autoMount = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Whether Kubo should try to mount /ipfs and /ipns at startup.";
+        description = "Whether Kubo should try to mount /ipfs and /ipns at startup.";
       };
 
       autoMigrate = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc "Whether Kubo should try to run the fs-repo-migration at startup.";
+        description = "Whether Kubo should try to run the fs-repo-migration at startup.";
       };
 
       enableGC = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Whether to enable automatic garbage collection";
+        description = "Whether to enable automatic garbage collection";
       };
 
       emptyRepo = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc "If set to false, the repo will be initialized with help files";
+        description = "If set to false, the repo will be initialized with help files";
       };
 
       settings = mkOption {
@@ -172,7 +172,7 @@ in
             Addresses.API = mkOption {
               type = types.oneOf [ types.str (types.listOf types.str) ];
               default = [ ];
-              description = lib.mdDoc ''
+              description = ''
                 Multiaddr or array of multiaddrs describing the address to serve the local HTTP API on.
                 In addition to the multiaddrs listed here, the daemon will also listen on a Unix domain socket.
                 To allow the ipfs CLI tools to communicate with the daemon over that socket,
@@ -183,7 +183,7 @@ in
             Addresses.Gateway = mkOption {
               type = types.oneOf [ types.str (types.listOf types.str) ];
               default = "/ip4/127.0.0.1/tcp/8080";
-              description = lib.mdDoc "Where the IPFS Gateway can be reached";
+              description = "Where the IPFS Gateway can be reached";
             };
 
             Addresses.Swarm = mkOption {
@@ -196,23 +196,23 @@ in
                 "/ip6/::/udp/4001/quic-v1"
                 "/ip6/::/udp/4001/quic-v1/webtransport"
               ];
-              description = lib.mdDoc "Where Kubo listens for incoming p2p connections";
+              description = "Where Kubo listens for incoming p2p connections";
             };
 
             Mounts.IPFS = mkOption {
               type = types.str;
               default = "/ipfs";
-              description = lib.mdDoc "Where to mount the IPFS namespace to";
+              description = "Where to mount the IPFS namespace to";
             };
 
             Mounts.IPNS = mkOption {
               type = types.str;
               default = "/ipns";
-              description = lib.mdDoc "Where to mount the IPNS namespace to";
+              description = "Where to mount the IPNS namespace to";
             };
           };
         };
-        description = lib.mdDoc ''
+        description = ''
           Attrset of daemon configuration.
           See [https://github.com/ipfs/kubo/blob/master/docs/config.md](https://github.com/ipfs/kubo/blob/master/docs/config.md) for reference.
           You can't set `Identity` or `Pinning`.
@@ -232,13 +232,13 @@ in
 
       extraFlags = mkOption {
         type = types.listOf types.str;
-        description = lib.mdDoc "Extra flags passed to the Kubo daemon";
+        description = "Extra flags passed to the Kubo daemon";
         default = [ ];
       };
 
       localDiscovery = mkOption {
         type = types.bool;
-        description = lib.mdDoc ''Whether to enable local discovery for the Kubo daemon.
+        description = ''Whether to enable local discovery for the Kubo daemon.
           This will allow Kubo to scan ports on your local network. Some hosting services will ban you if you do this.
         '';
         default = false;
@@ -247,14 +247,14 @@ in
       serviceFdlimit = mkOption {
         type = types.nullOr types.int;
         default = null;
-        description = lib.mdDoc "The fdlimit for the Kubo systemd unit or `null` to have the daemon attempt to manage it";
+        description = "The fdlimit for the Kubo systemd unit or `null` to have the daemon attempt to manage it";
         example = 64 * 1024;
       };
 
       startWhenNeeded = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Whether to use socket activation to start Kubo when needed.";
+        description = "Whether to use socket activation to start Kubo when needed.";
       };
 
     };
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/litestream/default.nix b/nixpkgs/nixos/modules/services/network-filesystems/litestream/default.nix
index afc38fcebcff..87f07b0501be 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/litestream/default.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/litestream/default.nix
@@ -8,12 +8,12 @@ let
 in
 {
   options.services.litestream = {
-    enable = mkEnableOption (lib.mdDoc "litestream");
+    enable = mkEnableOption "litestream";
 
     package = mkPackageOption pkgs "litestream" { };
 
     settings = mkOption {
-      description = lib.mdDoc ''
+      description = ''
         See the [documentation](https://litestream.io/reference/config/).
       '';
       type = settingsFormat.type;
@@ -35,7 +35,7 @@ in
       type = types.nullOr types.path;
       default = null;
       example = "/run/secrets/litestream";
-      description = lib.mdDoc ''
+      description = ''
         Environment file as defined in {manpage}`systemd.exec(5)`.
 
         Secrets may be passed to the service without adding them to the
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/moosefs.nix b/nixpkgs/nixos/modules/services/network-filesystems/moosefs.nix
index 49cbc89d5a91..8d29148883ab 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/moosefs.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/moosefs.nix
@@ -75,22 +75,22 @@ in {
       masterHost = mkOption {
         type = types.str;
         default = null;
-        description = lib.mdDoc "IP or DNS name of master host.";
+        description = "IP or DNS name of master host.";
       };
 
       runAsUser = mkOption {
         type = types.bool;
         default = true;
         example = true;
-        description = lib.mdDoc "Run daemons as user moosefs instead of root.";
+        description = "Run daemons as user moosefs instead of root.";
       };
 
-      client.enable = mkEnableOption (lib.mdDoc "Moosefs client");
+      client.enable = mkEnableOption "Moosefs client";
 
       master = {
         enable = mkOption {
           type = types.bool;
-          description = lib.mdDoc ''
+          description = ''
             Enable Moosefs master daemon.
 
             You need to run `mfsmaster-init` on a freshly installed master server to
@@ -102,7 +102,7 @@ in {
         exports = mkOption {
           type = with types; listOf str;
           default = null;
-          description = lib.mdDoc "Paths to export (see mfsexports.cfg).";
+          description = "Paths to export (see mfsexports.cfg).";
           example = [
             "* / rw,alldirs,admin,maproot=0:0"
             "* . rw"
@@ -111,7 +111,7 @@ in {
 
         openFirewall = mkOption {
           type = types.bool;
-          description = lib.mdDoc "Whether to automatically open the necessary ports in the firewall.";
+          description = "Whether to automatically open the necessary ports in the firewall.";
           default = false;
         };
 
@@ -122,16 +122,16 @@ in {
             options.DATA_PATH = mkOption {
               type = types.str;
               default = "/var/lib/mfs";
-              description = lib.mdDoc "Data storage directory.";
+              description = "Data storage directory.";
             };
           };
 
-          description = lib.mdDoc "Contents of config file (mfsmaster.cfg).";
+          description = "Contents of config file (mfsmaster.cfg).";
         };
       };
 
       metalogger = {
-        enable = mkEnableOption (lib.mdDoc "Moosefs metalogger daemon");
+        enable = mkEnableOption "Moosefs metalogger daemon";
 
         settings = mkOption {
           type = types.submodule {
@@ -140,27 +140,27 @@ in {
             options.DATA_PATH = mkOption {
               type = types.str;
               default = "/var/lib/mfs";
-              description = lib.mdDoc "Data storage directory";
+              description = "Data storage directory";
             };
           };
 
-          description = lib.mdDoc "Contents of metalogger config file (mfsmetalogger.cfg).";
+          description = "Contents of metalogger config file (mfsmetalogger.cfg).";
         };
       };
 
       chunkserver = {
-        enable = mkEnableOption (lib.mdDoc "Moosefs chunkserver daemon");
+        enable = mkEnableOption "Moosefs chunkserver daemon";
 
         openFirewall = mkOption {
           type = types.bool;
-          description = lib.mdDoc "Whether to automatically open the necessary ports in the firewall.";
+          description = "Whether to automatically open the necessary ports in the firewall.";
           default = false;
         };
 
         hdds = mkOption {
           type = with types; listOf str;
           default =  null;
-          description = lib.mdDoc "Mount points to be used by chunkserver for storage (see mfshdd.cfg).";
+          description = "Mount points to be used by chunkserver for storage (see mfshdd.cfg).";
           example = [ "/mnt/hdd1" ];
         };
 
@@ -171,11 +171,11 @@ in {
             options.DATA_PATH = mkOption {
               type = types.str;
               default = "/var/lib/mfs";
-              description = lib.mdDoc "Directory for lock file.";
+              description = "Directory for lock file.";
             };
           };
 
-          description = lib.mdDoc "Contents of chunkserver config file (mfschunkserver.cfg).";
+          description = "Contents of chunkserver config file (mfschunkserver.cfg).";
         };
       };
     };
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/netatalk.nix b/nixpkgs/nixos/modules/services/network-filesystems/netatalk.nix
index a40f68557c0e..d7eef33ad96c 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/netatalk.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/netatalk.nix
@@ -10,12 +10,12 @@ in {
   options = {
     services.netatalk = {
 
-      enable = mkEnableOption (lib.mdDoc "the Netatalk AFP fileserver");
+      enable = mkEnableOption "the Netatalk AFP fileserver";
 
       port = mkOption {
         type = types.port;
         default = 548;
-        description = lib.mdDoc "TCP port to be used for AFP.";
+        description = "TCP port to be used for AFP.";
       };
 
       settings = mkOption {
@@ -32,7 +32,7 @@ in {
             "read only" = true;
           };
         };
-        description = lib.mdDoc ''
+        description = ''
           Configuration for Netatalk. See
           {manpage}`afp.conf(5)`.
         '';
@@ -41,7 +41,7 @@ in {
       extmap = mkOption {
         type = types.lines;
         default = "";
-        description = lib.mdDoc ''
+        description = ''
           File name extension mappings.
           See {manpage}`extmap.conf(5)`. for more information.
         '';
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/nfsd.nix b/nixpkgs/nixos/modules/services/network-filesystems/nfsd.nix
index c9e1cbcbbda4..c40bcf28c28f 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/nfsd.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/nfsd.nix
@@ -26,7 +26,7 @@ in
         enable = mkOption {
           type = types.bool;
           default = false;
-          description = lib.mdDoc ''
+          description = ''
             Whether to enable the kernel's NFS server.
           '';
         };
@@ -34,7 +34,7 @@ in
         extraNfsdConfig = mkOption {
           type = types.str;
           default = "";
-          description = lib.mdDoc ''
+          description = ''
             Extra configuration options for the [nfsd] section of /etc/nfs.conf.
           '';
         };
@@ -42,7 +42,7 @@ in
         exports = mkOption {
           type = types.lines;
           default = "";
-          description = lib.mdDoc ''
+          description = ''
             Contents of the /etc/exports file.  See
             {manpage}`exports(5)` for the format.
           '';
@@ -51,7 +51,7 @@ in
         hostName = mkOption {
           type = types.nullOr types.str;
           default = null;
-          description = lib.mdDoc ''
+          description = ''
             Hostname or address on which NFS requests will be accepted.
             Default is all.  See the {option}`-H` option in
             {manpage}`nfsd(8)`.
@@ -61,7 +61,7 @@ in
         nproc = mkOption {
           type = types.int;
           default = 8;
-          description = lib.mdDoc ''
+          description = ''
             Number of NFS server threads.  Defaults to the recommended value of 8.
           '';
         };
@@ -69,14 +69,14 @@ in
         createMountPoints = mkOption {
           type = types.bool;
           default = false;
-          description = lib.mdDoc "Whether to create the mount points in the exports file at startup time.";
+          description = "Whether to create the mount points in the exports file at startup time.";
         };
 
         mountdPort = mkOption {
           type = types.nullOr types.int;
           default = null;
           example = 4002;
-          description = lib.mdDoc ''
+          description = ''
             Use fixed port for rpc.mountd, useful if server is behind firewall.
           '';
         };
@@ -85,7 +85,7 @@ in
           type = types.nullOr types.int;
           default = null;
           example = 4001;
-          description = lib.mdDoc ''
+          description = ''
             Use a fixed port for the NFS lock manager kernel module
             (`lockd/nlockmgr`).  This is useful if the
             NFS server is behind a firewall.
@@ -96,7 +96,7 @@ in
           type = types.nullOr types.int;
           default = null;
           example = 4000;
-          description = lib.mdDoc ''
+          description = ''
             Use a fixed port for {command}`rpc.statd`. This is
             useful if the NFS server is behind a firewall.
           '';
@@ -113,25 +113,6 @@ in
 
   config = mkIf cfg.enable {
 
-    services.nfs.extraConfig = ''
-      [nfsd]
-      threads=${toString cfg.nproc}
-      ${optionalString (cfg.hostName != null) "host=${cfg.hostName}"}
-      ${cfg.extraNfsdConfig}
-
-      [mountd]
-      ${optionalString (cfg.mountdPort != null) "port=${toString cfg.mountdPort}"}
-
-      [statd]
-      ${optionalString (cfg.statdPort != null) "port=${toString cfg.statdPort}"}
-
-      [lockd]
-      ${optionalString (cfg.lockdPort != null) ''
-        port=${toString cfg.lockdPort}
-        udp-port=${toString cfg.lockdPort}
-      ''}
-    '';
-
     services.rpcbind.enable = true;
 
     boot.supportedFilesystems = [ "nfs" ]; # needed for statd and idmapd
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/openafs/client.nix b/nixpkgs/nixos/modules/services/network-filesystems/openafs/client.nix
index 02c3482ec657..e7c2b9526328 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/openafs/client.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/openafs/client.nix
@@ -33,26 +33,26 @@ in
       enable = mkOption {
         default = false;
         type = types.bool;
-        description = lib.mdDoc "Whether to enable the OpenAFS client.";
+        description = "Whether to enable the OpenAFS client.";
       };
 
       afsdb = mkOption {
         default = true;
         type = types.bool;
-        description = lib.mdDoc "Resolve cells via AFSDB DNS records.";
+        description = "Resolve cells via AFSDB DNS records.";
       };
 
       cellName = mkOption {
         default = "";
         type = types.str;
-        description = lib.mdDoc "Cell name.";
+        description = "Cell name.";
         example = "grand.central.org";
       };
 
       cellServDB = mkOption {
         default = [];
         type = with types; listOf (submodule { options = cellServDBConfig; });
-        description = lib.mdDoc ''
+        description = ''
           This cell's database server records, added to the global
           CellServDB. See CellServDB(5) man page for syntax. Ignored when
           `afsdb` is set to `true`.
@@ -67,13 +67,13 @@ in
         blocks = mkOption {
           default = 100000;
           type = types.int;
-          description = lib.mdDoc "Cache size in 1KB blocks.";
+          description = "Cache size in 1KB blocks.";
         };
 
         chunksize = mkOption {
           default = 0;
           type = types.ints.between 0 30;
-          description = lib.mdDoc ''
+          description = ''
             Size of each cache chunk given in powers of
             2. `0` resets the chunk size to its default
             values (13 (8 KB) for memcache, 18-20 (256 KB to 1 MB) for
@@ -85,13 +85,13 @@ in
         directory = mkOption {
           default = "/var/cache/openafs";
           type = types.str;
-          description = lib.mdDoc "Cache directory.";
+          description = "Cache directory.";
         };
 
         diskless = mkOption {
           default = false;
           type = types.bool;
-          description = lib.mdDoc ''
+          description = ''
             Use in-memory cache for diskless machines. Has no real
             performance benefit anymore.
           '';
@@ -101,13 +101,13 @@ in
       crypt = mkOption {
         default = true;
         type = types.bool;
-        description = lib.mdDoc "Whether to enable (weak) protocol encryption.";
+        description = "Whether to enable (weak) protocol encryption.";
       };
 
       daemons = mkOption {
         default = 2;
         type = types.int;
-        description = lib.mdDoc ''
+        description = ''
           Number of daemons to serve user requests. Numbers higher than 6
           usually do no increase performance. Default is sufficient for up
           to five concurrent users.
@@ -117,7 +117,7 @@ in
       fakestat = mkOption {
         default = false;
         type = types.bool;
-        description = lib.mdDoc ''
+        description = ''
           Return fake data on stat() calls. If `true`,
           always do so. If `false`, only do so for
           cross-cell mounts (as these are potentially expensive).
@@ -127,7 +127,7 @@ in
       inumcalc = mkOption {
         default = "compat";
         type = types.strMatching "compat|md5";
-        description = lib.mdDoc ''
+        description = ''
           Inode calculation method. `compat` is
           computationally less expensive, but `md5` greatly
           reduces the likelihood of inode collisions in larger scenarios
@@ -138,7 +138,7 @@ in
       mountPoint = mkOption {
         default = "/afs";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Mountpoint of the AFS file tree, conventionally
           `/afs`. When set to a different value, only
           cross-cells that use the same value can be accessed.
@@ -150,26 +150,26 @@ in
           default = config.boot.kernelPackages.openafs;
           defaultText = literalExpression "config.boot.kernelPackages.openafs";
           type = types.package;
-          description = lib.mdDoc "OpenAFS kernel module package. MUST match the userland package!";
+          description = "OpenAFS kernel module package. MUST match the userland package!";
         };
         programs = mkOption {
           default = getBin pkgs.openafs;
           defaultText = literalExpression "getBin pkgs.openafs";
           type = types.package;
-          description = lib.mdDoc "OpenAFS programs package. MUST match the kernel module package!";
+          description = "OpenAFS programs package. MUST match the kernel module package!";
         };
       };
 
       sparse = mkOption {
         default = true;
         type = types.bool;
-        description = lib.mdDoc "Minimal cell list in /afs.";
+        description = "Minimal cell list in /afs.";
       };
 
       startDisconnected = mkOption {
         default = false;
         type = types.bool;
-        description = lib.mdDoc ''
+        description = ''
           Start up in disconnected mode.  You need to execute
           `fs disco online` (as root) to switch to
           connected mode. Useful for roaming devices.
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/openafs/lib.nix b/nixpkgs/nixos/modules/services/network-filesystems/openafs/lib.nix
index e5e147a8dc33..726c47b70575 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/openafs/lib.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/openafs/lib.nix
@@ -17,13 +17,13 @@ in {
       type = types.str;
       default = "";
       example = "1.2.3.4";
-      description = lib.mdDoc "IP Address of a database server";
+      description = "IP Address of a database server";
     };
     dnsname = mkOption {
       type = types.str;
       default = "";
       example = "afs.example.org";
-      description = lib.mdDoc "DNS full-qualified domain name of a database server";
+      description = "DNS full-qualified domain name of a database server";
     };
   };
 
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/openafs/server.nix b/nixpkgs/nixos/modules/services/network-filesystems/openafs/server.nix
index 14bdf2f33865..a399aa6c23bc 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/openafs/server.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/openafs/server.nix
@@ -71,7 +71,7 @@ in {
       enable = mkOption {
         default = false;
         type = types.bool;
-        description = lib.mdDoc ''
+        description = ''
           Whether to enable the OpenAFS server. An OpenAFS server needs a
           complex setup. So, be aware that enabling this service and setting
           some options does not give you a turn-key-ready solution. You need
@@ -85,20 +85,20 @@ in {
       advertisedAddresses = mkOption {
         type = types.listOf types.str;
         default = [];
-        description = lib.mdDoc "List of IP addresses this server is advertised under. See NetInfo(5)";
+        description = "List of IP addresses this server is advertised under. See NetInfo(5)";
       };
 
       cellName = mkOption {
         default = "";
         type = types.str;
-        description = lib.mdDoc "Cell name, this server will serve.";
+        description = "Cell name, this server will serve.";
         example = "grand.central.org";
       };
 
       cellServDB = mkOption {
         default = [];
         type = with types; listOf (submodule [ { options = cellServDBConfig;} ]);
-        description = lib.mdDoc "Definition of all cell-local database server machines.";
+        description = "Definition of all cell-local database server machines.";
       };
 
       package = mkPackageOption pkgs "openafs" { };
@@ -108,33 +108,33 @@ in {
           enable = mkOption {
             default = true;
             type = types.bool;
-            description = lib.mdDoc "Fileserver role, serves files and volumes from its local storage.";
+            description = "Fileserver role, serves files and volumes from its local storage.";
           };
 
           fileserverArgs = mkOption {
             default = "-vattachpar 128 -vhashsize 11 -L -rxpck 400 -cb 1000000";
             type = types.str;
-            description = lib.mdDoc "Arguments to the dafileserver process. See its man page.";
+            description = "Arguments to the dafileserver process. See its man page.";
           };
 
           volserverArgs = mkOption {
             default = "";
             type = types.str;
-            description = lib.mdDoc "Arguments to the davolserver process. See its man page.";
+            description = "Arguments to the davolserver process. See its man page.";
             example = "-sync never";
           };
 
           salvageserverArgs = mkOption {
             default = "";
             type = types.str;
-            description = lib.mdDoc "Arguments to the salvageserver process. See its man page.";
+            description = "Arguments to the salvageserver process. See its man page.";
             example = "-showlog";
           };
 
           salvagerArgs = mkOption {
             default = "";
             type = types.str;
-            description = lib.mdDoc "Arguments to the dasalvager process. See its man page.";
+            description = "Arguments to the dasalvager process. See its man page.";
             example = "-showlog -showmounts";
           };
         };
@@ -143,7 +143,7 @@ in {
           enable = mkOption {
             default = true;
             type = types.bool;
-            description = lib.mdDoc ''
+            description = ''
               Database server role, maintains the Volume Location Database,
               Protection Database (and Backup Database, see
               `backup` role). There can be multiple
@@ -158,20 +158,20 @@ in {
           vlserverArgs = mkOption {
             default = "";
             type = types.str;
-            description = lib.mdDoc "Arguments to the vlserver process. See its man page.";
+            description = "Arguments to the vlserver process. See its man page.";
             example = "-rxbind";
           };
 
           ptserverArgs = mkOption {
             default = "";
             type = types.str;
-            description = lib.mdDoc "Arguments to the ptserver process. See its man page.";
+            description = "Arguments to the ptserver process. See its man page.";
             example = "-restricted -default_access S---- S-M---";
           };
         };
 
         backup = {
-          enable = mkEnableOption (lib.mdDoc ''
+          enable = mkEnableOption ''
             the backup server role. When using OpenAFS built-in buserver, use in conjunction with the
             `database` role to maintain the Backup
             Database. Normally only used in conjunction with tape storage
@@ -179,24 +179,24 @@ in {
 
             For a modern backup server, enable this role and see
             {option}`enableFabs`
-          '');
+          '';
 
-          enableFabs = mkEnableOption (lib.mdDoc ''
+          enableFabs = mkEnableOption ''
             FABS, the flexible AFS backup system. It stores volumes as dump files, relying on other
             pre-existing backup solutions for handling them.
-          '');
+          '';
 
           buserverArgs = mkOption {
             default = "";
             type = types.str;
-            description = lib.mdDoc "Arguments to the buserver process. See its man page.";
+            description = "Arguments to the buserver process. See its man page.";
             example = "-p 8";
           };
 
           cellServDB = mkOption {
             default = [];
             type = with types; listOf (submodule [ { options = cellServDBConfig;} ]);
-            description = lib.mdDoc ''
+            description = ''
               Definition of all cell-local backup database server machines.
               Use this when your cell uses less backup database servers than
               other database server machines.
@@ -206,7 +206,7 @@ in {
           fabsArgs = mkOption {
             default = "";
             type = types.str;
-            description = lib.mdDoc ''
+            description = ''
               Arguments to the fabsys process. See
               {manpage}`fabsys_server(1)` and
               {manpage}`fabsys_config(1)`.
@@ -216,7 +216,7 @@ in {
           fabsExtraConfig = mkOption {
             default = {};
             type = types.attrs;
-            description = lib.mdDoc ''
+            description = ''
               Additional configuration parameters for the FABS backup server.
             '';
             example = literalExpression ''
@@ -232,7 +232,7 @@ in {
       dottedPrincipals= mkOption {
         default = false;
         type = types.bool;
-        description = lib.mdDoc ''
+        description = ''
           If enabled, allow principal names containing (.) dots. Enabling
           this has security implications!
         '';
@@ -241,7 +241,7 @@ in {
       udpPacketSize = mkOption {
         default = 1310720;
         type = types.int;
-        description = lib.mdDoc ''
+        description = ''
           UDP packet size to use in Bytes. Higher values can speed up
           communications. The default of 1 MB is a sufficient in most
           cases. Make sure to increase the kernel's UDP buffer size
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/orangefs/client.nix b/nixpkgs/nixos/modules/services/network-filesystems/orangefs/client.nix
index 68f23f477af1..0632a9bc9527 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/orangefs/client.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/orangefs/client.nix
@@ -10,16 +10,16 @@ in {
 
   options = {
     services.orangefs.client = {
-      enable = mkEnableOption (lib.mdDoc "OrangeFS client daemon");
+      enable = mkEnableOption "OrangeFS client daemon";
 
       extraOptions = mkOption {
         type = with types; listOf str;
         default = [];
-        description = lib.mdDoc "Extra command line options for pvfs2-client.";
+        description = "Extra command line options for pvfs2-client.";
       };
 
       fileSystems = mkOption {
-        description = lib.mdDoc ''
+        description = ''
           The orangefs file systems to be mounted.
           This option is preferred over using {option}`fileSystems` directly since
           the pvfs client service needs to be running for it to be mounted.
@@ -36,19 +36,19 @@ in {
             mountPoint = mkOption {
               type = types.str;
               default = "/orangefs";
-              description = lib.mdDoc "Mount point.";
+              description = "Mount point.";
             };
 
             options = mkOption {
               type = with types; listOf str;
               default = [];
-              description = lib.mdDoc "Mount options";
+              description = "Mount options";
             };
 
             target = mkOption {
               type = types.str;
               example = "tcp://server:3334/orangefs";
-              description = lib.mdDoc "Target URL";
+              description = "Target URL";
             };
           };
         }));
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/orangefs/server.nix b/nixpkgs/nixos/modules/services/network-filesystems/orangefs/server.nix
index 085b64e4c040..9fbf37f0d00a 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/orangefs/server.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/orangefs/server.nix
@@ -74,45 +74,45 @@ in {
 
   options = {
     services.orangefs.server = {
-      enable = mkEnableOption (lib.mdDoc "OrangeFS server");
+      enable = mkEnableOption "OrangeFS server";
 
       logType = mkOption {
         type = with types; enum [ "file" "syslog" ];
         default = "syslog";
-        description = lib.mdDoc "Destination for log messages.";
+        description = "Destination for log messages.";
       };
 
       dataStorageSpace = mkOption {
         type = types.nullOr types.str;
         default = null;
         example = "/data/storage";
-        description = lib.mdDoc "Directory for data storage.";
+        description = "Directory for data storage.";
       };
 
       metadataStorageSpace = mkOption {
         type = types.nullOr types.str;
         default = null;
         example = "/data/meta";
-        description = lib.mdDoc "Directory for meta data storage.";
+        description = "Directory for meta data storage.";
       };
 
       BMIModules = mkOption {
         type = with types; listOf str;
         default = [ "bmi_tcp" ];
         example = [ "bmi_tcp" "bmi_ib"];
-        description = lib.mdDoc "List of BMI modules to load.";
+        description = "List of BMI modules to load.";
       };
 
       extraDefaults = mkOption {
         type = types.lines;
         default = "";
-        description = lib.mdDoc "Extra config for `<Defaults>` section.";
+        description = "Extra config for `<Defaults>` section.";
       };
 
       extraConfig = mkOption {
         type = types.lines;
         default = "";
-        description = lib.mdDoc "Extra config for the global section.";
+        description = "Extra config for the global section.";
       };
 
       servers = mkOption {
@@ -122,11 +122,11 @@ in {
           node1 = "tcp://node1:3334";
           node2 = "tcp://node2:3334";
         };
-        description = lib.mdDoc "URLs for storage server including port. The attribute names define the server alias.";
+        description = "URLs for storage server including port. The attribute names define the server alias.";
       };
 
       fileSystems = mkOption {
-        description = lib.mdDoc ''
+        description = ''
           These options will create the `<FileSystem>` sections of config file.
         '';
         default = { orangefs = {}; };
@@ -146,37 +146,37 @@ in {
             id = mkOption {
               type = types.int;
               default = 1;
-              description = lib.mdDoc "File system ID (must be unique within configuration).";
+              description = "File system ID (must be unique within configuration).";
             };
 
             rootHandle = mkOption {
               type = types.int;
               default = 3;
-              description = lib.mdDoc "File system root ID.";
+              description = "File system root ID.";
             };
 
             extraConfig = mkOption {
               type = types.lines;
               default = "";
-              description = lib.mdDoc "Extra config for `<FileSystem>` section.";
+              description = "Extra config for `<FileSystem>` section.";
             };
 
             troveSyncMeta = mkOption {
               type = types.bool;
               default = true;
-              description = lib.mdDoc "Sync meta data.";
+              description = "Sync meta data.";
             };
 
             troveSyncData = mkOption {
               type = types.bool;
               default = false;
-              description = lib.mdDoc "Sync data.";
+              description = "Sync data.";
             };
 
             extraStorageHints = mkOption {
               type = types.lines;
               default = "";
-              description = lib.mdDoc "Extra config for `<StorageHints>` section.";
+              description = "Extra config for `<StorageHints>` section.";
             };
           };
         }));
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/rsyncd.nix b/nixpkgs/nixos/modules/services/network-filesystems/rsyncd.nix
index c9d7475395fe..49bc7caf2ee4 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/rsyncd.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/rsyncd.nix
@@ -10,12 +10,12 @@ in {
   options = {
     services.rsyncd = {
 
-      enable = mkEnableOption (lib.mdDoc "the rsync daemon");
+      enable = mkEnableOption "the rsync daemon";
 
       port = mkOption {
         default = 873;
         type = types.port;
-        description = lib.mdDoc "TCP port the daemon will listen on.";
+        description = "TCP port the daemon will listen on.";
       };
 
       settings = mkOption {
@@ -39,7 +39,7 @@ in {
             "secrets file" = "/etc/rsyncd.secrets";
           };
         };
-        description = lib.mdDoc ''
+        description = ''
           Configuration for rsyncd. See
           {manpage}`rsyncd.conf(5)`.
         '';
@@ -48,8 +48,7 @@ in {
       socketActivated = mkOption {
         default = false;
         type = types.bool;
-        description =
-          lib.mdDoc "If enabled Rsync will be socket-activated rather than run persistently.";
+        description = "If enabled Rsync will be socket-activated rather than run persistently.";
       };
 
     };
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/samba-wsdd.nix b/nixpkgs/nixos/modules/services/network-filesystems/samba-wsdd.nix
index ad600796217b..608b48cf0305 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/samba-wsdd.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/samba-wsdd.nix
@@ -8,24 +8,24 @@ let
 in {
   options = {
     services.samba-wsdd = {
-      enable = mkEnableOption (lib.mdDoc ''
+      enable = mkEnableOption ''
         Web Services Dynamic Discovery host daemon. This enables (Samba) hosts, like your local NAS device,
         to be found by Web Service Discovery Clients like Windows.
-      '');
+      '';
       interface = mkOption {
         type = types.nullOr types.str;
         default = null;
         example = "eth0";
-        description = lib.mdDoc "Interface or address to use.";
+        description = "Interface or address to use.";
       };
       hoplimit = mkOption {
         type = types.nullOr types.int;
         default = null;
         example = 2;
-        description = lib.mdDoc "Hop limit for multicast packets (default = 1).";
+        description = "Hop limit for multicast packets (default = 1).";
       };
       openFirewall = mkOption {
-        description = lib.mdDoc ''
+        description = ''
           Whether to open the required firewall ports in the firewall.
         '';
         default = false;
@@ -35,34 +35,34 @@ in {
         type = types.nullOr types.str;
         default = null;
         example = "HOME";
-        description = lib.mdDoc "Set workgroup name (default WORKGROUP).";
+        description = "Set workgroup name (default WORKGROUP).";
       };
       hostname = mkOption {
         type = types.nullOr types.str;
         default = null;
         example = "FILESERVER";
-        description = lib.mdDoc "Override (NetBIOS) hostname to be used (default hostname).";
+        description = "Override (NetBIOS) hostname to be used (default hostname).";
       };
       domain = mkOption {
         type = types.nullOr types.str;
         default = null;
-        description = lib.mdDoc "Set domain name (disables workgroup).";
+        description = "Set domain name (disables workgroup).";
       };
       discovery = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Enable discovery operation mode.";
+        description = "Enable discovery operation mode.";
       };
       listen = mkOption {
         type = types.str;
         default = "/run/wsdd/wsdd.sock";
-        description = lib.mdDoc "Listen on path or localhost port in discovery mode.";
+        description = "Listen on path or localhost port in discovery mode.";
       };
       extraOptions = mkOption {
         type = types.listOf types.str;
         default = [ "--shortlog" ];
         example = [ "--verbose" "--no-http" "--ipv4only" "--no-host" ];
-        description = lib.mdDoc "Additional wsdd options.";
+        description = "Additional wsdd options.";
       };
     };
   };
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/samba.nix b/nixpkgs/nixos/modules/services/network-filesystems/samba.nix
index ef368ddbeefd..66ef3f14ed70 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/samba.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/samba.nix
@@ -80,7 +80,7 @@ in
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to enable Samba, which provides file and print
           services to Windows clients through the SMB/CIFS protocol.
 
@@ -95,7 +95,7 @@ in
       openFirewall = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to automatically open the necessary ports in the firewall.
         '';
       };
@@ -103,7 +103,7 @@ in
       enableNmbd = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        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.
@@ -113,7 +113,7 @@ in
       enableWinbindd = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        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.
@@ -127,7 +127,7 @@ in
       invalidUsers = mkOption {
         type = types.listOf types.str;
         default = [ "root" ];
-        description = lib.mdDoc ''
+        description = ''
           List of users who are denied to login via Samba.
         '';
       };
@@ -135,7 +135,7 @@ in
       extraConfig = mkOption {
         type = types.lines;
         default = "";
-        description = lib.mdDoc ''
+        description = ''
           Additional global section and extra section lines go in here.
         '';
         example = ''
@@ -147,7 +147,7 @@ in
       configText = mkOption {
         type = types.nullOr types.lines;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           Verbatim contents of smb.conf. If null (default), use the
           autogenerated file from NixOS instead.
         '';
@@ -156,13 +156,13 @@ in
       securityType = mkOption {
         type = types.enum [ "auto" "user" "domain" "ads" ];
         default = "user";
-        description = lib.mdDoc "Samba security type";
+        description = "Samba security type";
       };
 
       nsswins = mkOption {
         default = false;
         type = types.bool;
-        description = lib.mdDoc ''
+        description = ''
           Whether to enable the WINS NSS (Name Service Switch) plug-in.
           Enabling it allows applications to resolve WINS/NetBIOS names (a.k.a.
           Windows machine names) by transparently querying the winbindd daemon.
@@ -171,7 +171,7 @@ in
 
       shares = mkOption {
         default = {};
-        description = lib.mdDoc ''
+        description = ''
           A set describing shared resources.
           See {command}`man smb.conf` for options.
         '';
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/tahoe.nix b/nixpkgs/nixos/modules/services/network-filesystems/tahoe.nix
index d016d4a38fb9..cfda62020a1e 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/tahoe.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/tahoe.nix
@@ -12,21 +12,21 @@ in
           options = {
             nickname = mkOption {
               type = types.str;
-              description = lib.mdDoc ''
+              description = ''
                 The nickname of this Tahoe introducer.
               '';
             };
             tub.port = mkOption {
               default = 3458;
               type = types.port;
-              description = lib.mdDoc ''
+              description = ''
                 The port on which the introducer will listen.
               '';
             };
             tub.location = mkOption {
               default = null;
               type = types.nullOr types.str;
-              description = lib.mdDoc ''
+              description = ''
                 The external location that the introducer should listen on.
 
                 If specified, the port should be included.
@@ -35,7 +35,7 @@ in
             package = mkPackageOption pkgs "tahoelafs" { };
           };
         });
-        description = lib.mdDoc ''
+        description = ''
           The Tahoe introducers.
         '';
       };
@@ -45,14 +45,14 @@ in
           options = {
             nickname = mkOption {
               type = types.str;
-              description = lib.mdDoc ''
+              description = ''
                 The nickname of this Tahoe node.
               '';
             };
             tub.port = mkOption {
               default = 3457;
               type = types.port;
-              description = lib.mdDoc ''
+              description = ''
                 The port on which the tub will listen.
 
                 This is the correct setting to tweak if you want Tahoe's storage
@@ -62,7 +62,7 @@ in
             tub.location = mkOption {
               default = null;
               type = types.nullOr types.str;
-              description = lib.mdDoc ''
+              description = ''
                 The external location that the node should listen on.
 
                 This is the setting to tweak if there are multiple interfaces
@@ -74,7 +74,7 @@ in
             web.port = mkOption {
               default = 3456;
               type = types.port;
-              description = lib.mdDoc ''
+              description = ''
                 The port on which the Web server will listen.
 
                 This is the correct setting to tweak if you want Tahoe's WUI to
@@ -84,7 +84,7 @@ in
             client.introducer = mkOption {
               default = null;
               type = types.nullOr types.str;
-              description = lib.mdDoc ''
+              description = ''
                 The furl for a Tahoe introducer node.
 
                 Like all furls, keep this safe and don't share it.
@@ -93,7 +93,7 @@ in
             client.helper = mkOption {
               default = null;
               type = types.nullOr types.str;
-              description = lib.mdDoc ''
+              description = ''
                 The furl for a Tahoe helper node.
 
                 Like all furls, keep this safe and don't share it.
@@ -102,14 +102,14 @@ in
             client.shares.needed = mkOption {
               default = 3;
               type = types.int;
-              description = lib.mdDoc ''
+              description = ''
                 The number of shares required to reconstitute a file.
               '';
             };
             client.shares.happy = mkOption {
               default = 7;
               type = types.int;
-              description = lib.mdDoc ''
+              description = ''
                 The number of distinct storage nodes required to store
                 a file.
               '';
@@ -117,24 +117,24 @@ in
             client.shares.total = mkOption {
               default = 10;
               type = types.int;
-              description = lib.mdDoc ''
+              description = ''
                 The number of shares required to store a file.
               '';
             };
-            storage.enable = mkEnableOption (lib.mdDoc "storage service");
+            storage.enable = mkEnableOption "storage service";
             storage.reservedSpace = mkOption {
               default = "1G";
               type = types.str;
-              description = lib.mdDoc ''
+              description = ''
                 The amount of filesystem space to not use for storage.
               '';
             };
-            helper.enable = mkEnableOption (lib.mdDoc "helper service");
-            sftpd.enable = mkEnableOption (lib.mdDoc "SFTP service");
+            helper.enable = mkEnableOption "helper service";
+            sftpd.enable = mkEnableOption "SFTP service";
             sftpd.port = mkOption {
               default = null;
               type = types.nullOr types.int;
-              description = lib.mdDoc ''
+              description = ''
                 The port on which the SFTP server will listen.
 
                 This is the correct setting to tweak if you want Tahoe's SFTP
@@ -144,35 +144,35 @@ in
             sftpd.hostPublicKeyFile = mkOption {
               default = null;
               type = types.nullOr types.path;
-              description = lib.mdDoc ''
+              description = ''
                 Path to the SSH host public key.
               '';
             };
             sftpd.hostPrivateKeyFile = mkOption {
               default = null;
               type = types.nullOr types.path;
-              description = lib.mdDoc ''
+              description = ''
                 Path to the SSH host private key.
               '';
             };
             sftpd.accounts.file = mkOption {
               default = null;
               type = types.nullOr types.path;
-              description = lib.mdDoc ''
+              description = ''
                 Path to the accounts file.
               '';
             };
             sftpd.accounts.url = mkOption {
               default = null;
               type = types.nullOr types.str;
-              description = lib.mdDoc ''
+              description = ''
                 URL of the accounts server.
               '';
             };
             package = mkPackageOption pkgs "tahoelafs" { };
           };
         });
-        description = lib.mdDoc ''
+        description = ''
           The Tahoe nodes.
         '';
       };
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/u9fs.nix b/nixpkgs/nixos/modules/services/network-filesystems/u9fs.nix
index d6968b2cb826..2233d6f2a60d 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/u9fs.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/u9fs.nix
@@ -14,14 +14,14 @@ in
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Whether to run the u9fs 9P server for Unix.";
+        description = "Whether to run the u9fs 9P server for Unix.";
       };
 
       listenStreams = mkOption {
         type = types.listOf types.str;
         default = [ "564" ];
         example = [ "192.168.16.1:564" ];
-        description = lib.mdDoc ''
+        description = ''
           Sockets to listen for clients on.
           See {command}`man 5 systemd.socket` for socket syntax.
         '';
@@ -30,16 +30,14 @@ in
       user = mkOption {
         type = types.str;
         default = "nobody";
-        description =
-          lib.mdDoc "User to run u9fs under.";
+        description = "User to run u9fs under.";
       };
 
       extraArgs = mkOption {
         type = types.str;
         default = "";
         example = "-a none";
-        description =
-          lib.mdDoc ''
+        description = ''
             Extra arguments to pass on invocation,
             see {command}`man 4 u9fs`
           '';
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/webdav-server-rs.nix b/nixpkgs/nixos/modules/services/network-filesystems/webdav-server-rs.nix
index 34e717025e64..7e83d78db5b0 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/webdav-server-rs.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/webdav-server-rs.nix
@@ -14,30 +14,30 @@ in
 {
   options = {
     services.webdav-server-rs = {
-      enable = mkEnableOption (lib.mdDoc "WebDAV server");
+      enable = mkEnableOption "WebDAV server";
 
       user = mkOption {
         type = types.str;
         default = "webdav";
-        description = lib.mdDoc "User to run under when setuid is not enabled.";
+        description = "User to run under when setuid is not enabled.";
       };
 
       group = mkOption {
         type = types.str;
         default = "webdav";
-        description = lib.mdDoc "Group to run under when setuid is not enabled.";
+        description = "Group to run under when setuid is not enabled.";
       };
 
       debug = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Enable debug mode.";
+        description = "Enable debug mode.";
       };
 
       settings = mkOption {
         type = format.type;
         default = { };
-        description = lib.mdDoc ''
+        description = ''
           Attrset that is converted and passed as config file. Available
           options can be found at
           [here](https://github.com/miquels/webdav-server-rs/blob/master/webdav-server.toml).
@@ -79,7 +79,7 @@ in
         type = types.path;
         default = format.generate "webdav-server.toml" settings;
         defaultText = "Config file generated from services.webdav-server-rs.settings";
-        description = lib.mdDoc ''
+        description = ''
           Path to config file. If this option is set, it will override any
           configuration done in services.webdav-server-rs.settings.
         '';
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/webdav.nix b/nixpkgs/nixos/modules/services/network-filesystems/webdav.nix
index a384e58c96bf..7e435fc65253 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/webdav.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/webdav.nix
@@ -8,24 +8,24 @@ in
 {
   options = {
     services.webdav = {
-      enable = mkEnableOption (lib.mdDoc "WebDAV server");
+      enable = mkEnableOption "WebDAV server";
 
       user = mkOption {
         type = types.str;
         default = "webdav";
-        description = lib.mdDoc "User account under which WebDAV runs.";
+        description = "User account under which WebDAV runs.";
       };
 
       group = mkOption {
         type = types.str;
         default = "webdav";
-        description = lib.mdDoc "Group under which WebDAV runs.";
+        description = "Group under which WebDAV runs.";
       };
 
       settings = mkOption {
         type = format.type;
         default = { };
-        description = lib.mdDoc ''
+        description = ''
           Attrset that is converted and passed as config file. Available options
           can be found at
           [here](https://github.com/hacdias/webdav).
@@ -57,7 +57,7 @@ in
         type = types.path;
         default = format.generate "webdav.yaml" cfg.settings;
         defaultText = "Config file generated from services.webdav.settings";
-        description = lib.mdDoc ''
+        description = ''
           Path to config file. If this option is set, it will override any
           configuration done in options.services.webdav.settings.
         '';
@@ -67,7 +67,7 @@ in
       environmentFile = mkOption {
         type = types.nullOr types.path;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           Environment file as defined in {manpage}`systemd.exec(5)`.
         '';
       };
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/xtreemfs.nix b/nixpkgs/nixos/modules/services/network-filesystems/xtreemfs.nix
index 866661cf4e6f..78a0272c0567 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/xtreemfs.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/xtreemfs.nix
@@ -89,12 +89,12 @@ in
 
     services.xtreemfs = {
 
-      enable = mkEnableOption (lib.mdDoc "XtreemFS");
+      enable = mkEnableOption "XtreemFS";
 
       homeDir = mkOption {
         type = types.path;
         default = "/var/lib/xtreemfs";
-        description = lib.mdDoc ''
+        description = ''
           XtreemFS home dir for the xtreemfs user.
         '';
       };
@@ -103,7 +103,7 @@ in
         enable = mkOption {
           type = types.bool;
           default = true;
-          description = lib.mdDoc ''
+          description = ''
             Whether to enable XtreemFS DIR service.
           '';
         };
@@ -111,7 +111,7 @@ in
         uuid = mkOption {
           example = "eacb6bab-f444-4ebf-a06a-3f72d7465e40";
           type = types.str;
-          description = lib.mdDoc ''
+          description = ''
             Must be set to a unique identifier, preferably a UUID according to
             RFC 4122. UUIDs can be generated with `uuidgen` command, found in
             the `util-linux` package.
@@ -120,7 +120,7 @@ in
         port = mkOption {
           default = 32638;
           type = types.port;
-          description = lib.mdDoc ''
+          description = ''
             The port to listen on for incoming connections (TCP).
           '';
         };
@@ -128,7 +128,7 @@ in
           type = types.str;
           example = "127.0.0.1";
           default = "";
-          description = lib.mdDoc ''
+          description = ''
             If specified, it defines the interface to listen on. If not
             specified, the service will listen on all interfaces (any).
           '';
@@ -136,7 +136,7 @@ in
         httpPort = mkOption {
           default = 30638;
           type = types.port;
-          description = lib.mdDoc ''
+          description = ''
             Specifies the listen port for the HTTP service that returns the
             status page.
           '';
@@ -145,7 +145,7 @@ in
           type = types.enum [ "ASYNC" "SYNC_WRITE_METADATA" "SYNC_WRITE" "FDATASYNC" "FSYNC" ];
           default = "FSYNC";
           example = "FDATASYNC";
-          description = lib.mdDoc ''
+          description = ''
             The sync mode influences how operations are committed to the disk
             log before the operation is acknowledged to the caller.
 
@@ -173,14 +173,14 @@ in
             ssl.trusted_certs.pw = jks_passphrase
             ssl.trusted_certs.container = jks
           '';
-          description = lib.mdDoc ''
+          description = ''
             Configuration of XtreemFS DIR service.
             WARNING: configuration is saved as plaintext inside nix store.
             For more options: https://www.xtreemfs.org/xtfs-guide-1.5.1/index.html
           '';
         };
         replication = {
-          enable = mkEnableOption (lib.mdDoc "XtreemFS DIR replication plugin");
+          enable = mkEnableOption "XtreemFS DIR replication plugin";
           extraConfig = mkOption {
             type = types.lines;
             example = ''
@@ -215,7 +215,7 @@ in
 
               babudb.ssl.authenticationWithoutEncryption = false
             '';
-            description = lib.mdDoc ''
+            description = ''
               Configuration of XtreemFS DIR replication plugin.
               WARNING: configuration is saved as plaintext inside nix store.
               For more options: https://www.xtreemfs.org/xtfs-guide-1.5.1/index.html
@@ -228,7 +228,7 @@ in
         enable = mkOption {
           type = types.bool;
           default = true;
-          description = lib.mdDoc ''
+          description = ''
             Whether to enable XtreemFS MRC service.
           '';
         };
@@ -236,7 +236,7 @@ in
         uuid = mkOption {
           example = "eacb6bab-f444-4ebf-a06a-3f72d7465e41";
           type = types.str;
-          description = lib.mdDoc ''
+          description = ''
             Must be set to a unique identifier, preferably a UUID according to
             RFC 4122. UUIDs can be generated with `uuidgen` command, found in
             the `util-linux` package.
@@ -245,7 +245,7 @@ in
         port = mkOption {
           default = 32636;
           type = types.port;
-          description = lib.mdDoc ''
+          description = ''
             The port to listen on for incoming connections (TCP).
           '';
         };
@@ -253,7 +253,7 @@ in
           example = "127.0.0.1";
           type = types.str;
           default = "";
-          description = lib.mdDoc ''
+          description = ''
             If specified, it defines the interface to listen on. If not
             specified, the service will listen on all interfaces (any).
           '';
@@ -261,7 +261,7 @@ in
         httpPort = mkOption {
           default = 30636;
           type = types.port;
-          description = lib.mdDoc ''
+          description = ''
             Specifies the listen port for the HTTP service that returns the
             status page.
           '';
@@ -270,7 +270,7 @@ in
           default = "FSYNC";
           type = types.enum [ "ASYNC" "SYNC_WRITE_METADATA" "SYNC_WRITE" "FDATASYNC" "FSYNC" ];
           example = "FDATASYNC";
-          description = lib.mdDoc ''
+          description = ''
             The sync mode influences how operations are committed to the disk
             log before the operation is acknowledged to the caller.
 
@@ -316,14 +316,14 @@ in
             ssl.trusted_certs.pw = jks_passphrase
             ssl.trusted_certs.container = jks
           '';
-          description = lib.mdDoc ''
+          description = ''
             Configuration of XtreemFS MRC service.
             WARNING: configuration is saved as plaintext inside nix store.
             For more options: https://www.xtreemfs.org/xtfs-guide-1.5.1/index.html
           '';
         };
         replication = {
-          enable = mkEnableOption (lib.mdDoc "XtreemFS MRC replication plugin");
+          enable = mkEnableOption "XtreemFS MRC replication plugin";
           extraConfig = mkOption {
             type = types.lines;
             example = ''
@@ -358,7 +358,7 @@ in
 
               babudb.ssl.authenticationWithoutEncryption = false
             '';
-            description = lib.mdDoc ''
+            description = ''
               Configuration of XtreemFS MRC replication plugin.
               WARNING: configuration is saved as plaintext inside nix store.
               For more options: https://www.xtreemfs.org/xtfs-guide-1.5.1/index.html
@@ -371,7 +371,7 @@ in
         enable = mkOption {
           type = types.bool;
           default = true;
-          description = lib.mdDoc ''
+          description = ''
             Whether to enable XtreemFS OSD service.
           '';
         };
@@ -379,7 +379,7 @@ in
         uuid = mkOption {
           example = "eacb6bab-f444-4ebf-a06a-3f72d7465e42";
           type = types.str;
-          description = lib.mdDoc ''
+          description = ''
             Must be set to a unique identifier, preferably a UUID according to
             RFC 4122. UUIDs can be generated with `uuidgen` command, found in
             the `util-linux` package.
@@ -388,7 +388,7 @@ in
         port = mkOption {
           default = 32640;
           type = types.port;
-          description = lib.mdDoc ''
+          description = ''
             The port to listen on for incoming connections (TCP and UDP).
           '';
         };
@@ -396,7 +396,7 @@ in
           example = "127.0.0.1";
           type = types.str;
           default = "";
-          description = lib.mdDoc ''
+          description = ''
             If specified, it defines the interface to listen on. If not
             specified, the service will listen on all interfaces (any).
           '';
@@ -404,7 +404,7 @@ in
         httpPort = mkOption {
           default = 30640;
           type = types.port;
-          description = lib.mdDoc ''
+          description = ''
             Specifies the listen port for the HTTP service that returns the
             status page.
           '';
@@ -435,7 +435,7 @@ in
             ssl.trusted_certs.pw = jks_passphrase
             ssl.trusted_certs.container = jks
           '';
-          description = lib.mdDoc ''
+          description = ''
             Configuration of XtreemFS OSD service.
             WARNING: configuration is saved as plaintext inside nix store.
             For more options: https://www.xtreemfs.org/xtfs-guide-1.5.1/index.html
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/yandex-disk.nix b/nixpkgs/nixos/modules/services/network-filesystems/yandex-disk.nix
index 1078df0bed25..de5d42a4bcde 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/yandex-disk.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/yandex-disk.nix
@@ -23,7 +23,7 @@ in
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to enable Yandex-disk client. See https://disk.yandex.ru/
         '';
       };
@@ -31,7 +31,7 @@ in
       username = mkOption {
         default = "";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Your yandex.com login name.
         '';
       };
@@ -39,7 +39,7 @@ in
       password = mkOption {
         default = "";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Your yandex.com password. Warning: it will be world-readable in /nix/store.
         '';
       };
@@ -47,7 +47,7 @@ in
       user = mkOption {
         default = null;
         type = types.nullOr types.str;
-        description = lib.mdDoc ''
+        description = ''
           The user the yandex-disk daemon should run as.
         '';
       };
@@ -55,14 +55,14 @@ in
       directory = mkOption {
         type = types.path;
         default = "/home/Yandex.Disk";
-        description = lib.mdDoc "The directory to use for Yandex.Disk storage";
+        description = "The directory to use for Yandex.Disk storage";
       };
 
       excludes = mkOption {
         default = "";
         type = types.commas;
         example = "data,backup";
-        description = lib.mdDoc ''
+        description = ''
           Comma-separated list of directories which are excluded from synchronization.
         '';
       };