Bug#563253: With nss 3.12.5, evolution does not know about _any_ certificate authorities
Mike Hommey
mh at glandium.org
Mon Jan 11 14:19:14 UTC 2010
reassign 563253 evolution
tag 563253 + patch
thanks
On Fri, Jan 08, 2010 at 05:42:47PM +0000, Sam Morris wrote:
> On Fri, 2010-01-08 at 18:20 +0100, Mike Hommey wrote:
> > > > If you give evolution a new profile, is the certificate list populated in the new
> > > > profile under nss 3.12.5 ?
> > >
> > > It is not populated in this case.
> >
> > That's what I was afraid of.
>
> Oh--if I create a profile, the certificate list is empty. But if I then
> symlink in libnssckbi.so and re-launch evolution, the certificate list
> is populated. So I think that modifying evolution to only open
> "libnssckbi.so" and then relying on NSS to to find the library will do
> the right thing.
I gave some more thought to the issue, and it appears quite pointless to
try to workaround the issue in nss to fix broken configurations, while
evolution will still need a modification for new profiles.
I'm therefore reassigning this bug to evolution, and attaching an
untested patch, that should just do the right thing. Please give it a
try.
Cheers,
Mike
-------------- next part --------------
--- evolution-2.28.2.orig/smime/lib/e-cert-db.c
+++ evolution-2.28.2/smime/lib/e-cert-db.c
@@ -254,37 +254,11 @@
if (!RootsModule) {
#ifndef G_OS_WIN32
- /* grovel in various places for mozilla's built-in
- cert module.
-
- XXX yes this is gross. *sigh*
- */
- const gchar *paths_to_check[] = {
-#ifdef MOZILLA_NSS_LIB_DIR
- MOZILLA_NSS_LIB_DIR,
-#endif
- "/usr/lib",
- "/usr/lib/mozilla",
- "/opt/mozilla/lib",
- "/opt/mozilla/lib/mozilla"
- };
-
- for (i = 0; i < G_N_ELEMENTS (paths_to_check); i ++) {
- gchar *dll_path = g_module_build_path (paths_to_check [i], "nssckbi");
-
- if (g_file_test (dll_path, G_FILE_TEST_EXISTS)) {
- PRInt32 modType;
-
- /* Delete the existing module */
- SECMOD_DeleteModule ("Mozilla Root Certs", &modType);
-
- SECMOD_AddNewModule("Mozilla Root Certs",dll_path, 0, 0);
- g_free (dll_path);
- break;
- }
-
- g_free (dll_path);
- }
+ PRInt32 modType;
+ gchar *dll_name = g_module_build_path(NULL, "nssckbi");
+ SECMOD_DeleteModule ("Mozilla Root Certs", &modType);
+ SECMOD_AddNewModule("Mozilla Root Certs",dll_name, 0, 0);
+ g_free(dll_name);
#else
/* FIXME: Might be useful to look up if there is a
* Mozilla installation on the machine and use the
More information about the pkg-mozilla-maintainers
mailing list