s4:kdc: Cache user info and resource groups from PACs
[samba.git] / source4 / kdc / wscript_build
1 #!/usr/bin/env python
2
3 # We do this because we do not want to depend on the KDC, only find and use it's header files.  We do not want 
4 if not bld.CONFIG_SET("USING_SYSTEM_KDC"):
5     kdc_include = "../../third_party/heimdal/kdc ../../third_party/heimdal/lib/gssapi"
6 else:
7     kdc_include = getattr(bld.env, "CPPPATH_KDC")
8
9 if bld.CONFIG_SET('SAMBA4_USES_HEIMDAL'):
10     bld.SAMBA_MODULE('service_kdc',
11                      source='kdc-heimdal.c',
12                      subsystem='service',
13                      init_function='server_service_kdc_init',
14                      deps='''
15                           kdc
16                           HDB_SAMBA4
17                           WDC_SAMBA4
18                           samba-hostconfig
19                           com_err
20                           samba_server_gensec
21                           PAC_GLUE
22                           KDC-GLUE
23                           KDC-SERVER
24                           KPASSWD-SERVICE
25                           KPASSWD_GLUE
26                      ''',
27                      internal_module=False)
28
29 if bld.CONFIG_GET('SAMBA_USES_MITKDC'):
30     bld.SAMBA_MODULE('service_kdc',
31                      source='kdc-service-mit.c',
32                      cflags_end='-Wno-strict-prototypes',
33                      subsystem='service',
34                      init_function='server_service_mitkdc_init',
35                      deps='''
36                           samba-hostconfig
37                           service
38                           talloc
39                           UTIL_RUNCMD
40                           MIT_KDC_IRPC
41                           KDC-SERVER
42                           KPASSWD-SERVICE
43                           com_err
44                           kadm5srv_mit
45                           kdb5
46                      ''',
47                      internal_module=False)
48
49 bld.SAMBA_LIBRARY('HDB_SAMBA4',
50                   source='hdb-samba4.c hdb-samba4-plugin.c',
51                   deps='ldb auth4_sam common_auth samba-credentials hdb kdc db-glue samba-hostconfig com_err sdb_hdb RPC_NDR_WINBIND',
52                   includes=kdc_include,
53                   private_library=True,
54                   enabled=bld.CONFIG_SET('SAMBA4_USES_HEIMDAL')
55                   )
56
57 # A plugin for Heimdal's kadmin for users who need to operate that tool
58 bld.SAMBA_LIBRARY('HDB_SAMBA4_PLUGIN',
59                   source='hdb-samba4-plugin.c',
60                   deps='hdb HDB_SAMBA4 samba-util samba-hostconfig ',
61                   link_name='modules/hdb/hdb_samba4.so',
62                   realname='hdb_samba4.so',
63                   install_path='${MODULESDIR}/hdb',
64                   enabled = (bld.CONFIG_SET("USING_SYSTEM_KRB5") and bld.CONFIG_SET("USING_SYSTEM_HDB"))
65                   )
66
67 bld.SAMBA_SUBSYSTEM('KDC-SERVER',
68                     source='kdc-server.c kdc-proxy.c',
69                     deps='''
70                          krb5samba
71                          ldb
72                          LIBTSOCKET
73                          LIBSAMBA_TSOCKET
74                     ''')
75
76 kpasswd_flavor_src = 'kpasswd-service.c kpasswd-helper.c'
77 if bld.CONFIG_SET('SAMBA4_USES_HEIMDAL'):
78     kpasswd_flavor_src = kpasswd_flavor_src + ' kpasswd-service-heimdal.c'
79 elif bld.CONFIG_GET('SAMBA_USES_MITKDC'):
80     kpasswd_flavor_src = kpasswd_flavor_src + ' kpasswd-service-mit.c'
81
82 bld.SAMBA_SUBSYSTEM('KPASSWD-SERVICE',
83                     source=kpasswd_flavor_src,
84                     deps='''
85                          krb5samba
86                          samba_server_gensec
87                          KPASSWD_GLUE
88                          gensec_krb5_helpers
89                          ''')
90
91 bld.SAMBA_SUBSYSTEM('KDC-GLUE',
92         source='kdc-glue.c',
93         includes=kdc_include,
94         deps='hdb PAC_GLUE',
95         enabled=bld.CONFIG_SET('SAMBA4_USES_HEIMDAL')
96         )
97
98 bld.SAMBA_SUBSYSTEM('WDC_SAMBA4',
99         source='wdc-samba4.c',
100         includes=kdc_include,
101         deps='ldb auth4_sam common_auth samba-credentials hdb PAC_GLUE samba-hostconfig com_err KDC-GLUE authn_policy_util',
102         enabled=bld.CONFIG_SET('SAMBA4_USES_HEIMDAL')
103         )
104
105 bld.SAMBA_SUBSYSTEM('sdb',
106         source='sdb.c',
107         deps='talloc krb5',
108         )
109
110 bld.SAMBA_SUBSYSTEM('sdb_hdb',
111         source='sdb_to_hdb.c',
112         deps='talloc sdb hdb',
113         autoproto='sdb_hdb.h',
114         enabled=bld.CONFIG_SET('SAMBA4_USES_HEIMDAL')
115         )
116
117 bld.SAMBA_SUBSYSTEM('sdb_kdb',
118         source='sdb_to_kdb.c',
119         deps='sdb kdb5',
120         autoproto='sdb_kdb.h',
121         enabled=bld.CONFIG_SET('HAVE_KDB_H')
122         )
123
124 bld.SAMBA_SUBSYSTEM('PAC_GLUE',
125         source='pac-glue.c pac-blobs.c',
126         deps='ldb auth4_sam common_auth samba-credentials samba-hostconfig com_err ad_claims authn_policy authn_policy_util'
127         )
128
129 bld.SAMBA_LIBRARY('pac',
130         source=[],
131         deps='PAC_GLUE',
132         private_library=True,
133         grouping_library=True)
134
135
136 bld.SAMBA_LIBRARY('db-glue',
137         source='db-glue.c',
138         deps='ldb auth4_sam common_auth samba-credentials sdb samba-hostconfig com_err RPC_NDR_IRPC MESSAGING PAC_GLUE authn_policy_util',
139         private_library=True,
140         )
141
142 bld.SAMBA_LIBRARY('ad_claims',
143         source='ad_claims.c',
144         deps='ldb samba-util samdb dsdb-module authn_policy_util',
145         private_library=True,
146         )
147
148 bld.SAMBA_LIBRARY('authn_policy_util',
149         source='authn_policy_util.c',
150         deps='authn_policy samdb dsdb-module',
151         private_library=True,
152         )
153
154 bld.SAMBA_SUBSYSTEM('KPASSWD_GLUE',
155         source='kpasswd_glue.c',
156         deps='ldb com_err')
157
158 bld.SAMBA_SUBSYSTEM('MIT_KDC_IRPC',
159                     source='mit_kdc_irpc.c',
160                     deps='''
161                     ldb
162                     auth4_sam
163                     samba-credentials
164                     db-glue
165                     samba-hostconfig
166                     com_err
167                     kdb5
168                     ''',
169                     enabled=(bld.CONFIG_SET('SAMBA_USES_MITKDC') and bld.CONFIG_SET('HAVE_KDB_H'))
170                     )
171
172 bld.SAMBA_SUBSYSTEM('MIT_SAMBA',
173                     source='mit_samba.c',
174                     deps='''
175                          ldb
176                          auth4_sam
177                          common_auth
178                          samba-credentials
179                          db-glue
180                          PAC_GLUE
181                          KPASSWD_GLUE
182                          samba-hostconfig
183                          com_err
184                          sdb_kdb
185                          kdb5
186                          ''',
187                     enabled=(not bld.CONFIG_SET('SAMBA4_USES_HEIMDAL') and bld.CONFIG_SET('HAVE_KDB_H')) )
188
189 bld.SAMBA_BINARY('samba4ktutil',
190                  'ktutil.c',
191                  deps='krb5samba',
192                  install=False)
193
194 bld.RECURSE('mit-kdb')