commit:     4a66f9332d11141200acb82fa4d1a39cb7b12280
Author:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 27 22:31:20 2019 +0000
Commit:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Wed Feb 27 23:57:19 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4a66f933

x11-wm/mutter: bump to 3.28.3, support elogind for wayland

Upstream added initial elogind support in 3.28, so just hook it up.
This is currently only used for native KMS renderer builds, which
are only enabled with USE=wayland.
Includes a huge patchset from upstream gnome-3-28 branch, fixing
various wayland and other issues and some performance tweaks.

Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>

 x11-wm/mutter/Manifest             |   2 +
 x11-wm/mutter/metadata.xml         |   1 +
 x11-wm/mutter/mutter-3.28.3.ebuild | 144 +++++++++++++++++++++++++++++++++++++
 3 files changed, 147 insertions(+)

diff --git a/x11-wm/mutter/Manifest b/x11-wm/mutter/Manifest
index 7563c016b1a..64e21689d54 100644
--- a/x11-wm/mutter/Manifest
+++ b/x11-wm/mutter/Manifest
@@ -1,3 +1,5 @@
 DIST mutter-3.24.4.tar.xz 3583916 BLAKE2B 
86a9e16ed96270713e400ccb4dc64b91c263125ea4a04373ed1f8364e906031ef26dc991fa13d01cf0e50895360c87be6773e3332d823c2ce1991cd57d59b292
 SHA512 
7ae579ab3e9df09cae37fbc1b277e382c9f610058b914b69a7bdb89f3bec510403210c0cded16a6487111507151f4d7075d161e051c0b88585d6ab6b4575b8d3
 DIST mutter-3.26.2-patchset.tar.xz 48156 BLAKE2B 
7b33495a8bb7ac69f5610e1dfcb1fef49a983403fd176b229a75bcc7691e83e76a3dd87b7663ece0fcdc4077becd3ffa5e33217584f156456813769646730bf9
 SHA512 
2eeb9dfe137d6ea65f957ed19aa5ef83106aa16a049531c0c41d3ab6afac6c1b345cc68f2a9a9c41658172cc0dde61b946e6bf2507979ff4155e79770adf5e90
 DIST mutter-3.26.2.tar.xz 3622904 BLAKE2B 
b32af24c6ffcd0e6af38ab1ff7cd0ba16ea3ceb84c62ed21d9e38fff5357eda2648050beada3fc8727474407a419a2c218331c8a87f7eb68eddf824d26ca9c51
 SHA512 
95885b4c053d4bc467a7c11615ee3d1a3086a674ae10e7cb9bb241f692e66dd8190508db1cdf1760bc2f19100e532e68d5e147d344e94d1430d80dd26ca0156b
+DIST mutter-3.28.3-patchset.tar.xz 44308 BLAKE2B 
c9ecac6fc91d0f5d07be3f407332267ac6ee83d65ec7650461a990e87dd81c0b6bf37893441ebcd084730d6bbe4ecf851e5083660979aebce237d5fdd2485bb1
 SHA512 
3d057faf1dfbe5ea38c8207d16377c9024772fb2111f0cdc9867de63ed158534d6ae5a23413b2f258c1c85278abbf1ac0156f0322e9df717ea09ba45d5f8650f
+DIST mutter-3.28.3.tar.xz 3693812 BLAKE2B 
491a4cc47d54d2a72adffd808ac64d90914f5a5bd653ba2b147993ee4a0862fbe61a666a3adf322ed4fd4af99c4cf9890b7bb19f9f0451039d1d797cfd616e3b
 SHA512 
1230e4489693188c4d9ffe5460b235cd018b16f27741451120c3acb6027901d5286d9793cc0c9ad50a2233ff20ea91e7a47c0df611bb4479f1e33af0d185f69a

diff --git a/x11-wm/mutter/metadata.xml b/x11-wm/mutter/metadata.xml
index 73abedd9cf0..bd2aac01e71 100644
--- a/x11-wm/mutter/metadata.xml
+++ b/x11-wm/mutter/metadata.xml
@@ -6,6 +6,7 @@
                <name>Gentoo GNOME Desktop</name>
        </maintainer>
        <use>
+               <flag name="elogind">Rely on <pkg>sys-auth/elogind</pkg> as 
logind provider for Wayland sessions</flag>
                <flag name="gles2">Enable OpenGL ES 2.0 support</flag>
        </use>
 </pkgmetadata>

