[evolution-data-server] [Flatpak] Use a persistent location for an NSS certificate database



commit ef57f669d9295408edee2d3dfd69110d1853ff3c
Author: Milan Crha <mcrha redhat com>
Date:   Wed Mar 27 15:22:28 2019 +0100

    [Flatpak] Use a persistent location for an NSS certificate database
    
    The ~/.pki/nssdb doesn't work under Flatpak, better to use the one
    suggested by Flatpak itself, thus the user certificates are stored
    in a persistent location.

 src/camel/camel.c                                      | 10 ++++++++--
 src/camel/providers/sendmail/camel-sendmail-provider.c |  2 +-
 2 files changed, 9 insertions(+), 3 deletions(-)
---
diff --git a/src/camel/camel.c b/src/camel/camel.c
index a9f0523b3..53dd50132 100644
--- a/src/camel/camel.c
+++ b/src/camel/camel.c
@@ -138,8 +138,14 @@ camel_init (const gchar *configdir,
                        nss_sql_configdir = g_strconcat (
                                "sql:", nss_configdir, NULL);
 #else
-                       gchar *user_nss_dir = g_build_filename (
-                               g_get_home_dir (), ".pki/nssdb", NULL );
+                       gchar *user_nss_dir;
+
+                       /* Use a persistent location in Flatpak */
+                       if (g_file_test ("/.flatpak-info", G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR))
+                               user_nss_dir = g_build_filename (nss_configdir, "nssdb", NULL);
+                       else
+                               user_nss_dir = g_build_filename (g_get_home_dir (), ".pki", "nssdb", NULL);
+
                        if (g_mkdir_with_parents (user_nss_dir, 0700))
                                g_warning (
                                        "Failed to create SQL "
diff --git a/src/camel/providers/sendmail/camel-sendmail-provider.c 
b/src/camel/providers/sendmail/camel-sendmail-provider.c
index 6450ad2c5..d8212923c 100644
--- a/src/camel/providers/sendmail/camel-sendmail-provider.c
+++ b/src/camel/providers/sendmail/camel-sendmail-provider.c
@@ -58,7 +58,7 @@ camel_provider_module_init (void)
 
        /* Hide sendmail in Flatpak. It cannot access the host sendmail
           anyway, neither any custom binary from the host. */
-       if (!g_file_test ("/.flatpak-info", G_FILE_TEST_EXISTS))
+       if (!g_file_test ("/.flatpak-info", G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR))
                camel_provider_register (&sendmail_provider);
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]