Gentoo Archives: gentoo-commits

From: Mart Raudsepp <leio@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
Date: Fri, 06 Sep 2019 21:47:50
Message-Id: 1567806275.0c4e5ce467e59b8903b8e53047b751346040aaa4.leio@gentoo
1 commit: 0c4e5ce467e59b8903b8e53047b751346040aaa4
2 Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
3 AuthorDate: Fri Sep 6 21:01:22 2019 +0000
4 Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
5 CommitDate: Fri Sep 6 21:44:35 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0c4e5ce4
7
8 x11-wm/mutter: bump to 3.32.2
9
10 Closes: https://bugs.gentoo.org/685724
11 Package-Manager: Portage-2.3.69, Repoman-2.3.12
12 Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>
13
14 x11-wm/mutter/Manifest | 2 +
15 x11-wm/mutter/files/3.32.2-no-cogl-gles2.patch | 81 ++++++++++++++
16 x11-wm/mutter/mutter-3.32.2.ebuild | 146 +++++++++++++++++++++++++
17 3 files changed, 229 insertions(+)
18
19 diff --git a/x11-wm/mutter/Manifest b/x11-wm/mutter/Manifest
20 index cf1fc2fed32..1c6c961ffdf 100644
21 --- a/x11-wm/mutter/Manifest
22 +++ b/x11-wm/mutter/Manifest
23 @@ -4,3 +4,5 @@ DIST mutter-3.30.2-r1-patchset.tar.xz 14096 BLAKE2B 83f2e975a4404b878e832a70fe7a
24 DIST mutter-3.30.2-r3-patchset.tar.xz 30208 BLAKE2B 502e9c1d005cf268548e2732d4574b0eb7491940531c77c357e73e2da23b60acfbb183f9e818edd86cf0d6abca4e43c2e687db27544bb4fe7e9a33a162df01da SHA512 22b66395ffae07b208efa3a1305c71ea2282470a08300a5c3de23a2a45f03afef7804d5943934028286406adedbb9851dc562f4e57fdff77df22591893f0908b
25 DIST mutter-3.30.2-r4-patchset.tar.xz 44820 BLAKE2B 2448dcd6bca338dbe2b87a93ca4374fd5b4cc5d8834dd40739e74a65280b7f00b99d61361082673f5f41e44fb40e36f0889d5ee00fbc034efe87294540fba48e SHA512 a7024b95bc56ab25cfdb27003b4b1fc39925117795c05f78b2d473fdbcf3bb6ce870ee5bc030ec4ce5e10b42d94fa0007bf5870bd2a4e94de3885c9434a39835
26 DIST mutter-3.30.2.tar.xz 3725692 BLAKE2B 280b7a6319e5d4705baee965936df6f31ba8ca96ce3812cf640578c6817aaa82b6ff8fde7b2740ecd8edb6c4746f4608f997772a24d67f12fcb0c5c77fc9b29a SHA512 3890270b7eb4b8753274d30ad26693b829a69b31f36501845c59b000deb174be58b5167f6754767dba02ebc44688697fbe7344a327879a073955047b69333a2e
27 +DIST mutter-3.32.2-patchset.tar.xz 26872 BLAKE2B 026c87cc3859624bcfd273694a8a34661d97cc77776e3df5f6f5de16b8758fc435773b1c96172b867fe0d9bea421c56986db2e7263c6ec3482171cc2adf06295 SHA512 e318fcfa4ee7850814cdfb5fbcc118a92fa3df524a78b24a440346be6a6c7cb975f90218a2d4feeacd222f2daf56c4cff4195c83e3ed74726dc1da63d38a93c5
28 +DIST mutter-3.32.2.tar.xz 2797664 BLAKE2B 8b69436778d9c3e10b0373c83e1f306cb2718e49ad1f351f2e3a1ef92caeb1eb7a391be07c60578cfb2601eea5dc3949b1d8305e9f079b2b00d43ff305409f00 SHA512 e4494d028ae71441fbdc584bd8acd9c2559d52ac72402bad9a7cb43f4f519487d11df6453172fd27a9df7f2cade020d6317931613bd0be343c66170e6cda0269
29
30 diff --git a/x11-wm/mutter/files/3.32.2-no-cogl-gles2.patch b/x11-wm/mutter/files/3.32.2-no-cogl-gles2.patch
31 new file mode 100644
32 index 00000000000..41c3e94d860
33 --- /dev/null
34 +++ b/x11-wm/mutter/files/3.32.2-no-cogl-gles2.patch
35 @@ -0,0 +1,81 @@
36 +From a00bd286724b3186c17d70f1b2fe98da2d90bf60 Mon Sep 17 00:00:00 2001
37 +From: Mart Raudsepp <leio@g.o>
38 +Date: Sun, 1 Sep 2019 14:42:04 +0300
39 +Subject: [PATCH] build: Allow building native backend without cogl-gles2
40 +
41 +Native backend already requires gles2, but was controlled by gles2
42 +meson option, even though it's hard required with native_backend
43 +already, and errored out if gles2 wasn't enabled too.
44 +Instead allow native_backend to be built without cogl-gles2 by simply
45 +checking for the gles2 hard requirement in case of have_native_backend
46 +too and not erroring out without -Dgles2=true, which is now used only
47 +for controlling cogl-gles2 build.
48 +---
49 + meson.build | 10 +++-------
50 + src/meson.build | 4 ++--
51 + 2 files changed, 5 insertions(+), 9 deletions(-)
52 +
53 +diff --git a/meson.build b/meson.build
54 +index 6160a4bb3..c85284ba2 100644
55 +--- a/meson.build
56 ++++ b/meson.build
57 +@@ -150,12 +150,13 @@ endif
58 + have_egl_xlib = have_egl and have_x11
59 +
60 + have_gles2 = get_option('gles2')
61 +-if have_gles2
62 ++have_native_backend = get_option('native_backend')
63 ++if have_gles2 or have_native_backend
64 + gles2_dep = dependency('glesv2')
65 + gles2_libname = get_option('gles2_libname')
66 +
67 + if not have_egl
68 +- error('GLESv2 support requires EGL to be enabled')
69 ++ error('GLESv2 and native backend support requires EGL to be enabled')
70 + endif
71 + endif
72 +
73 +@@ -177,7 +178,6 @@ if have_libgudev
74 + gudev_dep = dependency('gudev-1.0', version: gudev_req)
75 + endif
76 +
77 +-have_native_backend = get_option('native_backend')
78 + if have_native_backend
79 + libdrm_dep = dependency('libdrm')
80 + libgbm_dep = dependency('gbm', version: gbm_req)
81 +@@ -194,10 +194,6 @@ if have_native_backend
82 + error('The native backend requires EGL to be enabled')
83 + endif
84 +
85 +- if not have_gles2
86 +- error('The native backend requires GLESv2 to be enabled')
87 +- endif
88 +-
89 + if not have_libgudev
90 + error('The native backend requires udev to be enabled')
91 + endif
92 +diff --git a/src/meson.build b/src/meson.build
93 +index 182f7f5f5..af9776480 100644
94 +--- a/src/meson.build
95 ++++ b/src/meson.build
96 +@@ -36,7 +36,7 @@ if have_gl
97 + ]
98 + endif
99 +
100 +-if have_gles2
101 ++if have_native_backend
102 + mutter_pkg_private_deps += [
103 + gles2_dep,
104 + ]
105 +@@ -436,7 +436,7 @@ if have_egl
106 + ]
107 + endif
108 +
109 +-if have_gles2
110 ++if have_native_backend
111 + mutter_sources += [
112 + 'backends/meta-gles3.c',
113 + 'backends/meta-gles3.h',
114 +--
115 +2.20.1
116 +
117
118 diff --git a/x11-wm/mutter/mutter-3.32.2.ebuild b/x11-wm/mutter/mutter-3.32.2.ebuild
119 new file mode 100644
120 index 00000000000..ef0a01e2b37
121 --- /dev/null
122 +++ b/x11-wm/mutter/mutter-3.32.2.ebuild
123 @@ -0,0 +1,146 @@
124 +# Copyright 1999-2019 Gentoo Authors
125 +# Distributed under the terms of the GNU General Public License v2
126 +
127 +EAPI=7
128 +inherit gnome.org gnome2-utils meson virtualx xdg
129 +
130 +DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
131 +HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
132 +SRC_URI+=" https://dev.gentoo.org/~leio/distfiles/${PF}-patchset.tar.xz"
133 +
134 +LICENSE="GPL-2+"
135 +SLOT="0/4" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
136 +
137 +IUSE="elogind gles2 input_devices_wacom +introspection screencast systemd test udev wayland"
138 +# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
139 +REQUIRED_USE="
140 + wayland? ( ^^ ( elogind systemd ) udev )
141 + test? ( wayland )"
142 +RESTRICT="!test? ( test )"
143 +
144 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
145 +
146 +# libXi-1.7.4 or newer needed per:
147 +# https://bugzilla.gnome.org/show_bug.cgi?id=738944 - https://gitlab.gnome.org/GNOME/mutter/merge_requests/766
148 +
149 +# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
150 +# xorg-server is needed at build and runtime with USE=wayland for Xwayland
151 +# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
152 +DEPEND="
153 + x11-libs/libX11
154 + >=x11-libs/gtk+-3.19.8:3[X,introspection?]
155 + x11-libs/gdk-pixbuf:2
156 + >=x11-libs/pango-1.30[introspection?]
157 + >=x11-libs/cairo-1.14[X]
158 + >=gnome-base/gsettings-desktop-schemas-3.31.0[introspection?]
159 + >=dev-libs/glib-2.53.2:2
160 + gnome-base/gnome-settings-daemon
161 + >=dev-libs/json-glib-0.12.0[introspection?]
162 + gnome-base/gnome-desktop:3=
163 + >=x11-libs/libXcomposite-0.4
164 + x11-libs/libXcursor
165 + x11-libs/libXdamage
166 + x11-libs/libXext
167 + >=x11-libs/libXfixes-3
168 + >=x11-libs/libXi-1.7.4
169 + x11-libs/libXtst
170 + x11-libs/libxkbfile
171 + x11-misc/xkeyboard-config
172 + >=x11-libs/libxkbcommon-0.4.3[X]
173 + x11-libs/libXrender
174 + >=x11-libs/libXrandr-1.5.0
175 + x11-libs/libxcb
176 + x11-libs/libXinerama
177 + x11-libs/libICE
178 + >=dev-libs/atk-2.5.3[introspection?]
179 + >=media-libs/libcanberra-0.26
180 + media-libs/mesa[X(+),egl,gles2?]
181 + wayland? (
182 + >=dev-libs/wayland-protocols-1.16
183 + >=dev-libs/wayland-1.13.0
184 + x11-libs/libdrm:=
185 + >=media-libs/mesa-10.3[egl,gbm,wayland,gles2]
186 + >=dev-libs/libinput-1.4
187 + systemd? ( sys-apps/systemd )
188 + elogind? ( sys-auth/elogind )
189 + x11-base/xorg-server[wayland]
190 + )
191 + udev? ( >=virtual/libudev-228:=
192 + >=virtual/libgudev-232:= )
193 + x11-libs/libSM
194 + input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
195 + >=x11-libs/startup-notification-0.7
196 + screencast? ( >=media-video/pipewire-0.2.2:0/0.2 )
197 + introspection? ( >=dev-libs/gobject-introspection-1.54:= )
198 +"
199 +RDEPEND="${DEPEND}
200 + gnome-extra/zenity
201 +"
202 +DEPEND="${DEPEND}
203 + x11-base/xorg-proto
204 +"
205 +# wayland bdepend for wayland-scanner, xorg-server for cvt utility
206 +BDEPEND="
207 + dev-libs/wayland
208 + >=dev-util/meson-0.50.0
209 + dev-util/gdbus-codegen
210 + dev-util/glib-utils
211 + >=sys-devel/gettext-0.19.8
212 + virtual/pkgconfig
213 + test? ( app-text/docbook-xml-dtd:4.5 )
214 + wayland? ( >=sys-kernel/linux-headers-4.4
215 + x11-base/xorg-server )
216 +"
217 +
218 +PATCHES=(
219 + # Some patches from gnome-3-32 branch on top of 3.32.2
220 + "${WORKDIR}"/patches/
221 + # Allow building USE=wayland without cogl-gles2 from USE=gles2
222 + "${FILESDIR}"/${PV}-no-cogl-gles2.patch
223 +)
224 +
225 +src_configure() {
226 + # TODO: Replicate debug vs release meson build type behaviour under our buildtype=plain
227 + local emesonargs=(
228 + -Dopengl=true
229 + #opengl_libname
230 + #gles2_libname
231 + $(meson_use gles2)
232 + -Degl=true
233 + -Dglx=true
234 + $(meson_use wayland)
235 + $(meson_use wayland native_backend)
236 + $(meson_use screencast remote_desktop)
237 + -Degl_device=false # This should be dependent on wayland,video_drivers_nvidia, once eglstream support is there
238 + -Dwayland_eglstream=false # requires packages egl-wayland for wayland-eglstream-protocols.pc
239 + $(meson_use udev)
240 + $(meson_use input_devices_wacom libwacom)
241 + -Dpango_ft2=true
242 + -Dstartup_notification=true
243 + -Dsm=true
244 + $(meson_use introspection)
245 + $(meson_use test cogl_tests)
246 + $(meson_use test clutter_tests)
247 + $(meson_use test tests)
248 + -Dinstalled_tests=false
249 + #verbose # Let upstream choose default for verbose mode
250 + #xwayland_path
251 + # TODO: 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)
252 + #xwayland_grab_default_access_rules
253 + )
254 + meson_src_configure
255 +}
256 +
257 +src_test() {
258 + virtx meson_src_test
259 +}
260 +
261 +pkg_postinst() {
262 + xdg_pkg_postinst
263 + gnome2_schemas_update
264 +}
265 +
266 +pkg_postrm() {
267 + xdg_pkg_postrm
268 + gnome2_schemas_update
269 +}