Fix bug 308985
authorPacho Ramos <pacho@gentoo.org>
Thu, 11 Mar 2010 14:52:24 +0000 (14:52 +0000)
committerPacho Ramos <pacho@gentoo.org>
Thu, 11 Mar 2010 14:52:24 +0000 (14:52 +0000)
Package-Manager: portage-2.1.7.17/cvs/Linux x86_64

x11-libs/gtk+/ChangeLog
x11-libs/gtk+/Manifest
x11-libs/gtk+/files/gtk+-2.18.7-destroy-crash.patch [new file with mode: 0644]
x11-libs/gtk+/gtk+-2.18.7-r1.ebuild [new file with mode: 0644]

index 8bdf00e31661ab42a1bbf048351233192c798650..89ab30cbf6a9b9f6f4c2273a12fee456bdb70c19 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for x11-libs/gtk+
 # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/gtk+/ChangeLog,v 1.446 2010/03/06 18:47:56 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/gtk+/ChangeLog,v 1.447 2010/03/11 14:52:23 pacho Exp $
+
+*gtk+-2.18.7-r1 (11 Mar 2010)
+
+  11 Mar 2010; Pacho Ramos <pacho@gentoo.org> +gtk+-2.18.7-r1.ebuild,
+  +files/gtk+-2.18.7-destroy-crash.patch:
+  Fix bug 308985, thanks to Michael Bombach for reporting and finding the
+  fix.
 
   06 Mar 2010; Pacho Ramos <pacho@gentoo.org> gtk+-2.18.7.ebuild:
   amd64 stable, bug 304777
index 69d5c50f0d4657690cb88bebce20c437e5a114de..08172f9a01ec57e960ace1bdb47ed41c594dc1c1 100644 (file)
@@ -21,6 +21,7 @@ AUX gtk+-2.14.7-uncertain-mime.patch 770 RMD160 141ed81f793a74e193f814b6f118e926
 AUX gtk+-2.16.5-jpeg-backward-compatibility.patch 937 RMD160 f72974e2c5b6f7d0f9ad453b2770e394edc483c0 SHA1 6919f1b87172341693152165f6912fc81dd557fe SHA256 7be9129b2b259b4c5be0150d55eb1e5b7c6ef6f1db4f188a48f2c8cb9a72de8f
 AUX gtk+-2.16.6-fix-pltcheck-test.patch 567 RMD160 5f17d717cd7479fb477c8be407ce41f99b5e537f SHA1 49f802b744dc5775d889902c168f669a7710d432 SHA256 67b3649bc2e57de17af2919d49d759a0e358da878cb36f8d7b083dec2738ca5d
 AUX gtk+-2.18.5-macosx-aqua.patch 5521 RMD160 2f61c470952043229de027b23f67f634eaa86ffa SHA1 b0babc33bc3abca2069a5674996aeffd6fbf4120 SHA256 53cab4a8880c1add44304c7bdb83831adc16b69d938759ab3fc996d744d9e5b6
+AUX gtk+-2.18.7-destroy-crash.patch 1236 RMD160 e266ee532854f01a7b6dbcf61626d83e2133d0b2 SHA1 76671cca0245d8b0e25acb43eb6f65442461a573 SHA256 61ead70a439f873cc66676ef8a0b4076d2c0f44534c1e5d8898c42ef3a659b33
 AUX gtk+-2.8.0-multilib.patch 2456 RMD160 ba94fb0b16f9002dec8e92700ff3f7931f600548 SHA1 e65e843c6f1beecee7a0e1f7ec3292596c2a65a4 SHA256 595bddaa3e50a54f47dbcf30381e11bce0baa1ccd683ac1ba30ca0221b78a4fd
 AUX gtk+-2.8.10-xinerama.patch 1083 RMD160 499801f3be2289bdc656563bb5c96797d14512f7 SHA1 7817e3c2bbec1058192d524d68e78635fa48beca SHA256 7786691d5f89588abc7174e97cbd374d8cbe98b4e8dfd27005eade03b047aa2d
 AUX gtkrc 627 RMD160 3171e0c9132bb2a9119c51750702db23c4a5f076 SHA1 cdb4665e94e1b9e8bc3985390eecca463469c3b3 SHA256 22e4197e5976ed623233399049082383033b613176d77126d246a1f6cb747294
