#!/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="root: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 and #613586) 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 # 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 < "$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 < /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 | 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 # 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