###
run_actions() {
- local line lineno lineno2 f n name action
+ local line lineno lineno2 f n name action testmsg
[ "$DEBUG" ] && set -vx
name="$1"
f="$2"
done
test=$(echo "$line" | sed 's/ */ /g'| awk -F' ' '{print $1}')
action=$(echo "$line" | sed 's/ */ /g'| awk -F' ' '{print $2}')
+ testmsg=""
+ [ "$test" != "true" ] && testmsg="if '$test'"
if eval $test; then
- log "$(printf '%02d' $lineno) starting ${action}(), (test $test passed)"
+ log "$(printf 'action %02d' $lineno) starting: '${action}' $testmsg "
eval $action
- log "$(printf '%02d' $lineno) finished ${action}()"
+ log "$(printf 'action %02d' $lineno) finished: '${action}' $testmsg"
else
- log "$(printf '%02d' $lineno) skipping ${action}(), (test $test failed)"
+ log "$(printf 'action %02d' $lineno) skipping: '${action}' $testmsg"
fi
[ "$lineno2" -gt "$lineno" ] && lineno=$lineno2
done
# funkcija utrpa ispravan sources.list
create_sources_list () {
- [ -f /etc/apt/sources.list -a ! -f /etc/apt/sources.list.cn-upgrade ] && mv /etc/apt/sources.list /etc/apt/sources.list.cn-upgrade
- cp /usr/share/carnet-upgrade/sources.list /etc/apt
+ [ -f /etc/apt/sources.list -a ! -f /etc/apt/sources.list.cn3-upgrade ] && mv /etc/apt/sources.list /etc/apt/sources.list.cn3-upgrade
+ cp /usr/share/carnet-upgrade/files/etc/apt/sources.list /etc/apt
notice "Novi sadrzaj datoteke /etc/apt/sources.list:
`cat /etc/apt/sources.list`"
# backup_slapd_db
backup_slapd_db () {
- if [ ! -f /var/backups/slapcat.cn-upgrade ]; then
+ local ldap_backup=/var/backups/slapcat.cn3-upgrade
+
+ if [ ! -f $ldap_backup ]; then
[ -x /etc/init.d/freeradius ] && /etc/init.d/freeradius stop || true
if [ -x /etc/init.d/slapd -a -d /var/lib/ldap ]; then
/etc/init.d/slapd stop || true
- if slapcat -l /var/backups/slapcat.cn-upgrade; then
- log "/var/backups/slapcat.cn-upgrade created"
- notice "Napravljen backup slapd baze u /var/backups/slapcat.cn-upgrade."
+ if slapcat -l $ldap_backup; then
+ log "$ldap_backup created"
+ notice "Napravljen backup slapd baze u $ldap_backup."
fi
/etc/init.d/slapd start || true
fi
[ -x /etc/init.d/freeradius ] && /etc/init.d/freeradius start || true
else
- log "slapd backup already at /var/backups/slapcat.cn-upgrade, skipping"
- notice "Backup slapd baze u /var/backups/slapcat.cn-upgrade vec postoji!"
+ log "slapd backup already at $ldap_backup, skipping"
+ notice "Backup slapd baze u $ldap_backup vec postoji!"
fi
}
# backup etc direktorija
backup_etc_dir () {
- if [ ! -f /var/backups/etc.tar.gz ]; then
- if tar cfz /var/backups/etc.tar.gz /etc 2> /dev/null; then
- log "/var/backups/etc.tar.gz created"
- notice "Napravljen backup /etc direktorija u /var/backups/etc.tar.gz."
+ local etc_backup=/var/backups/etc.cn3-upgrade.tar.gz
+
+ if [ ! -f $etc_backup ]; then
+ if tar cfz $etc_backup /etc 2> /dev/null; then
+ log "$etc_backup created"
+ notice "Napravljen backup /etc direktorija u $etc_backup."
fi
else
- log "/etc backup already present in /var/backups/etc.tar.gz, skipping."
- notice "Backup /etc direktorija u /var/backups/etc.tar.gz vec postoji!"
+ log "/etc backup already present in $etc_backup, skipping."
+ notice "Backup /etc direktorija u $etc_backup vec postoji!"
fi
}
# fixaj /etc/default/raid2
fix_etc_default_raid2 () {
if [ -f /etc/default/raid2 ]; then
- sed "s/^AUTOSTART.*/AUTOSTART=true/g" /etc/default/raid2 > /etc/default/raid2.cn-upgrade.$$
- chown --reference=/etc/default/raid2 /etc/default/raid2.cn-upgrade.$$
- chmod --reference=/etc/default/raid2 /etc/default/raid2.cn-upgrade.$$
+ sed "s/^AUTOSTART.*/AUTOSTART=true/g" /etc/default/raid2 > /etc/default/raid2.cn3-upgrade.$$
+ chown --reference=/etc/default/raid2 /etc/default/raid2.cn3-upgrade.$$
+ chmod --reference=/etc/default/raid2 /etc/default/raid2.cn3-upgrade.$$
- if ! cmp -s /etc/default/raid2.cn-upgrade.$$ /etc/default/raid2; then
+ if ! cmp -s /etc/default/raid2.cn3-upgrade.$$ /etc/default/raid2; then
log "Fixed /etc/default/raid2 AUTOSTART option."
- mv /etc/default/raid2.cn-upgrade.$$ /etc/default/raid2
+ mv /etc/default/raid2.cn3-upgrade.$$ /etc/default/raid2
else
- rm /etc/default/raid2.cn-upgrade.$$
+ rm /etc/default/raid2.cn3-upgrade.$$
fi
fi
}
+# restore distribution config file
+restore_config () {
+ local file file_backup
+
+ for file in "$@"; do
+ file_backup=$file.cn3-upgrade
+ if [ -e $file -a ! -e $file_backup ]; then
+ # backup file
+ mv $file $file_backup
+
+ # install original
+ cp /usr/share/carnet-upgrade/files/$file $file
+ fi
+ done
+}
+
+# restore modified config to their package defaults
+# so the upgrade doesn't complain so much
+restore_configs () {
+ restore_config /etc/bind/named.conf.options
+ restore_config /etc/default/ntpdate
+ restore_config /etc/default/oidentd
+ restore_config /etc/default/postgrey
+ restore_config /etc/default/saslauthd
+ restore_config /etc/default/slapd
+ restore_config /etc/dovecot/dovecot.conf
+ restore_config /etc/init.d/mysql
+ restore_config /etc/init.d/slapd
+ restore_config /etc/issue
+ restore_config /etc/issue.net
+ restore_config /etc/logrotate.d/mysql-server
+ restore_config /etc/mysql/my.cnf
+ restore_config /etc/ntp.conf
+ restore_config /etc/pam.d/login
+ restore_config /etc/php4/apache/php.ini
+ restore_config /etc/php4/cgi/php.ini
+ restore_config /etc/php4/cli/php.ini
+ restore_config /etc/postgrey/whitelist_clients
+ restore_config /etc/security/limits.conf
+ restore_config /etc/squirrelmail/apache.conf
+ restore_config /etc/sysctl.conf
+ restore_config /etc/vsftpd.conf
+ restore_config /etc/xinetd.conf
+
+ # orphaned config file - no owner
+ rm -f /etc/logcheck/ignore.d.server/imap
+
+ # aide switched to ucf, move old configs aside
+ for file in /etc/aide/aide.conf /etc/cron.daily/aide /etc/default/aide; do
+ [ ! -e "$file.cn3-upgrade" ] && mv "$file" "$file.cn3-upgrade"
+ rm -f "$file"
+ done
+}
+
+# make a silent installation of carnet and srce keyrings
+install_keyrings () {
+ pkgadd carnet-keyring srce-keyring
+ pkgadd dpkg apt
+
+ dpkg-reconfigure carnet-keyring srce-keyring
+ update
+}
+
+# make a silent upgrade to new libc6
+upgrade_libc () {
+ DEBIAN_FRONTEND=noninteractive pkgadd libc6
+}
+
+# upgrade apache -> apache2
+upgrade_apache () {
+ # bugfix for apache2-cn postinst
+ mkdir -p /etc/apache2
+ touch /etc/apache2/httpd.conf
+
+ pkgadd php4-odbc php4-xslt mktemp
+
+ # apache2 conflicts with these
+ pkgrm apache aosi-aai aosi-www-aai php4-cn squirrelmail-cn
+
+ # apache2-cn postinst needs new mktemp
+ pkgadd apache2-cn php5-cn aosi-aai aosi-www-aai # squirrelmail-cn
+}
+
+upgrade_amavis () {
+ # remove diversion
+ if [ -L /etc/init.d/amavis -a -f /etc/init.d/amavis.amavisd-new ]; then
+ rm -f /etc/init.d/amavis
+ dpkg-divert --quiet --remove /etc/init.d/amavis
+ fi
+
+ # move old config aside
+ local conf=/etc/amavis/amavisd.conf
+ if [ -e $conf -a ! -e $conf.cn3-upgrade ]; then
+ mv $conf $conf.cn3-upgrade
+ fi
+
+ pkgadd amavisd-cn amavisd-new
+}
+
+# fix openldap-aai postinst user handling
+upgrade_openldap () {
+ apt-get -y$s install openldap-aai || true
+ chown -R openldap:openldap /var/lib/ldap
+ /etc/init.d/slapd restart
+ dpkg --configure -a
+}
+
+# workaround postfix-cn dependencies
+upgrade_postfix () {
+ pkgadd sasl2-bin
+ pkgadd postfix postfix-cn
+}
+
+# workaround dovecot-cn dependencies
+upgrade_dovecot () {
+ pkgadd dovecot-imapd dovecot-pop3d
+ pkgadd dovecot-cn
+}
+
+# workaround ntp-cn dependencies
+upgrade_ntp () {
+ pkgadd ntp ntpdate
+ # pkgrm ntp-server
+ pkgadd ntp-cn
+}
+
# instaliraj zadnji freeradius; uvjeti u queue fileovima
install_freeradius () {
pkgadd --force-yes freeradius-cn freeradius=1.0.5-0 freeradius-ldap=1.0.5-0
fix_issue () {
cat > /etc/issue <<EOF
-Debian GNU/\\s 3.1 (CARNet Debian 2.1) \\n \\l
+Debian GNU/Linux 4.0 (CARNet Debian 3.0) \\n \\l
EOF
cat > /etc/issue.net <<EOF
-Debian GNU/%s 3.1 (CARNet Debian 2.1) %h
+Debian GNU/Linux 4.0 (CARNet Debian 3.0) %h
EOF
}
fi
if [ -f $conf -a -f $tmpl ] && \
! cmp -s $conf $tmpl; then
- mv $conf $conf.cn-upgrade
+ mv $conf $conf.cn3-upgrade
mv_in_sasl=1
fi
if [ -f $confdir/Sendmail.conf ]; then
- mv $confdir/Sendmail.conf $confdir/Sendmail.conf.cn-upgrade
+ mv $confdir/Sendmail.conf $confdir/Sendmail.conf.cn3-upgrade
mv_in_sasl=1
fi
if [ -f $confdir/sasl.m4 ] && \
! cmp -s $confdir/sasl.m4 $tmpldir/sasl.m4; then
- mv -f $confdir/sasl.m4 $confdir/sasl.m4.cn-upgrade
+ mv -f $confdir/sasl.m4 $confdir/sasl.m4.cn3-upgrade
mv_in_sasl=1
fi
[ "$mv_in_sasl" ] && \