Building SSSD

SSSD is using autoconf and automake build systems. If you are not familiar with these tools, below are the commands you need to execute in order to configure and build the project.

[sssd]$ autoreconf -if
[sssd]$ ./configure --enable-nsslibdir=/lib64 --enable-pammoddir=/lib64/security --enable-silent-rules
[sssd]$ make

The autoreconf command will create a configure script. This script allows you to modify the resulting build with several flags, it also makes sure that all required dependencies are available. SSSD requires lots of build dependencies that helps us integrate with the identity and authentication systems. Your system may not have all necessary dependencies installed. In such case, the configure script will end up with error that will tell you what is missing. Re-run the script after you install the dependency.

Note

Run ./configure --help to list all available configure options.

Some distributions provide a way to quickly install a package’s build dependencies with a single command. If your distributions supports it, you can install them all at once with:

Fedora
dnf builddep sssd
Ubuntu
apt-get build-dep sssd

There are additional make targets available, such as rpms or prerelease-rpms that you may find useful.

# Build RPM packages
make rpms

# Build RPM packages with prerelease version tag (date and git hash)
make prerelease-rpms

SSSD provide a set of helper aliases and scripts to simplify building of developments versions. These scripts are currently only available for Fedora. You can start using them by sourcing the bashrc_sssd.

[sssd]$ source ./contrib/fedora/bashrc_sssd

Note

If you plan to work on SSSD regularly, you may want to include the script in your ~/.bashrc file:

if [ -f /path/to/sssd-source/contrib/fedora/bashrc_sssd ]; then
    . /path/to/sssd-source/contrib/fedora/bashrc_sssd
fi
  • Produce a debug build of SSSD and run unit tests (run from git root directory):

[sssd]$ reconfig && chmake
  • Install fresh build of SSSD into the system (this operation assumes that user has “sudo” privilege). To install SSSD “sssinstall” alias is used:

[sssd]$ sssinstall && echo "Build install successful"