From: Vincent Bernat <bernat@debian.org>
Date: Fri, 18 Feb 2011 21:04:12 +0000 (+0100)
Subject: Imported Debian patch 0.5.1+dfsg-3
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=f7740e98f54de40e5fc1de605c7881f07d04d978;p=roundcube.git

Imported Debian patch 0.5.1+dfsg-3
---

diff --git a/debian/changelog b/debian/changelog
index 6e2c388..947a76d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+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>  Fri, 18 Feb 2011 22:04:12 +0100
+
 roundcube (0.5.1+dfsg-2) unstable; urgency=low
 
   * Remove all "ADD INDEX" from MySQL 0.5-1 upgrade file and put them in
diff --git a/debian/roundcube-core.postinst b/debian/roundcube-core.postinst
index 64bdf5d..59f85f7 100644
--- a/debian/roundcube-core.postinst
+++ b/debian/roundcube-core.postinst
@@ -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
diff --git a/debian/roundcube-plugins.install b/debian/roundcube-plugins.install
index 4c6e103..f99e3ff 100644
--- a/debian/roundcube-plugins.install
+++ b/debian/roundcube-plugins.install
@@ -10,6 +10,7 @@ plugins/managesieve/ usr/share/roundcube/plugins
 plugins/markasjunk/ usr/share/roundcube/plugins
 plugins/new_user_dialog/ usr/share/roundcube/plugins
 plugins/new_user_identity/ usr/share/roundcube/plugins
+plugins/show_additional_headers/ usr/share/roundcube/plugins
 plugins/squirrelmail_usercopy/ usr/share/roundcube/plugins
 plugins/subscriptions_option/ usr/share/roundcube/plugins
 plugins/userinfo/ usr/share/roundcube/plugins