about summary refs log tree commit diff
path: root/nixpkgs/nixos/modules/config
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/config
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/config')
-rw-r--r--nixpkgs/nixos/modules/config/appstream.nix2
-rw-r--r--nixpkgs/nixos/modules/config/console.nix14
-rw-r--r--nixpkgs/nixos/modules/config/debug-info.nix2
-rw-r--r--nixpkgs/nixos/modules/config/fanout.nix2
-rw-r--r--nixpkgs/nixos/modules/config/fonts/fontconfig.nix36
-rw-r--r--nixpkgs/nixos/modules/config/fonts/fontdir.nix4
-rw-r--r--nixpkgs/nixos/modules/config/fonts/ghostscript.nix2
-rw-r--r--nixpkgs/nixos/modules/config/fonts/packages.nix4
-rw-r--r--nixpkgs/nixos/modules/config/gtk/gtk-icon-cache.nix2
-rw-r--r--nixpkgs/nixos/modules/config/i18n.nix8
-rw-r--r--nixpkgs/nixos/modules/config/iproute2.nix4
-rw-r--r--nixpkgs/nixos/modules/config/ldap.nix36
-rw-r--r--nixpkgs/nixos/modules/config/ldso.nix6
-rw-r--r--nixpkgs/nixos/modules/config/locale.nix10
-rw-r--r--nixpkgs/nixos/modules/config/malloc.nix21
-rw-r--r--nixpkgs/nixos/modules/config/mysql.nix70
-rw-r--r--nixpkgs/nixos/modules/config/networking.nix24
-rw-r--r--nixpkgs/nixos/modules/config/nix-channel.nix6
-rw-r--r--nixpkgs/nixos/modules/config/nix-flakes.nix10
-rw-r--r--nixpkgs/nixos/modules/config/nix-remote-build.nix26
-rw-r--r--nixpkgs/nixos/modules/config/nix.nix32
-rw-r--r--nixpkgs/nixos/modules/config/no-x-libs.nix7
-rw-r--r--nixpkgs/nixos/modules/config/nsswitch.nix12
-rw-r--r--nixpkgs/nixos/modules/config/power-management.nix11
-rw-r--r--nixpkgs/nixos/modules/config/pulseaudio.nix30
-rw-r--r--nixpkgs/nixos/modules/config/qt.nix6
-rw-r--r--nixpkgs/nixos/modules/config/resolvconf.nix21
-rw-r--r--nixpkgs/nixos/modules/config/shells-environment.nix28
-rw-r--r--nixpkgs/nixos/modules/config/stevenblack.nix6
-rw-r--r--nixpkgs/nixos/modules/config/stub-ld.nix4
-rw-r--r--nixpkgs/nixos/modules/config/swap.nix28
-rw-r--r--nixpkgs/nixos/modules/config/sysctl.nix6
-rw-r--r--nixpkgs/nixos/modules/config/system-environment.nix4
-rw-r--r--nixpkgs/nixos/modules/config/system-path.nix12
-rw-r--r--nixpkgs/nixos/modules/config/terminfo.nix4
-rw-r--r--nixpkgs/nixos/modules/config/unix-odbc-drivers.nix2
-rw-r--r--nixpkgs/nixos/modules/config/users-groups.nix79
-rw-r--r--nixpkgs/nixos/modules/config/vte.nix4
-rw-r--r--nixpkgs/nixos/modules/config/xdg/autostart.nix2
-rw-r--r--nixpkgs/nixos/modules/config/xdg/icons.nix2
-rw-r--r--nixpkgs/nixos/modules/config/xdg/menus.nix2
-rw-r--r--nixpkgs/nixos/modules/config/xdg/mime.nix8
-rw-r--r--nixpkgs/nixos/modules/config/xdg/portal.nix12
-rw-r--r--nixpkgs/nixos/modules/config/xdg/portals/lxqt.nix6
-rw-r--r--nixpkgs/nixos/modules/config/xdg/portals/wlr.nix8
-rw-r--r--nixpkgs/nixos/modules/config/xdg/sounds.nix2
-rw-r--r--nixpkgs/nixos/modules/config/zram.nix16
47 files changed, 328 insertions, 315 deletions
diff --git a/nixpkgs/nixos/modules/config/appstream.nix b/nixpkgs/nixos/modules/config/appstream.nix
index 5b48f6e1705d..1712273eff7d 100644
--- a/nixpkgs/nixos/modules/config/appstream.nix
+++ b/nixpkgs/nixos/modules/config/appstream.nix
@@ -6,7 +6,7 @@ with lib;
     appstream.enable = mkOption {
       type = types.bool;
       default = true;
-      description = lib.mdDoc ''
+      description = ''
         Whether to install files to support the
         [AppStream metadata specification](https://www.freedesktop.org/software/appstream/docs/index.html).
       '';
diff --git a/nixpkgs/nixos/modules/config/console.nix b/nixpkgs/nixos/modules/config/console.nix
index 442cfe9292ca..e27d7443bb1c 100644
--- a/nixpkgs/nixos/modules/config/console.nix
+++ b/nixpkgs/nixos/modules/config/console.nix
@@ -49,7 +49,7 @@ in
   ###### interface
 
   options.console  = {
-    enable = mkEnableOption (lib.mdDoc "virtual console") // {
+    enable = mkEnableOption "virtual console" // {
       default = true;
     };
 
@@ -57,7 +57,7 @@ in
       type = with types; nullOr (either str path);
       default = null;
       example = "LatArCyrHeb-16";
-      description = mdDoc ''
+      description = ''
         The font used for the virtual consoles.
         Can be `null`, a font name, or a path to a PSF font file.
 
@@ -74,7 +74,7 @@ in
       type = with types; either str path;
       default = "us";
       example = "fr";
-      description = lib.mdDoc ''
+      description = ''
         The keyboard mapping table for the virtual consoles.
       '';
     };
@@ -88,7 +88,7 @@ in
         "002b36" "cb4b16" "586e75" "657b83"
         "839496" "6c71c4" "93a1a1" "fdf6e3"
       ];
-      description = lib.mdDoc ''
+      description = ''
         The 16 colors palette used by the virtual consoles.
         Leave empty to use the default colors.
         Colors must be in hexadecimal format and listed in
