diff options
Diffstat (limited to 'x11-libs/gtk+')
-rw-r--r-- | x11-libs/gtk+/Manifest | 4 | ||||
-rw-r--r-- | x11-libs/gtk+/gtk+-2.24.32-r1.ebuild | 306 | ||||
-rw-r--r-- | x11-libs/gtk+/gtk+-3.24.0.ebuild | 227 |
3 files changed, 537 insertions, 0 deletions
diff --git a/x11-libs/gtk+/Manifest b/x11-libs/gtk+/Manifest index 3142943f2224..5a829d28b46d 100644 --- a/x11-libs/gtk+/Manifest +++ b/x11-libs/gtk+/Manifest @@ -6,14 +6,18 @@ AUX gtk+-3.22.20-libcloudproviders-automagic.patch 1904 BLAKE2B ed4e774a5641a8e8 AUX gtkrc 627 BLAKE2B 57af25dcadfa09ea784ac485db383753deda23c42ce22582f03041abf7a061e70eced09592ab0750786bea3555d760febc913762b8369b50b327fbd03d918279 SHA512 9fb246b8e483cfb5f8d3666397d50547ad0cdaa8bdf5737e67e14dd100952438ac93396f0d752306c02aa4934453a43eb360093c4e323e99bbe0706c40171dc4 AUX settings.ini 96 BLAKE2B dd0ffe58f3c702d0518e1ad59930a511f98fd1b6e7139b2b2293a3dc8b0419a63a14260ba75b30dc9197f0423a375c675b4f3b34d593ce12828192d18e539fbb SHA512 76eff45e3413ed7b2fb6bb557c363cd6d8a65ae505709cf5ce26d579470e38968d51e72615779f47fac2994937a3c64ac4143c6cbd2cf5a2db23a01bcd9b6418 DIST gtk+-2.24.31.tar.xz 12805344 BLAKE2B f516f9970a95afa21ae5dbe9f0cafd3c57c5cd27af0c6740a0f7f4367eb8032719e39e533bf89db72dddba7485ee499da9c2370707f51bbc4a7af2d4fb7c1309 SHA512 75b846661308d94b5236e7e1c367deabf57753792ca87e92f9769822dd5ec90e00cd8d5574adcc12162e3702e1ae6dc152278a1d218f9bd9e4d1c8dc1dd520c1 +DIST gtk+-2.24.32-patchset-r1.tar.xz 13364 BLAKE2B 15e5429b11cc4ccef1bf44105c790b5325e833ab12f393fe718c06470b90f3e4004bea4b51076a725f4bb10bcfd0c48b7063d9b9b021919ad0367d1b981be980 SHA512 1a15dce7578a914585981426d2e5d1cc45866866a70c3f443d1867ab1c0c28fb279bde6c3117b28eec2758a62c1b54bb6fb1b382ad6e9a7cf0114b13f2afd858 DIST gtk+-2.24.32-patchset.tar.xz 6392 BLAKE2B cd3a7256bf0552cd483a59dfd856497f5d908edb40d73c25a336726b880872a219d03a7163226abca6155bfb34a38675817124a82780760b226265ea3fdc3246 SHA512 6c8763826b479c9c122bb991ae42b0ce0e754d460be5c6ea8d1bba28f7318c014822eccaae0b39c3b7c16804991c8c46c53cd8ded3ad6212830a2f5746567543 DIST gtk+-2.24.32.tar.xz 12620860 BLAKE2B 03f4c0a8be98473f62bc8c86859937969c4169960a5f93d37ff6dcde00413215fa6c7125b15781bf50d67b40aa0056cb71b83fb50acb2c3467b5deb3c8d938f0 SHA512 8e8fd9ae32f1d6fb544da260f00599f0f05090d910d767b06ef086ab4f1f8373a29bb0da9767761c9b5f4cfd51b5c45d0fa5d39b0428c839ddf0a579df806696 DIST gtk+-3.22.19.tar.xz 18841024 BLAKE2B dc4c27d022c6766036b16e52b53b4aa3946c41457abaabca390bdba2b720db71b9c584101990928af1bef73dc49f7b71a951ba0000bd52e11aa5306a1d877f18 SHA512 c83198794433ee6eb29f8740d59bd7056cd36808b4bff1a99563ab1a1742e6635dab4f2a8be33317f74d3b336f0d1adc28dd91410da056b50a08c215f184dce2 DIST gtk+-3.22.29.tar.xz 18964852 BLAKE2B a7551d604a1e27cba1d0580f2645bf4afff900908ce40d3d4d05cfb7348afc0620922e9b7939cf4ce2314ff489ffe38386aaf2634f3eff6591dfd0a225f19bc7 SHA512 046fa4458626e81ea7b1ddb753d53ecd91d0f2101af428cfdf77fe866bbe430cb3622203cc5e895b220a9364e35009245cdaf76e0cfa30d32d31095b5fcb42bc DIST gtk+-3.22.30.tar.xz 18946084 BLAKE2B 020512f61ae9d265849bb684c55c6ad3f1e1726d73ce169cd482e781e614f22f37ac23bc721b1dc11df03f0d4e07333266cc8549633cb255ca99a85a499108d3 SHA512 31440a615cb2f406d0f904e59febb8f876106f27818ddd6951c76ab9bcb421ca480dae2bebfb1c4b1e03b833fc7c42e9feede053d9d71f19a02fe778e3197b38 +DIST gtk+-3.24.0.tar.xz 19273044 BLAKE2B c1ecf7f0cb5e58ce4b3b4f5422b0d479a6078f124cc101e5fabd57c32dd6d8c75c5c90da3db373ff9f71ecec64527adec432775a7ad8f87a85d8d9cdfae097eb SHA512 c82228f31a422d7f180b1157de697d941f2826f9a85a44d2a583564130626c88759a62269bb01f54969e00ff7499db4e1b026dbfb060dda1b6e62f36f3267981 EBUILD gtk+-2.24.31-r1.ebuild 9836 BLAKE2B 4400023180fc795df2169345fce2a2cb2b315368a7874fba61eaf65e547ca75dcfd1a929930f7581114a7912a1b89ee5e94e710fd334a594270707a9e60b49c1 SHA512 027bcdcafb2a62f11f0b737d6ae46c8fa0331601ea8e166b7a9c13cb533b79af3c814c9e0e14747dae804c8c03072d8b6cbaba870145ceb678cabe14d098a63d +EBUILD gtk+-2.24.32-r1.ebuild 10022 BLAKE2B f8c96cf303148709c5b0b26fc17c41f4d9029d3c32b06fd1c0fec34f46f1b90e71641f61a2a2ec2645ef099da58468a38d33a71107389cccb71be17773f1ee13 SHA512 fda1dfb9c0a1cfe64a492b49c0af8206669bc0dd6746a3fc5a4fd648e1144aafc7689ca5cdcdf7b49f92d8f43a3a3c8e4fe5565ba672d77773486ced073c0159 EBUILD gtk+-2.24.32.ebuild 9991 BLAKE2B 600affbb940664dc8765af635d394ea68472a0476acb9ee63347fc6bd08fd1a9c2a30b81e92c31731176dc8b2df2301df1bc42c6bfa07b184238fd6c3bfc4bcb SHA512 559c6691daac95ec50b503f682f8eea280cf9164a3e66b14dcf91e0ba11bb9d34c266aa340655590d6a784ee0d7afa7888866ad87a880e9eb19846bd43b5cc46 EBUILD gtk+-3.22.19.ebuild 6559 BLAKE2B 3bd0611294ee3a3811e5d99c910e48c935e32acf991a4a5bd74826cc52d710883bae68354d07ca7249bed5ef49fbb22beab8adddccca1c18fc3cf162fba373ad SHA512 179ee609778c70342ae29ef0f25da28ed506eef801da98a396b3b3a039668e416a7a16892e698507fd47fc2ec6763806ff2cd75ae319301943d727d3b47f2725 EBUILD gtk+-3.22.29.ebuild 6734 BLAKE2B e9d0774ca24b5db57ea83e4a2df0340402814150aad1c382bc89ad3ff7fb110f462aa1920c47a477c282f7f1fc1391d9afe908d4c34bc07fc80a3d23dad736e6 SHA512 908ec9a5128cdb285ce4745dbdf72101d36fae133528c86e2864c3852f5a75ab22b7c29d12f46608030da6a92e4bf55d1f8b855af7fa36336e232a2b9fead310 EBUILD gtk+-3.22.30.ebuild 6736 BLAKE2B ebc3d6792a7507e41f5d196f77353bc1554f8239c9986e105e0b09bee58d4dd357ffd174cdce1f6f86f6aab8815a6b78117ca1dcd453f735da749b80e44eb85d SHA512 48278952460713c7bcde954b0f61f72a81ccaff1401a80fe9178e609696834daea611302762a2239e004f2aaefc4232a28a99a5eb58224cbf8236fc0852cc392 +EBUILD gtk+-3.24.0.ebuild 6792 BLAKE2B 32c0dfea563e15d5c7f7671b4562f60a9eb231bdf70acb76ebca84554ed8c462256367f17438fe3e6f0e2696745d0fba5fd19a34cc1a88afe40861c87f70df6e SHA512 d683b4d197c90d723b29167cb1e4b3395665ad3ddf783e5ccdfee4d4eeea07fc2001a65d10b49896e48b841cd2f839672c203b3371ded916dd0ef48af21136ef MISC metadata.xml 834 BLAKE2B 0b1145d2da83bf549af3758dbca4c5dbf734e5c90c99f3856404b98584dc18d913ac70a19480fb0a16cc503c9831e4209df77c0adf7283eb0d8146079a381fe9 SHA512 e1ec73c4c9433c70c17fc3826193d8289200e347a32d67a824b803213ac281f21364a08c21c819c3e93a2d8582d90bef48766f22ba9ed495099b3eb6071aa561 diff --git a/x11-libs/gtk+/gtk+-2.24.32-r1.ebuild b/x11-libs/gtk+/gtk+-2.24.32-r1.ebuild new file mode 100644 index 000000000000..3104b7ef6e02 --- /dev/null +++ b/x11-libs/gtk+/gtk+-2.24.32-r1.ebuild @@ -0,0 +1,306 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +GNOME2_LA_PUNT="yes" +GNOME2_EAUTORECONF="yes" + +inherit eutils flag-o-matic gnome2 multilib multilib-minimal readme.gentoo-r1 virtualx + +DESCRIPTION="Gimp ToolKit +" +HOMEPAGE="https://www.gtk.org/" +SRC_URI+=" https://dev.gentoo.org/~leio/distfiles/${P}-patchset-r1.tar.xz" + +LICENSE="LGPL-2+" +SLOT="2" +IUSE="aqua cups examples +introspection test vim-syntax xinerama" +REQUIRED_USE=" + xinerama? ( !aqua ) +" + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + +# Upstream wants us to do their job: +# https://bugzilla.gnome.org/show_bug.cgi?id=768663#c1 +RESTRICT="test" + +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:=[aqua?,svg,X,${MULTILIB_USEDEP}] + >=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.5[${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}] ) + ) +" +# docbook-4.1.2 and xsl required for man pages +# docbook-4.3 required for gtk-doc +DEPEND="${COMMON_DEPEND} + app-text/docbook-xsl-stylesheets + app-text/docbook-xml-dtd:4.1.2 + app-text/docbook-xml-dtd:4.3 + dev-libs/libxslt + dev-libs/gobject-introspection-common + dev-util/glib-utils + >=dev-util/gtk-doc-am-1.20 + >=sys-devel/gettext-0.18.3[${MULTILIB_USEDEP}] + >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] + !aqua? ( x11-base/xorg-proto ) + 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} + >=dev-util/gtk-update-icon-cache-2 + !<gnome-base/gail-1000 + !<dev-util/gtk-builder-convert-${PV} + !<x11-libs/vte-0.28.2-r201:0 + >=x11-themes/adwaita-icon-theme-3.14 + x11-themes/gnome-themes-standard +" +# librsvg for svg icons (PDEPEND to avoid circular dep), bug #547710 +PDEPEND=" + x11-themes/gtk-engines-adwaita + gnome-base/librsvg[${MULTILIB_USEDEP}] + vim-syntax? ( app-vim/gtk-syntax ) +" + +DISABLE_AUTOFORMATTING="yes" +DOC_CONTENTS="To make the gtk2 file chooser use 'current directory' mode by default, +edit ~/.config/gtk-2.0/gtkfilechooser.ini to contain the following: +[Filechooser Settings] +StartupMode=cwd" + +MULTILIB_CHOST_TOOLS=( + /usr/bin/gtk-query-immodules-2.0$(get_exeext) +) + +PATCHES=( + # Fix tests running when building out of sources, bug #510596, upstream bug #730319 + "${FILESDIR}"/${PN}-2.24.24-out-of-source.patch + # Rely on split gtk-update-icon-cache package, bug #528810 + "${FILESDIR}"/${PN}-2.24.31-update-icon-cache.patch # requires eautoreconf + # Upstream gtk-2-24 branch up to 2018-09-08 state, bug #650536 safety + "${WORKDIR}"/patches/ # requires eautoreconf +) + +strip_builddir() { + local rule=$1 + shift + local directory=$1 + shift + sed -e "s/^\(${rule} =.*\)${directory}\(.*\)$/\1\2/" -i $@ \ + || die "Could not strip director ${directory} from build." +} + +set_gtk2_confdir() { + # An arch specific config directory is used on multilib systems + GTK2_CONFDIR="/etc/gtk-2.0/${CHOST}" +} + +src_prepare() { + # Various glib marshaller churn could break build against a different glib version, force regeneration + rm -v gdk/gdkmarshalers.{c,h} gtk/gtkmarshal.{c,h} gtk/gtkmarshalers.{c,h} \ + perf/marshalers.{c,h} gtk/gtkaliasdef.c gtk/gtkalias.h || die + + # Stop trying to build unmaintained docs, bug #349754, upstream bug #623150 + strip_builddir SUBDIRS tutorial docs/Makefile.{am,in} + strip_builddir SUBDIRS faq docs/Makefile.{am,in} + + # -O3 and company cause random crashes in applications, bug #133469 + replace-flags -O3 -O2 + strip-flags + + if ! use test ; then + # don't waste time building tests + strip_builddir SRC_SUBDIRS tests Makefile.{am,in} + strip_builddir SUBDIRS tests gdk/Makefile.{am,in} gtk/Makefile.{am,in} + else + # 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" + + # Cannot work because glib is too clever to find real user's home + # gentoo bug #285687, upstream bug #639832 + # XXX: /!\ Pay extra attention to second sed when bumping /!\ + sed '/TEST_PROGS.*recentmanager/d' -i gtk/tests/Makefile.am \ + || die "failed to disable recentmanager test (1)" + sed '/^TEST_PROGS =/,+3 s/recentmanager//' -i gtk/tests/Makefile.in \ + || die "failed to disable recentmanager test (2)" + sed 's:\({ "GtkFileChooserButton".*},\):/*\1*/:g' -i gtk/tests/object.c \ + || die "failed to disable recentmanager test (3)" + + # https://bugzilla.gnome.org/show_bug.cgi?id=617473 + sed -i -e 's:pltcheck.sh:$(NULL):g' \ + gtk/Makefile.am || die + + # UI tests require immodules already installed; bug #413185 + if ! has_version 'x11-libs/gtk+:2'; then + ewarn "Disabling UI tests because this is the first install of" + ewarn "gtk+:2 on this machine. Please re-run the tests after $P" + ewarn "has been installed." + sed '/g_test_add_func.*ui-tests/ d' \ + -i gtk/tests/testing.c || die "sed 2 failed" + fi + fi + + if ! use examples; then + # don't waste time building demos + strip_builddir SRC_SUBDIRS demos Makefile.{am,in} + fi + + gnome2_src_prepare +} + +multilib_src_configure() { + [[ ${ABI} == ppc64 ]] && append-flags -mminimal-toc + + ECONF_SOURCE=${S} \ + gnome2_src_configure \ + $(usex aqua --with-gdktarget=quartz --with-gdktarget=x11) \ + $(usex aqua "" --with-xinput) \ + $(use_enable cups cups auto) \ + $(multilib_native_use_enable introspection) \ + $(use_enable xinerama) \ + --disable-papi \ + --enable-man \ + --with-xml-catalog="${EPREFIX}"/etc/xml/catalog \ + CUPS_CONFIG="${EPREFIX}/usr/bin/${CHOST}-cups-config" + + # work-around gtk-doc out-of-source brokedness + if multilib_is_native_abi; then + local d + for d in gdk gtk libgail-util; do + ln -s "${S}"/docs/reference/${d}/html docs/reference/${d}/html || die + done + fi +} + +multilib_src_test() { + virtx emake check +} + +multilib_src_install() { + gnome2_src_install +} + +multilib_src_install_all() { + # see bug #133241 + # Also set more default variables in sync with gtk3 and other distributions + echo 'gtk-fallback-icon-theme = "gnome"' > "${T}/gtkrc" + echo 'gtk-theme-name = "Adwaita"' >> "${T}/gtkrc" + echo 'gtk-icon-theme-name = "Adwaita"' >> "${T}/gtkrc" + echo 'gtk-cursor-theme-name = "Adwaita"' >> "${T}/gtkrc" + + insinto /usr/share/gtk-2.0 + doins "${T}"/gtkrc + + einstalldocs + + # dev-util/gtk-builder-convert split off into a separate package, #402905 + rm "${ED}"usr/bin/gtk-builder-convert || die + rm "${ED}"usr/share/man/man1/gtk-builder-convert.* || die + + 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_VERSION} ]]; 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.24.0.ebuild b/x11-libs/gtk+/gtk+-3.24.0.ebuild new file mode 100644 index 000000000000..dfe5d458286c --- /dev/null +++ b/x11-libs/gtk+/gtk+-3.24.0.ebuild @@ -0,0 +1,227 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +GNOME2_LA_PUNT="yes" + +inherit autotools flag-o-matic gnome2 multilib virtualx multilib-minimal + +DESCRIPTION="Gimp ToolKit +" +HOMEPAGE="https://www.gtk.org/" + +LICENSE="LGPL-2+" +SLOT="3" +IUSE="aqua broadway cloudprint colord cups examples +introspection test vim-syntax wayland +X xinerama" +REQUIRED_USE=" + || ( aqua wayland X ) + xinerama? ( X ) +" + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + +# Upstream wants us to do their job: +# https://bugzilla.gnome.org/show_bug.cgi?id=768662#c1 +RESTRICT="test" + +# FIXME: introspection data is built against system installation of gtk+:3, +# bug #???? +COMMON_DEPEND=" + >=dev-libs/atk-2.15[introspection?,${MULTILIB_USEDEP}] + >=dev-libs/glib-2.53.4:2[${MULTILIB_USEDEP}] + media-libs/fontconfig[${MULTILIB_USEDEP}] + >=media-libs/libepoxy-1.4[X(+)?,${MULTILIB_USEDEP}] + >=x11-libs/cairo-1.14[aqua?,glib,svg,X?,${MULTILIB_USEDEP}] + >=x11-libs/gdk-pixbuf-2.30:2[introspection?,${MULTILIB_USEDEP}] + >=x11-libs/pango-1.41.0[introspection?,${MULTILIB_USEDEP}] + >=media-libs/harfbuzz-0.9:= + 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.9.91[${MULTILIB_USEDEP}] + >=dev-libs/wayland-protocols-1.12 + media-libs/mesa[wayland,${MULTILIB_USEDEP}] + >=x11-libs/libxkbcommon-0.2[${MULTILIB_USEDEP}] + ) + X? ( + >=app-accessibility/at-spi2-atk-2.5.3[${MULTILIB_USEDEP}] + x11-libs/libX11[${MULTILIB_USEDEP}] + >=x11-libs/libXi-1.3[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + >=x11-libs/libXrandr-1.5[${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.48 + dev-util/glib-utils + >=dev-util/gtk-doc-am-1.20 + >=sys-devel/gettext-0.19.7[${MULTILIB_USEDEP}] + virtual/pkgconfig[${MULTILIB_USEDEP}] + X? ( x11-base/xorg-proto ) + 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 +RDEPEND="${COMMON_DEPEND} + >=dev-util/gtk-update-icon-cache-3 + !<gnome-base/gail-1000 + !<x11-libs/vte-0.31.0:2.90 +" +# librsvg for svg icons (PDEPEND to avoid circular dep), bug #547710 +PDEPEND=" + gnome-base/librsvg[${MULTILIB_USEDEP}] + >=x11-themes/adwaita-icon-theme-3.14 + vim-syntax? ( app-vim/gtk-syntax ) +" + +MULTILIB_CHOST_TOOLS=( + /usr/bin/gtk-query-immodules-3.0$(get_exeext) +) + +strip_builddir() { + local rule=$1 + shift + local directory=$1 + shift + sed -e "s/^\(${rule} =.*\)${directory}\(.*\)$/\1\2/" -i $@ \ + || die "Could not strip director ${directory} from build." +} + +src_prepare() { + if ! use test ; then + # don't waste time building tests + strip_builddir SRC_SUBDIRS testsuite Makefile.{am,in} + + # the tests dir needs to be build now because since commit + # 7ff3c6df80185e165e3bf6aa31bd014d1f8bf224 tests/gtkgears.o needs to be there + # strip_builddir SRC_SUBDIRS tests Makefile.{am,in} + fi + + if ! use examples; then + # don't waste time building demos + strip_builddir SRC_SUBDIRS demos Makefile.{am,in} + strip_builddir SRC_SUBDIRS examples Makefile.{am,in} + fi + + # gtk-update-icon-cache is installed by dev-util/gtk-update-icon-cache + eapply "${FILESDIR}"/${PN}-3.22.2-update-icon-cache.patch + + # Fix broken autotools logic + eapply "${FILESDIR}"/${PN}-3.22.20-libcloudproviders-automagic.patch + + eautoreconf + gnome2_src_prepare +} + +multilib_src_configure() { + # need libdir here to avoid a double slash in a path that libtool doesn't + # grok so well during install (// between $EPREFIX and usr ...) + # cloudprovider is not packaged in Gentoo + ECONF_SOURCE=${S} \ + gnome2_src_configure \ + $(use_enable aqua quartz-backend) \ + $(use_enable broadway broadway-backend) \ + $(use_enable cloudprint) \ + $(use_enable colord) \ + $(use_enable cups cups auto) \ + $(multilib_native_use_enable introspection) \ + $(use_enable wayland wayland-backend) \ + $(use_enable X x11-backend) \ + $(use_enable X xcomposite) \ + $(use_enable X xdamage) \ + $(use_enable X xfixes) \ + $(use_enable X xkb) \ + $(use_enable X xrandr) \ + $(use_enable xinerama) \ + --disable-cloudproviders \ + --disable-mir-backend \ + --disable-papi \ + --enable-man \ + --with-xml-catalog="${EPREFIX}"/etc/xml/catalog \ + --libdir="${EPREFIX}"/usr/$(get_libdir) \ + CUPS_CONFIG="${EPREFIX}/usr/bin/${CHOST}-cups-config" + + # work-around gtk-doc out-of-source brokedness + if multilib_is_native_abi; then + local d + for d in gdk gtk libgail-util; do + ln -s "${S}"/docs/reference/${d}/html docs/reference/${d}/html || die + done + fi +} + +multilib_src_test() { + "${EROOT}${GLIB_COMPILE_SCHEMAS}" --allow-any-name "${S}/gtk" || die + GSETTINGS_SCHEMA_DIR="${S}/gtk" virtx emake check +} + +multilib_src_install() { + gnome2_src_install +} + +multilib_src_install_all() { + insinto /etc/gtk-3.0 + doins "${FILESDIR}"/settings.ini + # Skip README.{in,commits,win32} and useless ChangeLog that would get installed by default + DOCS=( AUTHORS NEWS README ) + einstalldocs +} + +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_VERSION} ]]; 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 +} |