diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
index 82965ff1875..ea6c11b25d0 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
@@ -109,6 +109,13 @@
removed due to it being an outdated version.
+
+
+ The MoinMoin wiki engine
+ (services.moinmoin) has been removed,
+ because Python 2 is being retired from nixpkgs.
+
+
The wafHook hook now honors
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md
index be9b57d1afe..3a56acf9fa9 100644
--- a/nixos/doc/manual/release-notes/rl-2205.section.md
+++ b/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -43,6 +43,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `services.kubernetes.addons.dashboard` was removed due to it being an outdated version.
+- The MoinMoin wiki engine (`services.moinmoin`) has been removed, because Python 2 is being retired from nixpkgs.
+
- The `wafHook` hook now honors `NIX_BUILD_CORES` when `enableParallelBuilding` is not set explicitly. Packages can restore the old behaviour by setting `enableParallelBuilding=false`.
- `pkgs.claws-mail-gtk2`, representing Claws Mail's older release version three, was removed in order to get rid of Python 2.
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 6fe6b41c609..dfdac4251a4 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -1029,7 +1029,6 @@
./services/web-apps/pgpkeyserver-lite.nix
./services/web-apps/powerdns-admin.nix
./services/web-apps/matomo.nix
- ./services/web-apps/moinmoin.nix
./services/web-apps/openwebrx.nix
./services/web-apps/restya-board.nix
./services/web-apps/sogo.nix
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 8e1d6f7bc4a..c290741da04 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -24,6 +24,7 @@ with lib;
(mkRemovedOptionModule [ "services" "firefox" "syncserver" "user" ] "")
(mkRemovedOptionModule [ "services" "firefox" "syncserver" "group" ] "")
(mkRemovedOptionModule [ "services" "marathon" ] "The corresponding package was removed from nixpkgs.")
+ (mkRemovedOptionModule [ "services" "moinmoin" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "mesos" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
diff --git a/nixos/modules/services/web-apps/moinmoin.nix b/nixos/modules/services/web-apps/moinmoin.nix
deleted file mode 100644
index efb73124a23..00000000000
--- a/nixos/modules/services/web-apps/moinmoin.nix
+++ /dev/null
@@ -1,304 +0,0 @@
-{ config, lib, pkgs, ... }:
-with lib;
-
-let
- cfg = config.services.moinmoin;
- python = pkgs.python27;
- pkg = python.pkgs.moinmoin;
- dataDir = "/var/lib/moin";
- usingGunicorn = cfg.webServer == "nginx-gunicorn" || cfg.webServer == "gunicorn";
- usingNginx = cfg.webServer == "nginx-gunicorn";
- user = "moin";
- group = "moin";
-
- uLit = s: ''u"${s}"'';
- indentLines = n: str: concatMapStrings (line: "${fixedWidthString n " " " "}${line}\n") (splitString "\n" str);
-
- moinCliWrapper = wikiIdent: pkgs.writeShellScriptBin "moin-${wikiIdent}" ''
- ${pkgs.su}/bin/su -s ${pkgs.runtimeShell} -c "${pkg}/bin/moin --config-dir=/var/lib/moin/${wikiIdent}/config $*" ${user}
- '';
-
- wikiConfig = wikiIdent: w: ''
- # -*- coding: utf-8 -*-
-
- from MoinMoin.config import multiconfig, url_prefix_static
-
- class Config(multiconfig.DefaultConfig):
- ${optionalString (w.webLocation != "/") ''
- url_prefix_static = '${w.webLocation}' + url_prefix_static
- ''}
-
- sitename = u'${w.siteName}'
- page_front_page = u'${w.frontPage}'
-
- data_dir = '${dataDir}/${wikiIdent}/data'
- data_underlay_dir = '${dataDir}/${wikiIdent}/underlay'
-
- language_default = u'${w.languageDefault}'
- ${optionalString (w.superUsers != []) ''
- superuser = [${concatMapStringsSep ", " uLit w.superUsers}]
- ''}
-
- ${indentLines 4 w.extraConfig}
- '';
- wikiConfigFile = name: wiki: pkgs.writeText "${name}.py" (wikiConfig name wiki);
-
-in
-{
- options.services.moinmoin = with types; {
- enable = mkEnableOption "MoinMoin Wiki Engine";
-
- webServer = mkOption {
- type = enum [ "nginx-gunicorn" "gunicorn" "none" ];
- default = "nginx-gunicorn";
- example = "none";
- description = ''
- Which web server to use to serve the wiki.
- Use none if you want to configure this yourself.
- '';
- };
-
- gunicorn.workers = mkOption {
- type = ints.positive;
- default = 3;
- example = 10;
- description = ''
- The number of worker processes for handling requests.
- '';
- };
-
- wikis = mkOption {
- type = attrsOf (submodule ({ name, ... }: {
- options = {
- siteName = mkOption {
- type = str;
- default = "Untitled Wiki";
- example = "ExampleWiki";
- description = ''
- Short description of your wiki site, displayed below the logo on each page, and
- used in RSS documents as the channel title.
- '';
- };
-
- webHost = mkOption {
- type = str;
- description = "Host part of the wiki URL. If undefined, the name of the attribute set will be used.";
- example = "wiki.example.org";
- };
-
- webLocation = mkOption {
- type = str;
- default = "/";
- example = "/moin";
- description = "Location part of the wiki URL.";
- };
-
- frontPage = mkOption {
- type = str;
- default = "LanguageSetup";
- example = "FrontPage";
- description = ''
- Front page name. Set this to something like FrontPage once languages are
- configured.
- '';
- };
-
- superUsers = mkOption {
- type = listOf str;
- default = [];
- example = [ "elvis" ];
- description = ''
- List of trusted user names with wiki system administration super powers.
-
- Please note that accounts for these users need to be created using the moin command-line utility, e.g.:
- moin-WIKINAME account create --name=NAME --email=EMAIL --password=PASSWORD.
- '';
- };
-
- languageDefault = mkOption {
- type = str;
- default = "en";
- example = "de";
- description = "The ISO-639-1 name of the main wiki language. Languages that MoinMoin does not support are ignored.";
- };
-
- extraConfig = mkOption {
- type = lines;
- default = "";
- example = ''
- show_hosts = True
- search_results_per_page = 100
- acl_rights_default = u"Known:read,write,delete,revert All:read"
- logo_string = u"