source: gnome/platform/mutter.xml@ a73fc762

12.0 12.1 ken/TL2024 ken/tuningfonts lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18
Last change on this file since a73fc762 was ca6a44f4, checked in by Xi Ruoyao <xry111@…>, 11 months ago

mutter: Add native-unit test as known failure

This test needs a pipewire daemon running, but we don't tell how to run
a pipewire daemon in the book.

  • Property mode set to 100644
File size: 12.1 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY mutter-download-http "&gnome-download-http;/mutter/&gnome-44;/mutter-&mutter-version;.tar.xz">
8 <!ENTITY mutter-download-ftp "&gnome-download-ftp;/mutter/&gnome-44;/mutter-&mutter-version;.tar.xz">
9 <!ENTITY mutter-md5sum "c9a692911a8ff849c6bbfb44eca7a92f">
10 <!ENTITY mutter-size "2.7 MB">
11 <!ENTITY mutter-buildsize "99 MB (with tests)">
12 <!ENTITY mutter-time "0.8 SBU (Using parallelism=4; add 1.4 SBU for tests)">
13]>
14
15<sect1 id="mutter" xreflabel="Mutter-&mutter-version;">
16 <?dbhtml filename="mutter.html"?>
17
18
19 <title>Mutter-&mutter-version;</title>
20
21 <indexterm zone="mutter">
22 <primary sortas="a-Mutter">Mutter</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to Mutter</title>
27
28 <para>
29 <application>Mutter</application> is the window manager for
30 <application>GNOME</application>. It is not invoked directly,
31 but from <application>GNOME Session</application> (on a
32 machine with a hardware accelerated video driver).
33 </para>
34
35 &lfs113_checked;
36
37 <bridgehead renderas="sect3">Package Information</bridgehead>
38 <itemizedlist spacing="compact">
39 <listitem>
40 <para>
41 Download (HTTP): <ulink url="&mutter-download-http;"/>
42 </para>
43 </listitem>
44 <listitem>
45 <para>
46 Download (FTP): <ulink url="&mutter-download-ftp;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download MD5 sum: &mutter-md5sum;
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download size: &mutter-size;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Estimated disk space required: &mutter-buildsize;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated build time: &mutter-time;
67 </para>
68 </listitem>
69 </itemizedlist>
70
71 <bridgehead renderas="sect3">Mutter Dependencies</bridgehead>
72
73 <bridgehead renderas="sect4">Required</bridgehead>
74 <para role="required">
75 <xref linkend="gnome-settings-daemon"/>,
76 <xref linkend="graphene"/>,
77 <xref linkend="libxcvt"/>,
78 <xref linkend="libxkbcommon"/>, and
79 <xref linkend="pipewire"/>
80 </para>
81
82 <bridgehead renderas="sect4">Recommended</bridgehead>
83 <para role="recommended">
84 <xref linkend="desktop-file-utils"/>,
85 <xref linkend="gobject-introspection"/>, and
86 <xref linkend="startup-notification"/>
87 </para>
88
89 <bridgehead renderas="sect4">Recommended (Required to
90 build the Wayland compositor)</bridgehead>
91 <para role="recommended">
92 <xref linkend="libinput"/>,
93 <xref linkend="wayland"/>,
94 <xref linkend="wayland-protocols"/>, and
95 <xref linkend="xwayland"/>.
96 </para>
97
98 <bridgehead renderas="sect4"
99 revision="sysv">Recommended (Runtime)</bridgehead>
100 <para role="recommended" revision="sysv">
101 <xref linkend="blocaled" role="runtime"/>
102 </para>
103
104 <bridgehead renderas="sect4">Optional</bridgehead>
105 <para role="optional">
106 <xref linkend="python-dbusmock"/> (required for tests),
107 <xref linkend="sysprof"/>,
108 <xref linkend="xorg-server"/> (for X11 sessions)
109 </para>
110
111 <!-- NOTE: Mutter compiles shipped Cogl and Clutter for it's own
112 internal use. This is because upstream have decided that Cogl and
113 Clutter should be only used by Mutter in the future, so the development
114 of Cogl and Clutter is now performed in the Mutter repository. The
115 "standalone" Cogl and Clutter are considered obsolete now and we have
116 archived them. -->
117
118 </sect2>
119
120 <sect2 role="installation">
121 <title>Installation of Mutter</title>
122
123 <para>
124 Install <application>Mutter</application> by running the following
125 commands:
126 </para>
127
128<screen><userinput>mkdir build &amp;&amp;
129cd build &amp;&amp;
130
131meson setup --prefix=/usr \
132 --buildtype=release \
133 -Dtests=false \
134 -Dprofiler=false \
135 .. &amp;&amp;
136ninja</userinput></screen>
137
138<!--
139 <para>
140 To test the results, issue:
141 <command>dbus-run-session ninja test</command>. The tests
142 require an active X session to run correctly. It is not necessary to
143 run a separate D-bus session if not in a GNOME session, but it
144 provides a clean environment in any case. One test,
145 <filename>native-headless</filename>, is known to fail.
146 </para>
147 -->
148 <!-- there are no added problems in sysv, AFAICT. Running the tests is
149 not easy whatever the init system. But using the instructions below in
150 a gnome session on sysv works (no test failure)...
151 <para revision='sysv'>
152 This package does not come with a test suite that runs properly in the
153 SystemV environment.
154 </para>
155 -->
156
157 <para>
158 The test suite requires an
159 external program called <command>xvfb-run</command>. If you wish to run
160 the tests, you should download and install it before running
161 <command>meson</command>.
162
163 You can obtain it from <ulink
164 url="&sources-anduin-http;/mutter/xvfb-run">xvfb-run</ulink>, and install
165 it with executable permissions in <filename
166 class="directory">/usr/bin</filename>. <command>xvfb-run</command> needs
167 <command>Xvfb</command> at runtime, and <command>Xvfb</command> can be
168 installed from either <xref linkend='xorg-server'/> or <xref
169 linkend='xwayland'/>.
170
171 You should also replace <parameter>-Dtests=false</parameter> in the
172 <command>meson</command> command, with
173 <parameter>-Dtests=true -Dclutter_tests=false</parameter>. The test
174 suite requires the mutter schema to be installed on the system, so it is
175 better to run the tests after installing the package.
176 </para>
177
178 <para>
179 You can also test basic functions of <application>Mutter</application>
180 following <xref linkend='mutter-starting'/>, after installing it.
181 </para>
182
183 <para>
184 Now, as the <systemitem class="username">root</systemitem> user:
185 </para>
186
187<screen role="root"><userinput>ninja install</userinput></screen>
188
189 <para>
190 If you wish to run the tests, remove the reference to
191 <application>Zenity</application> which is not a part of BLFS
192 from one test:
193 </para>
194
195<screen role='test'><userinput>sed 's/zenity --[a-z]*/gtk4-demo/' -i ../src/tests/x11-test.sh</userinput></screen>
196
197 <para>
198 Now run the test suite:
199 </para>
200
201 <!-- Without "HOME=" one test can fail with certain monitor
202 configuration in $HOME/.config/monitors.xml. -->
203<screen role='test'><userinput>HOME= ninja test</userinput></screen>
204
205 <para>
206 The tests require an active X or wayland session.
207 Two tests named
208 <!-- https://gitlab.gnome.org/GNOME/mutter/-/issues/2848 -->
209 <filename>cogl-test-framebuffer-get-bits-gl3</filename> and
210 <!-- This needs a pipewire daemon running. As at Aug 2023
211 the method to run a pipewire daemon is not in BLFS
212 (but in editor notes), so claim this a known failure. -->
213 <filename>native-unit</filename> are known to fail.
214 A few other tests may fail depending on the configuration.
215 Don't make any mouse or keyboard input while the test suite is
216 running or some tests may fail.
217 </para>
218
219 </sect2>
220
221 <sect2 role="commands">
222 <title>Command Explanations</title>
223
224 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
225 href="../../xincludes/meson-buildtype-release.xml"/>
226
227 <para>
228 <parameter>-Dtests=false</parameter>: Prevents building the tests,
229 and removes a hard requirement on <command>xvfb-run</command>.
230 </para>
231
232 <para>
233 <parameter>-Dprofiler=false</parameter>: Allow building this package
234 without <application>Sysprof</application>. Remove this option if
235 you've installed <application>Sysprof</application> and want to
236 analysis the rendering performance of
237 <application>Mutter</application>.
238 </para>
239
240 <para>
241 <option>-Dtests=true -Dclutter_tests=false</option>: Building all the
242 tests but the tests for the shipped <application>Clutter</application>
243 library. The <application>Clutter</application> tests are known to
244 fail with <option>--buildtype=release</option>.
245 </para>
246
247 </sect2>
248
249 <sect2 role="starting" id="mutter-starting">
250 <title>Starting Mutter</title>
251
252 <!-- Mutter as a Wayland compositor works with recent mutter releases.
253 IIRC mutter can also be used as a X window manager: just replace
254 "twm" with "mutter &dash;&dash;x11" in xinitrc. But I've not tested
255 such a configuration recently (I don't build Xorg Server or xinit
256 these days. -->
257
258 <para>
259 <application>Mutter</application> is normally used as a component of
260 <application>gnome-shell</application>, but it can be used as a
261 standalone Wayland compositor too. To run
262 <application>Mutter</application> as a Wayland compositor, in a
263 virtual console, issue:
264 </para>
265
266 <screen role='nodump'><userinput>mutter --wayland -- vte-2.91</userinput></screen>
267
268 <para>
269 Replace <command>vte-2.91</command> with the command line for the
270 first application you want in the Wayland session. Note that once this
271 application exits, the Wayland session will be terminated.
272 </para>
273
274 <para>
275 <application>Mutter</application> can also function as a nested
276 compositor in another Wayland session. In a terminal emulator, issue:
277 </para>
278
279 <screen role='nodump'><userinput>MUTTER_DEBUG_DUMMY_MODE_SPECS=1920x1080 mutter --wayland --nested -- vte-2.91</userinput></screen>
280
281 <para>
282 Replace <replaceable>1920x1080</replaceable> with the size you want
283 for the nested Wayland session.
284 </para>
285 </sect2>
286
287 <sect2 role="content">
288 <title>Contents</title>
289
290 <segmentedlist>
291 <segtitle>Installed Programs</segtitle>
292 <segtitle>Installed Libraries</segtitle>
293 <segtitle>Installed Directories</segtitle>
294
295 <seglistitem>
296 <seg>
297 mutter
298 </seg>
299 <seg>
300 libmutter-12.so and libmutter-test-12.so (optional)
301 </seg>
302 <seg>
303 /usr/{lib,include,libexec/installed-tests,share/{,installed-tests}}/mutter-12
304 </seg>
305 </seglistitem>
306 </segmentedlist>
307
308 <variablelist>
309 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
310 <?dbfo list-presentation="list"?>
311 <?dbhtml list-presentation="table"?>
312
313 <varlistentry id="mutter-prog">
314 <term><command>mutter</command></term>
315 <listitem>
316 <para>
317 is a <application>Clutter</application> based compositing
318 <application>GTK+</application> Window Manager
319 </para>
320 <indexterm zone="mutter mutter-prog">
321 <primary sortas="b-mutter">mutter</primary>
322 </indexterm>
323 </listitem>
324 </varlistentry>
325
326 <varlistentry id="libmutter">
327 <term><filename class="libraryfile">libmutter-12.so</filename></term>
328 <listitem>
329 <para>
330 contains the <application>Mutter</application> API functions
331 </para>
332 <indexterm zone="mutter libmutter">
333 <primary sortas="c-libmutter">libmutter-12.so</primary>
334 </indexterm>
335 </listitem>
336 </varlistentry>
337
338 <varlistentry id="libmutter-test">
339 <term><filename class="libraryfile">libmutter-test-12.so</filename></term>
340 <listitem>
341 <para>
342 contains the <application>Mutter</application> test suite API
343 functions; this library is only installed if the test suite of
344 this package is enabled and it is needed by
345 <application>gnome-shell</application> test suite
346 </para>
347 <indexterm zone="mutter libmutter-test">
348 <primary sortas="c-libmutter-test">libmutter-test-12.so</primary>
349 </indexterm>
350 </listitem>
351 </varlistentry>
352
353 </variablelist>
354
355 </sect2>
356
357</sect1>
Note: See TracBrowser for help on using the repository browser.