X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=src%2Ffunctions.sh;h=5ea115de791635ee26667157ca8dce870b79862b;hb=2c023c2132b166ffc24941cd2a7c35f182c2468e;hp=bdb78e9bb72efd5024a1e06d06204b2ce47fc5bd;hpb=33da5f865daf104ca29d21bb1780d490ac6ea023;p=carnet-upgrade.git diff --git a/src/functions.sh b/src/functions.sh index bdb78e9..5ea115d 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 @@ -153,6 +159,14 @@ dist_upgrade () { } } +apt_autoremove () { + log "Running autoremove ..." + apt-get -y$s --purge autoremove || { + dpkg --configure -a + apt-get -yf install + } +} + remove_x() { LC_MESSAGES=hr_HR dialog --backtitle "$title" --yesno "$msg_remove_x" 18 75 if [ $? -eq 0 ]; then @@ -574,7 +588,7 @@ reboot_required () { if [ ! -e "$default_kernel" ]; then # /boot prefix might be missing - default_kernel="/boot/$default_kernel" + default_kernel="/boot/${default_kernel#/}" if [ ! -e "$default_kernel" ]; then log "Default kernel image doesn't exist!?" return 1 @@ -817,98 +831,75 @@ restore_configs () { 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 pkg ntp-cn && pkg ntp lt 1:4.2.6.p2+dfsg-1+b1; then + if restore_file /etc/ntp.conf; then + postupgrade_reconfigure ntp-cn + fi + fi + + if pkg kernel-2.6-cn && pkg procps lt 1:3.2.8-9; 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 + if pkg kernel-2.6-cn && pkg libpam-modules lt 1.1.1-6.1; then + if restore_file /etc/security/limits.conf; then + postupgrade_reconfigure kernel-2.6-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 + if pkg vsftpd-cn && pkg vsftpd lt 2.3.2-3+squeeze2; then + if restore_file /etc/vsftpd.conf; then + postupgrade_reconfigure vsftpd-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 + if pkg squirrelmail-cn && pkg squirrelmail lt 2:1.4.21-2; then + if restore_file /etc/squirrelmail/apache.conf; then + postupgrade_reconfigure squirrelmail-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 + if pkg spamassassin-cn && pkg spamassassin lt 3.3.1-1; then + if restore_file /etc/spamassassin/v310.pre; then + postupgrade_reconfigure spamassassin-cn fi fi - if pkg amavisd-cn && pkg amavisd-new lt 1:2.6.1.dfsg-1; then + if pkg amavisd-cn && pkg amavisd-new lt 1:2.6.4-3; 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 + if restore_file /etc/amavis/conf.d/15-av_scanners; then + rm -f /etc/amavis/conf.d/15-av_scanners.$backup_ext + postupgrade_reconfigure amavisd-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 + if pkg amavisd-cn lt 3:2.6.5; then + restore_file /etc/init.d/amavisd-cn 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 + if pkg console-tools lt 1:0.2.3dbs-69.1; then + restore_file /etc/console-tools/config fi - if pkg base-files lt 5lenny2; then + if pkg base-files lt 6.0squeeze2; 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 + # dovecot won't start with these options + if pkg dovecot-cn && pkg dovecot-common lt 1:1.2.15-7; then + sed -i 's/^\( *\)\(sieve\(_storage\)\?=.*\)/\1#\2/' \ + /etc/dovecot/dovecot.conf fi # check if monitrc is template based - if [ -f /etc/monit/monitrc ]; then + if [ -e /etc/monit/monitrc ]; then # monit is removed at this point # regenerate config from template hostname=$(hostname) domain=$(hostname --domain) @@ -988,6 +979,8 @@ is_orphaned () { remove_orphaned () { local package + apt_autoremove + for package in $orphaned_packages; do if is_orphaned $package; then pkgrm $package @@ -1050,14 +1043,6 @@ upgrade_apache2 () { 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 @@ -1068,18 +1053,8 @@ 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 upgrade @@ -1176,7 +1151,7 @@ upgrade_munin () { local config backup hostname domain for pkg_name in munin munin-node; do - pkg $pkg_name lt '1.2.6-10~lenny1' || continue + pkg $pkg_name lt '1.4.5-3' || continue config=/etc/munin/$pkg_name.conf backup=$config.$backup_ext @@ -1266,11 +1241,15 @@ check_archives_space() { } check_kernel_space() { - local available_disk_space kernel_size linux_images pkg ret + local available_disk_space kernel_size linux_images metapkg pkg ret available_disk_space=$(free_space /) linux_images=$(apt-cache show kernel-2.6-cn | grep ^Depends: \ - | grep -o 'linux-image[^ ]*') - for pkg in $linux_images; do + | grep -o 'linux-image[^, ]*') + for metapkg in $linux_images; do + pkg=$(apt-cache show $metapkg | grep ^Depends: \ + | grep -o 'linux-image[^, ]*' | head -1) + [ "$pkg" ] || continue + kernel_size=$(installed_size $pkg) ret=$? [ $ret -eq 0 ] && break