#!/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 $@ 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) 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\['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 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