[ "$DEBIAN_SCRIPT_DEBUG" ] && set -x
+# Source debconf library.
+. /usr/share/debconf/confmodule
+
case "$1" in
configure)
# continue below
. /usr/share/carnet-tools/functions.sh
unset CP_ECHO_RETURN
-mv_old_backups() {
+mv_old_backups () {
# Clean up /etc, nove old jun^H^H^Hbackups where they belong
glob="$1.old.*-*-*.*:*:*"
fi
}
+# listconffiles ()
+#
+# Recursively walks /etc/apache2/apache2.conf for Include directives.
+# Returns all configfiles so defined.
+#
+listconffiles () {
+
+ local i incs
+
+ incs=`awk 'tolower($1) == "include" { sub("/$","/*",$2); print $2; }' $1`
+ if [ -n "$incs" ]; then
+ for i in $incs; do
+ if [ -e "$i" ]; then echo "$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
+ /usr/sbin/locale-gen
+ fi
+}
+
-reload=""
+need_restart=0
DATE=`date +%Y-%m-%d.%H:%M:%S`
CONFDIR=/etc/squirrelmail
CONF=$CONFDIR/apache.conf
if ! cmp -s "$CONF" "/var/backups/$backup_name.bak"; then
echo "."
cp_echo "CN: Updated Apache2 configuration for Squirrelmail."
- reload="reload"
+ need_restart=1
else
echo "... no changes."
fi
# (directory /etc/apache2/conf.d/), but only if we are not present in
# Apache2 configuration at all.
#
-# We're using listconffiles from apache-common Debian package. Yes,
-# it works with Apache2 configurations too.
+# We're not using listconffiles from apache-common Debian package.
+# apache-common is no longer available in Debian Lenny. We're using
+# listconffiles() function instead.
#
-apache2listconf=`/usr/share/apache/listconffiles -V $hconf | tr '\a' ' ' | grep "$CONF"` || true
+apache2listconf=`listconffiles "$hconf" | grep "$CONF"` || true
apache2squirrel=`ls -l /etc/apache2/conf.d/ | grep "$CONF"` || true
if [ -z "$apache2listconf" -a -z "$apache2squirrel" ]; then
ln -s "$CONF" /etc/apache2/conf.d/squirrelmail-cn.conf
- reload=reload
+ need_restart=1
fi
# We use sed to replace old defaults with ours.
# Must escape \$ because of shell expansion.
#
-seddef="/^[ ]*\\\$org_logo[ ]*=/s/sm_logo\.jpg/sm_carnet_logo.jpg/;
- /^[ ]*\\\$org_logo[ ]*=/s/sm_logo\.png/sm_carnet_logo.jpg/;
+seddef="/^[ ]*\\\$org_logo[ ]*=/s/sm_logo\.jpg/sm_carnet_logo.png/;
+ /^[ ]*\\\$org_logo[ ]*=/s/sm_logo\.png/sm_carnet_logo.png/;
+ /^[ ]*\\\$org_logo[ ]*=/s/sm_carnet_logo\.jpg/sm_carnet_logo.png/;
/^[ ]*\\\$domain[ ]*=/s/mydomain\.com/$domainname/;
/^[ ]*\\\$default_charset[ ]*=/s/iso-8859-1/iso-8859-2/;
/^[ ]*\\\$org_logo_width[ ]*=/s/308/0/;
/^[ ]*\\\$data_dir[ ]*=/s/\.\.\/data\//\/var\/lib\/squirrelmail\/data\//;
"
-# Check for our uw-imap package; if it is installed, assume it's used.
+# Left frame size to 220px.
+# $default_left_size = '220';
+#
+db_get squirrelmail-cn/leftwidth || true
+if [ "$RET" = "true" ]; then
+ seddef="$seddef/^[ ]*\\\$default_left_size[ ]*=/s/'[0-9]*'/'220'/;
+ "
+fi
+
+# Change CSS file for Squirrelmail.
+# $theme_css = SM_PATH . 'themes/css/squirrelmail-cn.css';
#
-if dpkg -l uw-imap-ssl-cn 2>/dev/null | grep -q '^ii'; then
- seddef="$seddef/^[ ]*\\\$imap_server_type[ ]*=/ {s/cyrus/uw/;s/other/uw/;}
+db_get squirrelmail-cn/themecss || true
+if [ "$RET" = "true" ]; then
+ seddef="$seddef/^[ ]*\\\$theme_css[ ]*=/s/=.*/= SM_PATH . 'themes\/css\/squirrelmail-cn.css';/;
"
fi
+db_stop || true
+
# Check for our dovecot package; if it is installed, assume it's used.
#
if dpkg -l dovecot-cn 2>/dev/null | grep -q '^ii'; then
# Would there be any changes, perhaps?
#
if cp_check_and_sed '.' "$seddef" "$CONF"; then
- changed=1
-fi
-
-if grep -q x62 "$CONF"; then
- really_old_config=1
-fi
-
-
-#
-# MORE FIXES...
-#
-
-# Global $config_version;
-#
-if ! egrep -q '^[ ]*global[ ]+\$config_version' "$CONF"; then
- really_old_config=1
- #echo "CN: Adding \"global \$config_version;\" to config.php."
- perl -p -e 'print "global \$config_version;\n" if (/^\s*\$config_version/);' \
- "$CONF" > "$CONF.tmp"
- cp_mv "$CONF.tmp" "$CONF"
+ need_restart=1
fi
-# This was missing on some machines
-#
-if ! egrep -q '^[ ]*\$allow_thread_sort' $CONF; then
- to_add='\$allow_thread_sort = false;\n'
- cp_echo "CN: Adding \"\$allow_thread_sort\"."
- perl -p -e 'if (! $a && /^\s*\$edit_name/) {
- $_ .= "'"$to_add"'"; $a = 1; }
- elsif (! $a && /^\?>/) {
- $_ = "'"$to_add"'" . $_; $a = 1; }' \
- $CONF > "$CONF.tmp"
- cp_mv "$CONF.tmp" "$CONF"
-fi
-# Shouldn't use /etc/hostname, especially if it contains only the host part
-# replace
-# $domain = implode('', file('/etc/hostname'));
-# with
-# $domain = trim(implode('',file('/etc/'.(file_exists('/etc/mailname')?'mail':'host').'name')));
+# Check /etc/hostname and /etc/mailname, because
+# $domain = trim(implode('', file('/etc/'.(file_exists('/etc/mailname')?'mail':'host').'name')));
#
-if egrep -q "^[[:blank:]]*\\\$domain[[:blank:]]*=[[:blank:]]*implode\\('',[[:blank:]]*file\\('/etc/hostname'\\)\\);" $CONF; then
- nodots=
- nomailname=
- grep -q '\.' /etc/hostname || nodots=1
- [ -e /etc/mailname ] || nomailname=1
- if cp_check_and_sed "^[[:blank:]]*\\\$domain[[:blank:]]*=[[:blank:]]*implode\\('',[[:blank:]]*file\\('/etc/hostname'\\)\\);" \
- "s|^[ \t]*\\\$domain[ \t]*=[ \t]*implode('',[ \t]*file('/etc/hostname'));|\$domain = trim(implode('',file('/etc/'.(file_exists('/etc/mailname')?'mail':'host').'name')));|" \
- $CONF; then
- cp_echo "CN: config.php updated to use either /etc/mailname or /etc/hostname"
- fi
-fi
+nodots=
+nomailname=
+grep -q '\.' /etc/hostname || nodots=1
+[ -e /etc/mailname ] || nomailname=1
-# Generate hr_HR locale if needed.
+# Check for hr_HR locale.
#
-if ! egrep -q '^hr_HR ISO-8859-2\b' /etc/locale.gen; then
- if [ -f /etc/locale.gen ]; then
- echo "hr_HR ISO-8859-2" >> /etc/locale.gen
- cp_echo "CN: Added hr_HR locale to /etc/locale.gen."
- else
- echo "hr_HR ISO-8859-2" > /etc/locale.gen
- cp_echo "CN: /etc/locale.gen created."
- fi
- dpkg-reconfigure -f noninteractive locales
+if [ -f /etc/locale.gen ]; then
+ if ! egrep -q '^hr_HR ISO-8859-2\b' /etc/locale.gen; then
+ echo "hr_HR ISO-8859-2" >> /etc/locale.gen
+ cp_echo "CN: Added hr_HR locale to /etc/locale.gen."
+ genlocales
+ need_restart=1
+ fi
+else
+ echo "hr_HR ISO-8859-2" > /etc/locale.gen
+ cp_echo "CN: /etc/locale.gen created."
+ genlocales
+ need_restart=1
fi
-# Check Apache2 web server for restart/reload.
+# Check Apache2 web server for restart.
#
-if [ -n "$reload" ]; then
+if [ $need_restart -eq 1 ]; then
# Restart Apache2 web server.
if [ -x "/etc/init.d/apache2" ]; then
if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
- invoke-rc.d apache2 "$reload" || exit $?
+ invoke-rc.d apache2 restart || exit $?
else
- /etc/init.d/apache2 "$reload" || exit $?
+ /etc/init.d/apache2 restart || exit $?
fi
fi
fi
-# Warn user of really old config file
-#
-if [ "$really_old_config" ]; then
- echo
- echo "CN: You have a really old config file."
- cp_echo -m "CN: Old \"$CONF\" detected during installation."
- cp_echo "CN The known bad options were fixed, but it is _strongly_ recommended that"
- cp_echo "CN you either copy over the new template, and reconfigure this package"
- cp_echo
- cp_echo " cp $TMPL $CONF"
- cp_echo " dpkg-reconfigure squirrelmail-cn"
- cp_echo
- cp_echo "CN or use squirrelmail-configure (conf.pl) to generate a fresh"
- cp_echo " ${CONF} file."
- echo
-fi
-
-
# Mailname info...
#
if [ "$nodots" -o "$nomailname" ]; then