New patch, 022_module-files-append-compat-module-files-d, prefer

/usr/lib32/gtk-2.0/<gtk-binary-version>/loader-files.d and
/immodule-files.d over the /usr/lib/.../*.d pathnames added in
020_immodules-files-d and 021_loader-files-d when available; this is
useful for ia32-libs support; other modules might need additional support
depending on how they are loaded, for example GTK_MODULES will probably
still be looked up below libdir, as well as engines, printbackends,
filesystems, and generic modules.  See also Ubuntu #205223 and #190227 for
examples.
This commit is contained in:
Loïc Minier
2008-05-10 23:09:23 +00:00
parent 84af5dd29a
commit f7e009c0e5
3 changed files with 115 additions and 1 deletions

11
debian/changelog vendored
View File

@ -36,8 +36,17 @@ gtk+2.0 (2.12.9-4) unstable; urgency=low
defined in gdk-pixbuf/Makefile.am, similarly to PIXBUF_LIBDIR, and based
on the newly defined loaderfilesdir, similar to loaderdir; update
070_mandatory-relibtoolize.
* New patch, 022_module-files-append-compat-module-files-d, prefer
/usr/lib32/gtk-2.0/<gtk-binary-version>/loader-files.d and
/immodule-files.d over the /usr/lib/.../*.d pathnames added in
020_immodules-files-d and 021_loader-files-d when available; this is
useful for ia32-libs support; other modules might need additional support
depending on how they are loaded, for example GTK_MODULES will probably
still be looked up below libdir, as well as engines, printbackends,
filesystems, and generic modules. See also Ubuntu #205223 and #190227 for
examples.
-- Loic Minier <lool@dooz.org> Thu, 17 Apr 2008 12:34:24 +0200
-- Loic Minier <lool@dooz.org> Sun, 11 May 2008 00:47:26 +0200
gtk+2.0 (2.12.9-3) unstable; urgency=low

View File

@ -0,0 +1,104 @@
--- a/gtk/gtkimmodule.c 2008-05-11 00:40:56.000000000 +0200
+++ b/gtk/gtkimmodule.c 2008-05-11 00:41:25.000000000 +0200
@@ -31,6 +31,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#include <glib/gstdio.h>
#include <gmodule.h>
@@ -383,10 +384,32 @@
GTK_BINARY_VERSION,
"immodule-files.d",
NULL);
+
+#if defined(__linux__) && defined (__i386__)
+ gchar *compat_im_module_files_d_str = g_build_filename ("/usr/lib32/gtk-2.0",
+ GTK_BINARY_VERSION,
+ "immodule-files.d",
+ NULL);
+#elif defined(__linux__) && ( defined (__x86_64__) || defined(__ia64__) )
+ gchar *compat_im_module_files_d_str = g_build_filename ("/usr/lib64/gtk-2.0",
+ GTK_BINARY_VERSION,
+ "immodule-files.d",
+ NULL);
+#endif
FILE *file;
gchar *list_str;
char **files;
int n;
+#if defined(__linux__) && ( defined(__i386__) || defined (__x86_64__) || defined(__ia64__) )
+ /* prefer compat_im_module_files_d_str over im_module_files_d_str on the
+ * above arches if it's usable */
+ if (! g_access(compat_im_module_files_d_str, R_OK|X_OK))
+ list_str = g_strjoin (G_SEARCHPATH_SEPARATOR_S,
+ compat_im_module_files_d_str,
+ im_module_file_str,
+ NULL);
+ else /* continued below */
+#endif
list_str = g_strjoin (G_SEARCHPATH_SEPARATOR_S,
im_module_files_d_str,
@@ -438,6 +461,9 @@
g_strfreev (files);
g_free (list_str);
+#if defined(__linux__) && ( defined(__i386__) || defined (__x86_64__) || defined(__ia64__) )
+ g_free (compat_im_module_files_d_str);
+#endif
g_free (im_module_files_d_str);
g_free (im_module_file_str);
}
--- a/gdk-pixbuf/gdk-pixbuf-io.c 2008-05-11 00:40:56.000000000 +0200
+++ b/gdk-pixbuf/gdk-pixbuf-io.c 2008-05-11 00:40:56.000000000 +0200
@@ -518,6 +518,18 @@
#ifdef USE_GMODULE
GIOChannel *channel;
gchar *gdkpixbuf_module_file_str = gdk_pixbuf_get_module_file ();
+
+#if defined(__linux__) && defined (__i386__)
+ gchar *compat_gdkpixbuf_module_files_d_str = g_build_filename ("/usr/lib32/gtk-2.0",
+ GTK_BINARY_VERSION,
+ "loader-files.d",
+ NULL);
+#elif defined(__linux__) && ( defined (__x86_64__) || defined(__ia64__) )
+ gchar *compat_gdkpixbuf_module_files_d_str = g_build_filename ("/usr/lib64/gtk-2.0",
+ GTK_BINARY_VERSION,
+ "loader-files.d",
+ NULL);
+#endif
gchar *list_str;
char **files;
GError *error = NULL;
@@ -579,6 +591,18 @@
#undef load_one_builtin_module
#ifdef USE_GMODULE
+
+#if defined(__linux__) && ( defined(__i386__) || defined (__x86_64__) || defined(__ia64__) )
+ /* prefer compat_gdkpixbuf_module_files_d_str over PIXBUF_FILES_LIBDIR
+ * on the above arches if it's usable */
+ if (! g_access(compat_gdkpixbuf_module_files_d_str, R_OK|X_OK))
+ list_str = g_strjoin (G_SEARCHPATH_SEPARATOR_S,
+ gdkpixbuf_module_file_str,
+ compat_gdkpixbuf_module_files_d_str,
+ NULL);
+ else /* continued below */
+#endif
+
list_str = g_strjoin (G_SEARCHPATH_SEPARATOR_S,
gdkpixbuf_module_file_str,
PIXBUF_FILES_LIBDIR,
@@ -634,6 +658,10 @@
}
g_strfreev (files);
+#if defined(__linux__) && ( defined(__i386__) || defined (__x86_64__) || defined(__ia64__) )
+
+ g_free (compat_gdkpixbuf_module_files_d_str);
+#endif
g_free (list_str);
g_free (gdkpixbuf_module_file_str);
#endif

View File

@ -11,6 +11,7 @@
015_default-fallback-icon-theme.patch
020_immodules-files-d.patch
021_loader-files-d.patch
022_module-files-append-compat-module-files-d.patch
030_gtkentry_password-char-circle.patch
031_gtksearchenginetracker_fixes.patch
#033_treeview_resizing.patch