From f93dc817d504d390e69eff223f48de6faea85007 Mon Sep 17 00:00:00 2001 From: Mart Raudsepp Date: Tue, 17 Feb 2015 03:14:05 +0200 Subject: gtk+: sync with portage, add gtk2 that works with USE=gtk3-only Unfortunately gles2 version of webkit-gtk isn't working out of the box yet on the cmake using new stable series, so needing to use the old one, which can build without GLES2 (accelerated compositing not required), but it is also autotools based and gles2 support ought to work to provide AC (hidden behind USE=webgl in Gentoo for some reason). However that older webkit-gtk hard depends on gtk2 (can't disable gtk2 nsplugin support); so roll gtk2 that skips icon cache tools, preferring gtk3, so that gtk3 is still the main, and once webkit-gtk supports gles2 in a newer version, can just skip gtk2 installation from binary packages without rebuilding gtk+ packages. --- x11-libs/gtk+/Manifest | 3 +- .../gtk+-2.24.20-darwin-quartz-pasteboard.patch | 15 + .../gtk+/files/gtk+-2.24.24-out-of-source.patch | 33 +++ x11-libs/gtk+/gtk+-2.24.25-r1.ebuild | 310 +++++++++++++++++++++ x11-libs/gtk+/gtk+-3.14.6.ebuild | 258 ----------------- x11-libs/gtk+/gtk+-3.14.8.ebuild | 256 +++++++++++++++++ 6 files changed, 616 insertions(+), 259 deletions(-) create mode 100644 x11-libs/gtk+/files/gtk+-2.24.20-darwin-quartz-pasteboard.patch create mode 100644 x11-libs/gtk+/files/gtk+-2.24.24-out-of-source.patch create mode 100644 x11-libs/gtk+/gtk+-2.24.25-r1.ebuild delete mode 100644 x11-libs/gtk+/gtk+-3.14.6.ebuild create mode 100644 x11-libs/gtk+/gtk+-3.14.8.ebuild diff --git a/x11-libs/gtk+/Manifest b/x11-libs/gtk+/Manifest index 4986ded..5b2910b 100644 --- a/x11-libs/gtk+/Manifest +++ b/x11-libs/gtk+/Manifest @@ -1 +1,2 @@ -DIST gtk+-3.14.5.tar.xz 15666824 SHA256 ba70f5ccde6646c6d8aa5a6398794b7bcf23fc45af22580a215d258f392dbbe2 SHA512 4da1d6ff49cfdc412cc1ae90d0f1034e9ac0cf9b8f83a3eff03357b3b1676277baedd60c364159dca988535ac7a7a9af007f1ede271042eb88fd3b497f73e0cc WHIRLPOOL e58a63426bdabe68c90e75dadbccec044e00eabb4b144f40e208e9bbb46805a66bcfe03971f0b35accad6e97c8100b65013b01cfb8412923e2e98fce25d49398 +DIST gtk+-2.24.25.tar.xz 13327832 SHA256 38af1020cb8ff3d10dda2c8807f11e92af9d2fa4045de61c62eedb7fbc7ea5b3 SHA512 e102eabbd86e9e697402b4d915172dd3838374b7b8a16b95369ed602228857a013fdba7b6b8d742f925ff8d340b63a90b56c1ddbd4405d8dc454144c705ac08d WHIRLPOOL b4bcf058bcc582627be35bb8ba45a933c3814f007599df59172e537fc99003f51edac7011cf36783caad4e191c622f6fa044a6ff6e0ae3f4de7635c3815807a3 +DIST gtk+-3.14.8.tar.xz 15689624 SHA256 7a543ea8a85f2c8a7b7374f24fd57df454067858689d8b02ec6c90f24be2b344 SHA512 110f39d0a8ef72bfcb02d8e11000210848da15d7232346277f9755c7918e16af39dce78ba409ddfcb73dd5fa9032cc51843cb658d5ce4a2b32ca401624cc5240 WHIRLPOOL 115a043e332119bc3fe582744ceeeb9a49f4361ded13131162c26fc6988f1c2c5281738e992c96580b96ea2bd966377a49f239ec6204d6072a5dbb09d4b0f22f diff --git a/x11-libs/gtk+/files/gtk+-2.24.20-darwin-quartz-pasteboard.patch b/x11-libs/gtk+/files/gtk+-2.24.20-darwin-quartz-pasteboard.patch new file mode 100644 index 0000000..a07e653 --- /dev/null +++ b/x11-libs/gtk+/files/gtk+-2.24.20-darwin-quartz-pasteboard.patch @@ -0,0 +1,15 @@ +gdk_quartz_target_to_pasteboard_type_libgtk_only was moved in +a269c2f8d26a588c4b61ad605ef496e89759cc03 +https://mail.gnome.org/archives/commits-list/2013-March/msg20203.html +https://bugzilla.gnome.org/show_bug.cgi?id=704766 + +--- gtk/gtkclipboard-quartz.c ++++ gtk/gtkclipboard-quartz.c +@@ -33,6 +33,7 @@ + #include "gtktextbuffer.h" + #include "gtkquartz.h" + #include "gtkalias.h" ++#include "quartz/gdkquartz.h" + + enum { + OWNER_CHANGE, diff --git a/x11-libs/gtk+/files/gtk+-2.24.24-out-of-source.patch b/x11-libs/gtk+/files/gtk+-2.24.24-out-of-source.patch new file mode 100644 index 0000000..451233c --- /dev/null +++ b/x11-libs/gtk+/files/gtk+-2.24.24-out-of-source.patch @@ -0,0 +1,33 @@ +From 9e0f33144aff8d792ab105927cf686eda0afd25e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +Date: Sun, 18 May 2014 10:50:05 +0200 +Subject: [PATCH] aliasfilecheck: check for sources both in builddir & srcdir. + +The $gtk_all_c_sources variable contains both supplied and generated +sources. The former reside in $srcdir, the latter in the build directory +(cwd). + +In order to handle both kinds properly, first try to find each source +file in cwd, and then fallback to $srcdir. This makes it possible to use +out-of-source builds, and guarantees that fresh-built source files will +be used rather than pre-generated copies included in the distribution +tarball. +--- + gtk/aliasfilescheck.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gtk/aliasfilescheck.sh b/gtk/aliasfilescheck.sh +index 31b49d4..3636a82 100755 +--- a/gtk/aliasfilescheck.sh ++++ b/gtk/aliasfilescheck.sh +@@ -6,6 +6,6 @@ if test "x$gtk_all_c_sources" = x; then + fi + + grep 'IN_FILE' ${srcdir-.}/gtk.symbols | sed 's/.*(//;s/).*//' | grep __ | sort -u > expected-files +-{ cd ${srcdir-.}; grep '^ *# *define __' $gtk_all_c_sources; } | sed 's/.*define //;s/ *$//' | sort > actual-files ++{ for f in $gtk_all_c_sources; do if test -f ${f}; then grep '^ *# *define __' ${f}; else grep '^ *# *define __' "${srcdir-.}"/${f}; fi; done } | sed 's/.*define //;s/ *$//' | sort > actual-files + + diff expected-files actual-files && rm -f expected-files actual-files +-- +1.9.3 + diff --git a/x11-libs/gtk+/gtk+-2.24.25-r1.ebuild b/x11-libs/gtk+/gtk+-2.24.25-r1.ebuild new file mode 100644 index 0000000..fcbae00 --- /dev/null +++ b/x11-libs/gtk+/gtk+-2.24.25-r1.ebuild @@ -0,0 +1,310 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-libs/gtk+/gtk+-2.24.25-r1.ebuild,v 1.2 2015/01/19 10:44:02 jer Exp $ + +EAPI="5" +GCONF_DEBUG="no" + +inherit autotools eutils flag-o-matic gnome2 multilib virtualx readme.gentoo multilib-minimal + +DESCRIPTION="Gimp ToolKit +" +HOMEPAGE="http://www.gtk.org/" + +LICENSE="LGPL-2+" +SLOT="2" +IUSE="aqua cups debug examples gtk3-only +introspection test vim-syntax xinerama" +REQUIRED_USE=" + xinerama? ( !aqua ) +" + +KEYWORDS="~alpha ~amd64 ~arm hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + +# NOTE: cairo[svg] dep is due to bug 291283 (not patched to avoid eautoreconf) +COMMON_DEPEND=" + >=dev-libs/atk-2.10.0[introspection?,${MULTILIB_USEDEP}] + >=dev-libs/glib-2.34.3:2[${MULTILIB_USEDEP}] + >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}] + >=x11-libs/cairo-1.12.14-r4:=[aqua?,svg,${MULTILIB_USEDEP}] + >=x11-libs/gdk-pixbuf-2.30.7:2[introspection?,${MULTILIB_USEDEP}] + >=x11-libs/pango-1.36.3[introspection?,${MULTILIB_USEDEP}] + x11-misc/shared-mime-info + + cups? ( >=net-print/cups-1.7.1-r2:=[${MULTILIB_USEDEP}] ) + introspection? ( >=dev-libs/gobject-introspection-0.9.3 ) + !aqua? ( + >=x11-libs/cairo-1.12.14-r4:=[X] + >=x11-libs/libXrender-0.9.8[${MULTILIB_USEDEP}] + >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] + >=x11-libs/libXi-1.7.2[${MULTILIB_USEDEP}] + >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] + >=x11-libs/libXrandr-1.4.2[${MULTILIB_USEDEP}] + >=x11-libs/libXcursor-1.1.14[${MULTILIB_USEDEP}] + >=x11-libs/libXfixes-5.0.1[${MULTILIB_USEDEP}] + >=x11-libs/libXcomposite-0.4.4-r1[${MULTILIB_USEDEP}] + >=x11-libs/libXdamage-1.1.4-r1[${MULTILIB_USEDEP}] + xinerama? ( >=x11-libs/libXinerama-1.1.3[${MULTILIB_USEDEP}] ) + ) +" +DEPEND="${COMMON_DEPEND} + dev-libs/gobject-introspection-common + >=dev-util/gtk-doc-am-1.20 + sys-devel/gettext + >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] + !aqua? ( + >=x11-proto/xextproto-7.2.1-r1[${MULTILIB_USEDEP}] + >=x11-proto/xproto-7.0.24[${MULTILIB_USEDEP}] + >=x11-proto/inputproto-2.3[${MULTILIB_USEDEP}] + >=x11-proto/damageproto-1.2.1-r1[${MULTILIB_USEDEP}] + xinerama? ( >=x11-proto/xineramaproto-1.2.1-r1[${MULTILIB_USEDEP}] ) + ) + test? ( + x11-themes/hicolor-icon-theme + media-fonts/font-misc-misc + media-fonts/font-cursor-misc ) +" + +# gtk+-2.24.8 breaks Alt key handling in <=x11-libs/vte-0.28.2:0 +# Add blocker against old gtk-builder-convert to be sure we maintain both +# in sync. +RDEPEND="${COMMON_DEPEND} + ! "${T}/gtkrc" + insinto /usr/share/gtk-2.0 + doins "${T}"/gtkrc + + dodoc AUTHORS ChangeLog* HACKING NEWS* README* + + # dev-util/gtk-builder-convert split off into a separate package, #402905 + rm "${ED}"usr/bin/gtk-builder-convert || die + # Provide gtk-update-icon-cache via gtk+:3 + if use gtk3-only ; then + rm -v "${ED}"usr/bin/gtk-update-icon-cache + rm -v "${ED}"usr/share/gtk-doc/html/gtk2/gtk-update-icon-cache.html + fi + + readme.gentoo_create_doc +} + +pkg_preinst() { + gnome2_pkg_preinst + + multilib_pkg_preinst() { + # Make immodules.cache belongs to gtk+ alone + local cache="usr/$(get_libdir)/gtk-2.0/2.10.0/immodules.cache" + + if [[ -e ${EROOT}${cache} ]]; then + cp "${EROOT}"${cache} "${ED}"/${cache} || die + else + touch "${ED}"/${cache} || die + fi + } + multilib_parallel_foreach_abi multilib_pkg_preinst +} + +pkg_postinst() { + gnome2_pkg_postinst + + multilib_pkg_postinst() { + gnome2_query_immodules_gtk2 \ + || die "Update immodules cache failed (for ${ABI})" + } + multilib_parallel_foreach_abi multilib_pkg_postinst + + set_gtk2_confdir + + if [ -e "${EROOT%/}/etc/gtk-2.0/gtk.immodules" ]; then + elog "File /etc/gtk-2.0/gtk.immodules has been moved to \$CHOST" + elog "aware location. Removing deprecated file." + rm -f ${EROOT%/}/etc/gtk-2.0/gtk.immodules + fi + + if [ -e "${EROOT%/}${GTK2_CONFDIR}/gtk.immodules" ]; then + elog "File /etc/gtk-2.0/gtk.immodules has been moved to" + elog "${EROOT%/}/usr/$(get_libdir)/gtk-2.0/2.10.0/immodules.cache" + elog "Removing deprecated file." + rm -f ${EROOT%/}${GTK2_CONFDIR}/gtk.immodules + fi + + # pixbufs are now handled by x11-libs/gdk-pixbuf + if [ -e "${EROOT%/}${GTK2_CONFDIR}/gdk-pixbuf.loaders" ]; then + elog "File ${EROOT%/}${GTK2_CONFDIR}/gdk-pixbuf.loaders is now handled by x11-libs/gdk-pixbuf" + elog "Removing deprecated file." + rm -f ${EROOT%/}${GTK2_CONFDIR}/gdk-pixbuf.loaders + fi + + # two checks needed since we dropped multilib conditional + if [ -e "${EROOT%/}/etc/gtk-2.0/gdk-pixbuf.loaders" ]; then + elog "File ${EROOT%/}/etc/gtk-2.0/gdk-pixbuf.loaders is now handled by x11-libs/gdk-pixbuf" + elog "Removing deprecated file." + rm -f ${EROOT%/}/etc/gtk-2.0/gdk-pixbuf.loaders + fi + + if [ -e "${EROOT%/}"/usr/lib/gtk-2.0/2.[^1]* ]; then + elog "You need to rebuild ebuilds that installed into" "${EROOT%/}"/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 + + if ! has_version "app-text/evince"; then + 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." + fi + + readme.gentoo_print_elog +} + +pkg_postrm() { + gnome2_pkg_postrm + + if [[ -z ${REPLACED_BY_VERSIONS} ]]; then + multilib_pkg_postrm() { + rm -f "${EROOT}"usr/$(get_libdir)/gtk-2.0/2.10.0/immodules.cache + } + multilib_foreach_abi multilib_pkg_postrm + fi +} diff --git a/x11-libs/gtk+/gtk+-3.14.6.ebuild b/x11-libs/gtk+/gtk+-3.14.6.ebuild deleted file mode 100644 index 200f460..0000000 --- a/x11-libs/gtk+/gtk+-3.14.6.ebuild +++ /dev/null @@ -1,258 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ - -EAPI="5" -GCONF_DEBUG="no" -GNOME2_LA_PUNT="yes" - -inherit autotools eutils flag-o-matic gnome2 multilib virtualx multilib-minimal - -DESCRIPTION="Gimp ToolKit +" -HOMEPAGE="http://www.gtk.org/" - -LICENSE="LGPL-2+" -SLOT="3" -# NOTE: This gtk+ has multi-gdk-backend support, see: -# * http://blogs.gnome.org/kris/2010/12/29/gdk-3-0-on-mac-os-x/ -# * http://mail.gnome.org/archives/gtk-devel-list/2010-November/msg00099.html -# I tried this and got it all compiling, but the end result is unusable as it -# horribly mixes up the backends -- grobian -IUSE="aqua cloudprint colord cups debug examples gtk3-only +introspection test vim-syntax wayland X xinerama" -REQUIRED_USE=" - || ( aqua wayland X ) - xinerama? ( X ) -" - -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" - -# FIXME: introspection data is built against system installation of gtk+:3 -# NOTE: cairo[svg] dep is due to bug 291283 (not patched to avoid eautoreconf) -# Use gtk+:2 for gtk-update-icon-cache unless USE=gtk3-only -COMMON_DEPEND=" - >=dev-libs/atk-2.12[introspection?,${MULTILIB_USEDEP}] - >=dev-libs/glib-2.41.2:2[${MULTILIB_USEDEP}] - media-libs/fontconfig[${MULTILIB_USEDEP}] - >=x11-libs/cairo-1.12[aqua?,glib,svg,X?,${MULTILIB_USEDEP}] - >=x11-libs/gdk-pixbuf-2.30:2[introspection?,${MULTILIB_USEDEP}] - gtk3-only? ( !x11-libs/gtk+:2 ) - !gtk3-only? ( >=x11-libs/gtk+-2.24:2[${MULTILIB_USEDEP}] ) - >=x11-libs/pango-1.36.7[introspection?,${MULTILIB_USEDEP}] - x11-misc/shared-mime-info - - cloudprint? ( - >=net-libs/rest-0.7[${MULTILIB_USEDEP}] - >=dev-libs/json-glib-1.0[${MULTILIB_USEDEP}] ) - colord? ( >=x11-misc/colord-0.1.9:0=[${MULTILIB_USEDEP}] ) - cups? ( >=net-print/cups-1.2[${MULTILIB_USEDEP}] ) - introspection? ( >=dev-libs/gobject-introspection-1.39 ) - wayland? ( - >=dev-libs/wayland-1.5.91[${MULTILIB_USEDEP}] - || ( media-libs/mesa[wayland,${MULTILIB_USEDEP}] media-libs/raspberrypi-userland[wayland] ) - >=x11-libs/libxkbcommon-0.2[${MULTILIB_USEDEP}] - ) - X? ( - >=app-accessibility/at-spi2-atk-2.5.3[${MULTILIB_USEDEP}] - x11-libs/libXrender[${MULTILIB_USEDEP}] - x11-libs/libX11[${MULTILIB_USEDEP}] - >=x11-libs/libXi-1.3[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - >=x11-libs/libXrandr-1.3[${MULTILIB_USEDEP}] - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXcomposite[${MULTILIB_USEDEP}] - x11-libs/libXdamage[${MULTILIB_USEDEP}] - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - ) -" -DEPEND="${COMMON_DEPEND} - app-text/docbook-xsl-stylesheets - app-text/docbook-xml-dtd:4.1.2 - dev-libs/libxslt - dev-libs/gobject-introspection-common - >=dev-util/gdbus-codegen-2.38.2 - >=dev-util/gtk-doc-am-1.20 - sys-devel/gettext - virtual/pkgconfig[${MULTILIB_USEDEP}] - X? ( - x11-proto/xextproto[${MULTILIB_USEDEP}] - x11-proto/xproto[${MULTILIB_USEDEP}] - x11-proto/inputproto[${MULTILIB_USEDEP}] - x11-proto/damageproto[${MULTILIB_USEDEP}] - xinerama? ( x11-proto/xineramaproto[${MULTILIB_USEDEP}] ) - ) - test? ( - media-fonts/font-misc-misc - media-fonts/font-cursor-misc ) -" -# gtk+-3.2.2 breaks Alt key handling in <=x11-libs/vte-0.30.1:2.90 -# gtk+-3.3.18 breaks scrolling in <=x11-libs/vte-0.31.0:2.90 -# >=xorg-server-1.11.4 needed for -# http://mail.gnome.org/archives/desktop-devel-list/2012-March/msg00024.html -RDEPEND="${COMMON_DEPEND} - !=x11-themes/adwaita-icon-theme-3.14 - X? ( !=x11-themes/gnome-themes-standard-3.6[gtk]'; then - ewarn "Tests will be skipped because >=gnome-themes-standard-3.6[gtk]" - ewarn "is not installed. Please re-run tests after installing the" - ewarn "required version of gnome-themes-standard." - return 0 - fi - - # FIXME: this should be handled at eclass level - "${EROOT}${GLIB_COMPILE_SCHEMAS}" --allow-any-name "${S}/gtk" || die - - unset DBUS_SESSION_BUS_ADDRESS - unset DISPLAY #527682 - GSETTINGS_SCHEMA_DIR="${S}/gtk" Xemake check -} - -multilib_src_install() { - gnome2_src_install - - # add -framework Carbon to the .pc files - if use aqua ; then - for i in gtk+-3.0.pc gtk+-quartz-3.0.pc gtk+-unix-print-3.0.pc; do - sed -e "s:Libs\: :Libs\: -framework Carbon :" \ - -i "${ED%/}"/usr/$(get_libdir)/pkgconfig/$i || die "sed failed" - done - fi -} - -multilib_src_install_all() { - insinto /etc/gtk-3.0 - doins "${FILESDIR}"/settings.ini - - dodoc AUTHORS ChangeLog* HACKING NEWS* README* -} - -pkg_preinst() { - gnome2_pkg_preinst - - multilib_pkg_preinst() { - # Make immodules.cache belongs to gtk+ alone - local cache="usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache" - - if [[ -e ${EROOT}${cache} ]]; then - cp "${EROOT}"${cache} "${ED}"/${cache} || die - else - touch "${ED}"/${cache} || die - fi - } - multilib_parallel_foreach_abi multilib_pkg_preinst -} - -pkg_postinst() { - gnome2_pkg_postinst - - multilib_pkg_postinst() { - gnome2_query_immodules_gtk3 \ - || die "Update immodules cache failed (for ${ABI})" - } - multilib_parallel_foreach_abi multilib_pkg_postinst - - if ! has_version "app-text/evince"; then - elog "Please install app-text/evince for print preview functionality." - elog "Alternatively, check \"gtk-print-preview-command\" documentation and" - elog "add it to your settings.ini file." - fi -} - -pkg_postrm() { - gnome2_pkg_postrm - - if [[ -z ${REPLACED_BY_VERSIONS} ]]; then - multilib_pkg_postrm() { - rm -f "${EROOT}"usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache - } - multilib_foreach_abi multilib_pkg_postrm - fi -} diff --git a/x11-libs/gtk+/gtk+-3.14.8.ebuild b/x11-libs/gtk+/gtk+-3.14.8.ebuild new file mode 100644 index 0000000..e1bb493 --- /dev/null +++ b/x11-libs/gtk+/gtk+-3.14.8.ebuild @@ -0,0 +1,256 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-libs/gtk+/gtk+-3.14.8.ebuild,v 1.1 2015/02/03 14:17:46 pacho Exp $ + +EAPI="5" +GCONF_DEBUG="yes" +GNOME2_LA_PUNT="yes" + +inherit autotools eutils flag-o-matic gnome2 multilib virtualx multilib-minimal + +DESCRIPTION="Gimp ToolKit +" +HOMEPAGE="http://www.gtk.org/" + +LICENSE="LGPL-2+" +SLOT="3" +# NOTE: This gtk+ has multi-gdk-backend support, see: +# * http://blogs.gnome.org/kris/2010/12/29/gdk-3-0-on-mac-os-x/ +# * http://mail.gnome.org/archives/gtk-devel-list/2010-November/msg00099.html +# I tried this and got it all compiling, but the end result is unusable as it +# horribly mixes up the backends -- grobian +IUSE="aqua cloudprint colord cups examples gtk3-only +introspection test vim-syntax wayland X xinerama" +REQUIRED_USE=" + || ( aqua wayland X ) + xinerama? ( X ) +" + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + +# FIXME: introspection data is built against system installation of gtk+:3 +# NOTE: cairo[svg] dep is due to bug 291283 (not patched to avoid eautoreconf) +# Use gtk+:2 for gtk-update-icon-cache unless USE=gtk3-only +COMMON_DEPEND=" + >=dev-libs/atk-2.12[introspection?,${MULTILIB_USEDEP}] + >=dev-libs/glib-2.41.2:2[${MULTILIB_USEDEP}] + media-libs/fontconfig[${MULTILIB_USEDEP}] + >=x11-libs/cairo-1.12[aqua?,glib,svg,X?,${MULTILIB_USEDEP}] + >=x11-libs/gdk-pixbuf-2.30:2[introspection?,${MULTILIB_USEDEP}] + gtk3-only? ( !x11-libs/gtk+:2[-gtk3-only] ) + !gtk3-only? ( >=x11-libs/gtk+-2.24:2[${MULTILIB_USEDEP}] ) + >=x11-libs/pango-1.36.7[introspection?,${MULTILIB_USEDEP}] + x11-misc/shared-mime-info + + cloudprint? ( + >=net-libs/rest-0.7[${MULTILIB_USEDEP}] + >=dev-libs/json-glib-1.0[${MULTILIB_USEDEP}] ) + colord? ( >=x11-misc/colord-0.1.9:0=[${MULTILIB_USEDEP}] ) + cups? ( >=net-print/cups-1.2[${MULTILIB_USEDEP}] ) + introspection? ( >=dev-libs/gobject-introspection-1.39 ) + wayland? ( + >=dev-libs/wayland-1.5.91[${MULTILIB_USEDEP}] + || ( media-libs/mesa[wayland,${MULTILIB_USEDEP}] media-libs/raspberrypi-userland[wayland] ) + >=x11-libs/libxkbcommon-0.2[${MULTILIB_USEDEP}] + ) + X? ( + >=app-accessibility/at-spi2-atk-2.5.3[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] + x11-libs/libX11[${MULTILIB_USEDEP}] + >=x11-libs/libXi-1.3[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + >=x11-libs/libXrandr-1.3[${MULTILIB_USEDEP}] + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXcomposite[${MULTILIB_USEDEP}] + x11-libs/libXdamage[${MULTILIB_USEDEP}] + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) +" +DEPEND="${COMMON_DEPEND} + app-text/docbook-xsl-stylesheets + app-text/docbook-xml-dtd:4.1.2 + dev-libs/libxslt + dev-libs/gobject-introspection-common + >=dev-util/gdbus-codegen-2.38.2 + >=dev-util/gtk-doc-am-1.20 + sys-devel/gettext + virtual/pkgconfig[${MULTILIB_USEDEP}] + X? ( + x11-proto/xextproto[${MULTILIB_USEDEP}] + x11-proto/xproto[${MULTILIB_USEDEP}] + x11-proto/inputproto[${MULTILIB_USEDEP}] + x11-proto/damageproto[${MULTILIB_USEDEP}] + xinerama? ( x11-proto/xineramaproto[${MULTILIB_USEDEP}] ) + ) + test? ( + media-fonts/font-misc-misc + media-fonts/font-cursor-misc ) +" +# gtk+-3.2.2 breaks Alt key handling in <=x11-libs/vte-0.30.1:2.90 +# gtk+-3.3.18 breaks scrolling in <=x11-libs/vte-0.31.0:2.90 +# >=xorg-server-1.11.4 needed for +# http://mail.gnome.org/archives/desktop-devel-list/2012-March/msg00024.html +RDEPEND="${COMMON_DEPEND} + !=x11-themes/adwaita-icon-theme-3.14 + X? ( !=x11-themes/gnome-themes-standard-3.6[gtk]'; then + ewarn "Tests will be skipped because >=gnome-themes-standard-3.6[gtk]" + ewarn "is not installed. Please re-run tests after installing the" + ewarn "required version of gnome-themes-standard." + return 0 + fi + + # FIXME: this should be handled at eclass level + "${EROOT}${GLIB_COMPILE_SCHEMAS}" --allow-any-name "${S}/gtk" || die + + unset DBUS_SESSION_BUS_ADDRESS + unset DISPLAY #527682 + GSETTINGS_SCHEMA_DIR="${S}/gtk" Xemake check +} + +multilib_src_install() { + gnome2_src_install + + # add -framework Carbon to the .pc files + if use aqua ; then + for i in gtk+-3.0.pc gtk+-quartz-3.0.pc gtk+-unix-print-3.0.pc; do + sed -e "s:Libs\: :Libs\: -framework Carbon :" \ + -i "${ED%/}"/usr/$(get_libdir)/pkgconfig/$i || die "sed failed" + done + fi +} + +multilib_src_install_all() { + insinto /etc/gtk-3.0 + doins "${FILESDIR}"/settings.ini + + dodoc AUTHORS ChangeLog* HACKING NEWS* README* +} + +pkg_preinst() { + gnome2_pkg_preinst + + multilib_pkg_preinst() { + # Make immodules.cache belongs to gtk+ alone + local cache="usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache" + + if [[ -e ${EROOT}${cache} ]]; then + cp "${EROOT}"${cache} "${ED}"/${cache} || die + else + touch "${ED}"/${cache} || die + fi + } + multilib_parallel_foreach_abi multilib_pkg_preinst +} + +pkg_postinst() { + gnome2_pkg_postinst + + multilib_pkg_postinst() { + gnome2_query_immodules_gtk3 \ + || die "Update immodules cache failed (for ${ABI})" + } + multilib_parallel_foreach_abi multilib_pkg_postinst + + if ! has_version "app-text/evince"; then + elog "Please install app-text/evince for print preview functionality." + elog "Alternatively, check \"gtk-print-preview-command\" documentation and" + elog "add it to your settings.ini file." + fi +} + +pkg_postrm() { + gnome2_pkg_postrm + + if [[ -z ${REPLACED_BY_VERSIONS} ]]; then + multilib_pkg_postrm() { + rm -f "${EROOT}"usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache + } + multilib_foreach_abi multilib_pkg_postrm + fi +} -- cgit v1.2.3-65-gdbad