glfs/x/installing/xwayland.xml
Pierre Labastie e1e58be454 Remove all ftp urls
neither firefox nor epiphany can download them, and they are not
well maintained, because rarely tested.
This is WIP because the "(HTTP)" part of "Download (HTTP)" will
need to be removed too.
But let's see what users think first...
2023-10-15 21:43:08 +02:00

275 lines
8.9 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY xwayland-download-http "&xorg-download-http;/xserver/xwayland-&xwayland-version;.tar.xz">
<!ENTITY xwayland-download-ftp " ">
<!ENTITY xwayland-md5sum "e46e0454a9aa8a6a732bdaf7875ea86e">
<!ENTITY xwayland-size "1.2 MB">
<!ENTITY xwayland-buildsize "14 MB (add 364 MB for tests)">
<!ENTITY xwayland-time "0.2 SBU (with parallelism=4; add 1.7 SBU for tests, not including clone time)">
]>
<sect1 id="xwayland" xreflabel="Xwayland-&xwayland-version;">
<?dbhtml filename="xwayland.html"?>
<title>Xwayland-&xwayland-version;</title>
<indexterm zone="xwayland">
<primary sortas="a-xwayland">xwayland</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to Xwayland</title>
<para>
The <application>Xwayland</application> package is an Xorg server
running on top of the wayland server. It has been separated from the
main Xorg server package. It allows running X clients inside a
wayland session.
</para>
&lfs120_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&xwayland-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&xwayland-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &xwayland-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &xwayland-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &xwayland-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &xwayland-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Xwayland Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="libxcvt"/>,
<xref linkend="pixman"/>,
<xref linkend="wayland-protocols"/>,
<xref role='runtime' linkend="xorg7-app"/> (runtime), and
<xref linkend="xorg7-font"/> (only font-util)
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="libepoxy"/>,
<xref linkend="libtirpc"/>, and
<xref linkend="mesa"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="git"/> (to download packages needed for the tests),
<xref linkend="libgcrypt"/>,
<xref linkend="nettle"/>,
<xref linkend="xmlto"/>,
<xref linkend="xorg7-legacy"/>
(only bdftopcf, for building fonts required for the tests),
<ulink url="https://gitlab.freedesktop.org/xorg/test/rendercheck">rendercheck</ulink> (for tests), and
<ulink url="https://wayland.pages.freedesktop.org/weston/">weston</ulink> (for tests)
</para>
</sect2>
<sect2 role="installation">
<title>Installation of Xwayland</title>
<para>
Install <application>xwayland</application> by running the following
commands:
</para>
<screen><userinput>sed -i '/install_man/,$d' meson.build &amp;&amp;
mkdir build &amp;&amp;
cd build &amp;&amp;
meson setup --prefix=$XORG_PREFIX \
--buildtype=release \
-Dxkb_output_dir=/var/lib/xkb \
.. &amp;&amp;
ninja</userinput></screen>
<para>
Building the test framework needs some work. First,
<ulink url="https://wayland.pages.freedesktop.org/weston/">weston</ulink>
brings in several dependencies, but the number can be reduced by
disabling unneeded features. The <command>meson</command> command
for a stripped down build of <application>weston</application> is shown
in <ulink
url="https://gitlab.freedesktop.org/xorg/xserver/-/blob/xwayland-22.1/.gitlab-ci/debian-install.sh">
Upstream continuous integration build</ulink>.
<!-- keep 22.1 above: they used to build it in gitlab-ci because debian
had an obsolete version of weston, but now they take weston from
debian so the command to build it has been removed. -->
</para>
<!--
<para>
Furthermore, an X server needs to be running during the build of
<application>xts</application>. If not running the tests in a
graphical environment, you'll need to enable <command>Xvfb</command>
by removing the <parameter>-Dxvfb=false</parameter> above. The
instructions below expect this has been done.
</para>
-->
<para>
Running the tests involves downloading two other frameworks, in addition
to the mentioned optional dependencies:
</para>
<screen remap="test"><userinput>mkdir tools &amp;&amp;
pushd tools &amp;&amp;
git clone https://gitlab.freedesktop.org/mesa/piglit.git --depth 1 &amp;&amp;
cat &gt; piglit/piglit.conf &lt;&lt; EOF &amp;&amp;
<literal>[xts]
path=$(pwd)/xts
EOF</literal>
git clone https://gitlab.freedesktop.org/xorg/test/xts --depth 1 &amp;&amp;
export DISPLAY=:22 &amp;&amp;
../hw/vfb/Xvfb $DISPLAY &amp;
VFB_PID=$! &amp;&amp;
cd xts &amp;&amp;
CFLAGS=-fcommon ./autogen.sh &amp;&amp;
make &amp;&amp;
kill $VFB_PID &amp;&amp;
unset DISPLAY VFB_PID &amp;&amp;
popd</userinput></screen>
<para>
Then the tests can be run with:
</para>
<screen remap="test"><userinput>XTEST_DIR=$(pwd)/tools/xts PIGLIT_DIR=$(pwd)/tools/piglit ninja test</userinput></screen>
<!-- The xfontset tests fail on my system -renodr -->
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root" revision="sysv"><userinput>ninja install &amp;&amp;
cat &gt;&gt; /etc/sysconfig/createfiles &lt;&lt; "EOF"
<literal>/tmp/.X11-unix dir 1777 root root</literal>
EOF</userinput></screen>
<screen role="root" revision="systemd"><userinput>ninja install</userinput></screen>
<para>
If <xref linkend='xorg-server'/> is not installed and you do not plan
to install it later, you can install <command>Xvfb</command> from this
package. As the &root; user:
</para>
<screen role="nodump"><userinput>install -vm755 hw/vfb/Xvfb /usr/bin</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<command>sed -i '/install_man/,$d' meson.build</command>: Prevents
installing a manual page for <command>Xserver</command>,
which is also provided by <xref linkend='xorg-server'/>. Remove this
command if <xref linkend='xorg-server'/> is not installed and you
don't plan to install it later.
</para>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/meson-buildtype-release.xml"/>
<!--
<para>
<parameter>-Dxvfb=false</parameter>: Prevents building the
<command>xvfb</command> program, which is also installed by
<xref linkend="xorg-server"/>. Remove this option if you do not plan to
install the X server.
</para>
<para>
<command>mkdir -pv /etc/X11/xorg.conf.d</command>: This directory is
needed to put configuration files for Xwayland. This command ensures
that it exists, as some applications might use it without first
creating it.
</para>
-->
<para revision="sysv">
<command>cat &gt;&gt; /etc/sysconfig/createfiles...</command>: This
command creates the <filename class="directory">/tmp/.X11-unix</filename>
directory at startup, and ensures that the permissions and ownership
are correct as required by applications using Xwayland.
</para>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Program</segtitle>
<segtitle>Installed Library</segtitle>
<segtitle>Installed Directory</segtitle>
<seglistitem>
<seg>
Xwayland
</seg>
<seg>
None
</seg>
<seg>
None
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="Xwayland">
<term><command>Xwayland</command></term>
<listitem>
<para>
Allows X clients to run under wayland
</para>
<indexterm zone="xwayland Xwayland">
<primary sortas="b-Xwayland">Xwayland</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>