* Use Mail-in-a-Box driver
We're using the user's own credentials to authenticate themselves.
There are some issues if we release as-is:
* Only usable if the user in question is an admin
* Cannot be used if the user has 2FA enabled
* daemon: Add selective gatekeeper
* Allows us to give access to features for logged in, non-admin users
* Allow non-admins to change their own password
* Begin password management self service, frontend
* Allow all users to enable 2FA
* Password change front-end form
* Self password change front-end functionality
* Force logout after successful password change
* Clear fields after successful password change, also fix error modal
* Vagrantfile: Add Ubuntu 22.04 image
* Recognize Ubuntu 22.04 as supported
* Bump nextcloud to v24.0.0
* Bump Roundcube to 1.6-beta
Still waiting for the final release to come out
* Fix version checking functions
* NextCloud fixes
* Update Roundcube config
* Bump roundcube to 1.6-rc
* FIx nextcloud installation step
* rcm: Update CardDAV plugin to v4.4.0 (Guzzle v7)
* Fix STORAGE_ROOT permissions
* Update RC CardDAV plugin to v4.4.1
* Unpin b2sdk for Ubuntu 22.04
* Comment fix
* Drop support for Debian 10 from this point forward
* Software Updates
* Nextcloud: 24.0.2
* Nextcloud Calendar: 3.4.2
* Roundcube CardDAV: 4.4.2
* Update Roundcube to v1.6.0
* Update Nextcloud to v24.0.3
* Contacts to v4.2.0
* Upgrade Nextcloud to v24.0.4
* Calendar to v3.5.0
Webmail:
* CardDAV to v4.4.3
Nextcloud:
* The Nextcloud user_external 1.0.0 package for Nextcloud 21.0.7 isn't available from Nextcloud's releases page, but it's not needed in an intermediate upgrade step (hopefully), so we can skip it.
* Nextcloud updgrade steps should not be elifs because multiple intermediate upgrades may be needed.
* Continue if the user_external backend migration fails. Maybe it's not necessary. It gives a scary error message though.
* Remove a line that removes an old file that hasn't been in use since 2019 and the expectation is that Ubuntu 22.04 installations are on fresh machines.
Backups:
* For duplicity, we now need boto3 for AWS.
The first version supporting PHP 8.0 is Nextcloud 21. Therefore we can add migrations only to Nextcloud 21 forward, and so we only support migrating from Nextcloud 20 (Mail-in-a-Box versions v0.51+). Migration steps through Nextcloud 21 and 22 are added.
Also:
* Fix PHP APUc settings to be before Nextcloud tools are run.
* Add the PHP PPA.
* Specify the version when invoking the php CLI.
* Specify the version in package names.
* Update paths to 8.0 (using a variable in the setup scripts).
* Update z-push's php-xsl dependency to php8.0-xml.
* php-json is now built-into PHP.
Although PHP 8.1 is the stock version in Ubuntu 22.04, it's not supported by Nextcloud yet, and it likely will never be supported by the the version of Nextcloud that succeeds the last version of Nextcloud that supports PHP 7.2, and we have to install the next version so that an upgrade is permitted, so skipping to PHP 8.1 may not be easily possible.
* certbot's PPA is no longer needed because a recent version is now included in the Ubuntu respository.
* Un-pin b2sdk (reverts 69d8fdef99 and d829d74048).
* Revert boto+s3 workaround for duplicity (partial revert of 99474b348f).
* Revert old "fix boto 2 conflict on Google Compute Engine instances" (cf33be4596) which is probably no longer needed.
* Fix path to bind9 startup options file in Ubuntu 22.04.
* tinymce has not been a Roundcube requirement recently and is no longer a package in Ubuntu 22.04
* Upgrade Vagrant box to Ubuntu 22.04
We install b2sdk in two places: Once globally for duplicity (see
9d8fdef9915127f016eb6424322a149cdff25d7 for #2125) and once in
a virtualenv used by our control panel. The latter wasn't pinned
when the former was but should be to fix new Python compatibility
issues.
Anyone who updated Python packages recently (so anyone who upgraded
Mail-in-a-Box) started encountering these issues.
Fixes#2131.
See https://discourse.mailinabox.email/t/backblaze-b2-backup-not-working-since-v57/9231.