]> git.donarmstrong.com Git - roundcube.git/commitdiff
Use dbconfig-common to force some upgrade commands using some ugly
authorVincent Bernat <bernat@debian.org>
Fri, 18 Feb 2011 21:05:18 +0000 (21:05 +0000)
committerJérémy Bobbio <lunar@debian.org>
Sat, 18 Jun 2011 19:33:14 +0000 (21:33 +0200)
hacks. This should fix any remaining problems with MySQL
upgrade. Closes: #613586.

debian/changelog
debian/roundcube-core.postinst

index 442433e9a34af5b0cc9200aee37981cbbb4bfa81..947a76dbb05a5e6dbf468e49d2d2dcb677375a19 100644 (file)
@@ -1,8 +1,11 @@
-roundcube (0.5.1+dfsg-3) UNRELEASED; urgency=low
+roundcube (0.5.1+dfsg-3) unstable; urgency=low
 
   * Install show_additional_headers plugin in roundcube-plugins package.
+  * Use dbconfig-common to force some upgrade commands using some ugly
+    hacks. This should fix any remaining problems with MySQL
+    upgrade. Closes: #613586.
 
- -- Vincent Bernat <bernat@debian.org>  Thu, 17 Feb 2011 19:14:50 +0100
+ -- Vincent Bernat <bernat@debian.org>  Fri, 18 Feb 2011 22:04:12 +0100
 
 roundcube (0.5.1+dfsg-2) unstable; urgency=low
 
index 64bdf5d8a2192883e81cdefb693787177bc91af8..59f85f727ba009b087ba18dc6b201321ab2c2386 100644 (file)
@@ -39,21 +39,31 @@ apache_install() {
 case "$1" in
     configure)
 
-       # We try to fix an incomplete upgrade (see #610725)
+       # We try to fix an incomplete upgrade (see #610725 and #613586)
        if [ -n "$2" ] && dpkg --compare-versions "$2" le 0.5.1+dfsg-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
+               if [ x"$dbc_dbtype" = x"mysql" ]; then
+                   # Ok, we may need to do some upgrade steps.
+                   echo "Fixing MySQL installation..."
+                   if dpkg --compare-versions "$2" ge 0.5; then
+                       # Hack (ugly) to replace "mysql" by "mysql -f"
+                       real_mysql="$(which mysql)"
+                       workdir="$(mktemp -d)"
+                       oldpath="$PATH"
+                       cat <<EOF > "$workdir/mysql"
+#!/bin/sh
+"$real_mysql" "\$@" -f
+EOF
+                       chmod +x "$workdir/mysql"
+                       PATH="$workdir:$PATH"
+                       dbc_mysql_exec_file \
+                           /usr/share/dbconfig-common/data/roundcube/upgrade/mysql/0.5-1 || true
+                       PATH="$oldpath"
+                       rm -rf "$workdir"
+                    fi
+                   cat <<EOF | while read command; do dbc_mysql_exec_command "$command" || true ; done
 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\`);
 ALTER TABLE \`identities\` ADD INDEX \`user_identities_index\` (\`user_id\`, \`del\`);
 EOF