AccountsService-23.13.9

Introduction to AccountsService

The AccountsService package provides a set of D-Bus interfaces for querying and manipulating user account information and an implementation of those interfaces based on the usermod(8), useradd(8), and userdel(8) commands.

[Note]

Note

Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

Package Information

AccountsService Dependencies

Required

Polkit-125

Recommended

Optional

GTK-Doc-1.34.0 and xmlto-0.0.29

Optional (for tests)

dbusmock-0.33.0 and PyGObject-3.50.0

Installation of AccountsService

First, rename a directory whose presence prevents the build system from running if dbusmock-0.33.0 is not installed:

mv tests/dbusmock{,-tests}

Then fix a test script so that the new directory is found, and adapt it for Python 3.12.0 or later:

sed -e '/accounts_service\.py/s/dbusmock/dbusmock-tests/' \
    -e 's/assertEquals/assertEqual/'                      \
    -i tests/test-libaccountsservice.py

Fix one test that fails if the en_IE.UTF-8 locale is not installed:

sed -i '/^SIMULATED_SYSTEM_LOCALE/s/en_IE.UTF-8/en_HK.iso88591/' tests/test-daemon.py

Install AccountsService by running the following commands:

mkdir build &&
cd    build &&

meson setup ..             \
      --prefix=/usr        \
      --buildtype=release  \
      -D admin_group=adm   \
      -D elogind=true      \
      -D systemdsystemunitdir=no

Now adapt the shipped mocklibc copy to allow building the test suite with GCC 14 or later:

grep 'print_indent'     ../subprojects/mocklibc-1.0/src/netgroup.c \
     | sed 's/ {/;/' >> ../subprojects/mocklibc-1.0/src/netgroup.h &&
sed -i '1i#include <stdio.h>'                                      \
    ../subprojects/mocklibc-1.0/src/netgroup.h

Build the package:

ninja

To test the package, issue ninja test.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-D admin_group=adm: This switch sets the group for administrator accounts.

-D docbook=true: This switch enables building the D-Bus interface API documentation (needs xmlto-0.0.29).

-D gtk_doc=true: This switch enables building the libaccountsservice API documentation (needs GTK-Doc-1.34.0).

-D vapi=false: This switch disables building the vala bindings. Use it if you have not installed Vala-0.56.17.

Configuring AccountsService

To allow users in the adm group to be listed as Administrators, execute the following commands as the root user:

cat > /etc/polkit-1/rules.d/40-adm.rules << "EOF"
polkit.addAdminRule(function(action, subject) {
   return ["unix-group:adm"];
   });
EOF

Contents

Installed Programs: accounts-daemon (in /usr/libexec)
Installed Libraries: libaccountsservice.so
Installed Directories: /usr/include/accountsservice-1.0, /usr/share/accountsservice, /usr/share/gtk-doc/html/libaccountsservice (optional), and /var/lib/AccountsService

Short Descriptions

accounts-daemon

is the AccountsService daemon

libaccountsservice.so

contains the AccountsService API functions