summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/curvetest.cc10
-rw-r--r--gtk2_ardour/main.cc62
-rwxr-xr-xtools/linux_packaging/build19
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