Skip to content

Commit

Permalink
x11-libs/gtk+: bump to 3.22.15 for a listbox behavior ABI stability
Browse files Browse the repository at this point in the history
3.22.13 changed GtkListBox foreach to return placeholder child widgets
as well as part of another fix, which some existing code doesn't like
and might crash due to another widget type getting returned. This
3.22.15 release reverts this and fixes the old fix in another way that
retains the behavior in this LTS release.
Also contains a default theme style improvement for tagged entries.
  • Loading branch information
leio committed May 12, 2017
1 parent 0455c4b commit d9be384
Show file tree
Hide file tree
Showing 2 changed files with 230 additions and 0 deletions.
1 change: 1 addition & 0 deletions x11-libs/gtk+/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ DIST gtk+-3.20.9.tar.xz 17174872 SHA256 83a609ba2f3424b5509e73967c49c67833af466d
DIST gtk+-3.22.11.tar.xz 18250068 SHA256 db440670cb6f3c098b076df3735fbc4e69359bd605385e87c90ee48344a804ca SHA512 0dd8c0b8cf01a687bd7b9548308a8719fda4a30e0b47139db049906333d23c1eee3867af130dc3ecd0fb4a1381c8065e9929ccd9cb4def376bbb0b136ec05a7e WHIRLPOOL 4ab9e69f3d7987cfdc67555657e402ac181817d0a91ba61f8a238ee4190150766c36fff67765a6af56941a02383db0737812a39dae81ab432269586f4d711165
DIST gtk+-3.22.12.tar.xz 18236348 SHA256 84fae0cefb6a11ee2b4e86b8ac42fe46a3d30b4ad16661d5fc51e8ae03e2a98c SHA512 a37121dd4737c68f72f3172830ac3f26faeb09b4040f2a341b04a87cab26876b437777d512ed416a968d68d6a52e0401c045b78c2eac0f87b3b0bf8ef34e3ba9 WHIRLPOOL 075e48efa2a83d4bedef8b4f0ed5dd96fe41298e4b6c0cd9809d319ddc06e6522a667e72ca9a1218c7427449dd897f878e3bd575f527ded813e04b315e999b13
DIST gtk+-3.22.14.tar.xz 18624808 SHA256 d6120e4fd64e432b74a61e8abd972b1948cf54e4dc4f0e081c05ab625f087131 SHA512 f7b2cfc63f8c849c45dc4f80c8115dcf20d0da63718eedbe133f8ac86c17488a91fecb8a0e47bb6b48f81b06ce6897540d900ab8bfbe673426dacf4f7ef74e8b WHIRLPOOL d971780e6117bc4c7b66dd1ff1842f00fb677d3c1e12b45954b55c0c0978098a452c736ba8107584b3302926270a8483200814d9e76e07945483f5d978d97155
DIST gtk+-3.22.15.tar.xz 18662944 SHA256 c8a012c2a99132629ab043f764a2b7cb6388483a015cd15c7a4288bec3590fdb SHA512 c99c4a52bc447a21be20546bdc7808081abde076af9603424c1de20af031ac3f9bd121709d4c18705db8ba2f66ace0aae9b32741347788a8d81afa358d67e758 WHIRLPOOL f0eae97db9ef7e1a3ecedc0d98fb35c4a671774f473c1b6f5a17424e2f6ca3d25e98efd74312bb481addfacbc44b6d2d6a549658d202ed6a7215743678de1d00
229 changes: 229 additions & 0 deletions x11-libs/gtk+/gtk+-3.22.15.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,229 @@
# Copyright 1999-2017 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="http://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 ~arm-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.49.4:2[${MULTILIB_USEDEP}]
media-libs/fontconfig[${MULTILIB_USEDEP}]
>=media-libs/libepoxy-1.0[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.37.3[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.9.91[${MULTILIB_USEDEP}]
>=dev-libs/wayland-protocols-1.7
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/gtk-doc-am-1.20
>=sys-devel/gettext-0.19.7[${MULTILIB_USEDEP}]
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
# https://mail.gnome.org/archives/desktop-devel-list/2012-March/msg00024.html
RDEPEND="${COMMON_DEPEND}
>=dev-util/gtk-update-icon-cache-3
!<gnome-base/gail-1000
!<x11-libs/vte-0.31.0:2.90
>=x11-themes/adwaita-icon-theme-3.14
X? ( !<x11-base/xorg-server-1.11.4 )
"
# librsvg for svg icons (PDEPEND to avoid circular dep), bug #547710
PDEPEND="
gnome-base/librsvg[${MULTILIB_USEDEP}]
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

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 ...)
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-papi \
--disable-mir-backend \
--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
}

0 comments on commit d9be384

Please sign in to comment.