#### Beyond Linux® From Scratch (System V Edition) - Version 12.3

### Chapter 12. System Utilities

- Prev

  7zip-24.09

- Next

  acpid-2.0.34

- Up
- Home

# 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.

This package is known to build and work properly using an LFS 12.3 platform.

### Package Information

- Download (HTTP): https://www.freedesktop.org/software/accountsservice/accountsservice-23.13.9.tar.xz

- Download MD5 sum: 03dccfe1b306b7ca19743e86d118e64d

- Download size: 621 KB

- Estimated disk space required: 9.8 MB (add 0.5 MB for tests)

- Estimated build time: less than 0.1 SBU (with tests)

### AccountsService Dependencies

#### Required

Polkit-126

#### Recommended

GLib-2.82.5 (with GObject Introspection), elogind-255.17 , and Vala-0.56.17

#### Optional

GTK-Doc-1.34.0 and xmlto-0.0.29

#### Optional (for tests)

dbusmock-0.34.3 and PyGObject-3.50.0

## Installation of AccountsService

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

- Prev

  7zip-24.09

- Next

  acpid-2.0.34

- Up
- Home