--- ca-certificates-20120212/sbin/update-ca-certificates~ 2012-05-12 16:08:15.813747796 +0300 +++ ca-certificates-20120212/sbin/update-ca-certificates 2012-05-12 16:09:57.727422190 +0300 @@ -41,6 +41,7 @@ done CERTSCONF=$DESTDIR/etc/ca-certificates.conf +CERTSCONFD=$DESTDIR/etc/ca-certificates.d CERTSDIR=$DESTDIR/usr/share/ca-certificates LOCALCERTSDIR=$DESTDIR/etc/certs CERTBUNDLE=$DESTDIR/etc/certs/ca-certificates.crt @@ -105,25 +106,30 @@ echo -n "Updating certificates in $ETCCERTSDIR... " -# Handle certificates that should be removed. This is an explicit act -# by prefixing lines in the configuration files with exclamation marks (!). -sed -n -e '/^$/d' -e 's/^!//p' $CERTSCONF | while read crt -do - remove "$CERTSDIR/$crt" -done +for conf in $CERTSCONF $CERTSCONFD/*.conf; do + # skip inexistent files (matched by glob) + [ -f $conf ] || continue + + # Handle certificates that should be removed. This is an explicit act + # by prefixing lines in the configuration files with exclamation marks (!). + sed -n -e '/^$/d' -e 's/^!//p' $conf | while read crt + do + remove "$CERTSDIR/$crt" + done -sed -e '/^$/d' -e '/^#/d' -e '/^!/d' $CERTSCONF | while read crt -do - if test -f "$CERTSDIR/$crt" - then - add "$CERTSDIR/$crt" - elif test -f "$LOCALCERTSDIR/$crt" - then - add "$LOCALCERTSDIR/$crt" - else - echo "W: $CERTSDIR/$crt or $LOCALCERTSDIR/$crt not found, but listed in $CERTSCONF." >&2 - continue - fi + sed -e '/^$/d' -e '/^#/d' -e '/^!/d' $conf | while read crt + do + if test -f "$CERTSDIR/$crt" + then + add "$CERTSDIR/$crt" + elif test -f "$LOCALCERTSDIR/$crt" + then + add "$LOCALCERTSDIR/$crt" + else + echo "W: $CERTSDIR/$crt or $LOCALCERTSDIR/$crt not found, but listed in $conf." >&2 + continue + fi + done done rm -f "$CERTBUNDLE"