@@ -40,13 +41,14 @@ EBUILD gtk+-2.14.7-r2.ebuild 4837 RMD160 d4756b6e99afefee642f0939e645c9382983e1d
 EBUILD gtk+-2.16.6.ebuild 4831 RMD160 9075d2db529208d4bb9fbf49f3662d268e39a525 SHA1 66db2a66ad200ad7e2d740bcc898dc4d850841dc SHA256 78efc032b7dc0f442f132ffe1223288522b3cf2c7f13ab0f788a9ae9e5909d93
 EBUILD gtk+-2.18.5.ebuild 5684 RMD160 0def12d4c0c32ccb7054109b3551b884fb729a60 SHA1 bd0e71c796cde19ebbf6056ab9726694fbaedf05 SHA256 6aeca6febb61ddb2680ea25241cab9cf1b072287429dfab965c15950c88a2886
 EBUILD gtk+-2.18.6.ebuild 5691 RMD160 6a2f1186724e43292079df50be53b5a1166e66c3 SHA1 108143f5d6292ac63bc8d5c5ea1fc3dc522ca721 SHA256 2dd6207724c09e24454857a1a13ad7e58b287e852c437f8404781fe946f6351c
+EBUILD gtk+-2.18.7-r1.ebuild 5981 RMD160 2bf31c8175c26b032a2d02a5e82ef2d1c62a8aa2 SHA1 d8ab35d304fd8ac45bc9626dc51c55e583a2cdbc SHA256 894fc028555ef39e9f371bcd49868d9cae839a404ac214c2e4bd309fc0009aaf
 EBUILD gtk+-2.18.7.ebuild 5887 RMD160 8098aa721d2cbd470b2a127da149b0028edf49c9 SHA1 cca0d81d5ddd05fec252a4c1a58eaab3e966b421 SHA256 9e4a947d5037ec074a3c6bc562a45c9685020c3a3206cfc7cb439a1f8c4b1da9
-MISC ChangeLog 65254 RMD160 f1938e0b76aab4f0932c05eaf7a9c286f139b2c5 SHA1 a3811269059520a0e8f0ecef791b3e9d486f8d5f SHA256 3fe46e8dff2619278c41ee08eb9eed57cfdc29ecefe40057211cc1ece9802394
+MISC ChangeLog 65479 RMD160 c9429e8f74341020dfa0da6e30da83577e3f5353 SHA1 41efd6e779ff9873726d7b83b1b856fbc4ef82ad SHA256 dbd60291635ddcf5dc21a4f26d12133e6093f5fe444f293e52e011bed541244e
 MISC metadata.xml 424 RMD160 b1748199254d5d0f0db468fdec36f07bb75a3231 SHA1 2e7dc93c7931af2139609dfb75dd38101a45d62a SHA256 8b65272928e676824c407ed438004d9e5d50077a09beee0b60984eadb695bc2d
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.14 (GNU/Linux)
 
-iEYEARECAAYFAkuSo2IACgkQCaWpQKGI+9R37wCfcr8zs2DXQwktQUXZsTCmjB2s
-ofAAmQGChZ9HiFshD2yYKgg9P/D5//B5
-=O4gK
+iEYEARECAAYFAkuZA7AACgkQCaWpQKGI+9T9WwCfeJQc32f3t325kOzr18f+h3GC
+QSkAn0kAWExrVC5x2hTc5QS4WLJtNL7/
+=DCZ2
 -----END PGP SIGNATURE-----
