[25628] in Source-Commits

home help back first fref pref prev next nref lref last post

/svn/athena r25134 - in trunk/debathena/debathena/firefox-wrapper: . debian

daemon@ATHENA.MIT.EDU (Jonathan D Reed)
Tue Jun 14 13:02:20 2011

Date: Tue, 14 Jun 2011 13:02:14 -0400
From: Jonathan D Reed <jdreed@MIT.EDU>
Message-Id: <201106141702.p5EH2E04008402@drugstore.mit.edu>
To: source-commits@mit.edu
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Author: jdreed
Date: 2011-06-14 13:02:14 -0400 (Tue, 14 Jun 2011)
New Revision: 25134

Modified:
   trunk/debathena/debathena/firefox-wrapper/debian/changelog
   trunk/debathena/debathena/firefox-wrapper/debian/control.in
   trunk/debathena/debathena/firefox-wrapper/firefox.sh
Log:
In firefox-wrapper:
  * Use modutil to detect when a user has borked their security database
    (Trac: #698)
  * Add dependency on libnss3-tools for the above change


Modified: trunk/debathena/debathena/firefox-wrapper/debian/changelog
===================================================================
--- trunk/debathena/debathena/firefox-wrapper/debian/changelog	2011-06-14 13:38:28 UTC (rev 25133)
+++ trunk/debathena/debathena/firefox-wrapper/debian/changelog	2011-06-14 17:02:14 UTC (rev 25134)
@@ -1,3 +1,11 @@
+debathena-firefox-wrapper (10.0.9) unstable; urgency=low
+
+  * Use modutil to detect when a user has borked their security database
+    (Trac: #698)
+  * Add dependency on libnss3-tools for the above change
+
+ -- Jonathan Reed <jdreed@mit.edu>  Tue, 14 Jun 2011 13:00:17 -0400
+
 debathena-firefox-wrapper (10.0.8) unstable; urgency=low
 
   * Rename the "default" variable used in the wrapper's awk

Modified: trunk/debathena/debathena/firefox-wrapper/debian/control.in
===================================================================
--- trunk/debathena/debathena/firefox-wrapper/debian/control.in	2011-06-14 13:38:28 UTC (rev 25133)
+++ trunk/debathena/debathena/firefox-wrapper/debian/control.in	2011-06-14 17:02:14 UTC (rev 25134)
@@ -7,7 +7,7 @@
 
 Package: debathena-firefox-wrapper
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, iceweasel | firefox, zenity, bind9-host
+Depends: ${shlibs:Depends}, ${misc:Depends}, iceweasel | firefox, zenity, bind9-host, libnss3-tools
 Description: Wrapper to configure Mozilla Firefox for Debathena
  This package provides a wrapper for the stock Mozilla Firefox web
  browser.  It handles disposing of stale profile locks, as well as

Modified: trunk/debathena/debathena/firefox-wrapper/firefox.sh
===================================================================
--- trunk/debathena/debathena/firefox-wrapper/firefox.sh	2011-06-14 13:38:28 UTC (rev 25133)
+++ trunk/debathena/debathena/firefox-wrapper/firefox.sh	2011-06-14 17:02:14 UTC (rev 25134)
@@ -183,6 +183,50 @@
   esac
 }
 
+# Deal with a corrupted security database
+fix_profile () {
+  dialog_ok_text="
+  Your Firefox profile was corrupted and has been repaired. 
+  You will need to obtain new MIT Personal Certificates.
+
+  To avoid this problem in the future, please be sure to 
+  completely quit Firefox (File->Quit or Ctrl-Q) before 
+  logging out of an Athena workstation.
+
+  To continue using Firefox, click \"OK\".
+"
+  dialog_err_text="
+  Your Firefox profile is corrupted and cannot be repaired.
+  Please try running the following command in the Terminal:
+
+         mv ~/.mozilla ~/.mozilla-old
+
+  Then re-launch Firefox.  
+
+  Be sure to completely quit Firefox before 
+  logging out of Athena.
+"
+  dbdir="$1"
+  files="cert8.db key3.db secmod.db"
+  found=0
+  for f in $files; do
+    f="$dbdir/$f"
+    if [ -f "$f" ]; then
+	found=1
+    fi
+    rm -f $f
+  done
+  if ! modutil -create -force -dbdir "$dbdir"; then
+    zenity --error --title "Firefox profile corrupted" --text "$dialog_err_text"
+    exit 1
+  else
+    if [ $found -eq 1 ]; then
+      zenity --info --title "Firefox profile repaired" --text "$dialog_ok_text"
+    fi
+  fi
+}
+
+
 # Give a warning if we're running on a dialup machine.
 if [ -x /etc/athena/dialuptype ]; then
   cat << \EOF
@@ -266,6 +310,10 @@
       # the aforementioned openafs bug.
       rm -f "$profdir/.parentlock"
     fi
+    # Now check for corrupted profiles
+    if hash modutil > /dev/null 2>&1 && ! modutil -list -dbdir $profdir > /dev/null 2>&1; then
+	fix_profile "$profdir"
+    fi
   fi
 fi
 


home help back first fref pref prev next nref lref last post