source: general/sysutils/accountsservice.xml@ 4fc30e49

12.2 gimp3 lazarus trunk xry111/for-12.3 xry111/spidermonkey128
Last change on this file since 4fc30e49 was df2e08c8, checked in by Xi Ruoyao <xry111@…>, 3 months ago

accountsservice: Adapt for GCC 14

  • Property mode set to 100644
File size: 8.9 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
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 accountsservice-download-http
8 "https://www.freedesktop.org/software/accountsservice/accountsservice-&accountsservice-version;.tar.xz">
9 <!ENTITY accountsservice-download-ftp " ">
10 <!ENTITY accountsservice-md5sum "03dccfe1b306b7ca19743e86d118e64d">
11 <!ENTITY accountsservice-size "621 KB">
12 <!ENTITY accountsservice-buildsize "9.8 MB (add 0.5 MB for tests)">
13 <!ENTITY accountsservice-time "less than 0.1 SBU (with tests)">
14]>
15
16<sect1 id="accountsservice" xreflabel="AccountsService-&accountsservice-version;">
17 <?dbhtml filename="accountsservice.html"?>
18
19
20 <title>AccountsService-&accountsservice-version;</title>
21
22 <indexterm zone="accountsservice">
23 <primary sortas="a-AccountsService">AccountsService</primary>
24 </indexterm>
25
26 <sect2 role="package">
27 <title>Introduction to AccountsService</title>
28
29 <para>
30 The <application>AccountsService</application> package provides a
31 set of <application>D-Bus</application> interfaces for querying
32 and manipulating user account information and an implementation
33 of those interfaces based on the
34 <ulink role='man' url='&man;usermod.8'>usermod(8)</ulink>,
35 <ulink role='man' url='&man;useradd.8'>useradd(8)</ulink>, and
36 <ulink role='man' url='&man;userdel.8'>userdel(8)</ulink> commands.
37 </para>
38
39 &lfs121_checked;
40
41 <bridgehead renderas="sect3">Package Information</bridgehead>
42 <itemizedlist spacing="compact">
43 <listitem>
44 <para>
45 Download (HTTP): <ulink url="&accountsservice-download-http;"/>
46 </para>
47 </listitem>
48 <listitem>
49 <para>
50 Download (FTP): <ulink url="&accountsservice-download-ftp;"/>
51 </para>
52 </listitem>
53 <listitem>
54 <para>
55 Download MD5 sum: &accountsservice-md5sum;
56 </para>
57 </listitem>
58 <listitem>
59 <para>
60 Download size: &accountsservice-size;
61 </para>
62 </listitem>
63 <listitem>
64 <para>
65 Estimated disk space required: &accountsservice-buildsize;
66 </para>
67 </listitem>
68 <listitem>
69 <para>
70 Estimated build time: &accountsservice-time;
71 </para>
72 </listitem>
73 </itemizedlist>
74
75 <bridgehead renderas="sect3">AccountsService Dependencies</bridgehead>
76
77 <bridgehead renderas="sect4">Required</bridgehead>
78 <para role="required">
79 <!--<xref linkend="libgcrypt"/> and-->
80 <xref linkend="polkit"/>
81 </para>
82
83 <bridgehead renderas="sect4">Recommended</bridgehead>
84 <para role="recommended">
85 &gobject-introspection;,
86 <phrase revision="sysv"><xref linkend="elogind"/></phrase>
87 <phrase revision="systemd"><xref role='runtime' linkend="systemd"/>
88 (runtime)</phrase>, and
89 <xref linkend="vala"/>
90 </para>
91
92 <bridgehead renderas="sect4">Optional</bridgehead>
93 <para role="optional">
94 <xref linkend="gtk-doc"/> and
95 <xref linkend="xmlto"/>
96 </para>
97
98 <bridgehead renderas="sect4">Optional (for tests)</bridgehead>
99 <para role="optional">
100 <xref linkend="python-dbusmock"/> and
101 <xref linkend="pygobject3"/>
102 <!-- I did not have gtk-doc installed this time, and it worked fine. -->
103 </para>
104
105 </sect2>
106
107 <sect2 role="installation">
108 <title>Installation of AccountsService</title>
109
110 <para>
111 First, rename a directory whose presence prevents the build system from
112 running if <xref linkend="python-dbusmock"/> is not installed:
113 </para>
114
115<screen><userinput>mv tests/dbusmock{,-tests}</userinput></screen>
116
117 <para>
118 Then fix a test script so that the new directory is found, and adapt
119 it for Python 3.12.0 or later:
120 </para>
121
122<screen><userinput>sed -e '/accounts_service\.py/s/dbusmock/dbusmock-tests/' \
123 -e 's/assertEquals/assertEqual/' \
124 -i tests/test-libaccountsservice.py</userinput></screen>
125
126 <para>
127 Fix one test that fails if the <option>en_IE.UTF-8</option> locale
128 is not installed:
129 </para>
130
131<screen><userinput>sed -i '/^SIMULATED_SYSTEM_LOCALE/s/en_IE.UTF-8/en_HK.iso88591/' tests/test-daemon.py</userinput></screen>
132
133 <para>
134 Install <application>AccountsService</application> by running the following
135 commands:
136 </para>
137
138<screen revision="sysv"><userinput>mkdir build &amp;&amp;
139cd build &amp;&amp;
140
141meson setup .. \
142 --prefix=/usr \
143 --buildtype=release \
144 -Dadmin_group=adm \
145 -Delogind=true \
146 -Dsystemdsystemunitdir=no</userinput></screen>
147
148<screen revision="systemd"><userinput>mkdir build &amp;&amp;
149cd build &amp;&amp;
150
151meson setup .. \
152 --prefix=/usr \
153 --buildtype=release \
154 -Dadmin_group=adm</userinput></screen>
155
156 <!-- We have to do this after meson setup because mocklibc is extracted
157 from a tarball by the meson setup command. -->
158 <para>
159 Now adapt the shipped mocklibc copy to allow building the test suite
160 with GCC 14 or later:
161 </para>
162
163<screen><userinput>grep 'print_indent' ../subprojects/mocklibc-1.0/src/netgroup.c \
164 | sed 's/ {/;/' >> ../subprojects/mocklibc-1.0/src/netgroup.h &amp;&amp;
165sed -i '1i#include &lt;stdio.h&gt;' \
166 ../subprojects/mocklibc-1.0/src/netgroup.h</userinput></screen>
167
168 <para>
169 Build the package:
170 </para>
171
172 <screen><userinput>ninja</userinput></screen>
173
174 <para>
175 To test the package, issue <command>ninja test</command>.
176 </para>
177
178 <para>
179 Now, as the <systemitem class="username">root</systemitem> user:
180 </para>
181
182<screen role="root"><userinput>ninja install</userinput></screen>
183
184 </sect2>
185
186 <sect2 role="commands">
187 <title>Command Explanations</title>
188
189 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
190 href="../../xincludes/meson-buildtype-release.xml"/>
191
192 <para>
193 <parameter>-Dadmin_group=adm</parameter>: This switch sets
194 the group for administrator accounts.
195 </para>
196
197 <para>
198 <option>-Ddocbook=true</option>: This switch enables building
199 the D-Bus interface API documentation (needs <xref linkend="xmlto"/>).
200 </para>
201
202 <para>
203 <option>-Dgtk_doc=true</option>: This switch enables building
204 the libaccountsservice API documentation (needs
205 <xref linkend="gtk-doc"/>).
206 </para>
207
208 <para>
209 <option>-Dvapi=false</option>: This switch disables building
210 the vala bindings. Use it if you have not installed
211 <xref linkend="vala"/>.
212 </para>
213
214 </sect2>
215
216 <sect2 role="configuration">
217 <title>Configuring AccountsService</title>
218
219 <para>
220 To allow users in the adm group to be listed as Administrators,
221 execute the following commands as the
222 <systemitem class="username">root</systemitem> user:
223 </para>
224
225<screen role="root"><userinput>cat &gt; /etc/polkit-1/rules.d/40-adm.rules &lt;&lt; "EOF"
226<literal>polkit.addAdminRule(function(action, subject) {
227 return ["unix-group:adm"];
228 });</literal>
229EOF</userinput></screen>
230
231 </sect2>
232
233 <sect2 role="content">
234 <title>Contents</title>
235
236 <segmentedlist>
237 <segtitle>Installed Programs</segtitle>
238 <segtitle>Installed Libraries</segtitle>
239 <segtitle>Installed Directories</segtitle>
240
241 <seglistitem>
242 <seg>
243 accounts-daemon (in
244 <filename class="directory">/usr/libexec</filename>)
245 </seg>
246 <seg>
247 libaccountsservice.so
248 </seg>
249 <seg>
250 /usr/include/accountsservice-1.0,
251 /usr/share/accountsservice,
252 /usr/share/gtk-doc/html/libaccountsservice (optional), and
253 /var/lib/AccountsService
254 </seg>
255 </seglistitem>
256 </segmentedlist>
257
258 <variablelist>
259 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
260 <?dbfo list-presentation="list"?>
261 <?dbhtml list-presentation="table"?>
262
263 <varlistentry id="accounts-daemon">
264 <term><command>accounts-daemon</command></term>
265 <listitem>
266 <para>
267 is the <application>AccountsService</application> daemon
268 </para>
269 <indexterm zone="accountsservice accounts-daemon">
270 <primary sortas="b-accounts-daemon">accounts-daemon</primary>
271 </indexterm>
272 </listitem>
273 </varlistentry>
274
275 <varlistentry id="libaccountsservice">
276 <term><filename class="libraryfile">libaccountsservice.so</filename></term>
277 <listitem>
278 <para>
279 contains the <application>AccountsService</application> API functions
280 </para>
281 <indexterm zone="accountsservice libaccountsservice">
282 <primary sortas="c-libaccountsservice">libaccountsservice.so</primary>
283 </indexterm>
284 </listitem>
285 </varlistentry>
286
287 </variablelist>
288
289 </sect2>
290
291</sect1>
Note: See TracBrowser for help on using the repository browser.