diff --git a/x11-libs/gtk+/files/gtk+-2.18.7-destroy-crash.patch b/x11-libs/gtk+/files/gtk+-2.18.7-destroy-crash.patch
new file mode 100644 (file)
index 0000000..d612984
--- /dev/null
@@ -0,0 +1,38 @@
+From 325cbef27edd58b801509a2016aee6ab6e49d2f1 Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen@redhat.com>
+Date: Tue, 23 Feb 2010 17:32:36 +0000
+Subject: Protect against X errors when clearing the DND cache
+
+This was reported as a problem in bug 609952.
+---
+diff --git a/gdk/x11/gdkdnd-x11.c b/gdk/x11/gdkdnd-x11.c
+index 2da9567..824f96d 100644
+--- a/gdk/x11/gdkdnd-x11.c
++++ b/gdk/x11/gdkdnd-x11.c
+@@ -573,15 +573,21 @@ static void
+ gdk_window_cache_destroy (GdkWindowCache *cache)
+ {
+   GdkWindow *root_window = gdk_screen_get_root_window (cache->screen);
+-  
+-  XSelectInput (GDK_WINDOW_XDISPLAY (root_window), 
++
++  XSelectInput (GDK_WINDOW_XDISPLAY (root_window),
+               GDK_WINDOW_XWINDOW (root_window),
+               cache->old_event_mask);
+   gdk_window_remove_filter (root_window, gdk_window_cache_filter, cache);
+   gdk_window_remove_filter (NULL, gdk_window_cache_shape_filter, cache);
+ 
+-  g_list_foreach (cache->children, (GFunc)free_cache_child, 
++  gdk_error_trap_push ();
++
++  g_list_foreach (cache->children, (GFunc)free_cache_child,
+       gdk_screen_get_display (cache->screen));
++
++  gdk_flush ();
++  gdk_error_trap_pop ();
++
+   g_list_free (cache->children);
+   g_hash_table_destroy (cache->child_hash);
+ 
+--
+cgit v0.8.3.1
diff --git a/x11-libs/gtk+/gtk+-2.18.7-r1.ebuild b/x11-libs/gtk+/gtk+-2.18.7-r1.ebuild
new file mode 100644 (file)
index 0000000..8ff553e
--- /dev/null
@@ -0,0 +1,194 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/gtk+/gtk+-2.18.7-r1.ebuild,v 1.1 2010/03/11 14:52:23 pacho Exp $
+
+EAPI="2"
+
+inherit gnome.org flag-o-matic eutils libtool virtualx
+
+DESCRIPTION="Gimp ToolKit +"
+HOMEPAGE="http://www.gtk.org/"
+
+LICENSE="LGPL-2"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="aqua cups debug doc jpeg jpeg2k tiff test vim-syntax xinerama"
+
+# FIXME: configure says >=xrandr-1.2.99 but remi tells me it's broken
+# NOTE: cairo[svg] dep is due to bug 291283 (not patched to avoid eautoreconf)
+RDEPEND="!aqua? (
+               x11-libs/libXrender
+               x11-libs/libX11
+               x11-libs/libXi
+               x11-libs/libXt
+               x11-libs/libXext
+               >=x11-libs/libXrandr-1.2
+               x11-libs/libXcursor
+               x11-libs/libXfixes
+               x11-libs/libXcomposite
+               x11-libs/libXdamage
+               >=x11-libs/cairo-1.6[X,svg]
+       )
+       aqua? (
+               >=x11-libs/cairo-1.6[aqua,svg]
+       )
+       xinerama? ( x11-libs/libXinerama )
+       >=dev-libs/glib-2.21.3
+       >=x11-libs/pango-1.20
+       >=dev-libs/atk-1.13
+       media-libs/fontconfig
+       x11-misc/shared-mime-info
+       >=media-libs/libpng-1.2.1
+       cups? ( net-print/cups )
+       jpeg? ( >=media-libs/jpeg-6b-r2:0 )
+       jpeg2k? ( media-libs/jasper )
+       tiff? ( >=media-libs/tiff-3.5.7 )
+       !<gnome-base/gail-1000"
+DEPEND="${RDEPEND}
+       >=dev-util/pkgconfig-0.9
+       !aqua? (
+               x11-proto/xextproto
+               x11-proto/xproto
+               x11-proto/inputproto
+               x11-proto/damageproto
+       )
+       x86-interix? (
+               sys-libs/itx-bind
+       )
+       xinerama? ( x11-proto/xineramaproto )
+       >=dev-util/gtk-doc-am-1.11
+       doc? (
+               >=dev-util/gtk-doc-1.11
+               ~app-text/docbook-xml-dtd-4.1.2 )
+       test? (
+               media-fonts/font-misc-misc
+               media-fonts/font-cursor-misc )"
+PDEPEND="vim-syntax? ( app-vim/gtk-syntax )"
+
+set_gtk2_confdir() {
+       # An arch specific config directory is used on multilib systems
+       has_multilib_profile && GTK2_CONFDIR="/etc/gtk-2.0/${CHOST}"
+       GTK2_CONFDIR=${GTK2_CONFDIR:=/etc/gtk-2.0}
+}
+
+pkg_setup() {
+       use prefix || EPREFIX=
+}
+
+src_prepare() {
+       # use an arch-specific config directory so that 32bit and 64bit versions
+       # dont clash on multilib systems
+       has_multilib_profile && epatch "${FILESDIR}/${PN}-2.8.0-multilib.patch"
+
+       # Don't break inclusion of gtkclist.h, upstream bug 536767
+       epatch "${FILESDIR}/${PN}-2.14.3-limit-gtksignal-includes.patch"
+
+       # add correct framework linking options, for aqua
+       epatch "${FILESDIR}/${PN}-2.18.5-macosx-aqua.patch"
+
+       # Fix chromium crash, bug 308985
+       epatch "${FILESDIR}/${PN}-2.18.7-destroy-crash.patch"
+
+       # -O3 and company cause random crashes in applications. Bug #133469
+       replace-flags -O3 -O2
+       strip-flags
+
+       use ppc64 && append-flags -mminimal-toc
+
+       # Non-working test in gentoo's env
+       sed 's:\(g_test_add_func ("/ui-tests/keys-events.*\):/*\1*/:g' \
+               -i gtk/tests/testing.c || die "sed 1 failed"
+       sed '\%/recent-manager/add%,/recent_manager_purge/ d' \
+               -i gtk/tests/recentmanager.c || die "sed 2 failed"
+
+       if use x86-interix; then
+               # activate the itx-bind package...
+               append-flags "-I${EPREFIX}/usr/include/bind"
+               append-ldflags "-L${EPREFIX}/usr/lib/bind"
+       fi
+
+       elibtoolize
+}
+
+src_configure() {
+       # png always on to display icons (foser)
+       local myconf="$(use_enable doc gtk-doc) \
+               $(use_with jpeg libjpeg) \
+               $(use_with jpeg2k libjasper) \
+               $(use_with tiff libtiff) \
+               $(use_enable xinerama) \
+               $(use_enable cups cups auto) \
+               --disable-papi \
+               --with-libpng"
+       if use aqua; then
+               myconf="${myconf} --with-gdktarget=quartz"
+       else
+               myconf="${myconf} --with-gdktarget=x11 --with-xinput"
+       fi
+
+       # Passing --disable-debug is not recommended for production use
+       use debug && myconf="${myconf} --enable-debug=yes"
+
+       # need libdir here to avoid a double slash in a path that libtool doesn't
+       # grok so well during install (// between $EPREFIX and usr ...)
+       econf --libdir="${EPREFIX}/usr/$(get_libdir)" ${myconf}
+}
+
+src_test() {
+       unset DBUS_SESSION_BUS_ADDRESS
+       Xemake check || die "tests failed"
+}
+
+src_install() {
+       emake DESTDIR="${D}" install || die "Installation failed"
+
+       set_gtk2_confdir
+       dodir ${GTK2_CONFDIR}
+       keepdir ${GTK2_CONFDIR}
+
+       # see bug #133241
+       echo 'gtk-fallback-icon-theme = "gnome"' > "${T}/gtkrc"
+       insinto ${GTK2_CONFDIR}
+       doins "${T}"/gtkrc
+
+       # Enable xft in environment as suggested by <utx@gentoo.org>
+       echo "GDK_USE_XFT=1" > "${T}"/50gtk2
+       doenvd "${T}"/50gtk2
+
+       dodoc AUTHORS ChangeLog* HACKING NEWS* README* || die "dodoc failed"
+
+       # This has to be removed, because it's multilib specific; generated in
+       # postinst
+       rm "${D%/}${EPREFIX}/etc/gtk-2.0/gtk.immodules"
+
+       # add -framework Carbon to the .pc files
+       use aqua && for i in gtk+-2.0.pc gtk+-quartz-2.0.pc gtk+-unix-print-2.0.pc; do
+               sed -i -e "s:Libs\: :Libs\: -framework Carbon :" "${D%/}${EPREFIX}"/usr/lib/pkgconfig/$i || die "sed failed"
+       done
+}
+
+pkg_postinst() {
+       set_gtk2_confdir
+
+       if [ -d "${ROOT%/}${EPREFIX}${GTK2_CONFDIR}" ]; then
+               gtk-query-immodules-2.0  > "${ROOT%/}${EPREFIX}${GTK2_CONFDIR}/gtk.immodules"
+               gdk-pixbuf-query-loaders > "${ROOT%/}${EPREFIX}${GTK2_CONFDIR}/gdk-pixbuf.loaders"
+       else
+               ewarn "The destination path ${ROOT%/}${EPREFIX}${GTK2_CONFDIR} doesn't exist;"
+               ewarn "to complete the installation of GTK+, please create the"
+               ewarn "directory and then manually run:"
+               ewarn "  cd ${ROOT%/}${EPREFIX}${GTK2_CONFDIR}"
+               ewarn "  gtk-query-immodules-2.0  > gtk.immodules"
+               ewarn "  gdk-pixbuf-query-loaders > gdk-pixbuf.loaders"
+       fi
+
+       if [ -e "${ROOT%/}${EPREFIX}"/usr/lib/gtk-2.0/2.[^1]* ]; then
+               elog "You need to rebuild ebuilds that installed into" "${ROOT%/}${EPREFIX}"/usr/lib/gtk-2.0/2.[^1]*
+               elog "to do that you can use qfile from portage-utils:"
+               elog "emerge -va1 \$(qfile -qC ${EPREFIX}/usr/lib/gtk-2.0/2.[^1]*)"
+       fi
+
+       elog "Please install app-text/evince for print preview functionality."
+       elog "Alternatively, check \"gtk-print-preview-command\" documentation and"
+       elog "add it to your gtkrc."
+}