about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorMaximilian Bosch <maximilian@mbosch.me>2021-10-25 01:26:08 +0200
committerMaximilian Bosch <maximilian@mbosch.me>2021-10-25 01:34:47 +0200
commite1e15974f8123dcfa2272ba594c5638dc73c787c (patch)
tree5f590d072a36be08d0e1011a31e941fcf14d2aa0 /nixos
parent6b23e8fc7820366e489377b5b00890f088f36a01 (diff)
downloadnixlib-e1e15974f8123dcfa2272ba594c5638dc73c787c.tar
nixlib-e1e15974f8123dcfa2272ba594c5638dc73c787c.tar.gz
nixlib-e1e15974f8123dcfa2272ba594c5638dc73c787c.tar.bz2
nixlib-e1e15974f8123dcfa2272ba594c5638dc73c787c.tar.lz
nixlib-e1e15974f8123dcfa2272ba594c5638dc73c787c.tar.xz
nixlib-e1e15974f8123dcfa2272ba594c5638dc73c787c.tar.zst
nixlib-e1e15974f8123dcfa2272ba594c5638dc73c787c.zip
nextcloud20: drop
The version 20 of Nextcloud will be EOLed by the end of this month[1].

Since the recommended default (that didn't raise an eval-warning) on
21.05 was Nextcloud 21, this shouldn't affect too many people.

In order to ensure that nobody does a (not working) upgrade across
several major-versions of Nextcloud, I replaced the derivation of
`nextcloud20` with a `throw` that provides instructions how to proceed.

The only case that I consider "risky" is a setup upgraded from 21.05 (or
older) with a `system.stateVersion` <21.11 and with
`services.nextcloud.package` not explicitly declared in its config. To
avoid that, I also left the `else-if` for `stateVersion < 21.03` which
now sets `services.nextcloud.package` to `pkgs.nextcloud20` and thus
leads to an eval-error. This condition can be removed
as soon as 21.05 is EOL because then it's safe to assume that only
21.11. is used as stable release where no Nextcloud <=20 exists that can
lead to such an issue.

It can't be removed earlier because then every `system.stateVersion <
21.11` would lead to `nextcloud21` which is a problem if `nextcloud19`
is still used.

[1] https://docs.nextcloud.com/server/20/admin_manual/release_schedule.html
Diffstat (limited to 'nixos')
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2111.section.xml6
-rw-r--r--nixos/doc/manual/release-notes/rl-2111.section.md2
-rw-r--r--nixos/modules/services/web-apps/nextcloud.nix9
-rw-r--r--nixos/tests/nextcloud/default.nix2
4 files changed, 15 insertions, 4 deletions
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
index d60a100a2f22..5434e1d89190 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
@@ -1146,6 +1146,12 @@ Superuser created successfully.
           will no longer work and must be updated.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          Nextcloud 20 (<literal>pkgs.nextcloud20</literal>) has been
+          dropped because it was EOLed by upstream in 2021-10.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
   <section xml:id="sec-release-21.11-notable-changes">
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md
index a8ca755d611f..b97c6786b229 100644
--- a/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -354,6 +354,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 - The `services.mosquitto` module has been rewritten to support multiple listeners and per-listener configuration.
   Module configurations from previous releases will no longer work and must be updated.
 
+- Nextcloud 20 (`pkgs.nextcloud20`) has been dropped because it was EOLed by upstream in 2021-10.
+
 ## Other Notable Changes {#sec-release-21.11-notable-changes}
 
 
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index 62ae763b69bc..034ee1ae1279 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -153,7 +153,7 @@ in {
     package = mkOption {
       type = types.package;
       description = "Which package to use for the Nextcloud instance.";
-      relatedPackages = [ "nextcloud20" "nextcloud21" "nextcloud22" ];
+      relatedPackages = [ "nextcloud21" "nextcloud22" ];
     };
     phpPackage = mkOption {
       type = types.package;
@@ -547,7 +547,6 @@ in {
           Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release.
           Please migrate your configuration to config.services.nextcloud.poolSettings.
         '')
-        ++ (optional (versionOlder cfg.package.version "20") (upgradeWarning 19 "21.05"))
         ++ (optional (versionOlder cfg.package.version "21") (upgradeWarning 20 "21.05"))
         ++ (optional (versionOlder cfg.package.version "22") (upgradeWarning 21 "21.11"))
         ++ (optional isUnsupportedMariadb ''
@@ -574,7 +573,11 @@ in {
           # This versionOlder statement remains set to 21.03 for backwards compatibility.
           # See https://github.com/NixOS/nixpkgs/pull/108899 and
           # https://github.com/NixOS/rfcs/blob/master/rfcs/0080-nixos-release-schedule.md.
-          else if versionOlder stateVersion "21.03" then nextcloud19
+          # FIXME(@Ma27) remove this else-if as soon as 21.05 is EOL! This is only here
+          # to ensure that users who are on Nextcloud 19 with a stateVersion <21.05 with
+          # no explicit services.nextcloud.package don't upgrade to v21 by accident (
+          # nextcloud20 throws an eval-error because it's dropped).
+          else if versionOlder stateVersion "21.03" then nextcloud20
           else if versionOlder stateVersion "21.11" then nextcloud21
           else nextcloud22
         );
diff --git a/nixos/tests/nextcloud/default.nix b/nixos/tests/nextcloud/default.nix
index 65043e509b3b..bd7a7aacdc91 100644
--- a/nixos/tests/nextcloud/default.nix
+++ b/nixos/tests/nextcloud/default.nix
@@ -18,4 +18,4 @@ foldl
     };
   })
   {}
-  [ 20 21 22 ]
+  [ 21 22 ]