ArdourCurl: prepare to unify various curl calls
[ardour.git] / gtk2_ardour / bundle_env_linux.cc
index ad484aa7c7df1e92ce8c658fa117935b442eabea..80830964b4e9f50be6bd16adeb19d2bc1a0c6a83 100644 (file)
@@ -17,7 +17,6 @@
 
 */
 
-#include <fstream>
 #include <string>
 #include <vector>
 #include <cerrno>
 #include "pbd/pathexpand.h"
 #include "pbd/file_utils.h"
 
+#include "ardour_http.h"
 #include "bundle_env.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace PBD;
 using namespace ARDOUR;
 using namespace std;
 
 void
-fixup_bundle_environment (int /*argc*/, char* argv[], const char** localedir)
+fixup_bundle_environment (int /*argc*/, char* argv[], string & localedir)
 {
        /* THIS IS FOR LINUX - its just about the only place where its
         * acceptable to build paths directly using '/'.
@@ -60,18 +60,23 @@ fixup_bundle_environment (int /*argc*/, char* argv[], const char** localedir)
 
        std::string path;
        std::string dir_path = Glib::path_get_dirname (Glib::path_get_dirname (argv[0]));
-       std::string userconfigdir = user_config_directory();
+#if defined WINDOWS_VST_SUPPORT
+       // argv[0] will be "wine"
+       if (g_getenv ("INSTALL_DIR")) {
+               dir_path = g_getenv ("INSTALL_DIR");
+       }
+#endif
 
 #ifdef ENABLE_NLS
        if (!ARDOUR::translations_are_enabled ()) {
-               (*localedir) = "/this/cannot/exist";
+               localedir = "/this/cannot/exist";
        } else {
                /* force localedir into the bundle */
                vector<string> lpath;
                lpath.push_back (dir_path);
                lpath.push_back ("share");
                lpath.push_back ("locale");
-               (*localedir) = canonical_path (Glib::build_filename (lpath)).c_str();
+               localedir = canonical_path (Glib::build_filename (lpath)).c_str();
        }
 #endif
 
@@ -90,10 +95,10 @@ fixup_bundle_environment (int /*argc*/, char* argv[], const char** localedir)
        g_setenv ("SUIL_MODULE_DIR", (dir_path + "/lib").c_str(), 1);
        g_setenv ("PATH", (dir_path + "/bin:" + std::string(g_getenv ("PATH"))).c_str(), 1);
 
-       /* unset GTK_RC_FILES so that we only load the RC files that we define
+       /* unset GTK2_RC_FILES so that we only load the RC files that we define
         */
 
-       g_unsetenv ("GTK_RC_FILES");
+       g_unsetenv ("GTK2_RC_FILES");
 
        /* Tell fontconfig where to find fonts.conf. Use the system version
           if it exists, otherwise use the stuff we included in the bundle
@@ -106,48 +111,16 @@ fixup_bundle_environment (int /*argc*/, char* argv[], const char** localedir)
                error << _("No fontconfig file found on your system. Things may looked very odd or ugly") << endmsg;
        }
 
-       /* write a pango.rc file and tell pango to use it. we'd love
-          to put this into the Ardour.app bundle and leave it there,
-          but the user may not have write permission. so ...
-
-          we also have to make sure that the user ardour directory
-          actually exists ...
-       */
-
-       if (g_mkdir_with_parents (userconfigdir.c_str(), 0755) < 0) {
-               error << string_compose (_("cannot create user %3 folder %1 (%2)"), userconfigdir, strerror (errno), PROGRAM_NAME)
-                     << endmsg;
-       } else {
-               
-               path = Glib::build_filename (userconfigdir, "pango.rc");
-               std::ofstream pangorc (path.c_str());
-               if (!pangorc) {
-                       error << string_compose (_("cannot open pango.rc file %1") , path) << endmsg;
-               } else {
-                       pangorc << "[Pango]\nModuleFiles="
-                               << Glib::build_filename (userconfigdir, "pango.modules")
-                               << endl;
-                       pangorc.close ();
-               }
-               
-               g_setenv ("PANGO_RC_FILE", path.c_str(), 1);
-               
-               /* similar for GDK pixbuf loaders, but there's no RC file required
-                  to specify where it lives.
-               */
-               
-               g_setenv ("GDK_PIXBUF_MODULE_FILE", Glib::build_filename (userconfigdir, "gdk-pixbuf.loaders").c_str(), 1);
-       }
-
-        /* this doesn't do much but setting it should prevent various parts of the GTK/GNU stack
-           from looking outside the bundle to find the charset.alias file.
-        */
-        g_setenv ("CHARSETALIASDIR", dir_path.c_str(), 1);
+       /* this doesn't do much but setting it should prevent various parts of the GTK/GNU stack
+                from looking outside the bundle to find the charset.alias file.
+                */
+       g_setenv ("CHARSETALIASDIR", dir_path.c_str(), 1);
 
+       ArdourCurl::HttpGet::setup_certificate_paths ();
 }
 
-void 
-load_custom_fonts() 
+void
+load_custom_fonts()
 {
        std::string ardour_mono_file;