From a2a5aa26349667be58dbf73520d2e78c9ea15a55 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 3 Jun 2020 17:17:04 +0200 Subject: [PATCH 1/2] nextcloud19: init at 19.0.0 https://nextcloud.com/blog/nextcloud-hub-brings-productivity-to-home-office/ --- nixos/modules/services/web-apps/nextcloud.nix | 2 +- pkgs/servers/nextcloud/default.nix | 5 +++++ pkgs/top-level/all-packages.nix | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index 5b9065dec3c..7f57490287d 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 { 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 c4a2e72fe4f..9dc34703883 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5464,7 +5464,7 @@ in grocy = callPackage ../servers/grocy { }; inherit (callPackage ../servers/nextcloud {}) - nextcloud17 nextcloud18; + nextcloud17 nextcloud18 nextcloud19; nextcloud-client = libsForQt5.callPackage ../applications/networking/nextcloud-client { }; From f326e5a35e82574f6f7107bdd607dd703ec37a58 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 3 Jun 2020 18:57:14 +0200 Subject: [PATCH 2/2] nixos/nextcloud: update upgrade-path for nextcloud19 Enhance the heuristics to make sure that a user doesn't accidentally upgrade across two major versions of Nextcloud (e.g. from v17 to v19). The original idea/discussion has been documented in the nixpkgs manual[1]. This includes the following changes: * `nextcloud19` will be selected automatically when having a stateVersion greater or equal than 20.09. For existing setups, the package has to be selected manually to avoid accidental upgrades. * When using `nextcloud18` or older, a warning will be thrown which recommends upgrading to `nextcloud19`. * Added a brief paragraph about `nextcloud19` in the NixOS 19.09 release notes. * Restart `phpfpm` if the Nextcloud-package (`cfg.package`) changes[2]. [1] https://nixos.org/nixos/manual/index.html#module-services-nextcloud-maintainer-info [2] https://github.com/NixOS/nixpkgs/pull/89427#issuecomment-638885727 --- nixos/doc/manual/release-notes/rl-2009.xml | 10 ++++++++++ nixos/modules/services/web-apps/nextcloud.nix | 19 +++++++++++++++++-- nixos/modules/services/web-apps/nextcloud.xml | 6 ++++++ 3 files changed, 33 insertions(+), 2 deletions(-) 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 7f57490287d..41269426e9e 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -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. +