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
--- 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

Reply via email to