X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=debian%2Froundcube-core.postinst;fp=debian%2Froundcube-core.postinst;h=33d691264f9babc88cf8f1e86c472f189c36aa7f;hb=58041fc77c3079bfab9002c5f59cd72cb584baed;hp=0000000000000000000000000000000000000000;hpb=f1869b091127d0e6e866deb9ecb250ed98814e7a;p=roundcube.git diff --git a/debian/roundcube-core.postinst b/debian/roundcube-core.postinst new file mode 100644 index 0000000..33d6912 --- /dev/null +++ b/debian/roundcube-core.postinst @@ -0,0 +1,164 @@ +#!/bin/sh +# postinst script for roundcube +# +# see: dh_installdeb(1) + +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_perms="660" +dbc_dbfile_owner="www-data:www-data" +dbc_dbfile_perms="0660" +dbc_dbuser=roundcube +dbc_dbname=roundcube + +dbc_go roundcube $@ + +case "$1" in + configure) + + # From 0.1-beta2.2 to 0.1-rc1, a column was added to table + # `identities'. For MySQL and PostgreSQL, this is handled by + # dbconfig-common but for sqlite, there is no way to add a + # column to a table. Therefore, we dump here the table and add + # the column. + [ "$dbc_upgrade" = "true" ] && { + case "$dbc_dbtype" in + sqlite) + db="${dbc_basepath}/${dbc_dbname}" + # OK, we need to check if the table contains html_signature + if ! sqlite "$db" '.schema identities' | grep -q html_signature; then + # We need to add it + echo -n "Need to upgrade 'identities' table in $db... " + upgrade_tmp=$(mktemp -t roundcube.sqlite.XXXXXXXXXX) + ( + cat < $upgrade_tmp + sqlite "$db" < $upgrade_tmp + rm $upgrade_tmp + echo "OK" + fi + ;; + *) + # Do nothing + ;; + esac + } + + CONFFILE=/etc/roundcube/main.inc.php + touch $CONFFILE.ucftmp + chmod 640 $CONFFILE.ucftmp + + db_get roundcube/hosts || true + hosts="$RET" + if [ "$hosts" != "" ]; then + hosts="array(\"$(echo $hosts | sed 's/ /\",\"/g')\")" + else + hosts="''" + fi + + db_get roundcube/language || true + language="$RET" + + # Get current 3DES key from /etc/roundcube/main.inc.php + [ -f /etc/roundcube/main.inc.php ] && { + deskey=$(sed -n "s+^\$rcmail_config\['des_key'\] = '\(.*\)';\$+\1+p" \ + /etc/roundcube/main.inc.php) + } + # If this is the default key, forget it ! + [ "$deskey" = "rcmail-!24ByteDESkey*Str" ] && unset deskey + # Generate a new one + while [ -z "$deskey" ]; do + deskey=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | \ + tr -c -d '[A-Za-z0-9]' | sed -n 's/\(.\{24\}\).*/\1/p') + 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\['locale_string'\] = '\).*\(';\)\$+\1${language}\2+" >> $CONFFILE.ucftmp + + ucf --debconf-ok $CONFFILE.ucftmp $CONFFILE + chown root:www-data $CONFFILE + rm -f $CONFFILE.ucftmp + + # Handle webserver reconfiguration/restart ; stolen from zabbix package + db_get roundcube/reconfigure-webserver || true + webservers="$RET" + restart="" + + for webserver in $webservers; do + webserver=${webserver%,} + test -x /usr/sbin/$webserver || continue + + if [ ! -f /etc/$webserver/conf.d/roundcube ] && [ ! -h /etc/$webserver/conf.d/roundcube ]; then + ln -s /etc/roundcube/apache.conf /etc/$webserver/conf.d/roundcube + fi + restart="$restart $webserver" + done + + db_get roundcube/restart-webserver || true + res="$RET" + db_stop || true + if [ "$res" = "true" ]; then + for webserver in $restart; do + webserver=${webserver%,} + if [ -x /usr/sbin/invoke-rc.d ]; then + invoke-rc.d $webserver restart + else + /etc/init.d/$webserver restart + fi + done + fi + + chown -R www-data:adm /var/log/roundcube + 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 + + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + + +#DEBHELPER# + +exit 0 + +