x11-wm/mutter: fix dependencies and option combinations
authorGilles Dartiguelongue <eva@gentoo.org>
Fri, 11 Nov 2016 12:45:22 +0000 (13:45 +0100)
committerGilles Dartiguelongue <eva@gentoo.org>
Fri, 11 Nov 2016 12:47:31 +0000 (13:47 +0100)
Checked with upstream, native backend without wayland is not useful and
the opposite would have limited use.

See upstream reports for not enabling these possibilities anyway:
https://bugzilla.gnome.org/show_bug.cgi?id=771638
https://bugzilla.gnome.org/show_bug.cgi?id=772681

Gentoo-bug: 598846

Package-Manager: portage-2.3.2

x11-wm/mutter/metadata.xml
x11-wm/mutter/mutter-3.22.1.ebuild

index 59b7f540c4373b2082ecbc4842d56b655b14ba37..3e52e1b5c3523dbf834e3fa50cf763e3d4a3412a 100644 (file)
@@ -6,6 +6,7 @@
                <name>Gentoo GNOME Desktop</name>
        </maintainer>
        <use>
+               <flag name="gles2">Enable OpenGL ES 2.0 support</flag>
                <flag name="kms">Enable KMS support.</flag>
        </use>
 </pkgmetadata>
index d3d13a06790b708c3e5eed595b25204336b7a634..73b94947783eeb89af685f9a47b39de9bb7827d0 100644 (file)
@@ -3,7 +3,7 @@
 # $Id$
 
 EAPI=6
-inherit gnome2
+inherit gnome2 virtualx
 
 DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
 HOMEPAGE="https://git.gnome.org/browse/mutter/"
@@ -11,10 +11,7 @@ HOMEPAGE="https://git.gnome.org/browse/mutter/"
 LICENSE="GPL-2+"
 SLOT="0"
 
-IUSE="input_devices_wacom +introspection +kms test udev wayland"
-REQUIRED_USE="
-       wayland? ( kms )
-"
+IUSE="debug gles2 input_devices_wacom +introspection test udev wayland"
 
 KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
 
@@ -22,12 +19,12 @@ KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
 # https://bugzilla.gnome.org/show_bug.cgi?id=738944
 COMMON_DEPEND="
        >=dev-libs/atk-2.5.3
+       >=x11-libs/gdk-pixbuf-2:2
        >=dev-libs/json-glib-0.12.0
-       >=x11-libs/pango-1.2[X,introspection?]
-       >=x11-libs/cairo-1.10[X]
+       >=x11-libs/pango-1.30[X,introspection?]
+       >=x11-libs/cairo-1.14[X]
        >=x11-libs/gtk+-3.19.8:3[X,introspection?]
        >=dev-libs/glib-2.49.0:2[dbus]
-       >=media-libs/cogl-1.21.2:1.0=[introspection?]
        >=media-libs/libcanberra-0.26[gtk3]
        >=x11-libs/startup-notification-0.7
        >=x11-libs/libXcomposite-0.2
@@ -38,11 +35,11 @@ COMMON_DEPEND="
        x11-libs/libICE
        x11-libs/libSM
        x11-libs/libX11
-       >=x11-libs/libXcomposite-0.2
+       >=x11-libs/libXcomposite-0.4
        x11-libs/libXcursor
        x11-libs/libXdamage
        x11-libs/libXext
-       x11-libs/libXfixes
+       >=x11-libs/libXfixes-3
        >=x11-libs/libXi-1.7.4
        x11-libs/libXinerama
        >=x11-libs/libXrandr-1.5
@@ -53,21 +50,23 @@ COMMON_DEPEND="
        x11-misc/xkeyboard-config
 
        gnome-extra/zenity
+       media-libs/mesa[egl]
 
+       gles2? ( media-libs/mesa[gles2] )
        input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
        introspection? ( >=dev-libs/gobject-introspection-1.42:= )
-       kms? (
-               >=dev-libs/libinput-1.4
-               media-libs/cogl:1.0=[kms]
-               >=media-libs/mesa-10.3[gbm]
-               sys-apps/systemd
-               virtual/libgudev
-               x11-libs/libdrm:= )
        udev? ( virtual/libgudev:= )
        wayland? (
+               >=dev-libs/libinput-1.4
                >=dev-libs/wayland-1.6.90
                >=dev-libs/wayland-protocols-1.7
-               x11-base/xorg-server[wayland] )
+               >=media-libs/mesa-10.3[egl,gbm,wayland]
+               sys-apps/systemd
+               virtual/libgudev:=
+               >=virtual/libudev-136:=
+               x11-base/xorg-server[wayland]
+               x11-libs/libdrm:=
+       )
 "
 DEPEND="${COMMON_DEPEND}
        >=sys-devel/gettext-0.19.6
@@ -81,16 +80,56 @@ RDEPEND="${COMMON_DEPEND}
        !x11-misc/expocity
 "
 
+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() {
+       # 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 kms native-backend) \
                $(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
+}