- local config_backup
-
- pkg base-files lt 4 && restore_config /etc/issue /etc/issue.net
- pkg bind9 lt 1:9.3.4 && restore_config /etc/bind/named.conf.options
- pkg libpam-modules lt 0.79 && restore_config /etc/security/limits.conf
- pkg login lt 1:4.0.18.1 && restore_config /etc/pam.d/login
- pkg mysql-server lt 5.0.3 && restore_config /etc/init.d/mysql \
- /etc/logrotate.d/mysql-server \
- /etc/mysql/my.cnf
- pkg ntp lt 1:4.2.2 && restore_config /etc/ntp.conf
- pkg ntpdate lt 1:4.2.2 && restore_config /etc/default/ntpdate
- pkg oidentd lt 2.0.8 && restore_config /etc/default/oidentd
- pkg postgrey lt 1.27 && restore_config /etc/default/postgrey \
- /etc/postgrey/whitelist_clients
- pkg procps lt 1:3.2.7 && restore_config /etc/sysctl.conf
- pkg sasl2-bin lt 2.1.22 && restore_config /etc/default/saslauthd
- pkg slapd lt 2.3.30 && restore_config /etc/default/slapd /etc/init.d/slapd
- pkg squirrelmail lt 2:1.4.9a && restore_config /etc/squirrelmail/apache.conf
- pkg vsftpd lt 2.0.5 && restore_config /etc/vsftpd.conf
- pkg xinetd lt 1:2.3.14 && restore_config /etc/xinetd.conf
-
- # orphaned config file - no owner
- if pkg logcheck-database lt 1.2.54; then
- rm -vf /etc/logcheck/ignore.d.server/imap
- fi
-
- # aide switched to ucf, move old configs aside
- if pkg aide lt 0.13.1; then
- for file in /etc/aide/aide.conf \
- /etc/cron.daily/aide \
- /etc/default/aide;
- do
- if [ ! -e "$file.$backup_ext" ]; then
- mv -v "$file" "$file.$backup_ext"
- fi
-
- rm -vf "$file"
- done
- fi
-
- # register cn changes in ucf managed files
- for config in /etc/apache/modules.conf \
- /etc/clamav/clamd.conf \
- /etc/clamav/freshclam.conf \
- /etc/php4/apache2/php.ini \
- /etc/php4/apache/php.ini \
- /etc/php4/cgi/php.ini \
- /etc/php4/cli/php.ini
- do
- config_backup=$config.$backup_ext
- if [ -e $config -a ! -e $config_backup ]; then
- log "Saving config file $config"
- cp -av $config $config_backup
- ucf $config_backup $config
- fi
- done
+ local hostname domain config_new memtotal memlimit
+
+ # restore simple configs
+ if pkg kernel-2.6-cn && pkg procps lt 1:3.2.7-11; then
+ if restore_file /etc/sysctl.conf; then
+ postupgrade_reconfigure kernel-2.6-cn
+ fi
+ fi
+
+ if pkg ntp-cn && pkg ntp lt 1:4.2.4p4+dfsg-8; then
+ if restore_file /etc/ntp.conf; then
+ postupgrade_reconfigure ntp-cn
+ fi
+ fi
+
+ if pkg apache2-cn && pkg apache2.2-common lt 2.2.9-10+lenny2; then
+ if restore_file /etc/apache2/ports.conf; then
+ postupgrade_reconfigure apache2-cn
+ fi
+ fi
+
+ if pkg postfix-cn && pkg sasl2-bin lt 2.1.22.dfsg1-23; then
+ if restore_file /etc/default/saslauthd; then
+ postupgrade_reconfigure postfix-cn
+ fi
+ fi
+
+ if pkg bind9-cn && pkg bind9 lt 1:9.5.1.dfsg.P1-1; then
+ if restore_file /etc/bind/named.conf.options; then
+ postupgrade_reconfigure bind9-cn
+ fi
+ fi
+
+ if pkg amavisd-cn && pkg amavisd-new lt 1:2.6.1.dfsg-1; then
+ if restore_file /etc/cron.daily/amavisd-new; then
+ rm -f /etc/cron.daily/amavisd-new.$backup_ext
+ postupgrade_reconfigure amavisd-cn
+ fi
+ fi
+
+ if pkg spamassassin-cn && pkg razor lt 1:2.85-1; then
+ if restore_file /etc/razor/razor-agent.conf; then
+ postupgrade_reconfigure spamassassin-cn
+ fi
+ fi
+
+ if pkg kernel-2.6-cn && pkg libpam-modules lt 1.0.1-5; then
+ if restore_file /etc/security/limits.conf; then
+ postupgrade_reconfigure kernel-2.6-cn
+ fi
+ fi
+
+ if pkg samba-cn && pkg samba-common lt 2:3.2.5-4lenny2; then
+ if restore_file /etc/samba/smb.conf; then
+ postupgrade_reconfigure samba-cn
+ fi
+ fi
+
+ if pkg base-files lt 5lenny2; then
+ restore_file /etc/issue
+ restore_file /etc/issue.net
+ fi
+
+ # restore php.ini
+ memtotal=$(awk '$1 == "MemTotal:" { print int($2/1024) }' /proc/meminfo)
+ if [ $memtotal -gt 1024 ]; then
+ memlimit=64
+ elif [ $memtotal -ge 512 ]; then
+ memlimit=32
+ else
+ memlimit=16
+ fi
+
+ if pkg php5-cn && pkg php5-cli lt 5.2.6.dfsg.1-1+lenny2; then
+ config_new=$(copy_template /etc/php5/cli/php.ini)
+ sed -i "s/^[[:space:]]*memory_limit[[:space:]]*=.*/memory_limit = ${memlimit}M/" $config_new
+ sed -i "s/^[[:space:]]*post_max_size[[:space:]]*=.*/post_max_size = ${memlimit}M/" $config_new
+ if restore_file /etc/php5/cli/php.ini $config_new; then
+ postupgrade_reconfigure php5-cn
+ fi
+ rm -f $config_new
+ fi
+
+ if pkg php5-cn && pkg libapache2-mod-php5 lt 5.2.6.dfsg.1-1+lenny2; then
+ config_new=$(copy_template /etc/php5/apache2/php.ini)
+ sed -i "s/^[[:space:]]*memory_limit[[:space:]]*=.*/memory_limit = ${memlimit}M/" $config_new
+ sed -i "s/^[[:space:]]*post_max_size[[:space:]]*=.*/post_max_size = ${memlimit}M/" $config_new
+ if restore_file /etc/php5/apache2/php.ini $config_new; then
+ postupgrade_reconfigure php5-cn
+ fi
+ rm -f $config_new
+ fi
+
+ # check if monitrc is template based
+ if [ -f /etc/monit/monitrc ]; then
+ # regenerate config from template
+ hostname=$(hostname)
+ domain=$(hostname --domain)
+ config_new=$(copy_template /etc/monit/monitrc)
+ check_and_sed "@localhost" \
+ "s/@localhost/@$hostname.$domain/g" $config_new || true
+ restore_file /etc/monit/monitrc $config_new
+ rm -f $config_new
+ fi