While we had to lie to generate.sh in order to get nc26 into the
running, and there are a lot of apps that have not released a compatible
version yet, for the ones that have, we are adding them alongside
nextcloud 26.0.0beta1.
Because nextcloud ships their prerelease versions on a different url, we
are not parsing the version string to detect which path to use. We also
enabled and validated this change via nixos module testing.
This includes the following new packages:
- files_texteditor
- files_markdown
- forms
- groupfolders
- impersonate
- registration
- spreed
- twofactor_nextcloud_notification
- twofactor_totp
- unsplash
And the following updated ones:
- bookmarks
- calendar
- contacts
- deck
- mail
- news
- polls
While updating to 23.0.9/24.0.5[1], it was discovered that Nextcloud
silently changes db passwords in some cases (in case of MySQL in **all**
now).
This is inherently incompatible with our module. Further context is
provided in the patch file attached to this commit.
[1] https://github.com/NixOS/nixpkgs/pull/190646, see comments below
Added Nextcloud 23 and set it as the default Nextcloud version for the
NixOS module. Added PHP 8.1 as an option for phpPackage and default for
Nextcloud ≥ 24.
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