diff --git a/CHANGELOG.md b/CHANGELOG.md index 5611b42..99eff73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,14 +4,15 @@ CHANGELOG In Development -------------- +Software updates: + +* Roundcube's persistent_login plugin update to better support Roundcube 1.5. +* Nextcloud updated to 20.0.14 (from 20.0.8), contacts to 4.0.7 (from 3.5.1), and calendar to 3.0.4 (from 2.2.0). + Setup: * Fixed failed setup if a previous attempt failed while updating Nextcloud. -Mail: - -* Roundcube's persistent_login plugin update to better support Roundcube 1.5 - Control panel: * Fixed a crash if a custom DNS entry is not under a zone managed by the box. diff --git a/setup/nextcloud.sh b/setup/nextcloud.sh index b43816e..d8ce763 100755 --- a/setup/nextcloud.sh +++ b/setup/nextcloud.sh @@ -9,6 +9,39 @@ source /etc/mailinabox.conf # load global vars echo "Installing Nextcloud (contacts/calendar)..." +# Nextcloud core and app (plugin) versions to install. +# With each version we store a hash to ensure we install what we expect. + +# Nextcloud core +# -------------- +# * See https://nextcloud.com/changelog for the latest version. +# * Check https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html +# for whether it supports the version of PHP available on this machine. +# * Since Nextcloud only supports upgrades from consecutive major versions, +# we automatically install intermediate versions as needed. +# * The hash is the SHA1 hash of the ZIP package, which you can find by just running this script and +# copying it from the error message when it doesn't match what is below. +nextcloud_ver=20.0.14 +nextcloud_hash=92cac708915f51ee2afc1787fd845476fd090c81 + +# Nextcloud apps +# -------------- +# * Find the most recent tag that is compatible with the Nextcloud version above by +# consulting the ... node at: +# https://github.com/nextcloud-releases/contacts/blob/maaster/appinfo/info.xml +# https://github.com/nextcloud-releases/calendar/blob/master/appinfo/info.xml +# https://github.com/nextcloud/user_external/blob/master/appinfo/info.xml +# * The hash is the SHA1 hash of the ZIP package, which you can find by just running this script and +# copying it from the error message when it doesn't match what is below. +contacts_ver=4.0.7 +contacts_hash=8ab31d205408e4f12067d8a4daa3595d46b513e3 +calendar_ver=3.0.4 +calendar_hash=6fb1e998d307c53245faf1c37a96eb982bbee8ba +user_external_ver=1.0.0 +user_external_hash=3bf2609061d7214e7f0f69dd8883e55c4ec8f50a + +# Clear prior packages and install dependencies from apt. + apt-get purge -qq -y owncloud* # we used to use the package manager apt_install php php-fpm \ @@ -46,11 +79,11 @@ InstallNextcloud() { # their github repositories. mkdir -p /usr/local/lib/owncloud/apps - wget_verify https://github.com/nextcloud/contacts/releases/download/v$version_contacts/contacts.tar.gz $hash_contacts /tmp/contacts.tgz + wget_verify https://github.com/nextcloud-releases/contacts/releases/download/v$version_contacts/contacts-v$version_contacts.tar.gz $hash_contacts /tmp/contacts.tgz tar xf /tmp/contacts.tgz -C /usr/local/lib/owncloud/apps/ rm /tmp/contacts.tgz - wget_verify https://github.com/nextcloud/calendar/releases/download/v$version_calendar/calendar.tar.gz $hash_calendar /tmp/calendar.tgz + wget_verify https://github.com/nextcloud-releases/calendar/releases/download/v$version_calendar/calendar-v$version_calendar.tar.gz $hash_calendar /tmp/calendar.tgz tar xf /tmp/calendar.tgz -C /usr/local/lib/owncloud/apps/ rm /tmp/calendar.tgz @@ -96,16 +129,6 @@ InstallNextcloud() { fi } -# Nextcloud Version to install. Checks are done down below to step through intermediate versions. -nextcloud_ver=20.0.8 -nextcloud_hash=372b0b4bb07c7984c04917aff86b280e68fbe761 -contacts_ver=3.5.1 -contacts_hash=d2ffbccd3ed89fa41da20a1dff149504c3b33b93 -calendar_ver=2.2.0 -calendar_hash=673ad72ca28adb8d0f209015ff2dca52ffad99af -user_external_ver=1.0.0 -user_external_hash=3bf2609061d7214e7f0f69dd8883e55c4ec8f50a - # Current Nextcloud Version, #1623 # Checking /usr/local/lib/owncloud/version.php shows version of the Nextcloud application, not the DB # $STORAGE_ROOT/owncloud is kept together even during a backup. It is better to rely on config.php than