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

This version of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable version of the System V books.

Package Information

AccountsService Dependencies

Required

Polkit-127

Recommended

Optional

GTK-Doc-1.35.1 and xmlto-0.0.29

Optional (for tests)

dbusmock-0.38.1 and PyGObject-3.54.5

Installation of AccountsService

First, rename a directory whose presence prevents the build system from running if dbusmock-0.38.1 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.35.1).

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

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