diff --git a/nixos/doc/manual/release-notes/rl-2009.xml b/nixos/doc/manual/release-notes/rl-2009.xml
index 9bbbecc0569..383a7981a83 100644
--- a/nixos/doc/manual/release-notes/rl-2009.xml
+++ b/nixos/doc/manual/release-notes/rl-2009.xml
@@ -642,6 +642,16 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
netbeans was upgraded to 12.0 and now defaults to OpenJDK 11. This might cause problems if your projects depend on packages that were removed in Java 11.
+
+
+ nextcloud has been updated to v19.
+
+
+ If you have an existing installation, please make sure that you're on
+ nextcloud18 before upgrading to nextcloud19
+ since Nextcloud doesn't support upgrades across multiple major versions.
+
+
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index 5b9065dec3c..41269426e9e 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -69,7 +69,7 @@ in {
package = mkOption {
type = types.package;
description = "Which package to use for the Nextcloud instance.";
- relatedPackages = [ "nextcloud17" "nextcloud18" ];
+ relatedPackages = [ "nextcloud17" "nextcloud18" "nextcloud19" ];
};
maxUploadSize = mkOption {
@@ -336,7 +336,16 @@ in {
server, and wait until the upgrade to 17 is finished.
Then, set `services.nextcloud.package` to `pkgs.nextcloud18` to upgrade to
- Nextcloud version 18.
+ Nextcloud version 18. Please note that Nextcloud 19 is already out and it's
+ recommended to upgrade to nextcloud19 after that.
+ '')
+ ++ (optional (versionOlder cfg.package.version "19") ''
+ A legacy Nextcloud install (from before NixOS 20.09/unstable) may be installed.
+
+ If/After nextcloud18 is installed successfully, you can safely upgrade to
+ nextcloud19. If not, please upgrade to nextcloud18 first since Nextcloud doesn't
+ support upgrades that skip multiple versions (i.e. an upgrade from 17 to 19 isn't
+ possible, but an upgrade from 18 to 19).
'');
services.nextcloud.package = with pkgs;
@@ -348,7 +357,8 @@ in {
`pkgs.nextcloud`.
''
else if versionOlder stateVersion "20.03" then nextcloud17
- else nextcloud18
+ else if versionOlder stateVersion "20.09" then nextcloud18
+ else nextcloud19
);
}
@@ -360,6 +370,11 @@ in {
};
systemd.services = {
+ # When upgrading the Nextcloud package, Nextcloud can report errors such as
+ # "The files of the app [all apps in /var/lib/nextcloud/apps] were not replaced correctly"
+ # Restarting phpfpm on Nextcloud package update fixes these issues (but this is a workaround).
+ phpfpm-nextcloud.restartTriggers = [ cfg.package ];
+
nextcloud-setup = let
c = cfg.config;
writePhpArrary = a: "[${concatMapStringsSep "," (val: ''"${toString val}"'') a}]";
diff --git a/nixos/modules/services/web-apps/nextcloud.xml b/nixos/modules/services/web-apps/nextcloud.xml
index fc454f8ba25..332e4d1ff3e 100644
--- a/nixos/modules/services/web-apps/nextcloud.xml
+++ b/nixos/modules/services/web-apps/nextcloud.xml
@@ -161,5 +161,11 @@
};
}
+
+
+ Ideally we should make sure that it's possible to jump two NixOS versions forward:
+ i.e. the warnings and the logic in the module should guard a user to upgrade from a
+ Nextcloud on e.g. 19.09 to a Nextcloud on 20.09.
+
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
index 048de16ceed..4c43f141d18 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -36,4 +36,9 @@ in {
version = "18.0.6";
sha256 = "1chmkg31jc1nr53y8r886mmd2jzb78094mrx7ggcfpjfkkv8b89s";
};
+
+ nextcloud19 = generic {
+ version = "19.0.0";
+ sha256 = "1bhazqj5f02sclh5pmifzqfahhhfqypixbvkgrnlgqy5ayb44gfj";
+ };
}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ca857afc5ee..8753b9be609 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5466,7 +5466,7 @@ in
grocy = callPackage ../servers/grocy { };
inherit (callPackage ../servers/nextcloud {})
- nextcloud17 nextcloud18;
+ nextcloud17 nextcloud18 nextcloud19;
nextcloud-client = libsForQt5.callPackage ../applications/networking/nextcloud-client { };