diff --git a/x11-wm/mutter/mutter-3.28.3.ebuild 
b/x11-wm/mutter/mutter-3.28.3.ebuild
new file mode 100644
index 00000000000..d57e0a9002c
--- /dev/null
+++ b/x11-wm/mutter/mutter-3.28.3.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+GNOME2_EAUTORECONF="yes"
+inherit gnome2 virtualx
+
+DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
+HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/";
+SRC_URI+=" https://dev.gentoo.org/~leio/distfiles/${P}-patchset.tar.xz";
+
+LICENSE="GPL-2+"
+SLOT="0/2" # 0/libmutter_api_version - ONLY gnome-shell (or anything using 
mutter-clutter-<api_version>.pc) should use the subslot
+
+IUSE="debug elogind gles2 input_devices_wacom +introspection systemd test udev 
wayland"
+REQUIRED_USE="wayland? ( ?? ( elogind systemd ) )"
+
+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
+# gl.pc package is required, which is only installed by mesa if glx is 
enabled; pre-emptively requiring USE=X on mesa, as hopefully eventually it'll 
support disabling glx for wayland-only systems
+RDEPEND="
+       >=dev-libs/atk-2.5.3
+       >=x11-libs/gdk-pixbuf-2:2
+       >=dev-libs/json-glib-0.12.0
+       >=x11-libs/pango-1.30[introspection?]
+       >=x11-libs/cairo-1.14[X]
+       >=x11-libs/gtk+-3.19.8:3[X,introspection?]
+       >=dev-libs/glib-2.53.2:2
+       >=media-libs/libcanberra-0.26[gtk3]
+       >=x11-libs/startup-notification-0.7
+       >=x11-libs/libXcomposite-0.2
+       >=gnome-base/gsettings-desktop-schemas-3.21.4[introspection?]
+       gnome-base/gnome-desktop:3=
+       >sys-power/upower-0.99:=
+
+       x11-libs/libICE
+       x11-libs/libSM
+       x11-libs/libX11
+       >=x11-libs/libXcomposite-0.4
+       x11-libs/libXcursor
+       x11-libs/libXdamage
+       x11-libs/libXext
+       >=x11-libs/libXfixes-3
+       >=x11-libs/libXi-1.7.4
+       x11-libs/libXinerama
+       >=x11-libs/libXrandr-1.5
+       x11-libs/libXrender
+       x11-libs/libxcb
+       x11-libs/libxkbfile
+       >=x11-libs/libxkbcommon-0.4.3[X]
+       x11-misc/xkeyboard-config
+
+       gnome-extra/zenity
+       media-libs/mesa[X(+),egl,gles2?]
+
+       input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
+       introspection? ( >=dev-libs/gobject-introspection-1.42:= )
+       udev? ( >=virtual/libgudev-232:= )
+       wayland? (
+               >=dev-libs/libinput-1.4
+               >=dev-libs/wayland-1.13.0
+               >=dev-libs/wayland-protocols-1.12
+               >=media-libs/mesa-10.3[egl,gbm,wayland]
+               systemd? ( sys-apps/systemd )
+               elogind? ( sys-auth/elogind )
+               >=virtual/libgudev-232:=
+               >=virtual/libudev-136:=
+               x11-base/xorg-server[wayland]
+               x11-libs/libdrm:=
+       )
+"
+DEPEND="${RDEPEND}
+       dev-util/glib-utils
+       >=sys-devel/gettext-0.19.6
+       virtual/pkgconfig
+       x11-base/xorg-proto
+       test? ( app-text/docbook-xml-dtd:4.5 )
+       wayland? ( >=sys-kernel/linux-headers-4.4 )
+"
+
+PATCHES=(
+       # Lots of patches from gnome-3-28 branch on top of 3.28.3
+       "${WORKDIR}"/patches/
+)
+
+src_prepare() {
+       # Disable building of noinst_PROGRAM for tests
+       if ! use test; then
+               sed -e '/^noinst_PROGRAMS/d' \
+                       -i cogl/tests/conform/Makefile.{am,in} || die
+               sed -e '/noinst_PROGRAMS += testboxes/d' \
+                       -i src/Makefile-tests.am || die
+               sed -e '/noinst_PROGRAMS/ s/testboxes$(EXEEXT)//' \
+                       -i src/Makefile.in || die
+       fi
+
+       gnome2_src_prepare
+
+       # Leave the damn CFLAGS alone
+       sed -e 's/$CFLAGS -g/$CFLAGS /' \
+               -i clutter/configure || die
+       sed -e 's/$CFLAGS -g -O0/$CFLAGS /' \
+               -i cogl/configure || die
+       sed -e 's/$CFLAGS -g -O/$CFLAGS /' \
+               -i configure || die
+}
+
+src_configure() {
+       # TODO: pipewire remote desktop support; --disable-remote-desktop 
actually enables it due to upstream autotools bug in 3.26.2 (omitted means 
disabled)
+       # TODO: nvidia EGLDevice support
+       # TODO: elogind vs systemd is automagic in 3.28.3 - if elogind is 
found, it's used instead of systemd; but not a huge problem as elogind package 
blocks systemd package
+       # TODO: lack of --with-xwayland-grab-default-access-rules relies on 
default settings, but in Gentoo we might have some more packages we want to 
give Xgrab access (mostly virtual managers and remote desktops)
+       # Prefer gl driver by default
+       # GLX is forced by mutter but optional in clutter
+       # xlib-egl-platform required by mutter x11 backend
+       # native backend without wayland is useless
+       gnome2_src_configure \
+               --disable-static \
+               --enable-compile-warnings=minimum \
+               --enable-gl \
+               --enable-glx \
+               --enable-sm \
+               --enable-startup-notification \
+               --enable-verbose-mode \
+               --enable-xlib-egl-platform \
+               --with-default-driver=gl \
+               --with-libcanberra \
+               $(usex debug --enable-debug=yes "") \
+               $(use_enable gles2)        \
+               $(use_enable gles2 cogl-gles2) \
+               $(use_enable introspection) \
+               $(use_enable wayland) \
+               $(use_enable wayland kms-egl-platform) \
+               $(use_enable wayland native-backend) \
+               $(use_enable wayland wayland-egl-server) \
+               $(use_with input_devices_wacom libwacom) \
+               $(use_with udev gudev)
+}
+
+src_test() {
+       virtx emake check
+}

Reply via email to