X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=debian%2Fconfig.in;h=456dd360e53d44cb376465f11c41d9f5d0e2daac;hb=6e0c68a46d230fa0ebe4801a3d55d33df597f3d9;hp=ef4f57c5d80bf2ef73610e7ca078147b3f1b6a16;hpb=ec9311ac6b70963e9a1feb14341c07fbbea377a2;p=ca-certificates.git diff --git a/debian/config.in b/debian/config.in index ef4f57c..456dd36 100644 --- a/debian/config.in +++ b/debian/config.in @@ -6,6 +6,7 @@ set -e action="$1" cur_version="$2" this_version='#VERSION#' +pt_BR_fixed_version="20080616" if test -f /etc/ca-certificates.conf; then CERTSCONF=/etc/ca-certificates.conf @@ -46,7 +47,7 @@ members() db_version 2.0 db_capb multiselect -db_title "ca-certificates configuration" +db_settitle ca-certificates/title db_input medium ca-certificates/trust_new_crts || true db_go @@ -77,9 +78,9 @@ if test -d /usr/share/ca-certificates; then else CERTS_AVAILABLE="$CERTS_AVAILABLE, $crt" fi - if echo "$CERTS_DISABLED" | grep -F -q -x "$crt" > /dev/null 2>&1; then + if (echo "$CERTS_DISABLED" | grep -F -q -x "$crt") > /dev/null 2>&1; then : # echo "I: ignore $crt" - elif echo "$CERTS_TRUST" | grep -F -q -x "$crt" > /dev/null 2>&1; then + elif (echo "$CERTS_TRUST" | grep -F -q -x "$crt") > /dev/null 2>&1; then # already trusted if test "$CERTS_ENABLED" = ""; then CERTS_ENABLED="$crt" @@ -141,7 +142,6 @@ fi if test "$trust_new" = "ask" && test "$CERTS_NEW" != "" && test "$new_seen" = "false"; then # New certificates added db_fset ca-certificates/new_crts seen false - db_title "ca-certificates configuration" db_input critical ca-certificates/new_crts || true db_go @@ -158,12 +158,66 @@ fi # mark seen true, so that dont ask again while postinst db_fset ca-certificates/new_crts seen true -db_set ca-certificates/enable_crts "$CERTS_ENABLED" -db_subst ca-certificates/enable_crts enable_crts "$CERTS_AVAILABLE" -if test "$seen" != true; then - db_fset ca-certificates/enable_crts seen false +# Ideally, we would be able to ask debconf for the language it's using, or +# at least have a shell binding for setlocale(). Since we don't, we have to +# do it all by hand. +is_pt_BR () { + current_lc_messages="$(eval `locale`; echo "$LC_MESSAGES")" + case "$LANGUAGE" in + pt_BR*) + return 0 + ;; + *) + case "$current_lc_messages" in + pt_BR*) + return 0 + ;; + esac + esac + return 1 +} + +PRIO=low +set_values=true + +if dpkg --compare-versions "$cur_version" lt-nl "$pt_BR_fixed_version"; then + asked="false" + if db_fget ca-certificates/enable_crts asked_pt_br_question; then + asked="$RET" + fi + if [ "$asked" != "true" ]; then + if [ -e "/etc/ssl/certs/ca-certificates.crt" ] && [ ! -s "/etc/ssl/certs/ca-certificates.crt" ]; then + pt_seen="false" + if db_fget ca-certificates/enable_crts seen; then + pt_seen="$RET" + fi + if [ "$pt_seen" = "false" ]; then + CERTS_ENABLED="$CERTS_AVAILABLE" + elif is_pt_BR; then + PRIO=critical + CERTS_ENABLED="$CERTS_AVAILABLE" + seen=false + else + seen=true + fi + fi + else + set_values=false + fi fi -db_title "ca-certificates configuration" -db_input low ca-certificates/enable_crts || true -db_go + +if [ "$set_values" = "true" ]; then + db_set ca-certificates/enable_crts "$CERTS_ENABLED" + db_subst ca-certificates/enable_crts enable_crts "$CERTS_AVAILABLE" + if test "$seen" != true; then + db_fset ca-certificates/enable_crts seen false + fi + db_input $PRIO ca-certificates/enable_crts || true + db_go + + if [ "$PRIO" = "critical" ]; then + db_fset ca-certificates/enable_crts asked_pt_br_question true + fi +fi + exit 0