summaryrefslogtreecommitdiffstats
path: root/BUILD.txt
blob: 4e9268c705199755dfb91ef68d70f19f899126cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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)