···399 The package can be upgraded by explicitly declaring the service-option
400 `services.nextcloud.package`.
401 '';
000000000000000402 in (optional (cfg.poolConfig != null) ''
403 Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release.
404 Please migrate your configuration to config.services.nextcloud.poolSettings.
405 '')
406 ++ (optional (versionOlder cfg.package.version "20") (upgradeWarning 19 "21.05"))
407 ++ (optional (versionOlder cfg.package.version "21") (upgradeWarning 20 "21.05"))
408- ++ (optional (versionOlder cfg.package.version "22") (upgradeWarning 21 "21.11"));
00000000000409410 services.nextcloud.package = with pkgs;
411 mkDefault (
···399 The package can be upgraded by explicitly declaring the service-option
400 `services.nextcloud.package`.
401 '';
402+403+ # FIXME(@Ma27) remove as soon as nextcloud properly supports
404+ # mariadb >=10.6.
405+ isUnsupportedMariadb =
406+ # All currently supported Nextcloud versions are affected.
407+ (versionOlder cfg.package.version "23")
408+ # This module uses mysql
409+ && (cfg.config.dbtype == "mysql")
410+ # MySQL is managed via NixOS
411+ && config.services.mysql.enable
412+ # We're using MariaDB
413+ && (getName config.services.mysql.package) == "mariadb-server"
414+ # MariaDB is at least 10.6 and thus not supported
415+ && (versionAtLeast (getVersion config.services.mysql.package) "10.6");
416+417 in (optional (cfg.poolConfig != null) ''
418 Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release.
419 Please migrate your configuration to config.services.nextcloud.poolSettings.
420 '')
421 ++ (optional (versionOlder cfg.package.version "20") (upgradeWarning 19 "21.05"))
422 ++ (optional (versionOlder cfg.package.version "21") (upgradeWarning 20 "21.05"))
423+ ++ (optional (versionOlder cfg.package.version "22") (upgradeWarning 21 "21.11"))
424+ ++ (optional isUnsupportedMariadb ''
425+ You seem to be using MariaDB at an unsupported version (i.e. at least 10.6)!
426+ Please note that this isn't supported officially by Nextcloud. You can either
427+428+ * Switch to `pkgs.mysql`
429+ * Downgrade MariaDB to at least 10.5
430+ * Work around Nextcloud's problems by specifying `innodb_read_only_compressed=0`
431+432+ For further context, please read
433+ https://help.nextcloud.com/t/update-to-next-cloud-21-0-2-has-get-an-error/117028/15
434+ '');
435436 services.nextcloud.package = with pkgs;
437 mkDefault (