Unverified Commit 28089f88 authored by Maximilian Bosch's avatar Maximilian Bosch Committed by GitHub
Browse files

Merge pull request #273858 from dotlambda/nextcloud28-init

nextcloud28: init at 28.0.0, nextcloud27: 27.1.4 -> 27.1.5, nextcloud26: 26.0.9 -> 26.0.10
parents bc2ae87f e6751379
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -36,6 +36,12 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `mkosi` was updated to v19. Parts of the user interface have changed. Consult the
  [release notes](https://github.com/systemd/mkosi/releases/tag/v19) for a list of changes.

- The latest available version of Nextcloud is v28 (available as `pkgs.nextcloud28`). The installation logic is as follows:
  - If [`services.nextcloud.package`](#opt-services.nextcloud.package) is specified explicitly, this package will be installed (**recommended**)
  - If [`system.stateVersion`](#opt-system.stateVersion) is >=24.05, `pkgs.nextcloud28` will be installed by default.
  - If [`system.stateVersion`](#opt-system.stateVersion) is >=23.11, `pkgs.nextcloud27` will be installed by default.
  - Please note that an upgrade from v26 (or older) to v28 directly is not possible. Please upgrade to `nextcloud27` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud27;`](options.html#opt-services.nextcloud.package).

- `services.avahi.nssmdns` got split into `services.avahi.nssmdns4` and `services.avahi.nssmdns6` which enable the mDNS NSS switch for IPv4 and IPv6 respectively.
  Since most mDNS responders only register IPv4 addresses, most users want to keep the IPv6 support disabled to avoid long timeouts.

+1 −1
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ self-hostable cloud platform. The server setup can be automated using
[services.nextcloud](#opt-services.nextcloud.enable). A
desktop client is packaged at `pkgs.nextcloud-client`.

The current default by NixOS is `nextcloud27` which is also the latest
The current default by NixOS is `nextcloud28` which is also the latest
major version available.

## Basic usage {#module-services-nextcloud-basic-usage}
+8 −8
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ let
  phpPackage = cfg.phpPackage.buildEnv {
    extensions = { enabled, all }:
      (with all; enabled
        ++ [ bz2 intl sodium ] # recommended
        ++ optional cfg.enableImagemagick imagick
        # Optionally enabled depending on caching settings
        ++ optional cfg.caching.apcu apcu
@@ -190,7 +191,7 @@ in {
    package = mkOption {
      type = types.package;
      description = lib.mdDoc "Which package to use for the Nextcloud instance.";
      relatedPackages = [ "nextcloud26" "nextcloud27" ];
      relatedPackages = [ "nextcloud26" "nextcloud27" "nextcloud28" ];
    };
    phpPackage = mkPackageOption pkgs "php" {
      example = "php82";
@@ -679,7 +680,7 @@ in {

  config = mkIf cfg.enable (mkMerge [
    { warnings = let
        latest = 27;
        latest = 28;
        upgradeWarning = major: nixos:
          ''
            A legacy Nextcloud install (from before NixOS ${nixos}) may be installed.
@@ -700,7 +701,8 @@ in {
        '')
        ++ (optional (versionOlder cfg.package.version "25") (upgradeWarning 24 "22.11"))
        ++ (optional (versionOlder cfg.package.version "26") (upgradeWarning 25 "23.05"))
        ++ (optional (versionOlder cfg.package.version "27") (upgradeWarning 26 "23.11"));
        ++ (optional (versionOlder cfg.package.version "27") (upgradeWarning 26 "23.11"))
        ++ (optional (versionOlder cfg.package.version "28") (upgradeWarning 27 "24.05"));

      services.nextcloud.package = with pkgs;
        mkDefault (
@@ -710,15 +712,13 @@ in {
              nextcloud defined in an overlay, please set `services.nextcloud.package` to
              `pkgs.nextcloud`.
            ''
          else if versionOlder stateVersion "22.11" then nextcloud24
          else if versionOlder stateVersion "23.05" then nextcloud25
          else if versionOlder stateVersion "23.11" then nextcloud26
          else nextcloud27
          else if versionOlder stateVersion "24.05" then nextcloud27
          else nextcloud28
        );

      services.nextcloud.phpPackage =
        if versionOlder cfg.package.version "26" then pkgs.php81
        else pkgs.php82;
      services.nextcloud.phpPackage = pkgs.php82;

      services.nextcloud.phpOptions = mkMerge [
        (mapAttrs (const mkOptionDefault) defaultPHPSettings)
+1 −1
Original line number Diff line number Diff line
@@ -22,4 +22,4 @@ foldl
    };
  })
{ }
  [ 26 27 ]
  [ 26 27 28 ]
+11 −4
Original line number Diff line number Diff line
{ lib, stdenvNoCC, fetchurl, nixosTests
, nextcloud27Packages
, nextcloud28Packages
, nextcloud26Packages
}:

@@ -54,17 +55,23 @@ in {
  '';

  nextcloud26 = generic {
    version = "26.0.9";
    hash = "sha256-nVD8a+jjZXyfXrhEj6Fleofh2p5uq0DvYlXSNTMNiIE=";
    version = "26.0.10";
    hash = "sha256-yArkYMxOmvfQsJd6TJJX+t22a/V5OW9nwHfgLZsmlIw=";
    packages = nextcloud26Packages;
  };

  nextcloud27 = generic {
    version = "27.1.4";
    hash = "sha256-vsZfIWa4LJMDuvR2weQk9xqhltrQEP/kwMOdA5kNWUw=";
    version = "27.1.5";
    hash = "sha256-O1NMmOdrf+2Mo5NMrUGbEK9YViWfMTvsIs06e/pu+WE=";
    packages = nextcloud27Packages;
  };

  nextcloud28 = generic {
    version = "28.0.0";
    hash = "sha256-TosLdLQCIehfkquGnQhzxppS1+Q4idklnGJZQopqNvI=";
    packages = nextcloud28Packages;
  };

  # tip: get the sha with:
  # curl 'https://download.nextcloud.com/server/releases/nextcloud-${version}.tar.bz2.sha256'
}
Loading