Some stuff involving D-Bus and stuff.

This commit is contained in:
Zeckmathederg 2024-10-20 16:41:32 -06:00
parent e9433410a6
commit 08c4970c9f
14 changed files with 366 additions and 87 deletions

View File

@ -39,6 +39,15 @@
</listitem>
-->
<listitem>
<para>October 20th, 2024</para>
<itemizedlist>
<listitem>
<para>[Zeckmathederg] - Some stuff involving D-Bus and stuff.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>October 19th, 2024</para>
<itemizedlist>

View File

@ -66,7 +66,7 @@
OpenRC. Systemd will take more work and the process involves checking
<ulink url="&blfs-svn;"/> and compare the instructions for each package.
There aren't many packages that require this process except ones that
may need to be started as a service. <xref linkend="dbus"/> is especially
may need to be started as a service. <xref linkend="dbus-pass1"/> is especially
different so watch out for it if you are using Systemd. The reason for not
using Systemd is that Systemd makes things more complicated, a lot of users
use more simplistic init systems like SysV for their LFS system, and including

View File

@ -29,7 +29,9 @@
<command>llvm-config</command> to use, etc. This is required for Mesa's
Nouveau and/or Swrast Vulkan drivers. It is also needed for Gstreamer
(not in the book), which is a recommended dependency of
<xref linkend="wine"/>.
<xref linkend="wine"/>. It can also turn into a requirement for various
packages if you are wanting to upgrade packages using Meson and you are
wanting to install 32-bit versions of those packages.
</para>
<para>

View File

@ -56,7 +56,7 @@
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="alsa-lib"/>,
<xref linkend="dbus"/>,
<xref linkend="dbus-pass1"/> or <xref linkend="dbus-pass2"/>,
<xref linkend="elogind"/>
<xref linkend="glib2"/>,
<ulink url="&blfs-svn;/multimedia/speex.html">Speex</ulink>, and

View File

