]> git.donarmstrong.com Git - roundcube.git/blobdiff - debian/roundcube-core.postinst
Fix rights of files generated by UCF. Closes: #671474.
[roundcube.git] / debian / roundcube-core.postinst
index 59f85f727ba009b087ba18dc6b201321ab2c2386..36457be2768b27da80f9444da29317c663452263 100644 (file)
@@ -8,7 +8,7 @@ set -e
 . /usr/share/debconf/confmodule
 . /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_owner="root:www-data"
 dbc_generate_include_perms="640"
 dbc_dbfile_owner="www-data:www-data"
 dbc_dbfile_perms="0660"
@@ -40,7 +40,7 @@ case "$1" in
     configure)
 
        # 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
+       if [ -n "$2" ] && dpkg --compare-versions "$2" le 0.5.1+dfsg-5; then
            db_get roundcube/dbconfig-upgrade || true
            if [ x"$RET" = x"true" ]; then
                if [ x"$dbc_dbtype" = x"mysql" ]; then
@@ -65,6 +65,7 @@ EOF
                    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 \`contacts\`ADD INDEX \`user_contacts_index\` (\`user_id\`,\`email\`);
+ALTER TABLE \`identities\` ADD \`changed\` datetime NOT NULL DEFAULT '1000-01-01 00:00:00' AFTER \`user_id\`;
 ALTER TABLE \`identities\` ADD INDEX \`user_identities_index\` (\`user_id\`, \`del\`);
 EOF
                fi
@@ -74,6 +75,7 @@ EOF
        CONFFILE=/etc/roundcube/main.inc.php
        touch $CONFFILE.ucftmp
        chmod 640 $CONFFILE.ucftmp
+       chown root:www-data $CONFFILE.ucftmp
 
        db_get roundcube/hosts || true
        hosts="$RET"
@@ -100,14 +102,27 @@ EOF
        done
 
        # Put hosts, language and key in main.inc.php
-       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\['language'\] = \).*\(;\)\$+\1'${language}'\2+" >> $CONFFILE.ucftmp
+       cat /usr/share/roundcube/main.inc.php.dist | while read line; do
+           case "$line" in
+               "\$rcmail_config['default_host'] = "*)
+                   printf "\$rcmail_config['default_host'] = %s;\n" "${hosts}"
+                   ;;
+               "\$rcmail_config['des_key'] = "*)
+                   printf "\$rcmail_config['des_key'] = '%s';\n" "${deskey}"
+                   ;;
+               "\$rcmail_config['language'] = "*)
+                   printf "\$rcmail_config['language'] = '%s';\n" "${language}"
+                   ;;
+               *)
+                   printf "%s\n" "$line"
+                   ;;
+           esac
+       done >> $CONFFILE.ucftmp
 
        ucf --debconf-ok $CONFFILE.ucftmp $CONFFILE
-       chown root:www-data $CONFFILE
-        rm -f $CONFFILE.ucftmp
+       chown root:www-data $CONFFILE
+       [ ! -f $CONFFILE.dpkg-dist ] || chown root:www-data $CONFFILE.dpkg-dist
+       rm -f $CONFFILE.ucftmp
        
        # Handle webserver reconfiguration/restart ; stolen from zabbix package
        db_get roundcube/reconfigure-webserver || true