Hi Michael, On Tue, Jul 12, 2011 at 09:28:10AM +0200, Michael Biebl wrote: > i tried to test the patch but it not only contains some cruft (.pc) but > also does not apply cleanly on top of 2.23.5-1. Would you mind sending an > updated patch? Updated patch attached. (I don't know why the previous version included the diff to the .pc directory, though IMHO the intent should have been obvious - the single applied patch is dropped, the corresponding quilt fluff should go away with it.) > Does this affect packages installing pixbuf loaders, like libwmf0.2-7 and > librsvg2-common? Do you have to take special care about upgrading those 3 > packages in lock step? Because the pixbuf loaders are looked up via a cache that's managed through the gdk-pixbuf maintainer scripts (postinst, postrm, triggers), this is a soft transition. The only requirement is that any pixbuf loaders that install to the multiarch path will need a versioned dependency on the gdk-pixbuf that adds this support. > That said, I have a more general question: > gtk2.0 and gtk3.0 ship a variant of this ugly 041_ia32-libs.patch found in > gdk-pixbuf: > - debian/patches/041_ia32-libs.patch (gtk+2.0) [1] > - debian/patches/041_ia32-libs.patch (gtk+3.0) [2] > I don't see any multiarch related bug reports for gtk2/gtk3 yet and wondered if > you have patches for them too and how this would affect other packages > installing gtk engines or (im)modules? I have a patch for gtk+2.0 which provides similar transitional handling for its loadable modules. I'll be sending that over soon. No patch for gtk+3.0 however, as that's not in the initial lib set I've converted. > Do we need to be careful in which order we transition all those packages? Nope! 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/ slangasek@ubuntu.com vorlon@debian.org
diff -Nru gdk-pixbuf-2.23.5/debian/changelog gdk-pixbuf-2.23.5/debian/changelog --- gdk-pixbuf-2.23.5/debian/changelog 2011-07-01 22:45:38.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/changelog 2011-07-15 16:20:49.000000000 +0000 @@ -1,3 +1,9 @@ +gdk-pixbuf (2.23.5-2) UNRELEASED; urgency=low + + * Multiarch support. + + -- Steve Langasek <vorlon@debian.org> Fri, 15 Jul 2011 16:20:42 +0000 + gdk-pixbuf (2.23.5-1) unstable; urgency=low * New upstream release. diff -Nru gdk-pixbuf-2.23.5/debian/control gdk-pixbuf-2.23.5/debian/control --- gdk-pixbuf-2.23.5/debian/control 2011-07-01 22:48:56.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/control 2011-07-15 16:46:32.000000000 +0000 @@ -8,8 +8,8 @@ Priority: optional Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org> Uploaders: Emilio Pozuelo Monfort <pochu@debian.org>, Josselin Mouette <joss@debian.org>, Laurent Bigonville <bigon@debian.org>, Michael Biebl <biebl@debian.org> -Build-Depends: cdbs (>= 0.4.90~), - debhelper (>= 8), +Build-Depends: cdbs (>= 0.4.93), + debhelper (>= 8.1.3), autotools-dev, gnome-pkg-tools (>= 0.10), libglib2.0-dev (>= 2.27.2), @@ -37,6 +37,8 @@ libwmf0.2-7 (<< 0.2.8.4-7), librsvg2-2 (<< 2.26.3-2) Replaces: libgtk2.0-0 (<< 2.21.3), libgtk2.0-bin (<< 2.21.3) +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same Description: GDK Pixbuf library The Gdk Pixbuf library provides: - Image loading and saving facilities. diff -Nru gdk-pixbuf-2.23.5/debian/control.in gdk-pixbuf-2.23.5/debian/control.in --- gdk-pixbuf-2.23.5/debian/control.in 2011-07-01 22:34:29.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/control.in 2011-07-15 16:22:49.000000000 +0000 @@ -3,8 +3,8 @@ Priority: optional Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org> Uploaders: @GNOME_TEAM@ -Build-Depends: cdbs (>= 0.4.90~), - debhelper (>= 8), +Build-Depends: cdbs (>= 0.4.93), + debhelper (>= 8.1.3), autotools-dev, gnome-pkg-tools (>= 0.10), libglib2.0-dev (>= 2.27.2), @@ -32,6 +32,8 @@ libwmf0.2-7 (<< 0.2.8.4-7), librsvg2-2 (<< 2.26.3-2) Replaces: libgtk2.0-0 (<< 2.21.3), libgtk2.0-bin (<< 2.21.3) +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same Description: GDK Pixbuf library The Gdk Pixbuf library provides: - Image loading and saving facilities. diff -Nru gdk-pixbuf-2.23.5/debian/gir1.2-gdkpixbuf-2.0.install gdk-pixbuf-2.23.5/debian/gir1.2-gdkpixbuf-2.0.install --- gdk-pixbuf-2.23.5/debian/gir1.2-gdkpixbuf-2.0.install 2011-07-01 22:34:55.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/gir1.2-gdkpixbuf-2.0.install 2011-07-15 16:24:23.000000000 +0000 @@ -1 +1 @@ -usr/lib/girepository-1.0 +usr/lib/*/girepository-1.0/* usr/lib/girepository-1.0 diff -Nru gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0-udeb.install gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0-udeb.install --- gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0-udeb.install 2011-07-01 22:35:04.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0-udeb.install 2011-07-15 16:34:43.000000000 +0000 @@ -1,3 +1,3 @@ -usr/lib/*.so.* -usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so +usr/lib/*/*.so.* usr/lib +usr/lib/*/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so usr/share/locale diff -Nru gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.install gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.install --- gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.install 2011-07-01 22:35:01.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -usr/bin/gdk-pixbuf-query-loaders /usr/lib/gdk-pixbuf-2.0 -usr/lib/*.so.* -usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.so -usr/share/locale diff -Nru gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.install.in gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.install.in --- gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.install.in 1970-01-01 00:00:00.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.install.in 2011-07-15 16:33:48.000000000 +0000 @@ -0,0 +1,4 @@ +usr/bin/gdk-pixbuf-query-loaders /usr/lib/${DEB_HOST_MULTIARCH}/gdk-pixbuf-2.0 +usr/lib/${DEB_HOST_MULTIARCH}/*.so.* +usr/lib/${DEB_HOST_MULTIARCH}/gdk-pixbuf-2.0/2.10.0/loaders/*.so +usr/share/locale diff -Nru gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postinst gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postinst --- gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postinst 2011-06-29 03:05:03.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -#!/bin/sh -set -e - -if [ "$1" = triggered ]; then - for trigger in $2; do - if ! [ -d $trigger ]; then - continue - fi - case $trigger in - /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders) - # This is triggered everytime an application installs a - # GdkPixbuf loader - /usr/lib/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.so > /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache || true - ;; - esac - done - exit 0 -fi - -#DEBHELPER# - -# Also handle the initial installation -if [ -d /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders ]; then - /usr/lib/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.so > /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache || true -fi - diff -Nru gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postinst.in gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postinst.in --- gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postinst.in 1970-01-01 00:00:00.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postinst.in 2011-07-15 16:20:02.000000000 +0000 @@ -0,0 +1,36 @@ +#!/bin/sh +set -e + +if [ "$1" = triggered ]; then + for trigger in $2; do + if ! [ -d $trigger ]; then + continue + fi + case $trigger in + /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/2.10.0/loaders|/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders) + # This is triggered everytime an application installs a + # GdkPixbuf loader + /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \ + /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/2.10.0/loaders/*.so \ + /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.so \ + > /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/2.10.0/loaders.cache 2>/dev/null \ + || true + ;; + esac + done + exit 0 +fi + + +#DEBHELPER# + +# Also handle the initial installation +if [ -d /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/2.10.0/loaders ] \ + || [ -d /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders ] +then + /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \ + /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/2.10.0/loaders/*.so \ + /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.so \ + > /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/2.10.0/loaders.cache 2>/dev/null \ + || true +fi diff -Nru gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postrm gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postrm --- gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postrm 2011-06-29 03:05:03.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postrm 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -#! /bin/sh -set -e - -#DEBHELPER# - -if [ -d /usr/lib/gdk-pixbuf-2.0/2.10.0 ]; then - # Purge the cache - rm -f /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache - rmdir -p --ignore-fail-on-non-empty /usr/lib/gdk-pixbuf-2.0/2.10.0 -fi - diff -Nru gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postrm.in gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postrm.in --- gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postrm.in 1970-01-01 00:00:00.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.postrm.in 2011-07-15 16:20:02.000000000 +0000 @@ -0,0 +1,11 @@ +#! /bin/sh +set -e + +#DEBHELPER# + +if [ -d /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/2.10.0 ]; then + # Purge the cache + rm -f /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/2.10.0/loaders.cache + rmdir -p --ignore-fail-on-non-empty /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/2.10.0 +fi + diff -Nru gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.triggers gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.triggers --- gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.triggers 2011-06-29 03:05:03.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.triggers 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -interest /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders diff -Nru gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.triggers.in gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.triggers.in --- gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.triggers.in 1970-01-01 00:00:00.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-0.triggers.in 2011-07-15 16:20:02.000000000 +0000 @@ -0,0 +1,2 @@ +interest /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders +interest /usr/lib/${DEB_HOST_MULTIARCH}/gdk-pixbuf-2.0/2.10.0/loaders diff -Nru gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-dev.install gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-dev.install --- gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-dev.install 2011-07-01 22:35:07.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-dev.install 2011-07-15 16:23:24.000000000 +0000 @@ -1,8 +1,8 @@ usr/bin/gdk-pixbuf-csource usr/include -usr/lib/*.so +usr/lib/*/*.so usr/lib/*.la -usr/lib/pkgconfig +usr/lib/*/pkgconfig usr/share/gir-1.0 usr/share/man/man1 usr/share/gir-1.0 diff -Nru gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-dev.links gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-dev.links --- gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-dev.links 2011-06-29 03:05:03.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-dev.links 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -/usr/lib/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders /usr/bin/gdk-pixbuf-query-loaders diff -Nru gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-dev.links.in gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-dev.links.in --- gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-dev.links.in 1970-01-01 00:00:00.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/libgdk-pixbuf2.0-dev.links.in 2011-07-15 16:20:02.000000000 +0000 @@ -0,0 +1 @@ +/usr/lib/${DEB_HOST_MULTIARCH}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders /usr/bin/gdk-pixbuf-query-loaders diff -Nru gdk-pixbuf-2.23.5/debian/patches/041_ia32-libs.patch gdk-pixbuf-2.23.5/debian/patches/041_ia32-libs.patch --- gdk-pixbuf-2.23.5/debian/patches/041_ia32-libs.patch 2011-06-29 03:08:43.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/patches/041_ia32-libs.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -Index: gdk-pixbuf-2.23.5/gdk-pixbuf/gdk-pixbuf-io.c -=================================================================== ---- gdk-pixbuf-2.23.5.orig/gdk-pixbuf/gdk-pixbuf-io.c 2011-03-30 18:35:17.000000000 +0200 -+++ gdk-pixbuf-2.23.5/gdk-pixbuf/gdk-pixbuf-io.c 2011-06-29 05:08:39.794203032 +0200 -@@ -393,8 +393,20 @@ - gchar *result = g_strdup (g_getenv ("GDK_PIXBUF_MODULE_FILE")); - - if (!result) -- result = g_build_filename (GDK_PIXBUF_LIBDIR, "gdk-pixbuf-2.0", GDK_PIXBUF_BINARY_VERSION, "loaders.cache", NULL); -- -+ { -+#if defined(__linux__) && ( defined(__i386__) || defined (__x86_64__) || defined(__ia64__) ) -+# if defined (__i386__) -+ result = g_build_filename (GDK_PIXBUF_LIBDIR, "gdk-pixbuf-2.0", GDK_PIXBUF_BINARY_VERSION, "loaders.cache.32", NULL); -+# else -+ result = g_build_filename (GDK_PIXBUF_LIBDIR, "gdk-pixbuf-2.0", GDK_PIXBUF_BINARY_VERSION, "loaders.cache.64", NULL); -+#endif -+ /* Prefer compat gdk-pixbuf.loaders file if it's usable. */ -+ if (g_file_test(result, G_FILE_TEST_EXISTS)) -+ return result; -+ g_free (result); -+#endif -+ result = g_build_filename (GDK_PIXBUF_LIBDIR, "gdk-pixbuf-2.0", GDK_PIXBUF_BINARY_VERSION, "loaders.cache", NULL); -+ } - return result; - } - diff -Nru gdk-pixbuf-2.23.5/debian/patches/series gdk-pixbuf-2.23.5/debian/patches/series --- gdk-pixbuf-2.23.5/debian/patches/series 2011-06-29 03:08:05.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -041_ia32-libs.patch diff -Nru gdk-pixbuf-2.23.5/debian/rules gdk-pixbuf-2.23.5/debian/rules --- gdk-pixbuf-2.23.5/debian/rules 2011-06-29 03:05:03.000000000 +0000 +++ gdk-pixbuf-2.23.5/debian/rules 2011-07-15 16:20:06.000000000 +0000 @@ -4,19 +4,35 @@ include /usr/share/cdbs/1/class/gnome.mk include /usr/share/gnome-pkg-tools/1/rules/uploaders.mk include /usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk -include /usr/share/gnome-pkg-tools/1/rules/clean-la.mk DEB_MAKE_CHECK_TARGET = check -DEB_CONFIGURE_EXTRA_FLAGS := --with-libjasper --enable-introspection -DEB_DH_MAKESHLIBS_ARGS_libgdk-pixbuf2.0-0 += --add-udeb=libgdk-pixbuf2.0-0-udeb -X "/usr/lib/gdk-pixbuf-2.0" -V -- -c4 +DEB_CONFIGURE_EXTRA_FLAGS := --with-libjasper --enable-introspection \ + --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) + +DEB_DH_MAKESHLIBS_ARGS_libgdk-pixbuf2.0-0 += --add-udeb=libgdk-pixbuf2.0-0-udeb -X "/usr/lib/$(DEB_HOST_MULTIARCH)/gdk-pixbuf-2.0" -V -- -c4 common-binary-fixup-arch:: - mkdir -p debian/libgdk-pixbuf2.0-0-udeb/usr/lib/gdk-pixbuf-2.0/2.10.0 + mkdir -p debian/libgdk-pixbuf2.0-0-udeb/usr/lib/$(DEB_HOST_MULTIARCH)/gdk-pixbuf-2.0/2.10.0 LD_LIBRARY_PATH=debian/libgdk-pixbuf2.0-0-udeb/usr/lib:$(LD_LIBRARY_PATH) \ - debian/libgdk-pixbuf2.0-0/usr/lib/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \ - debian/libgdk-pixbuf2.0-0-udeb/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.so \ + debian/libgdk-pixbuf2.0-0/usr/lib/$(DEB_HOST_MULTIARCH)/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \ + debian/libgdk-pixbuf2.0-0-udeb/usr/lib/$(DEB_HOST_MULTIARCH)/gdk-pixbuf-2.0/2.10.0/loaders/*.so \ | sed 's;$(CURDIR)/debian/libgdk-pixbuf2.0-0-udeb;;g' \ - > debian/libgdk-pixbuf2.0-0-udeb/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache + > debian/libgdk-pixbuf2.0-0-udeb/usr/lib/$(DEB_HOST_MULTIARCH)/gdk-pixbuf-2.0/2.10.0/loaders.cache + +binary-install/libgdk-pixbuf2.0-0:: + for script in postinst postrm; do \ + sed -e"s/#MULTIARCH#/$(DEB_HOST_MULTIARCH)/g" \ + debian/$(cdbs_curpkg).$$script.in \ + > debian/$(cdbs_curpkg).$$script ; \ + done + +common-install-arch:: + for file in libgdk-pixbuf2.0-0.install libgdk-pixbuf2.0-dev.links \ + libgdk-pixbuf2.0-0.triggers; \ + do \ + sed -e"s,\$${DEB_HOST_MULTIARCH},${DEB_HOST_MULTIARCH},g" \ + debian/$${file}.in > debian/$$file; \ + done # temporary directory for the minimal MIME cache generation mimedir = debian/build-mime
Attachment:
signature.asc
Description: Digital signature