Handle openldap upgrade.
[carnet-upgrade.git] / src / functions.sh
index 5369717..da07bc4 100644 (file)
@@ -970,7 +970,7 @@ upgrade_amavis () {
 
 # fix openldap-aai postinst user handling
 upgrade_openldap () {
-  pkg openldap-aai lt 2.3 || return 0
+  pkg openldap-aai lt 2.4 || return 0
 
   # openldap-aai expects org.ldif to exists
   local ldif=/var/lib/ldap/org.ldif
@@ -1063,6 +1063,51 @@ upgrade_dovecot () {
   fi
 }
 
+# restore munin configs for silent upgrade
+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
+
+     config=/etc/munin/$pkg_name.conf
+     backup=$config.$backup_ext
+     if [ -f $config -a ! -f $backup ]; then
+        hostname=$(hostname)
+        domain=$(hostname --domain)
+
+        cp -av $config $backup
+        check_and_sed "$hostname.$domain" \
+          "s/$hostname.$domain/localhost.localdomain/g" $config
+     fi
+     pkgadd $pkg_name
+  done
+
+  # force localhost -> hostname replacement in config files
+  pkgadd munin-cn
+  dpkg-reconfigure munin-cn
+}
+
+# udev.preinst fails if devfs configs still exist
+upgrade_udev () {
+  local config
+
+  for config in /etc/udev/rules.d/devfs.rules \
+                /etc/udev/rules.d/compat-full.rules \
+                /etc/udev/rules.d/compat.rules
+  do
+     if [ -e $config ]; then
+        mv -v $config /etc/udev/
+     fi
+  done
+
+  if [ -f /etc/udev/udev.rules -a ! -f /etc/udev/rules.d/udev.rules ]; then
+     ln -sfv ../udev.rules /etc/udev/rules.d/
+  fi
+
+  pkgadd udev
+}
+
 # fix /etc/dpkg/dpkg.cfg
 comment_force_overwrite () {
   if [ -f /etc/dpkg/dpkg.cfg ]; then