diff options
-rw-r--r-- | gtk2_ardour/curvetest.cc | 10 | ||||
-rw-r--r-- | gtk2_ardour/main.cc | 62 | ||||
-rwxr-xr-x | tools/linux_packaging/build | 19 |
3 files changed, 64 insertions, 27 deletions
diff --git a/gtk2_ardour/curvetest.cc b/gtk2_ardour/curvetest.cc index 498ed45eba..b3431e3f39 100644 --- a/gtk2_ardour/curvetest.cc +++ b/gtk2_ardour/curvetest.cc @@ -32,6 +32,11 @@ using namespace PBD; int curvetest (string filename) { + // needed to initialize ID objects/counter used + // by Curve et al. + + PBD::ID::init (); + ifstream in (filename.c_str()); stringstream line; //Evoral::Parameter param(GainAutomation, -1.0, +1.0, 0.0); @@ -40,11 +45,6 @@ curvetest (string filename) double minx = DBL_MAX; double maxx = DBL_MIN; - // needed to initialize ID objects/counter used - // by Curve et al. - - PBD::ID::init (); - while (in) { double x, y; diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc index a853d7b61b..9803ea2f05 100644 --- a/gtk2_ardour/main.cc +++ b/gtk2_ardour/main.cc @@ -21,6 +21,7 @@ #include <signal.h> #include <cerrno> #include <fstream> +#include <vector> #include <sigc++/bind.h> #include <gtkmm/settings.h> @@ -289,6 +290,10 @@ fixup_bundle_environment (int, char* []) void fixup_bundle_environment (int /*argc*/, char* argv[]) { + /* THIS IS FOR LINUX - its just about the only place where its + * acceptable to build paths directly using '/'. + */ + if (!getenv ("ARDOUR_BUNDLED")) { return; } @@ -370,32 +375,45 @@ fixup_bundle_environment (int /*argc*/, char* argv[]) if (g_mkdir_with_parents (userconfigdir.c_str(), 0755) < 0) { error << string_compose (_("cannot create user ardour folder %1 (%2)"), userconfigdir, strerror (errno)) << endmsg; - } else { - - Glib::ustring mpath; - - 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 { - mpath = Glib::build_filename (userconfigdir, "pango.modules"); - - pangorc << "[Pango]\nModuleFiles="; - pangorc << mpath << endl; - pangorc.close (); - } + return; + } - setenv ("PANGO_RC_FILE", path.c_str(), 1); + Glib::ustring mpath; + + 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 { + mpath = Glib::build_filename (userconfigdir, "pango.modules"); + + pangorc << "[Pango]\nModuleFiles="; + pangorc << mpath << endl; + pangorc.close (); + } + + 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. - */ + /* Tell fontconfig where to find fonts.conf. Use the system version + if it exists, otherwise use the stuff we included in t + */ - mpath = Glib::build_filename (userconfigdir, "gdk-pixbuf.loaders"); - setenv ("GDK_PIXBUF_MODULE_FILE", mpath.c_str(), 1); + if (Glib::file_test ("/etc/fonts/fonts.conf", Glib::FILE_TEST_EXISTS)) { + setenv ("/etc/fonts/fonts.conf", path.c_str(), 1); + } else { + /* use the one included in the bundle */ + + path = Glib::build_filename (dir_path, "etc/fonts/fonts.conf"); + setenv ("FONTCONFIG_FILE", path.c_str(), 1); } + + /* similar for GDK pixbuf loaders, but there's no RC file required + to specify where it lives. + */ + + mpath = Glib::build_filename (userconfigdir, "gdk-pixbuf.loaders"); + setenv ("GDK_PIXBUF_MODULE_FILE", mpath.c_str(), 1); } #endif diff --git a/tools/linux_packaging/build b/tools/linux_packaging/build index 6a67af120c..f8d1843352 100755 --- a/tools/linux_packaging/build +++ b/tools/linux_packaging/build @@ -280,6 +280,25 @@ else echo "Skipping NLS support" fi +### Find fontconfig ### +FCROOT=`pkg-config --libs-only-L fontconfig | sed -e "s/-L//" -e "s/[[:space:]]//g"` +if [ ! -z "$FCROOT" ]; then + echo "Found FCOOT using pkg-config" + FCETC=`dirname $FCROOT`/etc +elif [ -d /usr/lib/gtk-2.0 ]; then + FCETC="/etc" +elif [ -d /usr/local/lib/gtk-2.0 ]; then + FCETC="/usr/local/etc" +else + echo "" + echo "!!! ERROR !!! - Unable to locate fontconfig directory. Packager will exit" + echo "" + exit 1 +fi + +echo "Copying Fontconfig files to $Etc ..." +cp -r $FCETC/fonts $Etc + ### Find gtk ### GTKROOT=`pkg-config --libs-only-L gtk+-2.0 | sed -e "s/-L//" -e "s/[[:space:]]//g"` if [ ! -z "$GTKROOT" ]; then |