--- /dev/null
+Source: roundcube-cn
+Priority: optional
+Section: web
+Maintainer: Ivan Rako <Ivan.Rako@CARNet.hr>
+Build-Depends: debhelper (>> 9)
+Standards-Version: 3.9.8
+Homepage: https://roundcube.net/
+
+Package: roundcube-cn
+Architecture: all
+Pre-Depends: apache2-cn (>= 2.4.10+1), php-cn | php5-cn | php7.0-cn
+Depends: roundcube (>= 1.2.3+dfsg.1-4+deb9u3), carnet-tools-cn (>= 3.1.0), hostname (>= 3.15), ${misc:Depends}
+Conflicts: squirrelmail-cn, squirrelmail
+Recommends: dovecot-cn | imap-server
+Description: skinnable AJAX based webmail solution for IMAP servers
+ RoundCube Webmail is a browser-based multilingual IMAP client with an
+ application-like user interface. It provides full functionality
+ expected from an e-mail client, including MIME support, address book,
+ folder manipulation and message filters.
+ .
+ This package contains additional CARNet configuration.
--- /dev/null
+#!/bin/sh
+
+set -e
+
+[ "$DEBIAN_SCRIPT_DEBUG" ] && set -x
+
+# Source debconf library.
+. /usr/share/debconf/confmodule
+
+case "$1" in
+ configure)
+ # continue below
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+ exit 0
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 0
+ ;;
+esac
+
+
+PKG=roundcube-cn
+domainname=`dnsdomainname`
+FQDN=`hostname --fqdn`
+
+# Include CARNet functions
+. /usr/share/carnet-tools/functions.sh
+unset CP_ECHO_RETURN
+
+
+if [ -e /usr/share/apache2/apache2-maintscript-helper ]; then
+ . /usr/share/apache2/apache2-maintscript-helper
+
+ roundcube_enable() {
+ cp_echo "CN: Enabling $PKG configuration for Apache2."
+ return 0
+ }
+else
+ cp_echo "CN: Could not load Apache 2.4 maintainer script helper."
+
+ roundcube_enable() {
+ return 1
+ }
+fi
+
+mv_old_backups () {
+ # Clean up /etc, nove old jun^H^H^Hbackups where they belong
+ local glob="$1.old.*-*-*.*:*:*"
+
+ # ${glob%/*} (dirname $glob) does not work for files in root
+ if [ -n "$(find ${glob%/*} -name ${glob##*/})" ]; then
+ for i in $(find ${glob%/*} -name ${glob##*/})
+ do
+ cp_backup_conffile "$i" "$2"
+ rm -f "$i"
+ done
+ fi
+}
+
+# listconffiles ()
+#
+# Recursively walks /etc/apache2/apache2.conf for Include and
+# IncludeOptional directives.
+# Returns all configfiles so defined.
+#
+listconffiles () {
+ local i incs
+ local base_dir="`dirname $1`"
+
+ incs=`awk 'tolower($1) ~ /include(optional)?/ { sub("/$","/*",$2); print $2; }' $1`
+ incs=`echo "$incs" | sed -r "s#^([^/])#${base_dir}/\1#"`
+ if [ -n "$incs" ]; then
+ for i in $incs; do
+ if [ -e "$i" ]; then echo "`readlink -m -q $i`"; listconffiles "$i"; fi
+ done
+ fi
+}
+
+# genlocales ()
+#
+# Update/generate localisation files from templates if locales-all
+# is not installed.
+#
+genlocales () {
+ if [ -f /usr/lib/locales-all/supported.tar.lzma ] ; then
+ cp_echo "CN: locales-all installed, skipping locales generation."
+ else
+ locale-gen
+ fi
+}
+
+
+DATE=`date +%Y-%m-%d.%H:%M:%S`
+CONFDIR=/etc/roundcube
+CONF=$CONFDIR/apache.conf
+
+backup_name=roundcube_apache.conf
+mv_old_backups $CONF $backup_name
+
+# Check Apache2 web server configuration.
+#
+if [ -f "$CONF" ]; then
+
+ # Backup first.
+ if cp_check_and_backup "$CONF" "$backup_name"; then
+ cp_echo "CN: Old $CONF saved as \"/var/backups/$backup_name.bak\"."
+ fi
+
+ # Check if we already modified apache.conf
+ if ! egrep -q "^[ ]+RewriteRule \. https" "$CONF"; then
+ echo -n "CN: Updating Apache2 configuration for Roundcube"
+ perl -n -e 'print if ! m|^Alias\s*/webmail|' "$CONF" > $CONF.tmp
+
+ cp-update -t $PKG $CONF.tmp <<-EOF
+# Force SSL for /webmail -> you can still use /roundcube
+Alias /webmail /var/lib/roundcube
+
+<IfModule mod_rewrite.c>
+ <IfModule mod_ssl.c>
+ <Location /webmail>
+ RewriteEngine on
+ RewriteCond %{HTTPS} !=on
+ RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L]
+ </Location>
+ </IfModule>
+</IfModule>
+
+#
+# WARNING: This file is automatically included in each VirtualHost
+# entry you might have. Do not enable the VirtualHost example provided
+# in this file, it WILL break your Apache configuration. Copy the
+# VirtualHost section to the standard webserver configuration file
+# instead.
+#
+EOF
+ cp_mv $CONF.tmp $CONF
+
+ # This will break if cp_backup_conffile ever changes destination path
+ if ! cmp -s "$CONF" "/var/backups/$backup_name.bak"; then
+ echo "."
+ cp_echo "CN: Updated Apache2 configuration for Roundcube."
+ else
+ echo "... no changes."
+ fi
+ fi
+fi
+
+
+hconf=/etc/apache2/apache2.conf
+sconf=/etc/apache2/sites-available/ssl
+
+# Initial CARNet config tweaks.
+#
+CONF="$CONFDIR/config.inc.php"
+mv_old_backups "$CONF" "`basename $CONF`"
+if cp_check_and_backup "$CONF"; then
+ cp_echo "CN: Old $CONF saved as \"/var/backups/${CONF##*/}.bak\"."
+fi
+
+# We use sed to replace old defaults with ours.
+# Must escape \$ because of shell expansion.
+#
+seddef="/default_host/s/''/'localhost'/g;
+ /smtp_server/s/''/'localhost'/g;
+ "
+
+cp_check_and_sed '.' "$seddef" "$CONF" || true
+
+# Mailname info...
+#
+if [ "$nodots" -o "$nomailname" ]; then
+ cp_echo
+ cp_echo "CN: Make sure that /etc/mailname contains a fully qualified domain name"
+ cp_echo "CN of this machine! Sending mail via Roundcube might fail if the FQDN"
+ cp_echo "CN cannot be found in either /etc/mailname or /etc/hostname."
+ cp_echo "CN Read mailname(5) man page for details."
+ cp_echo -mailonly "CN If this machine receives mail for both user@`hostname -f` and "
+ cp_echo -mailonly "CN user@`hostname -d`, you can also put just the domain in there."
+ cp_echo
+fi
+
+if roundcube_enable; then
+ apache2_invoke enconf roundcube
+fi
+
+if ! apache2ctl configtest >/dev/null 2>&1; then
+ cp_echo "CN: Your Apache2 configuration seems to be broken."
+ cp_echo "CN: Please, check the service after the installation finishes!"
+fi
+
+# Mail root
+#
+cp_mail "$PKG"
+
+
+
+exit 0