Very Quick Guide to build sssd components ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Use the following instructions to build the libraries and the binaries. External library requirements: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sssd depends on 4 libraries originated in the samba project: talloc, tdb, tevent, ldb They are now available in major distribution development branches. If you want to build them from source download the latest samba master branch. To install all of the dependencies in Fedora before building sssd: yum install openldap-devel gettext libtool pcre-devel c-ares-devel \ dbus-devel libxslt-devel docbook-style-xsl krb5-devel \ docbook-style-xsl libxml2 pam-devel nss-devel libtevent \ libtevent-devel libtdb libtdb-devel libtalloc libtalloc-devel \ libldb libldb-devel cvs popt-devel ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ How to build everything in one go (Preferred approach) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From the root of the source, run: autoreconf -i -f && \ ./configure && \ make Optionally, parallel builds are possible with: autoreconf -i -f && \ mkdir parallelbuilddir && cd parallelbuilddir && \ ../configure && \ make ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ How to build components individually ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Internal Library Requirements ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sssd provides several required libraries within its source tree: collection ini_config libreplace Compiling sssd internal libraries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pushd replace; autoreconf -i -f && \ ./configure && \ make; popd pushd common; autoreconf -i -f && \ ./configure --enable-static --disable-shared && \ make; popd This will build the libraries statically for linking into the sssd. Currently the sssd build system does not support dynamically linking. (The external API for collection and ini_config is not yet ready for general consumption). Compiling sssd with system installed libraries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pushd server; \ autoreconf -i -f && \ ./configure && \ make; \ popd Compiling client libraries ~~~~~~~~~~~~~~~~~~~~~~~~~~ The nss and pam client do not require any additional dependencies. pushd sss_client; \ autoreconf -i -f && \ ./configure && \ make; \ popd Now you have to copy libnss_sss* into /lib (or /lib64) and add the 'sss' target to nsswitch.conf passwd database For pam copy pam_sss.so into /lib/security (or /lib64/security) and add pam_sss.so to your pam configuration. To use the pam_test_client from sss_client create the following file: /etc/pam.d/sss_test: auth required pam_sss.so account required pam_sss.so password required pam_sss.so session required pam_sss.so Now you can call pam_test_client: ./pam_test_client [auth|chau|acct|setc|open|clos] username@domain ~~~~~ Simo and Steve (Last updated for 0.4.0)