glfs/general/sysutils/accountsservice.xml
Xi Ruoyao c0bc0a9eac
Update to glib-2.80.0 and gobject-introspection-1.80.0
Merge gobject-introspection into glib page to better handle a circular
dependency between these two packages.
2024-03-10 23:41:04 +08:00

276 lines
8.3 KiB
XML

<?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 accountsservice-download-http
"https://www.freedesktop.org/software/accountsservice/accountsservice-&accountsservice-version;.tar.xz">
<!ENTITY accountsservice-download-ftp " ">
<!ENTITY accountsservice-md5sum "03dccfe1b306b7ca19743e86d118e64d">
<!ENTITY accountsservice-size "621 KB">
<!ENTITY accountsservice-buildsize "9.8 MB (add 0.5 MB for tests)">
<!ENTITY accountsservice-time "less than 0.1 SBU (with tests)">
]>
<sect1 id="accountsservice" xreflabel="AccountsService-&accountsservice-version;">
<?dbhtml filename="accountsservice.html"?>
<title>AccountsService-&accountsservice-version;</title>
<indexterm zone="accountsservice">
<primary sortas="a-AccountsService">AccountsService</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to AccountsService</title>
<para>
The <application>AccountsService</application> package provides a
set of <application>D-Bus</application> interfaces for querying
and manipulating user account information and an implementation
of those interfaces based on the
<ulink role='man' url='&man;usermod.8'>usermod(8)</ulink>,
<ulink role='man' url='&man;useradd.8'>useradd(8)</ulink>, and
<ulink role='man' url='&man;userdel.8'>userdel(8)</ulink> commands.
</para>
&lfs121_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&accountsservice-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&accountsservice-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &accountsservice-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &accountsservice-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &accountsservice-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &accountsservice-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">AccountsService Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<!--<xref linkend="libgcrypt"/> and-->
<xref linkend="polkit"/>
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
&gobject-introspection;,
<phrase revision="sysv"><xref linkend="elogind"/></phrase>
<phrase revision="systemd"><xref role='runtime' linkend="systemd"/>
(runtime)</phrase>, and
<xref linkend="vala"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="gtk-doc"/> and
<xref linkend="xmlto"/>
</para>
<bridgehead renderas="sect4">Optional (for tests)</bridgehead>
<para role="optional">
<xref linkend="python-dbusmock"/> and
<xref linkend="pygobject3"/>
<!-- I did not have gtk-doc installed this time, and it worked fine. -->
</para>
</sect2>
<sect2 role="installation">
<title>Installation of AccountsService</title>
<para>
First, rename a directory whose presence prevents the build system from
running if <xref linkend="python-dbusmock"/> is not installed:
</para>
<screen><userinput>mv tests/dbusmock{,-tests}</userinput></screen>
<para>
Then fix a test script so that the new directory is found, and adapt
it for Python 3.12.0 or later:
</para>
<screen><userinput>sed -e '/accounts_service\.py/s/dbusmock/dbusmock-tests/' \
-e 's/assertEquals/assertEqual/' \
-i tests/test-libaccountsservice.py</userinput></screen>
<para>
Fix one test that fails if the <option>en_IE.UTF-8</option> locale
is not installed:
</para>
<screen><userinput>sed -i '/^SIMULATED_SYSTEM_LOCALE/s/en_IE.UTF-8/en_HK.iso88591/' tests/test-daemon.py</userinput></screen>
<para>
Install <application>AccountsService</application> by running the following
commands:
</para>
<screen revision="sysv"><userinput>mkdir build &amp;&amp;
cd build &amp;&amp;
meson setup .. \
--prefix=/usr \
--buildtype=release \
-Dadmin_group=adm \
-Delogind=true \
-Dsystemdsystemunitdir=no &amp;&amp;
ninja</userinput></screen>
<screen revision="systemd"><userinput>mkdir build &amp;&amp;
cd build &amp;&amp;
meson setup .. \
--prefix=/usr \
--buildtype=release \
-Dadmin_group=adm &amp;&amp;
ninja</userinput></screen>
<para>
To test the package, issue <command>ninja test</command>.
</para>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>ninja install</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/meson-buildtype-release.xml"/>
<para>
<parameter>-Dadmin_group=adm</parameter>: This switch sets
the group for administrator accounts.
</para>
<para>
<option>-Ddocbook=true</option>: This switch enables building
the D-Bus interface API documentation (needs <xref linkend="xmlto"/>).
</para>
<para>
<option>-Dgtk_doc=true</option>: This switch enables building
the libaccountsservice API documentation (needs
<xref linkend="gtk-doc"/>).
</para>
<para>
<option>-Dvapi=false</option>: This switch disables building
the vala bindings. Use it if you have not installed
<xref linkend="vala"/>.
</para>
</sect2>
<sect2 role="configuration">
<title>Configuring AccountsService</title>
<para>
To allow users in the adm group to be listed as Administrators,
execute the following commands as the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>cat &gt; /etc/polkit-1/rules.d/40-adm.rules &lt;&lt; "EOF"
<literal>polkit.addAdminRule(function(action, subject) {
return ["unix-group:adm"];
});</literal>
EOF</userinput></screen>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
accounts-daemon (in
<filename class="directory">/usr/libexec</filename>)
</seg>
<seg>
libaccountsservice.so
</seg>
<seg>
/usr/include/accountsservice-1.0,
/usr/share/accountsservice,
/usr/share/gtk-doc/html/libaccountsservice (optional), and
/var/lib/AccountsService
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="accounts-daemon">
<term><command>accounts-daemon</command></term>
<listitem>
<para>
is the <application>AccountsService</application> daemon
</para>
<indexterm zone="accountsservice accounts-daemon">
<primary sortas="b-accounts-daemon">accounts-daemon</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libaccountsservice">
<term><filename class="libraryfile">libaccountsservice.so</filename></term>
<listitem>
<para>
contains the <application>AccountsService</application> API functions
</para>
<indexterm zone="accountsservice libaccountsservice">
<primary sortas="c-libaccountsservice">libaccountsservice.so</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>