[25628] in Source-Commits
/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