Просмотр исходного кода

[Installer] Fix upgrade step process

Updater was missing steps if versions were skipped in-between leading to an inconsistent system state.
Kristan Kenney 5 лет назад
Родитель
Сommit
02490fe1fe

+ 18 - 15
func/upgrade.sh

@@ -80,20 +80,6 @@ upgrade_start_routine() {
         echo "[ * ] Adding global release branch variable to system configuration..."
         $BIN/v-change-sys-config-value 'RELEASE_BRANCH' 'release'
     fi
-
-    #####################################################################
-    #######         Start upgrade for pre-release builds          #######
-    #######     Ensures clean upgrade path from v1.0.1 onwards    #######
-    #######             DO NOT MODIFY THIS SECTION                #######
-    #####################################################################
-
-    if [ $VERSION = "0.9.8-25" ] || [ $VERSION = "0.9.8-26" ] || [ $VERSION = "0.9.8-27" ] || [ $VERSION = "0.9.8-28" ] || [ $VERSION = "0.9.8-29" ] || [ $VERSION = "0.10.0" ] || [ $VERSION = "1.00.0-190618" ] || [ $VERSION = "1.00.0-190621" ] || [ $VERSION = "1.0.0" ]; then
-        source $HESTIA/install/upgrade/versions/previous/0.9.8-29.sh
-        source $HESTIA/install/upgrade/versions/previous/1.00.0-190618.sh
-        source $HESTIA/install/upgrade/versions/previous/1.0.1.sh
-        VERSION="1.0.1"
-        upgrade_refresh_config
-    fi
     
     #####################################################################
     #######             Start standard upgrade process            #######
@@ -107,6 +93,16 @@ upgrade_start_routine() {
         echo ""
         source $HESTIA/install/upgrade/versions/latest.sh
         VERSION="$new_version"
+        upgrade_set_version $VERSION
+        upgrade_refresh_config
+    fi
+
+    if [ $VERSION = "0.9.8-25" ] || [ $VERSION = "0.9.8-26" ] || [ $VERSION = "0.9.8-27" ] || [ $VERSION = "0.9.8-28" ] || [ $VERSION = "0.9.8-29" ] || [ $VERSION = "0.10.0" ] || [ $VERSION = "1.00.0-190618" ] || [ $VERSION = "1.00.0-190621" ] || [ $VERSION = "1.0.0" ]; then
+        source $HESTIA/install/upgrade/versions/previous/0.9.8-29.sh
+        source $HESTIA/install/upgrade/versions/previous/1.00.0-190618.sh
+        source $HESTIA/install/upgrade/versions/previous/1.0.1.sh
+        VERSION="1.0.1"
+        upgrade_set_version $VERSION
         upgrade_refresh_config
     fi
 
@@ -114,6 +110,7 @@ upgrade_start_routine() {
     if [ $VERSION = "1.0.1" ]; then
         source $HESTIA/install/upgrade/versions/previous/1.0.2.sh
         VERSION="1.0.2"
+        upgrade_set_version $VERSION
         upgrade_refresh_config
     fi
 
@@ -121,6 +118,7 @@ upgrade_start_routine() {
     if [ $VERSION = "1.0.2" ]; then
         source $HESTIA/install/upgrade/versions/previous/1.0.3.sh
         VERSION="1.0.3"
+        upgrade_set_version $VERSION
         upgrade_refresh_config
     fi
 
@@ -128,6 +126,7 @@ upgrade_start_routine() {
     if [ $VERSION = "1.0.3" ]; then
         source $HESTIA/install/upgrade/versions/previous/1.0.4.sh
         VERSION="1.0.4"
+        upgrade_set_version $VERSION
         upgrade_refresh_config
     fi
 
@@ -135,6 +134,7 @@ upgrade_start_routine() {
     if [ $VERSION = "1.0.4" ]; then
         source $HESTIA/install/upgrade/versions/previous/1.0.5.sh
         VERSION="1.0.5"
+        upgrade_set_version $VERSION
         upgrade_refresh_config
     fi
 
@@ -142,6 +142,7 @@ upgrade_start_routine() {
     if [ $VERSION = "1.0.5" ]; then
         source $HESTIA/install/upgrade/versions/previous/1.0.6.sh
         VERSION="1.0.6"
+        upgrade_set_version $VERSION
         upgrade_refresh_config
     fi
 
@@ -149,6 +150,7 @@ upgrade_start_routine() {
     if [ $VERSION = "1.0.6" ]; then
         source $HESTIA/install/upgrade/versions/previous/1.1.0.sh
         VERSION="1.1.0"
+        upgrade_set_version $VERSION
         upgrade_refresh_config
     fi
 
@@ -156,6 +158,7 @@ upgrade_start_routine() {
     if [ $VERSION = "1.1.0" ]; then
         source $HESTIA/install/upgrade/versions/previous/1.1.1.sh
         VERSION="1.1.1"
+        upgrade_set_version $VERSION
         upgrade_refresh_config
     fi
 
@@ -243,7 +246,7 @@ upgrade_get_version() {
 upgrade_set_version() {
     # Set new version number in hestia.conf
     sed -i "/VERSION/d" $HESTIA/conf/hestia.conf
-    echo "VERSION='$new_version'" >> $HESTIA/conf/hestia.conf
+    echo "VERSION='$@'" >> $HESTIA/conf/hestia.conf
 }
 
 upgrade_rebuild_users() {

+ 5 - 10
install/upgrade/versions/previous/1.0.2.sh

@@ -43,14 +43,7 @@ fi
 # Remove Webalizer and set AWStats as default
 WEBALIZER_CHECK=$(cat $HESTIA/conf/hestia.conf | grep webalizer)
 if [ ! -z "$WEBALIZER_CHECK" ]; then
-    echo "[ * ] Removing Webalizer and setting AWStats as default web statistics backend..."
-    apt purge webalizer -y > /dev/null 2>&1
-    if [ -d "$HESTIA/data/templates/web/webalizer" ]; then
-        rm -rf $HESTIA/data/templates/web/webalizer
-    fi
-    if [ -d "/var/www/webalizer" ]; then
-        rm -rf /var/www/webalizer
-    fi
+    echo "[ * ] Set awstats as default web statistics backend..."
     $HESTIA/bin/v-change-sys-config-value 'STATS_SYSTEM' 'awstats'
 fi
 
@@ -71,5 +64,7 @@ if [ ! -z "$IMAP_SYSTEM" ]; then
 fi 
 
 # Enhance webmail security
-cp -f /etc/nginx/conf.d/webmail.inc $HESTIA_BACKUP/conf/
-sed -i "s/config|temp|logs/README.md|config|temp|logs|bin|SQL|INSTALL|LICENSE|CHANGELOG|UPGRADING/g" /etc/nginx/conf.d/webmail.inc
+if [ -e "/etc/nginx/conf.d/webmail.inc" ]; then
+    cp -f /etc/nginx/conf.d/webmail.inc $HESTIA_BACKUP/conf/
+    sed -i "s/config|temp|logs/README.md|config|temp|logs|bin|SQL|INSTALL|LICENSE|CHANGELOG|UPGRADING/g" /etc/nginx/conf.d/webmail.inc
+fi

+ 13 - 13
install/upgrade/versions/previous/1.0.4.sh

@@ -7,16 +7,16 @@
 #######################################################################################
 
 # Add php-imagick package to existing version...
-php_versions=$(ls /etc/php/*/fpm -d 2>/dev/null |wc -l)
-if [ "$php_versions" -gt 1 ]; then
-    echo "[ * ] Install PHP Imageqick..."
-    software="php-imagick"
-    for v in $(ls /etc/php/); do
-        if [ ! -d "/etc/php/$v/fpm/pool.d/" ]; then
-            continue
-        fi
-        software="$software php$v-imagick"
-    done
-fi
-apt -qq update
-apt -qq install $software -y
+#php_versions=$(ls /etc/php/*/fpm -d 2>/dev/null |wc -l)
+#if [ "$php_versions" -gt 1 ]; then
+#    echo "[ * ] Install PHP Imageqick..."
+#    software="php-imagick"
+#    for v in $(ls /etc/php/); do
+#        if [ ! -d "/etc/php/$v/fpm/pool.d/" ]; then
+#            continue
+#        fi
+#        software="$software php$v-imagick"
+#    done
+#fi
+#apt -qq update
+#apt -qq install $software -y

+ 1 - 1
src/deb/hestia/postinst

@@ -41,7 +41,7 @@ update_php_templates
 upgrade_phpmyadmin
 
 # Set new version number in hestia.conf
-upgrade_set_version
+upgrade_set_version $new_version
 
 # Perform account and domain rebuild to ensure configuration files are correct
 upgrade_rebuild_users