X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=src%2Ffunctions.sh;h=776c5dd1ab26ff8e54dc84daa5dc37ad6ec4d737;hb=54a4cd434b6478853885e4ef551a66ba2dc8ffea;hp=428a3692b7e555ca42e1a0a38a6070e38c8a2292;hpb=121c5e46967294588da165c35a68ae132a7f437a;p=carnet-upgrade.git diff --git a/src/functions.sh b/src/functions.sh index 428a369..776c5dd 100644 --- a/src/functions.sh +++ b/src/functions.sh @@ -146,6 +146,12 @@ apt_download() { } dist_upgrade () { + log "Running upgrade ..." + apt-get -y$s upgrade || { + dpkg --configure -a + apt-get -y$s upgrade + } + log "Running dist-upgrade ..." apt-get -y$s dist-upgrade || { dpkg --configure -a @@ -157,7 +163,7 @@ remove_x() { LC_MESSAGES=hr_HR dialog --backtitle "$title" --yesno "$msg_remove_x" 18 75 if [ $? -eq 0 ]; then log "Removing X Window System" - pkgrm xlibs + pkgrm x11-common else log "Skipping X Window System removal" fi @@ -376,7 +382,7 @@ check_upgrade () { if [ "$upgrade" ]; then notice " -Prije prelaska na Debian Lenny potrebno je napraviti nadogradnju ovih paketa: +Prije prelaska na Debian Squeeze potrebno je napraviti nadogradnju ovih paketa: $upgrade Pokrenite: @@ -451,8 +457,11 @@ check_my_version () { check_php_version () { if pkg php4-cn && ! pkg php5-cn; then + # prepare for php upgrade by installing php5 extensions + install_php5_extensions + notice " -Prije prelaska na Debian Lenny potrebno je napraviti nadogradnju sa PHP 4 na PHP 5. +Prije prelaska na Debian Squeeze potrebno je napraviti nadogradnju sa PHP 4 na PHP 5. Pokrenite: # apt-get update @@ -464,6 +473,33 @@ Nakon sto provjerite da sve web aplikacije rade ispravno, ponovno pozovite ovu s fi } +# install php5 extensions based on installed php4 extensions +install_php5_extensions () { + local php4_list php5_pkg + + # get a list of installed php4 packages + php4_list=$(mktemp /var/lib/carnet-upgrade/php4_list.XXXXXX) + dpkg -l php4-\* | awk '/^ii/ { + pkg=$2; sub("^php4", "php5", pkg); print pkg }' > $php4_list + + # compare it with the list of available php5 packages + php5_pkg=$(apt-cache search -n ^php5- | cut -d' ' -f 1 \ + | grep -F -x -f $php4_list | grep -F -x -v php5-cn) + + # handle special cases + if pkg php4-xslt; then + php5_pkg="$php5_pkg php5-xsl" + fi + + # install the required php5 modules + if [ "$php5_pkg" ]; then + pkgadd $php5_pkg + fi + + # cleanup + rm -f $php4_list +} + # if grsec is installed make sure it is fresh check_grsec_kernel () { local ver=`uname -r` @@ -477,7 +513,7 @@ check_grsec_kernel () { if [ "$ver" = "${ver#2.6.2[4-9]}" ]; then # kernel too old notice " -Prije prelaska na Debian Lenny potrebno je napraviti nadogradnju na najnoviji kernel. +Prije prelaska na Debian Squeeze potrebno je napraviti nadogradnju na najnoviji kernel. Pokrenite: # apt-get update @@ -506,23 +542,35 @@ check_reboot () { reboot_required () { local default_kernel kernel_package running_release running_version - # try to get default kernel from lilo - if type lilo >/dev/null 2>&1; then - default_kernel=$( lilo -t -v 2>/dev/null \ - | grep -B3 '[*]$' \ - | sed -n -e '/^Boot image: / { s///p; q; }' ) + # try to get default kernel from grub2 + if [ -z "$default_kernel" -a -r "/boot/grub/grub.cfg" ]; then + default_kernel=$( awk ' + $0 ~ /^set default=".*"/ { + def = gensub(/default="(.*)"/, "\\1", "1", $2); + if (def !~ /^[0-9]+$/) { exit } + } + $1 == "menuentry" { menuentry+=1 } + $1 == "linux" && menuentry==def+1 { print $2; exit }' \ + /boot/grub/grub.cfg 2>/dev/null ) fi - # fallback to grub if lilo not installed + # try to get default kernel from grub-legacy if [ -z "$default_kernel" -a -r "/boot/grub/menu.lst" ]; then default_kernel=$( awk ' - $1 == "default" { default = $2; - if (default !~ /^[0-9]+$/) { exit } } + $1 == "default" { def = $2; + if (def !~ /^[0-9]+$/) { exit } } $1 == "title" { title+=1 } - $1 == "kernel" && title==default+1 { print $2; exit }' \ + $1 == "kernel" && title==def+1 { print $2; exit }' \ /boot/grub/menu.lst 2>/dev/null ) fi + # try to get default kernel from lilo + if [ -z "$default_kernel" ] && type lilo >/dev/null 2>&1; then + default_kernel=$( lilo -t -v 2>/dev/null \ + | grep -B3 '[*]$' \ + | sed -n -e '/^Boot image: / { s///p; q; }' ) + fi + if [ -z "$default_kernel" ]; then log "Could not find default kernel" return 1 @@ -531,8 +579,12 @@ reboot_required () { log "Default kernel image: $default_kernel" if [ ! -e "$default_kernel" ]; then - log "Default kernel image doesn't exist!?" - return 1 + # /boot prefix might be missing + default_kernel="/boot/${default_kernel#/}" + if [ ! -e "$default_kernel" ]; then + log "Default kernel image doesn't exist!?" + return 1 + fi fi kernel_package=$( dpkg -S $default_kernel | cut -d: -f 1 ) @@ -558,7 +610,7 @@ reboot_required () { } upgrade () { - local i to_install packages + local packages case "$1" in first) packages="$packages_first" @@ -570,15 +622,13 @@ upgrade () { return 1 esac - for i in $(echo $packages) - do - pkg $i && to_install="$to_install $i" - done + pkgupgrade $packages +} - if [ -n "$to_install" ];then - eval pkgadd $to_install - else - return 0 +# install packages introduced in this release +install_new () { + if [ "$new_packages" ]; then + pkgadd $new_packages fi } @@ -659,7 +709,7 @@ backup_slapd_db () { [ -x /etc/init.d/freeradius ] && /etc/init.d/freeradius start || true else log "slapd backup already at $ldap_backup, skipping." - notice "Backup slapd baze u $ldap_backup vec postoji!" + #notice "Backup slapd baze u $ldap_backup vec postoji!" fi } @@ -683,7 +733,7 @@ backup_etc_dir () { umask $old_umask else log "/etc backup already present in $etc_backup, skipping." - notice "Backup /etc direktorija u $etc_backup vec postoji!" + #notice "Backup /etc direktorija u $etc_backup vec postoji!" fi } @@ -703,156 +753,177 @@ fix_etc_default_raid2 () { fi } -# restore original config file (if the new package version is not -# installed already) -restore_config () { - local file file_backup file_expect file_restore config_changed - local cn_package cn_version package version +# restore a configuration file if it contains only CN modifications +restore_file () { + local file file_expect file_restore file_backup - # check if new package version is installed - cn_package=$1 - package=$2 - version=$3 + file=$1 + file_expect=$2 + file_restore=$3 + file_backup=$file.$backup_ext - if [ "$cn_package" ]; then - if ! pkg $cn_package; then - # do nothing if cn package is not installed - return 0 - fi - fi + [ "$file_expect" ] || file_expect=$cnup/files/$file.expect + [ "$file_restore" ] || file_restore=$cnup/files/$file.restore - if [ "$package" ]; then - if [ "$version" ]; then - # do nothing if package is already upgraded to new version - pkg $package lt $version || return 0 - else - # do nothing if package is not installed - pkg $package || return 0 - fi + # check if all required files are there + if ! [ -e $file -a -e $file_expect -a -e $file_restore ]; then + log "Required files missing, skipping $file restore." + return 1 + fi + + # is restore needed + if ! cmp $file_expect $file >/dev/null; then + log "Config doesn't match the template, skipping $file restore." + return 1 fi - shift 3 - # restore package files - for file in $*; do - file_expect=/usr/share/carnet-upgrade/files/$file.expect - file_restore=/usr/share/carnet-upgrade/files/$file.restore - file_backup=$file.$backup_ext + # backup and restore + if [ ! -e $file_backup ]; then + log "Restoring config file $file." - # is config files are there - if ! [ -e $file -a -e $file_expect -a -e $file_restore ]; then - continue - fi + # backup local changes + cp -av $file $file_backup - # is restore needed - if ! cmp $file_expect $file >/dev/null; then - continue - fi + # restore original + cp -v $file_restore $file - # backup and restore - if [ ! -e $file_backup ]; then - log "Restoring config file $file" + # restore succedded + return 0 + else + log "Backup file exists, skipping $file restore." + return 1 + fi +} - # backup local changes - cp -av $file $file_backup +# force reconfiguration at the end if package is not upgraded automatically +postupgrade_reconfigure () { + local cn_package cn_version - # restore original - cp -v $file_restore $file + cn_package=$1 + cn_version=$( dpkg -s "$cn_package" | awk '/^Version:/ {print $2}' ) + post_upgrade "pkg $cn_package gt $cn_version || dpkg-reconfigure $cn_package" +} - config_changed=1 - fi - done +# copy template into a temporary file +copy_template () { + local path file template config_new - # force reconfiguration at the end if package is not upgraded automatically - if [ "$config_changed" -a "$cn_package" ]; then - cn_version=$( dpkg -s "$cn_package" | awk '/^Version:/ {print $2}' ) - post_upgrade "pkg $cn_package gt $cn_version || dpkg-reconfigure $cn_package" - fi + path=$1 + file=$(basename $path) + template=$cnup/files/$path.template + config_new=$(mktemp /var/lib/carnet-upgrade/$file.XXXXXX) + cp $template $config_new + + echo $config_new } # restore modified config to their package defaults # so the upgrade doesn't complain so much restore_configs () { - local hostname domain template config_new - local config_backup + local hostname domain config_new memtotal memlimit # restore simple configs - restore_config kernel-2.6-cn procps 1:3.2.7-11 /etc/sysctl.conf - restore_config ntp-cn ntp 1:4.2.4p4+dfsg-8 /etc/ntp.conf - restore_config apache2-cn apache2.2-common 2.2.9-10+lenny2 /etc/apache2/ports.conf - restore_config postfix-cn sasl2-bin 2.1.22.dfsg1-23 /etc/default/saslauthd - restore_config bind9-cn bind9 1:9.5.1.dfsg.P1-1 /etc/bind/named.conf.options - restore_config amavisd-cn amavisd-new 1:2.6.1.dfsg-1 /etc/cron.daily/amavisd-new - rm -f /etc/cron.daily/amavisd-new.$backup_ext - restore_config spamassassin-cn razor 1:2.85-1 /etc/razor/razor-agent.conf - restore_config kernel-2.6-cn libpam-modules 1.0.1-5 /etc/security/limits.conf - restore_config samba-cn samba-common 2:3.2.5-4lenny2 /etc/samba/smb.conf - restore_config '' base-files 5lenny2 /etc/issue /etc/issue.net + 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 -a ! -f /etc/monit/monitrc.$backup_ext ]; then - template=/usr/share/carnet-upgrade/files/etc/monit/monitrc.template - config_new=$(mktemp /var/lib/carnet-upgrade/monitrc.XXXXXX) + if [ -f /etc/monit/monitrc ]; then + # regenerate config from template hostname=$(hostname) domain=$(hostname --domain) - - # generate config from template - cp $template $config_new + config_new=$(copy_template /etc/monit/monitrc) check_and_sed "@localhost" \ "s/@localhost/@$hostname.$domain/g" $config_new || true - - # compare with running config - if cmp -s /etc/monit/monitrc $config_new; then - # restore if running config is generated template - log "Restoring config file /etc/monit/monitrc" - cp -av /etc/monit/monitrc /etc/monit/monitrc.$backup_ext - cp -v /usr/share/carnet-upgrade/files/etc/monit/monitrc.restore \ - /etc/monit/monitrc - fi + restore_file /etc/monit/monitrc $config_new rm -f $config_new fi - -# restore_config login 1:4.0.18.1 /etc/pam.d/login -# restore_config mysql-server 5.0.3 /etc/init.d/mysql \ -# /etc/logrotate.d/mysql-server \ -# /etc/mysql/my.cnf -# restore_config ntpdate 1:4.2.2 /etc/default/ntpdate -# restore_config oidentd 2.0.8 /etc/default/oidentd -# restore_config slapd 2.3.30 /etc/default/slapd /etc/init.d/slapd -# restore_config squirrelmail 2:1.4.9a /etc/squirrelmail/apache.conf -# restore_config vsftpd 2.0.5 /etc/vsftpd.conf -# restore_config xinetd 1:2.3.14 /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 -# 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 } # temporary disable listchanges packages to reduce clutter during upgrade @@ -882,7 +953,7 @@ apt_listchanges () { # make a silent installation of carnet and srce keyrings install_keyrings () { pkgadd carnet-keyring srce-keyring debian-archive-keyring - pkgadd dpkg apt debconf python-apt + pkgupgrade dpkg apt debconf python-apt dpkg-dev dpkg-reconfigure carnet-keyring srce-keyring debian-archive-keyring apt_update @@ -899,9 +970,11 @@ remove_skey () { } # remove unsupported php version +# but leave the configuration just in case remove_php4 () { - # leave the configuration just in case - pkgrm_only php4-common + if pkg php5-cn && pkg php4-common; then + pkgrm_only php4-common + fi } # check if package is orphaned (nothing depends on it) @@ -944,49 +1017,45 @@ disable_monit () { fi } -# make a silent upgrade to new libc6 -upgrade_libc () { - DEBIAN_FRONTEND=noninteractive pkgadd libc6 tzdata -} +# check which of the given packages are installed +grep_installed () { + local package installed -# upgrade apache2 to etch -upgrade_apache2 () { - local package packages - - for package in \ - libapache2-mod-php4 \ - php4-cli \ - php4-cgi \ - php4-cn \ - apache2-cn \ - php4-odbc \ - php4-suhosin \ - php-suhosin-cn - do - if pkg $package; then - packages="$packages $package" - fi + for package in $*; do + if pkg $package; then + installed="$installed $package" + fi done - # enable suhosin downgrade to etch version - if pkg php4-suhosin; then - pkgrm php4-suhosin php-suhosin-cn + echo $installed +} + +# only upgrade packages if they are already installed +pkgupgrade () { + local packages + + packages=$( grep_installed $* ) + + if [ "$packages" ]; then + eval pkgadd $packages fi +} - eval pkgadd $packages +# make a silent upgrade to new libc6 +upgrade_libc () { + DEBIAN_FRONTEND=noninteractive pkgupgrade libc6 libc6-dev tzdata +} + +# upgrade apache2/php5 +upgrade_apache2 () { + pkgrm apache-common # prevents installation of apache2-suexec + pkgupgrade libapache2-mod-php5 php5-cli php5-cn apache2-cn \ + php5-odbc php5-suhosin php-suhosin-cn } upgrade_amavis () { local conf - # remove init script diversion before upgrade - if pkg amavisd-cn lt 3:2.6.1-1; then - if [ -L /etc/init.d/amavis -a -f /etc/init.d/amavis.amavisd-new ]; then - rm -vf /etc/init.d/amavis - dpkg-divert --remove /etc/init.d/amavis - fi - fi - # move old config aside for conf in /etc/amavisd.conf /etc/amavis/amavisd.conf; do if [ -e $conf -a ! -e $conf.$backup_ext ]; then @@ -997,70 +1066,19 @@ upgrade_amavis () { # install new packages pkgadd amavisd-cn amavisd-new - # fix new packages - check_and_sed '^clamd.*5.clamav.log$' \ - 's/^\(clamd.*\)5.clamav.log$/\14\tsocket/g' \ - /etc/init.d/amavisd-cn || true - - # check if link got lost - if pkg amavisd-cn && [ ! -L /etc/init.d/amavis ]; then - apt-get install --reinstall --yes amavisd-cn - fi - # start new packages - /etc/init.d/amavis restart + /etc/init.d/amavisd-cn restart } -# handle freerdius config files upgrade +# handle freerdius upgrade upgrade_freeradius () { - local template config_new password realm + local template config_new password realm hostname basedn pkg freeradius-aai lt 2.1.3-0lenny0 || return 0 - # handle static configs - restore_config freeradius-aai freeradius 2.1.3-0lenny0 \ - /etc/freeradius/clients.conf \ - /etc/freeradius/hints \ - /etc/freeradius/ldap.attrmap \ - /etc/freeradius/radiusd.conf - - # handle template based configs - template=/usr/share/carnet-upgrade/files/etc/freeradius/eap.conf.template - config_new=$(mktemp /var/lib/carnet-upgrade/eap.conf.XXXXXX) - password=$(grep -s '^[[:space:]]*private_key_password[[:space:]]*=' \ - /etc/freeradius/eap.conf) - cp $template $config_new - sed -i "s/.*#PASSWORD#.*/$password/" $config_new - if cmp -s $config_new /etc/freeradius/eap.conf >/dev/null; then - log "Restoring config file /etc/freeradius/eap.conf" - cp -v /usr/share/carnet-upgrade/files/etc/freeradius/eap.conf.restore \ - /etc/freeradius/eap.conf - fi - rm -f $config_new - - template=/usr/share/carnet-upgrade/files/etc/freeradius/proxy.conf.template - config_new=$(mktemp /var/lib/carnet-upgrade/proxy.conf.XXXXXX) - realm=$(sed -n '/^[[:space:]]*suffix[[:space:]]*/ { - s///; s/"//g; s/,dc=/./g; s/dc=//; s/.hr$//; p; q }' /etc/ldap/slapd.conf) - cp $template $config_new - sed -i "s/#REALM#/$realm/" $config_new - if cmp -s $config_new /etc/freeradius/proxy.conf >/dev/null; then - log "Restoring config file /etc/freeradius/proxy.conf" - cp -v /usr/share/carnet-upgrade/files/etc/freeradius/proxy.conf.restore \ - /etc/freeradius/proxy.conf - fi - rm -f $config_new - - # install the new packages - if ! apt-get -y install freeradius; then - # freeradius upgrade fails here, try to fix it by creating certificates - [ -x /etc/freeradius/certs/bootstrap ] && /etc/freeradius/certs/bootstrap - - dpkg --configure -a - apt-get -y -f install - fi - - # finally try to cleanup this mess + # aai team prevents a clean upgrade + cp -av /etc/freeradius /etc/freeradius.$backup_ext + pkgrm freeradius-aai freeradius-ldap freeradius pkgadd freeradius-aai } @@ -1116,13 +1134,20 @@ upgrade_postgresql () { # upgrade the MTA upgrade_postfix () { - pkgadd postfix-cn + pkgadd sasl2-bin postfix-cn if pkg postgrey; then pkgrm postgrey # not used by postfix-cn anymore fi } +# upgrade bind separately so DNS is not down for too long +# or breaks postinst scripts of other cn packages that depend on +# working resolver +upgrade_bind() { + pkgadd bind9-cn +} + get_variable () { local name=$1 file=$2 val @@ -1134,38 +1159,6 @@ get_variable () { echo $val } -# preserve mail location on upgrade -upgrade_dovecot () { - local default_mail_env mail_location - - # check if already upgraded - if ! pkg dovecot-common lt 1.0; then - return - fi - - # save old mail location - default_mail_env=$(get_variable default_mail_env /etc/dovecot/dovecot.conf) - - # silently upgrade package - restore_config dovecot-cn dovecot-common 1.0 /etc/dovecot/dovecot.conf - pkgadd dovecot-cn - - # insert old mail location - mail_location=$(get_variable mail_location /etc/dovecot/dovecot.conf) - if [ "$default_mail_env" -a ! "$mail_location" ]; then - check_and_sed '^#mail_location[[:space:]]*=' \ - "s|#mail_location[[:space:]]*=.*|mail_location = $default_mail_env|" /etc/dovecot/dovecot.conf || return 0 - - if [ -x /etc/init.d/dovecot ]; then - if [ -x /usr/sbin/invoke-rc.d ]; then - /usr/sbin/invoke-rc.d dovecot restart - else - /etc/init.d/dovecot restart - fi - fi - fi -} - # restore munin configs for silent upgrade upgrade_munin () { local config backup hostname domain @@ -1222,15 +1215,22 @@ comment_force_overwrite () { fi } +# try not to overwrite user modified issue files fix_issue () { - cat > /etc/issue </dev/null; then + cp -av /etc/issue /etc/issue.$backup_ext + cat > /etc/issue < /etc/issue.net </dev/null; then + cp -av /etc/issue.net /etc/issue.net.$backup_ext + cat > /etc/issue.net <