@@ -100,7 +100,7 @@ in
     packages = mkOption {
       type = types.listOf types.package;
       default = [ ];
-      description = lib.mdDoc ''
+      description = ''
         List of additional packages that provide console fonts, keymaps and
         other resources for virtual consoles use.
       '';
@@ -109,7 +109,7 @@ in
     useXkbConfig = mkOption {
       type = types.bool;
       default = false;
-      description = lib.mdDoc ''
+      description = ''
         If set, configure the virtual console keymap from the xserver
         keyboard settings.
       '';
@@ -118,7 +118,7 @@ in
     earlySetup = mkOption {
       default = false;
       type = types.bool;
-      description = lib.mdDoc ''
+      description = ''
         Enable setting virtual console options as early as possible (in initrd).
       '';
     };
diff --git a/nixpkgs/nixos/modules/config/debug-info.nix b/nixpkgs/nixos/modules/config/debug-info.nix
index 78de26fda440..05a2fd2ceeea 100644
--- a/nixpkgs/nixos/modules/config/debug-info.nix
+++ b/nixpkgs/nixos/modules/config/debug-info.nix
@@ -9,7 +9,7 @@ with lib;
     environment.enableDebugInfo = mkOption {
       type = types.bool;
       default = false;
-      description = mdDoc ''
+      description = ''
         Some NixOS packages provide debug symbols. However, these are
         not included in the system closure by default to save disk
         space. Enabling this option causes the debug symbols to appear
diff --git a/nixpkgs/nixos/modules/config/fanout.nix b/nixpkgs/nixos/modules/config/fanout.nix
index 60ee145f19af..f775d2e9f22d 100644
--- a/nixpkgs/nixos/modules/config/fanout.nix
+++ b/nixpkgs/nixos/modules/config/fanout.nix
@@ -7,7 +7,7 @@ let
 in
 {
   options.services.fanout = {
-    enable = lib.mkEnableOption (lib.mdDoc "fanout");
+    enable = lib.mkEnableOption "fanout";
     fanoutDevices = lib.mkOption {
       type = lib.types.int;
       default = 1;
diff --git a/nixpkgs/nixos/modules/config/fonts/fontconfig.nix b/nixpkgs/nixos/modules/config/fonts/fontconfig.nix
index 5e2e054f7c4e..9a9ac08eefeb 100644
--- a/nixpkgs/nixos/modules/config/fonts/fontconfig.nix
+++ b/nixpkgs/nixos/modules/config/fonts/fontconfig.nix
@@ -278,7 +278,7 @@ in
         enable = mkOption {
           type = types.bool;
           default = true;
-          description = lib.mdDoc ''
+          description = ''
             If enabled, a Fontconfig configuration file will be built
             pointing to a set of default fonts.  If you don't care about
             running X11 applications or any other program that uses
@@ -291,7 +291,7 @@ in
           internal = true;
           type     = with types; listOf path;
           default  = [ ];
-          description = lib.mdDoc ''
+          description = ''
             Fontconfig configuration packages.
           '';
         };
@@ -299,7 +299,7 @@ in
         antialias = mkOption {
           type = types.bool;
           default = true;
-          description = lib.mdDoc ''
+          description = ''
             Enable font antialiasing. At high resolution (> 200 DPI),
             antialiasing has no visible effect; users of such displays may want
             to disable this option.
@@ -309,7 +309,7 @@ in
         localConf = mkOption {
           type = types.lines;
           default = "";
-          description = lib.mdDoc ''
+          description = ''
             System-wide customization file contents, has higher priority than
             `defaultFonts` settings.
           '';
@@ -319,7 +319,7 @@ in
           monospace = mkOption {
             type = types.listOf types.str;
             default = ["DejaVu Sans Mono"];
-            description = lib.mdDoc ''
+            description = ''
               System-wide default monospace font(s). Multiple fonts may be
               listed in case multiple languages must be supported.
             '';
@@ -328,7 +328,7 @@ in
           sansSerif = mkOption {
             type = types.listOf types.str;
             default = ["DejaVu Sans"];
-            description = lib.mdDoc ''
+            description = ''
               System-wide default sans serif font(s). Multiple fonts may be
               listed in case multiple languages must be supported.
             '';
@@ -337,7 +337,7 @@ in
           serif = mkOption {
             type = types.listOf types.str;
             default = ["DejaVu Serif"];
-            description = lib.mdDoc ''
+            description = ''
               System-wide default serif font(s). Multiple fonts may be listed
               in case multiple languages must be supported.
             '';
@@ -346,7 +346,7 @@ in
           emoji = mkOption {
             type = types.listOf types.str;
             default = ["Noto Color Emoji"];
-            description = lib.mdDoc ''
+            description = ''
               System-wide default emoji font(s). Multiple fonts may be listed
               in case a font does not support all emoji.
 
@@ -363,7 +363,7 @@ in
           enable = mkOption {
             type = types.bool;
             default = true;
-            description = lib.mdDoc ''
+            description = ''
               Enable font hinting. Hinting aligns glyphs to pixel boundaries to
               improve rendering sharpness at low resolution. At high resolution
               (> 200 dpi) hinting will do nothing (at best); users of such
@@ -374,7 +374,7 @@ in
           autohint = mkOption {
             type = types.bool;
             default = false;
-            description = lib.mdDoc ''
+            description = ''
               Enable the autohinter in place of the default interpreter.
               The results are usually lower quality than correctly-hinted
               fonts, but better than unhinted fonts.
@@ -384,7 +384,7 @@ in
           style = mkOption {
             type = types.enum ["none" "slight" "medium" "full"];
             default = "slight";
-            description = lib.mdDoc ''
+            description = ''
               Hintstyle is the amount of font reshaping done to line up
               to the grid.
 
@@ -407,7 +407,7 @@ in
         includeUserConf = mkOption {
           type = types.bool;
           default = true;
-          description = lib.mdDoc ''
+          description = ''
             Include the user configuration from
             {file}`~/.config/fontconfig/fonts.conf` or
             {file}`~/.config/fontconfig/conf.d`.
@@ -419,7 +419,7 @@ in
           rgba = mkOption {
             default = "none";
             type = types.enum ["rgb" "bgr" "vrgb" "vbgr" "none"];
-            description = lib.mdDoc ''
+            description = ''
               Subpixel order. The overwhelming majority of displays are
               `rgb` in their normal orientation. Select
               `vrgb` for mounting such a display 90 degrees
@@ -435,7 +435,7 @@ in
           lcdfilter = mkOption {
             default = "default";
             type = types.enum ["none" "default" "light" "legacy"];
-            description = lib.mdDoc ''
+            description = ''
               FreeType LCD filter. At high resolution (> 200 DPI), LCD filtering
               has no visible effect; users of such displays may want to select
               `none`.
@@ -447,7 +447,7 @@ in
         cache32Bit = mkOption {
           default = false;
           type = types.bool;
-          description = lib.mdDoc ''
+          description = ''
             Generate system fonts cache for 32-bit applications.
           '';
         };
@@ -455,7 +455,7 @@ in
         allowBitmaps = mkOption {
           type = types.bool;
           default = true;
-          description = lib.mdDoc ''
+          description = ''
             Allow bitmap fonts. Set to `false` to ban all
             bitmap fonts.
           '';
@@ -464,7 +464,7 @@ in
         allowType1 = mkOption {
           type = types.bool;
           default = false;
-          description = lib.mdDoc ''
+          description = ''
             Allow Type-1 fonts. Default is `false` because of
             poor rendering.
           '';
@@ -473,7 +473,7 @@ in
         useEmbeddedBitmaps = mkOption {
           type = types.bool;
           default = false;
-          description = lib.mdDoc "Use embedded bitmaps in fonts like Calibri.";
+          description = "Use embedded bitmaps in fonts like Calibri.";
         };
 
       };
diff --git a/nixpkgs/nixos/modules/config/fonts/fontdir.nix b/nixpkgs/nixos/modules/config/fonts/fontdir.nix
index 3b5eaf5b2d7f..7b21fe30f607 100644
--- a/nixpkgs/nixos/modules/config/fonts/fontdir.nix
+++ b/nixpkgs/nixos/modules/config/fonts/fontdir.nix
@@ -30,7 +30,7 @@ in
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to create a directory with links to all fonts in
           {file}`/run/current-system/sw/share/X11/fonts`.
         '';
@@ -40,7 +40,7 @@ in
         type = types.bool;
         default = config.programs.xwayland.enable;
         defaultText = literalExpression "config.programs.xwayland.enable";
-        description = lib.mdDoc ''
+        description = ''
           Whether to decompress fonts in
           {file}`/run/current-system/sw/share/X11/fonts`.
         '';
diff --git a/nixpkgs/nixos/modules/config/fonts/ghostscript.nix b/nixpkgs/nixos/modules/config/fonts/ghostscript.nix
index c41fcdaaa329..a5508b948990 100644
--- a/nixpkgs/nixos/modules/config/fonts/ghostscript.nix
+++ b/nixpkgs/nixos/modules/config/fonts/ghostscript.nix
@@ -7,7 +7,7 @@ with lib;
     fonts.enableGhostscriptFonts = mkOption {
       type = types.bool;
       default = false;
-      description = lib.mdDoc ''
+      description = ''
         Whether to add the fonts provided by Ghostscript (such as
         various URW fonts and the “Base-14” Postscript fonts) to the
         list of system fonts, making them available to X11
diff --git a/nixpkgs/nixos/modules/config/fonts/packages.nix b/nixpkgs/nixos/modules/config/fonts/packages.nix
index 37b705ecb345..36eaa5791d67 100644
--- a/nixpkgs/nixos/modules/config/fonts/packages.nix
+++ b/nixpkgs/nixos/modules/config/fonts/packages.nix
@@ -16,13 +16,13 @@ in
         type = with lib.types; listOf path;
         default = [];
         example = lib.literalExpression "[ pkgs.dejavu_fonts ]";
-        description = lib.mdDoc "List of primary font packages.";
+        description = "List of primary font packages.";
       };
 
       enableDefaultPackages = lib.mkOption {
         type = lib.types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Enable a basic set of fonts providing several styles
           and families and reasonable coverage of Unicode.
         '';
diff --git a/nixpkgs/nixos/modules/config/gtk/gtk-icon-cache.nix b/nixpkgs/nixos/modules/config/gtk/gtk-icon-cache.nix
index 62f0cc3f090f..0898260d4a59 100644
--- a/nixpkgs/nixos/modules/config/gtk/gtk-icon-cache.nix
+++ b/nixpkgs/nixos/modules/config/gtk/gtk-icon-cache.nix
@@ -7,7 +7,7 @@ with lib;
       type = types.bool;
       default = config.services.xserver.enable;
       defaultText = literalExpression "config.services.xserver.enable";
-      description = lib.mdDoc ''
+      description = ''
         Whether to build icon theme caches for GTK applications.
       '';
     };
diff --git a/nixpkgs/nixos/modules/config/i18n.nix b/nixpkgs/nixos/modules/config/i18n.nix
index b19d38091e75..9d2d3c23beb3 100644
--- a/nixpkgs/nixos/modules/config/i18n.nix
+++ b/nixpkgs/nixos/modules/config/i18n.nix
@@ -21,7 +21,7 @@ with lib;
           }
         '';
         example = literalExpression "pkgs.glibcLocales";
-        description = lib.mdDoc ''
+        description = ''
           Customized pkg.glibcLocales package.
 
           Changing this option can disable handling of i18n.defaultLocale
@@ -33,7 +33,7 @@ with lib;
         type = types.str;
         default = "en_US.UTF-8";
         example = "nl_NL.UTF-8";
-        description = lib.mdDoc ''
+        description = ''
           The default locale.  It determines the language for program
           messages, the format for dates and times, sort order, and so on.
           It also determines the character set, such as UTF-8.
@@ -44,7 +44,7 @@ with lib;
         type = types.attrsOf types.str;
         default = {};
         example = { LC_MESSAGES = "en_US.UTF-8"; LC_TIME = "de_DE.UTF-8"; };
-        description = lib.mdDoc ''
+        description = ''
           A set of additional system-wide locale settings other than
           `LANG` which can be configured with
           {option}`i18n.defaultLocale`.
@@ -72,7 +72,7 @@ with lib;
             ))
         '';
         example = ["en_US.UTF-8/UTF-8" "nl_NL.UTF-8/UTF-8" "nl_NL/ISO-8859-1"];
-        description = lib.mdDoc ''
+        description = ''
           List of locales that the system should support.  The value
           `"all"` means that all locales supported by
           Glibc will be installed.  A full list of supported locales
diff --git a/nixpkgs/nixos/modules/config/iproute2.nix b/nixpkgs/nixos/modules/config/iproute2.nix
index 0cde57b759be..90f53c0eab69 100644
--- a/nixpkgs/nixos/modules/config/iproute2.nix
+++ b/nixpkgs/nixos/modules/config/iproute2.nix
@@ -7,11 +7,11 @@ let
 in
 {
   options.networking.iproute2 = {
-    enable = mkEnableOption (lib.mdDoc "copying IP route configuration files");
+    enable = mkEnableOption "copying IP route configuration files";
     rttablesExtraConfig = mkOption {
       type = types.lines;
       default = "";
-      description = lib.mdDoc ''
+      description = ''
         Verbatim lines to add to /etc/iproute2/rt_tables
       '';
     };
diff --git a/nixpkgs/nixos/modules/config/ldap.nix b/nixpkgs/nixos/modules/config/ldap.nix
index e374e4a7a27e..7f79db8d0a60 100644
--- a/nixpkgs/nixos/modules/config/ldap.nix
+++ b/nixpkgs/nixos/modules/config/ldap.nix
@@ -59,36 +59,36 @@ in
 
     users.ldap = {
 
-      enable = mkEnableOption (lib.mdDoc "authentication against an LDAP server");
+      enable = mkEnableOption "authentication against an LDAP server";
 
       loginPam = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc "Whether to include authentication against LDAP in login PAM.";
+        description = "Whether to include authentication against LDAP in login PAM.";
       };
 
       nsswitch = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc "Whether to include lookup against LDAP in NSS.";
+        description = "Whether to include lookup against LDAP in NSS.";
       };
 
       server = mkOption {
         type = types.str;
         example = "ldap://ldap.example.org/";
-        description = lib.mdDoc "The URL of the LDAP server.";
+        description = "The URL of the LDAP server.";
       };
 
       base = mkOption {
         type = types.str;
         example = "dc=example,dc=org";
-        description = lib.mdDoc "The distinguished name of the search base.";
+        description = "The distinguished name of the search base.";
       };
 
       useTLS = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           If enabled, use TLS (encryption) over an LDAP (port 389)
           connection.  The alternative is to specify an LDAPS server (port
           636) in {option}`users.ldap.server` or to forego
@@ -99,7 +99,7 @@ in
       timeLimit = mkOption {
         default = 0;
         type = types.int;
-        description = lib.mdDoc ''
+        description = ''
           Specifies the time limit (in seconds) to use when performing
           searches. A value of zero (0), which is the default, is to
           wait indefinitely for searches to be completed.
@@ -110,7 +110,7 @@ in
         enable = mkOption {
           type = types.bool;
           default = false;
-          description = lib.mdDoc ''
+          description = ''
             Whether to let the nslcd daemon (nss-pam-ldapd) handle the
             LDAP lookups for NSS and PAM. This can improve performance,
             and if you need to bind to the LDAP server with a password,
@@ -125,17 +125,17 @@ in
         extraConfig = mkOption {
           default =  "";
           type = types.lines;
-          description = lib.mdDoc ''
+          description =  ''
             Extra configuration options that will be added verbatim at
             the end of the nslcd configuration file (`nslcd.conf(5)`).
-          '' ;
+          '';
         } ;
 
         rootpwmoddn = mkOption {
           default = "";
           example = "cn=admin,dc=example,dc=com";
           type = types.str;
-          description = lib.mdDoc ''
+          description = ''
             The distinguished name to use to bind to the LDAP server
             when the root user tries to modify a user's password.
           '';
@@ -145,7 +145,7 @@ in
           default = "";
           example = "/run/keys/nslcd.rootpwmodpw";
           type = types.str;
-          description = lib.mdDoc ''
+          description = ''
             The path to a file containing the credentials with which to bind to
             the LDAP server if the root user tries to change a user's password.
           '';
@@ -157,7 +157,7 @@ in
           default = "";
           example = "cn=admin,dc=example,dc=com";
           type = types.str;
-          description = lib.mdDoc ''
+          description = ''
             The distinguished name to bind to the LDAP server with. If this
             is not specified, an anonymous bind will be done.
           '';
@@ -166,7 +166,7 @@ in
         passwordFile = mkOption {
           default = "/etc/ldap/bind.password";
           type = types.str;
-          description = lib.mdDoc ''
+          description = ''
             The path to a file containing the credentials to use when binding
             to the LDAP server (if not binding anonymously).
           '';
@@ -175,7 +175,7 @@ in
         timeLimit = mkOption {
           default = 30;
           type = types.int;
-          description = lib.mdDoc ''
+          description = ''
             Specifies the time limit (in seconds) to use when connecting
             to the directory server. This is distinct from the time limit
             specified in {option}`users.ldap.timeLimit` and affects
@@ -186,7 +186,7 @@ in
         policy = mkOption {
           default = "hard_open";
           type = types.enum [ "hard_open" "hard_init" "soft" ];
-          description = lib.mdDoc ''
+          description = ''
             Specifies the policy to use for reconnecting to an unavailable
             LDAP server. The default is `hard_open`, which
             reconnects if opening the connection to the directory server
@@ -205,13 +205,13 @@ in
       extraConfig = mkOption {
         default = "";
         type = types.lines;
-        description = lib.mdDoc ''
+        description =  ''
           Extra configuration options that will be added verbatim at
           the end of the ldap configuration file (`ldap.conf(5)`).
           If {option}`users.ldap.daemon` is enabled, this
           configuration will not be used. In that case, use
           {option}`users.ldap.daemon.extraConfig` instead.
-        '' ;
+        '';
       };
 
     };
diff --git a/nixpkgs/nixos/modules/config/ldso.nix b/nixpkgs/nixos/modules/config/ldso.nix
index bd6f0dc5a83b..60156dd04098 100644
--- a/nixpkgs/nixos/modules/config/ldso.nix
+++ b/nixpkgs/nixos/modules/config/ldso.nix
@@ -1,7 +1,7 @@
 { config, lib, pkgs, ... }:
 
 let
-  inherit (lib) last splitString mkOption types mdDoc optionals;
+  inherit (lib) last splitString mkOption types optionals;
 
   libDir = pkgs.stdenv.hostPlatform.libDir;
   ldsoBasename = builtins.unsafeDiscardStringContext (last (splitString "/" pkgs.stdenv.cc.bintools.dynamicLinker));
@@ -14,7 +14,7 @@ in {
     environment.ldso = mkOption {
       type = types.nullOr types.path;
       default = null;
-      description = mdDoc ''
+      description = ''
         The executable to link into the normal FHS location of the ELF loader.
       '';
     };
@@ -22,7 +22,7 @@ in {
     environment.ldso32 = mkOption {
       type = types.nullOr types.path;
       default = null;
-      description = mdDoc ''
+      description = ''
         The executable to link into the normal FHS location of the 32-bit ELF loader.
 
         This currently only works on x86_64 architectures.
diff --git a/nixpkgs/nixos/modules/config/locale.nix b/nixpkgs/nixos/modules/config/locale.nix
index 7716e121c712..486246081ec6 100644
--- a/nixpkgs/nixos/modules/config/locale.nix
+++ b/nixpkgs/nixos/modules/config/locale.nix
@@ -22,7 +22,7 @@ in
         default = null;
         type = timezone;
         example = "America/New_York";
-        description = lib.mdDoc ''
+        description = ''
           The time zone used when displaying times and dates. See <https://en.wikipedia.org/wiki/List_of_tz_database_time_zones>
           for a comprehensive list of possible values for this setting.
 
@@ -34,7 +34,7 @@ in
       hardwareClockInLocalTime = mkOption {
         default = false;
         type = types.bool;
-        description = lib.mdDoc "If set, keep the hardware clock in local time instead of UTC.";
+        description = "If set, keep the hardware clock in local time instead of UTC.";
       };
 
     };
@@ -43,7 +43,7 @@ in
 
       latitude = mkOption {
         type = types.float;
-        description = lib.mdDoc ''
+        description = ''
           Your current latitude, between
           `-90.0` and `90.0`. Must be provided
           along with longitude.
@@ -52,7 +52,7 @@ in
 
       longitude = mkOption {
         type = types.float;
-        description = lib.mdDoc ''
+        description = ''
           Your current longitude, between
           between `-180.0` and `180.0`. Must be
           provided along with latitude.
@@ -62,7 +62,7 @@ in
       provider = mkOption {
         type = types.enum [ "manual" "geoclue2" ];
         default = "manual";
-        description = lib.mdDoc ''
+        description = ''
           The location provider to use for determining your location. If set to
           `manual` you must also provide latitude/longitude.
         '';
diff --git a/nixpkgs/nixos/modules/config/malloc.nix b/nixpkgs/nixos/modules/config/malloc.nix
index 043f78c8214e..e414970b0be5 100644
--- a/nixpkgs/nixos/modules/config/malloc.nix
+++ b/nixpkgs/nixos/modules/config/malloc.nix
@@ -9,8 +9,23 @@ let
     graphene-hardened = {
       libPath = "${pkgs.graphene-hardened-malloc}/lib/libhardened_malloc.so";
       description = ''
-        An allocator designed to mitigate memory corruption attacks, such as
-        those caused by use-after-free bugs.
+        Hardened memory allocator coming from GrapheneOS project.
+        The default configuration template has all normal optional security
+        features enabled and is quite aggressive in terms of sacrificing
+        performance and memory usage for security.
+      '';
+    };
+
+    graphene-hardened-light = {
+      libPath = "${pkgs.graphene-hardened-malloc}/lib/libhardened_malloc-light.so";
+      description = ''
+        Hardened memory allocator coming from GrapheneOS project.
+        The light configuration template disables the slab quarantines,
+        write after free check, slot randomization and raises the guard
+        slab interval from 1 to 8 but leaves zero-on-free and slab canaries enabled.
+        The light configuration has solid performance and memory usage while still
+        being far more secure than mainstream allocators with much better security
+        properties.
       '';
     };
 
@@ -77,7 +92,7 @@ in
     environment.memoryAllocator.provider = mkOption {
       type = types.enum ([ "libc" ] ++ attrNames providers);
       default = "libc";
-      description = lib.mdDoc ''
+      description = ''
         The system-wide memory allocator.
 
         Briefly, the system-wide memory allocator providers are:
diff --git a/nixpkgs/nixos/modules/config/mysql.nix b/nixpkgs/nixos/modules/config/mysql.nix
index 4f72d22c4f0e..e1f9e223cc59 100644
--- a/nixpkgs/nixos/modules/config/mysql.nix
+++ b/nixpkgs/nixos/modules/config/mysql.nix
@@ -10,41 +10,41 @@ in
 
   options = {
     users.mysql = {
-      enable = mkEnableOption (lib.mdDoc "Authentication against a MySQL/MariaDB database");
+      enable = mkEnableOption "authentication against a MySQL/MariaDB database";
       host = mkOption {
         type = types.str;
         example = "localhost";
-        description = lib.mdDoc "The hostname of the MySQL/MariaDB server";
+        description = "The hostname of the MySQL/MariaDB server";
       };
       database = mkOption {
         type = types.str;
         example = "auth";
-        description = lib.mdDoc "The name of the database containing the users";
+        description = "The name of the database containing the users";
       };
       user = mkOption {
         type = types.str;
         example = "nss-user";
-        description = lib.mdDoc "The username to use when connecting to the database";
+        description = "The username to use when connecting to the database";
       };
       passwordFile = mkOption {
         type = types.path;
         example = "/run/secrets/mysql-auth-db-passwd";
-        description = lib.mdDoc "The path to the file containing the password for the user";
+        description = "The path to the file containing the password for the user";
       };
       pam = mkOption {
-        description = lib.mdDoc "Settings for `pam_mysql`";
+        description = "Settings for `pam_mysql`";
         type = types.submodule {
           options = {
             table = mkOption {
               type = types.str;
               example = "users";
-              description = lib.mdDoc "The name of table that maps unique login names to the passwords.";
+              description = "The name of table that maps unique login names to the passwords.";
             };
             updateTable = mkOption {
               type = types.nullOr types.str;
               default = null;
               example = "users_updates";
-              description = lib.mdDoc ''
+              description = ''
                 The name of the table used for password alteration. If not defined, the value
                 of the `table` option will be used instead.
               '';
@@ -52,18 +52,18 @@ in
             userColumn = mkOption {
               type = types.str;
               example = "username";
-              description = lib.mdDoc "The name of the column that contains a unix login name.";
+              description = "The name of the column that contains a unix login name.";
             };
             passwordColumn = mkOption {
               type = types.str;
               example = "password";
-              description = lib.mdDoc "The name of the column that contains a (encrypted) password string.";
+              description = "The name of the column that contains a (encrypted) password string.";
             };
             statusColumn = mkOption {
               type = types.nullOr types.str;
               default = null;
               example = "status";
-              description = lib.mdDoc ''
+              description = ''
                 The name of the column or an SQL expression that indicates the status of
                 the user. The status is expressed by the combination of two bitfields
                 shown below:
@@ -93,7 +93,7 @@ in
                 "8" "sha512"
                 "9" "sha256"
               ];
-              description = lib.mdDoc ''
+              description = ''
                 The method to encrypt the user's password:
 
                 - `0` (or `"plain"`):
@@ -125,18 +125,18 @@ in
               type = types.nullOr (types.enum [ "md5" "sha256" "sha512" "blowfish" ]);
               default = null;
               example = "blowfish";
-              description = lib.mdDoc "The default encryption method to use for `passwordCrypt = 1`.";
+              description = "The default encryption method to use for `passwordCrypt = 1`.";
             };
             where = mkOption {
               type = types.nullOr types.str;
               default = null;
               example = "host.name='web' AND user.active=1";
-              description = lib.mdDoc "Additional criteria for the query.";
+              description = "Additional criteria for the query.";
             };
             verbose = mkOption {
               type = types.bool;
               default = false;
-              description = lib.mdDoc ''
+              description = ''
                 If enabled, produces logs with detailed messages that describes what
                 `pam_mysql` is doing. May be useful for debugging.
               '';
@@ -144,7 +144,7 @@ in
             disconnectEveryOperation = mkOption {
               type = types.bool;
               default = false;
-              description = lib.mdDoc ''
+              description = ''
                 By default, `pam_mysql` keeps the connection to the MySQL
                 database until the session is closed. If this option is set to true it
                 disconnects every time the PAM operation has finished. This option may
@@ -155,17 +155,17 @@ in
               enable = mkOption {
                 type = types.bool;
                 default = false;
-                description = lib.mdDoc "Enables logging of authentication attempts in the MySQL database.";
+                description = "Enables logging of authentication attempts in the MySQL database.";
               };
               table = mkOption {
                 type = types.str;
                 example = "logs";
-                description = lib.mdDoc "The name of the table to which logs are written.";
+                description = "The name of the table to which logs are written.";
               };
               msgColumn = mkOption {
                 type = types.str;
                 example = "msg";
-                description = lib.mdDoc ''
+                description = ''
                   The name of the column in the log table to which the description
                   of the performed operation is stored.
                 '';
@@ -173,7 +173,7 @@ in
               userColumn = mkOption {
                 type = types.str;
                 example = "user";
-                description = lib.mdDoc ''
+                description = ''
                   The name of the column in the log table to which the name of the
                   user being authenticated is stored.
                 '';
@@ -181,7 +181,7 @@ in
               pidColumn = mkOption {
                 type = types.str;
                 example = "pid";
-                description = lib.mdDoc ''
+                description = ''
                   The name of the column in the log table to which the pid of the
                   process utilising the `pam_mysql` authentication
                   service is stored.
@@ -190,7 +190,7 @@ in
               hostColumn = mkOption {
                 type = types.str;
                 example = "host";
-                description = lib.mdDoc ''
+                description = ''
                   The name of the column in the log table to which the name of the user
                   being authenticated is stored.
                 '';
@@ -198,7 +198,7 @@ in
               rHostColumn = mkOption {
                 type = types.str;
                 example = "rhost";
-                description = lib.mdDoc ''
+                description = ''
                   The name of the column in the log table to which the name of the remote
                   host that initiates the session is stored. The value is supposed to be
                   set by the PAM-aware application with `pam_set_item(PAM_RHOST)`.
@@ -207,7 +207,7 @@ in
               timeColumn = mkOption {
                 type = types.str;
                 example = "timestamp";
-                description = lib.mdDoc ''
+                description = ''
                   The name of the column in the log table to which the timestamp of the
                   log entry is stored.
                 '';
@@ -217,7 +217,7 @@ in
         };
       };
       nss = mkOption {
-        description = lib.mdDoc ''
+        description = ''
           Settings for `libnss-mysql`.
 
           All examples are from the [minimal example](https://github.com/saknopper/libnss-mysql/tree/master/sample/minimal)
@@ -234,7 +234,7 @@ in
                 WHERE username='%1$s' \
                 LIMIT 1
               '';
-              description = lib.mdDoc ''
+              description = ''
                 SQL query for the [getpwnam](https://man7.org/linux/man-pages/man3/getpwnam.3.html)
                 syscall.
               '';
@@ -248,7 +248,7 @@ in
                 WHERE uid='%1$u' \
                 LIMIT 1
               '';
-              description = lib.mdDoc ''
+              description = ''
                 SQL query for the [getpwuid](https://man7.org/linux/man-pages/man3/getpwuid.3.html)
                 syscall.
               '';
@@ -262,7 +262,7 @@ in
                 WHERE username='%1$s' \
                 LIMIT 1
               '';
-              description = lib.mdDoc ''
+              description = ''
                 SQL query for the [getspnam](https://man7.org/linux/man-pages/man3/getspnam.3.html)
                 syscall.
               '';
@@ -273,7 +273,7 @@ in
               example = literalExpression ''
                 SELECT username,'x',uid,'5000','MySQL User', CONCAT('/home/',username),'/run/sw/current-system/bin/bash' FROM users
               '';
-              description = lib.mdDoc ''
+              description = ''
                 SQL query for the [getpwent](https://man7.org/linux/man-pages/man3/getpwent.3.html)
                 syscall.
               '';
@@ -284,7 +284,7 @@ in
               example = literalExpression ''
                 SELECT username,password,'1','0','99999','0','0','-1','0' FROM users
               '';
-              description = lib.mdDoc ''
+              description = ''
                 SQL query for the [getspent](https://man7.org/linux/man-pages/man3/getspent.3.html)
                 syscall.
               '';
@@ -295,7 +295,7 @@ in
               example = literalExpression ''
                 SELECT name,password,gid FROM groups WHERE name='%1$s' LIMIT 1
               '';
-              description = lib.mdDoc ''
+              description = ''
                 SQL query for the [getgrnam](https://man7.org/linux/man-pages/man3/getgrnam.3.html)
                 syscall.
               '';
@@ -306,7 +306,7 @@ in
               example = literalExpression ''
                 SELECT name,password,gid FROM groups WHERE gid='%1$u' LIMIT 1
               '';
-              description = lib.mdDoc ''
+              description = ''
                 SQL query for the [getgrgid](https://man7.org/linux/man-pages/man3/getgrgid.3.html)
                 syscall.
               '';
@@ -317,7 +317,7 @@ in
               example = literalExpression ''
                 SELECT name,password,gid FROM groups
               '';
-              description = lib.mdDoc ''
+              description = ''
                 SQL query for the [getgrent](https://man7.org/linux/man-pages/man3/getgrent.3.html)
                 syscall.
               '';
@@ -328,7 +328,7 @@ in
               example = literalExpression ''
                 SELECT username FROM grouplist WHERE gid='%1$u'
               '';
-              description = lib.mdDoc ''
+              description = ''
                 SQL query for the [memsbygid](https://man7.org/linux/man-pages/man3/memsbygid.3.html)
                 syscall.
               '';
@@ -339,7 +339,7 @@ in
               example = literalExpression ''
                 SELECT gid FROM grouplist WHERE username='%1$s'
               '';
-              description = lib.mdDoc ''
+              description = ''
                 SQL query for the [gidsbymem](https://man7.org/linux/man-pages/man3/gidsbymem.3.html)
                 syscall.
               '';
diff --git a/nixpkgs/nixos/modules/config/networking.nix b/nixpkgs/nixos/modules/config/networking.nix
index fc910fee94bf..96cd03ea8b15 100644
--- a/nixpkgs/nixos/modules/config/networking.nix
+++ b/nixpkgs/nixos/modules/config/networking.nix
@@ -28,7 +28,7 @@ in
           "192.168.0.2" = [ "fileserver.local" "nameserver.local" ];
         };
       '';
-      description = lib.mdDoc ''
+      description = ''
         Locally defined maps of hostnames to IP addresses.
       '';
     };
@@ -37,7 +37,7 @@ in
       type = types.listOf types.path;
       defaultText = literalMD "Hosts from {option}`networking.hosts` and {option}`networking.extraHosts`";
       example = literalExpression ''[ "''${pkgs.my-blocklist-package}/share/my-blocklist/hosts" ]'';
-      description = lib.mdDoc ''
+      description = ''
         Files that should be concatenated together to form {file}`/etc/hosts`.
       '';
     };
@@ -46,7 +46,7 @@ in
       type = types.lines;
       default = "";
       example = "192.168.0.1 lanlocalhost";
-      description = lib.mdDoc ''
+      description = ''
         Additional verbatim entries to be appended to {file}`/etc/hosts`.
         For adding hosts from derivation results, use {option}`networking.hostFiles` instead.
       '';
@@ -60,7 +60,7 @@ in
         "3.nixos.pool.ntp.org"
       ];
       type = types.listOf types.str;
-      description = lib.mdDoc ''
+      description = ''
         The set of NTP servers from which to synchronise.
       '';
     };
@@ -70,7 +70,7 @@ in
       default = lib.mkOption {
         type = types.nullOr types.str;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           This option specifies the default value for httpProxy, httpsProxy, ftpProxy and rsyncProxy.
         '';
         example = "http://127.0.0.1:3128";
@@ -80,7 +80,7 @@ in
         type = types.nullOr types.str;
         default = cfg.proxy.default;
         defaultText = literalExpression "config.${opt.proxy.default}";
-        description = lib.mdDoc ''
+        description = ''
           This option specifies the http_proxy environment variable.
         '';
         example = "http://127.0.0.1:3128";
@@ -90,7 +90,7 @@ in
         type = types.nullOr types.str;
         default = cfg.proxy.default;
         defaultText = literalExpression "config.${opt.proxy.default}";
-        description = lib.mdDoc ''
+        description = ''
           This option specifies the https_proxy environment variable.
         '';
         example = "http://127.0.0.1:3128";
@@ -100,7 +100,7 @@ in
         type = types.nullOr types.str;
         default = cfg.proxy.default;
         defaultText = literalExpression "config.${opt.proxy.default}";
-        description = lib.mdDoc ''
+        description = ''
           This option specifies the ftp_proxy environment variable.
         '';
         example = "http://127.0.0.1:3128";
@@ -110,7 +110,7 @@ in
         type = types.nullOr types.str;
         default = cfg.proxy.default;
         defaultText = literalExpression "config.${opt.proxy.default}";
-        description = lib.mdDoc ''
+        description = ''
           This option specifies the rsync_proxy environment variable.
         '';
         example = "http://127.0.0.1:3128";
@@ -120,7 +120,7 @@ in
         type = types.nullOr types.str;
         default = cfg.proxy.default;
         defaultText = literalExpression "config.${opt.proxy.default}";
-        description = lib.mdDoc ''
+        description = ''
           This option specifies the all_proxy environment variable.
         '';
         example = "http://127.0.0.1:3128";
@@ -129,7 +129,7 @@ in
       noProxy = lib.mkOption {
         type = types.nullOr types.str;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           This option specifies the no_proxy environment variable.
           If a default proxy is used and noProxy is null,
           then noProxy will be set to 127.0.0.1,localhost.
@@ -141,7 +141,7 @@ in
         type = types.attrs;
         internal = true;
         default = {};
-        description = lib.mdDoc ''
+        description = ''
           Environment variables used for the network proxy.
         '';
       };
diff --git a/nixpkgs/nixos/modules/config/nix-channel.nix b/nixpkgs/nixos/modules/config/nix-channel.nix
index dd97cb730ae4..6498ce6c469c 100644
--- a/nixpkgs/nixos/modules/config/nix-channel.nix
+++ b/nixpkgs/nixos/modules/config/nix-channel.nix
@@ -23,7 +23,7 @@ in
     nix = {
       channel = {
         enable = mkOption {
-          description = lib.mdDoc ''
+          description = ''
             Whether the `nix-channel` command and state files are made available on the machine.
 
             The following files are initialized when enabled:
@@ -57,7 +57,7 @@ in
           ]
           else [];
         '';
-        description = lib.mdDoc ''
+        description = ''
           The default Nix expression search path, used by the Nix
           evaluator to look up paths enclosed in angle brackets
           (e.g. `<nixpkgs>`).
@@ -70,7 +70,7 @@ in
         internal = true;
         type = types.str;
         default = "https://nixos.org/channels/nixos-unstable";
-        description = lib.mdDoc "Default NixOS channel to which the root user is subscribed.";
+        description = "Default NixOS channel to which the root user is subscribed.";
       };
     };
   };
diff --git a/nixpkgs/nixos/modules/config/nix-flakes.nix b/nixpkgs/nixos/modules/config/nix-flakes.nix
index 242d8d3b82b7..d6c31735a6ca 100644
--- a/nixpkgs/nixos/modules/config/nix-flakes.nix
+++ b/nixpkgs/nixos/modules/config/nix-flakes.nix
@@ -40,25 +40,25 @@ in
               from = mkOption {
                 type = referenceAttrs;
                 example = { type = "indirect"; id = "nixpkgs"; };
-                description = lib.mdDoc "The flake reference to be rewritten.";
+                description = "The flake reference to be rewritten.";
               };
               to = mkOption {
                 type = referenceAttrs;
                 example = { type = "github"; owner = "my-org"; repo = "my-nixpkgs"; };
-                description = lib.mdDoc "The flake reference {option}`from` is rewritten to.";
+                description = "The flake reference {option}`from` is rewritten to.";
               };
               flake = mkOption {
                 type = types.nullOr types.attrs;
                 default = null;
                 example = literalExpression "nixpkgs";
-                description = lib.mdDoc ''
+                description = ''
                   The flake input {option}`from` is rewritten to.
                 '';
               };
               exact = mkOption {
                 type = types.bool;
                 default = true;
-                description = lib.mdDoc ''
+                description = ''
                   Whether the {option}`from` reference needs to match exactly. If set,
                   a {option}`from` reference like `nixpkgs` does not
                   match with a reference like `nixpkgs/nixos-20.03`.
@@ -79,7 +79,7 @@ in
           }
         ));
         default = { };
-        description = lib.mdDoc ''
+        description = ''
           A system-wide flake registry.
         '';
       };
diff --git a/nixpkgs/nixos/modules/config/nix-remote-build.nix b/nixpkgs/nixos/modules/config/nix-remote-build.nix
index 98c8fc06d2ee..e8aa438a262d 100644
--- a/nixpkgs/nixos/modules/config/nix-remote-build.nix
+++ b/nixpkgs/nixos/modules/config/nix-remote-build.nix
@@ -58,7 +58,7 @@ in
             hostName = mkOption {
               type = types.str;
               example = "nixbuilder.example.org";
-              description = lib.mdDoc ''
+              description = ''
                 The hostname of the build machine.
               '';
             };
@@ -66,7 +66,7 @@ in
               type = types.enum [ null "ssh" "ssh-ng" ];
               default = "ssh";
               example = "ssh-ng";
-              description = lib.mdDoc ''
+              description = ''
                 The protocol used for communicating with the build machine.
                 Use `ssh-ng` if your remote builder and your
                 local Nix version support that improved protocol.
@@ -79,7 +79,7 @@ in
               type = types.nullOr types.str;
               default = null;
               example = "x86_64-linux";
-              description = lib.mdDoc ''
+              description = ''
                 The system type the build machine can execute derivations on.
                 Either this attribute or {var}`systems` must be
                 present, where {var}`system` takes precedence if
@@ -90,7 +90,7 @@ in
               type = types.listOf types.str;
               default = [ ];
               example = [ "x86_64-linux" "aarch64-linux" ];
-              description = lib.mdDoc ''
+              description = ''
                 The system types the build machine can execute derivations on.
                 Either this attribute or {var}`system` must be
                 present, where {var}`system` takes precedence if
@@ -101,7 +101,7 @@ in
               type = types.nullOr types.str;
               default = null;
               example = "builder";
-              description = lib.mdDoc ''
+              description = ''
                 The username to log in as on the remote host. This user must be
                 able to log in and run nix commands non-interactively. It must
                 also be privileged to build derivations, so must be included in
@@ -112,7 +112,7 @@ in
               type = types.nullOr types.str;
               default = null;
               example = "/root/.ssh/id_buildhost_builduser";
-              description = lib.mdDoc ''
+              description = ''
                 The path to the SSH private key with which to authenticate on
                 the build machine. The private key must not have a passphrase.
                 If null, the building user (root on NixOS machines) must have an
@@ -125,7 +125,7 @@ in
             maxJobs = mkOption {
               type = types.int;
               default = 1;
-              description = lib.mdDoc ''
+              description = ''
                 The number of concurrent jobs the build machine supports. The
                 build machine will enforce its own limits, but this allows hydra
                 to schedule better since there is no work-stealing between build
@@ -135,7 +135,7 @@ in
             speedFactor = mkOption {
               type = types.int;
               default = 1;
-              description = lib.mdDoc ''
+              description = ''
                 The relative speed of this builder. This is an arbitrary integer
                 that indicates the speed of this builder, relative to other
                 builders. Higher is faster.
@@ -145,7 +145,7 @@ in
               type = types.listOf types.str;
               default = [ ];
               example = [ "big-parallel" ];
-              description = lib.mdDoc ''
+              description = ''
                 A list of features mandatory for this builder. The builder will
                 be ignored for derivations that don't require all features in
                 this list. All mandatory features are automatically included in
@@ -156,7 +156,7 @@ in
               type = types.listOf types.str;
               default = [ ];
               example = [ "kvm" "big-parallel" ];
-              description = lib.mdDoc ''
+              description = ''
                 A list of features supported by this builder. The builder will
                 be ignored for derivations that require features not in this
                 list.
@@ -165,7 +165,7 @@ in
             publicHostKey = mkOption {
               type = types.nullOr types.str;
               default = null;
-              description = lib.mdDoc ''
+              description = ''
                 The (base64-encoded) public host key of this builder. The field
                 is calculated via {command}`base64 -w0 /etc/ssh/ssh_host_type_key.pub`.
                 If null, SSH will use its regular known-hosts file when connecting.
@@ -174,7 +174,7 @@ in
           };
         });
         default = [ ];
-        description = lib.mdDoc ''
+        description = ''
           This option lists the machines to be used if distributed builds are
           enabled (see {option}`nix.distributedBuilds`).
           Nix will perform derivations on those machines via SSH by copying the
@@ -186,7 +186,7 @@ in
       distributedBuilds = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to distribute builds to the machines listed in
           {option}`nix.buildMachines`.
         '';
diff --git a/nixpkgs/nixos/modules/config/nix.nix b/nixpkgs/nixos/modules/config/nix.nix
index a40953a3a3c9..b5fe0a3bd1ce 100644
--- a/nixpkgs/nixos/modules/config/nix.nix
+++ b/nixpkgs/nixos/modules/config/nix.nix
@@ -154,7 +154,7 @@ in
       checkConfig = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        description = ''
           If enabled, checks that Nix can parse the generated nix.conf.
         '';
       };
@@ -162,7 +162,7 @@ in
       checkAllErrors = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        description = ''
           If enabled, checks the nix.conf parsing for any kind of error. When disabled, checks only for unknown settings.
         '';
       };
@@ -174,7 +174,7 @@ in
           keep-outputs = true
           keep-derivations = true
         '';
-        description = lib.mdDoc "Additional text appended to {file}`nix.conf`.";
+        description = "Additional text appended to {file}`nix.conf`.";
       };
 
       settings = mkOption {
@@ -186,7 +186,7 @@ in
               type = types.either types.int (types.enum [ "auto" ]);
               default = "auto";
               example = 64;
-              description = lib.mdDoc ''
+              description = ''
                 This option defines the maximum number of jobs that Nix will try to
                 build in parallel. The default is auto, which means it will use all
                 available logical cores. It is recommend to set it to the total
@@ -199,7 +199,7 @@ in
               type = types.bool;
               default = false;
               example = true;
-              description = lib.mdDoc ''
+              description = ''
                 If set to true, Nix automatically detects files in the store that have
                 identical contents, and replaces them with hard links to a single copy.
                 This saves disk space. If set to false (the default), you can still run
@@ -211,7 +211,7 @@ in
               type = types.int;
               default = 0;
               example = 64;
-              description = lib.mdDoc ''
+              description = ''
                 This option defines the maximum number of concurrent tasks during
                 one build. It affects, e.g., -j option for make.
                 The special value 0 means that the builder should use all
@@ -224,7 +224,7 @@ in
             sandbox = mkOption {
               type = types.either types.bool (types.enum [ "relaxed" ]);
               default = true;
-              description = lib.mdDoc ''
+              description = ''
                 If set, Nix will perform builds in a sandboxed environment that it
                 will set up automatically for each build. This prevents impurities
                 in builds by disallowing access to dependencies outside of the Nix
@@ -247,7 +247,7 @@ in
               type = types.listOf types.str;
               default = [ ];
               example = [ "/dev" "/proc" ];
-              description = lib.mdDoc ''
+              description = ''
                 Directories from the host filesystem to be included
                 in the sandbox.
               '';
@@ -255,7 +255,7 @@ in
 
             substituters = mkOption {
               type = types.listOf types.str;
-              description = lib.mdDoc ''
+              description = ''
                 List of binary cache URLs used to obtain pre-built binaries
                 of Nix packages.
 
@@ -267,7 +267,7 @@ in
               type = types.listOf types.str;
               default = [ ];
               example = [ "https://hydra.nixos.org/" ];
-              description = lib.mdDoc ''
+              description = ''
                 List of binary cache URLs that non-root users can use (in
                 addition to those specified using
                 {option}`nix.settings.substituters`) by passing
@@ -278,7 +278,7 @@ in
             require-sigs = mkOption {
               type = types.bool;
               default = true;
-              description = lib.mdDoc ''
+              description = ''
                 If enabled (the default), Nix will only download binaries from binary caches if
                 they are cryptographically signed with any of the keys listed in
                 {option}`nix.settings.trusted-public-keys`. If disabled, signatures are neither
@@ -290,7 +290,7 @@ in
             trusted-public-keys = mkOption {
               type = types.listOf types.str;
               example = [ "hydra.nixos.org-1:CNHJZBh9K4tP3EKF6FkkgeVYsS3ohTl+oS0Qa8bezVs=" ];
-              description = lib.mdDoc ''
+              description = ''
                 List of public keys used to sign binary caches. If
                 {option}`nix.settings.trusted-public-keys` is enabled,
                 then Nix will use a binary from a binary cache if and only
@@ -304,7 +304,7 @@ in
               type = types.listOf types.str;
               default = [ "root" ];
               example = [ "root" "alice" "@wheel" ];
-              description = lib.mdDoc ''
+              description = ''
                 A list of names of users that have additional rights when
                 connecting to the Nix daemon, such as the ability to specify
                 additional binary caches, or to import unsigned NARs. You
@@ -318,7 +318,7 @@ in
             system-features = mkOption {
               type = types.listOf types.str;
               example = [ "kvm" "big-parallel" "gccarch-skylake" ];
-              description = lib.mdDoc ''
+              description = ''
                 The set of features supported by the machine. Derivations
                 can express dependencies on system features through the
                 `requiredSystemFeatures` attribute.
@@ -333,7 +333,7 @@ in
               type = types.listOf types.str;
               default = [ "*" ];
               example = [ "@wheel" "@builders" "alice" "bob" ];
-              description = lib.mdDoc ''
+              description = ''
                 A list of names of users (separated by whitespace) that are
                 allowed to connect to the Nix daemon. As with
                 {option}`nix.settings.trusted-users`, you can specify groups by
@@ -355,7 +355,7 @@ in
             sandbox-paths = [ "/bin/sh=''${pkgs.busybox-sandbox-shell.out}/bin/busybox" ];
           }
         '';
-        description = lib.mdDoc ''
+        description = ''
           Configuration for Nix, see
           <https://nixos.org/manual/nix/stable/command-ref/conf-file.html> or
           {manpage}`nix.conf(5)` for available options.
diff --git a/nixpkgs/nixos/modules/config/no-x-libs.nix b/nixpkgs/nixos/modules/config/no-x-libs.nix
index fea6e0c4110b..1d7976cef36a 100644
--- a/nixpkgs/nixos/modules/config/no-x-libs.nix
+++ b/nixpkgs/nixos/modules/config/no-x-libs.nix
@@ -10,7 +10,7 @@ with lib;
     environment.noXlibs = mkOption {
       type = types.bool;
       default = false;
-      description = lib.mdDoc ''
+      description = ''
         Switch off the options in the default configuration that
         require X11 libraries. This includes client-side font
         configuration and SSH forwarding of X11 authentication
@@ -31,8 +31,11 @@ with lib;
       cairo = super.cairo.override { x11Support = false; };
       dbus = super.dbus.override { x11Support = false; };
       fastfetch = super.fastfetch.override { vulkanSupport = false; waylandSupport = false; x11Support = false; };
+      ffmpeg = super.ffmpeg.override { ffmpegVariant = "headless"; };
       ffmpeg_4 = super.ffmpeg_4.override { ffmpegVariant = "headless"; };
       ffmpeg_5 = super.ffmpeg_5.override { ffmpegVariant = "headless"; };
+      ffmpeg_6 = super.ffmpeg_6.override { ffmpegVariant = "headless"; };
+      ffmpeg_7 = super.ffmpeg_7.override { ffmpegVariant = "headless"; };
       # dep of graphviz, libXpm is optional for Xpm support
       gd = super.gd.override { withXorg = false; };
       ghostscript = super.ghostscript.override { cupsSupport = false; x11Support = false; };
@@ -44,7 +47,7 @@ with lib;
       gst_all_1 = super.gst_all_1 // {
         gst-plugins-bad = super.gst_all_1.gst-plugins-bad.override { guiSupport = false; };
         gst-plugins-base = super.gst_all_1.gst-plugins-base.override { enableWayland = false; enableX11 = false; };
-        gst-plugins-good = super.gst_all_1.gst-plugins-good.override { enableX11 = false; };
+        gst-plugins-good = super.gst_all_1.gst-plugins-good.override { enableWayland = false; enableX11 = false; gtkSupport = false; qt5Support = false; qt6Support = false; };
       };
       imagemagick = super.imagemagick.override { libX11Support = false; libXtSupport = false; };
       imagemagickBig = super.imagemagickBig.override { libX11Support = false; libXtSupport = false; };
diff --git a/nixpkgs/nixos/modules/config/nsswitch.nix b/nixpkgs/nixos/modules/config/nsswitch.nix
index b004072813bd..c7ba9b8eec6a 100644
--- a/nixpkgs/nixos/modules/config/nsswitch.nix
+++ b/nixpkgs/nixos/modules/config/nsswitch.nix
@@ -13,7 +13,7 @@ with lib;
       type = types.listOf types.path;
       internal = true;
       default = [];
-      description = lib.mdDoc ''
+      description = ''
         Search path for NSS (Name Service Switch) modules.  This allows
         several DNS resolution methods to be specified via
         {file}`/etc/nsswitch.conf`.
@@ -28,7 +28,7 @@ with lib;
     system.nssDatabases = {
       passwd = mkOption {
         type = types.listOf types.str;
-        description = lib.mdDoc ''
+        description = ''
           List of passwd entries to configure in {file}`/etc/nsswitch.conf`.
 
           Note that "files" is always prepended while "systemd" is appended if nscd is enabled.
@@ -40,7 +40,7 @@ with lib;
 
       group = mkOption {
         type = types.listOf types.str;
-        description = lib.mdDoc ''
+        description = ''
           List of group entries to configure in {file}`/etc/nsswitch.conf`.
 
           Note that "files" is always prepended while "systemd" is appended if nscd is enabled.
@@ -52,7 +52,7 @@ with lib;
 
       shadow = mkOption {
         type = types.listOf types.str;
-        description = lib.mdDoc ''
+        description = ''
           List of shadow entries to configure in {file}`/etc/nsswitch.conf`.
 
           Note that "files" is always prepended.
@@ -64,7 +64,7 @@ with lib;
 
       hosts = mkOption {
         type = types.listOf types.str;
-        description = lib.mdDoc ''
+        description = ''
           List of hosts entries to configure in {file}`/etc/nsswitch.conf`.
 
           Note that "files" is always prepended, and "dns" and "myhostname" are always appended.
@@ -76,7 +76,7 @@ with lib;
 
       services = mkOption {
         type = types.listOf types.str;
-        description = lib.mdDoc ''
+        description = ''
           List of services entries to configure in {file}`/etc/nsswitch.conf`.
 
           Note that "files" is always prepended.
diff --git a/nixpkgs/nixos/modules/config/power-management.nix b/nixpkgs/nixos/modules/config/power-management.nix
index e7fd02920e0d..70f2d199df10 100644
--- a/nixpkgs/nixos/modules/config/power-management.nix
+++ b/nixpkgs/nixos/modules/config/power-management.nix
@@ -19,8 +19,7 @@ in
       enable = mkOption {
         type = types.bool;
         default = true;
-        description =
-          lib.mdDoc ''
+        description = ''
             Whether to enable power management.  This includes support
             for suspend-to-RAM and powersave features on laptops.
           '';
@@ -29,7 +28,7 @@ in
       resumeCommands = mkOption {
         type = types.lines;
         default = "";
-        description = lib.mdDoc "Commands executed after the system resumes from suspend-to-RAM.";
+        description = "Commands executed after the system resumes from suspend-to-RAM.";
       };
 
       powerUpCommands = mkOption {
@@ -38,8 +37,7 @@ in
         example = literalExpression ''
           "''${pkgs.hdparm}/sbin/hdparm -B 255 /dev/sda"
         '';
-        description =
-          lib.mdDoc ''
+        description = ''
             Commands executed when the machine powers up.  That is,
             they're executed both when the system first boots and when
             it resumes from suspend or hibernation.
@@ -52,8 +50,7 @@ in
         example = literalExpression ''
           "''${pkgs.hdparm}/sbin/hdparm -B 255 /dev/sda"
         '';
-        description =
-          lib.mdDoc ''
+        description = ''
             Commands executed when the machine powers down.  That is,
             they're executed both when the system shuts down and when
             it goes to suspend or hibernation.
diff --git a/nixpkgs/nixos/modules/config/pulseaudio.nix b/nixpkgs/nixos/modules/config/pulseaudio.nix
index 662959bf0071..7c3a284e8780 100644
--- a/nixpkgs/nixos/modules/config/pulseaudio.nix
+++ b/nixpkgs/nixos/modules/config/pulseaudio.nix
@@ -87,7 +87,7 @@ in {
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to enable the PulseAudio sound server.
         '';
       };
@@ -95,7 +95,7 @@ in {
       systemWide = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           If false, a PulseAudio server is launched automatically for
           each user that tries to use the sound system. The server runs
           with user privileges. If true, one system-wide PulseAudio
@@ -110,7 +110,7 @@ in {
       support32Bit = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to include the 32-bit pulseaudio libraries in the system or not.
           This is only useful on 64-bit systems and currently limited to x86_64-linux.
         '';
@@ -118,7 +118,7 @@ in {
 
       configFile = mkOption {
         type = types.nullOr types.path;
-        description = lib.mdDoc ''
+        description = ''
           The path to the default configuration options the PulseAudio server
           should use. By default, the "default.pa" configuration
           from the PulseAudio distribution is used.
@@ -128,7 +128,7 @@ in {
       extraConfig = mkOption {
         type = types.lines;
         default = "";
-        description = lib.mdDoc ''
+        description = ''
           Literal string to append to `configFile`
           and the config file generated by the pulseaudio module.
         '';
@@ -137,7 +137,7 @@ in {
       extraClientConf = mkOption {
         type = types.lines;
         default = "";
-        description = lib.mdDoc ''
+        description = ''
           Extra configuration appended to pulse/client.conf file.
         '';
       };
@@ -149,7 +149,7 @@ in {
                   else pkgs.pulseaudio;
         defaultText = literalExpression "pkgs.pulseaudio";
         example = literalExpression "pkgs.pulseaudioFull";
-        description = lib.mdDoc ''
+        description = ''
           The PulseAudio derivation to use.  This can be used to enable
           features (such as JACK support, Bluetooth) via the
           `pulseaudioFull` package.
@@ -160,7 +160,7 @@ in {
         type = types.listOf types.package;
         default = [];
         example = literalExpression "[ pkgs.pulseaudio-modules-bt ]";
-        description = lib.mdDoc ''
+        description = ''
           Extra pulseaudio modules to use. This is intended for out-of-tree
           pulseaudio modules like extra bluetooth codecs.
 
@@ -172,7 +172,7 @@ in {
         logLevel = mkOption {
           type = types.str;
           default = "notice";
-          description = lib.mdDoc ''
+          description = ''
             The log level that the system-wide pulseaudio daemon should use,
             if activated.
           '';
@@ -181,29 +181,29 @@ in {
         config = mkOption {
           type = types.attrsOf types.unspecified;
           default = {};
-          description = lib.mdDoc "Config of the pulse daemon. See `man pulse-daemon.conf`.";
+          description = "Config of the pulse daemon. See `man pulse-daemon.conf`.";
           example = literalExpression ''{ realtime-scheduling = "yes"; }'';
         };
       };
 
       zeroconf = {
         discovery.enable =
-          mkEnableOption (lib.mdDoc "discovery of pulseaudio sinks in the local network");
+          mkEnableOption "discovery of pulseaudio sinks in the local network";
         publish.enable =
-          mkEnableOption (lib.mdDoc "publishing the pulseaudio sink in the local network");
+          mkEnableOption "publishing the pulseaudio sink in the local network";
       };
 
       # TODO: enable by default?
       tcp = {
-        enable = mkEnableOption (lib.mdDoc "tcp streaming support");
+        enable = mkEnableOption "tcp streaming support";
 
         anonymousClients = {
-          allowAll = mkEnableOption (lib.mdDoc "all anonymous clients to stream to the server");
+          allowAll = mkEnableOption "all anonymous clients to stream to the server";
           allowedIpRanges = mkOption {
             type = types.listOf types.str;
             default = [];
             example = literalExpression ''[ "127.0.0.1" "192.168.1.0/24" ]'';
-            description = lib.mdDoc ''
+            description = ''
               A list of IP subnets that are allowed to stream to the server.
             '';
           };
diff --git a/nixpkgs/nixos/modules/config/qt.nix b/nixpkgs/nixos/modules/config/qt.nix
index f82b7ab85a8c..bf050f17620c 100644
--- a/nixpkgs/nixos/modules/config/qt.nix
+++ b/nixpkgs/nixos/modules/config/qt.nix
@@ -42,7 +42,7 @@ in
   options = {
     qt = {
       enable = lib.mkEnableOption "" // {
-        description = lib.mdDoc ''
+        description = ''
           Whether to enable Qt configuration, including theming.
 
           Enabling this option is necessary for Qt plugins to work in the
@@ -66,7 +66,7 @@ in
           [ "qt6Packages" "qt6ct" ]
           [ "qt6Packages" "qt6gtk2" ]
         ];
-        description = lib.mdDoc ''
+        description = ''
           Selects the platform theme to use for Qt applications.
 
           The options are
@@ -93,7 +93,7 @@ in
           [ "qt6Packages" "qt6gtk2" ]
           [ "qt6Packages" "qtstyleplugin-kvantum" ]
         ];
-        description = lib.mdDoc ''
+        description = ''
           Selects the style to use for Qt applications.
 
           The options are
diff --git a/nixpkgs/nixos/modules/config/resolvconf.nix b/nixpkgs/nixos/modules/config/resolvconf.nix
index 3b8cc0cb8f42..002a06be39a3 100644
--- a/nixpkgs/nixos/modules/config/resolvconf.nix
+++ b/nixpkgs/nixos/modules/config/resolvconf.nix
@@ -10,7 +10,8 @@ let
 
   resolvconfOptions = cfg.extraOptions
     ++ optional cfg.dnsSingleRequest "single-request"
-    ++ optional cfg.dnsExtensionMechanism "edns0";
+    ++ optional cfg.dnsExtensionMechanism "edns0"
+    ++ optional cfg.useLocalResolver "trust-ad";
 
   configText =
     ''
@@ -27,9 +28,7 @@ let
       resolv_conf_options='${concatStringsSep " " resolvconfOptions}'
     '' + optionalString cfg.useLocalResolver ''
       # This hosts runs a full-blown DNS resolver.
-      name_servers='127.0.0.1'
-    '' + optionalString (cfg.useLocalResolver && config.networking.enableIPv6) ''
-      name_servers='::1'
+      name_servers='127.0.0.1${optionalString config.networking.enableIPv6 " ::1"}'
     '' + cfg.extraConfig;
 
 in
@@ -51,7 +50,7 @@ in
         type = types.bool;
         default = !(config.environment.etc ? "resolv.conf");
         defaultText = literalExpression ''!(config.environment.etc ? "resolv.conf")'';
-        description = lib.mdDoc ''
+        description = ''
           Whether DNS configuration is managed by resolvconf.
         '';
       };
@@ -60,7 +59,7 @@ in
         type = types.package;
         default = pkgs.openresolv;
         defaultText = literalExpression "pkgs.openresolv";
-        description = lib.mdDoc ''
+        description = ''
           The package that provides the system-wide resolvconf command. Defaults to `openresolv`
           if this module is enabled. Otherwise, can be used by other modules (for example {option}`services.resolved`) to
           provide a compatibility layer.
@@ -72,7 +71,7 @@ in
       dnsSingleRequest = lib.mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Recent versions of glibc will issue both ipv4 (A) and ipv6 (AAAA)
           address queries at the same time, from the same port. Sometimes upstream
           routers will systemically drop the ipv4 queries. The symptom of this problem is
@@ -85,7 +84,7 @@ in
       dnsExtensionMechanism = mkOption {
         type = types.bool;
         default = true;
-        description = lib.mdDoc ''
+        description = ''
           Enable the `edns0` option in {file}`resolv.conf`. With
           that option set, `glibc` supports use of the extension mechanisms for
           DNS (EDNS) specified in RFC 2671. The most popular user of that feature is DNSSEC,
@@ -97,7 +96,7 @@ in
         type = types.lines;
         default = "";
         example = "libc=NO";
-        description = lib.mdDoc ''
+        description = ''
           Extra configuration to append to {file}`resolvconf.conf`.
         '';
       };
@@ -106,7 +105,7 @@ in
         type = types.listOf types.str;
         default = [];
         example = [ "ndots:1" "rotate" ];
-        description = lib.mdDoc ''
+        description = ''
           Set the options in {file}`/etc/resolv.conf`.
         '';
       };
@@ -114,7 +113,7 @@ in
       useLocalResolver = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Use local DNS server for resolving.
         '';
       };
diff --git a/nixpkgs/nixos/modules/config/shells-environment.nix b/nixpkgs/nixos/modules/config/shells-environment.nix
index a8476bd2aaed..2c19fb8a029d 100644
--- a/nixpkgs/nixos/modules/config/shells-environment.nix
+++ b/nixpkgs/nixos/modules/config/shells-environment.nix
@@ -35,20 +35,20 @@ in
     environment.variables = mkOption {
       default = {};
       example = { EDITOR = "nvim"; VISUAL = "nvim"; };
-      description = lib.mdDoc ''
+      description = ''
         A set of environment variables used in the global environment.
         These variables will be set on shell initialisation (e.g. in /etc/profile).
         The value of each variable can be either a string or a list of
         strings.  The latter is concatenated, interspersed with colon
         characters.
       '';
-      type = with types; attrsOf (oneOf [ (listOf str) str path ]);
-      apply = mapAttrs (n: v: if isList v then concatStringsSep ":" v else "${v}");
+      type = with types; attrsOf (oneOf [ (listOf (oneOf [ float int str ])) float int str path ]);
+      apply = mapAttrs (n: v: if isList v then concatMapStringsSep ":" toString v else toString v);
     };
 
     environment.profiles = mkOption {
       default = [];
-      description = lib.mdDoc ''
+      description = ''
         A list of profiles used to setup the global environment.
       '';
       type = types.listOf types.str;
@@ -57,7 +57,7 @@ in
     environment.profileRelativeEnvVars = mkOption {
       type = types.attrsOf (types.listOf types.str);
       example = { PATH = [ "/bin" ]; MANPATH = [ "/man" "/share/man" ]; };
-      description = lib.mdDoc ''
+      description = ''
         Attribute set of environment variable.  Each attribute maps to a list
         of relative paths.  Each relative path is appended to the each profile
         of {option}`environment.profiles` to form the content of the
@@ -68,7 +68,7 @@ in
     # !!! isn't there a better way?
     environment.extraInit = mkOption {
       default = "";
-      description = lib.mdDoc ''
+      description = ''
         Shell script code called during global environment initialisation
         after all variables and profileVariables have been set.
         This code is assumed to be shell-independent, which means you should
@@ -79,7 +79,7 @@ in
 
     environment.shellInit = mkOption {
       default = "";
-      description = lib.mdDoc ''
+      description = ''
         Shell script code called during shell initialisation.
         This code is assumed to be shell-independent, which means you should
         stick to pure sh without sh word split.
@@ -89,7 +89,7 @@ in
 
     environment.loginShellInit = mkOption {
       default = "";
-      description = lib.mdDoc ''
+      description = ''
         Shell script code called during login shell initialisation.
         This code is assumed to be shell-independent, which means you should
         stick to pure sh without sh word split.
@@ -99,7 +99,7 @@ in
 
     environment.interactiveShellInit = mkOption {
       default = "";
-      description = lib.mdDoc ''
+      description = ''
         Shell script code called during interactive shell initialisation.
         This code is assumed to be shell-independent, which means you should
         stick to pure sh without sh word split.
@@ -109,7 +109,7 @@ in
 
     environment.shellAliases = mkOption {
       example = { l = null; ll = "ls -l"; };
-      description = lib.mdDoc ''
+      description = ''
         An attribute set that maps aliases (the top level attribute names in
         this option) to command strings or directly to build outputs. The
         aliases are added to all users' shells.
@@ -119,7 +119,7 @@ in
     };
 
     environment.homeBinInPath = mkOption {
-      description = lib.mdDoc ''
+      description = ''
         Include ~/bin/ in $PATH.
       '';
       default = false;
@@ -127,7 +127,7 @@ in
     };
 
     environment.localBinInPath = mkOption {
-      description = lib.mdDoc ''
+      description = ''
         Add ~/.local/bin/ to $PATH
       '';
       default = false;
@@ -140,7 +140,7 @@ in
       example = literalExpression ''"''${pkgs.dash}/bin/dash"'';
       type = types.path;
       visible = false;
-      description = lib.mdDoc ''
+      description = ''
         The shell executable that is linked system-wide to
         `/bin/sh`. Please note that NixOS assumes all
         over the place that shell to be Bash, so override the default
@@ -151,7 +151,7 @@ in
     environment.shells = mkOption {
       default = [];
       example = literalExpression "[ pkgs.bashInteractive pkgs.zsh ]";
-      description = lib.mdDoc ''
+      description = ''
         A list of permissible login shells for user accounts.
         No need to mention `/bin/sh`
         here, it is placed into this list implicitly.
diff --git a/nixpkgs/nixos/modules/config/stevenblack.nix b/nixpkgs/nixos/modules/config/stevenblack.nix
index 7e6235169847..5b85073c6908 100644
--- a/nixpkgs/nixos/modules/config/stevenblack.nix
+++ b/nixpkgs/nixos/modules/config/stevenblack.nix
@@ -1,7 +1,7 @@
 { config, lib, pkgs, ... }:
 
 let
-  inherit (lib) optionals mkOption mkEnableOption types mkIf elem concatStringsSep maintainers mdDoc;
+  inherit (lib) optionals mkOption mkEnableOption types mkIf elem concatStringsSep maintainers;
   cfg = config.networking.stevenblack;
 
   # needs to be in a specific order
@@ -15,12 +15,12 @@ let
 in
 {
   options.networking.stevenblack = {
-    enable = mkEnableOption (mdDoc "the stevenblack hosts file blocklist");
+    enable = mkEnableOption "the stevenblack hosts file blocklist";
 
     block = mkOption {
       type = types.listOf (types.enum [ "fakenews" "gambling" "porn" "social" ]);
       default = [ ];
-      description = mdDoc "Additional blocklist extensions.";
+      description = "Additional blocklist extensions.";
     };
   };
 
diff --git a/nixpkgs/nixos/modules/config/stub-ld.nix b/nixpkgs/nixos/modules/config/stub-ld.nix
index 14c07466d061..87b7bdf07a2d 100644
--- a/nixpkgs/nixos/modules/config/stub-ld.nix
+++ b/nixpkgs/nixos/modules/config/stub-ld.nix
@@ -1,7 +1,7 @@
 { config, lib, pkgs, ... }:
 
 let
-  inherit (lib) optionalString mkOption types mdDoc mkIf mkDefault;
+  inherit (lib) optionalString mkOption types mkIf mkDefault;
 
   cfg = config.environment.stub-ld;
 
@@ -38,7 +38,7 @@ in {
         type = types.bool;
         default = true;
         example = false;
-        description = mdDoc ''
+        description = ''
           Install a stub ELF loader to print an informative error message
           in the event that a user attempts to run an ELF binary not
           compiled for NixOS.
diff --git a/nixpkgs/nixos/modules/config/swap.nix b/nixpkgs/nixos/modules/config/swap.nix
index 21046d6f1697..a606ebd76759 100644
--- a/nixpkgs/nixos/modules/config/swap.nix
+++ b/nixpkgs/nixos/modules/config/swap.nix
@@ -14,7 +14,7 @@ let
       enable = mkOption {
         default = false;
         type = types.bool;
-        description = lib.mdDoc ''
+        description = ''
           Encrypt swap device with a random key. This way you won't have a persistent swap device.
 
           WARNING: Don't try to hibernate when you have at least one swap partition with
@@ -31,7 +31,7 @@ let
         default = "aes-xts-plain64";
         example = "serpent-xts-plain64";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Use specified cipher for randomEncryption.
 
           Hint: Run "cryptsetup benchmark" to see which one is fastest on your machine.
@@ -42,7 +42,7 @@ let
         default = null;
         example = "512";
         type = types.nullOr types.int;
-        description = lib.mdDoc ''
+        description = ''
           Set the encryption key size for the plain device.
 
           If not specified, the amount of data to read from `source` will be
@@ -56,7 +56,7 @@ let
         default = null;
         example = "4096";
         type = types.nullOr types.int;
-        description = lib.mdDoc ''
+        description = ''
           Set the sector size for the plain encrypted device type.
 
           If not specified, the default sector size is determined from the
@@ -70,7 +70,7 @@ let
         default = "/dev/urandom";
         example = "/dev/random";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Define the source of randomness to obtain a random key for encryption.
         '';
       };
@@ -78,7 +78,7 @@ let
       allowDiscards = mkOption {
         default = false;
         type = types.bool;
-        description = lib.mdDoc ''
+        description = ''
           Whether to allow TRIM requests to the underlying device. This option
           has security implications; please read the LUKS documentation before
           activating it.
@@ -95,13 +95,13 @@ let
       device = mkOption {
         example = "/dev/sda3";
         type = types.nonEmptyStr;
-        description = lib.mdDoc "Path of the device or swap file.";
+        description = "Path of the device or swap file.";
       };
 
       label = mkOption {
         example = "swap";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Label of the device.  Can be used instead of {var}`device`.
         '';
       };
@@ -110,7 +110,7 @@ let
         default = null;
         example = 2048;
         type = types.nullOr types.int;
-        description = lib.mdDoc ''
+        description = ''
           If this option is set, ‘device’ is interpreted as the
           path of a swapfile that will be created automatically
           with the indicated size (in megabytes).
@@ -121,7 +121,7 @@ let
         default = null;
         example = 2048;
         type = types.nullOr types.int;
-        description = lib.mdDoc ''
+        description = ''
           Specify the priority of the swap device. Priority is a value between 0 and 32767.
           Higher numbers indicate higher priority.
           null lets the kernel choose a priority, which will show up as a negative value.
@@ -136,7 +136,7 @@ let
           source = "/dev/random";
         };
         type = types.coercedTo types.bool randomEncryptionCoerce (types.submodule randomEncryptionOpts);
-        description = lib.mdDoc ''
+        description = ''
           Encrypt swap device with a random key. This way you won't have a persistent swap device.
 
           HINT: run "cryptsetup benchmark" to test cipher performance on your machine.
@@ -155,7 +155,7 @@ let
         default = null;
         example = "once";
         type = types.nullOr (types.enum ["once" "pages" "both" ]);
-        description = lib.mdDoc ''
+        description = ''
           Specify the discard policy for the swap device. If "once", then the
           whole swap space is discarded at swapon invocation. If "pages",
           asynchronous discard on freed pages is performed, before returning to
@@ -168,7 +168,7 @@ let
         default = [ "defaults" ];
         example = [ "nofail" ];
         type = types.listOf types.nonEmptyStr;
-        description = lib.mdDoc ''
+        description = ''
           Options used to mount the swap.
         '';
       };
@@ -209,7 +209,7 @@ in
         { device = "/var/swapfile"; }
         { label = "bigswap"; }
       ];
-      description = lib.mdDoc ''
+      description = ''
         The swap devices and swap files.  These must have been
         initialised using {command}`mkswap`.  Each element
         should be an attribute set specifying either the path of the
diff --git a/nixpkgs/nixos/modules/config/sysctl.nix b/nixpkgs/nixos/modules/config/sysctl.nix
index bedba984a3c2..34028ce82dd7 100644
--- a/nixpkgs/nixos/modules/config/sysctl.nix
+++ b/nixpkgs/nixos/modules/config/sysctl.nix
@@ -35,13 +35,13 @@ in
           "net.core.rmem_max" = mkOption {
             type = types.nullOr highestValueType;
             default = null;
-            description = lib.mdDoc "The maximum receive socket buffer size in bytes. In case of conflicting values, the highest will be used.";
+            description = "The maximum receive socket buffer size in bytes. In case of conflicting values, the highest will be used.";
           };
 
           "net.core.wmem_max" = mkOption {
             type = types.nullOr highestValueType;
             default = null;
-            description = lib.mdDoc "The maximum send socket buffer size in bytes. In case of conflicting values, the highest will be used.";
+            description = "The maximum send socket buffer size in bytes. In case of conflicting values, the highest will be used.";
           };
         };
       };
@@ -49,7 +49,7 @@ in
       example = literalExpression ''
         { "net.ipv4.tcp_syncookies" = false; "vm.swappiness" = 60; }
       '';
-      description = lib.mdDoc ''
+      description = ''
         Runtime parameters of the Linux kernel, as set by
         {manpage}`sysctl(8)`.  Note that sysctl
         parameters names must be enclosed in quotes
diff --git a/nixpkgs/nixos/modules/config/system-environment.nix b/nixpkgs/nixos/modules/config/system-environment.nix
index 399304185223..3fd4ac730ab9 100644
--- a/nixpkgs/nixos/modules/config/system-environment.nix
+++ b/nixpkgs/nixos/modules/config/system-environment.nix
@@ -16,7 +16,7 @@ in
 
     environment.sessionVariables = mkOption {
       default = {};
-      description = lib.mdDoc ''
+      description = ''
         A set of environment variables used in the global environment.
         These variables will be set by PAM early in the login process.
 
@@ -38,7 +38,7 @@ in
     environment.profileRelativeSessionVariables = mkOption {
       type = types.attrsOf (types.listOf types.str);
       example = { PATH = [ "/bin" ]; MANPATH = [ "/man" "/share/man" ]; };
-      description = lib.mdDoc ''
+      description = ''
         Attribute set of environment variable used in the global
         environment. These variables will be set by PAM early in the
         login process.
diff --git a/nixpkgs/nixos/modules/config/system-path.nix b/nixpkgs/nixos/modules/config/system-path.nix
index 71274ea8999f..562100ad6201 100644
--- a/nixpkgs/nixos/modules/config/system-path.nix
+++ b/nixpkgs/nixos/modules/config/system-path.nix
@@ -63,7 +63,7 @@ in
         type = types.listOf types.package;
         default = [];
         example = literalExpression "[ pkgs.firefox pkgs.thunderbird ]";
-        description = lib.mdDoc ''
+        description = ''
           The set of packages that appear in
           /run/current-system/sw.  These packages are
           automatically available to all users, and are
@@ -84,7 +84,7 @@ in
               ${defaultPackagesText}
         '';
         example = [];
-        description = lib.mdDoc ''
+        description = ''
           Set of default packages that aren't strictly necessary
           for a running system, entries can be removed for a more
           minimal NixOS installation.
@@ -103,14 +103,14 @@ in
         # to work.
         default = [];
         example = ["/"];
-        description = lib.mdDoc "List of directories to be symlinked in {file}`/run/current-system/sw`.";
+        description = "List of directories to be symlinked in {file}`/run/current-system/sw`.";
       };
 
       extraOutputsToInstall = mkOption {
         type = types.listOf types.str;
         default = [ ];
         example = [ "dev" "info" ];
-        description = lib.mdDoc ''
+        description = ''
           Entries listed here will be appended to the `meta.outputsToInstall` attribute for each package in `environment.systemPackages`, and the files from the corresponding derivation outputs symlinked into {file}`/run/current-system/sw`.
 
           For example, this can be used to install the `dev` and `info` outputs for all packages in the system environment, if they are available.
@@ -122,7 +122,7 @@ in
       extraSetup = mkOption {
         type = types.lines;
         default = "";
-        description = lib.mdDoc "Shell fragments to be run after the system environment has been created. This should only be used for things that need to modify the internals of the environment, e.g. generating MIME caches. The environment being built can be accessed at $out.";
+        description = "Shell fragments to be run after the system environment has been created. This should only be used for things that need to modify the internals of the environment, e.g. generating MIME caches. The environment being built can be accessed at $out.";
       };
 
     };
@@ -131,7 +131,7 @@ in
 
       path = mkOption {
         internal = true;
-        description = lib.mdDoc ''
+        description = ''
           The packages you want in the boot environment.
         '';
       };
diff --git a/nixpkgs/nixos/modules/config/terminfo.nix b/nixpkgs/nixos/modules/config/terminfo.nix
index ebd1aaea8f04..4b58605aa7f1 100644
--- a/nixpkgs/nixos/modules/config/terminfo.nix
+++ b/nixpkgs/nixos/modules/config/terminfo.nix
@@ -10,7 +10,7 @@ with lib;
     environment.enableAllTerminfo = mkOption {
       default = false;
       type = types.bool;
-      description = lib.mdDoc ''
+      description = ''
         Whether to install all terminfo outputs
       '';
     };
@@ -18,7 +18,7 @@ with lib;
     security.sudo.keepTerminfo = mkOption {
       default = true;
       type = types.bool;
-      description = lib.mdDoc ''
+      description = ''
         Whether to preserve the `TERMINFO` and `TERMINFO_DIRS`
         environment variables, for `root` and the `wheel` group.
       '';
diff --git a/nixpkgs/nixos/modules/config/unix-odbc-drivers.nix b/nixpkgs/nixos/modules/config/unix-odbc-drivers.nix
index 7bd3fa1600b0..28cf7e84b7bc 100644
--- a/nixpkgs/nixos/modules/config/unix-odbc-drivers.nix
+++ b/nixpkgs/nixos/modules/config/unix-odbc-drivers.nix
@@ -20,7 +20,7 @@ in {
       type = types.listOf types.package;
       default = [];
       example = literalExpression "with pkgs.unixODBCDrivers; [ sqlite psql ]";
-      description = lib.mdDoc ''
+      description = ''
         Specifies Unix ODBC drivers to be registered in
         {file}`/etc/odbcinst.ini`.  You may also want to
         add `pkgs.unixODBC` to the system path to get
diff --git a/nixpkgs/nixos/modules/config/users-groups.nix b/nixpkgs/nixos/modules/config/users-groups.nix
index f9750b7263ca..3ef8993fa665 100644
--- a/nixpkgs/nixos/modules/config/users-groups.nix
+++ b/nixpkgs/nixos/modules/config/users-groups.nix
@@ -56,7 +56,7 @@ let
       name = mkOption {
         type = types.passwdEntry types.str;
         apply = x: assert (builtins.stringLength x < 32 || abort "Username '${x}' is longer than 31 characters which is not allowed!"); x;
-        description = lib.mdDoc ''
+        description = ''
           The name of the user account. If undefined, the name of the
           attribute set will be used.
         '';
@@ -66,7 +66,7 @@ let
         type = types.passwdEntry types.str;
         default = "";
         example = "Alice Q. User";
-        description = lib.mdDoc ''
+        description = ''
           A short description of the user account, typically the
           user's full name.  This is actually the “GECOS” or “comment”
           field in {file}`/etc/passwd`.
@@ -76,7 +76,7 @@ let
       uid = mkOption {
         type = with types; nullOr int;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           The account UID. If the UID is null, a free UID is picked on
           activation.
         '';
@@ -85,7 +85,7 @@ let
       isSystemUser = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Indicates if the user is a system user or not. This option
           only has an effect if {option}`uid` is
           {option}`null`, in which case it determines whether
@@ -100,7 +100,7 @@ let
       isNormalUser = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Indicates whether this is an account for a “real” user.
           This automatically sets {option}`group` to `users`,
           {option}`createHome` to `true`,
@@ -115,31 +115,31 @@ let
         type = types.str;
         apply = x: assert (builtins.stringLength x < 32 || abort "Group name '${x}' is longer than 31 characters which is not allowed!"); x;
         default = "";
-        description = lib.mdDoc "The user's primary group.";
+        description = "The user's primary group.";
       };
 
       extraGroups = mkOption {
         type = types.listOf types.str;
         default = [];
-        description = lib.mdDoc "The user's auxiliary groups.";
+        description = "The user's auxiliary groups.";
       };
 
       home = mkOption {
         type = types.passwdEntry types.path;
         default = "/var/empty";
-        description = lib.mdDoc "The user's home directory.";
+        description = "The user's home directory.";
       };
 
       homeMode = mkOption {
         type = types.strMatching "[0-7]{1,5}";
         default = "700";
-        description = lib.mdDoc "The user's home directory mode in numeric format. See chmod(1). The mode is only applied if {option}`users.users.<name>.createHome` is true.";
+        description = "The user's home directory mode in numeric format. See chmod(1). The mode is only applied if {option}`users.users.<name>.createHome` is true.";
       };
 
       cryptHomeLuks = mkOption {
         type = with types; nullOr str;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           Path to encrypted luks device that contains
           the user's home directory.
         '';
@@ -148,7 +148,7 @@ let
       pamMount = mkOption {
         type = with types; attrsOf str;
         default = {};
-        description = lib.mdDoc ''
+        description = ''
           Attributes for user's entry in
           {file}`pam_mount.conf.xml`.
           Useful attributes might include `path`,
@@ -163,7 +163,7 @@ let
         default = pkgs.shadow;
         defaultText = literalExpression "pkgs.shadow";
         example = literalExpression "pkgs.bashInteractive";
-        description = lib.mdDoc ''
+        description = ''
           The path to the user's shell. Can use shell derivations,
           like `pkgs.bashInteractive`. Don’t
           forget to enable your shell in
@@ -175,7 +175,7 @@ let
       ignoreShellProgramCheck = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           By default, nixos will check that programs.SHELL.enable is set to
           true if the user has a custom shell specified. If that behavior isn't
           required and there are custom overrides in place to make sure that the
@@ -190,7 +190,7 @@ let
           { startUid = 1000; count = 1; }
           { startUid = 100001; count = 65534; }
         ];
-        description = lib.mdDoc ''
+        description = ''
           Subordinate user ids that user is allowed to use.
           They are set into {file}`/etc/subuid` and are used
           by `newuidmap` for user namespaces.
@@ -204,7 +204,7 @@ let
           { startGid = 100; count = 1; }
           { startGid = 1001; count = 999; }
         ];
-        description = lib.mdDoc ''
+        description = ''
           Subordinate group ids that user is allowed to use.
           They are set into {file}`/etc/subgid` and are used
           by `newgidmap` for user namespaces.
@@ -215,7 +215,7 @@ let
         type = types.bool;
         default = false;
         example = true;
-        description = lib.mdDoc ''
+        description = ''
           Automatically allocate subordinate user and group ids for this user.
           Allocated range is currently always of size 65536.
         '';
@@ -224,7 +224,7 @@ let
       createHome = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to create the home directory and ensure ownership as well as
           permissions to match the user.
         '';
@@ -233,7 +233,7 @@ let
       useDefaultShell = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           If true, the user's shell will be set to
           {option}`users.defaultUserShell`.
         '';
@@ -242,7 +242,7 @@ let
       hashedPassword = mkOption {
         type = with types; nullOr (passwdEntry str);
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           Specifies the hashed password for the user.
           ${passwordDescription}
           ${hashedPasswordDescription}
@@ -252,7 +252,7 @@ let
       password = mkOption {
         type = with types; nullOr str;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           Specifies the (clear text) password for the user.
           Warning: do not set confidential information here
           because it is world-readable in the Nix store. This option
@@ -265,7 +265,7 @@ let
         type = with types; nullOr str;
         default = cfg.users.${name}.passwordFile;
         defaultText = literalExpression "null";
-        description = lib.mdDoc ''
+        description = ''
           The full path to a file that contains the hash of the user's
           password. The password file is read on each system activation. The
           file should contain exactly one line, which should be the password in
@@ -278,13 +278,13 @@ let
         type = with types; nullOr str;
         default = null;
         visible = false;
-        description = lib.mdDoc "Deprecated alias of hashedPasswordFile";
+        description = "Deprecated alias of hashedPasswordFile";
       };
 
       initialHashedPassword = mkOption {
         type = with types; nullOr (passwdEntry str);
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           Specifies the initial hashed password for the user, i.e. the
           hashed password assigned if the user does not already
           exist. If {option}`users.mutableUsers` is true, the
@@ -302,7 +302,7 @@ let
       initialPassword = mkOption {
         type = with types; nullOr str;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           Specifies the initial password for the user, i.e. the
           password assigned if the user does not already exist. If
           {option}`users.mutableUsers` is true, the password
@@ -323,7 +323,7 @@ let
         type = types.listOf types.package;
         default = [];
         example = literalExpression "[ pkgs.firefox pkgs.thunderbird ]";
-        description = lib.mdDoc ''
+        description = ''
           The set of packages that should be made available to the user.
           This is in contrast to {option}`environment.systemPackages`,
           which adds packages to all users.
@@ -333,7 +333,7 @@ let
       expires = mkOption {
         type = types.nullOr (types.strMatching "[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}");
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           Set the date on which the user's account will no longer be
           accessible. The date is expressed in the format YYYY-MM-DD, or null
           to disable the expiry.
@@ -345,7 +345,7 @@ let
       linger = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to enable lingering for this user. If true, systemd user
           units will start at boot, rather than starting at login and stopping
           at logout. This is the declarative equivalent of running
@@ -390,7 +390,7 @@ let
 
       name = mkOption {
         type = types.passwdEntry types.str;
-        description = lib.mdDoc ''
+        description = ''
           The name of the group. If undefined, the name of the attribute set
           will be used.
         '';
@@ -399,7 +399,7 @@ let
       gid = mkOption {
         type = with types; nullOr int;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           The group GID. If the GID is null, a free GID is picked on
           activation.
         '';
@@ -408,7 +408,7 @@ let
       members = mkOption {
         type = with types; listOf (passwdEntry str);
         default = [];
-        description = lib.mdDoc ''
+        description = ''
           The user names of the group members, added to the
           `/etc/group` file.
         '';
@@ -430,7 +430,7 @@ let
     options = {
       startUid = mkOption {
         type = types.int;
-        description = lib.mdDoc ''
+        description = ''
           Start of the range of subordinate user ids that user is
           allowed to use.
         '';
@@ -438,7 +438,7 @@ let
       count = mkOption {
         type = types.int;
         default = 1;
-        description = lib.mdDoc "Count of subordinate user ids";
+        description = "Count of subordinate user ids";
       };
     };
   };
@@ -447,7 +447,7 @@ let
     options = {
       startGid = mkOption {
         type = types.int;
-        description = lib.mdDoc ''
+        description = ''
           Start of the range of subordinate group ids that user is
           allowed to use.
         '';
@@ -455,7 +455,7 @@ let
       count = mkOption {
         type = types.int;
         default = 1;
-        description = lib.mdDoc "Count of subordinate group ids";
+        description = "Count of subordinate group ids";
       };
     };
   };
@@ -510,7 +510,7 @@ in {
     users.mutableUsers = mkOption {
       type = types.bool;
       default = true;
-      description = lib.mdDoc ''
+      description = ''
         If set to `true`, you are free to add new users and groups to the system
         with the ordinary `useradd` and
         `groupadd` commands. On system activation, the
@@ -535,7 +535,7 @@ in {
     users.enforceIdUniqueness = mkOption {
       type = types.bool;
       default = true;
-      description = lib.mdDoc ''
+      description = ''
         Whether to require that no two users/groups share the same uid/gid.
       '';
     };
@@ -554,7 +554,7 @@ in {
           shell = "/bin/sh";
         };
       };
-      description = lib.mdDoc ''
+      description = ''
         Additional user accounts to be created automatically by the system.
         This can also be used to set options for root.
       '';
@@ -567,7 +567,7 @@ in {
           hackers = { };
         };
       type = with types; attrsOf (submodule groupOpts);
-      description = lib.mdDoc ''
+      description = ''
         Additional groups to be created automatically by the system.
       '';
     };
@@ -576,7 +576,7 @@ in {
     users.allowNoPasswordLogin = mkOption {
       type = types.bool;
       default = false;
-      description = lib.mdDoc ''
+      description = ''
         Disable checking that at least the `root` user or a user in the `wheel` group can log in using
         a password or an SSH key.
 
@@ -871,7 +871,6 @@ in {
           }
           {
             assertion = let
-              xor = a: b: a && !b || b && !a;
               isEffectivelySystemUser = user.isSystemUser || (user.uid != null && user.uid < 1000);
             in xor isEffectivelySystemUser user.isNormalUser;
             message = ''
diff --git a/nixpkgs/nixos/modules/config/vte.nix b/nixpkgs/nixos/modules/config/vte.nix
index 48f85246560a..e0b48c3fb4a8 100644
--- a/nixpkgs/nixos/modules/config/vte.nix
+++ b/nixpkgs/nixos/modules/config/vte.nix
@@ -23,7 +23,7 @@ in
     programs.bash.vteIntegration = mkOption {
       default = false;
       type = types.bool;
-      description = lib.mdDoc ''
+      description = ''
         Whether to enable Bash integration for VTE terminals.
         This allows it to preserve the current directory of the shell
         across terminals.
@@ -33,7 +33,7 @@ in
     programs.zsh.vteIntegration = mkOption {
       default = false;
       type = types.bool;
-      description = lib.mdDoc ''
+      description = ''
         Whether to enable Zsh integration for VTE terminals.
         This allows it to preserve the current directory of the shell
         across terminals.
diff --git a/nixpkgs/nixos/modules/config/xdg/autostart.nix b/nixpkgs/nixos/modules/config/xdg/autostart.nix
index a4fdbda911a2..acdb7cd3adc6 100644
--- a/nixpkgs/nixos/modules/config/xdg/autostart.nix
+++ b/nixpkgs/nixos/modules/config/xdg/autostart.nix
@@ -10,7 +10,7 @@ with lib;
     xdg.autostart.enable = mkOption {
       type = types.bool;
       default = true;
-      description = lib.mdDoc ''
+      description = ''
         Whether to install files to support the
         [XDG Autostart specification](https://specifications.freedesktop.org/autostart-spec/autostart-spec-latest.html).
       '';
diff --git a/nixpkgs/nixos/modules/config/xdg/icons.nix b/nixpkgs/nixos/modules/config/xdg/icons.nix
index 8d44a431445b..3f198101d306 100644
--- a/nixpkgs/nixos/modules/config/xdg/icons.nix
+++ b/nixpkgs/nixos/modules/config/xdg/icons.nix
@@ -10,7 +10,7 @@ with lib;
     xdg.icons.enable = mkOption {
       type = types.bool;
       default = true;
-      description = lib.mdDoc ''
+      description = ''
         Whether to install files to support the
         [XDG Icon Theme specification](https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html).
       '';
diff --git a/nixpkgs/nixos/modules/config/xdg/menus.nix b/nixpkgs/nixos/modules/config/xdg/menus.nix
index b8f829e81547..8510c2db654e 100644
--- a/nixpkgs/nixos/modules/config/xdg/menus.nix
+++ b/nixpkgs/nixos/modules/config/xdg/menus.nix
@@ -10,7 +10,7 @@ with lib;
     xdg.menus.enable = mkOption {
       type = types.bool;
       default = true;
-      description = lib.mdDoc ''
+      description = ''
         Whether to install files to support the
         [XDG Desktop Menu specification](https://specifications.freedesktop.org/menu-spec/menu-spec-latest.html).
       '';
diff --git a/nixpkgs/nixos/modules/config/xdg/mime.nix b/nixpkgs/nixos/modules/config/xdg/mime.nix
index 3aa863083219..2cd88be5b023 100644
--- a/nixpkgs/nixos/modules/config/xdg/mime.nix
+++ b/nixpkgs/nixos/modules/config/xdg/mime.nix
@@ -18,7 +18,7 @@ in
     xdg.mime.enable = mkOption {
       type = types.bool;
       default = true;
-      description = lib.mdDoc ''
+      description = ''
         Whether to install files to support the
         [XDG Shared MIME-info specification](https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html) and the
         [XDG MIME Applications specification](https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-latest.html).
@@ -32,7 +32,7 @@ in
         "application/pdf" = "firefox.desktop";
         "text/xml" = [ "nvim.desktop" "codium.desktop" ];
       };
-      description = lib.mdDoc ''
+      description = ''
         Adds associations between mimetypes and applications. See the
         [
         specifications](https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-latest.html#associations) for more information.
@@ -46,7 +46,7 @@ in
         "application/pdf" = "firefox.desktop";
         "image/png" = [ "sxiv.desktop" "gimp.desktop" ];
       };
-      description = lib.mdDoc ''
+      description = ''
         Sets the default applications for given mimetypes. See the
         [
         specifications](https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-latest.html#default) for more information.
@@ -60,7 +60,7 @@ in
         "audio/mp3" = [ "mpv.desktop" "umpv.desktop" ];
         "inode/directory" = "codium.desktop";
       };
-      description = lib.mdDoc ''
+      description = ''
         Removes associations between mimetypes and applications. See the
         [
         specifications](https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-latest.html#associations) for more information.
diff --git a/nixpkgs/nixos/modules/config/xdg/portal.nix b/nixpkgs/nixos/modules/config/xdg/portal.nix
index 5aa23377f9ff..2c4d07c4953c 100644
--- a/nixpkgs/nixos/modules/config/xdg/portal.nix
+++ b/nixpkgs/nixos/modules/config/xdg/portal.nix
@@ -37,14 +37,14 @@ in
 
   options.xdg.portal = {
     enable =
-      mkEnableOption (lib.mdDoc ''[xdg desktop integration](https://github.com/flatpak/xdg-desktop-portal)'') // {
+      mkEnableOption ''[xdg desktop integration](https://github.com/flatpak/xdg-desktop-portal)'' // {
         default = false;
       };
 
     extraPortals = mkOption {
       type = types.listOf types.package;
       default = [ ];
-      description = lib.mdDoc ''
+      description = ''
         List of additional portals to add to path. Portals allow interaction
         with system, like choosing files or taking screenshots. At minimum,
         a desktop portal implementation should be listed. GNOME and KDE already
@@ -58,7 +58,7 @@ in
       type = types.bool;
       visible = false;
       default = false;
-      description = lib.mdDoc ''
+      description = ''
         Sets environment variable `GTK_USE_PORTAL` to `1`.
         This will force GTK-based programs ran outside Flatpak to respect and use XDG Desktop Portals
         for features like file chooser but it is an unsupported hack that can easily break things.
@@ -69,7 +69,7 @@ in
     xdgOpenUsePortal = mkOption {
       type = types.bool;
       default = false;
-      description = lib.mdDoc ''
+      description = ''
         Sets environment variable `NIXOS_XDG_OPEN_USE_PORTAL` to `1`
         This will make `xdg-open` use the portal to open programs, which resolves bugs involving
         programs opening inside FHS envs or with unexpected env vars set from wrappers.
@@ -92,7 +92,7 @@ in
           default = [ "gtk" ];
         };
       };
-      description = lib.mdDoc ''
+      description = ''
         Sets which portal backend should be used to provide the implementation
         for the requested interface. For details check {manpage}`portals.conf(5)`.
 
@@ -106,7 +106,7 @@ in
       type = types.listOf types.package;
       default = [ ];
       example = lib.literalExpression "[ pkgs.gnome.gnome-session ]";
-      description = lib.mdDoc ''
+      description = ''
         List of packages that provide XDG desktop portal configuration, usually in
         the form of `share/xdg-desktop-portal/$desktop-portals.conf`.
 
diff --git a/nixpkgs/nixos/modules/config/xdg/portals/lxqt.nix b/nixpkgs/nixos/modules/config/xdg/portals/lxqt.nix
index 18fcf3d81c02..23a1622308bd 100644
--- a/nixpkgs/nixos/modules/config/xdg/portals/lxqt.nix
+++ b/nixpkgs/nixos/modules/config/xdg/portals/lxqt.nix
@@ -12,13 +12,13 @@ in
   };
 
   options.xdg.portal.lxqt = {
-    enable = mkEnableOption (lib.mdDoc ''
+    enable = mkEnableOption ''
       the desktop portal for the LXQt desktop environment.
 
       This will add the `lxqt.xdg-desktop-portal-lxqt`
       package (with the extra Qt styles) into the
       {option}`xdg.portal.extraPortals` option
-    '');
+    '';
 
     styles = mkOption {
       type = types.listOf types.package;
@@ -29,7 +29,7 @@ in
         pkgs.qtcurve
       ];
       '';
-      description = lib.mdDoc ''
+      description = ''
         Extra Qt styles that will be available to the
         `lxqt.xdg-desktop-portal-lxqt`.
       '';
diff --git a/nixpkgs/nixos/modules/config/xdg/portals/wlr.nix b/nixpkgs/nixos/modules/config/xdg/portals/wlr.nix
index d84ae794e3bc..954830eff2d3 100644
--- a/nixpkgs/nixos/modules/config/xdg/portals/wlr.nix
+++ b/nixpkgs/nixos/modules/config/xdg/portals/wlr.nix
@@ -14,16 +14,16 @@ in
   };
 
   options.xdg.portal.wlr = {
-    enable = mkEnableOption (lib.mdDoc ''
-      desktop portal for wlroots-based desktops
+    enable = mkEnableOption ''
+      desktop portal for wlroots-based desktops.
 
       This will add the `xdg-desktop-portal-wlr` package into
       the {option}`xdg.portal.extraPortals` option, and provide the
       configuration file
-    '');
+    '';
 
     settings = mkOption {
-      description = lib.mdDoc ''
+      description = ''
         Configuration for `xdg-desktop-portal-wlr`.
 
         See `xdg-desktop-portal-wlr(5)` for supported
diff --git a/nixpkgs/nixos/modules/config/xdg/sounds.nix b/nixpkgs/nixos/modules/config/xdg/sounds.nix
index 713d68131fc0..0aae77fe0107 100644
--- a/nixpkgs/nixos/modules/config/xdg/sounds.nix
+++ b/nixpkgs/nixos/modules/config/xdg/sounds.nix
@@ -10,7 +10,7 @@ with lib;
     xdg.sounds.enable = mkOption {
       type = types.bool;
       default = true;
-      description = lib.mdDoc ''
+      description = ''
         Whether to install files to support the
         [XDG Sound Theme specification](https://www.freedesktop.org/wiki/Specifications/sound-theme-spec/).
       '';
diff --git a/nixpkgs/nixos/modules/config/zram.nix b/nixpkgs/nixos/modules/config/zram.nix
index ec8b4ed6e931..1846ac51eea6 100644
--- a/nixpkgs/nixos/modules/config/zram.nix
+++ b/nixpkgs/nixos/modules/config/zram.nix
@@ -22,7 +22,7 @@ in
       enable = lib.mkOption {
         default = false;
         type = lib.types.bool;
-        description = lib.mdDoc ''
+        description = ''
           Enable in-memory compressed devices and swap space provided by the zram
           kernel module.
           See [
@@ -34,7 +34,7 @@ in
       swapDevices = lib.mkOption {
         default = 1;
         type = lib.types.int;
-        description = lib.mdDoc ''
+        description = ''
           Number of zram devices to be used as swap, recommended is 1.
         '';
       };
@@ -42,7 +42,7 @@ in
       memoryPercent = lib.mkOption {
         default = 50;
         type = lib.types.int;
-        description = lib.mdDoc ''
+        description = ''
           Maximum total amount of memory that can be stored in the zram swap devices
           (as a percentage of your total memory). Defaults to 1/2 of your total
           RAM. Run `zramctl` to check how good memory is compressed.
@@ -53,7 +53,7 @@ in
       memoryMax = lib.mkOption {
         default = null;
         type = with lib.types; nullOr int;
-        description = lib.mdDoc ''
+        description = ''
           Maximum total amount of memory (in bytes) that can be stored in the zram
           swap devices.
           This doesn't define how much memory will be used by the zram swap devices.
@@ -63,7 +63,7 @@ in
       priority = lib.mkOption {
         default = 5;
         type = lib.types.int;
-        description = lib.mdDoc ''
+        description = ''
           Priority of the zram swap devices. It should be a number higher than
           the priority of your disk-based swap devices (so that the system will
           fill the zram swap devices before falling back to disk swap).
@@ -73,8 +73,8 @@ in
       algorithm = lib.mkOption {
         default = "zstd";
         example = "lz4";
-        type = with lib.types; either (enum [ "lzo" "lz4" "zstd" ]) str;
-        description = lib.mdDoc ''
+        type = with lib.types; either (enum [ "842" "lzo" "lzo-rle" "lz4" "lz4hc" "zstd" ]) str;
+        description = ''
           Compression algorithm. `lzo` has good compression,
           but is slow. `lz4` has bad compression, but is fast.
           `zstd` is both good compression and fast, but requires newer kernel.
@@ -87,7 +87,7 @@ in
         default = null;
         example = "/dev/zvol/tarta-zoot/swap-writeback";
         type = lib.types.nullOr lib.types.path;
-        description = lib.mdDoc ''
+        description = ''
           Write incompressible pages to this device,
           as there's no gain from keeping them in RAM.
         '';