On Fri, Jan 12, 2007, Goswin von Brederlow wrote:
> > Is it more useful to turn on the support for /usr/lib32 at runtime
> > only, or is it ok to unconditionally setup this support at build time?
> How would you turn it on at runtime? Policy forbidds to set an
> environment variable in a package. You could have an /etc/pango/config
> that tells libpango i386 to use lib32 and we ship it in ia32-libs-gtk
> only. But isn't than more work than always using lib32?
Check the patch in the Ubuntu package, I thought I already sent it to
you during the multiarch discussion. It uses uname(). Attached.
> Alternatively you could include the gnu tripple in the path to the
> modules file like gcc uses:
> /usr/lib/pango/x86_64-linux-gnu/1.5.0/module-files.d/
> /usr/lib/pango/i486-linux-gnu/1.5.0/module-files.d/
> or like cross-compilers:
> /usr/x86_64-linux-gnu/lib/pango/1.5.0/module-files.d/
> /usr/i486-linux-gnu/lib/pango/1.5.0/module-files.d/
This would require updating of the pangohack in ia32-libs-gtk I
suppose.
--
Loïc Minier <[EMAIL PROTECTED]>
diff -Nur pango-1.15.2.orig/pango/pango-utils.c pango-1.15.2/pango/pango-utils.c
--- pango-1.15.2.orig/pango/pango-utils.c 2006-12-07 03:16:13.000000000 +0100
+++ pango-1.15.2/pango/pango-utils.c 2006-12-21 17:23:55.000000000 +0100
@@ -24,6 +24,8 @@
#include <string.h>
#include <stdlib.h>
#include <math.h>
+#include <unistd.h>
+#include <sys/utsname.h>
#include <locale.h>
#include "pango-font.h"
@@ -688,7 +690,23 @@
return result;
#else
- return SYSCONFDIR "/pango";
+ static gchar *result = NULL;
+ struct utsname uts;
+
+ if (result == NULL)
+ {
+ result = g_getenv("PANGO_SYSCONFDIR");
+ if (!access(result, R_OK|X_OK))
+ return result;
+#if defined(__linux__) && defined (__i386__)
+ uname(&uts);
+ if (!strcmp("x86_64", uts.machine)
+ && !access(SYSCONFDIR "/pango32", R_OK|X_OK))
+ result = SYSCONFDIR "/pango32";
+#endif
+ result = SYSCONFDIR "/pango";
+ }
+ return result;
#endif
}
@@ -716,6 +734,14 @@
return result;
#else
+#if defined(__linux__) && defined (__i386__)
+ struct utsname uts;
+
+ uname(&uts);
+ if (!strcmp("x86_64", uts.machine)
+ && !access("/usr/lib32/pango", R_OK|X_OK))
+ return "/usr/lib32/pango";
+#endif
return LIBDIR "/pango";
#endif
}