Munin htmldir change.
[carnet-upgrade.git] / src / functions.sh
index 90eed9d..59cd2af 100644 (file)
@@ -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"