]> git.donarmstrong.com Git - ca-certificates.git/blobdiff - debian/postrm
Import Debian version 20090814
[ca-certificates.git] / debian / postrm
index 260a1c4e99e74fb42bdddf9f5cae6b88805ea272..9b3c29c7809c5acb039f88466de2c8cb79be9500 100644 (file)
@@ -16,26 +16,44 @@ set -e
 #        * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
 # for details, see /usr/share/doc/packaging-manual/
 
+# Clear the debconf database as early as possible and signal debconf that
+# we are done with it.
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
+    . /usr/share/debconf/confmodule
+    db_purge
+    db_stop
+fi
+
+remove_dangling_symlinks() {
+    if ! [ -d /etc/ssl/certs ]
+    then
+        return
+    fi
+    echo -n "Removing dangling symlinks from /etc/ssl/certs... "
+    find /etc/ssl/certs -type l -print | while read h
+    do
+        test -f "$h" || rm -f "$h"
+    done
+    echo "done."
+}
+
 case "$1" in
     remove)
-       echo -n "Removing hash symlinks in /etc/ssl/certs ..."
-       find /etc/ssl/certs -type l -print | while read h
-       do
-        test -f "$h" || rm -f "$h"
-       done
-       echo done.
-       ;;
+        remove_dangling_symlinks
+        rmdir /usr/local/share/ca-certificates 2>/dev/null || true
+        ;;
 
     purge)
-       rm -f /etc/ssl/certs/ca-certificates.crt*
-       # Fix for #454334
-       rmdir  --ignore-fail-on-non-empty /etc/ssl
-       rm -f /etc/ca-certificates.conf*
-       if test -e /usr/share/debconf/confmodule; then
-         . /usr/share/debconf/confmodule
-         db_purge
-       fi
-       ;;
+        rm -f /etc/ssl/certs/ca-certificates.crt
+        remove_dangling_symlinks
+
+        # Clean up even if openssl is removed before ca-certificates.
+        # (Which is what piuparts does.)
+        [ -d /etc/ssl/certs ] && rmdir --ignore-fail-on-non-empty /etc/ssl/certs
+        [ -d /etc/ssl ] && rmdir --ignore-fail-on-non-empty /etc/ssl
+
+        rm -f /etc/ca-certificates.conf*
+        ;;
 
     upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
         ;;
@@ -43,7 +61,6 @@ case "$1" in
     *)
         echo "postrm called with unknown argument \`$1'" >&2
         exit 1
-
 esac
 
 # dh_installdeb will replace this with shell code automatically