diff options
Diffstat (limited to 'x11-wm')
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" |