]> git.donarmstrong.com Git - ca-certificates.git/blobdiff - debian/config.in
Update release to 20121105
[ca-certificates.git] / debian / config.in
index ef4f57c5d80bf2ef73610e7ca078147b3f1b6a16..456dd360e53d44cb376465f11c41d9f5d0e2daac 100644 (file)
@@ -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