#!/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="640" dbc_dbfile_owner="www-data:www-data" dbc_dbfile_perms="0660" dbc_dbuser=roundcube dbc_dbname=roundcube dbc_go roundcube $@ lighttpd_install() { if [ ! -f /etc/lighttpd/conf-available/50-roundcube.conf ] ; then if [ ! -x /usr/sbin/lighty-enable-mod ] ; then echo "Lighttpd not installed, skipping" else ln -s /etc/roundcube/lighttpd.conf /etc/lighttpd/conf-available/50-roundcube.conf lighty-enable-mod roundcube fi fi } apache_install() { webserver=$1 if [ -d /etc/$webserver/conf.d ] && [ ! -e /etc/$webserver/conf.d/roundcube ]; then ln -s /etc/roundcube/apache.conf /etc/$webserver/conf.d/roundcube fi } 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 < /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\['language'\] = \).*\(;\)\$+\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%,} if [ "$webserver" = "lighttpd" ] ; then lighttpd_install else apache_install $webserver fi test -x /usr/sbin/$webserver || continue 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%,} # Redirection of 3 is needed because Debconf uses it and it might # be inherited by webserver. See bug #446324. if [ -x /usr/sbin/invoke-rc.d ]; then invoke-rc.d $webserver reload 3>/dev/null || true else /etc/init.d/$webserver reload 3>/dev/null || true 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 ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac #DEBHELPER# exit 0