aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/emul-linux-x86-gtklibs/emul-linux-x86-gtklibs-20140508-r2.ebuild')
-rw-r--r--app-emulation/emul-linux-x86-gtklibs/emul-linux-x86-gtklibs-20140508-r2.ebuild144
1 files changed, 144 insertions, 0 deletions
diff --git a/app-emulation/emul-linux-x86-gtklibs/emul-linux-x86-gtklibs-20140508-r2.ebuild b/app-emulation/emul-linux-x86-gtklibs/emul-linux-x86-gtklibs-20140508-r2.ebuild
new file mode 100644
index 0000000..172c248
--- /dev/null
+++ b/app-emulation/emul-linux-x86-gtklibs/emul-linux-x86-gtklibs-20140508-r2.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+inherit emul-linux-x86
+
+LICENSE="GPL-2 LGPL-2 FTL LGPL-2.1 LGPL-3 MPL-1.1 MIT"
+KEYWORDS="-* ~amd64"
+IUSE="abi_x86_32"
+
+DEPEND=""
+RDEPEND="~app-emulation/emul-linux-x86-baselibs-${PV}
+ ~app-emulation/emul-linux-x86-xlibs-${PV}
+ ~app-emulation/emul-linux-x86-opengl-${PV}
+ !abi_x86_32? (
+ !>=media-gfx/graphite2-1.2.4-r1[abi_x86_32(-)]
+ !>=media-libs/harfbuzz-0.9.26-r1[abi_x86_32(-)]
+ )
+ abi_x86_32? (
+ >=x11-libs/pixman-0.30.2-r1[abi_x86_32(-)]
+ >=x11-libs/cairo-1.12.16-r1[abi_x86_32(-)]
+ >=x11-libs/gdk-pixbuf-2.30.5-r1[abi_x86_32(-)]
+ >=media-gfx/graphite2-1.2.4-r1[abi_x86_32(-)]
+ >=media-libs/harfbuzz-0.9.26-r1[abi_x86_32(-)]
+ || (
+ =x11-libs/pango-1.34.1-r1[abi_x86_32(-)]
+ >=x11-libs/pango-1.36.2-r1[abi_x86_32(-)]
+ )
+ >=x11-libs/pangox-compat-0.0.2-r1[abi_x86_32(-)]
+ >=media-libs/imlib-1.9.15-r4[abi_x86_32(-)]
+ || (
+ =dev-libs/atk-2.8.0-r1[abi_x86_32(-)]
+ >=dev-libs/atk-2.10.0-r1[abi_x86_32(-)]
+ )
+ >=x11-libs/gtk+-2.24.23-r1:2[abi_x86_32(-)]
+ >=x11-libs/gtk+-3.8.7-r1:3[abi_x86_32(-)]
+ >=dev-libs/libIDL-0.8.14-r1[abi_x86_32(-)]
+ >=gnome-base/gconf-3.2.6-r2[abi_x86_32(-)]
+ gnome-base/gnome-vfs[abi_x86_32(-)]
+ gnome-base/libglade[abi_x86_32(-)]
+ >=gnome-base/orbit-2.14.19-r4[abi_x86_32(-)]
+ x11-libs/libnotify[abi_x86_32(-)]
+ x11-themes/gtk-engines[abi_x86_32(-)]
+ >=gnome-base/gnome-vfs-2.24.4-r2[abi_x86_32(-)]
+ =x11-themes/gtk-engines-xfce-3.0.1-r201[abi_x86_32(-)]
+ >=x11-themes/gtk-engines-xfce-3.0.1-r301[abi_x86_32(-)]
+ )"
+# RDEPEND on opengl stuff needed due cairo, bug #410213
+
+my_gdk_pixbuf_query_loaders() {
+ # causes segfault if set
+ unset __GL_NO_DSO_FINALIZER
+
+ local tmp_file=$(mktemp --suffix=tmp.XXXXXXXXXXgdk_pixbuf_queryloaders)
+ if [ -z "${tmp_file}" ]; then
+ ewarn "Cannot create temporary file"
+ return 1
+ fi
+
+ if gdk-pixbuf-query-loaders32 > "${tmp_file}"; then
+ cat "${tmp_file}" > "${ROOT}usr/lib32/gdk-pixbuf-2.0/2.10.0/loaders.cache"
+ else
+ ewarn "Warning, gdk-pixbuf-query-loaders32 failed."
+ fi
+ rm "${tmp_file}"
+}
+
+my_pango_querymodules() {
+ PANGO_CONFDIR="/etc/pango/i686-pc-linux-gnu"
+ einfo "Generating pango modules listing..."
+
+ mkdir -p "${PANGO_CONFDIR}"
+ local pango_conf="${PANGO_CONFDIR}/pango.modules"
+ local tmp_file=$(mktemp -t tmp.XXXXXXXXXXpango_querymodules)
+ if [ -z "${tmp_file}" ]; then
+ ewarn "Cannot create temporary file"
+ return 1
+ fi
+
+ if pango-querymodules32 > "${tmp_file}"; then
+ cat "${tmp_file}" > "${pango_conf}"
+ else
+ ewarn "Cannot update pango.modules, file generation failed"
+ fi
+ rm "${tmp_file}"
+}
+
+my_gtk_query_immodules() {
+ GTK2_CONFDIR="/etc/gtk-2.0/i686-pc-linux-gnu"
+ einfo "Generating gtk+ immodules/gdk-pixbuf loaders listing..."
+
+ mkdir -p "${GTK2_CONFDIR}"
+ local gtk_conf="${ROOT}${GTK2_CONFDIR}/gtk.immodules"
+ local tmp_file=$(mktemp -t tmp.XXXXXXXXXXgtk_query_immodules)
+ if [ -z "${tmp_file}" ]; then
+ ewarn "Cannot create temporary file"
+ return 1
+ fi
+
+ if gtk-query-immodules-2.0-32 > "${tmp_file}"; then
+ cat "${tmp_file}" > "${gtk_conf}"
+ else
+ ewarn "Cannot update gtk.immodules, file generation failed"
+ fi
+ rm "${tmp_file}"
+}
+
+src_prepare() {
+ query_tools="${S}/usr/bin/gtk-query-immodules-2.0|${S}/usr/bin/gdk-pixbuf-query-loaders|${S}/usr/bin/i686-pc-linux-gnu-gdk-pixbuf-query-loaders|${S}/usr/bin/pango-querymodules"
+ ALLOWED="(${S}/etc/env.d|${S}/etc/gtk-2.0|${S}/etc/pango/i686-pc-linux-gnu|${query_tools})"
+ emul-linux-x86_src_prepare
+
+ # these tools generate an index in /etc/{pango,gtk-2.0}/${CHOST}
+ mv -f "${S}/usr/bin/pango-querymodules"{,32} || die
+ mv -f "${S}/usr/bin/gtk-query-immodules-2.0"{,-32} || die
+ mv -f "${S}/usr/bin/gdk-pixbuf-query-loaders"{,32} || die
+
+ # Remove migrated stuff.
+ use abi_x86_32 && rm -f $(cat "${FILESDIR}/remove-native-${PVR}")
+}
+
+pkg_preinst() {
+ #bug 169058
+ for l in "${ROOT}/usr/lib32/{pango,gtk-2.0}" ; do
+ [[ -L ${l} ]] && rm -f ${l}
+ done
+}
+
+pkg_postinst() {
+ if ! use abi_x86_32; then
+ my_pango_querymodules
+ my_gdk_pixbuf_query_loaders
+ my_gtk_query_immodules
+ fi
+
+ # gdk-pixbuf.loaders should be in their CHOST directories respectively.
+ if [[ -e "${ROOT}/etc/gtk-2.0/gdk-pixbuf.loaders" ]] ; then
+ ewarn
+ ewarn "File /etc/gtk-2.0/gdk-pixbuf.loaders shouldn't be present on"
+ ewarn "multilib systems, please remove it by hand."
+ ewarn
+ fi
+}