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 +}