]> git.donarmstrong.com Git - ca-certificates.git/blobdiff - debian/postinst
Broken symlinks on upgrade due to plain c_rehash call #643667
[ca-certificates.git] / debian / postinst
index dbd20e6717be07df96d8d133aef8a5f273c8bcfd..21d1b94aceb2ebc15ca34aa78e50a2d9b5cdeba9 100644 (file)
 #     `abort-remove' or `abort-deconfigure'.
 
 each_value() {
- echo "$l" |tr ',' '\n' | sed -e 's/^[[:space:]]*//' 
+ echo "$1" |tr ',' '\n' | sed -e 's/^[[:space:]]*//' 
 }
 
 memberp() {
  m="$1"
  l="$2"
- each_value "$1" | grep -q "^$m\$"
+ each_value "$l" | grep -q "^$m\$"
 }
 
 delca() {
@@ -38,10 +38,15 @@ delca() {
 
 case "$1" in
     configure)
-        if dpkg --compare-versions "$2" lt 20030414; then
-           # remove old *.pem files that ca-certificates installed 
-           (cd /etc/ssl/certs; rm -f $(cat /usr/share/doc/ca-certificates/oldpemfiles))
-       fi
+        if [ ! -e /usr/local/share/ca-certificates ]
+        then
+            if mkdir /usr/local/share/ca-certificates 2>/dev/null
+            then
+                chown root:staff /usr/local/share/ca-certificates
+                chmod 2775 /usr/local/share/ca-certificates
+            fi
+        fi
+
         . /usr/share/debconf/confmodule
        db_version 2.0
        db_capb multiselect
@@ -69,6 +74,12 @@ case "$1" in
             if memberp "$ca" "$CERTS_ENABLED"; then
               echo "$ca"
               # CERTS_ENABLED=$(delca "$ca" "$CERTS_ENABLED")
+         elif memberp "$ca" "$CERTS_AVAILABLE" ||
+              echo "$line" | grep -q '^!'; then
+           echo "!$ca"
+         elif [ -f /usr/share/ca-certificates/"$ca" ] || \
+              [ -f /usr/local/share/ca-certificates/"$ca" ]; then
+           echo "$ca"
             else
               echo "!$ca"
             fi
@@ -126,7 +137,13 @@ EOF
                -e 's/^[[:space:]]*1[[:space:]]*/!/' \
            >> /etc/ca-certificates.conf
        fi
-       update-ca-certificates
+       # fix bogus symlink to ca-certificates.crt on upgrades; see
+       # Debian #643667; drop after wheezy
+       if dpkg --compare-versions "$2" lt-nl 20110502+nmu2+643667; then
+           update-ca-certificates --fresh
+       else
+           update-ca-certificates
+       fi
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)