Source: gtk+2.0 Version: 2.24.5-2 Tags: patch User: [email protected] Usertags: ubuntu-patch oneiric origin-ubuntu
Hi folks, Please find attached a patch to gtk+2.0 to transition it to use of the multiarch library paths as described at <http://wiki.debian.org/Multiarch/Implementation>. This patch has been applied and is being used successfully in Ubuntu oneiric, and should be safe to apply in Debian now that multiarch has been bootstrapped there. By way of explanation, here is the changelog entry from the Ubuntu upload: * Build for multiarch. * Bump gobject-introspection build-dependency for multiarch tuple support. * debian/patches/098_multiarch_module_path.patch: Fall back to the hard-coded pre-multiarch module directory. * Build-depend on debhelper 8.1.3 and add Pre-Depends: ${misc:Pre-Depends} for multiarch-support. * Make the -dev packages depend on a multiarch-capable version of pkg-config. Cheers, -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer http://www.debian.org/ [email protected] [email protected]
diff -Nru gtk+2.0-2.24.5/debian/control gtk+2.0-2.24.5/debian/control --- gtk+2.0-2.24.5/debian/control 2011-07-14 11:34:49.000000000 +0000 +++ gtk+2.0-2.24.5/debian/control 2011-06-30 14:05:41.000000000 +0000 @@ -3,7 +3,7 @@ Priority: optional Maintainer: Sebastien Bacher <[email protected]> Uploaders: Debian GNOME Maintainers <[email protected]>, Emilio Pozuelo Monfort <[email protected]>, Josselin Mouette <[email protected]>, Michael Biebl <[email protected]> -Build-Depends: debhelper (>= 7.0.50~), +Build-Depends: debhelper (>= 8.1.3), gettext, gtk-doc-tools (>= 1.11), pkg-config, @@ -28,10 +28,10 @@ libxfixes-dev (>= 1:3.0.0-3), libcairo2-dev (>= 1.6.4-6.1), gnome-pkg-tools (>= 0.11), - dpkg-dev (>= 1.13.19), + dpkg-dev (>= 1.16.0), x11proto-xext-dev, libcups2-dev (>= 1.2), - gobject-introspection (>= 0.9.12-4~), + gobject-introspection (>= 0.10.8-2), libgirepository1.0-dev (>= 0.9.3), gir1.2-glib-2.0, gir1.2-freedesktop, @@ -62,6 +62,8 @@ libgtk2.0-bin Suggests: librsvg2-common, gvfs +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} Description: GTK+ graphical user interface library GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable @@ -95,6 +97,7 @@ Architecture: all Depends: ${misc:Depends} Recommends: libgtk2.0-0 +Multi-Arch: foreign Description: common files for the GTK+ graphical user interface library GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable @@ -109,6 +112,7 @@ Depends: ${misc:Depends}, libgtk2.0-0 (>= ${source:Version}), libgtk2.0-common +Multi-Arch: foreign Description: programs for the GTK+ graphical user interface library GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable @@ -139,7 +143,7 @@ libxfixes-dev (>= 1:3.0.0-3), libxcomposite-dev (>= 1:0.2.0-3), libxdamage-dev (>= 1:1.0.1-3), - pkg-config, + pkg-config (>= 0.26-1), libxml2-utils Recommends: python (>= 2.4), debhelper @@ -161,6 +165,7 @@ Depends: libgtk2.0-0 (= ${binary:Version}), libgtk2.0-common, ${misc:Depends} +Multi-Arch: same Description: GTK+ libraries and debugging symbols GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable @@ -179,6 +184,7 @@ Recommends: libglib2.0-doc, libatk1.0-doc, libpango1.0-doc +Multi-Arch: foreign Description: documentation for the GTK+ graphical user interface library GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable @@ -242,6 +248,8 @@ ${shlibs:Depends}, libgtk2.0-0 (= ${binary:Version}) Replaces: libgail17, libgtk2.0-0 (<< 2.14.5) +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} Description: GNOME Accessibility Implementation Library -- shared libraries Gail implements ATK interfaces for GTK+ widgets which are dynamically loadable at runtime by a GTK+ application. Once loaded, those parts of @@ -255,6 +263,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, libgail18 (= ${binary:Version}) +Multi-Arch: foreign Description: GNOME Accessibility Implementation Library -- common modules Gail implements ATK interfaces for GTK+ widgets which are dynamically loadable at runtime by a GTK+ application. Once loaded, those parts of @@ -270,7 +279,7 @@ libgail18 (= ${binary:Version}), libgail-common (= ${binary:Version}), libgtk2.0-dev (= ${binary:Version}), - pkg-config, + pkg-config (>= 0.26-1), libatk1.0-dev (>= 1.13.0) Suggests: libgail-doc Replaces: libgtk2.0-dev (<< 2.14.5) @@ -289,6 +298,7 @@ Depends: ${misc:Depends}, libgail18 (= ${binary:Version}) Recommends: libgtk2.0-0-dbg Replaces: libgtk2.0-0-dbg (<< 2.14.5) +Multi-Arch: same Description: Gail libraries and debugging symbols Gail is the "GNOME Accessibility Implementation Library". . @@ -301,6 +311,7 @@ Section: doc Depends: ${misc:Depends}, lynx | www-browser Replaces: libgtk2.0-doc (<< 2.14.5) +Multi-Arch: foreign Description: documentation files of the Gail library Gail implements ATK interfaces for GTK+ widgets which are dynamically loadable at runtime by a GTK+ application. Once loaded, those parts of diff -Nru gtk+2.0-2.24.5/debian/control.in gtk+2.0-2.24.5/debian/control.in --- gtk+2.0-2.24.5/debian/control.in 2011-07-14 11:34:48.000000000 +0000 +++ gtk+2.0-2.24.5/debian/control.in 2011-06-30 14:05:41.000000000 +0000 @@ -3,7 +3,7 @@ Priority: optional Maintainer: Sebastien Bacher <[email protected]> Uploaders: @GNOME_TEAM@ -Build-Depends: debhelper (>= 7.0.50~), +Build-Depends: debhelper (>= 8.1.3), gettext, gtk-doc-tools (>= 1.11), pkg-config, @@ -28,10 +28,10 @@ libxfixes-dev (>= 1:3.0.0-3), libcairo2-dev (>= 1.6.4-6.1), gnome-pkg-tools (>= 0.11), - dpkg-dev (>= 1.13.19), + dpkg-dev (>= 1.16.0), x11proto-xext-dev, libcups2-dev (>= 1.2), - gobject-introspection (>= 0.9.12-4~), + gobject-introspection (>= 0.10.8-2), libgirepository1.0-dev (>= 0.9.3), gir1.2-glib-2.0, gir1.2-freedesktop, @@ -62,6 +62,8 @@ @BIN_PKG@ Suggests: librsvg2-common, gvfs +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} Description: GTK+ graphical user interface library GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable @@ -95,6 +97,7 @@ Architecture: all Depends: ${misc:Depends} Recommends: @SHARED_PKG@ +Multi-Arch: foreign Description: common files for the GTK+ graphical user interface library GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable @@ -109,6 +112,7 @@ Depends: ${misc:Depends}, @SHARED_PKG@ (>= ${source:Version}), @COMMON_PKG@ +Multi-Arch: foreign Description: programs for the GTK+ graphical user interface library GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable @@ -139,7 +143,7 @@ libxfixes-dev (>= 1:3.0.0-3), libxcomposite-dev (>= 1:0.2.0-3), libxdamage-dev (>= 1:1.0.1-3), - pkg-config, + pkg-config (>= 0.26-1), libxml2-utils Recommends: python (>= 2.4), debhelper @@ -161,6 +165,7 @@ Depends: @SHARED_PKG@ (= ${binary:Version}), @COMMON_PKG@, ${misc:Depends} +Multi-Arch: same Description: GTK+ libraries and debugging symbols GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable @@ -179,6 +184,7 @@ Recommends: libglib2.0-doc, libatk1.0-doc, libpango1.0-doc +Multi-Arch: foreign Description: documentation for the GTK+ graphical user interface library GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable @@ -242,6 +248,8 @@ ${shlibs:Depends}, @SHARED_PKG@ (= ${binary:Version}) Replaces: libgail17, libgtk2.0-0 (<< 2.14.5) +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} Description: GNOME Accessibility Implementation Library -- shared libraries Gail implements ATK interfaces for GTK+ widgets which are dynamically loadable at runtime by a GTK+ application. Once loaded, those parts of @@ -255,6 +263,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, libgail18 (= ${binary:Version}) +Multi-Arch: foreign Description: GNOME Accessibility Implementation Library -- common modules Gail implements ATK interfaces for GTK+ widgets which are dynamically loadable at runtime by a GTK+ application. Once loaded, those parts of @@ -270,7 +279,7 @@ libgail18 (= ${binary:Version}), libgail-common (= ${binary:Version}), @DEV_PKG@ (= ${binary:Version}), - pkg-config, + pkg-config (>= 0.26-1), libatk1.0-dev (>= 1.13.0) Suggests: libgail-doc Replaces: libgtk2.0-dev (<< 2.14.5) @@ -289,6 +298,7 @@ Depends: ${misc:Depends}, libgail18 (= ${binary:Version}) Recommends: @DEBUG_PKG@ Replaces: libgtk2.0-0-dbg (<< 2.14.5) +Multi-Arch: same Description: Gail libraries and debugging symbols Gail is the "GNOME Accessibility Implementation Library". . @@ -301,6 +311,7 @@ Section: doc Depends: ${misc:Depends}, lynx | www-browser Replaces: libgtk2.0-doc (<< 2.14.5) +Multi-Arch: foreign Description: documentation files of the Gail library Gail implements ATK interfaces for GTK+ widgets which are dynamically loadable at runtime by a GTK+ application. Once loaded, those parts of diff -Nru gtk+2.0-2.24.5/debian/gir1.2-gtk-2.0.install.in gtk+2.0-2.24.5/debian/gir1.2-gtk-2.0.install.in --- gtk+2.0-2.24.5/debian/gir1.2-gtk-2.0.install.in 2011-06-06 16:34:39.000000000 +0000 +++ gtk+2.0-2.24.5/debian/gir1.2-gtk-2.0.install.in 2011-06-30 14:05:38.000000000 +0000 @@ -1 +1 @@ -debian/install/shared/usr/lib/girepository-1.0/ usr/lib/ +debian/install/shared/@LIBDIR@/girepository-1.0/ usr/lib/ diff -Nru gtk+2.0-2.24.5/debian/libgail-dev.install gtk+2.0-2.24.5/debian/libgail-dev.install --- gtk+2.0-2.24.5/debian/libgail-dev.install 2011-06-06 16:34:39.000000000 +0000 +++ gtk+2.0-2.24.5/debian/libgail-dev.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -debian/install/shared/usr/include/gail* /usr/include -debian/install/shared/usr/lib/libgail*.so /usr/lib -debian/install/shared/usr/lib/libgail*.la /usr/lib -debian/install/static/usr/lib/libgail*.a /usr/lib -debian/install/shared/usr/lib/pkgconfig/gail*.pc /usr/lib/pkgconfig diff -Nru gtk+2.0-2.24.5/debian/libgail-dev.install.in gtk+2.0-2.24.5/debian/libgail-dev.install.in --- gtk+2.0-2.24.5/debian/libgail-dev.install.in 1970-01-01 00:00:00.000000000 +0000 +++ gtk+2.0-2.24.5/debian/libgail-dev.install.in 2011-06-30 14:05:38.000000000 +0000 @@ -0,0 +1,4 @@ +debian/install/shared/usr/include/gail* /usr/include +debian/install/shared/@LIBDIR@/libgail*.so @LIBDIR@ +debian/install/static/@LIBDIR@/libgail*.a @LIBDIR@ +debian/install/shared/@LIBDIR@/pkgconfig/gail*.pc @LIBDIR@/pkgconfig diff -Nru gtk+2.0-2.24.5/debian/libgail18.install gtk+2.0-2.24.5/debian/libgail18.install --- gtk+2.0-2.24.5/debian/libgail18.install 2011-06-06 16:34:39.000000000 +0000 +++ gtk+2.0-2.24.5/debian/libgail18.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -debian/install/shared/usr/lib/libgail*.so.* /usr/lib diff -Nru gtk+2.0-2.24.5/debian/libgail18.install.in gtk+2.0-2.24.5/debian/libgail18.install.in --- gtk+2.0-2.24.5/debian/libgail18.install.in 1970-01-01 00:00:00.000000000 +0000 +++ gtk+2.0-2.24.5/debian/libgail18.install.in 2011-06-30 14:05:38.000000000 +0000 @@ -0,0 +1 @@ +debian/install/shared/@LIBDIR@/libgail*.so.* @LIBDIR@ diff -Nru gtk+2.0-2.24.5/debian/libgtk2.0-0.postinst.in gtk+2.0-2.24.5/debian/libgtk2.0-0.postinst.in --- gtk+2.0-2.24.5/debian/libgtk2.0-0.postinst.in 2011-06-06 16:34:39.000000000 +0000 +++ gtk+2.0-2.24.5/debian/libgtk2.0-0.postinst.in 2011-06-30 14:05:38.000000000 +0000 @@ -7,10 +7,13 @@ continue fi case $trigger in - /@MODULES_BASE_PATH@/immodules) + /@MODULES_BASE_PATH@/immodules|/@OLD_MODULES_BASE_PATH@/immodules) # This is triggered everytime an application installs a # GTK immodule loader - /@LIBDIR@/@SHARED_PKG@/gtk-query-immodules-2.0 /@MODULES_BASE_PATH@/immodules/*.so > /@MODULES_BASE_PATH@/gtk.immodules || true + /@LIBDIR@/@SHARED_PKG@/gtk-query-immodules-2.0 \ + /@MODULES_BASE_PATH@/immodules/*.so \ + /@OLD_MODULES_BASE_PATH@/immodules/*.so \ + > /@MODULES_BASE_PATH@/gtk.immodules || true ;; esac done @@ -20,7 +23,12 @@ #DEBHELPER# # Also handle the initial installation -if [ -d /@MODULES_BASE_PATH@/immodules ]; then - /@LIBDIR@/@SHARED_PKG@/gtk-query-immodules-2.0 /@MODULES_BASE_PATH@/immodules/*.so > /@MODULES_BASE_PATH@/gtk.immodules || true +if [ -d /@MODULES_BASE_PATH@/immodules ] \ + || [ -d /@OLD_MODULES_BASE_PATH@/immodules ] +then + /@LIBDIR@/@SHARED_PKG@/gtk-query-immodules-2.0 \ + /@MODULES_BASE_PATH@/immodules/*.so \ + /@OLD_MODULES_BASE_PATH@/immodules/*.so \ + > /@MODULES_BASE_PATH@/gtk.immodules || true fi diff -Nru gtk+2.0-2.24.5/debian/libgtk2.0-0.postrm.in gtk+2.0-2.24.5/debian/libgtk2.0-0.postrm.in --- gtk+2.0-2.24.5/debian/libgtk2.0-0.postrm.in 2011-06-06 16:34:39.000000000 +0000 +++ gtk+2.0-2.24.5/debian/libgtk2.0-0.postrm.in 2011-06-30 14:05:38.000000000 +0000 @@ -10,7 +10,7 @@ #DEBHELPER# -if [ -d /@MODULES_BASE_PATH@ ]; then +if [ -d /@MODULES_BASE_PATH@/immodules ]; then # Purge the cache rm -f /@MODULES_BASE_PATH@/gtk.immodules rmdir -p --ignore-fail-on-non-empty /@MODULES_BASE_PATH@ diff -Nru gtk+2.0-2.24.5/debian/libgtk2.0-0.triggers.in gtk+2.0-2.24.5/debian/libgtk2.0-0.triggers.in --- gtk+2.0-2.24.5/debian/libgtk2.0-0.triggers.in 2011-06-06 16:34:39.000000000 +0000 +++ gtk+2.0-2.24.5/debian/libgtk2.0-0.triggers.in 2011-06-30 14:05:38.000000000 +0000 @@ -1 +1,2 @@ interest /@MODULES_BASE_PATH@/immodules +interest /@OLD_MODULES_BASE_PATH@/immodules diff -Nru gtk+2.0-2.24.5/debian/patches/098_multiarch_module_path.patch gtk+2.0-2.24.5/debian/patches/098_multiarch_module_path.patch --- gtk+2.0-2.24.5/debian/patches/098_multiarch_module_path.patch 1970-01-01 00:00:00.000000000 +0000 +++ gtk+2.0-2.24.5/debian/patches/098_multiarch_module_path.patch 2011-06-30 14:05:38.000000000 +0000 @@ -0,0 +1,48 @@ +Description: Fall back to the hard-coded pre-multiarch module directory + Include /usr/lib/gtk-2.0 in the path as a fallback when building for + multiarch, to maintain compatibility with packages installing modules to + the old directories. +Author: Steve Langasek <[email protected]> +Forwarded: not-needed + +Index: gtk+2.0-2.24.3/gtk/gtkmodules.c +=================================================================== +--- gtk+2.0-2.24.3.orig/gtk/gtkmodules.c ++++ gtk+2.0-2.24.3/gtk/gtkmodules.c +@@ -60,6 +60,7 @@ + gchar *home_gtk_dir = NULL; + gchar *module_path; + gchar *default_dir; ++ gchar *pre_multiarch_dir = NULL; + static gchar **result = NULL; + + if (result) +@@ -74,21 +75,23 @@ + + if (exe_prefix) + default_dir = g_build_filename (exe_prefix, "lib", "gtk-2.0", NULL); +- else ++ else { + default_dir = g_build_filename (GTK_LIBDIR, "gtk-2.0", NULL); ++ pre_multiarch_dir = "/usr/lib/gtk-2.0"; ++ } + + if (module_path_env && home_gtk_dir) + module_path = g_build_path (G_SEARCHPATH_SEPARATOR_S, +- module_path_env, home_gtk_dir, default_dir, NULL); ++ module_path_env, home_gtk_dir, default_dir, pre_multiarch_dir, NULL); + else if (module_path_env) + module_path = g_build_path (G_SEARCHPATH_SEPARATOR_S, +- module_path_env, default_dir, NULL); ++ module_path_env, default_dir, pre_multiarch_dir, NULL); + else if (home_gtk_dir) + module_path = g_build_path (G_SEARCHPATH_SEPARATOR_S, +- home_gtk_dir, default_dir, NULL); ++ home_gtk_dir, default_dir, pre_multiarch_dir, NULL); + else + module_path = g_build_path (G_SEARCHPATH_SEPARATOR_S, +- default_dir, NULL); ++ default_dir, pre_multiarch_dir, NULL); + + g_free (home_gtk_dir); + g_free (default_dir); diff -Nru gtk+2.0-2.24.5/debian/patches/series gtk+2.0-2.24.5/debian/patches/series --- gtk+2.0-2.24.5/debian/patches/series 2011-07-04 00:33:23.000000000 +0000 +++ gtk+2.0-2.24.5/debian/patches/series 2011-06-30 14:05:38.000000000 +0000 @@ -13,3 +13,4 @@ 061_use_pdf_as_default_printing_standard.patch 064_gir_build_workaround.patch 065_tracker-0-10.patch +098_multiarch_module_path.patch diff -Nru gtk+2.0-2.24.5/debian/rules gtk+2.0-2.24.5/debian/rules --- gtk+2.0-2.24.5/debian/rules 2011-07-04 00:44:22.000000000 +0000 +++ gtk+2.0-2.24.5/debian/rules 2011-06-30 14:05:38.000000000 +0000 @@ -27,10 +27,12 @@ DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) DEB_BUILD_GNU_CPU ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_CPU) +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) +DEB_BUILD_OPTIONS += multiarch # relative libdir ifneq (,$(findstring multiarch,$(DEB_BUILD_OPTIONS))) -LIBDIR := usr/lib/$(DEB_HOST_GNU_TYPE) +LIBDIR := usr/lib/$(DEB_HOST_MULTIARCH) else LIBDIR := usr/lib endif @@ -61,6 +63,7 @@ # relative base directory for all types of modules MODULES_BASE_PATH := $(LIBDIR)/gtk-$(APIVER)/$(GTK_BINARY_VERSION) +OLD_MODULES_BASE_PATH := usr/lib/gtk-$(APIVER)/$(GTK_BINARY_VERSION) # package names SHARED_PKG := libgtk$(APIVER)-$(SONAME) @@ -234,6 +237,7 @@ -e "s#@LIBDIR@#$(LIBDIR)#g" \ -e 's#@OPTLIBDIR@#$(OPTLIBDIR)#g' \ -e "s#@MODULES_BASE_PATH@#$(MODULES_BASE_PATH)#g" \ + -e "s#@OLD_MODULES_BASE_PATH@#$(OLD_MODULES_BASE_PATH)#g" \ [email protected] \ $(wildcard $(if $(filter opt,$(FLAVORS)),[email protected])) \ > $@
signature.asc
Description: Digital signature

