summaryrefslogtreecommitdiff
path: root/x11-wm
diff options
context:
space:
mode:
Diffstat (limited to 'x11-wm')
-rw-r--r--x11-wm/aewm++/aewm++-1.1.5-r2.ebuild (renamed from x11-wm/aewm++/aewm++-1.1.5-r1.ebuild)10
-rw-r--r--x11-wm/awesome/Manifest4
-rw-r--r--x11-wm/awesome/awesome-3.5.2-r1.ebuild128
-rw-r--r--x11-wm/awesome/awesome-3.5.2.ebuild128
-rw-r--r--x11-wm/awesome/awesome-3.5.3.ebuild129
-rw-r--r--x11-wm/awesome/awesome-3.5.4.ebuild132
-rw-r--r--x11-wm/awesome/awesome-3.5.5-r1.ebuild134
-rw-r--r--x11-wm/awesome/awesome-3.5.5.ebuild132
-rw-r--r--x11-wm/awesome/awesome-3.5.6-r1.ebuild (renamed from x11-wm/awesome/awesome-3.5.6.ebuild)4
-rw-r--r--x11-wm/enlightenment/Manifest5
-rw-r--r--x11-wm/enlightenment/enlightenment-0.17.6.ebuild79
-rw-r--r--x11-wm/enlightenment/enlightenment-0.18.7.ebuild92
-rw-r--r--x11-wm/enlightenment/enlightenment-0.19.12.ebuild (renamed from x11-wm/enlightenment/enlightenment-0.19.4.ebuild)0
-rw-r--r--x11-wm/enlightenment/enlightenment-0.19.8.ebuild92
-rw-r--r--x11-wm/enlightenment/metadata.xml4
-rw-r--r--x11-wm/i3/i3-4.10.4.ebuild2
-rw-r--r--x11-wm/icewm/icewm-1.3.11.ebuild2
-rw-r--r--x11-wm/jwm/Manifest1
-rw-r--r--x11-wm/jwm/jwm-2.3.2.ebuild63
-rw-r--r--x11-wm/jwm/metadata.xml7
-rw-r--r--x11-wm/mutter/Manifest1
-rw-r--r--x11-wm/mutter/files/mutter-3.16.2-size-unredirected.patch151
-rw-r--r--x11-wm/mutter/files/mutter-3.16.3-GL_EXT_x11_sync_object.patch840
-rw-r--r--x11-wm/mutter/files/mutter-3.16.3-crash-border.patch32
-rw-r--r--x11-wm/mutter/files/mutter-3.16.3-fallback-keymap.patch28
-rw-r--r--x11-wm/mutter/files/mutter-3.16.3-fix-race.patch114
-rw-r--r--x11-wm/mutter/files/mutter-3.16.3-fix-return.patch32
-rw-r--r--x11-wm/mutter/files/mutter-3.16.3-flickering.patch114
-rw-r--r--x11-wm/mutter/mutter-3.16.2.ebuild91
-rw-r--r--x11-wm/mutter/mutter-3.16.3-r1.ebuild (renamed from x11-wm/mutter/mutter-3.16.2-r1.ebuild)23
-rw-r--r--x11-wm/page/page-1.9.6-r1.ebuild (renamed from x11-wm/page/page-1.9.6.ebuild)6
-rw-r--r--x11-wm/page/page-1.9.6-r2.ebuild36
32 files changed, 1299 insertions, 1317 deletions
diff --git a/x11-wm/aewm++/aewm++-1.1.5-r1.ebuild b/x11-wm/aewm++/aewm++-1.1.5-r2.ebuild
index 6619bab4a1..f80697fffa 100644
--- a/x11-wm/aewm++/aewm++-1.1.5-r1.ebuild
+++ b/x11-wm/aewm++/aewm++-1.1.5-r2.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
-EAPI=2
+EAPI=5
inherit eutils toolchain-funcs
DESCRIPTION="A window manager with more modern features than aewm but with the same look and feel"
@@ -26,10 +26,10 @@ src_prepare() {
}
src_compile() {
- emake CXX="$(tc-getCXX)" || die
+ emake CXX="$(tc-getCXX)"
}
src_install() {
- emake DESTDIR="${D}" install || die
- dodoc ChangeLog README || die
+ emake DESTDIR="${D}" install
+ dodoc ChangeLog README
}
diff --git a/x11-wm/awesome/Manifest b/x11-wm/awesome/Manifest
index 068bf7a4ca..a285414e62 100644
--- a/x11-wm/awesome/Manifest
+++ b/x11-wm/awesome/Manifest
@@ -1,6 +1,2 @@
DIST awesome-3.4.15.tar.bz2 762323 SHA256 4207f5cbed25d0e7ab35157165d923c2ccf04fded5b3d5fc130134ce9ed5ddfd SHA512 18bb2659e1e7c18a8917f606d635e968daa31a5be4c6d93a109603aace9b5d8b5fd0b8ac1d13ba3d6f2c5c42661204ce80c5ea322088cd358ec5e164b760c339 WHIRLPOOL 74da6197f2e4e5f3d99a11e99c26563f6a145181bab5c017b7ee330041864527551a230ce6dc6109bb5510621fe874921c7caa72c095fa2be6fbdb69e02da1dd
-DIST awesome-3.5.2.tar.xz 715164 SHA256 188d65b02a8ef905be43f126e2591b0d3caf84e094fb6af5501ae5ef07503e86 SHA512 e1c661dfa64e1747a15c149c445877f36380f30f20a4a39ccf1a02df95b1dc5b38337567dd7e401592b2906627716e72673772fe131189c763dc846978bafd48 WHIRLPOOL caec16cc014bd9ed93c4feec8cca40989cc4a66fd2a6816db65654b66e861c6cc2554a7c5e0e587124f4a96d34ddcd6c2e2845f5ddd2a725048d442361c81407
-DIST awesome-3.5.3.tar.xz 718872 SHA256 544eb343a4a059ebe405ae907bda205e7c63a550417c8ee49f9eeee6870c9253 SHA512 7d3e75ddf72a28a29b3031419485072719fe552508e450faee9e58a365827187c6de50dd11b5a8f0b41a3330456b46a7e6f67018b52891e22d4455e999137d2e WHIRLPOOL ac1a3e1555ff81b7e32f673755514f747d05eb245089094381f46e3abc4ce46e70b35c19512ef589a0e3338e5d71760a1f3b879ceb86fdc8f68d48fbdee2e2c9
-DIST awesome-3.5.4.tar.xz 718916 SHA256 b48bce31e14345f260075d528263385564eaeb204c4b673c893f77e884a24ea8 SHA512 afc221931759e56c24f89bdbf6aab9eb9059a44acaea6345567f3f77eb4663354ca7a266e9395f0b6a3068cd7f15e824a6c938987eac915ddba420050c265235 WHIRLPOOL 0a92be54433a0e91fd52aa31c95d72c3d4b8dd35f4e36094ac94726fbb6ba33f6a7b4ac42e3f81f9b94ab419671ded42d0c769e95ca90e53228147a6f3d3a1bd
-DIST awesome-3.5.5.tar.xz 719080 SHA256 bf30dbd7c4621742b2565919404f009588ea482574ddb85aaa5301bce5258d47 SHA512 2ca9af95afb8d07369da89c18f34889158dc387c570ac5f591ee05c1867d6a88197e02c29fae6666d3b684ed9a783d5bcfae995c98cbf0a5e29237f317d2870f WHIRLPOOL 94d5a5908d5b671389db5a44392ca051841e5b42e962e2420218595636897d1c7e5a5972b9e790799ba31a6c897fc02e3bd601302debd39bb4627acb4e83d779
DIST awesome-3.5.6.tar.xz 720112 SHA256 37f49de187825425cb3096fc870959d5fec9302b22ffd0f2874d8a18e85046d7 SHA512 8d89bf46956276a8bcf106bb255c051e8382b08617e17691134a8f3e5db3ec9f7773581c02ce62d23e72499f7b1e60fe4322c211e41219b5bffd1897a96f6cf6 WHIRLPOOL 8ec944f1113f7b7b7c6857c02a6c657aec05ddf23674c75a7cf571d4a65720ed4f5f1d28b0fdac032c12ea5e9a54f655d080c6af4e1d314b8c00bf2b9e806d01
diff --git a/x11-wm/awesome/awesome-3.5.2-r1.ebuild b/x11-wm/awesome/awesome-3.5.2-r1.ebuild
deleted file mode 100644
index fdd3e1553c..0000000000
--- a/x11-wm/awesome/awesome-3.5.2-r1.ebuild
+++ /dev/null
@@ -1,128 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-CMAKE_MIN_VERSION="2.8"
-inherit cmake-utils eutils
-
-DESCRIPTION="A dynamic floating and tiling window manager"
-HOMEPAGE="http://awesome.naquadah.org/"
-SRC_URI="http://awesome.naquadah.org/download/${P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
-IUSE="dbus doc elibc_FreeBSD gnome"
-
-COMMON_DEPEND="
- >=dev-lang/lua-5.1
- dev-libs/glib:2
- >=dev-libs/libxdg-basedir-1
- >=dev-lua/lgi-0.6.1
- x11-libs/cairo[xcb]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/libxcb-1.6
- >=x11-libs/pango-1.19.3[introspection]
- >=x11-libs/startup-notification-0.10_p20110426
- >=x11-libs/xcb-util-0.3.8
- x11-libs/xcb-util-cursor
- x11-libs/libXcursor
- || ( <x11-libs/libX11-1.3.99.901[xcb] >=x11-libs/libX11-1.3.99.901 )
- dbus? ( >=sys-apps/dbus-1 )
- elibc_FreeBSD? ( dev-libs/libexecinfo )"
-
-# graphicsmagick's 'convert -channel' has no Alpha support, bug #352282
-DEPEND="${COMMON_DEPEND}
- >=app-text/asciidoc-8.4.5
- app-text/xmlto
- dev-util/gperf
- virtual/pkgconfig
- media-gfx/imagemagick[png]
- >=x11-proto/xcb-proto-1.5
- >=x11-proto/xproto-7.0.15
- doc? (
- app-doc/doxygen
- media-gfx/graphviz
- )"
-
-RDEPEND="${COMMON_DEPEND}"
-
-DOCS="AUTHORS BUGS PATCHES README STYLE"
-
-src_prepare() {
- # bug #408025
- epatch "${FILESDIR}/${PN}-3.5_rc1-convert-path.patch"
-}
-
-src_configure() {
- mycmakeargs=(
- -DPREFIX="${EPREFIX}"/usr
- -DSYSCONFDIR="${EPREFIX}"/etc
- $(cmake-utils_use_with dbus DBUS)
- $(cmake-utils_use doc GENERATE_DOC)
- )
-
- cmake-utils_src_configure
-}
-
-src_compile() {
- local myargs="all"
-
- if use doc ; then
- myargs="${myargs} doc"
- fi
- cmake-utils_src_make ${myargs}
-}
-
-src_install() {
- cmake-utils_src_install
-
- if use doc ; then
- (
- cd "${CMAKE_BUILD_DIR}"/doc
- mv html doxygen
- dohtml -r doxygen || die
- )
- fi
- rm -rf "${ED}"/usr/share/doc/${PN} || die "Cleanup of dupe docs failed"
-
- exeinto /etc/X11/Sessions
- newexe "${FILESDIR}"/${PN}-session ${PN} || die
-
- # GNOME-based awesome
- if use gnome ; then
- # GNOME session
- insinto /usr/share/gnome-session/sessions
- newins "${FILESDIR}/${PN}-gnome-3.session" "${PN}-gnome.session" || die
- # Application launcher
- domenu "${FILESDIR}/${PN}-gnome.desktop" || die
- # X Session
- insinto /usr/share/xsessions/
- doins "${FILESDIR}/${PN}-gnome-xsession.desktop" || die
- fi
-}
-
-pkg_postinst() {
- # bug #447308
- if use gnome; then
- elog
- elog "You have enabled the gnome USE flag."
- elog "Please note that quitting awesome won't kill your gnome session."
- elog "To really quit the session, you should bind your quit key"
- elog "to the following command:"
- elog " gnome-session-quit --logout"
- elog "For more info visit"
- elog " https://bugs.gentoo.org/show_bug.cgi?id=447308"
- fi
-
- # bug #440724
- elog
- elog "If you are having issues with Java application windows being"
- elog "completely blank, try installing"
- elog " x11-misc/wmname"
- elog "and setting the WM name to LG3D."
- elog "For more info visit"
- elog " https://bugs.gentoo.org/show_bug.cgi?id=440724"
- elog
-}
diff --git a/x11-wm/awesome/awesome-3.5.2.ebuild b/x11-wm/awesome/awesome-3.5.2.ebuild
deleted file mode 100644
index 1315b68ae6..0000000000
--- a/x11-wm/awesome/awesome-3.5.2.ebuild
+++ /dev/null
@@ -1,128 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-CMAKE_MIN_VERSION="2.8"
-inherit cmake-utils eutils
-
-DESCRIPTION="A dynamic floating and tiling window manager"
-HOMEPAGE="http://awesome.naquadah.org/"
-SRC_URI="http://awesome.naquadah.org/download/${P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
-IUSE="dbus doc elibc_FreeBSD gnome"
-
-COMMON_DEPEND="
- >=dev-lang/lua-5.1
- dev-libs/glib:2
- >=dev-libs/libxdg-basedir-1
- >=dev-lua/lgi-0.6.1
- x11-libs/cairo[xcb]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/libxcb-1.6
- >=x11-libs/pango-1.19.3[introspection]
- >=x11-libs/startup-notification-0.10_p20110426
- >=x11-libs/xcb-util-0.3.8
- x11-libs/xcb-util-cursor
- x11-libs/libXcursor
- || ( <x11-libs/libX11-1.3.99.901[xcb] >=x11-libs/libX11-1.3.99.901 )
- dbus? ( >=sys-apps/dbus-1 )
- elibc_FreeBSD? ( dev-libs/libexecinfo )"
-
-# graphicsmagick's 'convert -channel' has no Alpha support, bug #352282
-DEPEND="${COMMON_DEPEND}
- >=app-text/asciidoc-8.4.5
- app-text/xmlto
- dev-util/gperf
- virtual/pkgconfig
- media-gfx/imagemagick[png]
- >=x11-proto/xcb-proto-1.5
- >=x11-proto/xproto-7.0.15
- doc? (
- app-doc/doxygen
- media-gfx/graphviz
- )"
-
-RDEPEND="${COMMON_DEPEND}"
-
-DOCS="AUTHORS BUGS PATCHES README STYLE"
-
-src_prepare() {
- # bug #408025
- epatch "${FILESDIR}/${PN}-3.5_rc1-convert-path.patch"
-}
-
-src_configure() {
- mycmakeargs=(
- -DPREFIX="${EPREFIX}"/usr
- -DSYSCONFDIR="${EPREFIX}"/etc
- $(cmake-utils_use_with dbus DBUS)
- $(cmake-utils_use doc GENERATE_DOC)
- )
-
- cmake-utils_src_configure
-}
-
-src_compile() {
- local myargs="all"
-
- if use doc ; then
- myargs="${myargs} doc"
- fi
- cmake-utils_src_make ${myargs}
-}
-
-src_install() {
- cmake-utils_src_install
-
- if use doc ; then
- (
- cd "${CMAKE_BUILD_DIR}"/doc
- mv html doxygen
- dohtml -r doxygen || die
- )
- fi
- rm -rf "${ED}"/usr/share/doc/${PN} || die "Cleanup of dupe docs failed"
-
- exeinto /etc/X11/Sessions
- newexe "${FILESDIR}"/${PN}-session ${PN} || die
-
- # GNOME-based awesome
- if use gnome ; then
- # GNOME session
- insinto /usr/share/gnome-session/sessions
- doins "${FILESDIR}/${PN}-gnome.session" || die
- # Application launcher
- domenu "${FILESDIR}/${PN}-gnome.desktop" || die
- # X Session
- insinto /usr/share/xsessions/
- doins "${FILESDIR}/${PN}-gnome-xsession.desktop" || die
- fi
-}
-
-pkg_postinst() {
- # bug #447308
- if use gnome; then
- elog
- elog "You have enabled the gnome USE flag."
- elog "Please note that quitting awesome won't kill your gnome session."
- elog "To really quit the session, you should bind your quit key"
- elog "to the following command:"
- elog " gnome-session-quit --logout"
- elog "For more info visit"
- elog " https://bugs.gentoo.org/show_bug.cgi?id=447308"
- fi
-
- # bug #440724
- elog
- elog "If you are having issues with Java application windows being"
- elog "completely blank, try installing"
- elog " x11-misc/wmname"
- elog "and setting the WM name to LG3D."
- elog "For more info visit"
- elog " https://bugs.gentoo.org/show_bug.cgi?id=440724"
- elog
-}
diff --git a/x11-wm/awesome/awesome-3.5.3.ebuild b/x11-wm/awesome/awesome-3.5.3.ebuild
deleted file mode 100644
index aebb60efd9..0000000000
--- a/x11-wm/awesome/awesome-3.5.3.ebuild
+++ /dev/null
@@ -1,129 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-CMAKE_MIN_VERSION="2.8"
-inherit cmake-utils eutils
-
-DESCRIPTION="A dynamic floating and tiling window manager"
-HOMEPAGE="http://awesome.naquadah.org/"
-SRC_URI="http://awesome.naquadah.org/download/${P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
-IUSE="dbus doc elibc_FreeBSD gnome"
-
-COMMON_DEPEND="
- >=dev-lang/lua-5.1
- dev-libs/glib:2
- >=dev-libs/libxdg-basedir-1
- >=dev-lua/lgi-0.7
- x11-libs/cairo[xcb]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/libxcb-1.6
- >=x11-libs/pango-1.19.3[introspection]
- >=x11-libs/startup-notification-0.10_p20110426
- >=x11-libs/xcb-util-0.3.8
- x11-libs/xcb-util-cursor
- x11-libs/libXcursor
- || ( <x11-libs/libX11-1.3.99.901[xcb] >=x11-libs/libX11-1.3.99.901 )
- dbus? ( >=sys-apps/dbus-1 )
- elibc_FreeBSD? ( dev-libs/libexecinfo )"
-
-# graphicsmagick's 'convert -channel' has no Alpha support, bug #352282
-DEPEND="${COMMON_DEPEND}
- >=app-text/asciidoc-8.4.5
- app-text/xmlto
- dev-util/gperf
- virtual/pkgconfig
- media-gfx/imagemagick[png]
- >=x11-proto/xcb-proto-1.5
- >=x11-proto/xproto-7.0.15
- doc? (
- app-doc/doxygen
- media-gfx/graphviz
- )"
-
-RDEPEND="${COMMON_DEPEND}"
-
-DOCS="AUTHORS BUGS PATCHES README STYLE"
-
-src_prepare() {
- # bug #408025
- epatch "${FILESDIR}/${PN}-3.5_rc1-convert-path.patch"
- epatch "${FILESDIR}/${PN}-xsession.patch"
-}
-
-src_configure() {
- mycmakeargs=(
- -DPREFIX="${EPREFIX}"/usr
- -DSYSCONFDIR="${EPREFIX}"/etc
- $(cmake-utils_use_with dbus DBUS)
- $(cmake-utils_use doc GENERATE_DOC)
- )
-
- cmake-utils_src_configure
-}
-
-src_compile() {
- local myargs="all"
-
- if use doc ; then
- myargs="${myargs} doc"
- fi
- cmake-utils_src_make ${myargs}
-}
-
-src_install() {
- cmake-utils_src_install
-
- if use doc ; then
- (
- cd "${CMAKE_BUILD_DIR}"/doc
- mv html doxygen
- dohtml -r doxygen || die
- )
- fi
- rm -rf "${ED}"/usr/share/doc/${PN} || die "Cleanup of dupe docs failed"
-
- exeinto /etc/X11/Sessions
- newexe "${FILESDIR}"/${PN}-session ${PN} || die
-
- # GNOME-based awesome
- if use gnome ; then
- # GNOME session
- insinto /usr/share/gnome-session/sessions
- newins "${FILESDIR}/${PN}-gnome-3.session" "${PN}-gnome.session" || die
- # Application launcher
- domenu "${FILESDIR}/${PN}-gnome.desktop" || die
- # X Session
- insinto /usr/share/xsessions/
- doins "${FILESDIR}/${PN}-gnome-xsession.desktop" || die
- fi
-}
-
-pkg_postinst() {
- # bug #447308
- if use gnome; then
- elog
- elog "You have enabled the gnome USE flag."
- elog "Please note that quitting awesome won't kill your gnome session."
- elog "To really quit the session, you should bind your quit key"
- elog "to the following command:"
- elog " gnome-session-quit --logout"
- elog "For more info visit"
- elog " https://bugs.gentoo.org/show_bug.cgi?id=447308"
- fi
-
- # bug #440724
- elog
- elog "If you are having issues with Java application windows being"
- elog "completely blank, try installing"
- elog " x11-misc/wmname"
- elog "and setting the WM name to LG3D."
- elog "For more info visit"
- elog " https://bugs.gentoo.org/show_bug.cgi?id=440724"
- elog
-}
diff --git a/x11-wm/awesome/awesome-3.5.4.ebuild b/x11-wm/awesome/awesome-3.5.4.ebuild
deleted file mode 100644
index f709548c7f..0000000000
--- a/x11-wm/awesome/awesome-3.5.4.ebuild
+++ /dev/null
@@ -1,132 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-CMAKE_MIN_VERSION="2.8"
-inherit cmake-utils eutils
-
-DESCRIPTION="A dynamic floating and tiling window manager"
-HOMEPAGE="http://awesome.naquadah.org/"
-SRC_URI="http://awesome.naquadah.org/download/${P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
-IUSE="dbus doc elibc_FreeBSD gnome"
-
-COMMON_DEPEND="
- >=dev-lang/lua-5.1
- dev-libs/glib:2
- >=dev-libs/libxdg-basedir-1
- >=dev-lua/lgi-0.7
- x11-libs/cairo[xcb]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/libxcb-1.6
- >=x11-libs/pango-1.19.3[introspection]
- >=x11-libs/startup-notification-0.10_p20110426
- >=x11-libs/xcb-util-0.3.8
- x11-libs/xcb-util-cursor
- x11-libs/libXcursor
- || ( <x11-libs/libX11-1.3.99.901[xcb] >=x11-libs/libX11-1.3.99.901 )
- dbus? ( >=sys-apps/dbus-1 )
- elibc_FreeBSD? ( dev-libs/libexecinfo )"
-
-# graphicsmagick's 'convert -channel' has no Alpha support, bug #352282
-DEPEND="${COMMON_DEPEND}
- >=app-text/asciidoc-8.4.5
- app-text/xmlto
- dev-util/gperf
- virtual/pkgconfig
- media-gfx/imagemagick[png]
- >=x11-proto/xcb-proto-1.5
- >=x11-proto/xproto-7.0.15
- doc? (
- app-doc/doxygen
- media-gfx/graphviz
- )"
-
-RDEPEND="${COMMON_DEPEND}"
-
-DOCS="AUTHORS BUGS PATCHES README STYLE"
-
-src_prepare() {
- # bug #408025
- epatch "${FILESDIR}/${PN}-3.5_rc1-convert-path.patch"
- epatch "${FILESDIR}/${PN}-xsession.patch"
-
- # bug #506586
- epatch "${FILESDIR}/${P}-imagebox.patch"
-}
-
-src_configure() {
- mycmakeargs=(
- -DPREFIX="${EPREFIX}"/usr
- -DSYSCONFDIR="${EPREFIX}"/etc
- $(cmake-utils_use_with dbus DBUS)
- $(cmake-utils_use doc GENERATE_DOC)
- )
-
- cmake-utils_src_configure
-}
-
-src_compile() {
- local myargs="all"
-
- if use doc ; then
- myargs="${myargs} doc"
- fi
- cmake-utils_src_make ${myargs}
-}
-
-src_install() {
- cmake-utils_src_install
-
- if use doc ; then
- (
- cd "${CMAKE_BUILD_DIR}"/doc
- mv html doxygen
- dohtml -r doxygen || die
- )
- fi
- rm -rf "${ED}"/usr/share/doc/${PN} || die "Cleanup of dupe docs failed"
-
- exeinto /etc/X11/Sessions
- newexe "${FILESDIR}"/${PN}-session ${PN} || die
-
- # GNOME-based awesome
- if use gnome ; then
- # GNOME session
- insinto /usr/share/gnome-session/sessions
- newins "${FILESDIR}/${PN}-gnome-3.session" "${PN}-gnome.session" || die
- # Application launcher
- domenu "${FILESDIR}/${PN}-gnome.desktop" || die
- # X Session
- insinto /usr/share/xsessions/
- doins "${FILESDIR}/${PN}-gnome-xsession.desktop" || die
- fi
-}
-
-pkg_postinst() {
- # bug #447308
- if use gnome; then
- elog
- elog "You have enabled the gnome USE flag."
- elog "Please note that quitting awesome won't kill your gnome session."
- elog "To really quit the session, you should bind your quit key"
- elog "to the following command:"
- elog " gnome-session-quit --logout"
- elog "For more info visit"
- elog " https://bugs.gentoo.org/show_bug.cgi?id=447308"
- fi
-
- # bug #440724
- elog
- elog "If you are having issues with Java application windows being"
- elog "completely blank, try installing"
- elog " x11-misc/wmname"
- elog "and setting the WM name to LG3D."
- elog "For more info visit"
- elog " https://bugs.gentoo.org/show_bug.cgi?id=440724"
- elog
-}
diff --git a/x11-wm/awesome/awesome-3.5.5-r1.ebuild b/x11-wm/awesome/awesome-3.5.5-r1.ebuild
deleted file mode 100644
index 9a2fa5e99b..0000000000
--- a/x11-wm/awesome/awesome-3.5.5-r1.ebuild
+++ /dev/null
@@ -1,134 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-CMAKE_MIN_VERSION="2.8"
-inherit cmake-utils eutils
-
-DESCRIPTION="A dynamic floating and tiling window manager"
-HOMEPAGE="http://awesome.naquadah.org/"
-SRC_URI="http://awesome.naquadah.org/download/${P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
-IUSE="dbus doc elibc_FreeBSD gnome"
-
-COMMON_DEPEND="
- >=dev-lang/lua-5.1
- dev-libs/glib:2
- >=dev-libs/libxdg-basedir-1
- >=dev-lua/lgi-0.7
- x11-libs/cairo[xcb]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/libxcb-1.6
- >=x11-libs/pango-1.19.3[introspection]
- >=x11-libs/startup-notification-0.10_p20110426
- >=x11-libs/xcb-util-0.3.8
- x11-libs/xcb-util-cursor
- x11-libs/libXcursor
- || ( <x11-libs/libX11-1.3.99.901[xcb] >=x11-libs/libX11-1.3.99.901 )
- dbus? ( >=sys-apps/dbus-1 )
- elibc_FreeBSD? ( dev-libs/libexecinfo )"
-
-# graphicsmagick's 'convert -channel' has no Alpha support, bug #352282
-DEPEND="${COMMON_DEPEND}
- >=app-text/asciidoc-8.4.5
- app-text/xmlto
- dev-util/gperf
- virtual/pkgconfig
- media-gfx/imagemagick[png]
- >=x11-proto/xcb-proto-1.5
- >=x11-proto/xproto-7.0.15
- doc? (
- app-doc/doxygen
- media-gfx/graphviz
- )"
-
-RDEPEND="${COMMON_DEPEND}"
-
-DOCS="AUTHORS BUGS PATCHES README STYLE"
-
-src_prepare() {
- # bug #408025
- epatch "${FILESDIR}/${PN}-3.5_rc1-convert-path.patch"
- epatch "${FILESDIR}/${PN}-xsession.patch"
-
- # bug #507604
- epatch "${FILESDIR}/${P}-util.lua-xdg-icons-fix.patch"
- # bug #509658
- epatch "${FILESDIR}/${P}-cflag-cleanup.patch"
-}
-
-src_configure() {
- mycmakeargs=(
- -DPREFIX="${EPREFIX}"/usr
- -DSYSCONFDIR="${EPREFIX}"/etc
- $(cmake-utils_use_with dbus DBUS)
- $(cmake-utils_use doc GENERATE_DOC)
- )
-
- cmake-utils_src_configure
-}
-
-src_compile() {
- local myargs="all"
-
- if use doc ; then
- myargs="${myargs} doc"
- fi
- cmake-utils_src_make ${myargs}
-}
-
-src_install() {
- cmake-utils_src_install
-
- if use doc ; then
- (
- cd "${CMAKE_BUILD_DIR}"/doc
- mv html doxygen
- dohtml -r doxygen || die
- )
- fi
- rm -rf "${ED}"/usr/share/doc/${PN} || die "Cleanup of dupe docs failed"
-
- exeinto /etc/X11/Sessions
- newexe "${FILESDIR}"/${PN}-session ${PN} || die
-
- # GNOME-based awesome
- if use gnome ; then
- # GNOME session
- insinto /usr/share/gnome-session/sessions
- newins "${FILESDIR}/${PN}-gnome-3.session" "${PN}-gnome.session" || die
- # Application launcher
- domenu "${FILESDIR}/${PN}-gnome.desktop" || die
- # X Session
- insinto /usr/share/xsessions/
- doins "${FILESDIR}/${PN}-gnome-xsession.desktop" || die
- fi
-}
-
-pkg_postinst() {
- # bug #447308
- if use gnome; then
- elog
- elog "You have enabled the gnome USE flag."
- elog "Please note that quitting awesome won't kill your gnome session."
- elog "To really quit the session, you should bind your quit key"
- elog "to the following command:"
- elog " gnome-session-quit --logout"
- elog "For more info visit"
- elog " https://bugs.gentoo.org/show_bug.cgi?id=447308"
- fi
-
- # bug #440724
- elog
- elog "If you are having issues with Java application windows being"
- elog "completely blank, try installing"
- elog " x11-misc/wmname"
- elog "and setting the WM name to LG3D."
- elog "For more info visit"
- elog " https://bugs.gentoo.org/show_bug.cgi?id=440724"
- elog
-}
diff --git a/x11-wm/awesome/awesome-3.5.5.ebuild b/x11-wm/awesome/awesome-3.5.5.ebuild
deleted file mode 100644
index a8f8015eca..0000000000
--- a/x11-wm/awesome/awesome-3.5.5.ebuild
+++ /dev/null
@@ -1,132 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-CMAKE_MIN_VERSION="2.8"
-inherit cmake-utils eutils
-
-DESCRIPTION="A dynamic floating and tiling window manager"
-HOMEPAGE="http://awesome.naquadah.org/"
-SRC_URI="http://awesome.naquadah.org/download/${P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
-IUSE="dbus doc elibc_FreeBSD gnome"
-
-COMMON_DEPEND="
- >=dev-lang/lua-5.1
- dev-libs/glib:2
- >=dev-libs/libxdg-basedir-1
- >=dev-lua/lgi-0.7
- x11-libs/cairo[xcb]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/libxcb-1.6
- >=x11-libs/pango-1.19.3[introspection]
- >=x11-libs/startup-notification-0.10_p20110426
- >=x11-libs/xcb-util-0.3.8
- x11-libs/xcb-util-cursor
- x11-libs/libXcursor
- || ( <x11-libs/libX11-1.3.99.901[xcb] >=x11-libs/libX11-1.3.99.901 )
- dbus? ( >=sys-apps/dbus-1 )
- elibc_FreeBSD? ( dev-libs/libexecinfo )"
-
-# graphicsmagick's 'convert -channel' has no Alpha support, bug #352282
-DEPEND="${COMMON_DEPEND}
- >=app-text/asciidoc-8.4.5
- app-text/xmlto
- dev-util/gperf
- virtual/pkgconfig
- media-gfx/imagemagick[png]
- >=x11-proto/xcb-proto-1.5
- >=x11-proto/xproto-7.0.15
- doc? (
- app-doc/doxygen
- media-gfx/graphviz
- )"
-
-RDEPEND="${COMMON_DEPEND}"
-
-DOCS="AUTHORS BUGS PATCHES README STYLE"
-
-src_prepare() {
- # bug #408025
- epatch "${FILESDIR}/${PN}-3.5_rc1-convert-path.patch"
- epatch "${FILESDIR}/${PN}-xsession.patch"
-
- # bug #507604
- epatch "${FILESDIR}/${P}-util.lua-xdg-icons-fix.patch"
-}
-
-src_configure() {
- mycmakeargs=(
- -DPREFIX="${EPREFIX}"/usr
- -DSYSCONFDIR="${EPREFIX}"/etc
- $(cmake-utils_use_with dbus DBUS)
- $(cmake-utils_use doc GENERATE_DOC)
- )
-
- cmake-utils_src_configure
-}
-
-src_compile() {
- local myargs="all"
-
- if use doc ; then
- myargs="${myargs} doc"
- fi
- cmake-utils_src_make ${myargs}
-}
-
-src_install() {
- cmake-utils_src_install
-
- if use doc ; then
- (
- cd "${CMAKE_BUILD_DIR}"/doc
- mv html doxygen
- dohtml -r doxygen || die
- )
- fi
- rm -rf "${ED}"/usr/share/doc/${PN} || die "Cleanup of dupe docs failed"
-
- exeinto /etc/X11/Sessions
- newexe "${FILESDIR}"/${PN}-session ${PN} || die
-
- # GNOME-based awesome
- if use gnome ; then
- # GNOME session
- insinto /usr/share/gnome-session/sessions
- newins "${FILESDIR}/${PN}-gnome-3.session" "${PN}-gnome.session" || die
- # Application launcher
- domenu "${FILESDIR}/${PN}-gnome.desktop" || die
- # X Session
- insinto /usr/share/xsessions/
- doins "${FILESDIR}/${PN}-gnome-xsession.desktop" || die
- fi
-}
-
-pkg_postinst() {
- # bug #447308
- if use gnome; then
- elog
- elog "You have enabled the gnome USE flag."
- elog "Please note that quitting awesome won't kill your gnome session."
- elog "To really quit the session, you should bind your quit key"
- elog "to the following command:"
- elog " gnome-session-quit --logout"
- elog "For more info visit"
- elog " https://bugs.gentoo.org/show_bug.cgi?id=447308"
- fi
-
- # bug #440724
- elog
- elog "If you are having issues with Java application windows being"
- elog "completely blank, try installing"
- elog " x11-misc/wmname"
- elog "and setting the WM name to LG3D."
- elog "For more info visit"
- elog " https://bugs.gentoo.org/show_bug.cgi?id=440724"
- elog
-}
diff --git a/x11-wm/awesome/awesome-3.5.6.ebuild b/x11-wm/awesome/awesome-3.5.6-r1.ebuild
index 2fbf29866a..3b951514bb 100644
--- a/x11-wm/awesome/awesome-3.5.6.ebuild
+++ b/x11-wm/awesome/awesome-3.5.6-r1.ebuild
@@ -16,7 +16,7 @@ KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
IUSE="dbus doc elibc_FreeBSD gnome"
COMMON_DEPEND="
- >=dev-lang/lua-5.1
+ >=dev-lang/lua-5.1:0
dev-libs/glib:2
>=dev-libs/libxdg-basedir-1
>=dev-lua/lgi-0.7
@@ -28,7 +28,7 @@ COMMON_DEPEND="
>=x11-libs/xcb-util-0.3.8
x11-libs/xcb-util-cursor
x11-libs/libXcursor
- || ( <x11-libs/libX11-1.3.99.901[xcb] >=x11-libs/libX11-1.3.99.901 )
+ >=x11-libs/libX11-1.3.99.901
dbus? ( >=sys-apps/dbus-1 )
elibc_FreeBSD? ( dev-libs/libexecinfo )"
diff --git a/x11-wm/enlightenment/Manifest b/x11-wm/enlightenment/Manifest
index 974960033c..2e56dc6e42 100644
--- a/x11-wm/enlightenment/Manifest
+++ b/x11-wm/enlightenment/Manifest
@@ -4,9 +4,6 @@ DIST e16-1.0.14.tar.gz 2340182 SHA256 45b9a554e366f609764efaed1bf7230e999c3fd7ff
DIST e16-1.0.15.tar.gz 2392041 SHA256 ce8e87618c5d0b85882197a92ceee8d4240caacffb525bae7721eb0e0a83a7ea SHA512 bc2a891b172b7201a24629cd52df6817ce03b0d5978e2a75db6abba4c21d8670bd94243d7026bc8f50cefb7562c34266aa8332901dde593d0d44e8b3a5dfd5e8 WHIRLPOOL 59cff86ef7a694a8a23e04ff5609958ded65cccb786f1845866ecb6a8cf0c6e892666b429780f6dba12913411ffb97dd67ae7df2d48a431ddef66af4d2973ffd
DIST e16-1.0.16.tar.gz 2395638 SHA256 a50ecbcf1cf239a5b36cc592364b2b1ee8e4135098704e5b1b949f989811cff1 SHA512 1cd3e42221546b08a7fa1431ab603d79963d91da86b0ec53d4578b8e02697b6b54db1ee75ae7e948c780905ad059c4be77d72f8bb33d3808e03842d53922eb8e WHIRLPOOL 4e26917992d90e69af1e1574582048e09ee4ef4e461c4f0e05739d80f63647575b548c97f8afc0bf79a97647d632463b22bbf9c431a3977b8e9ef83ea952220a
DIST e16-1.0.17.tar.gz 2417299 SHA256 41ed67b648acc9b570cc681cf69d0accf38b69fd5d0af6b8ea8a6eacbf87659d SHA512 d6ad565cf638de5240fbcd0f1cd37977c69e6af31a4ff9127e9c570fdf57a56bde50978620fbc34508d02661effa17f0c8b91ca23faebc0b77f9d40e166ba021 WHIRLPOOL d4996798db0ce676c0cdce8bc6a354fcb6649ee4a9c579dc4c51beaeb96d7dcd2dfe0f063ead6724b21bb9f7f66608596412a251df0c2670b944f7376cb3e504
-DIST enlightenment-0.17.6.tar.bz2 29500129 SHA256 25ec72b40e7827468a2498fedfb03f86cb6f20101b63175d80c96db3157b0c0e SHA512 5f8fec0b2c9cb2bcc3e2738b68e4266179153288a161e4e2d0f7ff50b702d6d78d836b433105c548997b516324ca7ba44a74a7361052235b50e18c22a26c9dc9 WHIRLPOOL e89b52efa2007815ef4de9272102f5f170a3838666483a4653bdaa2f37291e14e92d6814dcbd7dfdfdcf14735dc37571b6fa1bf6f7b5a8c08070723d75e7d03a
-DIST enlightenment-0.18.7.tar.bz2 27613518 SHA256 90fc71cd7eda1bf4e7cf4fa6ed4d578ce01f5d8c66e21f1d1a2ffbc843f36b13 SHA512 f06479e3c6da31f9457525247f1654ed10e192073f1e9fa9d07f5d8158f6463871960776c320bb5cc3676cdfb3188e4b0c5435c438051a2bfd9f3b2c8f73befd WHIRLPOOL b1b6323b047d330789b079dad45826269d878890b56b763b7a2b4a10dff1adecbeb062ba7cb795ff0f415d06f8da3c5b11a64dfaeb98fb8ac48d77e79b2d1391
DIST enlightenment-0.18.8.tar.bz2 27616548 SHA256 e99b1d8a9c64dad80611310bd3dc3a7b6d9eaefbd21d0f4a3c350aed9137ca13 SHA512 8ba767b7004c78130eda315a4b7c06d5dcd4034e4d9ef588d0012eca70fb677cff8f9a81bb5a33e6e8891d52f9f93e0f1cf4d3fadec505afd6c1f476b964fe73 WHIRLPOOL edbd586f1c00574457fe2123d1a0c86e00b8c949abf04677535b0d4378bc66822cc72f48138be622a8c671f40f65fe5ce42b6d8af3f96259b15136981f556994
DIST enlightenment-0.19.10.tar.xz 24594372 SHA256 8bdc2b764765e807df263962cb3c4793256a34ce74cf854f623a47859f7a4f5d SHA512 c9ee8e9a6a6575103cb1785fc478cfdcd7c544e21eb8738d3877f8742fb0250bae751ae7d05b6b57b7ca37c7011e7ae183da1aa251233c85dd7e38a23f897243 WHIRLPOOL a0d320c52850de00db1a2778f2d71be58b0567854e0c07e03b00ef42f8b94a00abff0616ae389831a117a37a1f554f6e41474e9e8fec0186a8079f970d1db977
-DIST enlightenment-0.19.4.tar.xz 24597128 SHA256 e777febb2fa751ec3320fdc3e2ecb0a9b70ec75f2d188fb02edd31004e536b64 SHA512 c5f6a68cff1c4744da050e1ac865f8af6a70675d4a50644f91a30e572509c5f5314a43a16a43e9f45d3ddb0a827bd213a1478d6f7416f76e68928560a3e32b6f WHIRLPOOL 8e37c7fb3d1ebd234a39bdaf6d82aa3097dc40bf5150315b05d72ff3e71b85a04026a28a1a4240625d28f6bfa7900a6cf2a0f642bb5ae605812e1503af37c150
-DIST enlightenment-0.19.8.tar.xz 24594628 SHA256 b1a9b76bb8282b266f12a0de1e83126deffbb8bb4fbea6901831cd00b09503f9 SHA512 531e90ca68fbc75ead4cbf389e48e0ca5b3c39f181bec154271301f7893810a976145bc34eb0a95adf08aa24c11a6b85936856fe0bb5a0ca61cfddbb608fc48b WHIRLPOOL 1795762d27dfb7d8f67953b1154ef3471d392a246b36ac7687a70a2e5d66e619b786c6510bb8563806666caea7b966d6d3bbaace04d2a2f9063a5dfa5b611309
+DIST enlightenment-0.19.12.tar.xz 24569084 SHA256 55f23c337e3092e735ae37ada8f6701adab5ddd13f37ef38c63eec8a536f0b25 SHA512 30332fa0108a4361dd7cc961325b607fccef99caa1db6eaf068fc97de9978ad21dde5724a7e8f6612441fb0529a56461c8df63de25579f67d452fa9bf382d859 WHIRLPOOL e19f84c4a6311ef583d8f2bd53bc85a13e37bc65bdccc1823953685e0946f18cfaf0a75ee97f1a97e5d7fb9c9b0711b92f00f6949e5ca44718b6bf2347cb3a4c
diff --git a/x11-wm/enlightenment/enlightenment-0.17.6.ebuild b/x11-wm/enlightenment/enlightenment-0.17.6.ebuild
deleted file mode 100644
index 71c4a99e2d..0000000000
--- a/x11-wm/enlightenment/enlightenment-0.17.6.ebuild
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-inherit autotools enlightenment
-
-DESCRIPTION="Enlightenment DR17 window manager"
-SRC_URI="https://download.enlightenment.org/releases/${P}.tar.bz2"
-
-LICENSE="BSD-2"
-KEYWORDS="amd64 x86"
-SLOT="0.17/${PV%%_*}"
-
-# The @ is just an anchor to expand from
-__EVRY_MODS=""
-__CONF_MODS="
- +@applications +@dialogs +@display +@edgebindings
- +@interaction +@intl +@keybindings +@menus
- +@paths +@performance +@randr +@shelves +@theme
- +@window-manipulation +@window-remembers"
-__NORM_MODS="
- @access +@backlight +@battery +@clock +@comp +@connman +@cpufreq +@dropshadow
- +@everything +@fileman +@fileman-opinfo +@gadman +@ibar +@ibox +@illume2
- +@mixer +@msgbus +@notification +@pager +@quickaccess +@shot +@start
- +@syscon +@systray +@tasks +@temperature +@tiling +@winlist +@wizard +@xkbswitch"
-IUSE_E_MODULES="
- ${__CONF_MODS//@/enlightenment_modules_conf-}
- ${__NORM_MODS//@/enlightenment_modules_}"
-
-IUSE="pam spell static-libs +udev ukit ${IUSE_E_MODULES}"
-
-RDEPEND="
- pam? ( sys-libs/pam )
- || ( >=dev-libs/efl-1.8.4[X,eet,jpeg(+),png] >=dev-libs/efl-1.8.4[xcb,eet,jpeg(+),png] )
- >=dev-libs/e_dbus-1.7.10
- ukit? ( >=dev-libs/e_dbus-1.7.10[udev] )
- x11-libs/xcb-util-keysyms"
-DEPEND="${RDEPEND}"
-
-S=${WORKDIR}/${P%%_*}
-
-src_prepare() {
- sed -i "s:1.7.10:1.7.9:g" configure.ac
- eautoreconf
- epatch "${FILESDIR}"/quickstart.diff
- enlightenment_src_prepare
-}
-
-src_configure() {
- E_ECONF+=(
- --disable-install-sysactions
- --disable-elementary
- $(use_enable doc)
- --disable-device-hal
- --enable-emotion
- --disable-mount-hal
- $(use_enable nls)
- $(use_enable pam)
- --enable-device-udev
- $(use_enable udev mount-eeze)
- $(use_enable ukit mount-udisks)
- --disable-physics
- )
- local u c
- for u in ${IUSE_E_MODULES} ; do
- u=${u#+}
- c=${u#enlightenment_modules_}
- E_ECONF+=( $(use_enable ${u} ${c}) )
- done
- enlightenment_src_configure
-}
-
-src_install() {
- enlightenment_src_install
- insinto /etc/enlightenment
- newins "${FILESDIR}"/gentoo-sysactions.conf sysactions.conf
-}
diff --git a/x11-wm/enlightenment/enlightenment-0.18.7.ebuild b/x11-wm/enlightenment/enlightenment-0.18.7.ebuild
deleted file mode 100644
index cd02a9c7d8..0000000000
--- a/x11-wm/enlightenment/enlightenment-0.18.7.ebuild
+++ /dev/null
@@ -1,92 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-MY_P=${P/_/-}
-
-if [[ "${PV}" == "9999" ]] ; then
- EGIT_SUB_PROJECT="core"
- EGIT_URI_APPEND="${PN}"
-else
- SRC_URI="https://download.enlightenment.org/rel/apps/${PN}/${MY_P}.tar.bz2"
- EKEY_STATE="snap"
-fi
-
-inherit enlightenment
-
-DESCRIPTION="Enlightenment DR17 window manager"
-
-LICENSE="BSD-2"
-KEYWORDS="~amd64 ~arm ~x86"
-SLOT="0.17/${PV%%_*}"
-
-# The @ is just an anchor to expand from
-__EVRY_MODS=""
-__CONF_MODS="
- +@applications +@comp +@dialogs +@display
- +@interaction +@intl +@menus
- +@paths +@performance +@randr +@shelves +@theme +@wallpaper2
- +@window-manipulation +@window-remembers"
-__NORM_MODS="
- @access +@appmenu +@backlight +@bluez4 +@battery +@clock
- +@connman +@contact +@cpufreq +@everything +@fileman
- +@fileman-opinfo +@gadman +@ibar +@ibox +@illume2 +@mixer +@msgbus
- +@music-control +@notification +@pager +@quickaccess +@shot
- +@start +@syscon +@systray +@tasks +@teamwork +@temperature +@tiling
- +@winlist +@wizard @wl-desktop-shell @wl-screenshot +@xkbswitch"
-IUSE_E_MODULES="
- ${__CONF_MODS//@/enlightenment_modules_conf-}
- ${__NORM_MODS//@/enlightenment_modules_}"
-
-IUSE="pam spell static-libs systemd +udev ukit wayland ${IUSE_E_MODULES}"
-
-RDEPEND="
- pam? ( sys-libs/pam )
- systemd? ( sys-apps/systemd )
- wayland? ( dev-libs/efl[wayland]
- >=dev-libs/wayland-1.2.0
- >=x11-libs/pixman-0.31.1
- >=x11-libs/libxkbcommon-0.3.1
- )
- >=dev-libs/efl-1.8.3
- || ( >=dev-libs/efl-1.8.3[X] >=dev-libs/efl-1.8.3[xcb] )
- >=media-libs/elementary-1.8.2
- x11-libs/xcb-util-keysyms"
-DEPEND="${RDEPEND}"
-
-S=${WORKDIR}/${MY_P}
-
-src_prepare() {
- epatch "${FILESDIR}"/quickstart.diff
- enlightenment_src_prepare
-}
-
-src_configure() {
- E_ECONF+=(
- --disable-install-sysactions
- $(use_enable doc)
- --disable-device-hal
- $(use_enable nls)
- $(use_enable pam)
- $(use_enable systemd)
- --enable-device-udev
- $(use_enable udev mount-eeze)
- $(use_enable ukit mount-udisks)
- $(use_enable wayland wayland-clients)
- )
- local u c
- for u in ${IUSE_E_MODULES} ; do
- u=${u#+}
- c=${u#enlightenment_modules_}
- E_ECONF+=( $(use_enable ${u} ${c}) )
- done
- enlightenment_src_configure
-}
-
-src_install() {
- enlightenment_src_install
- insinto /etc/enlightenment
- newins "${FILESDIR}"/gentoo-sysactions.conf sysactions.conf
-}
diff --git a/x11-wm/enlightenment/enlightenment-0.19.4.ebuild b/x11-wm/enlightenment/enlightenment-0.19.12.ebuild
index bde419396b..bde419396b 100644
--- a/x11-wm/enlightenment/enlightenment-0.19.4.ebuild
+++ b/x11-wm/enlightenment/enlightenment-0.19.12.ebuild
diff --git a/x11-wm/enlightenment/enlightenment-0.19.8.ebuild b/x11-wm/enlightenment/enlightenment-0.19.8.ebuild
deleted file mode 100644
index bde419396b..0000000000
--- a/x11-wm/enlightenment/enlightenment-0.19.8.ebuild
+++ /dev/null
@@ -1,92 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-
-MY_P=${P/_/-}
-
-if [[ ${PV} == *9999 ]] ; then
- EGIT_SUB_PROJECT="core"
- EGIT_URI_APPEND="${PN}"
-else
- SRC_URI="https://download.enlightenment.org/rel/apps/${PN}/${MY_P}.tar.xz"
- EKEY_STATE="snap"
-fi
-
-inherit enlightenment
-
-DESCRIPTION="Enlightenment DR17 window manager"
-
-LICENSE="BSD-2"
-KEYWORDS="~amd64 ~arm ~x86"
-SLOT="0.17/${PV%%_*}"
-
-# The @ is just an anchor to expand from
-__EVRY_MODS=""
-__CONF_MODS="
- +@applications +@comp +@dialogs +@display
- +@interaction +@intl +@menus
- +@paths +@performance +@randr +@shelves +@theme +@wallpaper2
- +@window-manipulation +@window-remembers"
-__NORM_MODS="
- @access +@appmenu +@backlight +@bluez4 +@battery +@clock
- +@connman +@contact +@cpufreq +@everything +@fileman
- +@fileman-opinfo +@gadman +@ibar +@ibox +@illume2 +@mixer +@msgbus
- +@music-control +@notification +@pager +@quickaccess +@shot
- +@start +@syscon +@systray +@tasks +@teamwork +@temperature +@tiling
- +@winlist +@wizard @wl-desktop-shell @wl-screenshot +@xkbswitch"
-IUSE_E_MODULES="
- ${__CONF_MODS//@/enlightenment_modules_conf-}
- ${__NORM_MODS//@/enlightenment_modules_}"
-
-IUSE="pam spell static-libs systemd +udev ukit wayland ${IUSE_E_MODULES}"
-
-RDEPEND="
- pam? ( sys-libs/pam )
- systemd? ( sys-apps/systemd )
- wayland? (
- dev-libs/efl[wayland]
- >=dev-libs/wayland-1.2.0
- >=x11-libs/pixman-0.31.1
- >=x11-libs/libxkbcommon-0.3.1
- )
- >=dev-libs/efl-${PV}[X]
- >=media-libs/elementary-${PV}
- x11-libs/xcb-util-keysyms"
-DEPEND="${RDEPEND}"
-
-S=${WORKDIR}/${MY_P}
-
-src_prepare() {
- epatch "${FILESDIR}"/quickstart.diff
- enlightenment_src_prepare
-}
-
-src_configure() {
- E_ECONF=(
- --disable-install-sysactions
- $(use_enable doc)
- --disable-device-hal
- $(use_enable nls)
- $(use_enable pam)
- $(use_enable systemd)
- --enable-device-udev
- $(use_enable udev mount-eeze)
- $(use_enable ukit mount-udisks)
- $(use_enable wayland wayland-clients)
- )
- local u c
- for u in ${IUSE_E_MODULES} ; do
- u=${u#+}
- c=${u#enlightenment_modules_}
- E_ECONF+=( $(use_enable ${u} ${c}) )
- done
- enlightenment_src_configure
-}
-
-src_install() {
- enlightenment_src_install
- insinto /etc/enlightenment
- newins "${FILESDIR}"/gentoo-sysactions.conf sysactions.conf
-}
diff --git a/x11-wm/enlightenment/metadata.xml b/x11-wm/enlightenment/metadata.xml
index cc4abd49cb..41964c0b34 100644
--- a/x11-wm/enlightenment/metadata.xml
+++ b/x11-wm/enlightenment/metadata.xml
@@ -61,11 +61,9 @@ Enlightenment Features:
<flag name="enlightenment_modules_battery">A gadget to visualize your battery status</flag>
<flag name="enlightenment_modules_bluez4">Configure Bluetooth devices</flag>
<flag name="enlightenment_modules_clock">Nice clock gadget to show current time</flag>
- <flag name="enlightenment_modules_comp">Enlightenment Composite Manager</flag>
<flag name="enlightenment_modules_connman">Control Wifi and wired networks as a user</flag>
<flag name="enlightenment_modules_contact">Enable the contact module</flag>
<flag name="enlightenment_modules_cpufreq">Gadget to monitor and change the CPU frequency</flag>
- <flag name="enlightenment_modules_dropshadow">Module to add a dropshadow to windows</flag>
<flag name="enlightenment_modules_everything">The run command module provides an application launcher dialog</flag>
<flag name="enlightenment_modules_fileman">Enlightenment's integrated file manager</flag>
<flag name="enlightenment_modules_fileman-opinfo">Can be placed on the desktop or in a shelf</flag>
@@ -96,10 +94,8 @@ Enlightenment Features:
<flag name="enlightenment_modules_conf-comp">Configure default dialog properties</flag>
<flag name="enlightenment_modules_conf-dialogs">Configure default dialog properties</flag>
<flag name="enlightenment_modules_conf-display">Used to configure your screen</flag>
- <flag name="enlightenment_modules_conf-edgebindings">Configure your edge bindings here</flag>
<flag name="enlightenment_modules_conf-interaction">Configure Mouse and Touch input</flag>
<flag name="enlightenment_modules_conf-intl">Used to select a default language</flag>
- <flag name="enlightenment_modules_conf-keybindings">Key, Mouse and Button control settings</flag>
<flag name="enlightenment_modules_conf-menus">Configures menu behavior</flag>
<flag name="enlightenment_modules_conf-paths">Specifies the Enlightenment search paths and default directories</flag>
<flag name="enlightenment_modules_conf-performance">Used to configure certain performance related items as frame rates and cache settings</flag>
diff --git a/x11-wm/i3/i3-4.10.4.ebuild b/x11-wm/i3/i3-4.10.4.ebuild
index b637b1e3b4..646dae9362 100644
--- a/x11-wm/i3/i3-4.10.4.ebuild
+++ b/x11-wm/i3/i3-4.10.4.ebuild
@@ -12,7 +12,7 @@ SRC_URI="http://i3wm.org/downloads/${P}.tar.bz2"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~arm ~x86"
+KEYWORDS="amd64 ~arm x86"
IUSE="+pango"
CDEPEND="dev-libs/libev
diff --git a/x11-wm/icewm/icewm-1.3.11.ebuild b/x11-wm/icewm/icewm-1.3.11.ebuild
index ba07240cf5..663a0c408a 100644
--- a/x11-wm/icewm/icewm-1.3.11.ebuild
+++ b/x11-wm/icewm/icewm-1.3.11.ebuild
@@ -48,7 +48,7 @@ DEPEND="${RDEPEND}
x11-proto/xproto
x11-proto/xextproto
doc? ( app-text/linuxdoc-tools )
- nls? ( >=sys-devel/gettext-0.19.2 )
+ nls? ( >=sys-devel/gettext-0.19.5 )
truetype? ( >=media-libs/freetype-2.0.9 )
xinerama? ( x11-proto/xineramaproto )
"
diff --git a/x11-wm/jwm/Manifest b/x11-wm/jwm/Manifest
index e42995b184..ba894ddbfe 100644
--- a/x11-wm/jwm/Manifest
+++ b/x11-wm/jwm/Manifest
@@ -1 +1,2 @@
DIST jwm-2.1.0.tar.bz2 163590 SHA256 5c99f9023dc8c2597effdaacc240ff4c2e07e77c8244f3bf1de5cc483bcf08ab SHA512 68476ce1e57486110301582e7a42e709d8113634736063915b1e5ed8351187095f3dcafdc3194839a405959c0b7d5c10f31ae420ee54ce8d857e300194388c1e WHIRLPOOL 68a958e1384ce4a7c28a41ae239b44eaf509ece13d9f2630abf72c39a96670d0abd4aa45c9f47957655f6fd87ac8505c5694c253d2b3480537ca344324c319a6
+DIST jwm-2.3.2.tar.xz 325648 SHA256 92a3e66ceb847aac9fa09a24b16c93194f6c52e398f5a88f228b4986ea972c53 SHA512 34b9d482815e8b269203e1f5bf02d3e13f3186153755c9e74094e4a8af376f35b8bef4553056e83c20ba0c532e6d2606633d71272e186fe45dfed9e4ea836a27 WHIRLPOOL 93d140919edf16fb44bf93b88880d017174036de363a514862c5553ea84796311ba74fa2f6736fa2f78fe639e95ad6087b38fa962d77c83c4c4d863e35c06703
diff --git a/x11-wm/jwm/jwm-2.3.2.ebuild b/x11-wm/jwm/jwm-2.3.2.ebuild
new file mode 100644
index 0000000000..64d42ed4ea
--- /dev/null
+++ b/x11-wm/jwm/jwm-2.3.2.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils
+
+DESCRIPTION="Very fast and lightweight still powerful window manager for X"
+HOMEPAGE="http://joewing.net/programs/jwm/"
+SRC_URI="http://joewing.net/programs/jwm/releases/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc ~x86 ~x86-fbsd"
+IUSE="bidi debug jpeg png truetype xinerama xpm"
+
+RDEPEND="xpm? ( x11-libs/libXpm )
+ xinerama? ( x11-libs/libXinerama )
+ x11-libs/libXext
+ x11-libs/libXrender
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ truetype? ( x11-libs/libXft )
+ png? ( media-libs/libpng:0= )
+ jpeg? ( virtual/jpeg:0= )
+ bidi? ( dev-libs/fribidi )
+ dev-libs/expat"
+DEPEND="${RDEPEND}
+ x11-proto/xproto
+ x11-proto/xextproto
+ xinerama? ( x11-proto/xineramaproto )"
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ $(use_enable jpeg) \
+ $(use_enable png) \
+ $(use_enable truetype xft) \
+ $(use_enable xinerama) \
+ $(use_enable xpm) \
+ $(use_enable bidi fribidi) \
+ --enable-shape \
+ --enable-xrender
+}
+
+src_install() {
+ dodir /etc
+ dodir /usr/bin
+ dodir /usr/share/man
+
+ default
+
+ make_wrapper "${PN}" "/usr/bin/${PN}" "" "" "/etc/X11/Sessions"
+
+ dodoc README.md example.jwmrc ChangeLog
+}
+
+pkg_postinst() {
+ einfo "JWM can be configured system-wide with ${EROOT}/etc/system.jwmrc"
+ einfo "or per-user by creating a configuration file in ~/.jwmrc"
+ einfo
+ einfo "An example file can be found in ${EROOT}/usr/share/doc/${PF}/"
+}
diff --git a/x11-wm/jwm/metadata.xml b/x11-wm/jwm/metadata.xml
index 4538a68724..986da1cd5c 100644
--- a/x11-wm/jwm/metadata.xml
+++ b/x11-wm/jwm/metadata.xml
@@ -1,5 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer><email>maintainer-needed@gentoo.org</email></maintainer>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>wraeth@wraeth.id.au</email>
+ <name>Sam Jorna</name>
+ <description>Proxy maintainer for assignee of bugs</description>
+ </maintainer>
</pkgmetadata>
diff --git a/x11-wm/mutter/Manifest b/x11-wm/mutter/Manifest
index 3633659d5a..43311d2ab8 100644
--- a/x11-wm/mutter/Manifest
+++ b/x11-wm/mutter/Manifest
@@ -1,3 +1,2 @@
DIST mutter-3.14.4.tar.xz 1608836 SHA256 b4fbcc0664484d6215fc1f2101e9b636303de63544b786f2f87ebf2f6a616a8b SHA512 5b6e2d969e9a328e23bedb9fd0409da1af0d2ae8ded6a940992d4cff18a8cbfe2aa6582a56a2c8bd549a560a84d8cbffe953f151bcadf235315b8ec8bc7d1267 WHIRLPOOL 45c0329832999f14a5eaa77df3a6c7bbc72556b779fc55b3db9505594efec40252996bf8d96083da47fdb67b6bf5a9402f526d8bbb1e5436e5de16a8520e4acf
-DIST mutter-3.16.2.tar.xz 1549760 SHA256 4a2b752f0b3aa59f50563190222623324f5154acbb6bf174213f5849e77d0763 SHA512 f2cd350f8dbd03bc8e58f6c3f1b48cd51b38ae56e020d4e02100ef02f003d797a20095acf6a8874563fde42cfde49c4a28c418af151ee49f24ed391d5ae3caba WHIRLPOOL a88badf1f59c8c6ba8dcde4af207a2e66e66abbd6fd6c436289591bbb6eb3b017f50a7122282b69fd7d55127029e7623b7cbca3467d2d25d95c8ff6077dc371b
DIST mutter-3.16.3.tar.xz 1550004 SHA256 ee0098487d1bfb8f28e3927fbb9df227d846555142d352f8693f56a08441c755 SHA512 31b6319c605d2576bf179e01534fe886a997677c63f19fa5d4a2d71e616a02de89d3edb069a444fb84c6fdf5a471afa2bda1d835c07e5d6dce712b2485e5937d WHIRLPOOL 23cc5161edb108137c9c983551b57659fc02c179bc7e08abebd5b26b98dcc1a17e00579a6b1e9f6fc544a92a877282fa1202a6390a14ef92ca6374dae1750112
diff --git a/x11-wm/mutter/files/mutter-3.16.2-size-unredirected.patch b/x11-wm/mutter/files/mutter-3.16.2-size-unredirected.patch
deleted file mode 100644
index 0999ebd582..0000000000
--- a/x11-wm/mutter/files/mutter-3.16.2-size-unredirected.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-From 351f444f9d16a90636feb217b15f0f376bf96d85 Mon Sep 17 00:00:00 2001
-From: "Jasper St. Pierre" <jstpierre@mecheye.net>
-Date: Tue, 23 Jun 2015 16:23:45 -0700
-Subject: surface-actor-x11: Make sure to set a size when unredirected
-
-When we're unredirected, we don't have a pixmap, and thus our allocation
-becomes 0x0. So when events come in, they pass right through our actor,
-going to the one underneath in the stack.
-
-Fix this by having a fallback size on the shaped texture actor when
-we're unredirected, causing it to always have a valid allocation.
-
-This fixes clicking on stuff in sloppy / mouse mode focus.
-
-diff --git a/src/compositor/meta-shaped-texture-private.h b/src/compositor/meta-shaped-texture-private.h
-index 4ee8027..21c6335 100644
---- a/src/compositor/meta-shaped-texture-private.h
-+++ b/src/compositor/meta-shaped-texture-private.h
-@@ -32,6 +32,9 @@
- ClutterActor *meta_shaped_texture_new (void);
- void meta_shaped_texture_set_texture (MetaShapedTexture *stex,
- CoglTexture *texture);
-+void meta_shaped_texture_set_fallback_size (MetaShapedTexture *stex,
-+ guint fallback_width,
-+ guint fallback_height);
- gboolean meta_shaped_texture_is_obscured (MetaShapedTexture *self);
-
- #endif
-diff --git a/src/compositor/meta-shaped-texture.c b/src/compositor/meta-shaped-texture.c
-index 163c5e6..8701d1b 100644
---- a/src/compositor/meta-shaped-texture.c
-+++ b/src/compositor/meta-shaped-texture.c
-@@ -86,6 +86,7 @@ struct _MetaShapedTexturePrivate
- cairo_region_t *unobscured_region;
-
- guint tex_width, tex_height;
-+ guint fallback_width, fallback_height;
-
- guint create_mipmaps : 1;
- };
-@@ -136,7 +137,20 @@ set_unobscured_region (MetaShapedTexture *self,
- g_clear_pointer (&priv->unobscured_region, (GDestroyNotify) cairo_region_destroy);
- if (unobscured_region)
- {
-- cairo_rectangle_int_t bounds = { 0, 0, priv->tex_width, priv->tex_height };
-+ guint width, height;
-+
-+ if (priv->texture)
-+ {
-+ width = priv->tex_width;
-+ height = priv->tex_height;
-+ }
-+ else
-+ {
-+ width = priv->fallback_width;
-+ height = priv->fallback_height;
-+ }
-+
-+ cairo_rectangle_int_t bounds = { 0, 0, width, height };
- priv->unobscured_region = cairo_region_copy (unobscured_region);
- cairo_region_intersect_rectangle (priv->unobscured_region, &bounds);
- }
-@@ -499,16 +513,21 @@ meta_shaped_texture_get_preferred_width (ClutterActor *self,
- gfloat *natural_width_p)
- {
- MetaShapedTexturePrivate *priv;
-+ guint width;
-
- g_return_if_fail (META_IS_SHAPED_TEXTURE (self));
-
- priv = META_SHAPED_TEXTURE (self)->priv;
-
-- if (min_width_p)
-- *min_width_p = priv->tex_width;
-+ if (priv->texture)
-+ width = priv->tex_width;
-+ else
-+ width = priv->fallback_width;
-
-+ if (min_width_p)
-+ *min_width_p = width;
- if (natural_width_p)
-- *natural_width_p = priv->tex_width;
-+ *natural_width_p = width;
- }
-
- static void
-@@ -518,16 +537,21 @@ meta_shaped_texture_get_preferred_height (ClutterActor *self,
- gfloat *natural_height_p)
- {
- MetaShapedTexturePrivate *priv;
-+ guint height;
-
- g_return_if_fail (META_IS_SHAPED_TEXTURE (self));
-
- priv = META_SHAPED_TEXTURE (self)->priv;
-
-- if (min_height_p)
-- *min_height_p = priv->tex_height;
-+ if (priv->texture)
-+ height = priv->tex_height;
-+ else
-+ height = priv->fallback_height;
-
-+ if (min_height_p)
-+ *min_height_p = height;
- if (natural_height_p)
-- *natural_height_p = priv->tex_height;
-+ *natural_height_p = height;
- }
-
- static cairo_region_t *
-@@ -860,6 +884,17 @@ meta_shaped_texture_get_image (MetaShapedTexture *stex,
- return surface;
- }
-
-+void
-+meta_shaped_texture_set_fallback_size (MetaShapedTexture *self,
-+ guint fallback_width,
-+ guint fallback_height)
-+{
-+ MetaShapedTexturePrivate *priv = self->priv;
-+
-+ priv->fallback_width = fallback_width;
-+ priv->fallback_height = fallback_height;
-+}
-+
- static void
- meta_shaped_texture_cull_out (MetaCullable *cullable,
- cairo_region_t *unobscured_region,
-diff --git a/src/compositor/meta-surface-actor-x11.c b/src/compositor/meta-surface-actor-x11.c
-index 4aa7ecd..b50b8f2 100644
---- a/src/compositor/meta-surface-actor-x11.c
-+++ b/src/compositor/meta-surface-actor-x11.c
-@@ -416,6 +416,7 @@ meta_surface_actor_x11_set_size (MetaSurfaceActorX11 *self,
- int width, int height)
- {
- MetaSurfaceActorX11Private *priv = meta_surface_actor_x11_get_instance_private (self);
-+ MetaShapedTexture *stex = meta_surface_actor_get_texture (META_SURFACE_ACTOR (self));
-
- if (priv->last_width == width &&
- priv->last_height == height)
-@@ -424,4 +425,5 @@ meta_surface_actor_x11_set_size (MetaSurfaceActorX11 *self,
- priv->size_changed = TRUE;
- priv->last_width = width;
- priv->last_height = height;
-+ meta_shaped_texture_set_fallback_size (stex, width, height);
- }
---
-cgit v0.10.2
-
diff --git a/x11-wm/mutter/files/mutter-3.16.3-GL_EXT_x11_sync_object.patch b/x11-wm/mutter/files/mutter-3.16.3-GL_EXT_x11_sync_object.patch
new file mode 100644
index 0000000000..401c1752bd
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-3.16.3-GL_EXT_x11_sync_object.patch
@@ -0,0 +1,840 @@
+From 9cc80497a262edafc58062fd860ef7a9dcab688c Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos@gmail.com>
+Date: Fri, 18 Apr 2014 20:21:20 +0200
+Subject: compositor: Add support for GL_EXT_x11_sync_object
+
+If GL advertises this extension we'll use it to synchronize X with GL
+rendering instead of relying on the XSync() behavior with open source
+drivers.
+
+Some driver bugs were uncovered while working on this so if we have
+had to reboot the ring a few times, something is probably wrong and
+we're likely to just make things worse by continuing to try. Let's
+err on the side of caution, disable ourselves and fallback to the
+XSync() path in the compositor.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=728464
+
+diff --git a/configure.ac b/configure.ac
+index 01d75cb..6eea6b2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -332,6 +332,11 @@ fi
+
+ GTK_DOC_CHECK([1.15], [--flavour no-tmpl])
+
++AC_CHECK_DECL([GL_EXT_x11_sync_object],
++ [],
++ [AC_MSG_ERROR([GL_EXT_x11_sync_object definition not found, please update your GL headers])],
++ [#include <GL/glx.h>])
++
+ #### Warnings (last since -Werror can disturb other tests)
+
+ # Stay command-line compatible with the gnome-common configure option. Here
+diff --git a/src/Makefile.am b/src/Makefile.am
+index baadb41..a4e07a9 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -139,6 +139,8 @@ libmutter_la_SOURCES = \
+ compositor/meta-surface-actor.h \
+ compositor/meta-surface-actor-x11.c \
+ compositor/meta-surface-actor-x11.h \
++ compositor/meta-sync-ring.c \
++ compositor/meta-sync-ring.h \
+ compositor/meta-texture-rectangle.c \
+ compositor/meta-texture-rectangle.h \
+ compositor/meta-texture-tower.c \
+diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c
+index 3ff8431..ac38ffc 100644
+--- a/src/backends/x11/meta-backend-x11.c
++++ b/src/backends/x11/meta-backend-x11.c
+@@ -45,6 +45,7 @@
+ #include <meta/util.h>
+ #include "display-private.h"
+ #include "compositor/compositor-private.h"
++#include "compositor/meta-sync-ring.h"
+
+ struct _MetaBackendX11Private
+ {
+@@ -255,6 +256,8 @@ handle_host_xevent (MetaBackend *backend,
+ MetaCompositor *compositor = display->compositor;
+ if (meta_plugin_manager_xevent_filter (compositor->plugin_mgr, event))
+ bypass_clutter = TRUE;
++ if (compositor->have_x11_sync_object)
++ meta_sync_ring_handle_event (event);
+ }
+ }
+
+diff --git a/src/compositor/compositor-private.h b/src/compositor/compositor-private.h
+index 80fb4e2..9e3e73d 100644
+--- a/src/compositor/compositor-private.h
++++ b/src/compositor/compositor-private.h
+@@ -15,7 +15,8 @@ struct _MetaCompositor
+ {
+ MetaDisplay *display;
+
+- guint repaint_func_id;
++ guint pre_paint_func_id;
++ guint post_paint_func_id;
+
+ gint64 server_time_query_time;
+ gint64 server_time_offset;
+@@ -40,6 +41,7 @@ struct _MetaCompositor
+ MetaPluginManager *plugin_mgr;
+
+ gboolean frame_has_updated_xsurfaces;
++ gboolean have_x11_sync_object;
+ };
+
+ /* Wait 2ms after vblank before starting to draw next frame */
+diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
+index 250d489..554faa1 100644
+--- a/src/compositor/compositor.c
++++ b/src/compositor/compositor.c
+@@ -79,6 +79,7 @@
+ #include "frame.h"
+ #include <X11/extensions/shape.h>
+ #include <X11/extensions/Xcomposite.h>
++#include "meta-sync-ring.h"
+
+ #include "backends/x11/meta-backend-x11.h"
+
+@@ -125,7 +126,11 @@ meta_switch_workspace_completed (MetaCompositor *compositor)
+ void
+ meta_compositor_destroy (MetaCompositor *compositor)
+ {
+- clutter_threads_remove_repaint_func (compositor->repaint_func_id);
++ clutter_threads_remove_repaint_func (compositor->pre_paint_func_id);
++ clutter_threads_remove_repaint_func (compositor->post_paint_func_id);
++
++ if (compositor->have_x11_sync_object)
++ meta_sync_ring_destroy ();
+ }
+
+ static void
+@@ -468,13 +473,11 @@ meta_compositor_manage (MetaCompositor *compositor)
+ MetaDisplay *display = compositor->display;
+ Display *xdisplay = display->xdisplay;
+ MetaScreen *screen = display->screen;
++ MetaBackend *backend = meta_get_backend ();
+
+ meta_screen_set_cm_selection (display->screen);
+
+- {
+- MetaBackend *backend = meta_get_backend ();
+- compositor->stage = meta_backend_get_stage (backend);
+- }
++ compositor->stage = meta_backend_get_stage (backend);
+
+ /* We use connect_after() here to accomodate code in GNOME Shell that,
+ * when benchmarking drawing performance, connects to ::after-paint
+@@ -510,7 +513,7 @@ meta_compositor_manage (MetaCompositor *compositor)
+
+ compositor->output = screen->composite_overlay_window;
+
+- xwin = meta_backend_x11_get_xwindow (META_BACKEND_X11 (meta_get_backend ()));
++ xwin = meta_backend_x11_get_xwindow (META_BACKEND_X11 (backend));
+
+ XReparentWindow (xdisplay, xwin, compositor->output, 0, 0);
+
+@@ -530,6 +533,9 @@ meta_compositor_manage (MetaCompositor *compositor)
+ * contents until we show the stage.
+ */
+ XMapWindow (xdisplay, compositor->output);
++
++ compositor->have_x11_sync_object =
++ meta_sync_ring_init (meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend)));
+ }
+
+ redirect_windows (display->screen);
+@@ -1044,11 +1050,12 @@ frame_callback (CoglOnscreen *onscreen,
+ }
+ }
+
+-static void
+-pre_paint_windows (MetaCompositor *compositor)
++static gboolean
++meta_pre_paint_func (gpointer data)
+ {
+ GList *l;
+ MetaWindowActor *top_window;
++ MetaCompositor *compositor = data;
+
+ if (compositor->onscreen == NULL)
+ {
+@@ -1060,7 +1067,7 @@ pre_paint_windows (MetaCompositor *compositor)
+ }
+
+ if (compositor->windows == NULL)
+- return;
++ return TRUE;
+
+ top_window = g_list_last (compositor->windows)->data;
+
+@@ -1077,10 +1084,12 @@ pre_paint_windows (MetaCompositor *compositor)
+ {
+ /* We need to make sure that any X drawing that happens before
+ * the XDamageSubtract() for each window above is visible to
+- * subsequent GL rendering; the only standardized way to do this
+- * is EXT_x11_sync_object, which isn't yet widely available. For
+- * now, we count on details of Xorg and the open source drivers,
+- * and hope for the best otherwise.
++ * subsequent GL rendering; the standardized way to do this is
++ * GL_EXT_X11_sync_object. Since this isn't implemented yet in
++ * mesa, we also have a path that relies on the implementation
++ * of the open source drivers.
++ *
++ * Anything else, we just hope for the best.
+ *
+ * Xorg and open source driver specifics:
+ *
+@@ -1095,17 +1104,28 @@ pre_paint_windows (MetaCompositor *compositor)
+ * round trip request at this point is sufficient to flush the
+ * GLX buffers.
+ */
+- XSync (compositor->display->xdisplay, False);
+-
+- compositor->frame_has_updated_xsurfaces = FALSE;
++ if (compositor->have_x11_sync_object)
++ compositor->have_x11_sync_object = meta_sync_ring_insert_wait ();
++ else
++ XSync (compositor->display->xdisplay, False);
+ }
++
++ return TRUE;
+ }
+
+ static gboolean
+-meta_repaint_func (gpointer data)
++meta_post_paint_func (gpointer data)
+ {
+ MetaCompositor *compositor = data;
+- pre_paint_windows (compositor);
++
++ if (compositor->frame_has_updated_xsurfaces)
++ {
++ if (compositor->have_x11_sync_object)
++ compositor->have_x11_sync_object = meta_sync_ring_after_frame ();
++
++ compositor->frame_has_updated_xsurfaces = FALSE;
++ }
++
+ return TRUE;
+ }
+
+@@ -1140,10 +1160,16 @@ meta_compositor_new (MetaDisplay *display)
+ G_CALLBACK (on_shadow_factory_changed),
+ compositor);
+
+- compositor->repaint_func_id = clutter_threads_add_repaint_func (meta_repaint_func,
+- compositor,
+- NULL);
+-
++ compositor->pre_paint_func_id =
++ clutter_threads_add_repaint_func_full (CLUTTER_REPAINT_FLAGS_PRE_PAINT,
++ meta_pre_paint_func,
++ compositor,
++ NULL);
++ compositor->post_paint_func_id =
++ clutter_threads_add_repaint_func_full (CLUTTER_REPAINT_FLAGS_POST_PAINT,
++ meta_post_paint_func,
++ compositor,
++ NULL);
+ return compositor;
+ }
+
+diff --git a/src/compositor/meta-sync-ring.c b/src/compositor/meta-sync-ring.c
+new file mode 100644
+index 0000000..4ee61f8
+--- /dev/null
++++ b/src/compositor/meta-sync-ring.c
+@@ -0,0 +1,566 @@
++/*
++ * This is based on an original C++ implementation for compiz that
++ * carries the following copyright notice:
++ *
++ *
++ * Copyright © 2011 NVIDIA Corporation
++ *
++ * Permission to use, copy, modify, distribute, and sell this software
++ * and its documentation for any purpose is hereby granted without
++ * fee, provided that the above copyright notice appear in all copies
++ * and that both that copyright notice and this permission notice
++ * appear in supporting documentation, and that the name of NVIDIA
++ * Corporation not be used in advertising or publicity pertaining to
++ * distribution of the software without specific, written prior
++ * permission. NVIDIA Corporation makes no representations about the
++ * suitability of this software for any purpose. It is provided "as
++ * is" without express or implied warranty.
++ *
++ * NVIDIA CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
++ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
++ * FITNESS, IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY
++ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
++ * SOFTWARE.
++ *
++ * Authors: James Jones <jajones@nvidia.com>
++ */
++
++#include <string.h>
++
++#include <GL/gl.h>
++#include <GL/glx.h>
++#include <X11/extensions/sync.h>
++
++#include <cogl/cogl.h>
++#include <clutter/clutter.h>
++
++#include <meta/util.h>
++
++#include "meta-sync-ring.h"
++
++/* Theory of operation:
++ *
++ * We use a ring of NUM_SYNCS fence objects. On each frame we advance
++ * to the next fence in the ring. For each fence we do:
++ *
++ * 1. fence is XSyncTriggerFence()'d and glWaitSync()'d
++ * 2. NUM_SYNCS / 2 frames later, fence should be triggered
++ * 3. fence is XSyncResetFence()'d
++ * 4. NUM_SYNCS / 2 frames later, fence should be reset
++ * 5. go back to 1 and re-use fence
++ *
++ * glClientWaitSync() and XAlarms are used in steps 2 and 4,
++ * respectively, to double-check the expectections.
++ */
++
++#define NUM_SYNCS 10
++#define MAX_SYNC_WAIT_TIME (1 * 1000 * 1000 * 1000) /* one sec */
++#define MAX_REBOOT_ATTEMPTS 2
++
++typedef enum
++{
++ META_SYNC_STATE_READY,
++ META_SYNC_STATE_WAITING,
++ META_SYNC_STATE_DONE,
++ META_SYNC_STATE_RESET_PENDING,
++} MetaSyncState;
++
++typedef struct
++{
++ Display *xdisplay;
++
++ XSyncFence xfence;
++ GLsync glsync;
++
++ XSyncCounter xcounter;
++ XSyncAlarm xalarm;
++ XSyncValue next_counter_value;
++
++ MetaSyncState state;
++} MetaSync;
++
++typedef struct
++{
++ Display *xdisplay;
++ int xsync_event_base;
++ int xsync_error_base;
++
++ GHashTable *alarm_to_sync;
++
++ MetaSync *syncs_array[NUM_SYNCS];
++ guint current_sync_idx;
++ MetaSync *current_sync;
++ guint warmup_syncs;
++
++ guint reboots;
++} MetaSyncRing;
++
++static MetaSyncRing meta_sync_ring = { 0 };
++
++static XSyncValue SYNC_VALUE_ZERO;
++static XSyncValue SYNC_VALUE_ONE;
++
++static const char* (*meta_gl_get_string) (GLenum name);
++static void (*meta_gl_get_integerv) (GLenum pname,
++ GLint *params);
++static const char* (*meta_gl_get_stringi) (GLenum name,
++ GLuint index);
++static void (*meta_gl_delete_sync) (GLsync sync);
++static GLenum (*meta_gl_client_wait_sync) (GLsync sync,
++ GLbitfield flags,
++ GLuint64 timeout);
++static void (*meta_gl_wait_sync) (GLsync sync,
++ GLbitfield flags,
++ GLuint64 timeout);
++static GLsync (*meta_gl_import_sync) (GLenum external_sync_type,
++ GLintptr external_sync,
++ GLbitfield flags);
++
++static MetaSyncRing *
++meta_sync_ring_get (void)
++{
++ if (meta_sync_ring.reboots > MAX_REBOOT_ATTEMPTS)
++ return NULL;
++
++ return &meta_sync_ring;
++}
++
++static gboolean
++load_gl_symbol (const char *name,
++ void **func)
++{
++ *func = cogl_get_proc_address (name);
++ if (!*func)
++ {
++ meta_verbose ("MetaSyncRing: failed to resolve required GL symbol \"%s\"\n", name);
++ return FALSE;
++ }
++ return TRUE;
++}
++
++static gboolean
++check_gl_extensions (void)
++{
++ ClutterBackend *backend;
++ CoglContext *cogl_context;
++ CoglDisplay *cogl_display;
++ CoglRenderer *cogl_renderer;
++
++ backend = clutter_get_default_backend ();
++ cogl_context = clutter_backend_get_cogl_context (backend);
++ cogl_display = cogl_context_get_display (cogl_context);
++ cogl_renderer = cogl_display_get_renderer (cogl_display);
++
++ switch (cogl_renderer_get_driver (cogl_renderer))
++ {
++ case COGL_DRIVER_GL3:
++ {
++ int num_extensions, i;
++ gboolean arb_sync = FALSE;
++ gboolean x11_sync_object = FALSE;
++
++ meta_gl_get_integerv (GL_NUM_EXTENSIONS, &num_extensions);
++
++ for (i = 0; i < num_extensions; ++i)
++ {
++ const char *ext = meta_gl_get_stringi (GL_EXTENSIONS, i);
++
++ if (g_strcmp0 ("GL_ARB_sync", ext) == 0)
++ arb_sync = TRUE;
++ else if (g_strcmp0 ("GL_EXT_x11_sync_object", ext) == 0)
++ x11_sync_object = TRUE;
++ }
++
++ return arb_sync && x11_sync_object;
++ }
++ case COGL_DRIVER_GL:
++ {
++ const char *extensions = meta_gl_get_string (GL_EXTENSIONS);
++ return (extensions != NULL &&
++ strstr (extensions, "GL_ARB_sync") != NULL &&
++ strstr (extensions, "GL_EXT_x11_sync_object") != NULL);
++ }
++ default:
++ break;
++ }
++
++ return FALSE;
++}
++
++static gboolean
++load_required_symbols (void)
++{
++ static gboolean success = FALSE;
++
++ if (success)
++ return TRUE;
++
++ /* We don't link against libGL directly because cogl may want to
++ * use something else. This assumes that cogl has been initialized
++ * and dynamically loaded libGL at this point.
++ */
++
++ if (!load_gl_symbol ("glGetString", (void **) &meta_gl_get_string))
++ goto out;
++ if (!load_gl_symbol ("glGetIntegerv", (void **) &meta_gl_get_integerv))
++ goto out;
++ if (!load_gl_symbol ("glGetStringi", (void **) &meta_gl_get_stringi))
++ goto out;
++
++ if (!check_gl_extensions ())
++ {
++ meta_verbose ("MetaSyncRing: couldn't find required GL extensions\n");
++ goto out;
++ }
++
++ if (!load_gl_symbol ("glDeleteSync", (void **) &meta_gl_delete_sync))
++ goto out;
++ if (!load_gl_symbol ("glClientWaitSync", (void **) &meta_gl_client_wait_sync))
++ goto out;
++ if (!load_gl_symbol ("glWaitSync", (void **) &meta_gl_wait_sync))
++ goto out;
++ if (!load_gl_symbol ("glImportSyncEXT", (void **) &meta_gl_import_sync))
++ goto out;
++
++ success = TRUE;
++ out:
++ return success;
++}
++
++static void
++meta_sync_insert (MetaSync *self)
++{
++ g_return_if_fail (self->state == META_SYNC_STATE_READY);
++
++ XSyncTriggerFence (self->xdisplay, self->xfence);
++ XFlush (self->xdisplay);
++
++ meta_gl_wait_sync (self->glsync, 0, GL_TIMEOUT_IGNORED);
++
++ self->state = META_SYNC_STATE_WAITING;
++}
++
++static GLenum
++meta_sync_check_update_finished (MetaSync *self,
++ GLuint64 timeout)
++{
++ GLenum status = GL_WAIT_FAILED;
++
++ switch (self->state)
++ {
++ case META_SYNC_STATE_DONE:
++ status = GL_ALREADY_SIGNALED;
++ break;
++ case META_SYNC_STATE_WAITING:
++ status = meta_gl_client_wait_sync (self->glsync, 0, timeout);
++ if (status == GL_ALREADY_SIGNALED || status == GL_CONDITION_SATISFIED)
++ self->state = META_SYNC_STATE_DONE;
++ break;
++ default:
++ break;
++ }
++
++ g_warn_if_fail (status != GL_WAIT_FAILED);
++
++ return status;
++}
++
++static void
++meta_sync_reset (MetaSync *self)
++{
++ XSyncAlarmAttributes attrs;
++ int overflow;
++
++ g_return_if_fail (self->state == META_SYNC_STATE_DONE);
++
++ XSyncResetFence (self->xdisplay, self->xfence);
++
++ attrs.trigger.wait_value = self->next_counter_value;
++
++ XSyncChangeAlarm (self->xdisplay, self->xalarm, XSyncCAValue, &attrs);
++ XSyncSetCounter (self->xdisplay, self->xcounter, self->next_counter_value);
++
++ XSyncValueAdd (&self->next_counter_value,
++ self->next_counter_value,
++ SYNC_VALUE_ONE,
++ &overflow);
++
++ self->state = META_SYNC_STATE_RESET_PENDING;
++}
++
++static void
++meta_sync_handle_event (MetaSync *self,
++ XSyncAlarmNotifyEvent *event)
++{
++ g_return_if_fail (event->alarm == self->xalarm);
++ g_return_if_fail (self->state == META_SYNC_STATE_RESET_PENDING);
++
++ self->state = META_SYNC_STATE_READY;
++}
++
++static MetaSync *
++meta_sync_new (Display *xdisplay)
++{
++ MetaSync *self;
++ XSyncAlarmAttributes attrs;
++
++ self = g_malloc0 (sizeof (MetaSync));
++
++ self->xdisplay = xdisplay;
++
++ self->xfence = XSyncCreateFence (xdisplay, DefaultRootWindow (xdisplay), FALSE);
++ self->glsync = meta_gl_import_sync (GL_SYNC_X11_FENCE_EXT, self->xfence, 0);
++
++ self->xcounter = XSyncCreateCounter (xdisplay, SYNC_VALUE_ZERO);
++
++ attrs.trigger.counter = self->xcounter;
++ attrs.trigger.value_type = XSyncAbsolute;
++ attrs.trigger.wait_value = SYNC_VALUE_ONE;
++ attrs.trigger.test_type = XSyncPositiveTransition;
++ attrs.events = TRUE;
++ self->xalarm = XSyncCreateAlarm (xdisplay,
++ XSyncCACounter |
++ XSyncCAValueType |
++ XSyncCAValue |
++ XSyncCATestType |
++ XSyncCAEvents,
++ &attrs);
++
++ XSyncIntToValue (&self->next_counter_value, 1);
++
++ self->state = META_SYNC_STATE_READY;
++
++ return self;
++}
++
++static Bool
++alarm_event_predicate (Display *dpy,
++ XEvent *event,
++ XPointer data)
++{
++ MetaSyncRing *ring = meta_sync_ring_get ();
++
++ if (!ring)
++ return False;
++
++ if (event->type == ring->xsync_event_base + XSyncAlarmNotify)
++ {
++ if (((MetaSync *) data)->xalarm == ((XSyncAlarmNotifyEvent *) event)->alarm)
++ return True;
++ }
++ return False;
++}
++
++static void
++meta_sync_free (MetaSync *self)
++{
++ /* When our assumptions don't hold, something has gone wrong but we
++ * don't know what, so we reboot the ring. While doing that, we
++ * trigger fences before deleting them to try to get ourselves out
++ * of a potentially stuck GPU state.
++ */
++ switch (self->state)
++ {
++ case META_SYNC_STATE_WAITING:
++ case META_SYNC_STATE_DONE:
++ /* nothing to do */
++ break;
++ case META_SYNC_STATE_RESET_PENDING:
++ {
++ XEvent event;
++ XIfEvent (self->xdisplay, &event, alarm_event_predicate, (XPointer) self);
++ meta_sync_handle_event (self, (XSyncAlarmNotifyEvent *) &event);
++ }
++ /* fall through */
++ case META_SYNC_STATE_READY:
++ XSyncTriggerFence (self->xdisplay, self->xfence);
++ XFlush (self->xdisplay);
++ break;
++ default:
++ break;
++ }
++
++ meta_gl_delete_sync (self->glsync);
++ XSyncDestroyFence (self->xdisplay, self->xfence);
++ XSyncDestroyCounter (self->xdisplay, self->xcounter);
++ XSyncDestroyAlarm (self->xdisplay, self->xalarm);
++
++ g_free (self);
++}
++
++gboolean
++meta_sync_ring_init (Display *xdisplay)
++{
++ gint major, minor;
++ guint i;
++ MetaSyncRing *ring = meta_sync_ring_get ();
++
++ if (!ring)
++ return FALSE;
++
++ g_return_val_if_fail (xdisplay != NULL, FALSE);
++ g_return_val_if_fail (ring->xdisplay == NULL, FALSE);
++
++ if (!load_required_symbols ())
++ return FALSE;
++
++ if (!XSyncQueryExtension (xdisplay, &ring->xsync_event_base, &ring->xsync_error_base) ||
++ !XSyncInitialize (xdisplay, &major, &minor))
++ return FALSE;
++
++ XSyncIntToValue (&SYNC_VALUE_ZERO, 0);
++ XSyncIntToValue (&SYNC_VALUE_ONE, 1);
++
++ ring->xdisplay = xdisplay;
++
++ ring->alarm_to_sync = g_hash_table_new (NULL, NULL);
++
++ for (i = 0; i < NUM_SYNCS; ++i)
++ {
++ MetaSync *sync = meta_sync_new (ring->xdisplay);
++ ring->syncs_array[i] = sync;
++ g_hash_table_replace (ring->alarm_to_sync, (gpointer) sync->xalarm, sync);
++ }
++
++ ring->current_sync_idx = 0;
++ ring->current_sync = ring->syncs_array[0];
++ ring->warmup_syncs = 0;
++
++ return TRUE;
++}
++
++void
++meta_sync_ring_destroy (void)
++{
++ guint i;
++ MetaSyncRing *ring = meta_sync_ring_get ();
++
++ if (!ring)
++ return;
++
++ g_return_if_fail (ring->xdisplay != NULL);
++
++ ring->current_sync_idx = 0;
++ ring->current_sync = NULL;
++ ring->warmup_syncs = 0;
++
++ for (i = 0; i < NUM_SYNCS; ++i)
++ meta_sync_free (ring->syncs_array[i]);
++
++ g_hash_table_destroy (ring->alarm_to_sync);
++
++ ring->xsync_event_base = 0;
++ ring->xsync_error_base = 0;
++ ring->xdisplay = NULL;
++}
++
++static gboolean
++meta_sync_ring_reboot (Display *xdisplay)
++{
++ MetaSyncRing *ring = meta_sync_ring_get ();
++
++ if (!ring)
++ return FALSE;
++
++ meta_sync_ring_destroy ();
++
++ ring->reboots += 1;
++
++ if (!meta_sync_ring_get ())
++ {
++ meta_warning ("MetaSyncRing: Too many reboots -- disabling\n");
++ return FALSE;
++ }
++
++ return meta_sync_ring_init (xdisplay);
++}
++
++gboolean
++meta_sync_ring_after_frame (void)
++{
++ MetaSyncRing *ring = meta_sync_ring_get ();
++
++ if (!ring)
++ return FALSE;
++
++ g_return_if_fail (ring->xdisplay != NULL);
++
++ if (ring->warmup_syncs >= NUM_SYNCS / 2)
++ {
++ guint reset_sync_idx = (ring->current_sync_idx + NUM_SYNCS - (NUM_SYNCS / 2)) % NUM_SYNCS;
++ MetaSync *sync_to_reset = ring->syncs_array[reset_sync_idx];
++
++ GLenum status = meta_sync_check_update_finished (sync_to_reset, 0);
++ if (status == GL_TIMEOUT_EXPIRED)
++ {
++ meta_warning ("MetaSyncRing: We should never wait for a sync -- add more syncs?\n");
++ status = meta_sync_check_update_finished (sync_to_reset, MAX_SYNC_WAIT_TIME);
++ }
++
++ if (status != GL_ALREADY_SIGNALED && status != GL_CONDITION_SATISFIED)
++ {
++ meta_warning ("MetaSyncRing: Timed out waiting for sync object.\n");
++ return meta_sync_ring_reboot (ring->xdisplay);
++ }
++
++ meta_sync_reset (sync_to_reset);
++ }
++ else
++ {
++ ring->warmup_syncs += 1;
++ }
++
++ ring->current_sync_idx += 1;
++ ring->current_sync_idx %= NUM_SYNCS;
++
++ ring->current_sync = ring->syncs_array[ring->current_sync_idx];
++
++ return TRUE;
++}
++
++gboolean
++meta_sync_ring_insert_wait (void)
++{
++ MetaSyncRing *ring = meta_sync_ring_get ();
++
++ if (!ring)
++ return FALSE;
++
++ g_return_if_fail (ring->xdisplay != NULL);
++
++ if (ring->current_sync->state != META_SYNC_STATE_READY)
++ {
++ meta_warning ("MetaSyncRing: Sync object is not ready -- were events handled properly?\n");
++ if (!meta_sync_ring_reboot (ring->xdisplay))
++ return FALSE;
++ }
++
++ meta_sync_insert (ring->current_sync);
++
++ return TRUE;
++}
++
++void
++meta_sync_ring_handle_event (XEvent *xevent)
++{
++ XSyncAlarmNotifyEvent *event;
++ MetaSync *sync;
++ MetaSyncRing *ring = meta_sync_ring_get ();
++
++ if (!ring)
++ return;
++
++ g_return_if_fail (ring->xdisplay != NULL);
++
++ if (xevent->type != (ring->xsync_event_base + XSyncAlarmNotify))
++ return;
++
++ event = (XSyncAlarmNotifyEvent *) xevent;
++
++ sync = g_hash_table_lookup (ring->alarm_to_sync, (gpointer) event->alarm);
++ if (sync)
++ meta_sync_handle_event (sync, event);
++}
+diff --git a/src/compositor/meta-sync-ring.h b/src/compositor/meta-sync-ring.h
+new file mode 100644
+index 0000000..6dca8ef
+--- /dev/null
++++ b/src/compositor/meta-sync-ring.h
+@@ -0,0 +1,14 @@
++#ifndef _META_SYNC_RING_H_
++#define _META_SYNC_RING_H_
++
++#include <glib.h>
++
++#include <X11/Xlib.h>
++
++gboolean meta_sync_ring_init (Display *dpy);
++void meta_sync_ring_destroy (void);
++gboolean meta_sync_ring_after_frame (void);
++gboolean meta_sync_ring_insert_wait (void);
++void meta_sync_ring_handle_event (XEvent *event);
++
++#endif /* _META_SYNC_RING_H_ */
+--
+cgit v0.10.2
+
diff --git a/x11-wm/mutter/files/mutter-3.16.3-crash-border.patch b/x11-wm/mutter/files/mutter-3.16.3-crash-border.patch
new file mode 100644
index 0000000000..9cbd0d06e4
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-3.16.3-crash-border.patch
@@ -0,0 +1,32 @@
+From f60c33b5afc4b1dff0b31f17d7ae222db8aa789f Mon Sep 17 00:00:00 2001
+From: Marek Chalupa <mchqwerty@gmail.com>
+Date: Fri, 3 Jul 2015 11:28:00 +0200
+Subject: frames: handle META_FRAME_CONTROL_NONE on left click
+
+We can get this operation in some cases, for example when
+we're trying to resize window that cannot be resized.
+This can occur with maximized windows that have a border
+(without border we couldn't resize them by mouse in maximized state).
+In this case we reached abort() beacuse we did not handle this op.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=751884
+
+diff --git a/src/ui/frames.c b/src/ui/frames.c
+index 362d7b6..a2f7f45 100644
+--- a/src/ui/frames.c
++++ b/src/ui/frames.c
+@@ -1053,6 +1053,11 @@ meta_frame_left_click_event (MetaUIFrame *frame,
+ }
+
+ return TRUE;
++ case META_FRAME_CONTROL_NONE:
++ /* We can get this for example when trying to resize window
++ * that cannot be resized (e. g. it is maximized and the theme
++ * currently used has borders for maximized windows), see #751884 */
++ return FALSE;
+ default:
+ g_assert_not_reached ();
+ }
+--
+cgit v0.10.2
+
diff --git a/x11-wm/mutter/files/mutter-3.16.3-fallback-keymap.patch b/x11-wm/mutter/files/mutter-3.16.3-fallback-keymap.patch
new file mode 100644
index 0000000000..f77234ba3b
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-3.16.3-fallback-keymap.patch
@@ -0,0 +1,28 @@
+From 9abc0712836c9e56ed08796645874cc0d10b1826 Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos@gmail.com>
+Date: Mon, 21 Sep 2015 17:25:40 +0200
+Subject: backend-x11: Fallback to a default keymap if getting it from X fails
+
+This shouldn't fail but apparently sometimes it does and in that case
+having a possibly wrong idea of the keymap is still better than
+crashing.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=754979
+
+diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c
+index 7ad28fd..dbcd13f 100644
+--- a/src/backends/x11/meta-backend-x11.c
++++ b/src/backends/x11/meta-backend-x11.c
+@@ -760,6 +760,9 @@ meta_backend_x11_get_keymap (MetaBackend *backend)
+ priv->xcb,
+ xkb_x11_get_core_keyboard_device_id (priv->xcb),
+ XKB_KEYMAP_COMPILE_NO_FLAGS);
++ if (priv->keymap == NULL)
++ priv->keymap = xkb_keymap_new_from_names (context, NULL, XKB_KEYMAP_COMPILE_NO_FLAGS);
++
+ xkb_context_unref (context);
+ }
+
+--
+cgit v0.10.2
+
diff --git a/x11-wm/mutter/files/mutter-3.16.3-fix-race.patch b/x11-wm/mutter/files/mutter-3.16.3-fix-race.patch
new file mode 100644
index 0000000000..a0b493b64f
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-3.16.3-fix-race.patch
@@ -0,0 +1,114 @@
+From c77e482b60bea40a422691b16af02a429d9c2edc Mon Sep 17 00:00:00 2001
+From: Aaron Plattner <aplattner@nvidia.com>
+Date: Mon, 3 Aug 2015 21:15:15 -0700
+Subject: compositor: Fix GL_EXT_x11_sync_object race condition
+
+The compositor maintains a ring of shared fences with the X server in order to
+properly synchronize rendering between the X server and the compositor's GPU
+channel. When all of the fences have been used, the compositor needs to reset
+one so that it can be reused. It does this by first waiting on the CPU for the
+fence to become triggered, and then sending a request to the X server to reset
+the fence.
+
+If the compositor's GPU channel is busy processing other work (e.g. the desktop
+switcher animation), then the X server may process the reset request before the
+GPU has consumed the fence. This causes the GPU channel to hang.
+
+Fix the problem by having the compositor's GPU channel trigger its own fence
+after waiting for the X server's fence. Wait for that fence on the CPU before
+sending the reset request to the X server. This ensures that the GPU has
+consumed the X11 fence before the server resets it.
+
+Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
+
+https://bugzilla.gnome.org/show_bug.cgi?id=728464
+
+diff --git a/src/compositor/meta-sync-ring.c b/src/compositor/meta-sync-ring.c
+index 4ee61f8..44b1c41 100644
+--- a/src/compositor/meta-sync-ring.c
++++ b/src/compositor/meta-sync-ring.c
+@@ -73,7 +73,8 @@ typedef struct
+ Display *xdisplay;
+
+ XSyncFence xfence;
+- GLsync glsync;
++ GLsync gl_x11_sync;
++ GLsync gpu_fence;
+
+ XSyncCounter xcounter;
+ XSyncAlarm xalarm;
+@@ -118,6 +119,8 @@ static void (*meta_gl_wait_sync) (GLsync sync,
+ static GLsync (*meta_gl_import_sync) (GLenum external_sync_type,
+ GLintptr external_sync,
+ GLbitfield flags);
++static GLsync (*meta_gl_fence_sync) (GLenum condition,
++ GLbitfield flags);
+
+ static MetaSyncRing *
+ meta_sync_ring_get (void)
+@@ -224,6 +227,8 @@ load_required_symbols (void)
+ goto out;
+ if (!load_gl_symbol ("glImportSyncEXT", (void **) &meta_gl_import_sync))
+ goto out;
++ if (!load_gl_symbol ("glFenceSync", (void **) &meta_gl_fence_sync))
++ goto out;
+
+ success = TRUE;
+ out:
+@@ -238,7 +243,8 @@ meta_sync_insert (MetaSync *self)
+ XSyncTriggerFence (self->xdisplay, self->xfence);
+ XFlush (self->xdisplay);
+
+- meta_gl_wait_sync (self->glsync, 0, GL_TIMEOUT_IGNORED);
++ meta_gl_wait_sync (self->gl_x11_sync, 0, GL_TIMEOUT_IGNORED);
++ self->gpu_fence = meta_gl_fence_sync (GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
+
+ self->state = META_SYNC_STATE_WAITING;
+ }
+@@ -255,9 +261,13 @@ meta_sync_check_update_finished (MetaSync *self,
+ status = GL_ALREADY_SIGNALED;
+ break;
+ case META_SYNC_STATE_WAITING:
+- status = meta_gl_client_wait_sync (self->glsync, 0, timeout);
++ status = meta_gl_client_wait_sync (self->gpu_fence, 0, timeout);
+ if (status == GL_ALREADY_SIGNALED || status == GL_CONDITION_SATISFIED)
+- self->state = META_SYNC_STATE_DONE;
++ {
++ self->state = META_SYNC_STATE_DONE;
++ meta_gl_delete_sync (self->gpu_fence);
++ self->gpu_fence = 0;
++ }
+ break;
+ default:
+ break;
+@@ -312,7 +322,8 @@ meta_sync_new (Display *xdisplay)
+ self->xdisplay = xdisplay;
+
+ self->xfence = XSyncCreateFence (xdisplay, DefaultRootWindow (xdisplay), FALSE);
+- self->glsync = meta_gl_import_sync (GL_SYNC_X11_FENCE_EXT, self->xfence, 0);
++ self->gl_x11_sync = meta_gl_import_sync (GL_SYNC_X11_FENCE_EXT, self->xfence, 0);
++ self->gpu_fence = 0;
+
+ self->xcounter = XSyncCreateCounter (xdisplay, SYNC_VALUE_ZERO);
+
+@@ -365,6 +376,8 @@ meta_sync_free (MetaSync *self)
+ switch (self->state)
+ {
+ case META_SYNC_STATE_WAITING:
++ meta_gl_delete_sync (self->gpu_fence);
++ break;
+ case META_SYNC_STATE_DONE:
+ /* nothing to do */
+ break;
+@@ -383,7 +396,7 @@ meta_sync_free (MetaSync *self)
+ break;
+ }
+
+- meta_gl_delete_sync (self->glsync);
++ meta_gl_delete_sync (self->gl_x11_sync);
+ XSyncDestroyFence (self->xdisplay, self->xfence);
+ XSyncDestroyCounter (self->xdisplay, self->xcounter);
+ XSyncDestroyAlarm (self->xdisplay, self->xalarm);
+--
+cgit v0.10.2
+
diff --git a/x11-wm/mutter/files/mutter-3.16.3-fix-return.patch b/x11-wm/mutter/files/mutter-3.16.3-fix-return.patch
new file mode 100644
index 0000000000..2898d52388
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-3.16.3-fix-return.patch
@@ -0,0 +1,32 @@
+From a54b1261d3ec5ccf7a8262c88557b6b952bc8a2e Mon Sep 17 00:00:00 2001
+From: Ting-Wei Lan <lantw@src.gnome.org>
+Date: Sat, 8 Aug 2015 20:12:09 +0800
+Subject: build: Fix return value in meta-sync-ring.c
+
+https://bugzilla.gnome.org/show_bug.cgi?id=753380
+
+diff --git a/src/compositor/meta-sync-ring.c b/src/compositor/meta-sync-ring.c
+index 44b1c41..217ebe5 100644
+--- a/src/compositor/meta-sync-ring.c
++++ b/src/compositor/meta-sync-ring.c
+@@ -499,7 +499,7 @@ meta_sync_ring_after_frame (void)
+ if (!ring)
+ return FALSE;
+
+- g_return_if_fail (ring->xdisplay != NULL);
++ g_return_val_if_fail (ring->xdisplay != NULL, FALSE);
+
+ if (ring->warmup_syncs >= NUM_SYNCS / 2)
+ {
+@@ -542,7 +542,7 @@ meta_sync_ring_insert_wait (void)
+ if (!ring)
+ return FALSE;
+
+- g_return_if_fail (ring->xdisplay != NULL);
++ g_return_val_if_fail (ring->xdisplay != NULL, FALSE);
+
+ if (ring->current_sync->state != META_SYNC_STATE_READY)
+ {
+--
+cgit v0.10.2
+
diff --git a/x11-wm/mutter/files/mutter-3.16.3-flickering.patch b/x11-wm/mutter/files/mutter-3.16.3-flickering.patch
new file mode 100644
index 0000000000..6267a4e333
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-3.16.3-flickering.patch
@@ -0,0 +1,114 @@
+From 916070cc7218cc80f4565ea265b0dd6e5e93cb98 Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos@gmail.com>
+Date: Wed, 12 Aug 2015 15:26:34 +0200
+Subject: compositor: Handle fences in the frontend X connection
+
+Since mutter has two X connections and does damage handling on the
+frontend while fence triggering is done on the backend, we have a race
+between XDamageSubtract() and XSyncFenceTrigger() causing missed
+redraws in the GL_EXT_X11_sync_object path.
+
+If the fence trigger gets processed first by the server, any client
+drawing that happens between that and the damage subtract being
+processed and is completely contained in the last damage event box
+that mutter got, won't be included in the current frame nor will it
+cause a new damage event.
+
+A simple fix for this would be XSync()ing on the frontend connection
+after doing all the damage subtracts but that would add a round trip
+on every frame again which defeats the asynchronous design of X
+fences.
+
+Instead, if we move fence handling to the frontend we automatically
+get the right ordering between damage subtracts and fence triggers.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=728464
+
+diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c
+index ac38ffc..3ff8431 100644
+--- a/src/backends/x11/meta-backend-x11.c
++++ b/src/backends/x11/meta-backend-x11.c
+@@ -45,7 +45,6 @@
+ #include <meta/util.h>
+ #include "display-private.h"
+ #include "compositor/compositor-private.h"
+-#include "compositor/meta-sync-ring.h"
+
+ struct _MetaBackendX11Private
+ {
+@@ -256,8 +255,6 @@ handle_host_xevent (MetaBackend *backend,
+ MetaCompositor *compositor = display->compositor;
+ if (meta_plugin_manager_xevent_filter (compositor->plugin_mgr, event))
+ bypass_clutter = TRUE;
+- if (compositor->have_x11_sync_object)
+- meta_sync_ring_handle_event (event);
+ }
+ }
+
+diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
+index 554faa1..2e182c2 100644
+--- a/src/compositor/compositor.c
++++ b/src/compositor/compositor.c
+@@ -534,8 +534,7 @@ meta_compositor_manage (MetaCompositor *compositor)
+ */
+ XMapWindow (xdisplay, compositor->output);
+
+- compositor->have_x11_sync_object =
+- meta_sync_ring_init (meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend)));
++ compositor->have_x11_sync_object = meta_sync_ring_init (xdisplay);
+ }
+
+ redirect_windows (display->screen);
+@@ -737,6 +736,9 @@ meta_compositor_process_event (MetaCompositor *compositor,
+ process_damage (compositor, (XDamageNotifyEvent *) event, window);
+ }
+
++ if (compositor->have_x11_sync_object)
++ meta_sync_ring_handle_event (event);
++
+ /* Clutter needs to know about MapNotify events otherwise it will
+ think the stage is invisible */
+ if (!meta_is_wayland_compositor () && event->type == MapNotify)
+diff --git a/src/compositor/meta-sync-ring.c b/src/compositor/meta-sync-ring.c
+index 217ebe5..336ccd4 100644
+--- a/src/compositor/meta-sync-ring.c
++++ b/src/compositor/meta-sync-ring.c
+@@ -322,7 +322,7 @@ meta_sync_new (Display *xdisplay)
+ self->xdisplay = xdisplay;
+
+ self->xfence = XSyncCreateFence (xdisplay, DefaultRootWindow (xdisplay), FALSE);
+- self->gl_x11_sync = meta_gl_import_sync (GL_SYNC_X11_FENCE_EXT, self->xfence, 0);
++ self->gl_x11_sync = 0;
+ self->gpu_fence = 0;
+
+ self->xcounter = XSyncCreateCounter (xdisplay, SYNC_VALUE_ZERO);
+@@ -347,6 +347,13 @@ meta_sync_new (Display *xdisplay)
+ return self;
+ }
+
++static void
++meta_sync_import (MetaSync *self)
++{
++ g_return_if_fail (self->gl_x11_sync == 0);
++ self->gl_x11_sync = meta_gl_import_sync (GL_SYNC_X11_FENCE_EXT, self->xfence, 0);
++}
++
+ static Bool
+ alarm_event_predicate (Display *dpy,
+ XEvent *event,
+@@ -437,6 +444,12 @@ meta_sync_ring_init (Display *xdisplay)
+ ring->syncs_array[i] = sync;
+ g_hash_table_replace (ring->alarm_to_sync, (gpointer) sync->xalarm, sync);
+ }
++ /* Since the connection we create the X fences on isn't the same as
++ * the one used for the GLX context, we need to XSync() here to
++ * ensure glImportSync() succeeds. */
++ XSync (xdisplay, False);
++ for (i = 0; i < NUM_SYNCS; ++i)
++ meta_sync_import (ring->syncs_array[i]);
+
+ ring->current_sync_idx = 0;
+ ring->current_sync = ring->syncs_array[0];
+--
+cgit v0.10.2
+
diff --git a/x11-wm/mutter/mutter-3.16.2.ebuild b/x11-wm/mutter/mutter-3.16.2.ebuild
deleted file mode 100644
index c464ffd720..0000000000
--- a/x11-wm/mutter/mutter-3.16.2.ebuild
+++ /dev/null
@@ -1,91 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-GCONF_DEBUG="yes"
-
-inherit eutils gnome2
-
-DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
-HOMEPAGE="https://git.gnome.org/browse/mutter/"
-
-LICENSE="GPL-2+"
-SLOT="0"
-IUSE="+introspection +kms test wayland"
-KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-
-# libXi-1.7.4 or newer needed per:
-# https://bugzilla.gnome.org/show_bug.cgi?id=738944
-COMMON_DEPEND="
- >=x11-libs/pango-1.2[X,introspection?]
- >=x11-libs/cairo-1.10[X]
- >=x11-libs/gtk+-3.9.11:3[X,introspection?]
- >=dev-libs/glib-2.36.0:2[dbus]
- >=media-libs/clutter-1.21.3:1.0[introspection?]
- >=media-libs/cogl-1.17.1:1.0=[introspection?]
- >=media-libs/libcanberra-0.26[gtk3]
- >=x11-libs/startup-notification-0.7
- >=x11-libs/libXcomposite-0.2
- >=gnome-base/gsettings-desktop-schemas-3.15.92[introspection?]
- gnome-base/gnome-desktop:3=
- >sys-power/upower-0.99:=
-
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- >=x11-libs/libXcomposite-0.2
- x11-libs/libXcursor
- x11-libs/libXdamage
- x11-libs/libXext
- x11-libs/libXfixes
- >=x11-libs/libXi-1.7.4
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libXrender
- x11-libs/libxcb
- x11-libs/libxkbfile
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-misc/xkeyboard-config
-
- gnome-extra/zenity
-
- introspection? ( >=dev-libs/gobject-introspection-1.42:= )
- kms? (
- dev-libs/libinput
- >=media-libs/clutter-1.20[egl]
- media-libs/cogl:1.0=[kms]
- >=media-libs/mesa-10.3[gbm]
- sys-apps/systemd
- virtual/libgudev
- x11-libs/libdrm:= )
- wayland? (
- >=dev-libs/wayland-1.6.90
- >=media-libs/clutter-1.20[wayland]
- x11-base/xorg-server[wayland] )
-"
-DEPEND="${COMMON_DEPEND}
- >=dev-util/gtk-doc-am-1.15
- >=dev-util/intltool-0.41
- sys-devel/gettext
- virtual/pkgconfig
- x11-proto/xextproto
- x11-proto/xineramaproto
- x11-proto/xproto
- test? ( app-text/docbook-xml-dtd:4.5 )
-"
-RDEPEND="${COMMON_DEPEND}
- !x11-misc/expocity
-"
-
-src_configure() {
- gnome2_src_configure \
- --disable-static \
- --enable-sm \
- --enable-startup-notification \
- --enable-verbose-mode \
- --with-libcanberra \
- $(use_enable introspection) \
- $(use_enable kms native-backend) \
- $(use_enable wayland)
-}
diff --git a/x11-wm/mutter/mutter-3.16.2-r1.ebuild b/x11-wm/mutter/mutter-3.16.3-r1.ebuild
index 19d40dcfb7..76f8ab6019 100644
--- a/x11-wm/mutter/mutter-3.16.2-r1.ebuild
+++ b/x11-wm/mutter/mutter-3.16.3-r1.ebuild
@@ -5,7 +5,7 @@
EAPI="5"
GCONF_DEBUG="yes"
-inherit eutils gnome2
+inherit autotools eutils gnome2
DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
HOMEPAGE="https://git.gnome.org/browse/mutter/"
@@ -79,8 +79,25 @@ RDEPEND="${COMMON_DEPEND}
"
src_prepare() {
- # surface-actor-x11: Make sure to set a size when unredirected (from 3.16 branch)
- epatch "${FILESDIR}"/${P}-size-unredirected.patch
+ # Fallback to a default keymap if getting it from X fails (from 'master')
+ epatch "${FILESDIR}"/${PN}-3.16.3-fallback-keymap.patch
+
+ # frames: handle META_FRAME_CONTROL_NONE on left click (from '3.16')
+ epatch "${FILESDIR}"/${P}-crash-border.patch
+
+ # compositor: Add support for GL_EXT_x11_sync_object (from '3.16')
+ epatch "${FILESDIR}"/${P}-GL_EXT_x11_sync_object.patch
+
+ # compositor: Fix GL_EXT_x11_sync_object race condition (from '3.16')
+ epatch "${FILESDIR}"/${P}-fix-race.patch
+
+ # build: Fix return value in meta-sync-ring.c (from '3.16')
+ epatch "${FILESDIR}"/${P}-fix-return.patch
+
+ # compositor: Handle fences in the frontend X connection (from '3.16')
+ epatch "${FILESDIR}"/${P}-flickering.patch
+
+ eautoreconf
gnome2_src_prepare
}
diff --git a/x11-wm/page/page-1.9.6.ebuild b/x11-wm/page/page-1.9.6-r1.ebuild
index a327826e20..a2341d8215 100644
--- a/x11-wm/page/page-1.9.6.ebuild
+++ b/x11-wm/page/page-1.9.6-r1.ebuild
@@ -4,8 +4,6 @@
EAPI="5"
-inherit eutils
-
DESCRIPTION="A mouse friendly tiling window manager"
HOMEPAGE="http://www.hzog.net/index.php/Main_Page"
SRC_URI="http://www.hzog.net/pub/${P}.tar.gz"
@@ -30,6 +28,8 @@ DEPEND="x11-proto/xcb-proto
x11-libs/libXrender
x11-libs/libXext
x11-proto/xextproto
- x11-libs/cairo
+ x11-libs/cairo[xcb]
x11-libs/pango
dev-libs/glib"
+
+RDEPEND="!dev-tcltk/tcllib"
diff --git a/x11-wm/page/page-1.9.6-r2.ebuild b/x11-wm/page/page-1.9.6-r2.ebuild
new file mode 100644
index 0000000000..ca5672cef9
--- /dev/null
+++ b/x11-wm/page/page-1.9.6-r2.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+DESCRIPTION="A mouse friendly tiling window manager"
+HOMEPAGE="http://www.hzog.net/index.php/Main_Page"
+SRC_URI="http://www.hzog.net/pub/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="x11-proto/xcb-proto
+ x11-libs/libxcb
+ x11-libs/xcb-util
+ x11-libs/libXfixes
+ x11-libs/libXdamage
+ x11-proto/damageproto
+ x11-proto/randrproto
+ x11-libs/libXrandr
+ x11-proto/xproto
+ x11-proto/fixesproto
+ x11-proto/compositeproto
+ x11-libs/libXcomposite
+ x11-proto/renderproto
+ x11-libs/libXrender
+ x11-libs/libXext
+ x11-proto/xextproto
+ x11-libs/cairo[xcb]
+ x11-libs/pango
+ dev-libs/glib"
+
+RDEPEND="${DEPEND}
+ !dev-tcltk/tcllib"