From e1e15974f8123dcfa2272ba594c5638dc73c787c Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Mon, 25 Oct 2021 01:26:08 +0200 Subject: [PATCH] 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 --- .../from_md/release-notes/rl-2111.section.xml | 6 ++++++ .../doc/manual/release-notes/rl-2111.section.md | 2 ++ nixos/modules/services/web-apps/nextcloud.nix | 9 ++++++--- nixos/tests/nextcloud/default.nix | 2 +- pkgs/servers/nextcloud/default.nix | 17 +++++++---------- pkgs/top-level/all-packages.nix | 2 +- 6 files changed, 23 insertions(+), 15 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 d60a100a2f2..5434e1d8919 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. + + + Nextcloud 20 (pkgs.nextcloud20) has been + dropped because it was EOLed by upstream in 2021-10. + +
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md index a8ca755d611..b97c6786b22 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 62ae763b69b..034ee1ae127 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 65043e509b3..bd7a7aacdc9 100644 --- a/nixos/tests/nextcloud/default.nix +++ b/nixos/tests/nextcloud/default.nix @@ -18,4 +18,4 @@ foldl }; }) {} - [ 20 21 22 ] + [ 21 22 ] diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix index e71741731f6..8b59ae54265 100644 --- a/pkgs/servers/nextcloud/default.nix +++ b/pkgs/servers/nextcloud/default.nix @@ -33,20 +33,17 @@ let }; }; in { - nextcloud19 = throw '' - Nextcloud v19 has been removed from `nixpkgs` as the support for it was dropped - by upstream in 2021-06. Please upgrade to at least Nextcloud v20 by - declaring + nextcloud20 = throw '' + Nextcloud v20 has been removed from `nixpkgs` as the support for it was dropped + by upstream in 2021-10. Please upgrade to at least Nextcloud v21 by declaring - services.nextcloud.package = pkgs.nextcloud20; + services.nextcloud.package = pkgs.nextcloud21; in your NixOS config. - ''; - nextcloud20 = generic { - version = "20.0.13"; - sha256 = "15mi51aayi3m8brxc0w51mbxp4h3hjv14gr5mm7ch2930x655gg9"; - }; + WARNING: if you were on Nextcloud 19 on NixOS 21.05 you have to upgrade to Nextcloud 20 + first on 21.05 because Nextcloud doesn't support upgrades accross multiple major versions! + ''; nextcloud21 = generic { version = "21.0.5"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7f28a4072f4..3663dbf4286 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7768,7 +7768,7 @@ with pkgs; grocy = callPackage ../servers/grocy { }; inherit (callPackage ../servers/nextcloud {}) - nextcloud19 nextcloud20 nextcloud21 nextcloud22; + nextcloud20 nextcloud21 nextcloud22; nextcloud-client = libsForQt5.callPackage ../applications/networking/nextcloud-client { };