1use std::collections::HashSet;
2use std::ffi::OsStr;
3use std::path::{Path, PathBuf};
4use std::process::Command;
5use std::{env, fs};
6
7const SRC_FILES: &[&str] = &[
9 "third_party/heimdal/lib/com_err/compile_et.c",
10 "third_party/heimdal/lib/com_err/parse.tab.c",
11 "third_party/heimdal/lib/com_err/lex.lex.c",
12 "lib/replace/replace.c",
13 "third_party/heimdal/lib/vers/print_version.c",
14 "third_party/heimdal_build/version.c",
15 "third_party/heimdal_build/compile_et.objlist.empty.c",
16 "third_party/heimdal/lib/roken/base64.c",
17 "third_party/heimdal/lib/roken/ct.c",
18 "third_party/heimdal/lib/roken/hex.c",
19 "third_party/heimdal/lib/roken/bswap.c",
20 "third_party/heimdal/lib/roken/dumpdata.c",
21 "third_party/heimdal/lib/roken/emalloc.c",
22 "third_party/heimdal/lib/roken/ecalloc.c",
23 "third_party/heimdal/lib/roken/getarg.c",
24 "third_party/heimdal/lib/roken/getauxval.c",
25 "third_party/heimdal/lib/roken/get_window_size.c",
26 "third_party/heimdal/lib/roken/getdtablesize.c",
27 "third_party/heimdal/lib/roken/h_errno.c",
28 "third_party/heimdal/lib/roken/issuid.c",
29 "third_party/heimdal/lib/roken/net_read.c",
30 "third_party/heimdal/lib/roken/net_write.c",
31 "third_party/heimdal/lib/roken/parse_time.c",
32 "third_party/heimdal/lib/roken/parse_units.c",
33 "third_party/heimdal/lib/roken/vis.c",
34 "third_party/heimdal/lib/roken/strlwr.c",
35 "third_party/heimdal/lib/roken/strsep_copy.c",
36 "third_party/heimdal/lib/roken/strsep.c",
37 "third_party/heimdal/lib/roken/strupr.c",
38 "third_party/heimdal/lib/roken/strpool.c",
39 "third_party/heimdal/lib/roken/estrdup.c",
40 "third_party/heimdal/lib/roken/erealloc.c",
41 "third_party/heimdal/lib/roken/secure_getenv.c",
42 "third_party/heimdal/lib/roken/simple_exec.c",
43 "third_party/heimdal/lib/roken/strcollect.c",
44 "third_party/heimdal/lib/roken/rtbl.c",
45 "third_party/heimdal/lib/roken/rand.c",
46 "third_party/heimdal/lib/roken/cloexec.c",
47 "third_party/heimdal/lib/roken/clz.c",
48 "third_party/heimdal/lib/roken/xfree.c",
49 "third_party/heimdal/lib/roken/timeval.c",
50 "third_party/heimdal/lib/roken/mergesort.c",
51 "third_party/heimdal/lib/roken/mergesort_r.c",
52 "third_party/heimdal_build/replace.c",
53 "third_party/heimdal/lib/base/array.c",
54 "third_party/heimdal/lib/base/bool.c",
55 "third_party/heimdal/lib/base/bsearch.c",
56 "third_party/heimdal/lib/base/data.c",
57 "third_party/heimdal/lib/base/db.c",
58 "third_party/heimdal/lib/base/dict.c",
59 "third_party/heimdal/lib/base/error.c",
60 "third_party/heimdal/lib/base/heimbase.c",
61 "third_party/heimdal/lib/base/string.c",
62 "third_party/heimdal/lib/base/number.c",
63 "third_party/heimdal/lib/base/null.c",
64 "third_party/heimdal/lib/base/json.c",
65 "third_party/heimdal/lib/base/heim_err.c",
66 "third_party/heimdal/lib/com_err/com_err.c",
67 "third_party/heimdal/lib/com_err/error.c",
68 "third_party/heimdal/lib/asn1/gen_copy.c",
69 "third_party/heimdal/lib/asn1/gen_print.c",
70 "third_party/heimdal/lib/asn1/gen_decode.c",
71 "third_party/heimdal/lib/asn1/gen_encode.c",
72 "third_party/heimdal/lib/asn1/gen_free.c",
73 "third_party/heimdal/lib/asn1/gen_glue.c",
74 "third_party/heimdal/lib/asn1/gen_length.c",
75 "third_party/heimdal/lib/asn1/gen_seq.c",
76 "third_party/heimdal/lib/asn1/gen_template.c",
77 "third_party/heimdal/lib/asn1/hash.c",
78 "third_party/heimdal/lib/asn1/symbol.c",
79 "third_party/heimdal/lib/asn1/main.c",
80 "third_party/heimdal/lib/asn1/asn1parse.tab.c",
81 "third_party/heimdal/lib/asn1/lex.lex.c",
82 "third_party/heimdal_build/asn1_compile.objlist.empty.c",
83 "third_party/heimdal/lib/asn1/gen.c",
84 "lib/talloc/talloc.c",
85 "lib/util/time_basic.c",
86 "lib/util/blocking.c",
87 "lib/util/close_low_fd.c",
88 "lib/util/gpfswrap.c",
89 "lib/util/debug.c",
90 "lib/util/iov_buf.c",
91 "third_party/heimdal/lib/roken/resolve.c",
92 "third_party/heimdal/lib/roken/socket.c",
93 "third_party/heimdal/lib/roken/roken_gethostby.c",
94 "third_party/heimdal/lib/roken/mkostemp.c",
95 "third_party/heimdal/lib/roken/getuserinfo.c",
96 "lib/tevent/tevent.c",
97 "lib/tevent/tevent_debug.c",
98 "lib/tevent/tevent_fd.c",
99 "lib/tevent/tevent_immediate.c",
100 "lib/tevent/tevent_queue.c",
101 "lib/tevent/tevent_req.c",
102 "lib/tevent/tevent_wrapper.c",
103 "lib/tevent/tevent_poll.c",
104 "lib/tevent/tevent_threads.c",
105 "lib/tevent/tevent_signal.c",
106 "lib/tevent/tevent_standard.c",
107 "lib/tevent/tevent_timed.c",
108 "lib/tevent/tevent_util.c",
109 "lib/tevent/tevent_wakeup.c",
110 "lib/tevent/tevent_epoll.c",
111 "lib/util/sys_rw.c",
112 "lib/util/sys_rw_data.c",
113 "lib/util/fault.c",
114 "lib/util/signal.c",
115 "lib/util/util_process.c",
116 "lib/util/genrand.c",
117 "lib/util/setid.c",
118 "lib/util/charset/iconv.c",
119 "lib/util/charset/weird.c",
120 "lib/util/charset/charset_macosxfs.c",
121 "lib/util/tini.c",
122 "lib/util/charset/codepoints.c",
123 "lib/util/charset/convert_string.c",
124 "lib/util/charset/util_str.c",
125 "lib/util/charset/util_unistr_w.c",
126 "lib/util/charset/pull_push.c",
127 "lib/util/charset/util_unistr.c",
128 "lib/util/tiniparser.c",
129 "lib/util/data_blob.c",
130 "lib/util/util_file.c",
131 "lib/util/sys_popen.c",
132 "lib/util/time.c",
133 "lib/util/util.c",
134 "lib/util/idtree.c",
135 "lib/util/substitute.c",
136 "lib/util/util_strlist.c",
137 "lib/util/strv_util.c",
138 "lib/util/bitmap.c",
139 "lib/util/select.c",
140 "lib/util/pidfile.c",
141 "lib/util/become_daemon.c",
142 "lib/util/mkdir_p.c",
143 "lib/util/smb_strtox.c",
144 "lib/crypto/md4.c",
145 "lib/util/ms_fnmatch.c",
146 "lib/util/strv.c",
147 "lib/util/base64.c",
148 "lib/util/dprintf.c",
149 "lib/util/dns_cmp.c",
150 "lib/util/fsusage.c",
151 "lib/util/genrand_util.c",
152 "lib/util/getpass.c",
153 "lib/util/idtree_random.c",
154 "lib/util/memcache.c",
155 "lib/util/params.c",
156 "lib/util/rbtree.c",
157 "lib/util/rfc1738.c",
158 "lib/util/server_id.c",
159 "lib/util/smb_threads.c",
160 "lib/util/system.c",
161 "lib/util/talloc_keep_secret.c",
162 "lib/util/talloc_stack.c",
163 "lib/util/tevent_debug.c",
164 "lib/util/tfork.c",
165 "lib/util/tftw.c",
166 "lib/util/unix_match.c",
167 "lib/util/util_id.c",
168 "lib/util/util_net.c",
169 "lib/util/util_paths.c",
170 "lib/util/util_str.c",
171 "lib/util/util_str_common.c",
172 "lib/util/util_strlist_v3.c",
173 "dynconfig/dynconfig.c",
174 "lib/util/util_str_hex.c",
175 "libcli/util/doserr.c",
176 "libcli/util/errormap.c",
177 "libcli/util/nterr.c",
178 "libcli/util/errmap_unix.c",
179 "libcli/util/hresult.c",
180 "third_party/heimdal/lib/base/config_file.c",
181 "third_party/heimdal/lib/base/context.c",
182 "third_party/heimdal/lib/base/error_string.c",
183 "third_party/heimdal/lib/base/expand_path.c",
184 "third_party/heimdal/lib/base/log.c",
185 "third_party/heimdal/lib/base/plugin.c",
186 "third_party/heimdal/lib/base/warn.c",
187 "librpc/ndr/ndr_string.c",
188 "librpc/ndr/ndr_basic.c",
189 "librpc/ndr/uuid.c",
190 "librpc/ndr/ndr.c",
191 "librpc/ndr/ndr_misc.c",
192 "librpc/gen_ndr/ndr_misc.c",
193 "librpc/ndr/util.c",
194 "lib/util/stable_sort.c",
195 "third_party/heimdal/lib/asn1/asn1_pkcs8_asn1.c",
196 "third_party/heimdal/lib/asn1/asn1_pkcs9_asn1.c",
197 "third_party/heimdal/lib/asn1/asn1_rfc4108_asn1.c",
198 "third_party/heimdal/lib/asn1/asn1_rfc2459_asn1.c",
199 "third_party/heimdal/lib/hx509/asn1_pkcs10_asn1.c",
200 "third_party/heimdal/lib/asn1/asn1_krb5_asn1.c",
201 "third_party/heimdal/lib/asn1/der_get.c",
202 "third_party/heimdal/lib/asn1/der_put.c",
203 "third_party/heimdal/lib/asn1/der_free.c",
204 "third_party/heimdal/lib/asn1/der_format.c",
205 "third_party/heimdal/lib/asn1/der_length.c",
206 "third_party/heimdal/lib/asn1/der_copy.c",
207 "third_party/heimdal/lib/asn1/der_cmp.c",
208 "third_party/heimdal/lib/asn1/der_print.c",
209 "third_party/heimdal/lib/asn1/extra.c",
210 "third_party/heimdal/lib/asn1/timegm.c",
211 "third_party/heimdal/lib/asn1/template.c",
212 "third_party/heimdal/lib/asn1/oid_resolution.c",
213 "third_party/heimdal/lib/asn1/asn1_err.c",
214 "third_party/heimdal_build/asn1.empty.c",
215 "third_party/heimdal/lib/asn1/asn1_kx509_asn1.c",
216 "third_party/heimdal/lib/hx509/asn1_ocsp_asn1.c",
217 "third_party/heimdal/lib/asn1/asn1_digest_asn1.c",
218 "third_party/heimdal/lib/asn1/asn1_pkinit_asn1.c",
219 "third_party/heimdal/lib/asn1/asn1_cms_asn1.c",
220 "third_party/heimdal/lib/asn1/asn1_pkcs12_asn1.c",
221 "lib/tdb/common/check.c",
222 "lib/tdb/common/error.c",
223 "lib/tdb/common/tdb.c",
224 "lib/tdb/common/traverse.c",
225 "lib/tdb/common/freelistcheck.c",
226 "lib/tdb/common/lock.c",
227 "lib/tdb/common/dump.c",
228 "lib/tdb/common/freelist.c",
229 "lib/tdb/common/io.c",
230 "lib/tdb/common/open.c",
231 "lib/tdb/common/transaction.c",
232 "lib/tdb/common/hash.c",
233 "lib/tdb/common/summary.c",
234 "lib/tdb/common/rescue.c",
235 "lib/tdb/common/mutex.c",
236 "librpc/gen_ndr/ndr_security.c",
237 "librpc/ndr/ndr_sec_helper.c",
238 "librpc/gen_ndr/ndr_conditional_ace.c",
239 "libcli/security/dom_sid.c",
240 "libcli/security/display_sec.c",
241 "libcli/security/secace.c",
242 "libcli/security/secacl.c",
243 "libcli/security/security_descriptor.c",
244 "libcli/security/sddl.c",
245 "libcli/security/privileges.c",
246 "libcli/security/security_token.c",
247 "libcli/security/access_check.c",
248 "libcli/security/object_tree.c",
249 "libcli/security/create_descriptor.c",
250 "libcli/security/util_sid.c",
251 "libcli/security/session.c",
252 "libcli/security/secdesc.c",
253 "libcli/security/conditional_ace.c",
254 "libcli/security/sddl_conditional_ace.c",
255 "libcli/security/claims-conversions.c",
256 "third_party/heimdal/lib/hcrypto/libtommath/bn_cutoffs.c",
257 "third_party/heimdal/lib/hcrypto/libtommath/bn_deprecated.c",
258 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_2expt.c",
259 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_abs.c",
260 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_add.c",
261 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_add_d.c",
262 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_addmod.c",
263 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_and.c",
264 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_clamp.c",
265 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_clear.c",
266 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_clear_multi.c",
267 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_cmp.c",
268 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_cmp_d.c",
269 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_cmp_mag.c",
270 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_cnt_lsb.c",
271 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_complement.c",
272 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_copy.c",
273 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_count_bits.c",
274 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_decr.c",
275 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_div.c",
276 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_div_2.c",
277 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_div_2d.c",
278 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_div_3.c",
279 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_div_d.c",
280 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_dr_is_modulus.c",
281 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_dr_reduce.c",
282 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_dr_setup.c",
283 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_error_to_string.c",
284 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_exch.c",
285 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_expt_u32.c",
286 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_exptmod.c",
287 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_exteuclid.c",
288 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_fread.c",
289 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_from_sbin.c",
290 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_from_ubin.c",
291 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_fwrite.c",
292 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_gcd.c",
293 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_get_double.c",
294 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_get_i32.c",
295 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_get_i64.c",
296 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_get_l.c",
297 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_get_ll.c",
298 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_get_mag_u32.c",
299 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_get_mag_u64.c",
300 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_get_mag_ul.c",
301 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_get_mag_ull.c",
302 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_grow.c",
303 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_incr.c",
304 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_init.c",
305 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_init_copy.c",
306 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_init_i32.c",
307 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_init_i64.c",
308 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_init_l.c",
309 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_init_ll.c",
310 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_init_multi.c",
311 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_init_set.c",
312 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_init_size.c",
313 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_init_u32.c",
314 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_init_u64.c",
315 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_init_ul.c",
316 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_init_ull.c",
317 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_invmod.c",
318 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_is_square.c",
319 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_iseven.c",
320 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_isodd.c",
321 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_kronecker.c",
322 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_lcm.c",
323 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_log_u32.c",
324 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_lshd.c",
325 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_mod.c",
326 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_mod_2d.c",
327 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_mod_d.c",
328 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_montgomery_calc_normalization.c",
329 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_montgomery_reduce.c",
330 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_montgomery_setup.c",
331 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_mul.c",
332 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_mul_2.c",
333 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_mul_2d.c",
334 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_mul_d.c",
335 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_mulmod.c",
336 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_neg.c",
337 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_or.c",
338 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_pack.c",
339 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_pack_count.c",
340 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_prime_fermat.c",
341 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_prime_frobenius_underwood.c",
342 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_prime_is_prime.c",
343 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_prime_miller_rabin.c",
344 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_prime_next_prime.c",
345 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_prime_rabin_miller_trials.c",
346 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_prime_rand.c",
347 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_prime_strong_lucas_selfridge.c",
348 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_radix_size.c",
349 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_radix_smap.c",
350 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_rand.c",
351 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_read_radix.c",
352 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_reduce.c",
353 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_reduce_2k.c",
354 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_reduce_2k_l.c",
355 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_reduce_2k_setup.c",
356 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_reduce_2k_setup_l.c",
357 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_reduce_is_2k.c",
358 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_reduce_is_2k_l.c",
359 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_reduce_setup.c",
360 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_root_u32.c",
361 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_rshd.c",
362 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_sbin_size.c",
363 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_set.c",
364 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_set_double.c",
365 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_set_i32.c",
366 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_set_i64.c",
367 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_set_l.c",
368 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_set_ll.c",
369 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_set_u32.c",
370 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_set_u64.c",
371 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_set_ul.c",
372 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_set_ull.c",
373 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_shrink.c",
374 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_signed_rsh.c",
375 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_sqr.c",
376 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_sqrmod.c",
377 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_sqrt.c",
378 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_sqrtmod_prime.c",
379 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_sub.c",
380 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_sub_d.c",
381 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_submod.c",
382 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_to_radix.c",
383 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_to_sbin.c",
384 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_to_ubin.c",
385 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_ubin_size.c",
386 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_unpack.c",
387 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_xor.c",
388 "third_party/heimdal/lib/hcrypto/libtommath/bn_mp_zero.c",
389 "third_party/heimdal/lib/hcrypto/libtommath/bn_prime_tab.c",
390 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_add.c",
391 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_balance_mul.c",
392 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_exptmod.c",
393 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_exptmod_fast.c",
394 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_get_bit.c",
395 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_invmod_fast.c",
396 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_invmod_slow.c",
397 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_karatsuba_mul.c",
398 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_karatsuba_sqr.c",
399 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_montgomery_reduce_fast.c",
400 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_mul_digs.c",
401 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_mul_digs_fast.c",
402 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_mul_high_digs.c",
403 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_mul_high_digs_fast.c",
404 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_prime_is_divisible.c",
405 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_rand_jenkins.c",
406 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_rand_platform.c",
407 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_reverse.c",
408 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_sqr.c",
409 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_sqr_fast.c",
410 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_sub.c",
411 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_toom_mul.c",
412 "third_party/heimdal/lib/hcrypto/libtommath/bn_s_mp_toom_sqr.c",
413 "third_party/heimdal/lib/hcrypto/aes.c",
414 "third_party/heimdal/lib/hcrypto/bn.c",
415 "third_party/heimdal/lib/hcrypto/dh.c",
416 "third_party/heimdal/lib/hcrypto/dh-ltm.c",
417 "third_party/heimdal/lib/hcrypto/des.c",
418 "third_party/heimdal/lib/hcrypto/dsa.c",
419 "third_party/heimdal/lib/hcrypto/engine.c",
420 "third_party/heimdal/lib/hcrypto/md4.c",
421 "third_party/heimdal/lib/hcrypto/md5.c",
422 "third_party/heimdal/lib/hcrypto/rsa.c",
423 "third_party/heimdal/lib/hcrypto/rsa-ltm.c",
424 "third_party/heimdal/lib/hcrypto/rc2.c",
425 "third_party/heimdal/lib/hcrypto/rc4.c",
426 "third_party/heimdal/lib/hcrypto/rijndael-alg-fst.c",
427 "third_party/heimdal/lib/hcrypto/rnd_keys.c",
428 "third_party/heimdal/lib/hcrypto/sha.c",
429 "third_party/heimdal/lib/hcrypto/sha256.c",
430 "third_party/heimdal/lib/hcrypto/sha512.c",
431 "third_party/heimdal/lib/hcrypto/ui.c",
432 "third_party/heimdal/lib/hcrypto/evp.c",
433 "third_party/heimdal/lib/hcrypto/evp-hcrypto.c",
434 "third_party/heimdal/lib/hcrypto/pkcs5.c",
435 "third_party/heimdal/lib/hcrypto/pkcs12.c",
436 "third_party/heimdal/lib/hcrypto/rand.c",
437 "third_party/heimdal/lib/hcrypto/rand-unix.c",
438 "third_party/heimdal/lib/hcrypto/rand-fortuna.c",
439 "third_party/heimdal/lib/hcrypto/rand-timer.c",
440 "third_party/heimdal/lib/hcrypto/hmac.c",
441 "third_party/heimdal/lib/hcrypto/camellia.c",
442 "third_party/heimdal/lib/hcrypto/camellia-ntt.c",
443 "third_party/heimdal/lib/hcrypto/common.c",
444 "third_party/heimdal/lib/hcrypto/validate.c",
445 "third_party/heimdal/lib/wind/wind_err.c",
446 "third_party/heimdal/lib/wind/stringprep.c",
447 "third_party/heimdal/lib/wind/errorlist.c",
448 "third_party/heimdal/lib/wind/errorlist_table.c",
449 "third_party/heimdal/lib/wind/normalize.c",
450 "third_party/heimdal/lib/wind/normalize_table.c",
451 "third_party/heimdal/lib/wind/combining.c",
452 "third_party/heimdal/lib/wind/combining_table.c",
453 "third_party/heimdal/lib/wind/utf8.c",
454 "third_party/heimdal/lib/wind/bidi.c",
455 "third_party/heimdal/lib/wind/bidi_table.c",
456 "third_party/heimdal/lib/wind/ldap.c",
457 "third_party/heimdal/lib/wind/map.c",
458 "third_party/heimdal/lib/wind/map_table.c",
459 "librpc/gen_ndr/ndr_dns.c",
460 "librpc/ndr/ndr_dns.c",
461 "librpc/ndr/ndr_dns_utils.c",
462 "librpc/gen_ndr/ndr_nbt.c",
463 "librpc/ndr/ndr_nbt.c",
464 "librpc/gen_ndr/ndr_dnsp.c",
465 "librpc/ndr/ndr_dnsp.c",
466 "libcli/nbt/nbtname.c",
467 "third_party/heimdal/lib/hx509/ca.c",
468 "third_party/heimdal/lib/hx509/cert.c",
469 "third_party/heimdal/lib/hx509/cms.c",
470 "third_party/heimdal/lib/hx509/collector.c",
471 "third_party/heimdal/lib/hx509/crypto.c",
472 "third_party/heimdal/lib/hx509/crypto-ec.c",
473 "third_party/heimdal/lib/hx509/error.c",
474 "third_party/heimdal/lib/hx509/env.c",
475 "third_party/heimdal/lib/hx509/file.c",
476 "third_party/heimdal/lib/hx509/keyset.c",
477 "third_party/heimdal/lib/hx509/ks_dir.c",
478 "third_party/heimdal/lib/hx509/ks_file.c",
479 "third_party/heimdal/lib/hx509/ks_keychain.c",
480 "third_party/heimdal/lib/hx509/ks_mem.c",
481 "third_party/heimdal/lib/hx509/ks_null.c",
482 "third_party/heimdal/lib/hx509/ks_p11.c",
483 "third_party/heimdal/lib/hx509/ks_p12.c",
484 "third_party/heimdal/lib/hx509/lock.c",
485 "third_party/heimdal/lib/hx509/name.c",
486 "third_party/heimdal/lib/hx509/peer.c",
487 "third_party/heimdal/lib/hx509/print.c",
488 "third_party/heimdal/lib/hx509/req.c",
489 "third_party/heimdal/lib/hx509/revoke.c",
490 "third_party/heimdal/lib/hx509/sel.c",
491 "third_party/heimdal/lib/hx509/hx509_err.c",
492 "third_party/heimdal/lib/hx509/sel-lex.lex.c",
493 "third_party/heimdal/lib/hx509/sel-gram.tab.c",
494 "lib/util/tevent_unix.c",
495 "lib/util/tevent_ntstatus.c",
496 "lib/util/tevent_werror.c",
497 "lib/util/tevent_req_profile.c",
498 "lib/util/util_tdb.c",
499 "lib/tdb_wrap/tdb_wrap.c",
500 "lib/param/loadparm_server_role.c",
501 "librpc/gen_ndr/ndr_wkssvc.c",
502 "librpc/gen_ndr/ndr_dssetup.c",
503 "librpc/gen_ndr/ndr_netlogon.c",
504 "librpc/ndr/ndr_netlogon.c",
505 "librpc/gen_ndr/ndr_notify.c",
506 "librpc/gen_ndr/ndr_srvsvc.c",
507 "librpc/ndr-standard.empty.c",
508 "librpc/gen_ndr/ndr_samr.c",
509 "librpc/gen_ndr/ndr_ntsvcs.c",
510 "librpc/gen_ndr/ndr_initshutdown.c",
511 "librpc/ndr/ndr_spoolss_buf.c",
512 "librpc/gen_ndr/ndr_echo.c",
513 "librpc/gen_ndr/ndr_eventlog6.c",
514 "librpc/gen_ndr/ndr_winreg.c",
515 "librpc/gen_ndr/ndr_eventlog.c",
516 "librpc/gen_ndr/ndr_atsvc.c",
517 "librpc/gen_ndr/ndr_file_id.c",
518 "librpc/gen_ndr/ndr_dfs.c",
519 "librpc/gen_ndr/ndr_server_id.c",
520 "librpc/gen_ndr/ndr_lsa.c",
521 "librpc/gen_ndr/ndr_svcctl.c",
522 "librpc/ndr/ndr_svcctl.c",
523 "librpc/gen_ndr/ndr_spoolss.c",
524 "third_party/heimdal/lib/krb5/crypto.c",
525 "third_party/heimdal/lib/krb5/acache.c",
526 "third_party/heimdal/lib/krb5/add_et_list.c",
527 "third_party/heimdal/lib/krb5/addr_families.c",
528 "third_party/heimdal/lib/krb5/appdefault.c",
529 "third_party/heimdal/lib/krb5/asn1_glue.c",
530 "third_party/heimdal/lib/krb5/auth_context.c",
531 "third_party/heimdal/lib/krb5/authdata.c",
532 "third_party/heimdal/lib/krb5/build_ap_req.c",
533 "third_party/heimdal/lib/krb5/build_auth.c",
534 "third_party/heimdal/lib/krb5/cache.c",
535 "third_party/heimdal/lib/krb5/changepw.c",
536 "third_party/heimdal/lib/krb5/codec.c",
537 "third_party/heimdal/lib/krb5/config_file.c",
538 "third_party/heimdal/lib/krb5/constants.c",
539 "third_party/heimdal/lib/krb5/convert_creds.c",
540 "third_party/heimdal/lib/krb5/copy_host_realm.c",
541 "third_party/heimdal/lib/krb5/crc.c",
542 "third_party/heimdal/lib/krb5/creds.c",
543 "third_party/heimdal/lib/krb5/crypto-aes-sha1.c",
544 "third_party/heimdal/lib/krb5/crypto-aes-sha2.c",
545 "third_party/heimdal/lib/krb5/crypto-algs.c",
546 "third_party/heimdal/lib/krb5/crypto-arcfour.c",
547 "third_party/heimdal/lib/krb5/crypto-des3.c",
548 "third_party/heimdal/lib/krb5/crypto-des.c",
549 "third_party/heimdal/lib/krb5/crypto-des-common.c",
550 "third_party/heimdal/lib/krb5/crypto-evp.c",
551 "third_party/heimdal/lib/krb5/crypto-null.c",
552 "third_party/heimdal/lib/krb5/crypto-pk.c",
553 "third_party/heimdal/lib/krb5/crypto-rand.c",
554 "third_party/heimdal/lib/krb5/data.c",
555 "third_party/heimdal/lib/krb5/dcache.c",
556 "third_party/heimdal/lib/krb5/db_plugin.c",
557 "third_party/heimdal/lib/krb5/deprecated.c",
558 "third_party/heimdal/lib/krb5/eai_to_heim_errno.c",
559 "third_party/heimdal/lib/krb5/enomem.c",
560 "third_party/heimdal/lib/krb5/error_string.c",
561 "third_party/heimdal/lib/krb5/expand_hostname.c",
562 "third_party/heimdal/lib/krb5/fast.c",
563 "third_party/heimdal/lib/krb5/fcache.c",
564 "third_party/heimdal/lib/krb5/free.c",
565 "third_party/heimdal/lib/krb5/free_host_realm.c",
566 "third_party/heimdal/lib/krb5/generate_seq_number.c",
567 "third_party/heimdal/lib/krb5/generate_subkey.c",
568 "third_party/heimdal/lib/krb5/get_addrs.c",
569 "third_party/heimdal/lib/krb5/get_cred.c",
570 "third_party/heimdal/lib/krb5/get_default_principal.c",
571 "third_party/heimdal/lib/krb5/get_default_realm.c",
572 "third_party/heimdal/lib/krb5/get_for_creds.c",
573 "third_party/heimdal/lib/krb5/get_host_realm.c",
574 "third_party/heimdal/lib/krb5/get_in_tkt.c",
575 "third_party/heimdal/lib/krb5/get_port.c",
576 "third_party/heimdal/lib/krb5/init_creds.c",
577 "third_party/heimdal/lib/krb5/init_creds_pw.c",
578 "third_party/heimdal/lib/krb5/kcm.c",
579 "third_party/heimdal/lib/krb5/keyblock.c",
580 "third_party/heimdal/lib/krb5/keytab.c",
581 "third_party/heimdal/lib/krb5/keytab_any.c",
582 "third_party/heimdal/lib/krb5/keytab_file.c",
583 "third_party/heimdal/lib/krb5/keytab_memory.c",
584 "third_party/heimdal/lib/krb5/keytab_keyfile.c",
585 "third_party/heimdal/lib/krb5/krbhst.c",
586 "third_party/heimdal/lib/krb5/krcache.c",
587 "third_party/heimdal/lib/krb5/log.c",
588 "third_party/heimdal/lib/krb5/mcache.c",
589 "third_party/heimdal/lib/krb5/misc.c",
590 "third_party/heimdal/lib/krb5/mk_error.c",
591 "third_party/heimdal/lib/krb5/mk_priv.c",
592 "third_party/heimdal/lib/krb5/mk_rep.c",
593 "third_party/heimdal/lib/krb5/mk_req.c",
594 "third_party/heimdal/lib/krb5/mk_req_ext.c",
595 "third_party/heimdal/lib/krb5/mit_glue.c",
596 "third_party/heimdal/lib/krb5/net_read.c",
597 "third_party/heimdal/lib/krb5/net_write.c",
598 "third_party/heimdal/lib/krb5/n-fold.c",
599 "third_party/heimdal/lib/krb5/padata.c",
600 "third_party/heimdal/lib/krb5/pkinit.c",
601 "third_party/heimdal/lib/krb5/pkinit-ec.c",
602 "third_party/heimdal/lib/krb5/principal.c",
603 "third_party/heimdal/lib/krb5/prog_setup.c",
604 "third_party/heimdal/lib/krb5/pac.c",
605 "third_party/heimdal/lib/krb5/pcache.c",
606 "third_party/heimdal/lib/krb5/prompter_posix.c",
607 "third_party/heimdal/lib/krb5/rd_cred.c",
608 "third_party/heimdal/lib/krb5/rd_error.c",
609 "third_party/heimdal/lib/krb5/rd_priv.c",
610 "third_party/heimdal/lib/krb5/rd_rep.c",
611 "third_party/heimdal/lib/krb5/rd_req.c",
612 "third_party/heimdal/lib/krb5/replay.c",
613 "third_party/heimdal/lib/krb5/salt.c",
614 "third_party/heimdal/lib/krb5/salt-aes-sha1.c",
615 "third_party/heimdal/lib/krb5/salt-aes-sha2.c",
616 "third_party/heimdal/lib/krb5/salt-arcfour.c",
617 "third_party/heimdal/lib/krb5/salt-des3.c",
618 "third_party/heimdal/lib/krb5/salt-des.c",
619 "third_party/heimdal/lib/krb5/send_to_kdc.c",
620 "third_party/heimdal/lib/krb5/set_default_realm.c",
621 "third_party/heimdal/lib/krb5/store.c",
622 "third_party/heimdal/lib/krb5/store-int.c",
623 "third_party/heimdal/lib/krb5/store_emem.c",
624 "third_party/heimdal/lib/krb5/store_fd.c",
625 "third_party/heimdal/lib/krb5/store_mem.c",
626 "third_party/heimdal/lib/krb5/store_stdio.c",
627 "third_party/heimdal/lib/krb5/ticket.c",
628 "third_party/heimdal/lib/krb5/time.c",
629 "third_party/heimdal/lib/krb5/transited.c",
630 "third_party/heimdal/lib/krb5/version.c",
631 "third_party/heimdal/lib/krb5/warn.c",
632 "third_party/heimdal/lib/krb5/krb5_err.c",
633 "third_party/heimdal/lib/krb5/sp800-108-kdf.c",
634 "third_party/heimdal/lib/krb5/aname_to_localname.c",
635 "third_party/heimdal/lib/krb5/kuserok.c",
636 "third_party/heimdal/lib/krb5/kx509.c",
637 "third_party/heimdal/lib/krb5/mk_cred.c",
638 "third_party/heimdal/lib/krb5/kx509_err.c",
639 "third_party/heimdal/lib/krb5/k524_err.c",
640 "third_party/heimdal/lib/krb5/krb_err.c",
641 "third_party/heimdal/lib/krb5/k5e1_err.c",
642 "third_party/heimdal_build/krb5-glue.c",
643 "third_party/heimdal/lib/ipc/client.c",
644 "third_party/heimdal/lib/ipc/common.c",
645 "third_party/heimdal/lib/krb5/expand_path.c",
646 "third_party/heimdal/lib/krb5/plugin.c",
647 "third_party/heimdal/lib/krb5/context.c",
648 "lib/util/asn1.c",
649 "lib/crypto/gnutls_error.c",
650 "lib/crypto/gnutls_aead_aes_256_cbc_hmac_sha512.c",
651 "lib/crypto/gnutls_arcfour_confounded_md5.c",
652 "lib/crypto/gnutls_weak_crypto.c",
653 "lib/crypto/gnutls_sp800_108.c",
654 "lib/param/loadparm.c",
655 "lib/param/util.c",
656 "lib/param/param_table.c",
657 "lib/dbwrap/dbwrap.c",
658 "lib/dbwrap/dbwrap_util.c",
659 "lib/dbwrap/dbwrap_rbt.c",
660 "lib/dbwrap/dbwrap_tdb.c",
661 "lib/dbwrap/dbwrap_local_open.c",
662 "librpc/ndr/ndr_krb5pac.c",
663 "librpc/gen_ndr/ndr_krb5pac.c",
664 "librpc/ndr/ndr_compression.c",
665 "lib/compression/lzxpress.c",
666 "lib/compression/lzxpress_huffman.c",
667 "librpc/gen_ndr/ndr_claims.c",
668 "librpc/ndr/ndr_claims.c",
669 "third_party/heimdal/lib/gssapi/asn1_gssapi_asn1.c",
670 "third_party/heimdal_build/gssapi.empty.c",
671 "third_party/heimdal/lib/gssapi/asn1_spnego_asn1.c",
672 "third_party/heimdal/lib/gssapi/spnego/init_sec_context.c",
673 "third_party/heimdal/lib/gssapi/spnego/external.c",
674 "third_party/heimdal/lib/gssapi/spnego/compat.c",
675 "third_party/heimdal/lib/gssapi/spnego/context_stubs.c",
676 "third_party/heimdal/lib/gssapi/spnego/context_storage.c",
677 "third_party/heimdal/lib/gssapi/spnego/accept_sec_context.c",
678 "third_party/heimdal/lib/gssapi/spnego/negoex_ctx.c",
679 "third_party/heimdal/lib/gssapi/spnego/negoex_err.c",
680 "third_party/heimdal/lib/gssapi/spnego/negoex_util.c",
681 "third_party/heimdal/lib/gssapi/krb5/copy_ccache.c",
682 "third_party/heimdal/lib/gssapi/krb5/delete_sec_context.c",
683 "third_party/heimdal/lib/gssapi/krb5/duplicate_cred.c",
684 "third_party/heimdal/lib/gssapi/krb5/init_sec_context.c",
685 "third_party/heimdal/lib/gssapi/krb5/context_time.c",
686 "third_party/heimdal/lib/gssapi/krb5/init.c",
687 "third_party/heimdal/lib/gssapi/krb5/address_to_krb5addr.c",
688 "third_party/heimdal/lib/gssapi/krb5/get_mic.c",
689 "third_party/heimdal/lib/gssapi/krb5/inquire_context.c",
690 "third_party/heimdal/lib/gssapi/krb5/add_cred.c",
691 "third_party/heimdal/lib/gssapi/krb5/inquire_cred.c",
692 "third_party/heimdal/lib/gssapi/krb5/inquire_cred_by_oid.c",
693 "third_party/heimdal/lib/gssapi/krb5/inquire_cred_by_mech.c",
694 "third_party/heimdal/lib/gssapi/krb5/inquire_mechs_for_name.c",
695 "third_party/heimdal/lib/gssapi/krb5/inquire_names_for_mech.c",
696 "third_party/heimdal/lib/gssapi/krb5/indicate_mechs.c",
697 "third_party/heimdal/lib/gssapi/krb5/inquire_sec_context_by_oid.c",
698 "third_party/heimdal/lib/gssapi/krb5/name_attrs.c",
699 "third_party/heimdal/lib/gssapi/krb5/export_sec_context.c",
700 "third_party/heimdal/lib/gssapi/krb5/import_sec_context.c",
701 "third_party/heimdal/lib/gssapi/krb5/duplicate_name.c",
702 "third_party/heimdal/lib/gssapi/krb5/import_name.c",
703 "third_party/heimdal/lib/gssapi/krb5/compare_name.c",
704 "third_party/heimdal/lib/gssapi/krb5/export_name.c",
705 "third_party/heimdal/lib/gssapi/krb5/canonicalize_name.c",
706 "third_party/heimdal/lib/gssapi/krb5/unwrap.c",
707 "third_party/heimdal/lib/gssapi/krb5/wrap.c",
708 "third_party/heimdal/lib/gssapi/krb5/release_name.c",
709 "third_party/heimdal/lib/gssapi/krb5/cfx.c",
710 "third_party/heimdal/lib/gssapi/krb5/8003.c",
711 "third_party/heimdal/lib/gssapi/krb5/arcfour.c",
712 "third_party/heimdal/lib/gssapi/krb5/encapsulate.c",
713 "third_party/heimdal/lib/gssapi/krb5/display_name.c",
714 "third_party/heimdal/lib/gssapi/krb5/sequence.c",
715 "third_party/heimdal/lib/gssapi/krb5/display_status.c",
716 "third_party/heimdal/lib/gssapi/krb5/release_buffer.c",
717 "third_party/heimdal/lib/gssapi/krb5/external.c",
718 "third_party/heimdal/lib/gssapi/krb5/compat.c",
719 "third_party/heimdal/lib/gssapi/krb5/creds.c",
720 "third_party/heimdal/lib/gssapi/krb5/ccache_name.c",
721 "third_party/heimdal/lib/gssapi/krb5/acquire_cred.c",
722 "third_party/heimdal/lib/gssapi/krb5/release_cred.c",
723 "third_party/heimdal/lib/gssapi/krb5/store_cred.c",
724 "third_party/heimdal/lib/gssapi/krb5/set_cred_option.c",
725 "third_party/heimdal/lib/gssapi/krb5/decapsulate.c",
726 "third_party/heimdal/lib/gssapi/krb5/verify_mic.c",
727 "third_party/heimdal/lib/gssapi/krb5/accept_sec_context.c",
728 "third_party/heimdal/lib/gssapi/krb5/set_sec_context_option.c",
729 "third_party/heimdal/lib/gssapi/krb5/process_context_token.c",
730 "third_party/heimdal/lib/gssapi/krb5/prf.c",
731 "third_party/heimdal/lib/gssapi/krb5/aeap.c",
732 "third_party/heimdal/lib/gssapi/krb5/pname_to_uid.c",
733 "third_party/heimdal/lib/gssapi/krb5/authorize_localname.c",
734 "third_party/heimdal/lib/gssapi/krb5/gkrb5_err.c",
735 "third_party/heimdal/lib/gssapi/mech/cred.c",
736 "third_party/heimdal/lib/gssapi/mech/context.c",
737 "third_party/heimdal/lib/gssapi/mech/gss_krb5.c",
738 "third_party/heimdal/lib/gssapi/mech/gss_mech_switch.c",
739 "third_party/heimdal/lib/gssapi/mech/gss_process_context_token.c",
740 "third_party/heimdal/lib/gssapi/mech/gss_buffer_set.c",
741 "third_party/heimdal/lib/gssapi/mech/gss_aeap.c",
742 "third_party/heimdal/lib/gssapi/mech/gss_add_cred.c",
743 "third_party/heimdal/lib/gssapi/mech/gss_add_cred_from.c",
744 "third_party/heimdal/lib/gssapi/mech/gss_acquire_cred_from.c",
745 "third_party/heimdal/lib/gssapi/mech/gss_cred.c",
746 "third_party/heimdal/lib/gssapi/mech/gss_store_cred_into.c",
747 "third_party/heimdal/lib/gssapi/mech/gss_add_oid_set_member.c",
748 "third_party/heimdal/lib/gssapi/mech/gss_compare_name.c",
749 "third_party/heimdal/lib/gssapi/mech/gss_release_oid_set.c",
750 "third_party/heimdal/lib/gssapi/mech/gss_create_empty_oid_set.c",
751 "third_party/heimdal/lib/gssapi/mech/gss_duplicate_oid_set.c",
752 "third_party/heimdal/lib/gssapi/mech/gss_decapsulate_token.c",
753 "third_party/heimdal/lib/gssapi/mech/gss_inquire_cred_by_oid.c",
754 "third_party/heimdal/lib/gssapi/mech/gss_canonicalize_name.c",
755 "third_party/heimdal/lib/gssapi/mech/gss_inquire_sec_context_by_oid.c",
756 "third_party/heimdal/lib/gssapi/mech/gss_inquire_names_for_mech.c",
757 "third_party/heimdal/lib/gssapi/mech/gss_inquire_mechs_for_name.c",
758 "third_party/heimdal/lib/gssapi/mech/gss_wrap_size_limit.c",
759 "third_party/heimdal/lib/gssapi/mech/gss_names.c",
760 "third_party/heimdal/lib/gssapi/mech/gss_verify.c",
761 "third_party/heimdal/lib/gssapi/mech/gss_display_name.c",
762 "third_party/heimdal/lib/gssapi/mech/gss_duplicate_oid.c",
763 "third_party/heimdal/lib/gssapi/mech/gss_duplicate_cred.c",
764 "third_party/heimdal/lib/gssapi/mech/gss_display_status.c",
765 "third_party/heimdal/lib/gssapi/mech/gss_release_buffer.c",
766 "third_party/heimdal/lib/gssapi/mech/gss_release_oid.c",
767 "third_party/heimdal/lib/gssapi/mech/gss_test_oid_set_member.c",
768 "third_party/heimdal/lib/gssapi/mech/gss_release_cred.c",
769 "third_party/heimdal/lib/gssapi/mech/gss_set_sec_context_option.c",
770 "third_party/heimdal/lib/gssapi/mech/gss_export_name.c",
771 "third_party/heimdal/lib/gssapi/mech/gss_seal.c",
772 "third_party/heimdal/lib/gssapi/mech/gss_acquire_cred.c",
773 "third_party/heimdal/lib/gssapi/mech/gss_unseal.c",
774 "third_party/heimdal/lib/gssapi/mech/gss_verify_mic.c",
775 "third_party/heimdal/lib/gssapi/mech/gss_accept_sec_context.c",
776 "third_party/heimdal/lib/gssapi/mech/gss_inquire_cred_by_mech.c",
777 "third_party/heimdal/lib/gssapi/mech/gss_indicate_mechs.c",
778 "third_party/heimdal/lib/gssapi/mech/gss_get_neg_mechs.c",
779 "third_party/heimdal/lib/gssapi/mech/gss_delete_sec_context.c",
780 "third_party/heimdal/lib/gssapi/mech/gss_sign.c",
781 "third_party/heimdal/lib/gssapi/mech/gss_utils.c",
782 "third_party/heimdal/lib/gssapi/mech/gss_init_sec_context.c",
783 "third_party/heimdal/lib/gssapi/mech/gss_oid_equal.c",
784 "third_party/heimdal/lib/gssapi/mech/gss_oid.c",
785 "third_party/heimdal/lib/gssapi/mech/gss_oid_to_str.c",
786 "third_party/heimdal/lib/gssapi/mech/gss_mo.c",
787 "third_party/heimdal/lib/gssapi/mech/gss_context_time.c",
788 "third_party/heimdal/lib/gssapi/mech/gss_encapsulate_token.c",
789 "third_party/heimdal/lib/gssapi/mech/gss_get_mic.c",
790 "third_party/heimdal/lib/gssapi/mech/gss_import_sec_context.c",
791 "third_party/heimdal/lib/gssapi/mech/gss_inquire_cred.c",
792 "third_party/heimdal/lib/gssapi/mech/gss_wrap.c",
793 "third_party/heimdal/lib/gssapi/mech/gss_import_name.c",
794 "third_party/heimdal/lib/gssapi/mech/gss_duplicate_name.c",
795 "third_party/heimdal/lib/gssapi/mech/gss_unwrap.c",
796 "third_party/heimdal/lib/gssapi/mech/gss_export_sec_context.c",
797 "third_party/heimdal/lib/gssapi/mech/gss_export_name_composite.c",
798 "third_party/heimdal/lib/gssapi/mech/gss_inquire_context.c",
799 "third_party/heimdal/lib/gssapi/mech/gss_release_name.c",
800 "third_party/heimdal/lib/gssapi/mech/gss_set_cred_option.c",
801 "third_party/heimdal/lib/gssapi/mech/gss_pseudo_random.c",
802 "third_party/heimdal/lib/gssapi/mech/gss_authorize_localname.c",
803 "third_party/heimdal/lib/gssapi/mech/gss_get_name_attribute.c",
804 "third_party/heimdal/lib/gssapi/mech/gssspi_exchange_meta_data.c",
805 "third_party/heimdal/lib/gssapi/mech/gssspi_query_mechanism_info.c",
806 "third_party/heimdal/lib/gssapi/mech/gssspi_query_meta_data.c",
807 "third_party/heimdal_build/gssapi-glue.c",
808 "lib/util/msghdr.c",
809 "lib/socket/interfaces.c",
810 "source4/lib/events/tevent_s4.c",
811 "librpc/gen_ndr/ndr_krb5ccache.c",
812 "librpc/ndr/ndr_negoex.c",
813 "librpc/gen_ndr/ndr_negoex.c",
814 "librpc/gen_ndr/ndr_smb2_lease_struct.c",
815 "librpc/gen_ndr/ndr_named_pipe_auth.c",
816 "librpc/ndr/ndr_drsuapi.c",
817 "librpc/gen_ndr/ndr_drsuapi.c",
818 "librpc/gen_ndr/ndr_epmapper.c",
819 "librpc/gen_ndr/ndr_mgmt.c",
820 "librpc/ndr-samba.empty.c",
821 "librpc/gen_ndr/ndr_mdssvc.c",
822 "librpc/gen_ndr/ndr_gmsa.c",
823 "librpc/gen_ndr/ndr_smb3posix.c",
824 "librpc/gen_ndr/ndr_wsp.c",
825 "librpc/wsp/wsp_helper.c",
826 "librpc/wsp/wsp_props_gen.c",
827 "source3/librpc/gen_ndr/ndr_rpcd_witness.c",
828 "source3/librpc/gen_ndr/ndr_open_files.c",
829 "librpc/ndr/ndr_drsblobs.c",
830 "librpc/gen_ndr/ndr_drsblobs.c",
831 "librpc/gen_ndr/ndr_dnsserver.c",
832 "librpc/ndr/ndr_dnsserver.c",
833 "librpc/gen_ndr/ndr_fsrvp.c",
834 "librpc/ndr/ndr_schannel.c",
835 "librpc/gen_ndr/ndr_schannel.c",
836 "librpc/ndr/ndr_xattr.c",
837 "librpc/gen_ndr/ndr_xattr.c",
838 "librpc/gen_ndr/ndr_ntprinting.c",
839 "librpc/ndr/ndr_ntprinting.c",
840 "librpc/gen_ndr/ndr_idmap.c",
841 "librpc/gen_ndr/ndr_unixinfo.c",
842 "librpc/ndr/ndr_ntlmssp.c",
843 "librpc/gen_ndr/ndr_ntlmssp.c",
844 "librpc/gen_ndr/ndr_auth.c",
845 "librpc/ndr/ndr_auth.c",
846 "librpc/gen_ndr/ndr_witness.c",
847 "librpc/ndr/ndr_witness.c",
848 "source3/librpc/gen_ndr/ndr_smbXsrv.c",
849 "librpc/gen_ndr/ndr_gkdi.c",
850 "lib/ldb/common/ldb.c",
851 "lib/ldb/common/ldb_modules.c",
852 "lib/ldb/common/ldb_ldif.c",
853 "lib/ldb/common/ldb_parse.c",
854 "lib/ldb/common/ldb_msg.c",
855 "lib/ldb/common/ldb_utf8.c",
856 "lib/ldb/common/ldb_debug.c",
857 "lib/ldb/common/ldb_dn.c",
858 "lib/ldb/common/ldb_match.c",
859 "lib/ldb/common/ldb_options.c",
860 "lib/ldb/common/ldb_pack.c",
861 "lib/ldb/common/ldb_attributes.c",
862 "lib/ldb/common/attrib_handlers.c",
863 "lib/ldb/common/ldb_controls.c",
864 "lib/ldb/common/qsort.c",
865 "lib/ldb/ldb_map/ldb_map.c",
866 "lib/ldb/ldb_map/ldb_map_inbound.c",
867 "lib/ldb/ldb_map/ldb_map_outbound.c",
868 "lib/krb5_wrap/krb5_samba.c",
869 "lib/krb5_wrap/gss_samba.c",
870 "lib/krb5_wrap/keytab_util.c",
871 "lib/krb5_wrap/enctype_convert.c",
872 "lib/krb5_wrap/krb5_errs.c",
873 "lib/messaging/messages_dgm.c",
874 "lib/messaging/messages_dgm_ref.c",
875 "lib/pthreadpool/pthreadpool.c",
876 "lib/pthreadpool/pthreadpool_pipe.c",
877 "lib/pthreadpool/pthreadpool_tevent.c",
878 "lib/util/server_id_db.c",
879 "source3/lib/messages_util.c",
880 "source4/cluster/cluster.c",
881 "source4/cluster/local.c",
882 "source4/lib/socket/socket_ip.c",
883 "source4/libcli/resolve/resolve.c",
884 "source4/libcli/composite/composite.c",
885 "lib/samba-sockets.empty.c",
886 "source4/lib/socket/socket_unix.c",
887 "lib/util/access.c",
888 "source4/lib/socket/socket.c",
889 "source4/lib/socket/access.c",
890 "source4/lib/socket/connect_multi.c",
891 "source4/lib/socket/connect.c",
892 "lib/tsocket/tsocket.c",
893 "lib/tsocket/tsocket_helpers.c",
894 "lib/tsocket/tsocket_bsd.c",
895 "source4/lib/messaging/messaging_send.c",
896 "lib/util/unix_privs.c",
897 "libcli/ldap/ldap_message.c",
898 "libcli/ldap/ldap_ndr.c",
899 "libcli/auth/pam_errors.c",
900 "libcli/lsarpc/util_lsarpc.c",
901 "libcli/auth/ntlm_check.c",
902 "lib/util/util_str_escape.c",
903 "libcli/auth/credentials.c",
904 "libcli/auth/session.c",
905 "libcli/auth/smbencrypt.c",
906 "libcli/auth/smbdes.c",
907 "libcli/auth/msrpc_parse.c",
908 "libcli/auth/cliauth.empty.c",
909 "libcli/auth/spnego_parse.c",
910 "libcli/auth/schannel_state_tdb.c",
911 "libds/common/flag_mapping.c",
912 "auth/authn_policy.c",
913 "lib/audit_logging/audit_logging.c",
914 "auth/auth_sam_reply.c",
915 "auth/wbc_auth_util.c",
916 "auth/auth_log.c",
917 "auth/auth_util.c",
918 "lib/crypto/gmsa.c",
919 "lib/util/util_runcmd.c",
920 "source4/dsdb/common/util.c",
921 "source4/dsdb/common/util_trusts.c",
922 "source4/dsdb/common/util_groups.c",
923 "source4/dsdb/common/util_samr.c",
924 "source4/dsdb/common/dsdb_dn.c",
925 "source4/dsdb/common/dsdb_access.c",
926 "source4/dsdb/common/util_links.c",
927 "source4/dsdb/common/rodc_helper.c",
928 "source4/dsdb/gmsa/gkdi.c",
929 "source4/dsdb/gmsa/util.c",
930 "source3/lib/version.c",
931 "lib/crypto/gkdi.c",
932 "lib/util/util_ldb.c",
933 "lib/ldb-samba/ldb_wrap.c",
934 "source4/dsdb/schema/schema_init.c",
935 "source4/dsdb/schema/schema_set.c",
936 "source4/dsdb/schema/schema_query.c",
937 "source4/dsdb/schema/schema_syntax.c",
938 "source4/dsdb/schema/schema_description.c",
939 "source4/dsdb/schema/schema_convert_to_ol.c",
940 "source4/dsdb/schema/schema_inferiors.c",
941 "source4/dsdb/schema/schema_prefixmap.c",
942 "source4/dsdb/schema/schema_info_attr.c",
943 "source4/dsdb/schema/schema_filtered.c",
944 "source4/dsdb/schema/dsdb_dn.c",
945 "lib/ldb-samba/ldif_handlers.c",
946 "lib/ldb-samba/ldb_matching_rules.c",
947 "source4/auth/kerberos/kerberos_pac.c",
948 "source4/lib/tls/tlscert.c",
949 "source4/lib/tls/tls_tstream.c",
950 "source4/auth/kerberos/krb5_init_context.c",
951 "source4/lib/stream/packet.c",
952 "auth/kerberos/gssapi_pac.c",
953 "auth/kerberos/kerberos_pac.c",
954 "auth/kerberos/gssapi_helper.c",
955 "auth/credentials/credentials_secrets.c",
956 "auth/credentials/credentials.c",
957 "auth/credentials/credentials_krb5.c",
958 "source4/auth/kerberos/srv_keytab.c",
959 "source4/param/secrets.c",
960 "auth/credentials/credentials_ntlm.c",
961 "source4/auth/kerberos/kerberos_util.c",
962 "auth/credentials/credentials_gmsa.c",
963 "nsswitch/libwbclient/wbc_guid.c",
964 "nsswitch/libwbclient/wbc_idmap.c",
965 "nsswitch/libwbclient/wbclient.c",
966 "nsswitch/libwbclient/wbc_pam.c",
967 "nsswitch/libwbclient/wbc_pwd.c",
968 "nsswitch/libwbclient/wbc_sid.c",
969 "nsswitch/libwbclient/wbc_util.c",
970 "nsswitch/wb_common.c",
971 "libcli/drsuapi/repl_decrypt.c",
972 "source4/auth/session.c",
973 "source4/dsdb/samdb/samdb.c",
974 "source4/dsdb/samdb/samdb_privilege.c",
975 "source4/dsdb/samdb/cracknames.c",
976 "source4/dsdb/repl/replicated_objects.c",
977 "source4/auth/sam.c",
978 "source4/auth/system_session.c",
979 "lib/util/modules.c",
980 "libcli/http/gensec/generic.c",
981 "auth/ntlmssp/gensec_ntlmssp.c",
982 "auth/ntlmssp/ntlmssp.c",
983 "auth/ntlmssp/ntlmssp_util.c",
984 "auth/ntlmssp/ntlmssp_ndr.c",
985 "auth/ntlmssp/ntlmssp_client.c",
986 "auth/ntlmssp/ntlmssp_server.c",
987 "auth/ntlmssp/ntlmssp_sign.c",
988 "auth/ntlmssp/gensec_ntlmssp_server.c",
989 "auth/gensec/external.c",
990 "auth/gensec/schannel.c",
991 "source4/auth/gensec/gensec_tstream.c",
992 "auth/gensec/ncalrpc.c",
993 "auth/gensec/gensec.c",
994 "auth/gensec/gensec_start.c",
995 "auth/gensec/gensec_util.c",
996 "source4/auth/gensec/gensec_gssapi.c",
997 "auth/ntlmssp/gensec_ntlmssp.empty.c",
998 "auth/gensec/spnego.c",
999 "libcli/http/gensec/basic.c",
1000 "source3/lib/util_sec.c",
1001 "source3/lib/util_str.c",
1002 "source3/lib/adt_tree.c",
1003 "source3/lib/util_malloc.c",
1004 "source3/lib/file_id.c",
1005 "source3/lib/cbuf.c",
1006 "source3/lib/per_thread_cwd.c",
1007 "libcli/dns/dns.c",
1008 "libcli/dns/resolvconf.c",
1009 "lib/util/talloc_report_printf.c",
1010 "libcli/registry/util_reg.c",
1011 "source3/lib/cluster_support.c",
1012 "source3/lib/ctdb_dummy.c",
1013 "source3/lib/smbd_shim.c",
1014 "source3/lib/charcnv.c",
1015 "source3/lib/fstring.c",
1016 "source4/lib/socket/interface.c",
1017 "libcli/nbt/nbtsocket.c",
1018 "libcli/nbt/namequery.c",
1019 "libcli/nbt/nameregister.c",
1020 "libcli/nbt/namerefresh.c",
1021 "libcli/nbt/namerelease.c",
1022 "libcli/nbt/lmhosts.c",
1023 "lib/addns/dnsquery.c",
1024 "lib/addns/dnsrecord.c",
1025 "lib/addns/dnsutils.c",
1026 "lib/addns/dnssock.c",
1027 "lib/addns/dnsgss.c",
1028 "lib/addns/dnsmarshall.c",
1029 "lib/addns/error.c",
1030 "lib/addns/dnsquery_srv.c",
1031 "libcli/dns/dns_lookup.c",
1032 "source3/param/util.c",
1033 "source3/registry/reg_backend_smbconf.c",
1034 "source3/registry/reg_init_smbconf.c",
1035 "source3/registry/reg_util_token.c",
1036 "source3/registry/reg_api_util.c",
1037 "librpc/gen_ndr/ndr_messaging.c",
1038 "source3/registry/reg_api.c",
1039 "source3/registry/reg_dispatcher.c",
1040 "source3/registry/reg_cachehook.c",
1041 "source3/registry/reg_objects.c",
1042 "source3/registry/reg_util_internal.c",
1043 "source3/lib/util_nttoken.c",
1044 "source3/registry/reg_backend_db.c",
1045 "source3/registry/reg_parse_internal.c",
1046 "source3/registry/reg_parse.c",
1047 "source3/lib/srprs.c",
1048 "source3/registry/reg_init_basic.c",
1049 "source3/lib/dbwrap/dbwrap_open.c",
1050 "source3/lib/dbwrap/dbwrap_watch.c",
1051 "source3/lib/g_lock.c",
1052 "lib/smbconf/smbconf.c",
1053 "lib/smbconf/smbconf_txt.c",
1054 "lib/smbconf/smbconf_util.c",
1055 "source3/lib/util_tdb.c",
1056 "source3/lib/smbconf/smbconf_init.c",
1057 "source3/lib/smbconf/smbconf_reg.c",
1058 "source3/lib/util_tsock.c",
1059 "source3/param/loadparm.c",
1060 "source3/lib/sharesec.c",
1061 "source3/lib/ldap_debug_handler.c",
1062 "source3/lib/util_names.c",
1063 "source3/param/loadparm_ctx.c",
1064 "source3/libsmb/errormap.c",
1065 "source3/libsmb/smberr.c",
1066 "source3/lib/errmap_unix.c",
1067 "lib/util/util_pw.c",
1068 "lib/async_req/async_sock.c",
1069 "source3/lib/system.c",
1070 "source3/lib/sendfile.c",
1071 "source3/lib/recvfile.c",
1072 "source3/lib/time.c",
1073 "source3/lib/util_sid.c",
1074 "source3/lib/util_specialsids.c",
1075 "source3/lib/util_file.c",
1076 "source3/lib/util.c",
1077 "source3/lib/util_path.c",
1078 "source3/lib/util_matching.c",
1079 "source3/lib/util_procid.c",
1080 "source3/lib/util_sock.c",
1081 "source3/lib/util_transfer_file.c",
1082 "source3/lib/util_macstreams.c",
1083 "source3/lib/messages.c",
1084 "source3/lib/util_cluster.c",
1085 "source3/lib/id_cache.c",
1086 "source3/lib/serverid.c",
1087 "source3/lib/server_id_watch.c",
1088 "source3/lib/server_id_db_util.c",
1089 "source3/lib/addrchange.c",
1090 "lib/util/debug_s3.c",
1091 "source3/lib/dumpcore.c",
1092 "source3/lib/interface.c",
1093 "source3/lib/username.c",
1094 "source3/lib/smbrun.c",
1095 "source3/lib/wins_srv.c",
1096 "source3/lib/substitute.c",
1097 "source3/lib/substitute_generic.c",
1098 "source3/lib/ms_fnmatch.c",
1099 "source3/lib/tallocmsg.c",
1100 "source3/lib/dmallocmsg.c",
1101 "source3/lib/gencache.c",
1102 "source3/lib/util_event.c",
1103 "source3/lib/global_contexts.c",
1104 "source3/lib/ldap_escape.c",
1105 "source3/lib/system_smbd.c",
1106 "source3/lib/audit.c",
1107 "source3/lib/idmap_cache.c",
1108 "source3/lib/namemap_cache.c",
1109 "source3/lib/util_ea.c",
1110 "source3/lib/background.c",
1111 "source4/libcli/resolve/bcast.c",
1112 "source4/libcli/resolve/nbtlist.c",
1113 "source4/libcli/resolve/wins.c",
1114 "source4/libcli/resolve/dns_ex.c",
1115 "source4/libcli/resolve/host.c",
1116 "source4/libcli/resolve/lmhosts.c",
1117 "source4/libcli/resolve/resolve_lp.c",
1118 "libcli/util/tstream.c",
1119 "source4/libcli/ldap/ldap_client.c",
1120 "source4/libcli/ldap/ldap_bind.c",
1121 "source4/libcli/ldap/ldap_ildap.c",
1122 "source4/libcli/ldap/ldap_controls.c",
1123 "librpc/gen_ndr/ndr_cab.c",
1124 "librpc/ndr/ndr_cab.c",
1125 "librpc/gen_ndr/ndr_browser.c",
1126 "librpc/gen_ndr/ndr_w32time.c",
1127 "source4/librpc/gen_ndr/ndr_sasl_helpers.c",
1128 "librpc/gen_ndr/ndr_rot.c",
1129 "librpc/gen_ndr/ndr_nfs4acl.c",
1130 "source4/librpc/ndr-samba4.empty.c",
1131 "librpc/gen_ndr/ndr_winstation.c",
1132 "librpc/ndr/ndr_table.c",
1133 "source4/librpc/gen_ndr/tables.c",
1134 "librpc/gen_ndr/ndr_printcap.c",
1135 "librpc/gen_ndr/ndr_wzcsvc.c",
1136 "source4/librpc/gen_ndr/ndr_irpc.c",
1137 "librpc/gen_ndr/ndr_clusapi.c",
1138 "source4/librpc/gen_ndr/ndr_winsif.c",
1139 "librpc/gen_ndr/ndr_audiosrv.c",
1140 "librpc/gen_ndr/ndr_winspool.c",
1141 "librpc/ndr/ndr_orpc.c",
1142 "librpc/gen_ndr/ndr_orpc.c",
1143 "librpc/gen_ndr/ndr_fsrvp_state.c",
1144 "librpc/gen_ndr/ndr_winbind.c",
1145 "librpc/gen_ndr/ndr_rap.c",
1146 "librpc/ndr/ndr_rap.c",
1147 "source4/librpc/gen_ndr/ndr_opendb.c",
1148 "librpc/NDR_NBT.empty.c",
1149 "source4/librpc/gen_ndr/ndr_winsrepl.c",
1150 "librpc/gen_ndr/ndr_dsbackup.c",
1151 "librpc/gen_ndr/ndr_frstrans.c",
1152 "librpc/gen_ndr/ndr_efs.c",
1153 "librpc/gen_ndr/ndr_dfsblobs.c",
1154 "librpc/gen_ndr/ndr_quota.c",
1155 "librpc/gen_ndr/ndr_keysvc.c",
1156 "source3/librpc/gen_ndr/ndr_leases_db.c",
1157 "librpc/gen_ndr/ndr_preg.c",
1158 "librpc/ndr/ndr_preg.c",
1159 "librpc/ndr/ndr_bkupblobs.c",
1160 "librpc/gen_ndr/ndr_bkupblobs.c",
1161 "librpc/gen_ndr/ndr_frsapi.c",
1162 "librpc/gen_ndr/ndr_msgsvc.c",
1163 "librpc/gen_ndr/ndr_policyagent.c",
1164 "source3/librpc/gen_ndr/ndr_ads.c",
1165 "source3/librpc/ndr/ndr_ads.c",
1166 "librpc/gen_ndr/ndr_dcerpc.c",
1167 "librpc/ndr/ndr_dcerpc.c",
1168 "librpc/ndr/ndr_frsrpc.c",
1169 "librpc/gen_ndr/ndr_frsrpc.c",
1170 "source3/librpc/gen_ndr/ndr_perfcount.c",
1171 "librpc/gen_ndr/ndr_trkwks.c",
1172 "librpc/gen_ndr/ndr_dbgidl.c",
1173 "librpc/gen_ndr/ndr_scerpc.c",
1174 "source4/librpc/gen_ndr/ndr_ntp_signd.c",
1175 "librpc/gen_ndr/ndr_ioctl.c",
1176 "librpc/ndr/ndr_ioctl.c",
1177 "librpc/gen_ndr/ndr_smb_acl.c",
1178 "librpc/gen_ndr/ndr_ODJ.c",
1179 "librpc/ndr/ndr_ODJ.c",
1180 "source3/librpc/gen_ndr/ndr_secrets.c",
1181 "librpc/ndr/ndr_backupkey.c",
1182 "librpc/gen_ndr/ndr_backupkey.c",
1183 "librpc/gen_ndr/ndr_fscc.c",
1184 "libcli/smb/read_smb.c",
1185 "libcli/netlogon/netlogon.c",
1186 "libcli/cldap/cldap.c",
1187 "source3/passdb/secrets.c",
1188 "source3/passdb/machine_account_secrets.c",
1189 "source3/passdb/machine_sid.c",
1190 "source3/passdb/secrets_lsa.c",
1191 "librpc/rpc/dcerpc_error.c",
1192 "librpc/rpc/binding.c",
1193 "librpc/rpc/dcerpc_util.c",
1194 "librpc/rpc/binding_handle.c",
1195 "libcli/smb/smb_signing.c",
1196 "libcli/smb/smb_seal.c",
1197 "libcli/smb/smb2_negotiate_context.c",
1198 "libcli/smb/smb2_create_blob.c",
1199 "libcli/smb/smb2_signing.c",
1200 "libcli/smb/smb2_lease.c",
1201 "libcli/smb/util.c",
1202 "libcli/smb/smbXcli_base.c",
1203 "libcli/smb/smb1cli_trans.c",
1204 "libcli/smb/smb1cli_echo.c",
1205 "libcli/smb/smb1cli_create.c",
1206 "libcli/smb/smb1cli_session.c",
1207 "libcli/smb/smb1cli_close.c",
1208 "libcli/smb/smb1cli_write.c",
1209 "libcli/smb/smb1cli_read.c",
1210 "libcli/smb/smb2cli_session.c",
1211 "libcli/smb/smb2cli_tcon.c",
1212 "libcli/smb/smb2cli_create.c",
1213 "libcli/smb/smb2cli_close.c",
1214 "libcli/smb/smb2cli_read.c",
1215 "libcli/smb/smb2cli_write.c",
1216 "libcli/smb/smb2cli_flush.c",
1217 "libcli/smb/smb2cli_set_info.c",
1218 "libcli/smb/smb2cli_query_info.c",
1219 "libcli/smb/smb2cli_notify.c",
1220 "libcli/smb/smb2cli_query_directory.c",
1221 "libcli/smb/smb2cli_ioctl.c",
1222 "libcli/smb/smb2cli_echo.c",
1223 "libcli/smb/smb2_posix.c",
1224 "libcli/smb/tstream_smbXcli_np.c",
1225 "libcli/smb/reparse.c",
1226 "source3/lib/tldap.c",
1227 "source3/lib/tldap_util.c",
1228 "source3/lib/tldap_gensec_bind.c",
1229 "source3/lib/tldap_tls_connect.c",
1230 "third_party/heimdal_build/k5crypto.empty.c",
1231 "source3/libads/cldap.c",
1232 "source3/libads/netlogon_ping.c",
1233 "source3/librpc/crypto/gse_krb5.c",
1234 "source3/librpc/crypto/gse.c",
1235 "source3/libads/kerberos.c",
1236 "source3/libads/ads_status.c",
1237 "source3/libsmb/unexpected.c",
1238 "source3/libsmb/namecache.c",
1239 "source3/libsmb/nmblib.c",
1240 "source3/libsmb/clidgram.c",
1241 "source3/libsmb/namequery.c",
1242 "source3/libsmb/conncache.c",
1243 "source3/libads/sitename_cache.c",
1244 "librpc/gen_ndr/ndr_initshutdown_c.c",
1245 "librpc/gen_ndr/ndr_eventlog_c.c",
1246 "librpc/gen_ndr/ndr_wkssvc_c.c",
1247 "librpc/dcerpc-samba.empty.c",
1248 "librpc/gen_ndr/ndr_spoolss_c.c",
1249 "librpc/gen_ndr/ndr_epmapper_c.c",
1250 "librpc/gen_ndr/ndr_dfs_c.c",
1251 "librpc/gen_ndr/ndr_winreg_c.c",
1252 "librpc/gen_ndr/ndr_lsa_c.c",
1253 "librpc/gen_ndr/ndr_srvsvc_c.c",
1254 "librpc/gen_ndr/ndr_netlogon_c.c",
1255 "librpc/gen_ndr/ndr_svcctl_c.c",
1256 "librpc/gen_ndr/ndr_echo_c.c",
1257 "librpc/gen_ndr/ndr_atsvc_c.c",
1258 "librpc/gen_ndr/ndr_ntsvcs_c.c",
1259 "librpc/gen_ndr/ndr_gkdi_c.c",
1260 "librpc/gen_ndr/ndr_samr_c.c",
1261 "librpc/gen_ndr/ndr_dnsserver_c.c",
1262 "libcli/named_pipe_auth/npa_tstream.c",
1263 "libcli/named_pipe_auth/tstream_u32_read.c",
1264 "source3/libsmb/auth_generic.c",
1265 "source3/libsmb/clientgen.c",
1266 "source3/libsmb/cliconnect.c",
1267 "source3/libsmb/clifile.c",
1268 "source3/libsmb/clirap.c",
1269 "source3/libsmb/clierror.c",
1270 "source3/libsmb/climessage.c",
1271 "source3/libsmb/clireadwrite.c",
1272 "source3/libsmb/clilist.c",
1273 "source3/libsmb/cliprint.c",
1274 "source3/libsmb/clitrans.c",
1275 "source3/libsmb/clisecdesc.c",
1276 "source3/libsmb/cliquota.c",
1277 "source3/libsmb/clifsinfo.c",
1278 "source3/libsmb/clidfs.c",
1279 "source3/libsmb/clioplock.c",
1280 "source3/libsmb/async_smb.c",
1281 "source3/libsmb/clisymlink.c",
1282 "source3/libsmb/smbsock_connect.c",
1283 "source3/libsmb/cli_smb2_fnum.c",
1284 "source3/rpc_client/cli_pipe.c",
1285 "source3/rpc_client/rpc_transport_np.c",
1286 "source3/rpc_client/rpc_transport_sock.c",
1287 "source3/rpc_client/rpc_transport_tstream.c",
1288 "source3/rpc_client/local_np.c",
1289 "source3/librpc/rpc/dcerpc_helpers.c",
1290 "libcli/auth/netlogon_creds_cli.c",
1291 "source3/rpc_client/cli_lsarpc.c",
1292 "source3/rpc_client/init_lsa.c",
1293 "source3/libsmb/libsmb_cache.c",
1294 "source3/libsmb/libsmb_compat.c",
1295 "source3/libsmb/libsmb_context.c",
1296 "source3/libsmb/libsmb_dir.c",
1297 "source3/libsmb/libsmb_file.c",
1298 "source3/libsmb/libsmb_misc.c",
1299 "source3/libsmb/libsmb_path.c",
1300 "source3/libsmb/libsmb_printjob.c",
1301 "source3/libsmb/libsmb_server.c",
1302 "source3/libsmb/libsmb_stat.c",
1303 "source3/libsmb/libsmb_xattr.c",
1304 "source3/libsmb/libsmb_setget.c",
1305];
1306
1307const TDB_SRC: &[&str] = &[
1308 "lib/tdb/common/check.c",
1309 "lib/tdb/common/error.c",
1310 "lib/tdb/common/tdb.c",
1311 "lib/tdb/common/traverse.c",
1312 "lib/tdb/common/freelistcheck.c",
1313 "lib/tdb/common/lock.c",
1314 "lib/tdb/common/dump.c",
1315 "lib/tdb/common/freelist.c",
1316 "lib/tdb/common/io.c",
1317 "lib/tdb/common/open.c",
1318 "lib/tdb/common/transaction.c",
1319 "lib/tdb/common/hash.c",
1320 "lib/tdb/common/summary.c",
1321 "lib/tdb/common/rescue.c",
1322 "lib/tdb/common/mutex.c",
1323];
1324
1325const TALLOC_SRC: &[&str] = &["lib/talloc/talloc.c"];
1326
1327const TEVENT_SRC: &[&str] = &[
1328 "lib/tevent/tevent.c",
1329 "lib/tevent/tevent_debug.c",
1330 "lib/tevent/tevent_fd.c",
1331 "lib/tevent/tevent_immediate.c",
1332 "lib/tevent/tevent_queue.c",
1333 "lib/tevent/tevent_req.c",
1334 "lib/tevent/tevent_wrapper.c",
1335 "lib/tevent/tevent_poll.c",
1336 "lib/tevent/tevent_threads.c",
1337 "lib/tevent/tevent_signal.c",
1338 "lib/tevent/tevent_standard.c",
1339 "lib/tevent/tevent_timed.c",
1340 "lib/tevent/tevent_util.c",
1341 "lib/tevent/tevent_wakeup.c",
1342 "lib/tevent/tevent_epoll.c",
1343];
1344
1345pub struct Artifacts {
1347 pub lib_dir: PathBuf,
1348 pub include_dir: PathBuf,
1349}
1350
1351pub fn version() -> &'static str {
1353 env!("CARGO_PKG_VERSION")
1354}
1355
1356pub struct Build {
1358 out_dir: Option<PathBuf>,
1359 target: Option<String>,
1360 host: Option<String>,
1361 samba_dir: Option<PathBuf>,
1362}
1363
1364impl Default for Build {
1365 fn default() -> Self {
1366 Self::new()
1367 }
1368}
1369
1370impl Build {
1371 pub fn new() -> Build {
1373 Build {
1374 out_dir: env::var_os("OUT_DIR").map(|s| PathBuf::from(s).join("samba-build")),
1375 target: env::var("TARGET").ok(),
1376 host: env::var("HOST").ok(),
1377 samba_dir: Some(PathBuf::from("/usr/local/samba")),
1378 }
1379 }
1380
1381 pub fn out_dir<P: AsRef<Path>>(&mut self, path: P) -> &mut Build {
1382 self.out_dir = Some(path.as_ref().to_path_buf());
1383 self
1384 }
1385
1386 pub fn target(&mut self, target: &str) -> &mut Build {
1387 self.target = Some(target.to_string());
1388 self
1389 }
1390
1391 pub fn host(&mut self, host: &str) -> &mut Build {
1392 self.host = Some(host.to_string());
1393 self
1394 }
1395
1396 pub fn samba_dir<P: AsRef<Path>>(&mut self, path: P) -> &mut Build {
1397 self.samba_dir = Some(path.as_ref().to_path_buf());
1398 self
1399 }
1400
1401 fn cmd_make(&self) -> Result<Command, &'static str> {
1402 let host = &self.host.as_ref().ok_or("HOST dir not set")?[..];
1403 Ok(
1404 if host.contains("dragonfly")
1405 || host.contains("freebsd")
1406 || host.contains("openbsd")
1407 || host.contains("solaris")
1408 || host.contains("illumos")
1409 {
1410 Command::new("gmake")
1411 } else {
1412 Command::new("make")
1413 },
1414 )
1415 }
1416
1417 pub fn build(&mut self) -> Artifacts {
1419 match self.try_build() {
1420 Ok(a) => a,
1421 Err(e) => {
1422 println!("cargo:warning=pavao-src: failed to build samba from source");
1423 eprintln!("\n\n\n{e}\n\n\n");
1424 std::process::exit(1);
1425 }
1426 }
1427 }
1428
1429 pub fn try_build(&mut self) -> Result<Artifacts, String> {
1431 let target = &self.target.as_ref().ok_or("TARGET dir not set")?[..];
1432 let host = &self.host.as_ref().ok_or("HOST dir not set")?[..];
1433 let os = Self::os(target)?;
1434 let out_dir = self.out_dir.as_ref().ok_or("OUT_DIR not set")?;
1435 let build_dir = out_dir.join("build");
1436
1437 if build_dir.exists() {
1438 fs::remove_dir_all(&build_dir).map_err(|e| format!("build_dir: {e}"))?;
1439 }
1440
1441 let inner_dir = build_dir.join("src");
1442 fs::create_dir_all(&inner_dir).map_err(|e| format!("{}: {e}", inner_dir.display()))?;
1443
1444 clone_samba(&inner_dir)?;
1446
1447 let mut cc = cc::Build::new();
1449 cc.target(target).host(host).warnings(false).opt_level(2);
1450 let compiler = cc.get_compiler();
1451 let mut cc_env = compiler.cc_env();
1452 if cc_env.is_empty() {
1453 cc_env = compiler.path().to_path_buf().into_os_string();
1454 }
1455
1456 let ar = cc.get_archiver();
1458
1459 let mut configure = Command::new("sh");
1461 configure.arg("./configure");
1462 configure.arg("--disable-python");
1463 configure.arg("--without-systemd");
1464 configure.arg("--without-ldb-lmdb");
1465 configure.arg("--without-ad-dc");
1466 configure.arg("--bundled-libraries=ALL");
1467 configure.arg("--without-libarchive");
1468 #[cfg(target_os = "macos")]
1469 configure.arg("--without-acl-support"); configure.env("CC", cc_env);
1471 configure.env("AR", ar.get_program());
1472
1473 let ranlib = cc.get_ranlib();
1474 let mut args = vec![ranlib.get_program()];
1475 args.extend(ranlib.get_args());
1476 configure.env("RANLIB", args.join(OsStr::new(" ")));
1477
1478 let mut skip_next = false;
1479 let mut is_isysroot = false;
1480 let mut ios_isysroot = None;
1481 for arg in compiler.args() {
1482 if target.contains("musl") && arg == "-static" {
1485 continue;
1486 }
1487
1488 if target.contains("apple") && arg == "-arch" {
1492 skip_next = true;
1493 continue;
1494 }
1495
1496 if target.contains("apple-ios") {
1498 if arg == "-isysroot" {
1499 is_isysroot = true;
1500 continue;
1501 }
1502
1503 if is_isysroot {
1504 is_isysroot = false;
1505 ios_isysroot = Some(arg.to_str().ok_or("isysroot arg")?.to_string());
1506 continue;
1507 }
1508 }
1509
1510 if skip_next {
1511 skip_next = false;
1512 continue;
1513 }
1514 }
1515
1516 if os.contains("iossimulator") {
1517 if let Some(ref isysr) = ios_isysroot {
1518 configure.env(
1519 "CC",
1520 format!(
1521 "xcrun -sdk iphonesimulator cc -isysroot {}",
1522 Path::new(isysr).display()
1523 ),
1524 );
1525 }
1526 }
1527
1528 configure.current_dir(&inner_dir);
1529 self.run_command(configure, "configuring samba build")?;
1531
1532 self.build_target("tdb", &inner_dir, &ios_isysroot)?;
1534 self.build_target("smbclient", &inner_dir, &ios_isysroot)?;
1536
1537 let lib_dir = inner_dir.join("bin").join("default");
1539
1540 let mut build_static = cc.get_archiver();
1541 build_static.arg("rcs");
1542 build_static.arg("libsmbclient.a");
1543 build_static.current_dir(&lib_dir);
1544
1545 let unique_src: HashSet<String> = SRC_FILES
1547 .iter()
1548 .chain(TDB_SRC)
1549 .chain(TALLOC_SRC)
1550 .chain(TEVENT_SRC)
1551 .map(|s| s.to_string())
1552 .collect();
1553
1554 for object in unique_src {
1556 let path = lib_dir.join(object);
1557
1558 let object_file = Self::find_object_for_src(&path).ok_or(format!(
1559 "object file not found for source file: {}",
1560 path.display()
1561 ))?;
1562
1563 build_static.arg(object_file.display().to_string());
1564 }
1565
1566 self.run_command(build_static, "building static library")?;
1568
1569 let include_dir = inner_dir
1571 .join("bin")
1572 .join("default")
1573 .join("include")
1574 .join("public");
1575
1576 Ok(Artifacts {
1577 lib_dir,
1578 include_dir,
1579 })
1580 }
1581
1582 fn find_object_for_src(src: &Path) -> Option<PathBuf> {
1583 let glob = format!("{}.*.o", src.display());
1584 glob::glob(&glob)
1585 .ok()?
1586 .filter_map(|entry| entry.ok())
1587 .next()
1588 }
1589
1590 fn build_target(
1591 &self,
1592 target: &str,
1593 build_dir: &Path,
1594 ios_isysroot: &Option<String>,
1595 ) -> Result<(), String> {
1596 let mut make = self.cmd_make()?;
1597 make.current_dir(build_dir);
1598 make.arg(target);
1599 if let Some(s) = env::var_os("CARGO_MAKEFLAGS") {
1600 make.env("MAKEFLAGS", s);
1601 }
1602 if let Some(ref isysr) = ios_isysroot {
1603 let components: Vec<&str> = isysr.split("/SDKs/").collect();
1604 make.env("CROSS_TOP", components[0]);
1605 make.env("CROSS_SDK", components[1]);
1606 }
1607 self.run_command(make, &format!("building {target}"))
1608 }
1609
1610 #[track_caller]
1611 fn run_command(&self, mut command: Command, desc: &str) -> Result<(), String> {
1612 println!("running {:?}", command);
1613 let status = command.status();
1614
1615 let verbose_error = match status {
1616 Ok(status) if status.success() => return Ok(()),
1617 Ok(status) => format!(
1618 "'{exe}' reported failure with {status}",
1619 exe = command.get_program().to_string_lossy()
1620 ),
1621 Err(failed) => match failed.kind() {
1622 std::io::ErrorKind::NotFound => format!(
1623 "Command '{exe}' not found. Is {exe} installed?",
1624 exe = command.get_program().to_string_lossy()
1625 ),
1626 _ => format!(
1627 "Could not run '{exe}', because {failed}",
1628 exe = command.get_program().to_string_lossy()
1629 ),
1630 },
1631 };
1632 println!("cargo:warning={desc}: {verbose_error}");
1633 Err(format!(
1634 "Error {desc}:
1635 {verbose_error}
1636 Command failed: {command:?}"
1637 ))
1638 }
1639
1640 fn os(target: &str) -> Result<&'static str, String> {
1641 let os = match target {
1642 "aarch64-apple-darwin" => "darwin64-arm64-cc",
1643 "aarch64-linux-android" => "linux-aarch64",
1644 "aarch64-unknown-freebsd" => "BSD-generic64",
1645 "aarch64-unknown-openbsd" => "BSD-generic64",
1646 "aarch64-unknown-linux-gnu" => "linux-aarch64",
1647 "aarch64-unknown-linux-musl" => "linux-aarch64",
1648 "aarch64-alpine-linux-musl" => "linux-aarch64",
1649 "aarch64-chimera-linux-musl" => "linux-aarch64",
1650 "aarch64-unknown-netbsd" => "BSD-generic64",
1651 "aarch64_be-unknown-netbsd" => "BSD-generic64",
1652 "aarch64-pc-windows-msvc" => "VC-WIN64-ARM",
1653 "aarch64-uwp-windows-msvc" => "VC-WIN64-ARM-UWP",
1654 "arm-linux-androideabi" => "linux-armv4",
1655 "armv7-linux-androideabi" => "linux-armv4",
1656 "arm-unknown-linux-gnueabi" => "linux-armv4",
1657 "arm-unknown-linux-gnueabihf" => "linux-armv4",
1658 "arm-unknown-linux-musleabi" => "linux-armv4",
1659 "arm-unknown-linux-musleabihf" => "linux-armv4",
1660 "arm-chimera-linux-musleabihf" => "linux-armv4",
1661 "armv5te-unknown-linux-gnueabi" => "linux-armv4",
1662 "armv5te-unknown-linux-musleabi" => "linux-armv4",
1663 "armv6-unknown-freebsd" => "BSD-generic32",
1664 "armv6-alpine-linux-musleabihf" => "linux-armv6",
1665 "armv7-unknown-freebsd" => "BSD-armv4",
1666 "armv7-unknown-linux-gnueabi" => "linux-armv4",
1667 "armv7-unknown-linux-musleabi" => "linux-armv4",
1668 "armv7-unknown-linux-gnueabihf" => "linux-armv4",
1669 "armv7-unknown-linux-musleabihf" => "linux-armv4",
1670 "armv7-alpine-linux-musleabihf" => "linux-armv4",
1671 "armv7-chimera-linux-musleabihf" => "linux-armv4",
1672 "armv7-unknown-netbsd-eabihf" => "BSD-generic32",
1673 "asmjs-unknown-emscripten" => "gcc",
1674 "i586-unknown-linux-gnu" => "linux-elf",
1675 "i586-unknown-linux-musl" => "linux-elf",
1676 "i586-alpine-linux-musl" => "linux-elf",
1677 "i586-unknown-netbsd" => "BSD-x86-elf",
1678 "i686-apple-darwin" => "darwin-i386-cc",
1679 "i686-linux-android" => "linux-elf",
1680 "i686-pc-windows-gnu" => "mingw",
1681 "i686-pc-windows-msvc" => "VC-WIN32",
1682 "i686-win7-windows-msvc" => "VC-WIN32",
1683 "i686-unknown-freebsd" => "BSD-x86-elf",
1684 "i686-unknown-haiku" => "haiku-x86",
1685 "i686-unknown-linux-gnu" => "linux-elf",
1686 "i686-unknown-linux-musl" => "linux-elf",
1687 "i686-unknown-netbsd" => "BSD-x86-elf",
1688 "i686-uwp-windows-msvc" => "VC-WIN32-UWP",
1689 "loongarch64-unknown-linux-gnu" => "linux-generic64",
1690 "loongarch64-unknown-linux-musl" => "linux-generic64",
1691 "mips-unknown-linux-gnu" => "linux-mips32",
1692 "mips-unknown-linux-musl" => "linux-mips32",
1693 "mips64-unknown-linux-gnuabi64" => "linux64-mips64",
1694 "mips64-unknown-linux-muslabi64" => "linux64-mips64",
1695 "mips64el-unknown-linux-gnuabi64" => "linux64-mips64",
1696 "mips64el-unknown-linux-muslabi64" => "linux64-mips64",
1697 "mipsel-unknown-linux-gnu" => "linux-mips32",
1698 "mipsel-unknown-linux-musl" => "linux-mips32",
1699 "powerpc-unknown-freebsd" => "BSD-ppc",
1700 "powerpc-unknown-linux-gnu" => "linux-ppc",
1701 "powerpc-unknown-linux-gnuspe" => "linux-ppc",
1702 "powerpc-chimera-linux-musl" => "linux-ppc",
1703 "powerpc-unknown-netbsd" => "BSD-generic32",
1704 "powerpc64-unknown-freebsd" => "BSD-ppc64",
1705 "powerpc64-unknown-linux-gnu" => "linux-ppc64",
1706 "powerpc64-unknown-linux-musl" => "linux-ppc64",
1707 "powerpc64-chimera-linux-musl" => "linux-ppc64",
1708 "powerpc64le-unknown-freebsd" => "BSD-ppc64le",
1709 "powerpc64le-unknown-linux-gnu" => "linux-ppc64le",
1710 "powerpc64le-unknown-linux-musl" => "linux-ppc64le",
1711 "powerpc64le-alpine-linux-musl" => "linux-ppc64le",
1712 "powerpc64le-chimera-linux-musl" => "linux-ppc64le",
1713 "riscv64gc-unknown-freebsd" => "BSD-riscv64",
1714 "riscv64gc-unknown-linux-gnu" => "linux64-riscv64",
1715 "riscv64gc-unknown-linux-musl" => "linux64-riscv64",
1716 "riscv64-alpine-linux-musl" => "linux64-riscv64",
1717 "riscv64-chimera-linux-musl" => "linux64-riscv64",
1718 "riscv64gc-unknown-netbsd" => "BSD-generic64",
1719 "s390x-unknown-linux-gnu" => "linux64-s390x",
1720 "sparc64-unknown-netbsd" => "BSD-generic64",
1721 "s390x-unknown-linux-musl" => "linux64-s390x",
1722 "s390x-alpine-linux-musl" => "linux64-s390x",
1723 "sparcv9-sun-solaris" => "solaris64-sparcv9-gcc",
1724 "thumbv7a-uwp-windows-msvc" => "VC-WIN32-ARM-UWP",
1725 "x86_64-apple-darwin" => "darwin64-x86_64-cc",
1726 "x86_64-linux-android" => "linux-x86_64",
1727 "x86_64-linux" => "linux-x86_64",
1728 "x86_64-pc-windows-gnu" => "mingw64",
1729 "x86_64-pc-windows-gnullvm" => "mingw64",
1730 "x86_64-pc-windows-msvc" => "VC-WIN64A",
1731 "x86_64-win7-windows-msvc" => "VC-WIN64A",
1732 "x86_64-unknown-freebsd" => "BSD-x86_64",
1733 "x86_64-unknown-dragonfly" => "BSD-x86_64",
1734 "x86_64-unknown-haiku" => "haiku-x86_64",
1735 "x86_64-unknown-illumos" => "solaris64-x86_64-gcc",
1736 "x86_64-unknown-linux-gnu" => "linux-x86_64",
1737 "x86_64-unknown-linux-musl" => "linux-x86_64",
1738 "x86_64-alpine-linux-musl" => "linux-x86_64",
1739 "x86_64-chimera-linux-musl" => "linux-x86_64",
1740 "x86_64-unknown-openbsd" => "BSD-x86_64",
1741 "x86_64-unknown-netbsd" => "BSD-x86_64",
1742 "x86_64-uwp-windows-msvc" => "VC-WIN64A-UWP",
1743 "x86_64-pc-solaris" => "solaris64-x86_64-gcc",
1744 "wasm32-unknown-emscripten" => "gcc",
1745 "wasm32-unknown-unknown" => "gcc",
1746 "wasm32-wasi" => "gcc",
1747 "aarch64-apple-ios" => "ios64-cross",
1748 "x86_64-apple-ios" => "iossimulator-xcrun",
1749 "aarch64-apple-ios-sim" => "iossimulator-xcrun",
1750 "aarch64-unknown-linux-ohos" => "linux-aarch64",
1751 "armv7-unknown-linux-ohos" => "linux-generic32",
1752 "x86_64-unknown-linux-ohos" => "linux-x86_64",
1753 _ => {
1754 return Err(format!(
1755 "don't know how to configure OpenSSL for {}",
1756 target
1757 ))
1758 }
1759 };
1760
1761 Ok(os)
1762 }
1763}
1764
1765fn clone_samba(p: &Path) -> Result<(), String> {
1767 let repo_url = "https://git.samba.org/samba.git";
1768 let repo = git2::Repository::clone(repo_url, p).map_err(|e| format!("cloning samba: {e}"))?;
1769
1770 let tag = format!("samba-{}", version());
1772 let obj = repo
1773 .revparse_single(&tag)
1774 .map_err(|e| format!("revparse_single: {e}"))?;
1775
1776 let commit = obj
1777 .peel_to_commit()
1778 .map_err(|e| format!("peel_to_commit: {e}"))?;
1779
1780 repo.checkout_tree(&obj, None)
1781 .map_err(|e| format!("checkout_tree: {e}"))?;
1782
1783 repo.set_head_detached(commit.id())
1784 .map_err(|e| format!("set_head_detached: {e}"))?;
1785
1786 Ok(())
1787}