@ -8,33 +8,25 @@
<!ENTITY dbus-download-ftp " ">
]>
<sect1 id="dbus" xreflabel="dbus-&dbus-version;">
<?dbhtml filename="dbus.html"?>
<sect1 id="dbus-pass2" xreflabel="dbus-&dbus-version; - Pass 2">
<?dbhtml filename="dbus-pass2.html"?>
<title>dbus-&dbus-version;</title>
<title>dbus-&dbus-version; - Pass 2</title>
<indexterm zone="dbus">
<primary sortas="a-D-Bus">D-Bus</primary>
<indexterm zone="dbus-pass2">
<primary sortas="a-D-Bus-Pass2">D-Bus-Pass2</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to D-Bus</title>
<title>Introduction to D-Bus - Pass 2</title>
<para revision="sysv">
<application>D-Bus</application> is a message bus system, a simple way
for applications to talk to one another.
<application>D-Bus</application> supplies both a system daemon (for
events such as <quote>new hardware device added</quote> or <quote>printer
queue changed</quote>) and a per-user-login-session daemon (for general
IPC needs among user applications). Also, the message bus is built on top
of a general one-to-one message passing framework, which can be used by
any two applications to communicate directly (without going through the
message bus daemon).
<para>
D-Bus was already compiled before, but not a useful program,
<command>dbus-launch</command>. This pass will cover it, and some setup
required.
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
@ -63,18 +55,7 @@
</sect2>
<sect2 role="installation">
<title>Installation of D-Bus</title>
<!--
<para revision="sysv">
If they do not already exist,
as the <systemitem class="username">root</systemitem> user, create a
system user and group to handle the system message bus activity:
</para>
<screen role="root" revision="sysv"><userinput>groupadd -g 18 messagebus &amp;&amp;
useradd -c "D-Bus Message Daemon User" -d /var/run/dbus \
-u 18 -g messagebus -s /bin/false messagebus</userinput></screen>
-->
<title>Installation of D-Bus - Pass 2</title>
<para>
Install <application>D-Bus</application> by running the following
@ -83,9 +64,6 @@ useradd -c "D-Bus Message Daemon User" -d /var/run/dbus \
<command>configure</command> command shown below):
</para>
<!-- Only usefull for systemd: it installs the services files in the
systemd/user
- -enable-user-session \ -->
<screen><userinput>./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
@ -129,17 +107,6 @@ ln -sfv ../../lib/$(readlink /usr/lib/libdbus-1.so) /usr/lib/libdbus-1.so</useri
<screen role="root"><userinput>chown -v root:messagebus /usr/libexec/dbus-daemon-launch-helper &amp;&amp;
chmod -v 4750 /usr/libexec/dbus-daemon-launch-helper</userinput></screen>
<para>
If you are still building your system in chroot or you did not start the
daemon yet, but you want to compile some packages that require
<application>D-Bus</application>, generate the
<application>D-Bus</application> UUID to avoid warnings when compiling
some packages with the following command as the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>dbus-uuidgen --ensure</userinput></screen>
<para>
If using elogind, create a symlink to the
<filename>/var/lib/dbus/machine-id</filename> file:
@ -213,15 +180,15 @@ chmod -v 4750 /usr/libexec/dbus-daemon-launch-helper</userinput></scr
<filename>/etc/dbus-1/system.d/*</filename>
</para>
<indexterm zone="dbus dbus-config">
<indexterm zone="dbus-pass2 dbus-config">
<primary sortas="e-etc-dbus-1-session.conf">/etc/dbus-1/session.conf</primary>
</indexterm>
<indexterm zone="dbus dbus-config">
<indexterm zone="dbus-pass2 dbus-config">
<primary sortas="e-etc-dbus-1/system.conf">/etc/dbus-1/system.conf</primary>
</indexterm>
<indexterm zone="dbus dbus-config">
<indexterm zone="dbus-pass2 dbus-config">
<primary sortas="e-etc-dbus-1-system.d-star">/etc/dbus-1/system.d/*</primary>
</indexterm>
@ -275,22 +242,19 @@ EOF</userinput></screen>
revision="sysv">blfs-bootscripts</ulink> package.
</para>
<indexterm zone="dbus dbus-session">
<primary sortas="f-dbus">dbus</primary>
<indexterm zone="dbus-pass2 dbus-session">
<primary sortas="f-dbus-pass2">dbus-pass2</primary>
</indexterm>
<screen role="root"><userinput>make install-dbus</userinput></screen>
<para>
If this is the first time to install
<application>D-Bus</application> on the system and you are not
operating in a chroot environment, you can immediately start
<command>dbus-daemon</command> without rebooting the system:
Now would be a good idea to reboot and test to see if D-Bus,
elogind, etc. works, and you can login. Run the command
<command>loginctl</command> after ensuring D-Bus is running. The result
should indicate that a SESSION and a SEAT have been created.
</para>
<!-- nodump because maybe the user is building in chroot -->
<screen role="nodump"><userinput>/etc/init.d/dbus start</userinput></screen>
<para>
Note that this boot script only starts the system-wide
<application>D-Bus</application> daemon. Each user requiring access to
@ -346,7 +310,7 @@ EOF</userinput></screen>
<para>
is used to clean up leftover sockets in a directory
</para>
<indexterm zone="dbus dbus-cleanup-sockets">
<indexterm zone="dbus-pass2 dbus-cleanup-sockets">
<primary sortas="b-dbus-cleanup-sockets">dbus-cleanup-sockets</primary>
</indexterm>
</listitem>
@ -358,7 +322,7 @@ EOF</userinput></screen>
<para>
is the <application>D-Bus</application> message bus daemon
</para>
<indexterm zone="dbus dbus-daemon">
<indexterm zone="dbus-pass2 dbus-daemon">
<primary sortas="b-dbus-daemon">dbus-daemon</primary>
</indexterm>
</listitem>
@ -372,7 +336,7 @@ EOF</userinput></screen>
script. It would normally be called from a user's login
scripts
</para>
<indexterm zone="dbus dbus-launch">
<indexterm zone="dbus-pass2 dbus-launch">
<primary sortas="b-dbus-launch">dbus-launch</primary>
</indexterm>
</listitem>
@ -385,7 +349,7 @@ EOF</userinput></screen>
is used to monitor messages going through a
<application>D-Bus</application> message bus
</para>
<indexterm zone="dbus dbus-monitor">
<indexterm zone="dbus-pass2 dbus-monitor">
<primary sortas="b-dbus-monitor">dbus-monitor</primary>
</indexterm>
</listitem>
@ -397,7 +361,7 @@ EOF</userinput></screen>
<para>
starts a process as a new <application>D-Bus</application> session
</para>
<indexterm zone="dbus dbus-run-session">
<indexterm zone="dbus-pass2 dbus-run-session">
<primary sortas="b-dbus-run-session">dbus-run-session</primary>
</indexterm>
</listitem>
@ -410,7 +374,7 @@ EOF</userinput></screen>
is used to send a message to a <application>D-Bus</application>
message bus
</para>
<indexterm zone="dbus dbus-send">
<indexterm zone="dbus-pass2 dbus-send">
<primary sortas="b-dbus-send">dbus-send</primary>
</indexterm>
</listitem>
@ -424,7 +388,7 @@ EOF</userinput></screen>
tool; it is a multi-purpose tool for debugging and profiling
<application>D-Bus</application>
</para>
<indexterm zone="dbus dbus-test-tool">
<indexterm zone="dbus-pass2 dbus-test-tool">
<primary sortas="b-dbus-test-tool">dbus-test-tool</primary>
</indexterm>
</listitem>
@ -440,7 +404,7 @@ EOF</userinput></screen>
<command>dbus-daemon --session</command> when it activates session
services without using systemd
</para>
<indexterm zone="dbus dbus-update-activation-environment">
<indexterm zone="dbus-pass2 dbus-update-activation-environment">
<primary sortas="b-dbus-update-activation-environment">
dbus-update-activation-environment</primary>
</indexterm>
@ -453,7 +417,7 @@ EOF</userinput></screen>
<para>
is used to generate a universally unique ID
</para>
<indexterm zone="dbus dbus-uuidgen">
<indexterm zone="dbus-pass2 dbus-uuidgen">
<primary sortas="b-dbus-uuidgen">dbus-uuidgen</primary>
</indexterm>
</listitem>
@ -470,7 +434,7 @@ EOF</userinput></screen>
<command>dbus-daemon</command> is an application that uses this
library to implement a message bus daemon
</para>
<indexterm zone="dbus libdbus-1">
<indexterm zone="dbus-pass2 libdbus-1">
<primary sortas="c-libdbus-1">libdbus-1.so</primary>
</indexterm>
</listitem>

View File

@ -46,8 +46,8 @@
<para role="recommended">
<xref linkend="glib2"/> (required for Pango; GObject Introspection
required for building GNOME),
<xref linkend="icu"/>, and
<xref role="first" linkend="freetype2-pass1"/>
<xref linkend="icu"/>,
<xref role="first" linkend="freetype2-pass1"/>, and
<xref linkend="mesonfiles"/> (for lib32)
</para>

View File

@ -75,7 +75,7 @@
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend='dbus'/>,
<xref linkend='dbus-pass2'/>,
<xref role="runtime" linkend="elogind"/> (runtime;
<systemitem class='library'>libelogind</systemitem> also referred
at build time but it's not really useful),

View File

@ -16,6 +16,7 @@
<!-- SECURITY -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="security/secdummy.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="security/dbus-pass1.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="security/linux-pam.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="security/shadow.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="security/elogind.xml"/>
@ -76,7 +77,7 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dps/basicx/x/x7lib.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dps/basicx/x/libxcvt.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dps/basicx/other/cmake.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dps/basicx/other/dbus.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dps/basicx/other/dbus-pass2.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dps/basicx/other/libunwind.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dps/basicx/other/nettle.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dps/basicx/other/gnutls.xml"/>

View File

@ -0,0 +1,235 @@
<?xml version="1.0" encoding="UTF-8"?>
<!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 dbus-download-http "https://dbus.freedesktop.org/releases/dbus/dbus-&dbus-version;.tar.xz">
<!ENTITY dbus-download-ftp " ">
]>
<sect1 id="dbus-pass1" xreflabel="dbus-&dbus-version; - Pass 1">
<?dbhtml filename="dbus-pass1.html"?>
<title>dbus-&dbus-version; - Pass 1</title>
<indexterm zone="dbus-pass1">
<primary sortas="a-dbus-pass1">dbus-pass1</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to D-Bus</title>
<para>
<application>D-Bus</application> is a message bus system, a simple way
for applications to talk to one another.
<application>D-Bus</application> supplies both a system daemon (for
events such as <quote>new hardware device added</quote> or <quote>printer
queue changed</quote>) and a per-user-login-session daemon (for general
IPC needs among user applications). Also, the message bus is built on top
of a general one-to-one message passing framework, which can be used by
any two applications to communicate directly (without going through the
message bus daemon).
</para>
<para>
This is the first pass. A useful program, <command>dbus-launch</command>,
will be compiled later, but is not needed now. It depends on Xorg
libraries being installed beforehand.
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&dbus-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&dbus-download-ftp;"/>
</para>
</listitem>
</itemizedlist>
</sect2>
<sect2 role="installation">
<title>Installation of D-Bus - Pass 1</title>
<para>
Install <application>D-Bus</application> by running the following
commands (you may wish to review the output from <command>./configure
--help</command> first and add any desired parameters to the
<command>configure</command> command shown below):
</para>
<screen><userinput>./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--runstatedir=/run \
--disable-doxygen-docs \
--disable-xml-docs \
--disable-static \
--with-systemduserunitdir=no \
--with-systemdsystemunitdir=no \
--docdir=/usr/share/doc/dbus-&dbus-version; \
--with-system-socket=/run/dbus/system_bus_socket &amp;&amp;
make</userinput></screen>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make install</userinput></screen>
<!-- FIXME: No longer needed with usr merge
<para>
The shared library needs to be moved to
<filename class="directory">/lib</filename>, and as a result the
<filename class="extension">.so</filename> file in
<filename class="directory">/usr/lib</filename> will need to be
recreated. Run the following command as the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>mv -v /usr/lib/libdbus-1.so.* /lib &amp;&amp;
ln -sfv ../../lib/$(readlink /usr/lib/libdbus-1.so) /usr/lib/libdbus-1.so</userinput></screen>
-->
<para>
If you are using a DESTDIR install,
<command>dbus-daemon-launch-helper</command> needs to be fixed
afterwards. Issue, as <systemitem class="username">root</systemitem>
user:
</para>
<screen role="root"><userinput>chown -v root:messagebus /usr/libexec/dbus-daemon-launch-helper &amp;&amp;
chmod -v 4750 /usr/libexec/dbus-daemon-launch-helper</userinput></screen>
<para>
Generate the <application>D-Bus</application> UUID to avoid
warnings when compiling some packages with the following command as the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>dbus-uuidgen --ensure</userinput></screen>
<para>
If using elogind, create a symlink to the
<filename>/var/lib/dbus/machine-id</filename> file:
</para>
<screen role="root"><userinput>ln -sfv /var/lib/dbus/machine-id /etc</userinput></screen>
</sect2>
<sect2>
<title>32-bit Installation of D-Bus</title>
<note>
<para>
The program <command>dbus-launch</command> will not need to have a
32-bit version, so this 32-bit compilation will be the first and only
needed pass unless you are upgrading D-Bus.
</para>
</note>
<para>
First clean the directory:
</para>
<screen><userinput>make distclean</userinput></screen>
<para>
Now install lib32-D-Bus by running the following commands:
</para>
<screen><userinput>CC="gcc -m32" CXX="g++ -m32" \
PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \
./configure --prefix=/usr \
--libdir=/usr/lib32 \
--host=i686-pc-linux-gnu \
--sysconfdir=/etc \
--localstatedir=/var \
--runstatedir=/run \
--disable-doxygen-docs \
--disable-xml-docs \
--disable-static \
--with-systemduserunitdir=no \
--with-systemdsystemunitdir=no \
--with-system-socket=/run/dbus/system_bus_socket &amp;&amp;
make</userinput></screen>
<para>
Now as the &root; user:
</para>
<screen role="root"><userinput>make DESTDIR=$PWD/DESTDIR install
cp -vR DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR
ldconfig</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<parameter>--disable-doxygen-docs</parameter>: This switch disables
doxygen documentation build and install, if you have
<application>doxygen</application> installed. If
<application>doxygen</application> is installed, and you wish to build
them, remove this parameter.
</para>
<para>
<parameter>--disable-xml-docs</parameter>: This switch disables html
documentation build and install, if you have
<application>xmlto</application> installed. If
<application>xmlto</application> is installed, and you wish to build
them, remove this parameter.
</para>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/static-libraries.xml"/>
<para>
<parameter>--with-systemd{user,system}unitdir=no</parameter>: These
switches disable installation of systemd units on elogind based systems.
</para>
<para>
<parameter>--with-system-socket=/run/dbus/system_bus_socket</parameter>:
This parameter specifies the location of the system bus socket.
</para>
<para>
<parameter>--enable-tests</parameter>: Builds extra parts of the code to
support all tests. Do not use on a production build.
</para>
<para>
<option>--enable-embedded-tests</option>: Builds extra parts of the
code to support only unit tests. Do not use on a production build.
</para>
<para>
<parameter>--enable-asserts</parameter>: Enables debugging code to run
assertions for statements normally assumed to be true. This prevents a
warning that '<parameter>--enable-tests</parameter>' on its own is only
useful for profiling and might not give true results for all tests, but
adds its own NOTE that this should not be used in a production build.
</para>
</sect2>
<sect2 role="content">
<title>Contents</title>
<para>
See the full list of contents at <xref linkend="dbus-pass2"/>.
</para>
</sect2>
</sect1>

View File

@ -33,8 +33,6 @@
<filename class="directory">/run/systemd</filename> layout.
</para>
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
@ -53,7 +51,7 @@
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref role="runtime" linkend="dbus"/> (runtime),
<xref role="runtime" linkend="dbus-pass1"/> (runtime),
<xref linkend="linux-pam"/>, and
<xref role="runtime" linkend="polkit"/> (runtime)
</para>
@ -106,6 +104,43 @@ ln -sfvn elogind /usr/include/systemd</userinput></screen>
</sect2>
<sect2 role="installation">
<title>32-bit Installation of elogind</title>
<para>
First clean the build directory:
</para>
<screen><userinput>rm -rf *</userinput></screen>
<para>
Install lib32-<application>elogind</application> by running the following
commands:
</para>
<screen><userinput>CC="gcc -m32" CXX="g++ -m32" \
PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \
meson setup .. \
--prefix=/usr \
--libdir=/usr/lib32 \
--buildtype=release \
-D cgroup-controller=elogind \
-D dev-kvm-mode=0660 \
-D dbuspolicydir=/etc/dbus-1/system.d &amp;&amp;
ninja</userinput></screen>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>DESTDIR=$PWD/DESTDIR ninja install &amp;&amp;
cp -vR DESTDIR/usr/lib32/* /usr/lib32 &amp;&amp;
rm -rf DESTDIR &amp;&amp;
ln -sfv libelogind.pc /usr/lib32/pkgconfig/libsystemd.pc &amp;&amp;
ldconfig</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<!--
@ -229,12 +264,9 @@ password required pam_deny.so
EOF</userinput></screen>
<note>
<para>After completion of <application>elogind</application>,
you should check that it functions properly. First ensure that
<application>dbus</application> is running. It may be easiest
to do this by rebooting the system. After logging in again, run
the command <command>loginctl</command>. The result should indicate
that a SESSION and a SEAT have been created.</para>
<para>Now continue on until you reach <xref linkend="dbus-pass2"/>,
install it, and follow the configuration instructions on that page to see
if elogind is working properly.</para>
</note>
</sect3>

View File

@ -33,8 +33,6 @@
users.
</para>
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
@ -198,6 +196,44 @@ chmod -v 4755 /usr/sbin/unix_chkpwd</userinput></screen>
</sect2>
<sect2 role="installation">
<title>32-bit Installation of Linux PAM</title>
<para>
First clean the directory:
</para>
<screen><userinput>make distclean</userinput></screen>
<para>
Now install lib32-<application>Linux-PAM</application> by
running the following commands:
</para>
<screen><userinput>CC="gcc -m32" CXX="g++ -m32" \
PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \
./configure --prefix=/usr \
--libdir=/usr/lib32 \
--sbindir=/usr/sbin \
--sysconfdir=/etc \
--host=i686-pc-linux-gnu \
--enable-securedir=/usr/lib/security &amp;&amp;
make</userinput></screen>
<para>
Now, as the <systemitem class="username">root</systemitem>
user:
</para>
<screen role="root"><userinput>make DESTDIR=$PWD/DESTDIR install &amp;&amp;
cp -vR DESTDIR/usr/lib32/* /usr/lib32 &amp;&amp;
cp -vR DESTDIR/usr/lib/* /usr/lib32 &amp;&amp;
rm -rf DESTDIR &amp;&amp;
ldconfig</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>

View File

@ -567,7 +567,7 @@ done</userinput></screen>
<para>
A list of the installed files, along with their short descriptions can be
found at
<ulink url="&lfs-root;/chapter08/shadow.html#contents-shadow"/>.
<ulink url="&lfs-website;/~thomas/multilib/chapter08/shadow.html#contents-shadow"/>.
</para>
</sect2>

View File

@ -29,7 +29,7 @@
<para>
<xref linkend="alsa-plugins"/>,
<xref linkend="curl"/>,
<xref linkend="dbus"/>,
<xref linkend="dbus-pass2"/>,
Display server (<xref linkend="xorg-server"/> or
<xref linkend="wayland"/> w/ <xref linkend="xwayland"/>),
<xref linkend="libglvnd"/> (32-bit is required for multilib),

View File

@ -54,7 +54,7 @@
<para>
Audio (<xref linkend="alsa-plugins"/> and/or
<xref linkend="pulseaudio"/>), <xref linkend="dbus"/>,
<xref linkend="pulseaudio"/>), <xref linkend="dbus-pass2"/>,
Display server (<xref linkend="xorg-server"/> or
<xref linkend="wayland"/> w/ <xref linkend="xwayland"/>),
<xref linkend="fontconfig"/>,