X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?p=carnet-upgrade.git;a=blobdiff_plain;f=src%2Ffunctions.sh;h=59cd2af2fb3629198489556d54a8e7f4b8b56a0a;hp=90eed9d5d7e6cd76ccb466d28282a5073754f4c0;hb=7a7cf98189a94ee061e88f1807a6d9d11e447ea0;hpb=bd6e63dd7803fb0eed748605a2bd3aeb20d7040b diff --git a/src/functions.sh b/src/functions.sh index 90eed9d..59cd2af 100644 --- a/src/functions.sh +++ b/src/functions.sh @@ -721,6 +721,7 @@ restore_configs () { if pkg amavisd-cn lt 3:2.6.5; then restore_file /etc/init.d/amavisd-cn + rm -f /etc/init.d/amavisd-cn.$backup_ext fi if pkg console-tools lt 1:0.2.3dbs-69.1; then @@ -778,7 +779,6 @@ apt_listchanges () { # make a silent installation of carnet and srce keyrings install_keyrings () { pkgadd carnet-keyring srce-keyring debian-archive-keyring - pkgupgrade dpkg apt debconf python-apt dpkg-dev dpkg-reconfigure carnet-keyring srce-keyring debian-archive-keyring apt_update @@ -852,7 +852,7 @@ pkgupgrade () { # make a silent upgrade to new libc6 upgrade_libc () { - DEBIAN_FRONTEND=noninteractive pkgupgrade libc6 libc6-dev tzdata udev + DEBIAN_FRONTEND=noninteractive pkgupgrade libc6 libc6-dev tzdata } # upgrade apache2/php5 @@ -881,56 +881,34 @@ upgrade_amavis () { # handle freerdius upgrade upgrade_freeradius () { - local template config_new password realm hostname basedn + pkg freeradius-aai lt 2.1.10-1 || return 0 - pkg freeradius-aai lt 2.1.3-0lenny0 || return 0 - - # aai team prevents a clean upgrade + # aai team prevents a normal upgrade cp -av /etc/freeradius /etc/freeradius.$backup_ext pkgrm freeradius-aai freeradius-ldap freeradius + rm -rf /etc/freeradius/certs pkgadd freeradius-aai } -# prepare for slapd upgrade (caused by freeradius installation) -prepare_openldap () { - pkg openldap-aai lt 2.4 || return 0 - - # openldap-aai expects org.ldif to exists - local ldif=/var/lib/ldap/org.ldif - local ldif_backup=/var/lib/carnet-upgrade/org.ldif - if [ -f $ldif ]; then - cp -v $ldif $ldif_backup - fi -} - -# fix openldap-aai postinst user handling +# handle openldap upgrade upgrade_openldap () { - pkg openldap-aai lt 2.4 || return 0 - - # slapd postinst fails if move_old_database is false - echo 'slapd slapd/move_old_database boolean true' | debconf-set-selections - pkgadd slapd - - # slapd removes org.ldif during switch from ldap -> openldap user - local ldif=/var/lib/ldap/org.ldif - local ldif_backup=/var/lib/carnet-upgrade/org.ldif - if [ -f $ldif_backup -a ! -f $ldif ]; then - cp -v $ldif_backup $ldif + # aai discovers database type from debconf + if [ -f /etc/ldap/slapd.conf ] && grep -q ^database.*bdb /etc/ldap/slapd.conf + then + echo set slapd/backend BDB | debconf-communicate >/dev/null fi - # openldap-aai postinst fails here because of database permissions - apt-get -y install openldap-aai || true - chown -R openldap:openldap /var/lib/ldap - /etc/init.d/slapd restart - dpkg --configure -a + # aai does not depend on the new openldap version + pkgadd slapd + pkgadd openldap-aai +} - # remove ldap user if openldap works - if getent passwd ldap > /dev/null && \ - getent passwd openldap > /dev/null && \ - pgrep -U openldap slapd > /dev/null - then - log "userdel ldap (replaced by openldap)" - userdel ldap || true +# handle mysql 5.0 to 5.1 upgrade +upgrade_mysql () { + if pkg mysql-server || pkg mysql-server-5.0; then + pkgadd mysql-server + dpkg -P mysql-server-5.0 + /etc/init.d/mysql restart fi } @@ -972,6 +950,10 @@ get_variable () { upgrade_munin () { local config backup hostname domain + # new htmldir location + mkdir -p /var/cache/munin + mv /var/www/munin /var/cache/munin/www + for pkg_name in munin munin-node; do pkg $pkg_name lt '1.4.5-3' || continue @@ -1055,7 +1037,7 @@ check_kernel_space() { log "Kernel package: $pkg" log "Kernel size: ${kernel_size}MB" - if LC_ALL=C apt-get -s install kernel-2.6-cn \ + if LC_ALL=C apt-get -s install kernel-2.6-cn 2>/dev/null \ | grep -q '^kernel-2.6-cn is already the newest version.$' then log "Not checking free space in /: kernel-2.6-cn already installed"