]> git.donarmstrong.com Git - roundcube.git/blobdiff - debian/roundcube-core.postinst
Fix MySQL indexes if upgrading from 0.5-2 or lesser. Closes: #610725.
[roundcube.git] / debian / roundcube-core.postinst
index 5db3c4b328da05b4862d0fe4cf9f1edd4760b7da..f4e2a8273a9cf551480fd564f46e099c43c821c8 100644 (file)
@@ -9,7 +9,7 @@ set -e
 . /usr/share/dbconfig-common/dpkg/postinst 
 dbc_generate_include=php:/etc/roundcube/debian-db.php
 dbc_generate_include_owner="www-data:www-data"
-dbc_generate_include_perms="660"
+dbc_generate_include_perms="640"
 dbc_dbfile_owner="www-data:www-data"
 dbc_dbfile_perms="0660"
 dbc_dbuser=roundcube
@@ -39,6 +39,27 @@ apache_install() {
 case "$1" in
     configure)
 
+       # We try to fix an incomplete upgrade (see #610725)
+       if [ -n "$2" ] && dpkg --compare-versions "$2" le 0.5-2; then
+           db_get roundcube/dbconfig-upgrade || true
+           if [ x"$RET" = x"true" ]; then
+               # Ok, we may need to do some upgrade steps. Let's get
+               # database parameters
+               eval `sed -n 's/^\$\(.*\);$/\1/p' /etc/roundcube/debian-db.php`
+               if [ x"$dbtype" = x"mysql" ]; then
+                   echo "Fixing MySQL indexes (you can ignore errors)..."
+                   MYSQLARGS="-f -u $dbuser -p$dbpass $dbname"
+                   [ -z "$dbserver" ] || MYSQLARGS="-h $dbserver $MYSQLARGS"
+                   [ -z "$dbport" ] || MYSQLARGS="-P $dbport $MYSQLARGS"
+                   cat <<EOF | mysql $MYSQLARGS || true
+ALTER TABLE \`messages\` ADD INDEX \`index_index\` (\`user_id\`, \`cache_key\`, \`idx\`);
+ALTER TABLE \`session\` CHANGE \`vars\` \`vars\` MEDIUMTEXT NOT NULL;
+ALTER TABLE \`contacts\`ADD INDEX \`user_contacts_index\` (\`user_id\`,\`email\`);
+EOF
+               fi
+           fi
+       fi
+
        CONFFILE=/etc/roundcube/main.inc.php
        touch $CONFFILE.ucftmp
        chmod 640 $CONFFILE.ucftmp
@@ -71,7 +92,7 @@ case "$1" in
        cat /usr/share/roundcube/main.inc.php.dist | \
            sed -e "s+^\(\$rcmail_config\['default_host'\] = \)''\(;\)\$+\1${hosts}\2+" \
                -e "s+^\(\$rcmail_config\['des_key'\] = '\).*\(';\)\$+\1$deskey\2+" \
-               -e "s+^\(\$rcmail_config\['locale_string'\] = '\).*\(';\)\$+\1${language}\2+" >> $CONFFILE.ucftmp
+               -e "s+^\(\$rcmail_config\['language'\] = \).*\(;\)\$+\1'${language}'\2+" >> $CONFFILE.ucftmp
 
        ucf --debconf-ok $CONFFILE.ucftmp $CONFFILE
        chown root:www-data $CONFFILE
@@ -113,7 +134,6 @@ case "$1" in
        chmod -R 750 /var/log/roundcube
        chown -R www-data:www-data /var/lib/roundcube/temp
        chmod -R 750 /var/lib/roundcube/temp
-       chown www-data:adm /var/lib/roundcube/skins
 
     ;;