Merge ~ahasenack/ubuntu/+source/cifs-utils:eoan-cifs-6.9 into ubuntu/+source/cifs-utils:ubuntu/devel

Proposed by Andreas Hasenack
Status: Superseded
Proposed branch: ~ahasenack/ubuntu/+source/cifs-utils:eoan-cifs-6.9
Merge into: ubuntu/+source/cifs-utils:ubuntu/devel
Diff against target: 6018 lines (+3000/-1380)
28 files modified
AUTHORS (+2/-1)
Makefile.am (+7/-1)
Makefile.in (+32/-17)
README (+1/-1)
autom4te.cache/output.0 (+46/-17)
autom4te.cache/output.1 (+46/-17)
autom4te.cache/requests (+91/-91)
autom4te.cache/traces.0 (+181/-176)
autom4te.cache/traces.1 (+483/-474)
checkopts (+253/-0)
cifs.idmap.rst.in (+20/-51)
cifs.upcall.c (+61/-22)
cifs.upcall.rst.in (+79/-124)
cifscreds.rst (+29/-63)
configure (+46/-17)
configure.ac (+10/-4)
debian/changelog (+6/-0)
debian/control (+2/-1)
getcifsacl.c (+24/-11)
getcifsacl.rst.in (+10/-30)
idmapwb.rst.in (+8/-11)
mount.cifs.c (+70/-10)
mount.cifs.rst (+173/-86)
pam_cifscreds.rst (+17/-44)
setcifsacl.c (+24/-5)
setcifsacl.rst.in (+37/-106)
smbinfo.c (+1134/-0)
smbinfo.rst (+108/-0)
Reviewer Review Type Date Requested Status
Canonical Server Pending
Canonical Server Pending
Review via email: mp+368912@code.launchpad.net

This proposal has been superseded by a proposal from 2019-06-17.

Description of the change

PPA with test packages: sudo add-apt-repository ppa:ahasenack/cifs-utils-6.9 -y -u

https://launchpad.net/~ahasenack/+archive/ubuntu/cifs-utils-6.9

Update to version 6.9, going ahead of debian because of their freeze. No packaging changes required, so should be easy to sync again later.

There is a new binary shipped with 6.9: smbinfo. apt-file search finds no such binary in the (eoan) archive, so it should be fine.

I ran the samba dep8 tests, which include an authenticated and anonymous cifs test, and they passed with cifs-utils 6.9:
(...)
autopkgtest [11:08:42]: test smbclient-share-access: - - - - - - - - - - results - - - - - - - - - -
smbclient-share-access PASS
autopkgtest [11:08:43]: @@@@@@@@@@@@@@@@@@@@ summary
cifs-share-access PASS
python-smoke PASS
smbclient-anonymous-share-list PASS
smbclient-authenticated-share-list PASS
smbclient-share-access PASS
qemu-system-x86_64: terminating on signal 15 from pid 7724 (/usr/bin/python3)

real 6m6,081s

To post a comment you must log in.

Unmerged commits

205849d... by Andreas Hasenack

update-metadata

7a8168f... by Andreas Hasenack

changelog

b6acefe... by Andreas Hasenack

  * New upstream version: 6.9 (LP: #1831292)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/AUTHORS b/AUTHORS
2index 081c2fe..e03f097 100644
3--- a/AUTHORS
4+++ b/AUTHORS
5@@ -3,8 +3,9 @@ Steve French <smfrench@gmail.com>
6 Igor Mammedov <niallain@gmail.com>
7 Shirish Pargaonkar <shirishpargaonkar@gmail.com>
8 Suresh Jayaraman <sjayaraman@suse.de>
9-Pavel Shilovsky <piastry@etersoft.ru>
10+Pavel Shilovsky <pshilovsky@samba.org>
11 Igor Druzhinin <jaxbrigs@gmail.com>
12 Scott Lovenberg <scott.lovenberg@gmail.com>
13+Aurelien Aptel <aaptel@suse.com>
14
15 ...and others.
16diff --git a/Makefile.am b/Makefile.am
17index 30658e3..8291b99 100644
18--- a/Makefile.am
19+++ b/Makefile.am
20@@ -16,7 +16,7 @@ man_MANS=
21
22 SUFFIXES = .rst .1 .8
23
24-RST2MAN = rst2man --syntax-highlight=none $< $@
25+RST2MAN = $(have_rst2man) --syntax-highlight=none $< $@
26
27 .rst.1:
28 $(RST2MAN)
29@@ -79,6 +79,12 @@ setcifsacl.rst: setcifsacl.rst.in
30 $(SED) 's,[@]pluginpath@,$(pluginpath),' $(srcdir)/$@.in > $@-t && mv $@-t $@
31 endif
32
33+if CONFIG_SMBINFO
34+bin_PROGRAMS += smbinfo
35+smbinfo_SOURCES = smbinfo.c
36+rst_man_pages += smbinfo.1
37+endif
38+
39 if CONFIG_PLUGIN
40 plugindir = $(pkglibdir)
41 plugin_PROGRAMS = idmapwb.so
42diff --git a/Makefile.in b/Makefile.in
43index a1fca18..1978cf3 100644
44--- a/Makefile.in
45+++ b/Makefile.in
46@@ -90,8 +90,8 @@ POST_UNINSTALL = :
47 build_triplet = @build@
48 host_triplet = @host@
49 root_sbin_PROGRAMS = mount.cifs$(EXEEXT)
50-bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2)
51-sbin_PROGRAMS = $(am__EXEEXT_3) $(am__EXEEXT_4)
52+bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3)
53+sbin_PROGRAMS = $(am__EXEEXT_4) $(am__EXEEXT_5)
54 @CONFIG_CIFSUPCALL_TRUE@am__append_1 = cifs.upcall
55 @CONFIG_CIFSUPCALL_TRUE@am__append_2 = cifs.upcall.8
56 @CONFIG_CIFSCREDS_TRUE@am__append_3 = cifscreds
57@@ -102,13 +102,15 @@ sbin_PROGRAMS = $(am__EXEEXT_3) $(am__EXEEXT_4)
58 @CONFIG_CIFSACL_TRUE@am__append_8 = getcifsacl setcifsacl
59 @CONFIG_CIFSACL_TRUE@am__append_9 = getcifsacl.1 setcifsacl.1
60 @CONFIG_CIFSACL_TRUE@am__append_10 = getcifsacl.rst setcifsacl.rst
61+@CONFIG_SMBINFO_TRUE@am__append_11 = smbinfo
62+@CONFIG_SMBINFO_TRUE@am__append_12 = smbinfo.1
63 @CONFIG_PLUGIN_TRUE@plugin_PROGRAMS = idmapwb.so$(EXEEXT)
64-@CONFIG_PLUGIN_TRUE@am__append_11 = idmapwb.8
65-@CONFIG_PLUGIN_TRUE@am__append_12 = idmapwb.rst
66+@CONFIG_PLUGIN_TRUE@am__append_13 = idmapwb.8
67+@CONFIG_PLUGIN_TRUE@am__append_14 = idmapwb.rst
68 @CONFIG_PAM_TRUE@pam_PROGRAMS = pam_cifscreds.so$(EXEEXT)
69-@CONFIG_PAM_TRUE@am__append_13 = pam_cifscreds.8
70-@CONFIG_MAN_TRUE@am__append_14 = $(rst_man_pages)
71-@CONFIG_MAN_TRUE@am__append_15 = $(rst_man_pages)
72+@CONFIG_PAM_TRUE@am__append_15 = pam_cifscreds.8
73+@CONFIG_MAN_TRUE@am__append_16 = $(rst_man_pages)
74+@CONFIG_MAN_TRUE@am__append_17 = $(rst_man_pages)
75 subdir = .
76 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
77 am__aclocal_m4_deps = $(top_srcdir)/aclocal/idmap.m4 \
78@@ -126,12 +128,13 @@ CONFIG_CLEAN_VPATH_FILES =
79 @CONFIG_CIFSCREDS_TRUE@am__EXEEXT_1 = cifscreds$(EXEEXT)
80 @CONFIG_CIFSACL_TRUE@am__EXEEXT_2 = getcifsacl$(EXEEXT) \
81 @CONFIG_CIFSACL_TRUE@ setcifsacl$(EXEEXT)
82+@CONFIG_SMBINFO_TRUE@am__EXEEXT_3 = smbinfo$(EXEEXT)
83 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pamdir)" \
84 "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(root_sbindir)" \
85 "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man1dir)" \
86 "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(includedir)"
87-@CONFIG_CIFSUPCALL_TRUE@am__EXEEXT_3 = cifs.upcall$(EXEEXT)
88-@CONFIG_CIFSIDMAP_TRUE@am__EXEEXT_4 = cifs.idmap$(EXEEXT)
89+@CONFIG_CIFSUPCALL_TRUE@am__EXEEXT_4 = cifs.upcall$(EXEEXT)
90+@CONFIG_CIFSIDMAP_TRUE@am__EXEEXT_5 = cifs.idmap$(EXEEXT)
91 PROGRAMS = $(bin_PROGRAMS) $(pam_PROGRAMS) $(plugin_PROGRAMS) \
92 $(root_sbin_PROGRAMS) $(sbin_PROGRAMS)
93 am__cifs_idmap_SOURCES_DIST = cifs.idmap.c idmap_plugin.c
94@@ -176,6 +179,10 @@ am__setcifsacl_SOURCES_DIST = setcifsacl.c idmap_plugin.c
95 @CONFIG_CIFSACL_TRUE@ idmap_plugin.$(OBJEXT)
96 setcifsacl_OBJECTS = $(am_setcifsacl_OBJECTS)
97 setcifsacl_DEPENDENCIES =
98+am__smbinfo_SOURCES_DIST = smbinfo.c
99+@CONFIG_SMBINFO_TRUE@am_smbinfo_OBJECTS = smbinfo.$(OBJEXT)
100+smbinfo_OBJECTS = $(am_smbinfo_OBJECTS)
101+smbinfo_LDADD = $(LDADD)
102 AM_V_P = $(am__v_P_@AM_V@)
103 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
104 am__v_P_0 = false
105@@ -206,11 +213,13 @@ am__v_CCLD_0 = @echo " CCLD " $@;
106 am__v_CCLD_1 =
107 SOURCES = $(cifs_idmap_SOURCES) $(cifs_upcall_SOURCES) \
108 $(cifscreds_SOURCES) $(getcifsacl_SOURCES) idmapwb.c \
109- $(mount_cifs_SOURCES) pam_cifscreds.c $(setcifsacl_SOURCES)
110+ $(mount_cifs_SOURCES) pam_cifscreds.c $(setcifsacl_SOURCES) \
111+ $(smbinfo_SOURCES)
112 DIST_SOURCES = $(am__cifs_idmap_SOURCES_DIST) \
113 $(am__cifs_upcall_SOURCES_DIST) $(am__cifscreds_SOURCES_DIST) \
114 $(am__getcifsacl_SOURCES_DIST) idmapwb.c $(mount_cifs_SOURCES) \
115- pam_cifscreds.c $(am__setcifsacl_SOURCES_DIST)
116+ pam_cifscreds.c $(am__setcifsacl_SOURCES_DIST) \
117+ $(am__smbinfo_SOURCES_DIST)
118 RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
119 ctags-recursive dvi-recursive html-recursive info-recursive \
120 install-data-recursive install-dvi-recursive \
121@@ -449,17 +458,17 @@ mount_cifs_SOURCES = mount.cifs.c mtab.c resolve_host.c util.c
122 mount_cifs_LDADD = $(LIBCAP) $(CAPNG_LDADD) $(RT_LDADD)
123 include_HEADERS = cifsidmap.h
124 rst_man_pages = mount.cifs.8 $(am__append_2) $(am__append_4) \
125- $(am__append_6) $(am__append_9) $(am__append_11) \
126- $(am__append_13)
127+ $(am__append_6) $(am__append_9) $(am__append_12) \
128+ $(am__append_13) $(am__append_15)
129
130 #
131 # Generate man pages troff source from POD format
132 #
133-man_MANS = $(am__append_14)
134+man_MANS = $(am__append_16)
135 SUFFIXES = .rst .1 .8
136-RST2MAN = rst2man --syntax-highlight=none $< $@
137-CLEANFILES = $(am__append_7) $(am__append_10) $(am__append_12) \
138- $(am__append_15)
139+RST2MAN = $(have_rst2man) --syntax-highlight=none $< $@
140+CLEANFILES = $(am__append_7) $(am__append_10) $(am__append_14) \
141+ $(am__append_17)
142 @CONFIG_CIFSUPCALL_TRUE@cifs_upcall_SOURCES = cifs.upcall.c data_blob.c asn1.c spnego.c
143 @CONFIG_CIFSUPCALL_TRUE@cifs_upcall_LDADD = -ltalloc -lkeyutils $(KRB5_LDADD) $(CAPNG_LDADD)
144 @CONFIG_CIFSCREDS_TRUE@cifscreds_SOURCES = cifscreds.c cifskey.c resolve_host.c util.c
145@@ -470,6 +479,7 @@ CLEANFILES = $(am__append_7) $(am__append_10) $(am__append_12) \
146 @CONFIG_CIFSACL_TRUE@getcifsacl_LDADD = -ldl
147 @CONFIG_CIFSACL_TRUE@setcifsacl_SOURCES = setcifsacl.c idmap_plugin.c
148 @CONFIG_CIFSACL_TRUE@setcifsacl_LDADD = -ldl
149+@CONFIG_SMBINFO_TRUE@smbinfo_SOURCES = smbinfo.c
150 @CONFIG_PLUGIN_TRUE@plugindir = $(pkglibdir)
151 SUBDIRS = contrib
152 all: config.h
153@@ -768,6 +778,10 @@ setcifsacl$(EXEEXT): $(setcifsacl_OBJECTS) $(setcifsacl_DEPENDENCIES) $(EXTRA_se
154 @rm -f setcifsacl$(EXEEXT)
155 $(AM_V_CCLD)$(LINK) $(setcifsacl_OBJECTS) $(setcifsacl_LDADD) $(LIBS)
156
157+smbinfo$(EXEEXT): $(smbinfo_OBJECTS) $(smbinfo_DEPENDENCIES) $(EXTRA_smbinfo_DEPENDENCIES)
158+ @rm -f smbinfo$(EXEEXT)
159+ $(AM_V_CCLD)$(LINK) $(smbinfo_OBJECTS) $(smbinfo_LDADD) $(LIBS)
160+
161 mostlyclean-compile:
162 -rm -f *.$(OBJEXT)
163
164@@ -788,6 +802,7 @@ distclean-compile:
165 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_cifscreds.Po@am__quote@
166 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resolve_host.Po@am__quote@
167 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setcifsacl.Po@am__quote@
168+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smbinfo.Po@am__quote@
169 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spnego.Po@am__quote@
170 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@
171
172diff --git a/README b/README
173index 3e311a5..76e864f 100644
174--- a/README
175+++ b/README
176@@ -8,7 +8,7 @@ separate package.
177 Home page: http://wiki.samba.org/index.php/LinuxCIFS_utils
178 Mailing list: linux-cifs@vger.kernel.org
179 Git Repository: git://git.samba.org/cifs-utils.git
180- Maintainer: Jeffrey Layton <jlayton@samba.org>
181+ Maintainer: Pavel Shilovsky <pshilovsky@samba.org>
182
183 1. COMPILING
184
185diff --git a/autom4te.cache/output.0 b/autom4te.cache/output.0
186index ca8f33a..dd6704e 100644
187--- a/autom4te.cache/output.0
188+++ b/autom4te.cache/output.0
189@@ -1,6 +1,6 @@
190 @%:@! /bin/sh
191 @%:@ Guess values for system-dependent variables and create Makefiles.
192-@%:@ Generated by GNU Autoconf 2.69 for cifs-utils 6.8.
193+@%:@ Generated by GNU Autoconf 2.69 for cifs-utils 6.9.
194 @%:@
195 @%:@ Report bugs to <linux-cifs@vger.kernel.org>.
196 @%:@
197@@ -580,8 +580,8 @@ MAKEFLAGS=
198 # Identity of this package.
199 PACKAGE_NAME='cifs-utils'
200 PACKAGE_TARNAME='cifs-utils'
201-PACKAGE_VERSION='6.8'
202-PACKAGE_STRING='cifs-utils 6.8'
203+PACKAGE_VERSION='6.9'
204+PACKAGE_STRING='cifs-utils 6.9'
205 PACKAGE_BUGREPORT='linux-cifs@vger.kernel.org'
206 PACKAGE_URL='https://wiki.samba.org/index.php/LinuxCIFS_utils'
207
208@@ -630,6 +630,8 @@ CONFIG_PLUGIN_FALSE
209 CONFIG_PLUGIN_TRUE
210 CONFIG_PAM_FALSE
211 CONFIG_PAM_TRUE
212+CONFIG_SMBINFO_FALSE
213+CONFIG_SMBINFO_TRUE
214 CONFIG_CIFSACL_FALSE
215 CONFIG_CIFSACL_TRUE
216 CONFIG_CIFSIDMAP_FALSE
217@@ -759,6 +761,7 @@ enable_cifsupcall
218 enable_cifscreds
219 enable_cifsidmap
220 enable_cifsacl
221+enable_smbinfo
222 enable_pam
223 enable_systemd
224 enable_man
225@@ -1332,7 +1335,7 @@ if test "$ac_init_help" = "long"; then
226 # Omit some internal or obsolete options to make the list less imposing.
227 # This message is too long to be a string in the A/UX 3.1 sh.
228 cat <<_ACEOF
229-\`configure' configures cifs-utils 6.8 to adapt to many kinds of systems.
230+\`configure' configures cifs-utils 6.9 to adapt to many kinds of systems.
231
232 Usage: $0 [OPTION]... [VAR=VALUE]...
233
234@@ -1403,7 +1406,7 @@ fi
235
236 if test -n "$ac_init_help"; then
237 case $ac_init_help in
238- short | recursive ) echo "Configuration of cifs-utils 6.8:";;
239+ short | recursive ) echo "Configuration of cifs-utils 6.9:";;
240 esac
241 cat <<\_ACEOF
242
243@@ -1420,6 +1423,7 @@ Optional Features:
244 --enable-cifscreds Create cifscreds utility @<:@default=yes@:>@
245 --enable-cifsidmap Create cifs.idmap binary @<:@default=yes@:>@
246 --enable-cifsacl Create get/set cifsacl binary @<:@default=yes@:>@
247+ --enable-smbinfo Create smbinfo binary @<:@default=yes@@
248 --enable-pam Create cifscreds PAM module @<:@default=yes@:>@
249 --enable-systemd Enable systemd specific behavior for mount.cifs
250 @<:@default=yes@:>@
251@@ -1529,7 +1533,7 @@ fi
252 test -n "$ac_init_help" && exit $ac_status
253 if $ac_init_version; then
254 cat <<\_ACEOF
255-cifs-utils configure 6.8
256+cifs-utils configure 6.9
257 generated by GNU Autoconf 2.69
258
259 Copyright (C) 2012 Free Software Foundation, Inc.
260@@ -1998,7 +2002,7 @@ cat >config.log <<_ACEOF
261 This file contains any messages produced by compilers while
262 running configure, to aid debugging if configure makes a mistake.
263
264-It was created by cifs-utils $as_me 6.8, which was
265+It was created by cifs-utils $as_me 6.9, which was
266 generated by GNU Autoconf 2.69. Invocation command line was
267
268 $ $0 $@
269@@ -2868,7 +2872,7 @@ fi
270
271 # Define the identity of the package.
272 PACKAGE='cifs-utils'
273- VERSION='6.8'
274+ VERSION='6.9'
275
276
277 cat >>confdefs.h <<_ACEOF
278@@ -3011,6 +3015,14 @@ else
279 fi
280
281
282+@%:@ Check whether --enable-smbinfo was given.
283+if test "${enable_smbinfo+set}" = set; then :
284+ enableval=$enable_smbinfo; enable_smbinfo=$enableval
285+else
286+ enable_smbinfo="maybe"
287+fi
288+
289+
290 @%:@ Check whether --enable-pam was given.
291 if test "${enable_pam+set}" = set; then :
292 enableval=$enable_pam; enable_pam=$enableval
293@@ -6002,8 +6014,10 @@ fi
294
295 # if docs are not disabled, check if rst2man is available
296 if test $enable_man != "no"; then
297- # Extract the first word of "rst2man", so it can be a program name with args.
298-set dummy rst2man; ac_word=$2
299+ for ac_prog in rst2man-3.6 rst2man-3.4 rst2man-3 rst2man.py rst2man
300+do
301+ # Extract the first word of "$ac_prog", so it can be a program name with args.
302+set dummy $ac_prog; ac_word=$2
303 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
304 $as_echo_n "checking for $ac_word... " >&6; }
305 if ${ac_cv_prog_have_rst2man+:} false; then :
306@@ -6019,7 +6033,7 @@ do
307 test -z "$as_dir" && as_dir=.
308 for ac_exec_ext in '' $ac_executable_extensions; do
309 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
310- ac_cv_prog_have_rst2man="yes"
311+ ac_cv_prog_have_rst2man="$ac_prog"
312 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
313 break 2
314 fi
315@@ -6027,7 +6041,6 @@ done
316 done
317 IFS=$as_save_IFS
318
319- test -z "$ac_cv_prog_have_rst2man" && ac_cv_prog_have_rst2man="no"
320 fi
321 fi
322 have_rst2man=$ac_cv_prog_have_rst2man
323@@ -6040,12 +6053,16 @@ $as_echo "no" >&6; }
324 fi
325
326
327+ test -n "$have_rst2man" && break
328+done
329+test -n "$have_rst2man" || have_rst2man="no"
330+
331 if test $have_rst2man = "no"; then
332 if test $enable_man = "yes"; then
333- as_fn_error $? "rst2man not found: cannot generate man pages, consider installing perl." "$LINENO" 5
334+ as_fn_error $? "rst2man not found: cannot generate man pages, consider installing python{2,3}-docutils." "$LINENO" 5
335 else
336- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: rst2man not found: cannot generate man pages, consider installing perl. Disabling man page generation." >&5
337-$as_echo "$as_me: WARNING: rst2man not found: cannot generate man pages, consider installing perl. Disabling man page generation." >&2;}
338+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: rst2man not found: cannot generate man pages, consider installing python{2,3}-docutils. Disabling man page generation." >&5
339+$as_echo "$as_me: WARNING: rst2man not found: cannot generate man pages, consider installing python{2,3}-docutils. Disabling man page generation." >&2;}
340 enable_man="no"
341 fi
342 else
343@@ -6109,6 +6126,14 @@ else
344 CONFIG_CIFSACL_FALSE=
345 fi
346
347+ if test "$enable_smbinfo" != "no"; then
348+ CONFIG_SMBINFO_TRUE=
349+ CONFIG_SMBINFO_FALSE='#'
350+else
351+ CONFIG_SMBINFO_TRUE='#'
352+ CONFIG_SMBINFO_FALSE=
353+fi
354+
355 if test "$enable_pam" != "no"; then
356 CONFIG_PAM_TRUE=
357 CONFIG_PAM_FALSE='#'
358@@ -6379,6 +6404,10 @@ if test -z "${CONFIG_CIFSACL_TRUE}" && test -z "${CONFIG_CIFSACL_FALSE}"; then
359 as_fn_error $? "conditional \"CONFIG_CIFSACL\" was never defined.
360 Usually this means the macro was only invoked conditionally." "$LINENO" 5
361 fi
362+if test -z "${CONFIG_SMBINFO_TRUE}" && test -z "${CONFIG_SMBINFO_FALSE}"; then
363+ as_fn_error $? "conditional \"CONFIG_SMBINFO\" was never defined.
364+Usually this means the macro was only invoked conditionally." "$LINENO" 5
365+fi
366 if test -z "${CONFIG_PAM_TRUE}" && test -z "${CONFIG_PAM_FALSE}"; then
367 as_fn_error $? "conditional \"CONFIG_PAM\" was never defined.
368 Usually this means the macro was only invoked conditionally." "$LINENO" 5
369@@ -6784,7 +6813,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
370 # report actual input values of CONFIG_FILES etc. instead of their
371 # values after options handling.
372 ac_log="
373-This file was extended by cifs-utils $as_me 6.8, which was
374+This file was extended by cifs-utils $as_me 6.9, which was
375 generated by GNU Autoconf 2.69. Invocation command line was
376
377 CONFIG_FILES = $CONFIG_FILES
378@@ -6851,7 +6880,7 @@ _ACEOF
379 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
380 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
381 ac_cs_version="\\
382-cifs-utils config.status 6.8
383+cifs-utils config.status 6.9
384 configured by $0, generated by GNU Autoconf 2.69,
385 with options \\"\$ac_cs_config\\"
386
387diff --git a/autom4te.cache/output.1 b/autom4te.cache/output.1
388index ca8f33a..dd6704e 100644
389--- a/autom4te.cache/output.1
390+++ b/autom4te.cache/output.1
391@@ -1,6 +1,6 @@
392 @%:@! /bin/sh
393 @%:@ Guess values for system-dependent variables and create Makefiles.
394-@%:@ Generated by GNU Autoconf 2.69 for cifs-utils 6.8.
395+@%:@ Generated by GNU Autoconf 2.69 for cifs-utils 6.9.
396 @%:@
397 @%:@ Report bugs to <linux-cifs@vger.kernel.org>.
398 @%:@
399@@ -580,8 +580,8 @@ MAKEFLAGS=
400 # Identity of this package.
401 PACKAGE_NAME='cifs-utils'
402 PACKAGE_TARNAME='cifs-utils'
403-PACKAGE_VERSION='6.8'
404-PACKAGE_STRING='cifs-utils 6.8'
405+PACKAGE_VERSION='6.9'
406+PACKAGE_STRING='cifs-utils 6.9'
407 PACKAGE_BUGREPORT='linux-cifs@vger.kernel.org'
408 PACKAGE_URL='https://wiki.samba.org/index.php/LinuxCIFS_utils'
409
410@@ -630,6 +630,8 @@ CONFIG_PLUGIN_FALSE
411 CONFIG_PLUGIN_TRUE
412 CONFIG_PAM_FALSE
413 CONFIG_PAM_TRUE
414+CONFIG_SMBINFO_FALSE
415+CONFIG_SMBINFO_TRUE
416 CONFIG_CIFSACL_FALSE
417 CONFIG_CIFSACL_TRUE
418 CONFIG_CIFSIDMAP_FALSE
419@@ -759,6 +761,7 @@ enable_cifsupcall
420 enable_cifscreds
421 enable_cifsidmap
422 enable_cifsacl
423+enable_smbinfo
424 enable_pam
425 enable_systemd
426 enable_man
427@@ -1332,7 +1335,7 @@ if test "$ac_init_help" = "long"; then
428 # Omit some internal or obsolete options to make the list less imposing.
429 # This message is too long to be a string in the A/UX 3.1 sh.
430 cat <<_ACEOF
431-\`configure' configures cifs-utils 6.8 to adapt to many kinds of systems.
432+\`configure' configures cifs-utils 6.9 to adapt to many kinds of systems.
433
434 Usage: $0 [OPTION]... [VAR=VALUE]...
435
436@@ -1403,7 +1406,7 @@ fi
437
438 if test -n "$ac_init_help"; then
439 case $ac_init_help in
440- short | recursive ) echo "Configuration of cifs-utils 6.8:";;
441+ short | recursive ) echo "Configuration of cifs-utils 6.9:";;
442 esac
443 cat <<\_ACEOF
444
445@@ -1420,6 +1423,7 @@ Optional Features:
446 --enable-cifscreds Create cifscreds utility @<:@default=yes@:>@
447 --enable-cifsidmap Create cifs.idmap binary @<:@default=yes@:>@
448 --enable-cifsacl Create get/set cifsacl binary @<:@default=yes@:>@
449+ --enable-smbinfo Create smbinfo binary @<:@default=yes@@
450 --enable-pam Create cifscreds PAM module @<:@default=yes@:>@
451 --enable-systemd Enable systemd specific behavior for mount.cifs
452 @<:@default=yes@:>@
453@@ -1529,7 +1533,7 @@ fi
454 test -n "$ac_init_help" && exit $ac_status
455 if $ac_init_version; then
456 cat <<\_ACEOF
457-cifs-utils configure 6.8
458+cifs-utils configure 6.9
459 generated by GNU Autoconf 2.69
460
461 Copyright (C) 2012 Free Software Foundation, Inc.
462@@ -1998,7 +2002,7 @@ cat >config.log <<_ACEOF
463 This file contains any messages produced by compilers while
464 running configure, to aid debugging if configure makes a mistake.
465
466-It was created by cifs-utils $as_me 6.8, which was
467+It was created by cifs-utils $as_me 6.9, which was
468 generated by GNU Autoconf 2.69. Invocation command line was
469
470 $ $0 $@
471@@ -2868,7 +2872,7 @@ fi
472
473 # Define the identity of the package.
474 PACKAGE='cifs-utils'
475- VERSION='6.8'
476+ VERSION='6.9'
477
478
479 cat >>confdefs.h <<_ACEOF
480@@ -3011,6 +3015,14 @@ else
481 fi
482
483
484+@%:@ Check whether --enable-smbinfo was given.
485+if test "${enable_smbinfo+set}" = set; then :
486+ enableval=$enable_smbinfo; enable_smbinfo=$enableval
487+else
488+ enable_smbinfo="maybe"
489+fi
490+
491+
492 @%:@ Check whether --enable-pam was given.
493 if test "${enable_pam+set}" = set; then :
494 enableval=$enable_pam; enable_pam=$enableval
495@@ -6002,8 +6014,10 @@ fi
496
497 # if docs are not disabled, check if rst2man is available
498 if test $enable_man != "no"; then
499- # Extract the first word of "rst2man", so it can be a program name with args.
500-set dummy rst2man; ac_word=$2
501+ for ac_prog in rst2man-3.6 rst2man-3.4 rst2man-3 rst2man.py rst2man
502+do
503+ # Extract the first word of "$ac_prog", so it can be a program name with args.
504+set dummy $ac_prog; ac_word=$2
505 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
506 $as_echo_n "checking for $ac_word... " >&6; }
507 if ${ac_cv_prog_have_rst2man+:} false; then :
508@@ -6019,7 +6033,7 @@ do
509 test -z "$as_dir" && as_dir=.
510 for ac_exec_ext in '' $ac_executable_extensions; do
511 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
512- ac_cv_prog_have_rst2man="yes"
513+ ac_cv_prog_have_rst2man="$ac_prog"
514 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
515 break 2
516 fi
517@@ -6027,7 +6041,6 @@ done
518 done
519 IFS=$as_save_IFS
520
521- test -z "$ac_cv_prog_have_rst2man" && ac_cv_prog_have_rst2man="no"
522 fi
523 fi
524 have_rst2man=$ac_cv_prog_have_rst2man
525@@ -6040,12 +6053,16 @@ $as_echo "no" >&6; }
526 fi
527
528
529+ test -n "$have_rst2man" && break
530+done
531+test -n "$have_rst2man" || have_rst2man="no"
532+
533 if test $have_rst2man = "no"; then
534 if test $enable_man = "yes"; then
535- as_fn_error $? "rst2man not found: cannot generate man pages, consider installing perl." "$LINENO" 5
536+ as_fn_error $? "rst2man not found: cannot generate man pages, consider installing python{2,3}-docutils." "$LINENO" 5
537 else
538- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: rst2man not found: cannot generate man pages, consider installing perl. Disabling man page generation." >&5
539-$as_echo "$as_me: WARNING: rst2man not found: cannot generate man pages, consider installing perl. Disabling man page generation." >&2;}
540+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: rst2man not found: cannot generate man pages, consider installing python{2,3}-docutils. Disabling man page generation." >&5
541+$as_echo "$as_me: WARNING: rst2man not found: cannot generate man pages, consider installing python{2,3}-docutils. Disabling man page generation." >&2;}
542 enable_man="no"
543 fi
544 else
545@@ -6109,6 +6126,14 @@ else
546 CONFIG_CIFSACL_FALSE=
547 fi
548
549+ if test "$enable_smbinfo" != "no"; then
550+ CONFIG_SMBINFO_TRUE=
551+ CONFIG_SMBINFO_FALSE='#'
552+else
553+ CONFIG_SMBINFO_TRUE='#'
554+ CONFIG_SMBINFO_FALSE=
555+fi
556+
557 if test "$enable_pam" != "no"; then
558 CONFIG_PAM_TRUE=
559 CONFIG_PAM_FALSE='#'
560@@ -6379,6 +6404,10 @@ if test -z "${CONFIG_CIFSACL_TRUE}" && test -z "${CONFIG_CIFSACL_FALSE}"; then
561 as_fn_error $? "conditional \"CONFIG_CIFSACL\" was never defined.
562 Usually this means the macro was only invoked conditionally." "$LINENO" 5
563 fi
564+if test -z "${CONFIG_SMBINFO_TRUE}" && test -z "${CONFIG_SMBINFO_FALSE}"; then
565+ as_fn_error $? "conditional \"CONFIG_SMBINFO\" was never defined.
566+Usually this means the macro was only invoked conditionally." "$LINENO" 5
567+fi
568 if test -z "${CONFIG_PAM_TRUE}" && test -z "${CONFIG_PAM_FALSE}"; then
569 as_fn_error $? "conditional \"CONFIG_PAM\" was never defined.
570 Usually this means the macro was only invoked conditionally." "$LINENO" 5
571@@ -6784,7 +6813,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
572 # report actual input values of CONFIG_FILES etc. instead of their
573 # values after options handling.
574 ac_log="
575-This file was extended by cifs-utils $as_me 6.8, which was
576+This file was extended by cifs-utils $as_me 6.9, which was
577 generated by GNU Autoconf 2.69. Invocation command line was
578
579 CONFIG_FILES = $CONFIG_FILES
580@@ -6851,7 +6880,7 @@ _ACEOF
581 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
582 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
583 ac_cs_version="\\
584-cifs-utils config.status 6.8
585+cifs-utils config.status 6.9
586 configured by $0, generated by GNU Autoconf 2.69,
587 with options \\"\$ac_cs_config\\"
588
589diff --git a/autom4te.cache/requests b/autom4te.cache/requests
590index 4bd072a..2f0f550 100644
591--- a/autom4te.cache/requests
592+++ b/autom4te.cache/requests
593@@ -37,58 +37,58 @@
594 'configure.ac'
595 ],
596 {
597- '_AM_SUBST_NOTMAKE' => 1,
598- '_AM_PROG_TAR' => 1,
599- '_AM_AUTOCONF_VERSION' => 1,
600- 'PKG_CHECK_MODULES_STATIC' => 1,
601- '_AM_IF_OPTION' => 1,
602+ 'AM_CONDITIONAL' => 1,
603+ 'm4_pattern_forbid' => 1,
604 '_AM_CONFIG_MACRO_DIRS' => 1,
605- 'AM_SILENT_RULES' => 1,
606- '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
607- 'AM_RUN_LOG' => 1,
608- 'AM_SANITY_CHECK' => 1,
609- 'PKG_CHECK_EXISTS' => 1,
610- 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
611- 'AC_LIBCAP' => 1,
612+ 'AM_MISSING_HAS_RUN' => 1,
613+ '_AM_PROG_CC_C_O' => 1,
614 'AC_TEST_WBCHL' => 1,
615+ 'AC_DEFUN_ONCE' => 1,
616+ 'PKG_CHECK_VAR' => 1,
617+ 'AU_DEFUN' => 1,
618 '_AM_SET_OPTIONS' => 1,
619- 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
620- 'AC_CONFIG_MACRO_DIR' => 1,
621+ 'AM_AUX_DIR_EXPAND' => 1,
622+ 'PKG_CHECK_MODULES_STATIC' => 1,
623+ 'm4_include' => 1,
624+ 'AM_PROG_CC_C_O' => 1,
625+ 'AM_RUN_LOG' => 1,
626+ '_AM_MANGLE_OPTION' => 1,
627+ 'include' => 1,
628 'AM_SET_DEPDIR' => 1,
629- 'AC_TEST_WBC_IDMAP_BOTH' => 1,
630- 'AM_SET_LEADING_DOT' => 1,
631- 'AM_CONDITIONAL' => 1,
632- 'AM_MISSING_HAS_RUN' => 1,
633+ 'AM_DEP_TRACK' => 1,
634+ 'AC_LIBCAP' => 1,
635 'AM_PROG_INSTALL_SH' => 1,
636- 'AU_DEFUN' => 1,
637- 'AM_AUTOMAKE_VERSION' => 1,
638- 'AM_AUX_DIR_EXPAND' => 1,
639- 'AM_INIT_AUTOMAKE' => 1,
640- 'PKG_NOARCH_INSTALLDIR' => 1,
641- '_AM_DEPENDENCIES' => 1,
642+ 'PKG_INSTALLDIR' => 1,
643+ '_AM_SET_OPTION' => 1,
644 'AC_DEFUN' => 1,
645- 'AM_MAKE_INCLUDE' => 1,
646+ 'PKG_CHECK_MODULES' => 1,
647 'AM_PROG_INSTALL_STRIP' => 1,
648- '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
649- 'PKG_INSTALLDIR' => 1,
650- 'PKG_CHECK_VAR' => 1,
651- '_AM_MANGLE_OPTION' => 1,
652- 'm4_pattern_forbid' => 1,
653- 'AM_PROG_CC_C_O' => 1,
654- 'PKG_PROG_PKG_CONFIG' => 1,
655- 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
656+ 'AC_CONFIG_MACRO_DIR' => 1,
657+ '_m4_warn' => 1,
658 'AM_MISSING_PROG' => 1,
659- 'm4_include' => 1,
660- 'PKG_CHECK_MODULES' => 1,
661- 'include' => 1,
662+ '_AM_DEPENDENCIES' => 1,
663+ '_AM_SUBST_NOTMAKE' => 1,
664+ '_AM_IF_OPTION' => 1,
665+ 'PKG_CHECK_EXISTS' => 1,
666+ 'AM_SET_LEADING_DOT' => 1,
667+ '_AM_AUTOCONF_VERSION' => 1,
668+ 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
669+ 'AM_MAKE_INCLUDE' => 1,
670+ '_AM_PROG_TAR' => 1,
671+ 'AM_SUBST_NOTMAKE' => 1,
672+ 'AM_AUTOMAKE_VERSION' => 1,
673 '_AC_AM_CONFIG_HEADER_HOOK' => 1,
674+ '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
675+ 'AM_SILENT_RULES' => 1,
676+ 'PKG_NOARCH_INSTALLDIR' => 1,
677+ 'PKG_PROG_PKG_CONFIG' => 1,
678+ '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
679+ 'AC_CONFIG_MACRO_DIR_TRACE' => 1,
680+ 'AM_INIT_AUTOMAKE' => 1,
681 'm4_pattern_allow' => 1,
682- '_m4_warn' => 1,
683- '_AM_PROG_CC_C_O' => 1,
684- '_AM_SET_OPTION' => 1,
685- 'AM_SUBST_NOTMAKE' => 1,
686- 'AM_DEP_TRACK' => 1,
687- 'AC_DEFUN_ONCE' => 1
688+ 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
689+ 'AM_SANITY_CHECK' => 1,
690+ 'AC_TEST_WBC_IDMAP_BOTH' => 1
691 }
692 ], 'Autom4te::Request' ),
693 bless( [
694@@ -103,66 +103,66 @@
695 'configure.ac'
696 ],
697 {
698- 'AC_LIBSOURCE' => 1,
699+ 'AM_NLS' => 1,
700+ 'AM_PATH_GUILE' => 1,
701+ 'LT_CONFIG_LTDL_DIR' => 1,
702+ 'AM_XGETTEXT_OPTION' => 1,
703+ '_AM_MAKEFILE_INCLUDE' => 1,
704+ 'AM_SILENT_RULES' => 1,
705+ 'AC_INIT' => 1,
706+ '_AM_COND_ELSE' => 1,
707+ 'AM_INIT_AUTOMAKE' => 1,
708+ 'AC_CANONICAL_SYSTEM' => 1,
709+ 'm4_pattern_allow' => 1,
710+ 'AC_CANONICAL_BUILD' => 1,
711+ 'AC_CANONICAL_HOST' => 1,
712 'AC_PROG_LIBTOOL' => 1,
713- 'include' => 1,
714- 'AC_FC_PP_DEFINE' => 1,
715- '_AM_COND_IF' => 1,
716- '_AM_COND_ENDIF' => 1,
717- 'AC_CONFIG_HEADERS' => 1,
718+ 'sinclude' => 1,
719+ 'AM_PROG_CXX_C_O' => 1,
720 '_m4_warn' => 1,
721- 'm4_pattern_allow' => 1,
722+ '_AM_SUBST_NOTMAKE' => 1,
723+ 'AM_POT_TOOLS' => 1,
724+ 'AC_FC_PP_DEFINE' => 1,
725+ 'AM_MAKEFILE_INCLUDE' => 1,
726 'AM_MAINTAINER_MODE' => 1,
727- 'AM_PROG_FC_C_O' => 1,
728- '_AM_COND_ELSE' => 1,
729- 'AM_PROG_CXX_C_O' => 1,
730- '_LT_AC_TAGCONFIG' => 1,
731- 'AC_FC_SRCEXT' => 1,
732- 'AM_INIT_AUTOMAKE' => 1,
733+ 'AC_LIBSOURCE' => 1,
734+ 'AM_PROG_F77_C_O' => 1,
735+ 'LT_SUPPORTED_TAG' => 1,
736+ 'AM_ENABLE_MULTILIB' => 1,
737+ 'AC_CANONICAL_TARGET' => 1,
738+ 'AM_PROG_AR' => 1,
739 'AM_AUTOMAKE_VERSION' => 1,
740- 'AC_CONFIG_SUBDIRS' => 1,
741- 'AM_PROG_MOC' => 1,
742+ '_AM_COND_IF' => 1,
743 'm4_sinclude' => 1,
744- 'AM_PATH_GUILE' => 1,
745- 'AC_CANONICAL_HOST' => 1,
746- 'AM_ENABLE_MULTILIB' => 1,
747- 'AM_PROG_F77_C_O' => 1,
748- 'AM_PROG_MKDIR_P' => 1,
749- '_AM_MAKEFILE_INCLUDE' => 1,
750- 'm4_pattern_forbid' => 1,
751- 'AC_REQUIRE_AUX_FILE' => 1,
752- 'AC_CANONICAL_BUILD' => 1,
753- 'AM_PROG_CC_C_O' => 1,
754 'AC_CONFIG_LINKS' => 1,
755- 'AC_INIT' => 1,
756- 'AM_MAKEFILE_INCLUDE' => 1,
757- 'AC_SUBST_TRACE' => 1,
758- 'AM_NLS' => 1,
759+ 'AC_CONFIG_LIBOBJ_DIR' => 1,
760+ 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
761+ 'AM_PROG_CC_C_O' => 1,
762 'm4_include' => 1,
763- 'AM_PROG_AR' => 1,
764- 'AC_FC_PP_SRCEXT' => 1,
765- 'AM_GNU_GETTEXT' => 1,
766- 'AC_CANONICAL_TARGET' => 1,
767- 'AC_SUBST' => 1,
768- 'sinclude' => 1,
769- 'AC_CONFIG_FILES' => 1,
770- 'AM_CONDITIONAL' => 1,
771- 'LT_SUPPORTED_TAG' => 1,
772 'AC_DEFINE_TRACE_LITERAL' => 1,
773+ 'include' => 1,
774+ 'AC_FC_SRCEXT' => 1,
775+ 'AM_PROG_FC_C_O' => 1,
776+ '_AM_COND_ENDIF' => 1,
777+ 'AC_REQUIRE_AUX_FILE' => 1,
778+ 'AH_OUTPUT' => 1,
779+ 'AM_CONDITIONAL' => 1,
780+ 'AM_EXTRA_RECURSIVE_TARGETS' => 1,
781+ 'AC_SUBST_TRACE' => 1,
782+ 'AC_CONFIG_FILES' => 1,
783+ 'm4_pattern_forbid' => 1,
784 'AC_CONFIG_AUX_DIR' => 1,
785- 'LT_CONFIG_LTDL_DIR' => 1,
786- 'AM_XGETTEXT_OPTION' => 1,
787- '_AM_SUBST_NOTMAKE' => 1,
788- 'AM_POT_TOOLS' => 1,
789- 'AC_CONFIG_LIBOBJ_DIR' => 1,
790- 'AM_SILENT_RULES' => 1,
791- 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
792+ '_LT_AC_TAGCONFIG' => 1,
793+ 'AM_PROG_MKDIR_P' => 1,
794+ 'AC_FC_FREEFORM' => 1,
795+ 'AC_CONFIG_SUBDIRS' => 1,
796+ 'AC_SUBST' => 1,
797+ 'AC_FC_PP_SRCEXT' => 1,
798+ 'AC_CONFIG_HEADERS' => 1,
799+ 'AM_PROG_MOC' => 1,
800 'LT_INIT' => 1,
801- 'AM_EXTRA_RECURSIVE_TARGETS' => 1,
802- 'AH_OUTPUT' => 1,
803 'AM_PROG_LIBTOOL' => 1,
804- 'AC_CANONICAL_SYSTEM' => 1,
805- 'AC_FC_FREEFORM' => 1
806+ 'AM_GNU_GETTEXT' => 1
807 }
808 ], 'Autom4te::Request' )
809 );
810diff --git a/autom4te.cache/traces.0 b/autom4te.cache/traces.0
811index db1c432..9b82273 100644
812--- a/autom4te.cache/traces.0
813+++ b/autom4te.cache/traces.0
814@@ -1102,115 +1102,115 @@ m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V])
815 m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$])
816 m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_BACKSLASH$])
817 m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH])
818-m4trace:configure.ac:63: -1- m4_pattern_allow([^IDMAP_PLUGIN_PATH$])
819-m4trace:configure.ac:64: -1- m4_pattern_allow([^pluginpath$])
820-m4trace:configure.ac:66: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
821+m4trace:configure.ac:68: -1- m4_pattern_allow([^IDMAP_PLUGIN_PATH$])
822+m4trace:configure.ac:69: -1- m4_pattern_allow([^pluginpath$])
823+m4trace:configure.ac:71: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
824 You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from...
825 ../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from...
826-configure.ac:66: the top level])
827-m4trace:configure.ac:70: -1- m4_pattern_allow([^pamdir$])
828-m4trace:configure.ac:78: -1- m4_pattern_allow([^ROOTSBINDIR$])
829-m4trace:configure.ac:81: -1- m4_pattern_allow([^CC$])
830-m4trace:configure.ac:81: -1- m4_pattern_allow([^CFLAGS$])
831-m4trace:configure.ac:81: -1- m4_pattern_allow([^LDFLAGS$])
832-m4trace:configure.ac:81: -1- m4_pattern_allow([^LIBS$])
833-m4trace:configure.ac:81: -1- m4_pattern_allow([^CPPFLAGS$])
834-m4trace:configure.ac:81: -1- m4_pattern_allow([^CC$])
835-m4trace:configure.ac:81: -1- m4_pattern_allow([^CC$])
836-m4trace:configure.ac:81: -1- m4_pattern_allow([^CC$])
837-m4trace:configure.ac:81: -1- m4_pattern_allow([^CC$])
838-m4trace:configure.ac:81: -1- m4_pattern_allow([^ac_ct_CC$])
839-m4trace:configure.ac:81: -1- m4_pattern_allow([^EXEEXT$])
840-m4trace:configure.ac:81: -1- m4_pattern_allow([^OBJEXT$])
841-m4trace:configure.ac:81: -1- _AM_PROG_CC_C_O
842-m4trace:configure.ac:81: -1- AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext])
843-m4trace:configure.ac:81: -1- _AM_DEPENDENCIES([CC])
844-m4trace:configure.ac:81: -1- AM_SET_DEPDIR
845-m4trace:configure.ac:81: -1- m4_pattern_allow([^DEPDIR$])
846-m4trace:configure.ac:81: -1- AM_OUTPUT_DEPENDENCY_COMMANDS
847-m4trace:configure.ac:81: -1- AM_MAKE_INCLUDE
848-m4trace:configure.ac:81: -1- m4_pattern_allow([^am__include$])
849-m4trace:configure.ac:81: -1- m4_pattern_allow([^am__quote$])
850-m4trace:configure.ac:81: -1- AM_DEP_TRACK
851-m4trace:configure.ac:81: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
852-m4trace:configure.ac:81: -1- m4_pattern_allow([^AMDEP_TRUE$])
853-m4trace:configure.ac:81: -1- m4_pattern_allow([^AMDEP_FALSE$])
854-m4trace:configure.ac:81: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
855-m4trace:configure.ac:81: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
856-m4trace:configure.ac:81: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
857-m4trace:configure.ac:81: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
858-m4trace:configure.ac:81: -1- m4_pattern_allow([^am__nodep$])
859-m4trace:configure.ac:81: -1- _AM_SUBST_NOTMAKE([am__nodep])
860-m4trace:configure.ac:81: -1- m4_pattern_allow([^CCDEPMODE$])
861-m4trace:configure.ac:81: -1- AM_CONDITIONAL([am__fastdepCC], [
862+configure.ac:71: the top level])
863+m4trace:configure.ac:75: -1- m4_pattern_allow([^pamdir$])
864+m4trace:configure.ac:83: -1- m4_pattern_allow([^ROOTSBINDIR$])
865+m4trace:configure.ac:86: -1- m4_pattern_allow([^CC$])
866+m4trace:configure.ac:86: -1- m4_pattern_allow([^CFLAGS$])
867+m4trace:configure.ac:86: -1- m4_pattern_allow([^LDFLAGS$])
868+m4trace:configure.ac:86: -1- m4_pattern_allow([^LIBS$])
869+m4trace:configure.ac:86: -1- m4_pattern_allow([^CPPFLAGS$])
870+m4trace:configure.ac:86: -1- m4_pattern_allow([^CC$])
871+m4trace:configure.ac:86: -1- m4_pattern_allow([^CC$])
872+m4trace:configure.ac:86: -1- m4_pattern_allow([^CC$])
873+m4trace:configure.ac:86: -1- m4_pattern_allow([^CC$])
874+m4trace:configure.ac:86: -1- m4_pattern_allow([^ac_ct_CC$])
875+m4trace:configure.ac:86: -1- m4_pattern_allow([^EXEEXT$])
876+m4trace:configure.ac:86: -1- m4_pattern_allow([^OBJEXT$])
877+m4trace:configure.ac:86: -1- _AM_PROG_CC_C_O
878+m4trace:configure.ac:86: -1- AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext])
879+m4trace:configure.ac:86: -1- _AM_DEPENDENCIES([CC])
880+m4trace:configure.ac:86: -1- AM_SET_DEPDIR
881+m4trace:configure.ac:86: -1- m4_pattern_allow([^DEPDIR$])
882+m4trace:configure.ac:86: -1- AM_OUTPUT_DEPENDENCY_COMMANDS
883+m4trace:configure.ac:86: -1- AM_MAKE_INCLUDE
884+m4trace:configure.ac:86: -1- m4_pattern_allow([^am__include$])
885+m4trace:configure.ac:86: -1- m4_pattern_allow([^am__quote$])
886+m4trace:configure.ac:86: -1- AM_DEP_TRACK
887+m4trace:configure.ac:86: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
888+m4trace:configure.ac:86: -1- m4_pattern_allow([^AMDEP_TRUE$])
889+m4trace:configure.ac:86: -1- m4_pattern_allow([^AMDEP_FALSE$])
890+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
891+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
892+m4trace:configure.ac:86: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
893+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
894+m4trace:configure.ac:86: -1- m4_pattern_allow([^am__nodep$])
895+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([am__nodep])
896+m4trace:configure.ac:86: -1- m4_pattern_allow([^CCDEPMODE$])
897+m4trace:configure.ac:86: -1- AM_CONDITIONAL([am__fastdepCC], [
898 test "x$enable_dependency_tracking" != xno \
899 && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
900-m4trace:configure.ac:81: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
901-m4trace:configure.ac:81: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
902-m4trace:configure.ac:81: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
903-m4trace:configure.ac:81: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
904-m4trace:configure.ac:82: -1- m4_pattern_allow([^CPP$])
905-m4trace:configure.ac:82: -1- m4_pattern_allow([^CPPFLAGS$])
906-m4trace:configure.ac:82: -1- m4_pattern_allow([^CPP$])
907-m4trace:configure.ac:82: -1- m4_pattern_allow([^GREP$])
908-m4trace:configure.ac:82: -1- m4_pattern_allow([^EGREP$])
909-m4trace:configure.ac:82: -1- m4_pattern_allow([^STDC_HEADERS$])
910-m4trace:configure.ac:82: -1- m4_pattern_allow([^_POSIX_SOURCE$])
911-m4trace:configure.ac:82: -1- m4_pattern_allow([^_POSIX_1_SOURCE$])
912-m4trace:configure.ac:82: -1- m4_pattern_allow([^_MINIX$])
913-m4trace:configure.ac:82: -1- m4_pattern_allow([^__EXTENSIONS__$])
914-m4trace:configure.ac:82: -1- m4_pattern_allow([^_ALL_SOURCE$])
915-m4trace:configure.ac:82: -1- m4_pattern_allow([^_GNU_SOURCE$])
916-m4trace:configure.ac:82: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$])
917-m4trace:configure.ac:82: -1- m4_pattern_allow([^_TANDEM_SOURCE$])
918-m4trace:configure.ac:83: -1- AM_PROG_CC_C_O
919-m4trace:configure.ac:87: -1- m4_pattern_allow([^SED$])
920-m4trace:configure.ac:92: -1- m4_pattern_allow([^HAVE__BOOL$])
921-m4trace:configure.ac:92: -1- m4_pattern_allow([^HAVE_STDBOOL_H$])
922-m4trace:configure.ac:93: -1- m4_pattern_allow([^uid_t$])
923-m4trace:configure.ac:93: -1- m4_pattern_allow([^gid_t$])
924-m4trace:configure.ac:94: -1- m4_pattern_allow([^off_t$])
925-m4trace:configure.ac:95: -1- m4_pattern_allow([^pid_t$])
926-m4trace:configure.ac:96: -1- m4_pattern_allow([^size_t$])
927-m4trace:configure.ac:97: -1- m4_pattern_allow([^HAVE_PTRDIFF_T$])
928-m4trace:configure.ac:97: -1- m4_pattern_allow([^HAVE_SSIZE_T$])
929-m4trace:configure.ac:97: -1- m4_pattern_allow([^HAVE_UINT32_T$])
930-m4trace:configure.ac:97: -1- m4_pattern_allow([^HAVE_UINT8_T$])
931-m4trace:configure.ac:100: -1- m4_pattern_allow([^HAVE_GETMNTENT$])
932-m4trace:configure.ac:101: -1- m4_pattern_allow([^LSTAT_FOLLOWS_SLASHED_SYMLINK$])
933-m4trace:configure.ac:101: -1- m4_pattern_allow([^LIB@&t@OBJS$])
934-m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
935-m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_MALLOC$])
936-m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_MALLOC$])
937-m4trace:configure.ac:102: -1- m4_pattern_allow([^LIB@&t@OBJS$])
938-m4trace:configure.ac:102: -1- m4_pattern_allow([^malloc$])
939-m4trace:configure.ac:103: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
940-m4trace:configure.ac:103: -1- m4_pattern_allow([^HAVE_REALLOC$])
941-m4trace:configure.ac:103: -1- m4_pattern_allow([^HAVE_REALLOC$])
942-m4trace:configure.ac:103: -1- m4_pattern_allow([^LIB@&t@OBJS$])
943-m4trace:configure.ac:103: -1- m4_pattern_allow([^realloc$])
944-m4trace:configure.ac:104: -1- m4_pattern_allow([^build$])
945-m4trace:configure.ac:104: -1- m4_pattern_allow([^build_cpu$])
946-m4trace:configure.ac:104: -1- m4_pattern_allow([^build_vendor$])
947-m4trace:configure.ac:104: -1- m4_pattern_allow([^build_os$])
948-m4trace:configure.ac:104: -1- m4_pattern_allow([^host$])
949-m4trace:configure.ac:104: -1- m4_pattern_allow([^host_cpu$])
950-m4trace:configure.ac:104: -1- m4_pattern_allow([^host_vendor$])
951-m4trace:configure.ac:104: -1- m4_pattern_allow([^host_os$])
952-m4trace:configure.ac:104: -1- m4_pattern_allow([^LIB@&t@OBJS$])
953-m4trace:configure.ac:109: -1- m4_pattern_allow([^HAVE_CLOCK_GETTIME$])
954-m4trace:configure.ac:109: -1- m4_pattern_allow([^HAVE_CLOCK_GETTIME$])
955-m4trace:configure.ac:109: -1- m4_pattern_allow([^HAVE_CLOCK_GETTIME$])
956-m4trace:configure.ac:117: -1- m4_pattern_allow([^RT_LDADD$])
957-m4trace:configure.ac:123: -1- m4_pattern_allow([^HAVE_SYS_FSUID_H$])
958-m4trace:configure.ac:132: -1- m4_pattern_allow([^PIE_CFLAGS$])
959-m4trace:configure.ac:139: -1- m4_pattern_allow([^RELRO_CFLAGS$])
960-m4trace:configure.ac:166: -1- m4_pattern_allow([^HAVE_KRB5_KEYBLOCK_KEYVALUE$])
961-m4trace:configure.ac:171: -1- m4_pattern_allow([^HAVE_TALLOC_H$])
962-m4trace:configure.ac:181: -1- m4_pattern_allow([^HAVE_KEYUTILS_H$])
963-m4trace:configure.ac:200: -1- m4_pattern_allow([^KRB5_LDADD$])
964-m4trace:configure.ac:204: -1- AC_TEST_WBCHL
965-m4trace:configure.ac:204: -1- PKG_CHECK_MODULES([WBCLIENT], [wbclient], [], [
966+m4trace:configure.ac:86: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
967+m4trace:configure.ac:86: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
968+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
969+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
970+m4trace:configure.ac:87: -1- m4_pattern_allow([^CPP$])
971+m4trace:configure.ac:87: -1- m4_pattern_allow([^CPPFLAGS$])
972+m4trace:configure.ac:87: -1- m4_pattern_allow([^CPP$])
973+m4trace:configure.ac:87: -1- m4_pattern_allow([^GREP$])
974+m4trace:configure.ac:87: -1- m4_pattern_allow([^EGREP$])
975+m4trace:configure.ac:87: -1- m4_pattern_allow([^STDC_HEADERS$])
976+m4trace:configure.ac:87: -1- m4_pattern_allow([^_POSIX_SOURCE$])
977+m4trace:configure.ac:87: -1- m4_pattern_allow([^_POSIX_1_SOURCE$])
978+m4trace:configure.ac:87: -1- m4_pattern_allow([^_MINIX$])
979+m4trace:configure.ac:87: -1- m4_pattern_allow([^__EXTENSIONS__$])
980+m4trace:configure.ac:87: -1- m4_pattern_allow([^_ALL_SOURCE$])
981+m4trace:configure.ac:87: -1- m4_pattern_allow([^_GNU_SOURCE$])
982+m4trace:configure.ac:87: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$])
983+m4trace:configure.ac:87: -1- m4_pattern_allow([^_TANDEM_SOURCE$])
984+m4trace:configure.ac:88: -1- AM_PROG_CC_C_O
985+m4trace:configure.ac:92: -1- m4_pattern_allow([^SED$])
986+m4trace:configure.ac:97: -1- m4_pattern_allow([^HAVE__BOOL$])
987+m4trace:configure.ac:97: -1- m4_pattern_allow([^HAVE_STDBOOL_H$])
988+m4trace:configure.ac:98: -1- m4_pattern_allow([^uid_t$])
989+m4trace:configure.ac:98: -1- m4_pattern_allow([^gid_t$])
990+m4trace:configure.ac:99: -1- m4_pattern_allow([^off_t$])
991+m4trace:configure.ac:100: -1- m4_pattern_allow([^pid_t$])
992+m4trace:configure.ac:101: -1- m4_pattern_allow([^size_t$])
993+m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_PTRDIFF_T$])
994+m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_SSIZE_T$])
995+m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_UINT32_T$])
996+m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_UINT8_T$])
997+m4trace:configure.ac:105: -1- m4_pattern_allow([^HAVE_GETMNTENT$])
998+m4trace:configure.ac:106: -1- m4_pattern_allow([^LSTAT_FOLLOWS_SLASHED_SYMLINK$])
999+m4trace:configure.ac:106: -1- m4_pattern_allow([^LIB@&t@OBJS$])
1000+m4trace:configure.ac:107: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
1001+m4trace:configure.ac:107: -1- m4_pattern_allow([^HAVE_MALLOC$])
1002+m4trace:configure.ac:107: -1- m4_pattern_allow([^HAVE_MALLOC$])
1003+m4trace:configure.ac:107: -1- m4_pattern_allow([^LIB@&t@OBJS$])
1004+m4trace:configure.ac:107: -1- m4_pattern_allow([^malloc$])
1005+m4trace:configure.ac:108: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
1006+m4trace:configure.ac:108: -1- m4_pattern_allow([^HAVE_REALLOC$])
1007+m4trace:configure.ac:108: -1- m4_pattern_allow([^HAVE_REALLOC$])
1008+m4trace:configure.ac:108: -1- m4_pattern_allow([^LIB@&t@OBJS$])
1009+m4trace:configure.ac:108: -1- m4_pattern_allow([^realloc$])
1010+m4trace:configure.ac:109: -1- m4_pattern_allow([^build$])
1011+m4trace:configure.ac:109: -1- m4_pattern_allow([^build_cpu$])
1012+m4trace:configure.ac:109: -1- m4_pattern_allow([^build_vendor$])
1013+m4trace:configure.ac:109: -1- m4_pattern_allow([^build_os$])
1014+m4trace:configure.ac:109: -1- m4_pattern_allow([^host$])
1015+m4trace:configure.ac:109: -1- m4_pattern_allow([^host_cpu$])
1016+m4trace:configure.ac:109: -1- m4_pattern_allow([^host_vendor$])
1017+m4trace:configure.ac:109: -1- m4_pattern_allow([^host_os$])
1018+m4trace:configure.ac:109: -1- m4_pattern_allow([^LIB@&t@OBJS$])
1019+m4trace:configure.ac:114: -1- m4_pattern_allow([^HAVE_CLOCK_GETTIME$])
1020+m4trace:configure.ac:114: -1- m4_pattern_allow([^HAVE_CLOCK_GETTIME$])
1021+m4trace:configure.ac:114: -1- m4_pattern_allow([^HAVE_CLOCK_GETTIME$])
1022+m4trace:configure.ac:122: -1- m4_pattern_allow([^RT_LDADD$])
1023+m4trace:configure.ac:128: -1- m4_pattern_allow([^HAVE_SYS_FSUID_H$])
1024+m4trace:configure.ac:137: -1- m4_pattern_allow([^PIE_CFLAGS$])
1025+m4trace:configure.ac:144: -1- m4_pattern_allow([^RELRO_CFLAGS$])
1026+m4trace:configure.ac:171: -1- m4_pattern_allow([^HAVE_KRB5_KEYBLOCK_KEYVALUE$])
1027+m4trace:configure.ac:176: -1- m4_pattern_allow([^HAVE_TALLOC_H$])
1028+m4trace:configure.ac:186: -1- m4_pattern_allow([^HAVE_KEYUTILS_H$])
1029+m4trace:configure.ac:205: -1- m4_pattern_allow([^KRB5_LDADD$])
1030+m4trace:configure.ac:209: -1- AC_TEST_WBCHL
1031+m4trace:configure.ac:209: -1- PKG_CHECK_MODULES([WBCLIENT], [wbclient], [], [
1032 if test "$enable_cifsidmap" = "yes"; then
1033 AC_MSG_ERROR([wbclient.h not found, consider installing libwbclient-devel.])
1034 else
1035@@ -1224,76 +1224,81 @@ m4trace:configure.ac:204: -1- PKG_CHECK_MODULES([WBCLIENT], [wbclient], [], [
1036 enable_cifsacl="no"
1037 fi
1038 ])
1039-m4trace:configure.ac:204: -1- PKG_PROG_PKG_CONFIG
1040-m4trace:configure.ac:204: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$])
1041-m4trace:configure.ac:204: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
1042-m4trace:configure.ac:204: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
1043-m4trace:configure.ac:204: -1- m4_pattern_allow([^PKG_CONFIG$])
1044-m4trace:configure.ac:204: -1- m4_pattern_allow([^PKG_CONFIG_PATH$])
1045-m4trace:configure.ac:204: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$])
1046-m4trace:configure.ac:204: -1- m4_pattern_allow([^PKG_CONFIG$])
1047-m4trace:configure.ac:204: -1- m4_pattern_allow([^WBCLIENT_CFLAGS$])
1048-m4trace:configure.ac:204: -1- m4_pattern_allow([^WBCLIENT_LIBS$])
1049-m4trace:configure.ac:204: -1- PKG_CHECK_EXISTS([wbclient], [pkg_cv_[]WBCLIENT_CFLAGS=`$PKG_CONFIG --[]cflags "wbclient" 2>/dev/null`
1050+m4trace:configure.ac:209: -1- PKG_PROG_PKG_CONFIG
1051+m4trace:configure.ac:209: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$])
1052+m4trace:configure.ac:209: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
1053+m4trace:configure.ac:209: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
1054+m4trace:configure.ac:209: -1- m4_pattern_allow([^PKG_CONFIG$])
1055+m4trace:configure.ac:209: -1- m4_pattern_allow([^PKG_CONFIG_PATH$])
1056+m4trace:configure.ac:209: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$])
1057+m4trace:configure.ac:209: -1- m4_pattern_allow([^PKG_CONFIG$])
1058+m4trace:configure.ac:209: -1- m4_pattern_allow([^WBCLIENT_CFLAGS$])
1059+m4trace:configure.ac:209: -1- m4_pattern_allow([^WBCLIENT_LIBS$])
1060+m4trace:configure.ac:209: -1- PKG_CHECK_EXISTS([wbclient], [pkg_cv_[]WBCLIENT_CFLAGS=`$PKG_CONFIG --[]cflags "wbclient" 2>/dev/null`
1061 test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes])
1062-m4trace:configure.ac:204: -1- PKG_CHECK_EXISTS([wbclient], [pkg_cv_[]WBCLIENT_LIBS=`$PKG_CONFIG --[]libs "wbclient" 2>/dev/null`
1063+m4trace:configure.ac:209: -1- PKG_CHECK_EXISTS([wbclient], [pkg_cv_[]WBCLIENT_LIBS=`$PKG_CONFIG --[]libs "wbclient" 2>/dev/null`
1064 test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes])
1065-m4trace:configure.ac:204: -1- _PKG_SHORT_ERRORS_SUPPORTED
1066-m4trace:configure.ac:204: -1- m4_pattern_allow([^HAVE_LIBWBCLIENT$])
1067-m4trace:configure.ac:204: -1- m4_pattern_allow([^HAVE_SYS_XATTR_H$])
1068-m4trace:configure.ac:207: -1- AC_TEST_WBC_IDMAP_BOTH
1069-m4trace:configure.ac:207: -2- m4_pattern_allow([^HAVE_WBC_ID_TYPE_BOTH$])
1070-m4trace:configure.ac:210: -1- m4_pattern_allow([^HAVE_KEYUTILS_H$])
1071-m4trace:configure.ac:223: -1- m4_pattern_allow([^HAVE_SECURITY_PAM_APPL_H$])
1072-m4trace:configure.ac:240: -1- m4_pattern_allow([^HAVE_KRB5_AUTH_CON_GETSENDSUBKEY$])
1073-m4trace:configure.ac:250: -1- m4_pattern_allow([^ENABLE_SYSTEMD$])
1074-m4trace:configure.ac:255: -1- m4_pattern_allow([^have_rst2man$])
1075-m4trace:configure.ac:269: -1- m4_pattern_allow([^HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE$])
1076-m4trace:configure.ac:273: -1- AM_CONDITIONAL([CONFIG_MAN], [test "$enable_man" != "no"])
1077-m4trace:configure.ac:273: -1- m4_pattern_allow([^CONFIG_MAN_TRUE$])
1078-m4trace:configure.ac:273: -1- m4_pattern_allow([^CONFIG_MAN_FALSE$])
1079-m4trace:configure.ac:273: -1- _AM_SUBST_NOTMAKE([CONFIG_MAN_TRUE])
1080-m4trace:configure.ac:273: -1- _AM_SUBST_NOTMAKE([CONFIG_MAN_FALSE])
1081-m4trace:configure.ac:274: -1- AM_CONDITIONAL([CONFIG_CIFSUPCALL], [test "$enable_cifsupcall" != "no"])
1082-m4trace:configure.ac:274: -1- m4_pattern_allow([^CONFIG_CIFSUPCALL_TRUE$])
1083-m4trace:configure.ac:274: -1- m4_pattern_allow([^CONFIG_CIFSUPCALL_FALSE$])
1084-m4trace:configure.ac:274: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSUPCALL_TRUE])
1085-m4trace:configure.ac:274: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSUPCALL_FALSE])
1086-m4trace:configure.ac:275: -1- AM_CONDITIONAL([CONFIG_CIFSCREDS], [test "$enable_cifscreds" != "no"])
1087-m4trace:configure.ac:275: -1- m4_pattern_allow([^CONFIG_CIFSCREDS_TRUE$])
1088-m4trace:configure.ac:275: -1- m4_pattern_allow([^CONFIG_CIFSCREDS_FALSE$])
1089-m4trace:configure.ac:275: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSCREDS_TRUE])
1090-m4trace:configure.ac:275: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSCREDS_FALSE])
1091-m4trace:configure.ac:276: -1- AM_CONDITIONAL([CONFIG_CIFSIDMAP], [test "$enable_cifsidmap" != "no"])
1092-m4trace:configure.ac:276: -1- m4_pattern_allow([^CONFIG_CIFSIDMAP_TRUE$])
1093-m4trace:configure.ac:276: -1- m4_pattern_allow([^CONFIG_CIFSIDMAP_FALSE$])
1094-m4trace:configure.ac:276: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSIDMAP_TRUE])
1095-m4trace:configure.ac:276: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSIDMAP_FALSE])
1096-m4trace:configure.ac:277: -1- AM_CONDITIONAL([CONFIG_CIFSACL], [test "$enable_cifsacl" != "no"])
1097-m4trace:configure.ac:277: -1- m4_pattern_allow([^CONFIG_CIFSACL_TRUE$])
1098-m4trace:configure.ac:277: -1- m4_pattern_allow([^CONFIG_CIFSACL_FALSE$])
1099-m4trace:configure.ac:277: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSACL_TRUE])
1100-m4trace:configure.ac:277: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSACL_FALSE])
1101-m4trace:configure.ac:278: -1- AM_CONDITIONAL([CONFIG_PAM], [test "$enable_pam" != "no"])
1102-m4trace:configure.ac:278: -1- m4_pattern_allow([^CONFIG_PAM_TRUE$])
1103-m4trace:configure.ac:278: -1- m4_pattern_allow([^CONFIG_PAM_FALSE$])
1104-m4trace:configure.ac:278: -1- _AM_SUBST_NOTMAKE([CONFIG_PAM_TRUE])
1105-m4trace:configure.ac:278: -1- _AM_SUBST_NOTMAKE([CONFIG_PAM_FALSE])
1106-m4trace:configure.ac:279: -1- AM_CONDITIONAL([CONFIG_PLUGIN], [test "$enable_cifsidmap" != "no" -o "$enable_cifsacl" != "no"])
1107-m4trace:configure.ac:279: -1- m4_pattern_allow([^CONFIG_PLUGIN_TRUE$])
1108-m4trace:configure.ac:279: -1- m4_pattern_allow([^CONFIG_PLUGIN_FALSE$])
1109-m4trace:configure.ac:279: -1- _AM_SUBST_NOTMAKE([CONFIG_PLUGIN_TRUE])
1110-m4trace:configure.ac:279: -1- _AM_SUBST_NOTMAKE([CONFIG_PLUGIN_FALSE])
1111-m4trace:configure.ac:284: -1- AC_LIBCAP
1112-m4trace:configure.ac:284: -1- m4_pattern_allow([^HAVE_SYS_CAPABILITY_H$])
1113-m4trace:configure.ac:284: -1- m4_pattern_allow([^HAVE_LIBCAP$])
1114-m4trace:configure.ac:284: -1- m4_pattern_allow([^LIBCAP$])
1115-m4trace:configure.ac:286: -1- m4_pattern_allow([^LIB@&t@OBJS$])
1116-m4trace:configure.ac:286: -1- m4_pattern_allow([^LTLIBOBJS$])
1117-m4trace:configure.ac:286: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
1118-m4trace:configure.ac:286: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
1119-m4trace:configure.ac:286: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
1120-m4trace:configure.ac:286: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
1121-m4trace:configure.ac:286: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
1122-m4trace:configure.ac:286: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"])
1123-m4trace:configure.ac:286: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS
1124+m4trace:configure.ac:209: -1- _PKG_SHORT_ERRORS_SUPPORTED
1125+m4trace:configure.ac:209: -1- m4_pattern_allow([^HAVE_LIBWBCLIENT$])
1126+m4trace:configure.ac:209: -1- m4_pattern_allow([^HAVE_SYS_XATTR_H$])
1127+m4trace:configure.ac:212: -1- AC_TEST_WBC_IDMAP_BOTH
1128+m4trace:configure.ac:212: -2- m4_pattern_allow([^HAVE_WBC_ID_TYPE_BOTH$])
1129+m4trace:configure.ac:215: -1- m4_pattern_allow([^HAVE_KEYUTILS_H$])
1130+m4trace:configure.ac:228: -1- m4_pattern_allow([^HAVE_SECURITY_PAM_APPL_H$])
1131+m4trace:configure.ac:245: -1- m4_pattern_allow([^HAVE_KRB5_AUTH_CON_GETSENDSUBKEY$])
1132+m4trace:configure.ac:255: -1- m4_pattern_allow([^ENABLE_SYSTEMD$])
1133+m4trace:configure.ac:260: -1- m4_pattern_allow([^have_rst2man$])
1134+m4trace:configure.ac:274: -1- m4_pattern_allow([^HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE$])
1135+m4trace:configure.ac:278: -1- AM_CONDITIONAL([CONFIG_MAN], [test "$enable_man" != "no"])
1136+m4trace:configure.ac:278: -1- m4_pattern_allow([^CONFIG_MAN_TRUE$])
1137+m4trace:configure.ac:278: -1- m4_pattern_allow([^CONFIG_MAN_FALSE$])
1138+m4trace:configure.ac:278: -1- _AM_SUBST_NOTMAKE([CONFIG_MAN_TRUE])
1139+m4trace:configure.ac:278: -1- _AM_SUBST_NOTMAKE([CONFIG_MAN_FALSE])
1140+m4trace:configure.ac:279: -1- AM_CONDITIONAL([CONFIG_CIFSUPCALL], [test "$enable_cifsupcall" != "no"])
1141+m4trace:configure.ac:279: -1- m4_pattern_allow([^CONFIG_CIFSUPCALL_TRUE$])
1142+m4trace:configure.ac:279: -1- m4_pattern_allow([^CONFIG_CIFSUPCALL_FALSE$])
1143+m4trace:configure.ac:279: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSUPCALL_TRUE])
1144+m4trace:configure.ac:279: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSUPCALL_FALSE])
1145+m4trace:configure.ac:280: -1- AM_CONDITIONAL([CONFIG_CIFSCREDS], [test "$enable_cifscreds" != "no"])
1146+m4trace:configure.ac:280: -1- m4_pattern_allow([^CONFIG_CIFSCREDS_TRUE$])
1147+m4trace:configure.ac:280: -1- m4_pattern_allow([^CONFIG_CIFSCREDS_FALSE$])
1148+m4trace:configure.ac:280: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSCREDS_TRUE])
1149+m4trace:configure.ac:280: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSCREDS_FALSE])
1150+m4trace:configure.ac:281: -1- AM_CONDITIONAL([CONFIG_CIFSIDMAP], [test "$enable_cifsidmap" != "no"])
1151+m4trace:configure.ac:281: -1- m4_pattern_allow([^CONFIG_CIFSIDMAP_TRUE$])
1152+m4trace:configure.ac:281: -1- m4_pattern_allow([^CONFIG_CIFSIDMAP_FALSE$])
1153+m4trace:configure.ac:281: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSIDMAP_TRUE])
1154+m4trace:configure.ac:281: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSIDMAP_FALSE])
1155+m4trace:configure.ac:282: -1- AM_CONDITIONAL([CONFIG_CIFSACL], [test "$enable_cifsacl" != "no"])
1156+m4trace:configure.ac:282: -1- m4_pattern_allow([^CONFIG_CIFSACL_TRUE$])
1157+m4trace:configure.ac:282: -1- m4_pattern_allow([^CONFIG_CIFSACL_FALSE$])
1158+m4trace:configure.ac:282: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSACL_TRUE])
1159+m4trace:configure.ac:282: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSACL_FALSE])
1160+m4trace:configure.ac:283: -1- AM_CONDITIONAL([CONFIG_SMBINFO], [test "$enable_smbinfo" != "no"])
1161+m4trace:configure.ac:283: -1- m4_pattern_allow([^CONFIG_SMBINFO_TRUE$])
1162+m4trace:configure.ac:283: -1- m4_pattern_allow([^CONFIG_SMBINFO_FALSE$])
1163+m4trace:configure.ac:283: -1- _AM_SUBST_NOTMAKE([CONFIG_SMBINFO_TRUE])
1164+m4trace:configure.ac:283: -1- _AM_SUBST_NOTMAKE([CONFIG_SMBINFO_FALSE])
1165+m4trace:configure.ac:284: -1- AM_CONDITIONAL([CONFIG_PAM], [test "$enable_pam" != "no"])
1166+m4trace:configure.ac:284: -1- m4_pattern_allow([^CONFIG_PAM_TRUE$])
1167+m4trace:configure.ac:284: -1- m4_pattern_allow([^CONFIG_PAM_FALSE$])
1168+m4trace:configure.ac:284: -1- _AM_SUBST_NOTMAKE([CONFIG_PAM_TRUE])
1169+m4trace:configure.ac:284: -1- _AM_SUBST_NOTMAKE([CONFIG_PAM_FALSE])
1170+m4trace:configure.ac:285: -1- AM_CONDITIONAL([CONFIG_PLUGIN], [test "$enable_cifsidmap" != "no" -o "$enable_cifsacl" != "no"])
1171+m4trace:configure.ac:285: -1- m4_pattern_allow([^CONFIG_PLUGIN_TRUE$])
1172+m4trace:configure.ac:285: -1- m4_pattern_allow([^CONFIG_PLUGIN_FALSE$])
1173+m4trace:configure.ac:285: -1- _AM_SUBST_NOTMAKE([CONFIG_PLUGIN_TRUE])
1174+m4trace:configure.ac:285: -1- _AM_SUBST_NOTMAKE([CONFIG_PLUGIN_FALSE])
1175+m4trace:configure.ac:290: -1- AC_LIBCAP
1176+m4trace:configure.ac:290: -1- m4_pattern_allow([^HAVE_SYS_CAPABILITY_H$])
1177+m4trace:configure.ac:290: -1- m4_pattern_allow([^HAVE_LIBCAP$])
1178+m4trace:configure.ac:290: -1- m4_pattern_allow([^LIBCAP$])
1179+m4trace:configure.ac:292: -1- m4_pattern_allow([^LIB@&t@OBJS$])
1180+m4trace:configure.ac:292: -1- m4_pattern_allow([^LTLIBOBJS$])
1181+m4trace:configure.ac:292: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
1182+m4trace:configure.ac:292: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
1183+m4trace:configure.ac:292: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
1184+m4trace:configure.ac:292: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
1185+m4trace:configure.ac:292: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
1186+m4trace:configure.ac:292: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"])
1187+m4trace:configure.ac:292: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS
1188diff --git a/autom4te.cache/traces.1 b/autom4te.cache/traces.1
1189index 803b429..3603fda 100644
1190--- a/autom4te.cache/traces.1
1191+++ b/autom4te.cache/traces.1
1192@@ -1,6 +1,6 @@
1193 m4trace:aclocal.m4:1429: -1- m4_include([aclocal/idmap.m4])
1194 m4trace:aclocal.m4:1430: -1- m4_include([aclocal/libcap.m4])
1195-m4trace:configure.ac:4: -1- AC_INIT([cifs-utils], [6.8], [linux-cifs@vger.kernel.org], [cifs-utils], [https://wiki.samba.org/index.php/LinuxCIFS_utils])
1196+m4trace:configure.ac:4: -1- AC_INIT([cifs-utils], [6.9], [linux-cifs@vger.kernel.org], [cifs-utils], [https://wiki.samba.org/index.php/LinuxCIFS_utils])
1197 m4trace:configure.ac:4: -1- m4_pattern_forbid([^_?A[CHUM]_])
1198 m4trace:configure.ac:4: -1- m4_pattern_forbid([_AC_])
1199 m4trace:configure.ac:4: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
1200@@ -253,152 +253,152 @@ m4trace:configure.ac:10: -1- AC_SUBST([AM_BACKSLASH])
1201 m4trace:configure.ac:10: -1- AC_SUBST_TRACE([AM_BACKSLASH])
1202 m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_BACKSLASH$])
1203 m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH])
1204-m4trace:configure.ac:63: -1- AC_DEFINE_TRACE_LITERAL([IDMAP_PLUGIN_PATH])
1205-m4trace:configure.ac:63: -1- m4_pattern_allow([^IDMAP_PLUGIN_PATH$])
1206-m4trace:configure.ac:63: -1- AH_OUTPUT([IDMAP_PLUGIN_PATH], [/* Location of plugin that ID mapping infrastructure should use. (usually a
1207+m4trace:configure.ac:68: -1- AC_DEFINE_TRACE_LITERAL([IDMAP_PLUGIN_PATH])
1208+m4trace:configure.ac:68: -1- m4_pattern_allow([^IDMAP_PLUGIN_PATH$])
1209+m4trace:configure.ac:68: -1- AH_OUTPUT([IDMAP_PLUGIN_PATH], [/* Location of plugin that ID mapping infrastructure should use. (usually a
1210 symlink to real plugin) */
1211 @%:@undef IDMAP_PLUGIN_PATH])
1212-m4trace:configure.ac:64: -1- AC_SUBST([pluginpath])
1213-m4trace:configure.ac:64: -1- AC_SUBST_TRACE([pluginpath])
1214-m4trace:configure.ac:64: -1- m4_pattern_allow([^pluginpath$])
1215-m4trace:configure.ac:66: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
1216+m4trace:configure.ac:69: -1- AC_SUBST([pluginpath])
1217+m4trace:configure.ac:69: -1- AC_SUBST_TRACE([pluginpath])
1218+m4trace:configure.ac:69: -1- m4_pattern_allow([^pluginpath$])
1219+m4trace:configure.ac:71: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
1220 You should run autoupdate.], [../../lib/autoconf/general.m4:207: AC_HELP_STRING is expanded from...
1221 ../../lib/autoconf/general.m4:1492: AC_ARG_WITH is expanded from...
1222-configure.ac:66: the top level])
1223-m4trace:configure.ac:70: -1- AC_SUBST([pamdir])
1224-m4trace:configure.ac:70: -1- AC_SUBST_TRACE([pamdir])
1225-m4trace:configure.ac:70: -1- m4_pattern_allow([^pamdir$])
1226-m4trace:configure.ac:78: -1- AC_SUBST([ROOTSBINDIR])
1227-m4trace:configure.ac:78: -1- AC_SUBST_TRACE([ROOTSBINDIR])
1228-m4trace:configure.ac:78: -1- m4_pattern_allow([^ROOTSBINDIR$])
1229-m4trace:configure.ac:81: -1- AC_SUBST([CC])
1230-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([CC])
1231-m4trace:configure.ac:81: -1- m4_pattern_allow([^CC$])
1232-m4trace:configure.ac:81: -1- AC_SUBST([CFLAGS])
1233-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([CFLAGS])
1234-m4trace:configure.ac:81: -1- m4_pattern_allow([^CFLAGS$])
1235-m4trace:configure.ac:81: -1- AC_SUBST([LDFLAGS])
1236-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([LDFLAGS])
1237-m4trace:configure.ac:81: -1- m4_pattern_allow([^LDFLAGS$])
1238-m4trace:configure.ac:81: -1- AC_SUBST([LIBS])
1239-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([LIBS])
1240-m4trace:configure.ac:81: -1- m4_pattern_allow([^LIBS$])
1241-m4trace:configure.ac:81: -1- AC_SUBST([CPPFLAGS])
1242-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([CPPFLAGS])
1243-m4trace:configure.ac:81: -1- m4_pattern_allow([^CPPFLAGS$])
1244-m4trace:configure.ac:81: -1- AC_SUBST([CC])
1245-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([CC])
1246-m4trace:configure.ac:81: -1- m4_pattern_allow([^CC$])
1247-m4trace:configure.ac:81: -1- AC_SUBST([CC])
1248-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([CC])
1249-m4trace:configure.ac:81: -1- m4_pattern_allow([^CC$])
1250-m4trace:configure.ac:81: -1- AC_SUBST([CC])
1251-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([CC])
1252-m4trace:configure.ac:81: -1- m4_pattern_allow([^CC$])
1253-m4trace:configure.ac:81: -1- AC_SUBST([CC])
1254-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([CC])
1255-m4trace:configure.ac:81: -1- m4_pattern_allow([^CC$])
1256-m4trace:configure.ac:81: -1- AC_SUBST([ac_ct_CC])
1257-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([ac_ct_CC])
1258-m4trace:configure.ac:81: -1- m4_pattern_allow([^ac_ct_CC$])
1259-m4trace:configure.ac:81: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
1260-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([EXEEXT])
1261-m4trace:configure.ac:81: -1- m4_pattern_allow([^EXEEXT$])
1262-m4trace:configure.ac:81: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
1263-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([OBJEXT])
1264-m4trace:configure.ac:81: -1- m4_pattern_allow([^OBJEXT$])
1265-m4trace:configure.ac:81: -1- AC_REQUIRE_AUX_FILE([compile])
1266-m4trace:configure.ac:81: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
1267-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([DEPDIR])
1268-m4trace:configure.ac:81: -1- m4_pattern_allow([^DEPDIR$])
1269-m4trace:configure.ac:81: -1- AC_SUBST([am__include])
1270-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([am__include])
1271-m4trace:configure.ac:81: -1- m4_pattern_allow([^am__include$])
1272-m4trace:configure.ac:81: -1- AC_SUBST([am__quote])
1273-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([am__quote])
1274-m4trace:configure.ac:81: -1- m4_pattern_allow([^am__quote$])
1275-m4trace:configure.ac:81: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
1276-m4trace:configure.ac:81: -1- AC_SUBST([AMDEP_TRUE])
1277-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([AMDEP_TRUE])
1278-m4trace:configure.ac:81: -1- m4_pattern_allow([^AMDEP_TRUE$])
1279-m4trace:configure.ac:81: -1- AC_SUBST([AMDEP_FALSE])
1280-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([AMDEP_FALSE])
1281-m4trace:configure.ac:81: -1- m4_pattern_allow([^AMDEP_FALSE$])
1282-m4trace:configure.ac:81: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
1283-m4trace:configure.ac:81: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
1284-m4trace:configure.ac:81: -1- AC_SUBST([AMDEPBACKSLASH])
1285-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([AMDEPBACKSLASH])
1286-m4trace:configure.ac:81: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
1287-m4trace:configure.ac:81: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
1288-m4trace:configure.ac:81: -1- AC_SUBST([am__nodep])
1289-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([am__nodep])
1290-m4trace:configure.ac:81: -1- m4_pattern_allow([^am__nodep$])
1291-m4trace:configure.ac:81: -1- _AM_SUBST_NOTMAKE([am__nodep])
1292-m4trace:configure.ac:81: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
1293-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([CCDEPMODE])
1294-m4trace:configure.ac:81: -1- m4_pattern_allow([^CCDEPMODE$])
1295-m4trace:configure.ac:81: -1- AM_CONDITIONAL([am__fastdepCC], [
1296+configure.ac:71: the top level])
1297+m4trace:configure.ac:75: -1- AC_SUBST([pamdir])
1298+m4trace:configure.ac:75: -1- AC_SUBST_TRACE([pamdir])
1299+m4trace:configure.ac:75: -1- m4_pattern_allow([^pamdir$])
1300+m4trace:configure.ac:83: -1- AC_SUBST([ROOTSBINDIR])
1301+m4trace:configure.ac:83: -1- AC_SUBST_TRACE([ROOTSBINDIR])
1302+m4trace:configure.ac:83: -1- m4_pattern_allow([^ROOTSBINDIR$])
1303+m4trace:configure.ac:86: -1- AC_SUBST([CC])
1304+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([CC])
1305+m4trace:configure.ac:86: -1- m4_pattern_allow([^CC$])
1306+m4trace:configure.ac:86: -1- AC_SUBST([CFLAGS])
1307+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([CFLAGS])
1308+m4trace:configure.ac:86: -1- m4_pattern_allow([^CFLAGS$])
1309+m4trace:configure.ac:86: -1- AC_SUBST([LDFLAGS])
1310+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([LDFLAGS])
1311+m4trace:configure.ac:86: -1- m4_pattern_allow([^LDFLAGS$])
1312+m4trace:configure.ac:86: -1- AC_SUBST([LIBS])
1313+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([LIBS])
1314+m4trace:configure.ac:86: -1- m4_pattern_allow([^LIBS$])
1315+m4trace:configure.ac:86: -1- AC_SUBST([CPPFLAGS])
1316+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([CPPFLAGS])
1317+m4trace:configure.ac:86: -1- m4_pattern_allow([^CPPFLAGS$])
1318+m4trace:configure.ac:86: -1- AC_SUBST([CC])
1319+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([CC])
1320+m4trace:configure.ac:86: -1- m4_pattern_allow([^CC$])
1321+m4trace:configure.ac:86: -1- AC_SUBST([CC])
1322+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([CC])
1323+m4trace:configure.ac:86: -1- m4_pattern_allow([^CC$])
1324+m4trace:configure.ac:86: -1- AC_SUBST([CC])
1325+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([CC])
1326+m4trace:configure.ac:86: -1- m4_pattern_allow([^CC$])
1327+m4trace:configure.ac:86: -1- AC_SUBST([CC])
1328+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([CC])
1329+m4trace:configure.ac:86: -1- m4_pattern_allow([^CC$])
1330+m4trace:configure.ac:86: -1- AC_SUBST([ac_ct_CC])
1331+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([ac_ct_CC])
1332+m4trace:configure.ac:86: -1- m4_pattern_allow([^ac_ct_CC$])
1333+m4trace:configure.ac:86: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
1334+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([EXEEXT])
1335+m4trace:configure.ac:86: -1- m4_pattern_allow([^EXEEXT$])
1336+m4trace:configure.ac:86: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
1337+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([OBJEXT])
1338+m4trace:configure.ac:86: -1- m4_pattern_allow([^OBJEXT$])
1339+m4trace:configure.ac:86: -1- AC_REQUIRE_AUX_FILE([compile])
1340+m4trace:configure.ac:86: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
1341+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([DEPDIR])
1342+m4trace:configure.ac:86: -1- m4_pattern_allow([^DEPDIR$])
1343+m4trace:configure.ac:86: -1- AC_SUBST([am__include])
1344+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([am__include])
1345+m4trace:configure.ac:86: -1- m4_pattern_allow([^am__include$])
1346+m4trace:configure.ac:86: -1- AC_SUBST([am__quote])
1347+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([am__quote])
1348+m4trace:configure.ac:86: -1- m4_pattern_allow([^am__quote$])
1349+m4trace:configure.ac:86: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
1350+m4trace:configure.ac:86: -1- AC_SUBST([AMDEP_TRUE])
1351+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([AMDEP_TRUE])
1352+m4trace:configure.ac:86: -1- m4_pattern_allow([^AMDEP_TRUE$])
1353+m4trace:configure.ac:86: -1- AC_SUBST([AMDEP_FALSE])
1354+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([AMDEP_FALSE])
1355+m4trace:configure.ac:86: -1- m4_pattern_allow([^AMDEP_FALSE$])
1356+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
1357+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
1358+m4trace:configure.ac:86: -1- AC_SUBST([AMDEPBACKSLASH])
1359+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([AMDEPBACKSLASH])
1360+m4trace:configure.ac:86: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
1361+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
1362+m4trace:configure.ac:86: -1- AC_SUBST([am__nodep])
1363+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([am__nodep])
1364+m4trace:configure.ac:86: -1- m4_pattern_allow([^am__nodep$])
1365+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([am__nodep])
1366+m4trace:configure.ac:86: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
1367+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([CCDEPMODE])
1368+m4trace:configure.ac:86: -1- m4_pattern_allow([^CCDEPMODE$])
1369+m4trace:configure.ac:86: -1- AM_CONDITIONAL([am__fastdepCC], [
1370 test "x$enable_dependency_tracking" != xno \
1371 && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
1372-m4trace:configure.ac:81: -1- AC_SUBST([am__fastdepCC_TRUE])
1373-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
1374-m4trace:configure.ac:81: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
1375-m4trace:configure.ac:81: -1- AC_SUBST([am__fastdepCC_FALSE])
1376-m4trace:configure.ac:81: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
1377-m4trace:configure.ac:81: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
1378-m4trace:configure.ac:81: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
1379-m4trace:configure.ac:81: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
1380-m4trace:configure.ac:82: -1- AC_SUBST([CPP])
1381-m4trace:configure.ac:82: -1- AC_SUBST_TRACE([CPP])
1382-m4trace:configure.ac:82: -1- m4_pattern_allow([^CPP$])
1383-m4trace:configure.ac:82: -1- AC_SUBST([CPPFLAGS])
1384-m4trace:configure.ac:82: -1- AC_SUBST_TRACE([CPPFLAGS])
1385-m4trace:configure.ac:82: -1- m4_pattern_allow([^CPPFLAGS$])
1386-m4trace:configure.ac:82: -1- AC_SUBST([CPP])
1387-m4trace:configure.ac:82: -1- AC_SUBST_TRACE([CPP])
1388-m4trace:configure.ac:82: -1- m4_pattern_allow([^CPP$])
1389-m4trace:configure.ac:82: -1- AC_SUBST([GREP])
1390-m4trace:configure.ac:82: -1- AC_SUBST_TRACE([GREP])
1391-m4trace:configure.ac:82: -1- m4_pattern_allow([^GREP$])
1392-m4trace:configure.ac:82: -1- AC_SUBST([EGREP])
1393-m4trace:configure.ac:82: -1- AC_SUBST_TRACE([EGREP])
1394-m4trace:configure.ac:82: -1- m4_pattern_allow([^EGREP$])
1395-m4trace:configure.ac:82: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
1396-m4trace:configure.ac:82: -1- m4_pattern_allow([^STDC_HEADERS$])
1397-m4trace:configure.ac:82: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
1398+m4trace:configure.ac:86: -1- AC_SUBST([am__fastdepCC_TRUE])
1399+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
1400+m4trace:configure.ac:86: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
1401+m4trace:configure.ac:86: -1- AC_SUBST([am__fastdepCC_FALSE])
1402+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
1403+m4trace:configure.ac:86: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
1404+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
1405+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
1406+m4trace:configure.ac:87: -1- AC_SUBST([CPP])
1407+m4trace:configure.ac:87: -1- AC_SUBST_TRACE([CPP])
1408+m4trace:configure.ac:87: -1- m4_pattern_allow([^CPP$])
1409+m4trace:configure.ac:87: -1- AC_SUBST([CPPFLAGS])
1410+m4trace:configure.ac:87: -1- AC_SUBST_TRACE([CPPFLAGS])
1411+m4trace:configure.ac:87: -1- m4_pattern_allow([^CPPFLAGS$])
1412+m4trace:configure.ac:87: -1- AC_SUBST([CPP])
1413+m4trace:configure.ac:87: -1- AC_SUBST_TRACE([CPP])
1414+m4trace:configure.ac:87: -1- m4_pattern_allow([^CPP$])
1415+m4trace:configure.ac:87: -1- AC_SUBST([GREP])
1416+m4trace:configure.ac:87: -1- AC_SUBST_TRACE([GREP])
1417+m4trace:configure.ac:87: -1- m4_pattern_allow([^GREP$])
1418+m4trace:configure.ac:87: -1- AC_SUBST([EGREP])
1419+m4trace:configure.ac:87: -1- AC_SUBST_TRACE([EGREP])
1420+m4trace:configure.ac:87: -1- m4_pattern_allow([^EGREP$])
1421+m4trace:configure.ac:87: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
1422+m4trace:configure.ac:87: -1- m4_pattern_allow([^STDC_HEADERS$])
1423+m4trace:configure.ac:87: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
1424 @%:@undef STDC_HEADERS])
1425-m4trace:configure.ac:82: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
1426+m4trace:configure.ac:87: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
1427 @%:@undef HAVE_SYS_TYPES_H])
1428-m4trace:configure.ac:82: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
1429+m4trace:configure.ac:87: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
1430 @%:@undef HAVE_SYS_STAT_H])
1431-m4trace:configure.ac:82: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
1432+m4trace:configure.ac:87: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
1433 @%:@undef HAVE_STDLIB_H])
1434-m4trace:configure.ac:82: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
1435+m4trace:configure.ac:87: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
1436 @%:@undef HAVE_STRING_H])
1437-m4trace:configure.ac:82: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
1438+m4trace:configure.ac:87: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
1439 @%:@undef HAVE_MEMORY_H])
1440-m4trace:configure.ac:82: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
1441+m4trace:configure.ac:87: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
1442 @%:@undef HAVE_STRINGS_H])
1443-m4trace:configure.ac:82: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
1444+m4trace:configure.ac:87: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
1445 @%:@undef HAVE_INTTYPES_H])
1446-m4trace:configure.ac:82: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
1447+m4trace:configure.ac:87: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
1448 @%:@undef HAVE_STDINT_H])
1449-m4trace:configure.ac:82: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
1450+m4trace:configure.ac:87: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
1451 @%:@undef HAVE_UNISTD_H])
1452-m4trace:configure.ac:82: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_SOURCE])
1453-m4trace:configure.ac:82: -1- m4_pattern_allow([^_POSIX_SOURCE$])
1454-m4trace:configure.ac:82: -1- AH_OUTPUT([_POSIX_SOURCE], [/* Define to 1 if you need to in order for `stat\' and other things to work. */
1455+m4trace:configure.ac:87: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_SOURCE])
1456+m4trace:configure.ac:87: -1- m4_pattern_allow([^_POSIX_SOURCE$])
1457+m4trace:configure.ac:87: -1- AH_OUTPUT([_POSIX_SOURCE], [/* Define to 1 if you need to in order for `stat\' and other things to work. */
1458 @%:@undef _POSIX_SOURCE])
1459-m4trace:configure.ac:82: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_1_SOURCE])
1460-m4trace:configure.ac:82: -1- m4_pattern_allow([^_POSIX_1_SOURCE$])
1461-m4trace:configure.ac:82: -1- AH_OUTPUT([_POSIX_1_SOURCE], [/* Define to 2 if the system does not provide POSIX.1 features except with
1462+m4trace:configure.ac:87: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_1_SOURCE])
1463+m4trace:configure.ac:87: -1- m4_pattern_allow([^_POSIX_1_SOURCE$])
1464+m4trace:configure.ac:87: -1- AH_OUTPUT([_POSIX_1_SOURCE], [/* Define to 2 if the system does not provide POSIX.1 features except with
1465 this defined. */
1466 @%:@undef _POSIX_1_SOURCE])
1467-m4trace:configure.ac:82: -1- AC_DEFINE_TRACE_LITERAL([_MINIX])
1468-m4trace:configure.ac:82: -1- m4_pattern_allow([^_MINIX$])
1469-m4trace:configure.ac:82: -1- AH_OUTPUT([_MINIX], [/* Define to 1 if on MINIX. */
1470+m4trace:configure.ac:87: -1- AC_DEFINE_TRACE_LITERAL([_MINIX])
1471+m4trace:configure.ac:87: -1- m4_pattern_allow([^_MINIX$])
1472+m4trace:configure.ac:87: -1- AH_OUTPUT([_MINIX], [/* Define to 1 if on MINIX. */
1473 @%:@undef _MINIX])
1474-m4trace:configure.ac:82: -1- AH_OUTPUT([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */
1475+m4trace:configure.ac:87: -1- AH_OUTPUT([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */
1476 #ifndef _ALL_SOURCE
1477 # undef _ALL_SOURCE
1478 #endif
1479@@ -419,439 +419,448 @@ m4trace:configure.ac:82: -1- AH_OUTPUT([USE_SYSTEM_EXTENSIONS], [/* Enable exten
1480 # undef __EXTENSIONS__
1481 #endif
1482 ])
1483-m4trace:configure.ac:82: -1- AC_DEFINE_TRACE_LITERAL([__EXTENSIONS__])
1484-m4trace:configure.ac:82: -1- m4_pattern_allow([^__EXTENSIONS__$])
1485-m4trace:configure.ac:82: -1- AC_DEFINE_TRACE_LITERAL([_ALL_SOURCE])
1486-m4trace:configure.ac:82: -1- m4_pattern_allow([^_ALL_SOURCE$])
1487-m4trace:configure.ac:82: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE])
1488-m4trace:configure.ac:82: -1- m4_pattern_allow([^_GNU_SOURCE$])
1489-m4trace:configure.ac:82: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_PTHREAD_SEMANTICS])
1490-m4trace:configure.ac:82: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$])
1491-m4trace:configure.ac:82: -1- AC_DEFINE_TRACE_LITERAL([_TANDEM_SOURCE])
1492-m4trace:configure.ac:82: -1- m4_pattern_allow([^_TANDEM_SOURCE$])
1493-m4trace:configure.ac:83: -1- AM_PROG_CC_C_O
1494-m4trace:configure.ac:87: -1- AC_SUBST([SED])
1495-m4trace:configure.ac:87: -1- AC_SUBST_TRACE([SED])
1496-m4trace:configure.ac:87: -1- m4_pattern_allow([^SED$])
1497-m4trace:configure.ac:92: -1- AC_DEFINE_TRACE_LITERAL([HAVE__BOOL])
1498-m4trace:configure.ac:92: -1- m4_pattern_allow([^HAVE__BOOL$])
1499-m4trace:configure.ac:92: -1- AH_OUTPUT([HAVE__BOOL], [/* Define to 1 if the system has the type `_Bool\'. */
1500+m4trace:configure.ac:87: -1- AC_DEFINE_TRACE_LITERAL([__EXTENSIONS__])
1501+m4trace:configure.ac:87: -1- m4_pattern_allow([^__EXTENSIONS__$])
1502+m4trace:configure.ac:87: -1- AC_DEFINE_TRACE_LITERAL([_ALL_SOURCE])
1503+m4trace:configure.ac:87: -1- m4_pattern_allow([^_ALL_SOURCE$])
1504+m4trace:configure.ac:87: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE])
1505+m4trace:configure.ac:87: -1- m4_pattern_allow([^_GNU_SOURCE$])
1506+m4trace:configure.ac:87: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_PTHREAD_SEMANTICS])
1507+m4trace:configure.ac:87: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$])
1508+m4trace:configure.ac:87: -1- AC_DEFINE_TRACE_LITERAL([_TANDEM_SOURCE])
1509+m4trace:configure.ac:87: -1- m4_pattern_allow([^_TANDEM_SOURCE$])
1510+m4trace:configure.ac:88: -1- AM_PROG_CC_C_O
1511+m4trace:configure.ac:92: -1- AC_SUBST([SED])
1512+m4trace:configure.ac:92: -1- AC_SUBST_TRACE([SED])
1513+m4trace:configure.ac:92: -1- m4_pattern_allow([^SED$])
1514+m4trace:configure.ac:97: -1- AC_DEFINE_TRACE_LITERAL([HAVE__BOOL])
1515+m4trace:configure.ac:97: -1- m4_pattern_allow([^HAVE__BOOL$])
1516+m4trace:configure.ac:97: -1- AH_OUTPUT([HAVE__BOOL], [/* Define to 1 if the system has the type `_Bool\'. */
1517 @%:@undef HAVE__BOOL])
1518-m4trace:configure.ac:92: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDBOOL_H])
1519-m4trace:configure.ac:92: -1- m4_pattern_allow([^HAVE_STDBOOL_H$])
1520-m4trace:configure.ac:92: -1- AH_OUTPUT([HAVE_STDBOOL_H], [/* Define to 1 if stdbool.h conforms to C99. */
1521+m4trace:configure.ac:97: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDBOOL_H])
1522+m4trace:configure.ac:97: -1- m4_pattern_allow([^HAVE_STDBOOL_H$])
1523+m4trace:configure.ac:97: -1- AH_OUTPUT([HAVE_STDBOOL_H], [/* Define to 1 if stdbool.h conforms to C99. */
1524 @%:@undef HAVE_STDBOOL_H])
1525-m4trace:configure.ac:93: -1- AC_DEFINE_TRACE_LITERAL([uid_t])
1526-m4trace:configure.ac:93: -1- m4_pattern_allow([^uid_t$])
1527-m4trace:configure.ac:93: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */
1528+m4trace:configure.ac:98: -1- AC_DEFINE_TRACE_LITERAL([uid_t])
1529+m4trace:configure.ac:98: -1- m4_pattern_allow([^uid_t$])
1530+m4trace:configure.ac:98: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */
1531 @%:@undef uid_t])
1532-m4trace:configure.ac:93: -1- AC_DEFINE_TRACE_LITERAL([gid_t])
1533-m4trace:configure.ac:93: -1- m4_pattern_allow([^gid_t$])
1534-m4trace:configure.ac:93: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */
1535+m4trace:configure.ac:98: -1- AC_DEFINE_TRACE_LITERAL([gid_t])
1536+m4trace:configure.ac:98: -1- m4_pattern_allow([^gid_t$])
1537+m4trace:configure.ac:98: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */
1538 @%:@undef gid_t])
1539-m4trace:configure.ac:94: -1- AC_DEFINE_TRACE_LITERAL([off_t])
1540-m4trace:configure.ac:94: -1- m4_pattern_allow([^off_t$])
1541-m4trace:configure.ac:94: -1- AH_OUTPUT([off_t], [/* Define to `long int\' if <sys/types.h> does not define. */
1542+m4trace:configure.ac:99: -1- AC_DEFINE_TRACE_LITERAL([off_t])
1543+m4trace:configure.ac:99: -1- m4_pattern_allow([^off_t$])
1544+m4trace:configure.ac:99: -1- AH_OUTPUT([off_t], [/* Define to `long int\' if <sys/types.h> does not define. */
1545 @%:@undef off_t])
1546-m4trace:configure.ac:95: -1- AC_DEFINE_TRACE_LITERAL([pid_t])
1547-m4trace:configure.ac:95: -1- m4_pattern_allow([^pid_t$])
1548-m4trace:configure.ac:95: -1- AH_OUTPUT([pid_t], [/* Define to `int\' if <sys/types.h> does not define. */
1549+m4trace:configure.ac:100: -1- AC_DEFINE_TRACE_LITERAL([pid_t])
1550+m4trace:configure.ac:100: -1- m4_pattern_allow([^pid_t$])
1551+m4trace:configure.ac:100: -1- AH_OUTPUT([pid_t], [/* Define to `int\' if <sys/types.h> does not define. */
1552 @%:@undef pid_t])
1553-m4trace:configure.ac:96: -1- AC_DEFINE_TRACE_LITERAL([size_t])
1554-m4trace:configure.ac:96: -1- m4_pattern_allow([^size_t$])
1555-m4trace:configure.ac:96: -1- AH_OUTPUT([size_t], [/* Define to `unsigned int\' if <sys/types.h> does not define. */
1556+m4trace:configure.ac:101: -1- AC_DEFINE_TRACE_LITERAL([size_t])
1557+m4trace:configure.ac:101: -1- m4_pattern_allow([^size_t$])
1558+m4trace:configure.ac:101: -1- AH_OUTPUT([size_t], [/* Define to `unsigned int\' if <sys/types.h> does not define. */
1559 @%:@undef size_t])
1560-m4trace:configure.ac:97: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PTRDIFF_T])
1561-m4trace:configure.ac:97: -1- m4_pattern_allow([^HAVE_PTRDIFF_T$])
1562-m4trace:configure.ac:97: -1- AH_OUTPUT([HAVE_PTRDIFF_T], [/* Define to 1 if the system has the type `ptrdiff_t\'. */
1563+m4trace:configure.ac:102: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PTRDIFF_T])
1564+m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_PTRDIFF_T$])
1565+m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_PTRDIFF_T], [/* Define to 1 if the system has the type `ptrdiff_t\'. */
1566 @%:@undef HAVE_PTRDIFF_T])
1567-m4trace:configure.ac:97: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SSIZE_T])
1568-m4trace:configure.ac:97: -1- m4_pattern_allow([^HAVE_SSIZE_T$])
1569-m4trace:configure.ac:97: -1- AH_OUTPUT([HAVE_SSIZE_T], [/* Define to 1 if the system has the type `ssize_t\'. */
1570+m4trace:configure.ac:102: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SSIZE_T])
1571+m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_SSIZE_T$])
1572+m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_SSIZE_T], [/* Define to 1 if the system has the type `ssize_t\'. */
1573 @%:@undef HAVE_SSIZE_T])
1574-m4trace:configure.ac:97: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UINT32_T])
1575-m4trace:configure.ac:97: -1- m4_pattern_allow([^HAVE_UINT32_T$])
1576-m4trace:configure.ac:97: -1- AH_OUTPUT([HAVE_UINT32_T], [/* Define to 1 if the system has the type `uint32_t\'. */
1577+m4trace:configure.ac:102: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UINT32_T])
1578+m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_UINT32_T$])
1579+m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_UINT32_T], [/* Define to 1 if the system has the type `uint32_t\'. */
1580 @%:@undef HAVE_UINT32_T])
1581-m4trace:configure.ac:97: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UINT8_T])
1582-m4trace:configure.ac:97: -1- m4_pattern_allow([^HAVE_UINT8_T$])
1583-m4trace:configure.ac:97: -1- AH_OUTPUT([HAVE_UINT8_T], [/* Define to 1 if the system has the type `uint8_t\'. */
1584+m4trace:configure.ac:102: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UINT8_T])
1585+m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_UINT8_T$])
1586+m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_UINT8_T], [/* Define to 1 if the system has the type `uint8_t\'. */
1587 @%:@undef HAVE_UINT8_T])
1588-m4trace:configure.ac:100: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETMNTENT])
1589-m4trace:configure.ac:100: -1- m4_pattern_allow([^HAVE_GETMNTENT$])
1590-m4trace:configure.ac:100: -1- AH_OUTPUT([HAVE_GETMNTENT], [/* Define to 1 if you have the `getmntent\' function. */
1591+m4trace:configure.ac:105: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETMNTENT])
1592+m4trace:configure.ac:105: -1- m4_pattern_allow([^HAVE_GETMNTENT$])
1593+m4trace:configure.ac:105: -1- AH_OUTPUT([HAVE_GETMNTENT], [/* Define to 1 if you have the `getmntent\' function. */
1594 @%:@undef HAVE_GETMNTENT])
1595-m4trace:configure.ac:101: -1- AC_DEFINE_TRACE_LITERAL([LSTAT_FOLLOWS_SLASHED_SYMLINK])
1596-m4trace:configure.ac:101: -1- m4_pattern_allow([^LSTAT_FOLLOWS_SLASHED_SYMLINK$])
1597-m4trace:configure.ac:101: -1- AH_OUTPUT([LSTAT_FOLLOWS_SLASHED_SYMLINK], [/* Define to 1 if `lstat\' dereferences a symlink specified with a trailing
1598+m4trace:configure.ac:106: -1- AC_DEFINE_TRACE_LITERAL([LSTAT_FOLLOWS_SLASHED_SYMLINK])
1599+m4trace:configure.ac:106: -1- m4_pattern_allow([^LSTAT_FOLLOWS_SLASHED_SYMLINK$])
1600+m4trace:configure.ac:106: -1- AH_OUTPUT([LSTAT_FOLLOWS_SLASHED_SYMLINK], [/* Define to 1 if `lstat\' dereferences a symlink specified with a trailing
1601 slash. */
1602 @%:@undef LSTAT_FOLLOWS_SLASHED_SYMLINK])
1603-m4trace:configure.ac:101: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS lstat.$ac_objext"])
1604-m4trace:configure.ac:101: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
1605-m4trace:configure.ac:101: -1- m4_pattern_allow([^LIB@&t@OBJS$])
1606-m4trace:configure.ac:101: -1- AC_LIBSOURCE([lstat.c])
1607-m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
1608+m4trace:configure.ac:106: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS lstat.$ac_objext"])
1609+m4trace:configure.ac:106: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
1610+m4trace:configure.ac:106: -1- m4_pattern_allow([^LIB@&t@OBJS$])
1611+m4trace:configure.ac:106: -1- AC_LIBSOURCE([lstat.c])
1612+m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
1613 @%:@undef HAVE_STDLIB_H])
1614-m4trace:configure.ac:102: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDLIB_H])
1615-m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
1616-m4trace:configure.ac:102: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC])
1617-m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_MALLOC$])
1618-m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_MALLOC], [/* Define to 1 if your system has a GNU libc compatible `malloc\' function, and
1619+m4trace:configure.ac:107: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDLIB_H])
1620+m4trace:configure.ac:107: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
1621+m4trace:configure.ac:107: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC])
1622+m4trace:configure.ac:107: -1- m4_pattern_allow([^HAVE_MALLOC$])
1623+m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_MALLOC], [/* Define to 1 if your system has a GNU libc compatible `malloc\' function, and
1624 to 0 otherwise. */
1625 @%:@undef HAVE_MALLOC])
1626-m4trace:configure.ac:102: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC])
1627-m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_MALLOC$])
1628-m4trace:configure.ac:102: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS malloc.$ac_objext"])
1629-m4trace:configure.ac:102: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
1630-m4trace:configure.ac:102: -1- m4_pattern_allow([^LIB@&t@OBJS$])
1631-m4trace:configure.ac:102: -1- AC_LIBSOURCE([malloc.c])
1632-m4trace:configure.ac:102: -1- AC_DEFINE_TRACE_LITERAL([malloc])
1633-m4trace:configure.ac:102: -1- m4_pattern_allow([^malloc$])
1634-m4trace:configure.ac:102: -1- AH_OUTPUT([malloc], [/* Define to rpl_malloc if the replacement function should be used. */
1635+m4trace:configure.ac:107: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC])
1636+m4trace:configure.ac:107: -1- m4_pattern_allow([^HAVE_MALLOC$])
1637+m4trace:configure.ac:107: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS malloc.$ac_objext"])
1638+m4trace:configure.ac:107: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
1639+m4trace:configure.ac:107: -1- m4_pattern_allow([^LIB@&t@OBJS$])
1640+m4trace:configure.ac:107: -1- AC_LIBSOURCE([malloc.c])
1641+m4trace:configure.ac:107: -1- AC_DEFINE_TRACE_LITERAL([malloc])
1642+m4trace:configure.ac:107: -1- m4_pattern_allow([^malloc$])
1643+m4trace:configure.ac:107: -1- AH_OUTPUT([malloc], [/* Define to rpl_malloc if the replacement function should be used. */
1644 @%:@undef malloc])
1645-m4trace:configure.ac:103: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
1646+m4trace:configure.ac:108: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
1647 @%:@undef HAVE_STDLIB_H])
1648-m4trace:configure.ac:103: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDLIB_H])
1649-m4trace:configure.ac:103: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
1650-m4trace:configure.ac:103: -1- AC_DEFINE_TRACE_LITERAL([HAVE_REALLOC])
1651-m4trace:configure.ac:103: -1- m4_pattern_allow([^HAVE_REALLOC$])
1652-m4trace:configure.ac:103: -1- AH_OUTPUT([HAVE_REALLOC], [/* Define to 1 if your system has a GNU libc compatible `realloc\' function,
1653+m4trace:configure.ac:108: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDLIB_H])
1654+m4trace:configure.ac:108: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
1655+m4trace:configure.ac:108: -1- AC_DEFINE_TRACE_LITERAL([HAVE_REALLOC])
1656+m4trace:configure.ac:108: -1- m4_pattern_allow([^HAVE_REALLOC$])
1657+m4trace:configure.ac:108: -1- AH_OUTPUT([HAVE_REALLOC], [/* Define to 1 if your system has a GNU libc compatible `realloc\' function,
1658 and to 0 otherwise. */
1659 @%:@undef HAVE_REALLOC])
1660-m4trace:configure.ac:103: -1- AC_DEFINE_TRACE_LITERAL([HAVE_REALLOC])
1661-m4trace:configure.ac:103: -1- m4_pattern_allow([^HAVE_REALLOC$])
1662-m4trace:configure.ac:103: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS realloc.$ac_objext"])
1663-m4trace:configure.ac:103: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
1664-m4trace:configure.ac:103: -1- m4_pattern_allow([^LIB@&t@OBJS$])
1665-m4trace:configure.ac:103: -1- AC_LIBSOURCE([realloc.c])
1666-m4trace:configure.ac:103: -1- AC_DEFINE_TRACE_LITERAL([realloc])
1667-m4trace:configure.ac:103: -1- m4_pattern_allow([^realloc$])
1668-m4trace:configure.ac:103: -1- AH_OUTPUT([realloc], [/* Define to rpl_realloc if the replacement function should be used. */
1669+m4trace:configure.ac:108: -1- AC_DEFINE_TRACE_LITERAL([HAVE_REALLOC])
1670+m4trace:configure.ac:108: -1- m4_pattern_allow([^HAVE_REALLOC$])
1671+m4trace:configure.ac:108: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS realloc.$ac_objext"])
1672+m4trace:configure.ac:108: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
1673+m4trace:configure.ac:108: -1- m4_pattern_allow([^LIB@&t@OBJS$])
1674+m4trace:configure.ac:108: -1- AC_LIBSOURCE([realloc.c])
1675+m4trace:configure.ac:108: -1- AC_DEFINE_TRACE_LITERAL([realloc])
1676+m4trace:configure.ac:108: -1- m4_pattern_allow([^realloc$])
1677+m4trace:configure.ac:108: -1- AH_OUTPUT([realloc], [/* Define to rpl_realloc if the replacement function should be used. */
1678 @%:@undef realloc])
1679-m4trace:configure.ac:104: -1- AC_CANONICAL_HOST
1680-m4trace:configure.ac:104: -1- AC_CANONICAL_BUILD
1681-m4trace:configure.ac:104: -1- AC_REQUIRE_AUX_FILE([config.sub])
1682-m4trace:configure.ac:104: -1- AC_REQUIRE_AUX_FILE([config.guess])
1683-m4trace:configure.ac:104: -1- AC_SUBST([build], [$ac_cv_build])
1684-m4trace:configure.ac:104: -1- AC_SUBST_TRACE([build])
1685-m4trace:configure.ac:104: -1- m4_pattern_allow([^build$])
1686-m4trace:configure.ac:104: -1- AC_SUBST([build_cpu], [$[1]])
1687-m4trace:configure.ac:104: -1- AC_SUBST_TRACE([build_cpu])
1688-m4trace:configure.ac:104: -1- m4_pattern_allow([^build_cpu$])
1689-m4trace:configure.ac:104: -1- AC_SUBST([build_vendor], [$[2]])
1690-m4trace:configure.ac:104: -1- AC_SUBST_TRACE([build_vendor])
1691-m4trace:configure.ac:104: -1- m4_pattern_allow([^build_vendor$])
1692-m4trace:configure.ac:104: -1- AC_SUBST([build_os])
1693-m4trace:configure.ac:104: -1- AC_SUBST_TRACE([build_os])
1694-m4trace:configure.ac:104: -1- m4_pattern_allow([^build_os$])
1695-m4trace:configure.ac:104: -1- AC_SUBST([host], [$ac_cv_host])
1696-m4trace:configure.ac:104: -1- AC_SUBST_TRACE([host])
1697-m4trace:configure.ac:104: -1- m4_pattern_allow([^host$])
1698-m4trace:configure.ac:104: -1- AC_SUBST([host_cpu], [$[1]])
1699-m4trace:configure.ac:104: -1- AC_SUBST_TRACE([host_cpu])
1700-m4trace:configure.ac:104: -1- m4_pattern_allow([^host_cpu$])
1701-m4trace:configure.ac:104: -1- AC_SUBST([host_vendor], [$[2]])
1702-m4trace:configure.ac:104: -1- AC_SUBST_TRACE([host_vendor])
1703-m4trace:configure.ac:104: -1- m4_pattern_allow([^host_vendor$])
1704-m4trace:configure.ac:104: -1- AC_SUBST([host_os])
1705-m4trace:configure.ac:104: -1- AC_SUBST_TRACE([host_os])
1706-m4trace:configure.ac:104: -1- m4_pattern_allow([^host_os$])
1707-m4trace:configure.ac:104: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strnlen.$ac_objext"])
1708-m4trace:configure.ac:104: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
1709-m4trace:configure.ac:104: -1- m4_pattern_allow([^LIB@&t@OBJS$])
1710-m4trace:configure.ac:104: -1- AC_LIBSOURCE([strnlen.c])
1711-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_ALARM], [/* Define to 1 if you have the `alarm\' function. */
1712+m4trace:configure.ac:109: -1- AC_CANONICAL_HOST
1713+m4trace:configure.ac:109: -1- AC_CANONICAL_BUILD
1714+m4trace:configure.ac:109: -1- AC_REQUIRE_AUX_FILE([config.sub])
1715+m4trace:configure.ac:109: -1- AC_REQUIRE_AUX_FILE([config.guess])
1716+m4trace:configure.ac:109: -1- AC_SUBST([build], [$ac_cv_build])
1717+m4trace:configure.ac:109: -1- AC_SUBST_TRACE([build])
1718+m4trace:configure.ac:109: -1- m4_pattern_allow([^build$])
1719+m4trace:configure.ac:109: -1- AC_SUBST([build_cpu], [$[1]])
1720+m4trace:configure.ac:109: -1- AC_SUBST_TRACE([build_cpu])
1721+m4trace:configure.ac:109: -1- m4_pattern_allow([^build_cpu$])
1722+m4trace:configure.ac:109: -1- AC_SUBST([build_vendor], [$[2]])
1723+m4trace:configure.ac:109: -1- AC_SUBST_TRACE([build_vendor])
1724+m4trace:configure.ac:109: -1- m4_pattern_allow([^build_vendor$])
1725+m4trace:configure.ac:109: -1- AC_SUBST([build_os])
1726+m4trace:configure.ac:109: -1- AC_SUBST_TRACE([build_os])
1727+m4trace:configure.ac:109: -1- m4_pattern_allow([^build_os$])
1728+m4trace:configure.ac:109: -1- AC_SUBST([host], [$ac_cv_host])
1729+m4trace:configure.ac:109: -1- AC_SUBST_TRACE([host])
1730+m4trace:configure.ac:109: -1- m4_pattern_allow([^host$])
1731+m4trace:configure.ac:109: -1- AC_SUBST([host_cpu], [$[1]])
1732+m4trace:configure.ac:109: -1- AC_SUBST_TRACE([host_cpu])
1733+m4trace:configure.ac:109: -1- m4_pattern_allow([^host_cpu$])
1734+m4trace:configure.ac:109: -1- AC_SUBST([host_vendor], [$[2]])
1735+m4trace:configure.ac:109: -1- AC_SUBST_TRACE([host_vendor])
1736+m4trace:configure.ac:109: -1- m4_pattern_allow([^host_vendor$])
1737+m4trace:configure.ac:109: -1- AC_SUBST([host_os])
1738+m4trace:configure.ac:109: -1- AC_SUBST_TRACE([host_os])
1739+m4trace:configure.ac:109: -1- m4_pattern_allow([^host_os$])
1740+m4trace:configure.ac:109: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS strnlen.$ac_objext"])
1741+m4trace:configure.ac:109: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
1742+m4trace:configure.ac:109: -1- m4_pattern_allow([^LIB@&t@OBJS$])
1743+m4trace:configure.ac:109: -1- AC_LIBSOURCE([strnlen.c])
1744+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_ALARM], [/* Define to 1 if you have the `alarm\' function. */
1745 @%:@undef HAVE_ALARM])
1746-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_ATEXIT], [/* Define to 1 if you have the `atexit\' function. */
1747+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_ATEXIT], [/* Define to 1 if you have the `atexit\' function. */
1748 @%:@undef HAVE_ATEXIT])
1749-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_ENDPWENT], [/* Define to 1 if you have the `endpwent\' function. */
1750+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_ENDPWENT], [/* Define to 1 if you have the `endpwent\' function. */
1751 @%:@undef HAVE_ENDPWENT])
1752-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_GETMNTENT], [/* Define to 1 if you have the `getmntent\' function. */
1753+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_GETMNTENT], [/* Define to 1 if you have the `getmntent\' function. */
1754 @%:@undef HAVE_GETMNTENT])
1755-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_GETPASS], [/* Define to 1 if you have the `getpass\' function. */
1756+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_GETPASS], [/* Define to 1 if you have the `getpass\' function. */
1757 @%:@undef HAVE_GETPASS])
1758-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */
1759+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */
1760 @%:@undef HAVE_GETTIMEOFDAY])
1761-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_INET_NTOP], [/* Define to 1 if you have the `inet_ntop\' function. */
1762+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_INET_NTOP], [/* Define to 1 if you have the `inet_ntop\' function. */
1763 @%:@undef HAVE_INET_NTOP])
1764-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you have the `memset\' function. */
1765+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you have the `memset\' function. */
1766 @%:@undef HAVE_MEMSET])
1767-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_REALPATH], [/* Define to 1 if you have the `realpath\' function. */
1768+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_REALPATH], [/* Define to 1 if you have the `realpath\' function. */
1769 @%:@undef HAVE_REALPATH])
1770-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */
1771+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */
1772 @%:@undef HAVE_SETENV])
1773-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_STRCHR], [/* Define to 1 if you have the `strchr\' function. */
1774+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_STRCHR], [/* Define to 1 if you have the `strchr\' function. */
1775 @%:@undef HAVE_STRCHR])
1776-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_STRCMP], [/* Define to 1 if you have the `strcmp\' function. */
1777+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_STRCMP], [/* Define to 1 if you have the `strcmp\' function. */
1778 @%:@undef HAVE_STRCMP])
1779-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */
1780+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */
1781 @%:@undef HAVE_STRDUP])
1782-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_STRERROR], [/* Define to 1 if you have the `strerror\' function. */
1783+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_STRERROR], [/* Define to 1 if you have the `strerror\' function. */
1784 @%:@undef HAVE_STRERROR])
1785-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_STRNCASECMP], [/* Define to 1 if you have the `strncasecmp\' function. */
1786+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_STRNCASECMP], [/* Define to 1 if you have the `strncasecmp\' function. */
1787 @%:@undef HAVE_STRNCASECMP])
1788-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_STRNDUP], [/* Define to 1 if you have the `strndup\' function. */
1789+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_STRNDUP], [/* Define to 1 if you have the `strndup\' function. */
1790 @%:@undef HAVE_STRNDUP])
1791-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_STRPBRK], [/* Define to 1 if you have the `strpbrk\' function. */
1792+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_STRPBRK], [/* Define to 1 if you have the `strpbrk\' function. */
1793 @%:@undef HAVE_STRPBRK])
1794-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_STRRCHR], [/* Define to 1 if you have the `strrchr\' function. */
1795+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_STRRCHR], [/* Define to 1 if you have the `strrchr\' function. */
1796 @%:@undef HAVE_STRRCHR])
1797-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_STRSTR], [/* Define to 1 if you have the `strstr\' function. */
1798+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_STRSTR], [/* Define to 1 if you have the `strstr\' function. */
1799 @%:@undef HAVE_STRSTR])
1800-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_STRTOL], [/* Define to 1 if you have the `strtol\' function. */
1801+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_STRTOL], [/* Define to 1 if you have the `strtol\' function. */
1802 @%:@undef HAVE_STRTOL])
1803-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */
1804+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */
1805 @%:@undef HAVE_STRTOUL])
1806-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_TOLOWER], [/* Define to 1 if you have the `tolower\' function. */
1807+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_TOLOWER], [/* Define to 1 if you have the `tolower\' function. */
1808 @%:@undef HAVE_TOLOWER])
1809-m4trace:configure.ac:107: -1- AH_OUTPUT([HAVE_UNAME], [/* Define to 1 if you have the `uname\' function. */
1810+m4trace:configure.ac:112: -1- AH_OUTPUT([HAVE_UNAME], [/* Define to 1 if you have the `uname\' function. */
1811 @%:@undef HAVE_UNAME])
1812-m4trace:configure.ac:109: -1- AH_OUTPUT([HAVE_CLOCK_GETTIME], [/* Define to 1 if you have the `clock_gettime\' function. */
1813+m4trace:configure.ac:114: -1- AH_OUTPUT([HAVE_CLOCK_GETTIME], [/* Define to 1 if you have the `clock_gettime\' function. */
1814 @%:@undef HAVE_CLOCK_GETTIME])
1815-m4trace:configure.ac:109: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CLOCK_GETTIME])
1816-m4trace:configure.ac:109: -1- m4_pattern_allow([^HAVE_CLOCK_GETTIME$])
1817-m4trace:configure.ac:109: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CLOCK_GETTIME])
1818-m4trace:configure.ac:109: -1- m4_pattern_allow([^HAVE_CLOCK_GETTIME$])
1819-m4trace:configure.ac:109: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CLOCK_GETTIME])
1820-m4trace:configure.ac:109: -1- m4_pattern_allow([^HAVE_CLOCK_GETTIME$])
1821-m4trace:configure.ac:109: -1- AH_OUTPUT([HAVE_CLOCK_GETTIME], [/* Whether the clock_gettime func is there */
1822+m4trace:configure.ac:114: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CLOCK_GETTIME])
1823+m4trace:configure.ac:114: -1- m4_pattern_allow([^HAVE_CLOCK_GETTIME$])
1824+m4trace:configure.ac:114: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CLOCK_GETTIME])
1825+m4trace:configure.ac:114: -1- m4_pattern_allow([^HAVE_CLOCK_GETTIME$])
1826+m4trace:configure.ac:114: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CLOCK_GETTIME])
1827+m4trace:configure.ac:114: -1- m4_pattern_allow([^HAVE_CLOCK_GETTIME$])
1828+m4trace:configure.ac:114: -1- AH_OUTPUT([HAVE_CLOCK_GETTIME], [/* Whether the clock_gettime func is there */
1829 @%:@undef HAVE_CLOCK_GETTIME])
1830-m4trace:configure.ac:117: -1- AC_SUBST([RT_LDADD])
1831-m4trace:configure.ac:117: -1- AC_SUBST_TRACE([RT_LDADD])
1832-m4trace:configure.ac:117: -1- m4_pattern_allow([^RT_LDADD$])
1833-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_ARPA_INET_H], [/* Define to 1 if you have the <arpa/inet.h> header file. */
1834+m4trace:configure.ac:122: -1- AC_SUBST([RT_LDADD])
1835+m4trace:configure.ac:122: -1- AC_SUBST_TRACE([RT_LDADD])
1836+m4trace:configure.ac:122: -1- m4_pattern_allow([^RT_LDADD$])
1837+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_ARPA_INET_H], [/* Define to 1 if you have the <arpa/inet.h> header file. */
1838 @%:@undef HAVE_ARPA_INET_H])
1839-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_CTYPE_H], [/* Define to 1 if you have the <ctype.h> header file. */
1840+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_CTYPE_H], [/* Define to 1 if you have the <ctype.h> header file. */
1841 @%:@undef HAVE_CTYPE_H])
1842-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the <fcntl.h> header file. */
1843+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the <fcntl.h> header file. */
1844 @%:@undef HAVE_FCNTL_H])
1845-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
1846+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
1847 @%:@undef HAVE_INTTYPES_H])
1848-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the <limits.h> header file. */
1849+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the <limits.h> header file. */
1850 @%:@undef HAVE_LIMITS_H])
1851-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_MNTENT_H], [/* Define to 1 if you have the <mntent.h> header file. */
1852+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_MNTENT_H], [/* Define to 1 if you have the <mntent.h> header file. */
1853 @%:@undef HAVE_MNTENT_H])
1854-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_NETDB_H], [/* Define to 1 if you have the <netdb.h> header file. */
1855+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_NETDB_H], [/* Define to 1 if you have the <netdb.h> header file. */
1856 @%:@undef HAVE_NETDB_H])
1857-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the <stddef.h> header file. */
1858+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the <stddef.h> header file. */
1859 @%:@undef HAVE_STDDEF_H])
1860-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
1861+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
1862 @%:@undef HAVE_STDINT_H])
1863-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_STDBOOL_H], [/* Define to 1 if you have the <stdbool.h> header file. */
1864+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_STDBOOL_H], [/* Define to 1 if you have the <stdbool.h> header file. */
1865 @%:@undef HAVE_STDBOOL_H])
1866-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
1867+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
1868 @%:@undef HAVE_STDLIB_H])
1869-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_STDIO_H], [/* Define to 1 if you have the <stdio.h> header file. */
1870+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_STDIO_H], [/* Define to 1 if you have the <stdio.h> header file. */
1871 @%:@undef HAVE_STDIO_H])
1872-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_ERRNO_H], [/* Define to 1 if you have the <errno.h> header file. */
1873+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_ERRNO_H], [/* Define to 1 if you have the <errno.h> header file. */
1874 @%:@undef HAVE_ERRNO_H])
1875-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
1876+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
1877 @%:@undef HAVE_STRING_H])
1878-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
1879+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
1880 @%:@undef HAVE_STRINGS_H])
1881-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_SYS_MOUNT_H], [/* Define to 1 if you have the <sys/mount.h> header file. */
1882+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_SYS_MOUNT_H], [/* Define to 1 if you have the <sys/mount.h> header file. */
1883 @%:@undef HAVE_SYS_MOUNT_H])
1884-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the <sys/param.h> header file. */
1885+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the <sys/param.h> header file. */
1886 @%:@undef HAVE_SYS_PARAM_H])
1887-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the <sys/socket.h> header file. */
1888+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the <sys/socket.h> header file. */
1889 @%:@undef HAVE_SYS_SOCKET_H])
1890-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
1891+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
1892 @%:@undef HAVE_SYS_TIME_H])
1893-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_SYSLOG_H], [/* Define to 1 if you have the <syslog.h> header file. */
1894+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_SYSLOG_H], [/* Define to 1 if you have the <syslog.h> header file. */
1895 @%:@undef HAVE_SYSLOG_H])
1896-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
1897+m4trace:configure.ac:125: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
1898 @%:@undef HAVE_UNISTD_H])
1899-m4trace:configure.ac:123: -1- AH_OUTPUT([HAVE_SYS_FSUID_H], [/* Define to 1 if you have the <sys/fsuid.h> header file. */
1900+m4trace:configure.ac:128: -1- AH_OUTPUT([HAVE_SYS_FSUID_H], [/* Define to 1 if you have the <sys/fsuid.h> header file. */
1901 @%:@undef HAVE_SYS_FSUID_H])
1902-m4trace:configure.ac:123: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_FSUID_H])
1903-m4trace:configure.ac:123: -1- m4_pattern_allow([^HAVE_SYS_FSUID_H$])
1904-m4trace:configure.ac:132: -1- AC_SUBST([PIE_CFLAGS])
1905-m4trace:configure.ac:132: -1- AC_SUBST_TRACE([PIE_CFLAGS])
1906-m4trace:configure.ac:132: -1- m4_pattern_allow([^PIE_CFLAGS$])
1907-m4trace:configure.ac:139: -1- AC_SUBST([RELRO_CFLAGS])
1908-m4trace:configure.ac:139: -1- AC_SUBST_TRACE([RELRO_CFLAGS])
1909-m4trace:configure.ac:139: -1- m4_pattern_allow([^RELRO_CFLAGS$])
1910-m4trace:configure.ac:142: -1- AH_OUTPUT([HAVE_KRB5_H], [/* Define to 1 if you have the <krb5.h> header file. */
1911+m4trace:configure.ac:128: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_FSUID_H])
1912+m4trace:configure.ac:128: -1- m4_pattern_allow([^HAVE_SYS_FSUID_H$])
1913+m4trace:configure.ac:137: -1- AC_SUBST([PIE_CFLAGS])
1914+m4trace:configure.ac:137: -1- AC_SUBST_TRACE([PIE_CFLAGS])
1915+m4trace:configure.ac:137: -1- m4_pattern_allow([^PIE_CFLAGS$])
1916+m4trace:configure.ac:144: -1- AC_SUBST([RELRO_CFLAGS])
1917+m4trace:configure.ac:144: -1- AC_SUBST_TRACE([RELRO_CFLAGS])
1918+m4trace:configure.ac:144: -1- m4_pattern_allow([^RELRO_CFLAGS$])
1919+m4trace:configure.ac:147: -1- AH_OUTPUT([HAVE_KRB5_H], [/* Define to 1 if you have the <krb5.h> header file. */
1920 @%:@undef HAVE_KRB5_H])
1921-m4trace:configure.ac:142: -1- AH_OUTPUT([HAVE_KRB5_KRB5_H], [/* Define to 1 if you have the <krb5/krb5.h> header file. */
1922+m4trace:configure.ac:147: -1- AH_OUTPUT([HAVE_KRB5_KRB5_H], [/* Define to 1 if you have the <krb5/krb5.h> header file. */
1923 @%:@undef HAVE_KRB5_KRB5_H])
1924-m4trace:configure.ac:166: -1- AC_DEFINE_TRACE_LITERAL([HAVE_KRB5_KEYBLOCK_KEYVALUE])
1925-m4trace:configure.ac:166: -1- m4_pattern_allow([^HAVE_KRB5_KEYBLOCK_KEYVALUE$])
1926-m4trace:configure.ac:166: -1- AH_OUTPUT([HAVE_KRB5_KEYBLOCK_KEYVALUE], [/* Whether the krb5_keyblock struct has a keyvalue property */
1927+m4trace:configure.ac:171: -1- AC_DEFINE_TRACE_LITERAL([HAVE_KRB5_KEYBLOCK_KEYVALUE])
1928+m4trace:configure.ac:171: -1- m4_pattern_allow([^HAVE_KRB5_KEYBLOCK_KEYVALUE$])
1929+m4trace:configure.ac:171: -1- AH_OUTPUT([HAVE_KRB5_KEYBLOCK_KEYVALUE], [/* Whether the krb5_keyblock struct has a keyvalue property */
1930 @%:@undef HAVE_KRB5_KEYBLOCK_KEYVALUE])
1931-m4trace:configure.ac:171: -1- AH_OUTPUT([HAVE_TALLOC_H], [/* Define to 1 if you have the <talloc.h> header file. */
1932+m4trace:configure.ac:176: -1- AH_OUTPUT([HAVE_TALLOC_H], [/* Define to 1 if you have the <talloc.h> header file. */
1933 @%:@undef HAVE_TALLOC_H])
1934-m4trace:configure.ac:171: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TALLOC_H])
1935-m4trace:configure.ac:171: -1- m4_pattern_allow([^HAVE_TALLOC_H$])
1936-m4trace:configure.ac:181: -1- AH_OUTPUT([HAVE_KEYUTILS_H], [/* Define to 1 if you have the <keyutils.h> header file. */
1937+m4trace:configure.ac:176: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TALLOC_H])
1938+m4trace:configure.ac:176: -1- m4_pattern_allow([^HAVE_TALLOC_H$])
1939+m4trace:configure.ac:186: -1- AH_OUTPUT([HAVE_KEYUTILS_H], [/* Define to 1 if you have the <keyutils.h> header file. */
1940 @%:@undef HAVE_KEYUTILS_H])
1941-m4trace:configure.ac:181: -1- AC_DEFINE_TRACE_LITERAL([HAVE_KEYUTILS_H])
1942-m4trace:configure.ac:181: -1- m4_pattern_allow([^HAVE_KEYUTILS_H$])
1943-m4trace:configure.ac:200: -1- AC_SUBST([KRB5_LDADD])
1944-m4trace:configure.ac:200: -1- AC_SUBST_TRACE([KRB5_LDADD])
1945-m4trace:configure.ac:200: -1- m4_pattern_allow([^KRB5_LDADD$])
1946-m4trace:configure.ac:204: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$])
1947-m4trace:configure.ac:204: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
1948-m4trace:configure.ac:204: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
1949-m4trace:configure.ac:204: -1- AC_SUBST([PKG_CONFIG])
1950-m4trace:configure.ac:204: -1- AC_SUBST_TRACE([PKG_CONFIG])
1951-m4trace:configure.ac:204: -1- m4_pattern_allow([^PKG_CONFIG$])
1952-m4trace:configure.ac:204: -1- AC_SUBST([PKG_CONFIG_PATH])
1953-m4trace:configure.ac:204: -1- AC_SUBST_TRACE([PKG_CONFIG_PATH])
1954-m4trace:configure.ac:204: -1- m4_pattern_allow([^PKG_CONFIG_PATH$])
1955-m4trace:configure.ac:204: -1- AC_SUBST([PKG_CONFIG_LIBDIR])
1956-m4trace:configure.ac:204: -1- AC_SUBST_TRACE([PKG_CONFIG_LIBDIR])
1957-m4trace:configure.ac:204: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$])
1958-m4trace:configure.ac:204: -1- AC_SUBST([PKG_CONFIG])
1959-m4trace:configure.ac:204: -1- AC_SUBST_TRACE([PKG_CONFIG])
1960-m4trace:configure.ac:204: -1- m4_pattern_allow([^PKG_CONFIG$])
1961-m4trace:configure.ac:204: -1- AC_SUBST([WBCLIENT_CFLAGS])
1962-m4trace:configure.ac:204: -1- AC_SUBST_TRACE([WBCLIENT_CFLAGS])
1963-m4trace:configure.ac:204: -1- m4_pattern_allow([^WBCLIENT_CFLAGS$])
1964-m4trace:configure.ac:204: -1- AC_SUBST([WBCLIENT_LIBS])
1965-m4trace:configure.ac:204: -1- AC_SUBST_TRACE([WBCLIENT_LIBS])
1966-m4trace:configure.ac:204: -1- m4_pattern_allow([^WBCLIENT_LIBS$])
1967-m4trace:configure.ac:204: -1- AH_OUTPUT([HAVE_LIBWBCLIENT], [/* Define to 1 if you have the `wbclient\' library (-lwbclient). */
1968+m4trace:configure.ac:186: -1- AC_DEFINE_TRACE_LITERAL([HAVE_KEYUTILS_H])
1969+m4trace:configure.ac:186: -1- m4_pattern_allow([^HAVE_KEYUTILS_H$])
1970+m4trace:configure.ac:205: -1- AC_SUBST([KRB5_LDADD])
1971+m4trace:configure.ac:205: -1- AC_SUBST_TRACE([KRB5_LDADD])
1972+m4trace:configure.ac:205: -1- m4_pattern_allow([^KRB5_LDADD$])
1973+m4trace:configure.ac:209: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$])
1974+m4trace:configure.ac:209: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
1975+m4trace:configure.ac:209: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
1976+m4trace:configure.ac:209: -1- AC_SUBST([PKG_CONFIG])
1977+m4trace:configure.ac:209: -1- AC_SUBST_TRACE([PKG_CONFIG])
1978+m4trace:configure.ac:209: -1- m4_pattern_allow([^PKG_CONFIG$])
1979+m4trace:configure.ac:209: -1- AC_SUBST([PKG_CONFIG_PATH])
1980+m4trace:configure.ac:209: -1- AC_SUBST_TRACE([PKG_CONFIG_PATH])
1981+m4trace:configure.ac:209: -1- m4_pattern_allow([^PKG_CONFIG_PATH$])
1982+m4trace:configure.ac:209: -1- AC_SUBST([PKG_CONFIG_LIBDIR])
1983+m4trace:configure.ac:209: -1- AC_SUBST_TRACE([PKG_CONFIG_LIBDIR])
1984+m4trace:configure.ac:209: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$])
1985+m4trace:configure.ac:209: -1- AC_SUBST([PKG_CONFIG])
1986+m4trace:configure.ac:209: -1- AC_SUBST_TRACE([PKG_CONFIG])
1987+m4trace:configure.ac:209: -1- m4_pattern_allow([^PKG_CONFIG$])
1988+m4trace:configure.ac:209: -1- AC_SUBST([WBCLIENT_CFLAGS])
1989+m4trace:configure.ac:209: -1- AC_SUBST_TRACE([WBCLIENT_CFLAGS])
1990+m4trace:configure.ac:209: -1- m4_pattern_allow([^WBCLIENT_CFLAGS$])
1991+m4trace:configure.ac:209: -1- AC_SUBST([WBCLIENT_LIBS])
1992+m4trace:configure.ac:209: -1- AC_SUBST_TRACE([WBCLIENT_LIBS])
1993+m4trace:configure.ac:209: -1- m4_pattern_allow([^WBCLIENT_LIBS$])
1994+m4trace:configure.ac:209: -1- AH_OUTPUT([HAVE_LIBWBCLIENT], [/* Define to 1 if you have the `wbclient\' library (-lwbclient). */
1995 @%:@undef HAVE_LIBWBCLIENT])
1996-m4trace:configure.ac:204: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBWBCLIENT])
1997-m4trace:configure.ac:204: -1- m4_pattern_allow([^HAVE_LIBWBCLIENT$])
1998-m4trace:configure.ac:204: -1- AH_OUTPUT([HAVE_SYS_XATTR_H], [/* Define to 1 if you have the <sys/xattr.h> header file. */
1999+m4trace:configure.ac:209: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBWBCLIENT])
2000+m4trace:configure.ac:209: -1- m4_pattern_allow([^HAVE_LIBWBCLIENT$])
2001+m4trace:configure.ac:209: -1- AH_OUTPUT([HAVE_SYS_XATTR_H], [/* Define to 1 if you have the <sys/xattr.h> header file. */
2002 @%:@undef HAVE_SYS_XATTR_H])
2003-m4trace:configure.ac:204: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_XATTR_H])
2004-m4trace:configure.ac:204: -1- m4_pattern_allow([^HAVE_SYS_XATTR_H$])
2005-m4trace:configure.ac:207: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WBC_ID_TYPE_BOTH])
2006-m4trace:configure.ac:207: -2- m4_pattern_allow([^HAVE_WBC_ID_TYPE_BOTH$])
2007-m4trace:configure.ac:207: -2- AH_OUTPUT([HAVE_WBC_ID_TYPE_BOTH], [/* Does wbclient.h have a WBC_ID_TYPE_BOTH enum? */
2008+m4trace:configure.ac:209: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_XATTR_H])
2009+m4trace:configure.ac:209: -1- m4_pattern_allow([^HAVE_SYS_XATTR_H$])
2010+m4trace:configure.ac:212: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WBC_ID_TYPE_BOTH])
2011+m4trace:configure.ac:212: -2- m4_pattern_allow([^HAVE_WBC_ID_TYPE_BOTH$])
2012+m4trace:configure.ac:212: -2- AH_OUTPUT([HAVE_WBC_ID_TYPE_BOTH], [/* Does wbclient.h have a WBC_ID_TYPE_BOTH enum? */
2013 @%:@undef HAVE_WBC_ID_TYPE_BOTH])
2014-m4trace:configure.ac:210: -1- AH_OUTPUT([HAVE_KEYUTILS_H], [/* Define to 1 if you have the <keyutils.h> header file. */
2015+m4trace:configure.ac:215: -1- AH_OUTPUT([HAVE_KEYUTILS_H], [/* Define to 1 if you have the <keyutils.h> header file. */
2016 @%:@undef HAVE_KEYUTILS_H])
2017-m4trace:configure.ac:210: -1- AC_DEFINE_TRACE_LITERAL([HAVE_KEYUTILS_H])
2018-m4trace:configure.ac:210: -1- m4_pattern_allow([^HAVE_KEYUTILS_H$])
2019-m4trace:configure.ac:223: -1- AH_OUTPUT([HAVE_SECURITY_PAM_APPL_H], [/* Define to 1 if you have the <security/pam_appl.h> header file. */
2020+m4trace:configure.ac:215: -1- AC_DEFINE_TRACE_LITERAL([HAVE_KEYUTILS_H])
2021+m4trace:configure.ac:215: -1- m4_pattern_allow([^HAVE_KEYUTILS_H$])
2022+m4trace:configure.ac:228: -1- AH_OUTPUT([HAVE_SECURITY_PAM_APPL_H], [/* Define to 1 if you have the <security/pam_appl.h> header file. */
2023 @%:@undef HAVE_SECURITY_PAM_APPL_H])
2024-m4trace:configure.ac:223: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SECURITY_PAM_APPL_H])
2025-m4trace:configure.ac:223: -1- m4_pattern_allow([^HAVE_SECURITY_PAM_APPL_H$])
2026-m4trace:configure.ac:240: -1- AH_OUTPUT([HAVE_KRB5_AUTH_CON_GETSENDSUBKEY], [/* Define to 1 if you have the `krb5_auth_con_getsendsubkey\' function. */
2027+m4trace:configure.ac:228: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SECURITY_PAM_APPL_H])
2028+m4trace:configure.ac:228: -1- m4_pattern_allow([^HAVE_SECURITY_PAM_APPL_H$])
2029+m4trace:configure.ac:245: -1- AH_OUTPUT([HAVE_KRB5_AUTH_CON_GETSENDSUBKEY], [/* Define to 1 if you have the `krb5_auth_con_getsendsubkey\' function. */
2030 @%:@undef HAVE_KRB5_AUTH_CON_GETSENDSUBKEY])
2031-m4trace:configure.ac:240: -1- AC_DEFINE_TRACE_LITERAL([HAVE_KRB5_AUTH_CON_GETSENDSUBKEY])
2032-m4trace:configure.ac:240: -1- m4_pattern_allow([^HAVE_KRB5_AUTH_CON_GETSENDSUBKEY$])
2033-m4trace:configure.ac:245: -1- AH_OUTPUT([HAVE_KRB5_PRINCIPAL_GET_REALM], [/* Define to 1 if you have the `krb5_principal_get_realm\' function. */
2034+m4trace:configure.ac:245: -1- AC_DEFINE_TRACE_LITERAL([HAVE_KRB5_AUTH_CON_GETSENDSUBKEY])
2035+m4trace:configure.ac:245: -1- m4_pattern_allow([^HAVE_KRB5_AUTH_CON_GETSENDSUBKEY$])
2036+m4trace:configure.ac:250: -1- AH_OUTPUT([HAVE_KRB5_PRINCIPAL_GET_REALM], [/* Define to 1 if you have the `krb5_principal_get_realm\' function. */
2037 @%:@undef HAVE_KRB5_PRINCIPAL_GET_REALM])
2038-m4trace:configure.ac:245: -1- AH_OUTPUT([HAVE_KRB5_FREE_UNPARSED_NAME], [/* Define to 1 if you have the `krb5_free_unparsed_name\' function. */
2039+m4trace:configure.ac:250: -1- AH_OUTPUT([HAVE_KRB5_FREE_UNPARSED_NAME], [/* Define to 1 if you have the `krb5_free_unparsed_name\' function. */
2040 @%:@undef HAVE_KRB5_FREE_UNPARSED_NAME])
2041-m4trace:configure.ac:246: -1- AH_OUTPUT([HAVE_KRB5_AUTH_CON_SETADDRS], [/* Define to 1 if you have the `krb5_auth_con_setaddrs\' function. */
2042+m4trace:configure.ac:251: -1- AH_OUTPUT([HAVE_KRB5_AUTH_CON_SETADDRS], [/* Define to 1 if you have the `krb5_auth_con_setaddrs\' function. */
2043 @%:@undef HAVE_KRB5_AUTH_CON_SETADDRS])
2044-m4trace:configure.ac:246: -1- AH_OUTPUT([HAVE_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE], [/* Define to 1 if you have the `krb5_auth_con_set_req_cksumtype\' function. */
2045+m4trace:configure.ac:251: -1- AH_OUTPUT([HAVE_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE], [/* Define to 1 if you have the `krb5_auth_con_set_req_cksumtype\' function. */
2046 @%:@undef HAVE_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE])
2047-m4trace:configure.ac:250: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_SYSTEMD])
2048-m4trace:configure.ac:250: -1- m4_pattern_allow([^ENABLE_SYSTEMD$])
2049-m4trace:configure.ac:250: -1- AH_OUTPUT([ENABLE_SYSTEMD], [/* Enable systemd specific behavior for mount.cifs */
2050+m4trace:configure.ac:255: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_SYSTEMD])
2051+m4trace:configure.ac:255: -1- m4_pattern_allow([^ENABLE_SYSTEMD$])
2052+m4trace:configure.ac:255: -1- AH_OUTPUT([ENABLE_SYSTEMD], [/* Enable systemd specific behavior for mount.cifs */
2053 @%:@undef ENABLE_SYSTEMD])
2054-m4trace:configure.ac:255: -1- AC_SUBST([have_rst2man])
2055-m4trace:configure.ac:255: -1- AC_SUBST_TRACE([have_rst2man])
2056-m4trace:configure.ac:255: -1- m4_pattern_allow([^have_rst2man$])
2057-m4trace:configure.ac:269: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE])
2058-m4trace:configure.ac:269: -1- m4_pattern_allow([^HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE$])
2059-m4trace:configure.ac:269: -1- AH_OUTPUT([HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE], [/* Define to 1 if you have the declaration of
2060+m4trace:configure.ac:260: -1- AC_SUBST([have_rst2man])
2061+m4trace:configure.ac:260: -1- AC_SUBST_TRACE([have_rst2man])
2062+m4trace:configure.ac:260: -1- m4_pattern_allow([^have_rst2man$])
2063+m4trace:configure.ac:274: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE])
2064+m4trace:configure.ac:274: -1- m4_pattern_allow([^HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE$])
2065+m4trace:configure.ac:274: -1- AH_OUTPUT([HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE], [/* Define to 1 if you have the declaration of
2066 `krb5_auth_con_set_req_cksumtype\', and to 0 if you don\'t. */
2067 @%:@undef HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE])
2068-m4trace:configure.ac:273: -1- AM_CONDITIONAL([CONFIG_MAN], [test "$enable_man" != "no"])
2069-m4trace:configure.ac:273: -1- AC_SUBST([CONFIG_MAN_TRUE])
2070-m4trace:configure.ac:273: -1- AC_SUBST_TRACE([CONFIG_MAN_TRUE])
2071-m4trace:configure.ac:273: -1- m4_pattern_allow([^CONFIG_MAN_TRUE$])
2072-m4trace:configure.ac:273: -1- AC_SUBST([CONFIG_MAN_FALSE])
2073-m4trace:configure.ac:273: -1- AC_SUBST_TRACE([CONFIG_MAN_FALSE])
2074-m4trace:configure.ac:273: -1- m4_pattern_allow([^CONFIG_MAN_FALSE$])
2075-m4trace:configure.ac:273: -1- _AM_SUBST_NOTMAKE([CONFIG_MAN_TRUE])
2076-m4trace:configure.ac:273: -1- _AM_SUBST_NOTMAKE([CONFIG_MAN_FALSE])
2077-m4trace:configure.ac:274: -1- AM_CONDITIONAL([CONFIG_CIFSUPCALL], [test "$enable_cifsupcall" != "no"])
2078-m4trace:configure.ac:274: -1- AC_SUBST([CONFIG_CIFSUPCALL_TRUE])
2079-m4trace:configure.ac:274: -1- AC_SUBST_TRACE([CONFIG_CIFSUPCALL_TRUE])
2080-m4trace:configure.ac:274: -1- m4_pattern_allow([^CONFIG_CIFSUPCALL_TRUE$])
2081-m4trace:configure.ac:274: -1- AC_SUBST([CONFIG_CIFSUPCALL_FALSE])
2082-m4trace:configure.ac:274: -1- AC_SUBST_TRACE([CONFIG_CIFSUPCALL_FALSE])
2083-m4trace:configure.ac:274: -1- m4_pattern_allow([^CONFIG_CIFSUPCALL_FALSE$])
2084-m4trace:configure.ac:274: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSUPCALL_TRUE])
2085-m4trace:configure.ac:274: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSUPCALL_FALSE])
2086-m4trace:configure.ac:275: -1- AM_CONDITIONAL([CONFIG_CIFSCREDS], [test "$enable_cifscreds" != "no"])
2087-m4trace:configure.ac:275: -1- AC_SUBST([CONFIG_CIFSCREDS_TRUE])
2088-m4trace:configure.ac:275: -1- AC_SUBST_TRACE([CONFIG_CIFSCREDS_TRUE])
2089-m4trace:configure.ac:275: -1- m4_pattern_allow([^CONFIG_CIFSCREDS_TRUE$])
2090-m4trace:configure.ac:275: -1- AC_SUBST([CONFIG_CIFSCREDS_FALSE])
2091-m4trace:configure.ac:275: -1- AC_SUBST_TRACE([CONFIG_CIFSCREDS_FALSE])
2092-m4trace:configure.ac:275: -1- m4_pattern_allow([^CONFIG_CIFSCREDS_FALSE$])
2093-m4trace:configure.ac:275: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSCREDS_TRUE])
2094-m4trace:configure.ac:275: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSCREDS_FALSE])
2095-m4trace:configure.ac:276: -1- AM_CONDITIONAL([CONFIG_CIFSIDMAP], [test "$enable_cifsidmap" != "no"])
2096-m4trace:configure.ac:276: -1- AC_SUBST([CONFIG_CIFSIDMAP_TRUE])
2097-m4trace:configure.ac:276: -1- AC_SUBST_TRACE([CONFIG_CIFSIDMAP_TRUE])
2098-m4trace:configure.ac:276: -1- m4_pattern_allow([^CONFIG_CIFSIDMAP_TRUE$])
2099-m4trace:configure.ac:276: -1- AC_SUBST([CONFIG_CIFSIDMAP_FALSE])
2100-m4trace:configure.ac:276: -1- AC_SUBST_TRACE([CONFIG_CIFSIDMAP_FALSE])
2101-m4trace:configure.ac:276: -1- m4_pattern_allow([^CONFIG_CIFSIDMAP_FALSE$])
2102-m4trace:configure.ac:276: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSIDMAP_TRUE])
2103-m4trace:configure.ac:276: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSIDMAP_FALSE])
2104-m4trace:configure.ac:277: -1- AM_CONDITIONAL([CONFIG_CIFSACL], [test "$enable_cifsacl" != "no"])
2105-m4trace:configure.ac:277: -1- AC_SUBST([CONFIG_CIFSACL_TRUE])
2106-m4trace:configure.ac:277: -1- AC_SUBST_TRACE([CONFIG_CIFSACL_TRUE])
2107-m4trace:configure.ac:277: -1- m4_pattern_allow([^CONFIG_CIFSACL_TRUE$])
2108-m4trace:configure.ac:277: -1- AC_SUBST([CONFIG_CIFSACL_FALSE])
2109-m4trace:configure.ac:277: -1- AC_SUBST_TRACE([CONFIG_CIFSACL_FALSE])
2110-m4trace:configure.ac:277: -1- m4_pattern_allow([^CONFIG_CIFSACL_FALSE$])
2111-m4trace:configure.ac:277: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSACL_TRUE])
2112-m4trace:configure.ac:277: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSACL_FALSE])
2113-m4trace:configure.ac:278: -1- AM_CONDITIONAL([CONFIG_PAM], [test "$enable_pam" != "no"])
2114-m4trace:configure.ac:278: -1- AC_SUBST([CONFIG_PAM_TRUE])
2115-m4trace:configure.ac:278: -1- AC_SUBST_TRACE([CONFIG_PAM_TRUE])
2116-m4trace:configure.ac:278: -1- m4_pattern_allow([^CONFIG_PAM_TRUE$])
2117-m4trace:configure.ac:278: -1- AC_SUBST([CONFIG_PAM_FALSE])
2118-m4trace:configure.ac:278: -1- AC_SUBST_TRACE([CONFIG_PAM_FALSE])
2119-m4trace:configure.ac:278: -1- m4_pattern_allow([^CONFIG_PAM_FALSE$])
2120-m4trace:configure.ac:278: -1- _AM_SUBST_NOTMAKE([CONFIG_PAM_TRUE])
2121-m4trace:configure.ac:278: -1- _AM_SUBST_NOTMAKE([CONFIG_PAM_FALSE])
2122-m4trace:configure.ac:279: -1- AM_CONDITIONAL([CONFIG_PLUGIN], [test "$enable_cifsidmap" != "no" -o "$enable_cifsacl" != "no"])
2123-m4trace:configure.ac:279: -1- AC_SUBST([CONFIG_PLUGIN_TRUE])
2124-m4trace:configure.ac:279: -1- AC_SUBST_TRACE([CONFIG_PLUGIN_TRUE])
2125-m4trace:configure.ac:279: -1- m4_pattern_allow([^CONFIG_PLUGIN_TRUE$])
2126-m4trace:configure.ac:279: -1- AC_SUBST([CONFIG_PLUGIN_FALSE])
2127-m4trace:configure.ac:279: -1- AC_SUBST_TRACE([CONFIG_PLUGIN_FALSE])
2128-m4trace:configure.ac:279: -1- m4_pattern_allow([^CONFIG_PLUGIN_FALSE$])
2129-m4trace:configure.ac:279: -1- _AM_SUBST_NOTMAKE([CONFIG_PLUGIN_TRUE])
2130-m4trace:configure.ac:279: -1- _AM_SUBST_NOTMAKE([CONFIG_PLUGIN_FALSE])
2131-m4trace:configure.ac:284: -1- AH_OUTPUT([HAVE_SYS_CAPABILITY_H], [/* Define to 1 if you have the <sys/capability.h> header file. */
2132+m4trace:configure.ac:278: -1- AM_CONDITIONAL([CONFIG_MAN], [test "$enable_man" != "no"])
2133+m4trace:configure.ac:278: -1- AC_SUBST([CONFIG_MAN_TRUE])
2134+m4trace:configure.ac:278: -1- AC_SUBST_TRACE([CONFIG_MAN_TRUE])
2135+m4trace:configure.ac:278: -1- m4_pattern_allow([^CONFIG_MAN_TRUE$])
2136+m4trace:configure.ac:278: -1- AC_SUBST([CONFIG_MAN_FALSE])
2137+m4trace:configure.ac:278: -1- AC_SUBST_TRACE([CONFIG_MAN_FALSE])
2138+m4trace:configure.ac:278: -1- m4_pattern_allow([^CONFIG_MAN_FALSE$])
2139+m4trace:configure.ac:278: -1- _AM_SUBST_NOTMAKE([CONFIG_MAN_TRUE])
2140+m4trace:configure.ac:278: -1- _AM_SUBST_NOTMAKE([CONFIG_MAN_FALSE])
2141+m4trace:configure.ac:279: -1- AM_CONDITIONAL([CONFIG_CIFSUPCALL], [test "$enable_cifsupcall" != "no"])
2142+m4trace:configure.ac:279: -1- AC_SUBST([CONFIG_CIFSUPCALL_TRUE])
2143+m4trace:configure.ac:279: -1- AC_SUBST_TRACE([CONFIG_CIFSUPCALL_TRUE])
2144+m4trace:configure.ac:279: -1- m4_pattern_allow([^CONFIG_CIFSUPCALL_TRUE$])
2145+m4trace:configure.ac:279: -1- AC_SUBST([CONFIG_CIFSUPCALL_FALSE])
2146+m4trace:configure.ac:279: -1- AC_SUBST_TRACE([CONFIG_CIFSUPCALL_FALSE])
2147+m4trace:configure.ac:279: -1- m4_pattern_allow([^CONFIG_CIFSUPCALL_FALSE$])
2148+m4trace:configure.ac:279: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSUPCALL_TRUE])
2149+m4trace:configure.ac:279: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSUPCALL_FALSE])
2150+m4trace:configure.ac:280: -1- AM_CONDITIONAL([CONFIG_CIFSCREDS], [test "$enable_cifscreds" != "no"])
2151+m4trace:configure.ac:280: -1- AC_SUBST([CONFIG_CIFSCREDS_TRUE])
2152+m4trace:configure.ac:280: -1- AC_SUBST_TRACE([CONFIG_CIFSCREDS_TRUE])
2153+m4trace:configure.ac:280: -1- m4_pattern_allow([^CONFIG_CIFSCREDS_TRUE$])
2154+m4trace:configure.ac:280: -1- AC_SUBST([CONFIG_CIFSCREDS_FALSE])
2155+m4trace:configure.ac:280: -1- AC_SUBST_TRACE([CONFIG_CIFSCREDS_FALSE])
2156+m4trace:configure.ac:280: -1- m4_pattern_allow([^CONFIG_CIFSCREDS_FALSE$])
2157+m4trace:configure.ac:280: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSCREDS_TRUE])
2158+m4trace:configure.ac:280: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSCREDS_FALSE])
2159+m4trace:configure.ac:281: -1- AM_CONDITIONAL([CONFIG_CIFSIDMAP], [test "$enable_cifsidmap" != "no"])
2160+m4trace:configure.ac:281: -1- AC_SUBST([CONFIG_CIFSIDMAP_TRUE])
2161+m4trace:configure.ac:281: -1- AC_SUBST_TRACE([CONFIG_CIFSIDMAP_TRUE])
2162+m4trace:configure.ac:281: -1- m4_pattern_allow([^CONFIG_CIFSIDMAP_TRUE$])
2163+m4trace:configure.ac:281: -1- AC_SUBST([CONFIG_CIFSIDMAP_FALSE])
2164+m4trace:configure.ac:281: -1- AC_SUBST_TRACE([CONFIG_CIFSIDMAP_FALSE])
2165+m4trace:configure.ac:281: -1- m4_pattern_allow([^CONFIG_CIFSIDMAP_FALSE$])
2166+m4trace:configure.ac:281: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSIDMAP_TRUE])
2167+m4trace:configure.ac:281: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSIDMAP_FALSE])
2168+m4trace:configure.ac:282: -1- AM_CONDITIONAL([CONFIG_CIFSACL], [test "$enable_cifsacl" != "no"])
2169+m4trace:configure.ac:282: -1- AC_SUBST([CONFIG_CIFSACL_TRUE])
2170+m4trace:configure.ac:282: -1- AC_SUBST_TRACE([CONFIG_CIFSACL_TRUE])
2171+m4trace:configure.ac:282: -1- m4_pattern_allow([^CONFIG_CIFSACL_TRUE$])
2172+m4trace:configure.ac:282: -1- AC_SUBST([CONFIG_CIFSACL_FALSE])
2173+m4trace:configure.ac:282: -1- AC_SUBST_TRACE([CONFIG_CIFSACL_FALSE])
2174+m4trace:configure.ac:282: -1- m4_pattern_allow([^CONFIG_CIFSACL_FALSE$])
2175+m4trace:configure.ac:282: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSACL_TRUE])
2176+m4trace:configure.ac:282: -1- _AM_SUBST_NOTMAKE([CONFIG_CIFSACL_FALSE])
2177+m4trace:configure.ac:283: -1- AM_CONDITIONAL([CONFIG_SMBINFO], [test "$enable_smbinfo" != "no"])
2178+m4trace:configure.ac:283: -1- AC_SUBST([CONFIG_SMBINFO_TRUE])
2179+m4trace:configure.ac:283: -1- AC_SUBST_TRACE([CONFIG_SMBINFO_TRUE])
2180+m4trace:configure.ac:283: -1- m4_pattern_allow([^CONFIG_SMBINFO_TRUE$])
2181+m4trace:configure.ac:283: -1- AC_SUBST([CONFIG_SMBINFO_FALSE])
2182+m4trace:configure.ac:283: -1- AC_SUBST_TRACE([CONFIG_SMBINFO_FALSE])
2183+m4trace:configure.ac:283: -1- m4_pattern_allow([^CONFIG_SMBINFO_FALSE$])
2184+m4trace:configure.ac:283: -1- _AM_SUBST_NOTMAKE([CONFIG_SMBINFO_TRUE])
2185+m4trace:configure.ac:283: -1- _AM_SUBST_NOTMAKE([CONFIG_SMBINFO_FALSE])
2186+m4trace:configure.ac:284: -1- AM_CONDITIONAL([CONFIG_PAM], [test "$enable_pam" != "no"])
2187+m4trace:configure.ac:284: -1- AC_SUBST([CONFIG_PAM_TRUE])
2188+m4trace:configure.ac:284: -1- AC_SUBST_TRACE([CONFIG_PAM_TRUE])
2189+m4trace:configure.ac:284: -1- m4_pattern_allow([^CONFIG_PAM_TRUE$])
2190+m4trace:configure.ac:284: -1- AC_SUBST([CONFIG_PAM_FALSE])
2191+m4trace:configure.ac:284: -1- AC_SUBST_TRACE([CONFIG_PAM_FALSE])
2192+m4trace:configure.ac:284: -1- m4_pattern_allow([^CONFIG_PAM_FALSE$])
2193+m4trace:configure.ac:284: -1- _AM_SUBST_NOTMAKE([CONFIG_PAM_TRUE])
2194+m4trace:configure.ac:284: -1- _AM_SUBST_NOTMAKE([CONFIG_PAM_FALSE])
2195+m4trace:configure.ac:285: -1- AM_CONDITIONAL([CONFIG_PLUGIN], [test "$enable_cifsidmap" != "no" -o "$enable_cifsacl" != "no"])
2196+m4trace:configure.ac:285: -1- AC_SUBST([CONFIG_PLUGIN_TRUE])
2197+m4trace:configure.ac:285: -1- AC_SUBST_TRACE([CONFIG_PLUGIN_TRUE])
2198+m4trace:configure.ac:285: -1- m4_pattern_allow([^CONFIG_PLUGIN_TRUE$])
2199+m4trace:configure.ac:285: -1- AC_SUBST([CONFIG_PLUGIN_FALSE])
2200+m4trace:configure.ac:285: -1- AC_SUBST_TRACE([CONFIG_PLUGIN_FALSE])
2201+m4trace:configure.ac:285: -1- m4_pattern_allow([^CONFIG_PLUGIN_FALSE$])
2202+m4trace:configure.ac:285: -1- _AM_SUBST_NOTMAKE([CONFIG_PLUGIN_TRUE])
2203+m4trace:configure.ac:285: -1- _AM_SUBST_NOTMAKE([CONFIG_PLUGIN_FALSE])
2204+m4trace:configure.ac:290: -1- AH_OUTPUT([HAVE_SYS_CAPABILITY_H], [/* Define to 1 if you have the <sys/capability.h> header file. */
2205 @%:@undef HAVE_SYS_CAPABILITY_H])
2206-m4trace:configure.ac:284: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_CAPABILITY_H])
2207-m4trace:configure.ac:284: -1- m4_pattern_allow([^HAVE_SYS_CAPABILITY_H$])
2208-m4trace:configure.ac:284: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBCAP])
2209-m4trace:configure.ac:284: -1- m4_pattern_allow([^HAVE_LIBCAP$])
2210-m4trace:configure.ac:284: -1- AH_OUTPUT([HAVE_LIBCAP], [/* Define if libcap exists */
2211+m4trace:configure.ac:290: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_CAPABILITY_H])
2212+m4trace:configure.ac:290: -1- m4_pattern_allow([^HAVE_SYS_CAPABILITY_H$])
2213+m4trace:configure.ac:290: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBCAP])
2214+m4trace:configure.ac:290: -1- m4_pattern_allow([^HAVE_LIBCAP$])
2215+m4trace:configure.ac:290: -1- AH_OUTPUT([HAVE_LIBCAP], [/* Define if libcap exists */
2216 @%:@undef HAVE_LIBCAP])
2217-m4trace:configure.ac:284: -1- AC_SUBST([LIBCAP])
2218-m4trace:configure.ac:284: -1- AC_SUBST_TRACE([LIBCAP])
2219-m4trace:configure.ac:284: -1- m4_pattern_allow([^LIBCAP$])
2220-m4trace:configure.ac:286: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
2221-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
2222-m4trace:configure.ac:286: -1- m4_pattern_allow([^LIB@&t@OBJS$])
2223-m4trace:configure.ac:286: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
2224-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([LTLIBOBJS])
2225-m4trace:configure.ac:286: -1- m4_pattern_allow([^LTLIBOBJS$])
2226-m4trace:configure.ac:286: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
2227-m4trace:configure.ac:286: -1- AC_SUBST([am__EXEEXT_TRUE])
2228-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE])
2229-m4trace:configure.ac:286: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
2230-m4trace:configure.ac:286: -1- AC_SUBST([am__EXEEXT_FALSE])
2231-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE])
2232-m4trace:configure.ac:286: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
2233-m4trace:configure.ac:286: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
2234-m4trace:configure.ac:286: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
2235-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([top_builddir])
2236-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([top_build_prefix])
2237-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([srcdir])
2238-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([abs_srcdir])
2239-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([top_srcdir])
2240-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([abs_top_srcdir])
2241-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([builddir])
2242-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([abs_builddir])
2243-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([abs_top_builddir])
2244-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([INSTALL])
2245-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([MKDIR_P])
2246+m4trace:configure.ac:290: -1- AC_SUBST([LIBCAP])
2247+m4trace:configure.ac:290: -1- AC_SUBST_TRACE([LIBCAP])
2248+m4trace:configure.ac:290: -1- m4_pattern_allow([^LIBCAP$])
2249+m4trace:configure.ac:292: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
2250+m4trace:configure.ac:292: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
2251+m4trace:configure.ac:292: -1- m4_pattern_allow([^LIB@&t@OBJS$])
2252+m4trace:configure.ac:292: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
2253+m4trace:configure.ac:292: -1- AC_SUBST_TRACE([LTLIBOBJS])
2254+m4trace:configure.ac:292: -1- m4_pattern_allow([^LTLIBOBJS$])
2255+m4trace:configure.ac:292: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
2256+m4trace:configure.ac:292: -1- AC_SUBST([am__EXEEXT_TRUE])
2257+m4trace:configure.ac:292: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE])
2258+m4trace:configure.ac:292: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
2259+m4trace:configure.ac:292: -1- AC_SUBST([am__EXEEXT_FALSE])
2260+m4trace:configure.ac:292: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE])
2261+m4trace:configure.ac:292: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
2262+m4trace:configure.ac:292: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
2263+m4trace:configure.ac:292: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
2264+m4trace:configure.ac:292: -1- AC_SUBST_TRACE([top_builddir])
2265+m4trace:configure.ac:292: -1- AC_SUBST_TRACE([top_build_prefix])
2266+m4trace:configure.ac:292: -1- AC_SUBST_TRACE([srcdir])
2267+m4trace:configure.ac:292: -1- AC_SUBST_TRACE([abs_srcdir])
2268+m4trace:configure.ac:292: -1- AC_SUBST_TRACE([top_srcdir])
2269+m4trace:configure.ac:292: -1- AC_SUBST_TRACE([abs_top_srcdir])
2270+m4trace:configure.ac:292: -1- AC_SUBST_TRACE([builddir])
2271+m4trace:configure.ac:292: -1- AC_SUBST_TRACE([abs_builddir])
2272+m4trace:configure.ac:292: -1- AC_SUBST_TRACE([abs_top_builddir])
2273+m4trace:configure.ac:292: -1- AC_SUBST_TRACE([INSTALL])
2274+m4trace:configure.ac:292: -1- AC_SUBST_TRACE([MKDIR_P])
2275diff --git a/checkopts b/checkopts
2276new file mode 100755
2277index 0000000..88e70b1
2278--- /dev/null
2279+++ b/checkopts
2280@@ -0,0 +1,253 @@
2281+#!/usr/bin/env python3
2282+#
2283+# Script to check for inconsistencies between documented mount options
2284+# and implemented kernel options.
2285+# Copyright (C) 2018 Aurelien Aptel (aaptel@suse.com)
2286+#
2287+# This program is free software; you can redistribute it and/or modify
2288+# it under the terms of the GNU General Public License as published by
2289+# the Free Software Foundation; either version 3 of the License, or
2290+# (at your option) any later version.
2291+#
2292+# This program is distributed in the hope that it will be useful,
2293+# but WITHOUT ANY WARRANTY; without even the implied warranty of
2294+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2295+# GNU General Public License for more details.
2296+#
2297+# You should have received a copy of the GNU General Public License
2298+# along with this program. If not, see <http://www.gnu.org/licenses/>.
2299+
2300+import os
2301+import sys
2302+import re
2303+import subprocess
2304+import argparse
2305+from pprint import pprint as P
2306+
2307+def extract_canonical_opts(s):
2308+ """
2309+ Return list of option names present in s.
2310+ e.g "opt1=a|opt2=d" => ["opt1", "opt2"])
2311+ """
2312+ opts = s.split("|")
2313+ res = []
2314+ for o in opts:
2315+ x = o.split("=")
2316+ res.append(x[0])
2317+ return res
2318+
2319+def extract_kernel_opts(fn):
2320+ STATE_BASE = 0
2321+ STATE_DEF = 1
2322+ STATE_USE = 2
2323+ STATE_EXIT = 3
2324+
2325+ state = STATE_BASE
2326+ fmt2enum = {}
2327+ enum2code = {}
2328+ code = ''
2329+ current_opt = ''
2330+ rx = RX()
2331+
2332+ def code_add(s):
2333+ if current_opt != '':
2334+ if current_opt not in enum2code:
2335+ enum2code[current_opt] = ''
2336+ enum2code[current_opt] += s
2337+
2338+ with open(fn) as f:
2339+ for s in f.readlines():
2340+ if state == STATE_EXIT:
2341+ break
2342+
2343+ elif state == STATE_BASE:
2344+ if rx.search(r'cifs_mount_option_tokens.*\{', s):
2345+ state = STATE_DEF
2346+ elif rx.search(r'^cifs_parse_mount_options', s):
2347+ state = STATE_USE
2348+
2349+ elif state == STATE_DEF:
2350+ if rx.search(r'(Opt_[a-zA-Z0-9_]+)\s*,\s*"([^"]+)"', s):
2351+ fmt = rx.group(2)
2352+ opts = extract_canonical_opts(fmt)
2353+ assert(len(opts) == 1)
2354+ name = opts[0]
2355+ fmt2enum[name] = {'enum':rx.group(1), 'fmt':fmt}
2356+ elif rx.search(r'^};', s):
2357+ state = STATE_BASE
2358+
2359+ elif state == STATE_USE:
2360+ if rx.search(r'^\s*case (Opt_[a-zA-Z0-9_]+)', s):
2361+ current_opt = rx.group(1)
2362+ elif current_opt != '' and rx.search(r'^\s*default:', s):
2363+ state = STATE_EXIT
2364+ else:
2365+ code_add(s)
2366+ return fmt2enum, enum2code
2367+
2368+def chomp(s):
2369+ if s[-1] == '\n':
2370+ return s[:-1]
2371+ return s
2372+
2373+def extract_man_opts(fn):
2374+ STATE_EXIT = 0
2375+ STATE_BASE = 1
2376+ STATE_OPT = 2
2377+
2378+ state = STATE_BASE
2379+ rx = RX()
2380+ opts = {}
2381+ ln = 0
2382+
2383+ with open(fn) as f:
2384+ for s in f.readlines():
2385+ ln += 1
2386+
2387+ if state == STATE_EXIT:
2388+ break
2389+
2390+ elif state == STATE_BASE:
2391+ if rx.search(r'^OPTION', s):
2392+ state = STATE_OPT
2393+
2394+ elif state == STATE_OPT:
2395+ if rx.search('^[a-z]', s) and len(s) < 50:
2396+ s = chomp(s)
2397+ names = extract_canonical_opts(s)
2398+ for name in names:
2399+ if name not in opts:
2400+ opts[name] = []
2401+ opts[name].append({'ln':ln, 'fmt':s})
2402+ elif rx.search(r'^[A-Z]+', s):
2403+ state = STATE_EXIT
2404+ return opts
2405+
2406+def format_code(s):
2407+ # remove common indent in the block
2408+ min_indent = None
2409+ for ln in s.split("\n"):
2410+ indent = 0
2411+ for c in ln:
2412+ if c == '\t': indent += 1
2413+ else: break
2414+ if min_indent is None:
2415+ min_indent = indent
2416+ elif indent > 0:
2417+ min_indent = min(indent, min_indent)
2418+ out = ''
2419+ lines = s.split("\n")
2420+ if lines[-1].strip() == '':
2421+ lines.pop()
2422+ for ln in lines:
2423+ out += "| %s\n" % ln[min_indent:]
2424+ return out
2425+
2426+def sortedset(s):
2427+ return sorted(list(s), key=lambda x: re.sub('^no', '', x))
2428+
2429+def opt_neg(opt):
2430+ if opt.startswith("no"):
2431+ return opt[2:]
2432+ else:
2433+ return "no"+opt
2434+
2435+def main():
2436+ ap = argparse.ArgumentParser(description="Cross-check mount options from cifs.ko/man page")
2437+ ap.add_argument("cfile", help="path to connect.c")
2438+ ap.add_argument("rstfile", help="path to mount.cifs.rst")
2439+ args = ap.parse_args()
2440+
2441+ fmt2enum, enum2code = extract_kernel_opts(args.cfile)
2442+ manopts = extract_man_opts(args.rstfile)
2443+
2444+ kernel_opts_set = set(fmt2enum.keys())
2445+ man_opts_set = set(manopts.keys())
2446+
2447+ def opt_alias_is_doc(o):
2448+ enum = fmt2enum[o]['enum']
2449+ aliases = []
2450+ for k,v in fmt2enum.items():
2451+ if k != o and v['enum'] == enum:
2452+ if opt_is_doc(k):
2453+ return k
2454+ return None
2455+
2456+ def opt_exists(o):
2457+ return o in fmt2enum
2458+
2459+ def opt_is_doc(o):
2460+ return o in manopts
2461+
2462+ print('DUPLICATED DOC OPTIONS')
2463+ print('======================')
2464+
2465+ for opt in sortedset(man_opts_set):
2466+ if len(manopts[opt]) > 1:
2467+ lines = ", ".join([str(x['ln']) for x in manopts[opt]])
2468+ print("OPTION %-20.20s (lines %s)"%(opt, lines))
2469+ print()
2470+
2471+ print('UNDOCUMENTED OPTIONS')
2472+ print('====================')
2473+
2474+ undoc_opts = kernel_opts_set - man_opts_set
2475+ # group opts and their negations together
2476+ for opt in sortedset(undoc_opts):
2477+ fmt = fmt2enum[opt]['fmt']
2478+ enum = fmt2enum[opt]['enum']
2479+ code = format_code(enum2code[enum])
2480+ neg = opt_neg(opt)
2481+
2482+ if enum == 'Opt_ignore':
2483+ print("# skipping %s (Opt_ignore)\n"%opt)
2484+ continue
2485+
2486+ if opt_exists(neg) and opt_is_doc(neg):
2487+ print("# skipping %s (%s is documented)\n"%(opt, neg))
2488+ continue
2489+
2490+ alias = opt_alias_is_doc(opt)
2491+ if alias:
2492+ print("# skipping %s (alias %s is documented)\n"%(opt, alias))
2493+ continue
2494+
2495+ print('OPTION %s ("%s" -> %s):\n%s'%(opt, fmt, enum, code))
2496+
2497+ print('')
2498+ print('DOCUMENTED BUT NON-EXISTING OPTIONS')
2499+ print('===================================')
2500+
2501+ unex_opts = man_opts_set - kernel_opts_set
2502+ # group opts and their negations together
2503+ for opt in sortedset(unex_opts):
2504+ man = manopts[opt][0]
2505+ print('OPTION %s ("%s") line %d' % (opt, man['fmt'], man['ln']))
2506+
2507+
2508+ print('')
2509+ print('NEGATIVE OPTIONS WITHOUT POSITIVE')
2510+ print('=================================')
2511+
2512+ for opt in sortedset(kernel_opts_set):
2513+ if not opt.startswith('no'):
2514+ continue
2515+
2516+ neg = opt[2:]
2517+ if not opt_exists(neg):
2518+ print("OPTION %s exists but not %s"%(opt,neg))
2519+
2520+# little helper to test AND store result at the same time so you can
2521+# do if/elsif easily instead of nesting them when you need to do
2522+# captures
2523+class RX:
2524+ def __init__(self):
2525+ pass
2526+ def search(self, rx, s, flags=0):
2527+ self.r = re.search(rx, s, flags)
2528+ return self.r
2529+ def group(self, n):
2530+ return self.r.group(n)
2531+
2532+if __name__ == '__main__':
2533+ main()
2534diff --git a/cifs.idmap.rst.in b/cifs.idmap.rst.in
2535index 91b585e..60d7f0a 100644
2536--- a/cifs.idmap.rst.in
2537+++ b/cifs.idmap.rst.in
2538@@ -11,124 +11,93 @@ Userspace helper for mapping ids for Common Internet File System (CIFS)
2539 SYNOPSIS
2540 ********
2541
2542-
2543-cifs.idmap [--help|-h] [--timeout|-t] [--version|-v] {keyid}
2544-
2545+ cifs.idmap [--help|-h] [--timeout|-t] [--version|-v] {keyid}
2546
2547 ***********
2548 DESCRIPTION
2549 ***********
2550
2551-
2552 This tool is part of the cifs-utils suite.
2553
2554-\ **cifs.idmap**\ is a userspace helper program for the linux CIFS client
2555+``cifs.idmap`` is a userspace helper program for the linux CIFS client
2556 filesystem. There are a number of activities that the kernel cannot
2557 easily do itself. This program is a callout program that does these
2558 things for the kernel and then returns the result.
2559
2560-\ **cifs.idmap**\ is generally intended to be run when the kernel calls
2561+``cifs.idmap`` is generally intended to be run when the kernel calls
2562 request-key(8) for a particular key type. While it can be run
2563 directly from the command-line, it is not generally intended to be run
2564 that way.
2565
2566-This program is only called if a share is mounted with the \ **cifsacl**\
2567+This program is only called if a share is mounted with the ``cifsacl``
2568 mount option. The kernel will only upcall to do this conversion if
2569 that mount option is specified.
2570
2571-\ **cifs.idmap**\ relies on a plugin to handle the ID mapping. If it can't
2572+``cifs.idmap`` relies on a plugin to handle the ID mapping. If it can't
2573 find the plugin then it will not work properly. The plugin (or a
2574 symlink to it) must be at @pluginpath@.
2575
2576-In the case where \ **cifs.idmap**\ or the plugin are unavailable, file
2577+In the case where ``cifs.idmap`` or the plugin are unavailable, file
2578 objects in a mounted share are assigned uid and gid of the credentials
2579 of the process that mounted the share. It is strongly recomemended to
2580 use mount options of uid and gid to specify a default uid and gid to
2581 map owner SIDs and group SIDs in this situation.
2582
2583-
2584 *******
2585 OPTIONS
2586 *******
2587
2588+--help|-h
2589+ Print the usage message and exit.
2590
2591+--timeout|-t
2592+ Set the expiration timer, in seconds on the key. The default is 600
2593+ seconds (10 minutes). Setting this to 0 will cause the key to never
2594+ expire.
2595
2596-\ **--help|-h**\
2597-
2598- Print the usage message and exit.
2599-
2600-
2601-
2602-\ **--timeout|-t**\
2603-
2604- Set the expiration timer, in seconds on the key. The default is 600
2605- seconds (10 minutes). Setting this to 0 will cause the key to never
2606- expire.
2607-
2608-
2609-
2610-\ **--version|-v**\
2611-
2612- Print version number and exit.
2613-
2614-
2615-
2616+--version|-v
2617+ Print version number and exit.
2618
2619 ************************
2620 CONFIGURATION FOR KEYCTL
2621 ************************
2622
2623-
2624-\ **cifs.idmap**\ is designed to be called from the kernel via the
2625+``cifs.idmap`` is designed to be called from the kernel via the
2626 request-key callout program. This requires that request-key be told
2627-where and how to call this program. Currently \ **cifs.idmap**\ handles a
2628-key type of:
2629+where and how to call this program. Currently ``cifs.idmap`` handles a
2630+key type of::
2631
2632+ cifs.idmap
2633
2634-\ **cifs.idmap**\
2635-
2636- This keytype is for mapping a SID to either an uid or a gid
2637-
2638-
2639+This keytype is for mapping a SID to either an uid or a gid.
2640
2641 To make this program useful for CIFS, you will need to set up entry for it in
2642-request-key.conf(5). Here is an example of an entry for this key type:
2643-
2644-
2645-.. code-block:: perl
2646+request-key.conf(5). Here is an example of an entry for this key type::
2647
2648 #OPERATION TYPE D C PROGRAM ARG1 ARG2...
2649 #========= ============= = = ================================
2650 create cifs.idmap * * @sbindir@/cifs.idmap %k
2651
2652-
2653 See request-key.conf(5) for more info on each field.
2654
2655-
2656 *****
2657 NOTES
2658 *****
2659
2660-
2661 Support for upcalls to cifs.idmap was initially introduced in the 3.0
2662 kernel.
2663
2664-
2665 ********
2666 SEE ALSO
2667 ********
2668
2669-
2670 request-key.conf(5), mount.cifs(8)
2671
2672-
2673 ******
2674 AUTHOR
2675 ******
2676
2677-
2678 Shirish Pargaonkar wrote the cifs.idmap program.
2679
2680 The Linux CIFS Mailing list is the preferred place to ask questions
2681 regarding these programs.
2682-
2683diff --git a/cifs.upcall.c b/cifs.upcall.c
2684index 89563fd..1559434 100644
2685--- a/cifs.upcall.c
2686+++ b/cifs.upcall.c
2687@@ -63,6 +63,8 @@
2688 static krb5_context context;
2689 static const char *prog = "cifs.upcall";
2690
2691+#define DNS_RESOLVER_DEFAULT_TIMEOUT 600 /* 10 minutes */
2692+
2693 typedef enum _sectype {
2694 NONE = 0,
2695 KRB5,
2696@@ -124,6 +126,7 @@ drop_all_capabilities(void)
2697 static int
2698 trim_capabilities(bool unused)
2699 {
2700+ (void)unused;
2701 return 0;
2702 }
2703
2704@@ -749,19 +752,48 @@ decode_key_description(const char *desc, struct decoded_args *arg)
2705 return retval;
2706 }
2707
2708-static int cifs_resolver(const key_serial_t key, const char *key_descr)
2709+static int setup_key(const key_serial_t key, const void *data, size_t datalen)
2710+{
2711+ int rc;
2712+
2713+ rc = keyctl_instantiate(key, data, datalen, 0);
2714+ if (rc) {
2715+ switch (errno) {
2716+ case ENOMEM:
2717+ case EDQUOT:
2718+ rc = keyctl_clear(key);
2719+ if (rc) {
2720+ syslog(LOG_ERR, "%s: keyctl_clear: %s",
2721+ __func__, strerror(errno));
2722+ return rc;
2723+ }
2724+ rc = keyctl_instantiate(key, data, datalen, 0);
2725+ break;
2726+ default:
2727+ ;
2728+ }
2729+ }
2730+ if (rc) {
2731+ syslog(LOG_ERR, "%s: keyctl_instantiate: %s",
2732+ __func__, strerror(errno));
2733+ }
2734+ return rc;
2735+}
2736+
2737+static int cifs_resolver(const key_serial_t key, const char *key_descr,
2738+ const char *key_buf, unsigned expire_time)
2739 {
2740 int c;
2741 struct addrinfo *addr;
2742 char ip[INET6_ADDRSTRLEN];
2743 void *p;
2744- const char *keyend = key_descr;
2745+ const char *keyend = key_buf;
2746 /* skip next 4 ';' delimiters to get to description */
2747 for (c = 1; c <= 4; c++) {
2748 keyend = index(keyend + 1, ';');
2749 if (!keyend) {
2750 syslog(LOG_ERR, "invalid key description: %s",
2751- key_descr);
2752+ key_buf);
2753 return 1;
2754 }
2755 }
2756@@ -787,15 +819,21 @@ static int cifs_resolver(const key_serial_t key, const char *key_descr)
2757 return 1;
2758 }
2759
2760- /* setup key */
2761- c = keyctl_instantiate(key, ip, strlen(ip) + 1, 0);
2762- if (c == -1) {
2763- syslog(LOG_ERR, "%s: keyctl_instantiate: %s", __func__,
2764+ /* needed for keyctl_set_timeout() */
2765+ request_key("keyring", key_descr, NULL, KEY_SPEC_THREAD_KEYRING);
2766+
2767+ c = setup_key(key, ip, strlen(ip) + 1);
2768+ if (c) {
2769+ freeaddrinfo(addr);
2770+ return 1;
2771+ }
2772+ c = keyctl_set_timeout(key, expire_time);
2773+ if (c) {
2774+ syslog(LOG_ERR, "%s: keyctl_set_timeout: %s", __func__,
2775 strerror(errno));
2776 freeaddrinfo(addr);
2777 return 1;
2778 }
2779-
2780 freeaddrinfo(addr);
2781 return 0;
2782 }
2783@@ -864,7 +902,7 @@ lowercase_string(char *c)
2784
2785 static void usage(void)
2786 {
2787- fprintf(stderr, "Usage: %s [ -K /path/to/keytab] [-k /path/to/krb5.conf] [-E] [-t] [-v] [-l] key_serial\n", prog);
2788+ fprintf(stderr, "Usage: %s [ -K /path/to/keytab] [-k /path/to/krb5.conf] [-E] [-t] [-v] [-l] [-e nsecs] key_serial\n", prog);
2789 }
2790
2791 static const struct option long_options[] = {
2792@@ -874,6 +912,7 @@ static const struct option long_options[] = {
2793 {"trust-dns", 0, NULL, 't'},
2794 {"keytab", 1, NULL, 'K'},
2795 {"version", 0, NULL, 'v'},
2796+ {"expire", 1, NULL, 'e'},
2797 {NULL, 0, NULL, 0}
2798 };
2799
2800@@ -897,13 +936,15 @@ int main(const int argc, char *const argv[])
2801 char *env_cachename = NULL;
2802 krb5_ccache ccache = NULL;
2803 struct passwd *pw;
2804+ unsigned expire_time = DNS_RESOLVER_DEFAULT_TIMEOUT;
2805+ const char *key_descr = NULL;
2806
2807 hostbuf[0] = '\0';
2808 memset(&arg, 0, sizeof(arg));
2809
2810 openlog(prog, 0, LOG_DAEMON);
2811
2812- while ((c = getopt_long(argc, argv, "cEk:K:ltv", long_options, NULL)) != -1) {
2813+ while ((c = getopt_long(argc, argv, "cEk:K:ltve:", long_options, NULL)) != -1) {
2814 switch (c) {
2815 case 'c':
2816 /* legacy option -- skip it */
2817@@ -931,6 +972,9 @@ int main(const int argc, char *const argv[])
2818 rc = 0;
2819 printf("version: %s\n", VERSION);
2820 goto out;
2821+ case 'e':
2822+ expire_time = strtoul(optarg, NULL, 10);
2823+ break;
2824 default:
2825 syslog(LOG_ERR, "unknown option: %c", c);
2826 goto out;
2827@@ -965,9 +1009,12 @@ int main(const int argc, char *const argv[])
2828
2829 syslog(LOG_DEBUG, "key description: %s", buf);
2830
2831- if ((strncmp(buf, "cifs.resolver", sizeof("cifs.resolver") - 1) == 0) ||
2832- (strncmp(buf, "dns_resolver", sizeof("dns_resolver") - 1) == 0)) {
2833- rc = cifs_resolver(key, buf);
2834+ if (strncmp(buf, "cifs.resolver", sizeof("cifs.resolver") - 1) == 0)
2835+ key_descr = ".cifs.resolver";
2836+ else if (strncmp(buf, "dns_resolver", sizeof("dns_resolver") - 1) == 0)
2837+ key_descr = ".dns_resolver";
2838+ if (key_descr) {
2839+ rc = cifs_resolver(key, key_descr, buf, expire_time);
2840 goto out;
2841 }
2842
2843@@ -1193,16 +1240,8 @@ retry_new_hostname:
2844 memcpy(&(keydata->data) + keydata->sesskey_len,
2845 secblob.data, secblob.length);
2846
2847- /* setup key */
2848- rc = keyctl_instantiate(key, keydata, datalen, 0);
2849- if (rc == -1) {
2850- syslog(LOG_ERR, "keyctl_instantiate: %s", strerror(errno));
2851- goto out;
2852- }
2853+ rc = setup_key(key, keydata, datalen);
2854
2855- /* BB: maybe we need use timeout for key: for example no more then
2856- * ticket lifietime? */
2857- /* keyctl_set_timeout( key, 60); */
2858 out:
2859 /*
2860 * on error, negatively instantiate the key ourselves so that we can
2861diff --git a/cifs.upcall.rst.in b/cifs.upcall.rst.in
2862index 8f4ee62..08ce324 100644
2863--- a/cifs.upcall.rst.in
2864+++ b/cifs.upcall.rst.in
2865@@ -7,178 +7,134 @@ Userspace upcall helper for Common Internet File System (CIFS)
2866 --------------------------------------------------------------
2867 :Manual section: 8
2868
2869-
2870 ********
2871 SYNOPSIS
2872 ********
2873
2874-.. code-block:: perl
2875-
2876- cifs.upcall [--trust-dns|-t] [--version|-v] [--legacy-uid|-l]
2877- [--krb5conf=/path/to/krb5.conf|-k /path/to/krb5.conf]
2878- [--keytab=/path/to/keytab|-K /path/to/keytab] {keyid}
2879-
2880-
2881+ cifs.upcall [--trust-dns|-t] [--version|-v] [--legacy-uid|-l]
2882+ [--krb5conf=/path/to/krb5.conf|-k /path/to/krb5.conf]
2883+ [--keytab=/path/to/keytab|-K /path/to/keytab] [--expire|-e nsecs] {keyid}
2884
2885 ***********
2886 DESCRIPTION
2887 ***********
2888
2889-
2890 This tool is part of the cifs-utils suite.
2891
2892-\ **cifs.upcall**\ is a userspace helper program for the linux CIFS client
2893+``cifs.upcall`` is a userspace helper program for the linux CIFS client
2894 filesystem. There are a number of activities that the kernel cannot
2895 easily do itself. This program is a callout program that does these
2896 things for the kernel and then returns the result.
2897
2898-\ **cifs.upcall**\ is generally intended to be run when the kernel calls
2899+``cifs.upcall`` is generally intended to be run when the kernel calls
2900 request-key(8) for a particular key type. While it can be run
2901 directly from the command-line, it's not generally intended to be run
2902 that way.
2903
2904-
2905 *******
2906 OPTIONS
2907 *******
2908
2909-
2910-
2911-\ **-c**\
2912-
2913- This option is deprecated and is currently ignored.
2914-
2915-
2916-
2917-\ **--no-env-probe|-E**\
2918-
2919- Normally, \ **cifs.upcall**\ will probe the environment variable space of
2920- the process that initiated the upcall in order to fetch the value of
2921- \ ``$KRB5CCNAME``\ . This can assist the program with finding credential
2922- caches in non-default locations. If this option is set, then the
2923- program won't do this and will rely on finding credcaches in the
2924- default locations specified in \ *krb5.conf*\ . Note that this is never
2925- performed when the uid is 0. The default credcache location is always
2926- used when the uid is 0, regardless of the environment variable setting
2927- in the process.
2928-
2929-
2930-
2931-\ **--krb5conf|-k=/path/to/krb5.conf**\
2932-
2933- This option allows administrators to set an alternate location for the
2934- \ *krb5.conf*\ file that \ **cifs.upcall**\ will use.
2935-
2936-
2937-
2938-\ **--keytab=|-K=/path/to/keytab**\
2939-
2940- This option allows administrators to specify a keytab file to be
2941- used. When a user has no credential cache already established,
2942- \ **cifs.upcall**\ will attempt to use this keytab to acquire them. The
2943- default is the system-wide keytab \ */etc/krb5.keytab*\ .
2944-
2945-
2946-
2947-\ **--trust-dns|-t**\
2948-
2949- With krb5 upcalls, the name used as the host portion of the service
2950- principal defaults to the hostname portion of the UNC. This option
2951- allows the upcall program to reverse resolve the network address of
2952- the server in order to get the hostname.
2953-
2954- This is less secure than not trusting DNS. When using this option,
2955- it's possible that an attacker could get control of DNS and trick the
2956- client into mounting a different server altogether. It's preferable to
2957- instead add server principals to the KDC for every possible hostname,
2958- but this option exists for cases where that isn't possible. The
2959- default is to not trust reverse hostname lookups in this fashion.
2960-
2961-
2962-
2963-\ **--legacy-uid|-l**\
2964-
2965- Traditionally, the kernel has sent only a single uid= parameter to the
2966- upcall for the SPNEGO upcall that's used to determine what user's
2967- credential cache to use. This parameter is affected by the \ **uid=**\
2968- mount option, which also governs the ownership of files on the mount.
2969-
2970- Newer kernels send a creduid= option as well, which contains what uid
2971- it thinks actually owns the credentials that it's looking for. At
2972- mount time, this is generally set to the real uid of the user doing
2973- the mount. For multisession mounts, it's set to the fsuid of the mount
2974- user. Set this option if you want cifs.upcall to use the older \ **uid=**\
2975- parameter instead of the creduid= parameter.
2976-
2977-
2978-
2979-\ **--version|-v**\
2980-
2981- Print version number and exit.
2982-
2983-
2984-
2985+-c
2986+ This option is deprecated and is currently ignored.
2987+
2988+--no-env-probe|-E
2989+ Normally, ``cifs.upcall`` will probe the environment variable space of
2990+ the process that initiated the upcall in order to fetch the value of
2991+ ``$KRB5CCNAME``. This can assist the program with finding credential
2992+ caches in non-default locations. If this option is set, then the
2993+ program won't do this and will rely on finding credcaches in the
2994+ default locations specified in *krb5.conf*. Note that this is never
2995+ performed when the uid is 0. The default credcache location is always
2996+ used when the uid is 0, regardless of the environment variable setting
2997+ in the process.
2998+
2999+--krb5conf|-k=/path/to/krb5.conf
3000+ This option allows administrators to set an alternate location for the
3001+ *krb5.conf* file that ``cifs.upcall`` will use.
3002+
3003+--keytab=|-K=/path/to/keytab
3004+ This option allows administrators to specify a keytab file to be
3005+ used. When a user has no credential cache already established,
3006+ ``cifs.upcall`` will attempt to use this keytab to acquire them. The
3007+ default is the system-wide keytab */etc/krb5.keytab*.
3008+
3009+--trust-dns|-t
3010+ With krb5 upcalls, the name used as the host portion of the service
3011+ principal defaults to the hostname portion of the UNC. This option
3012+ allows the upcall program to reverse resolve the network address of
3013+ the server in order to get the hostname.
3014+
3015+ This is less secure than not trusting DNS. When using this option,
3016+ it's possible that an attacker could get control of DNS and trick the
3017+ client into mounting a different server altogether. It's preferable to
3018+ instead add server principals to the KDC for every possible hostname,
3019+ but this option exists for cases where that isn't possible. The
3020+ default is to not trust reverse hostname lookups in this fashion.
3021+
3022+--legacy-uid|-l
3023+ Traditionally, the kernel has sent only a single uid= parameter to the
3024+ upcall for the SPNEGO upcall that's used to determine what user's
3025+ credential cache to use. This parameter is affected by the uid=
3026+ mount option, which also governs the ownership of files on the mount.
3027+
3028+ Newer kernels send a creduid= option as well, which contains what uid
3029+ it thinks actually owns the credentials that it's looking for. At
3030+ mount time, this is generally set to the real uid of the user doing
3031+ the mount. For multisession mounts, it's set to the fsuid of the mount
3032+ user. Set this option if you want cifs.upcall to use the older uid=
3033+ parameter instead of the creduid= parameter.
3034+
3035+--expire|-e
3036+ Override default timeout value (600 seconds) for ``dns_resolver`` key.
3037+
3038+--version|-v
3039+ Print version number and exit.
3040
3041 ************************
3042 CONFIGURATION FOR KEYCTL
3043 ************************
3044
3045-
3046-\ **cifs.upcall**\ is designed to be called from the kernel via the
3047+``cifs.upcall`` is designed to be called from the kernel via the
3048 request-key callout program. This requires that request-key be told
3049-where and how to call this program. The current \ **cifs.upcall**\
3050+where and how to call this program. The current ``cifs.upcall``
3051 program handles two different key types:
3052
3053+cifs.spnego
3054+ This keytype is for retrieving kerberos session keys
3055+
3056+dns_resolver
3057+ This key type is for resolving hostnames into IP addresses. Support
3058+ for this key type may eventually be deprecated (see below).
3059+
3060+ To make this program useful for CIFS, you'll need to set up entries
3061+ for them in request-key.conf(5). Here's an example of an entry for
3062+ each key type::
3063
3064-\ **cifs.spnego**\
3065-
3066- This keytype is for retrieving kerberos session keys
3067-
3068-
3069-
3070-\ **dns_resolver**\
3071-
3072- This key type is for resolving hostnames into IP addresses. Support
3073- for this key type may eventually be deprecated (see below).
3074-
3075- To make this program useful for CIFS, you'll need to set up entries
3076- for them in request-key.conf(5). Here's an example of an entry for
3077- each key type:
3078-
3079-
3080- .. code-block:: perl
3081-
3082 #OPERATION TYPE D C PROGRAM ARG1 ARG2...
3083 #========= ============= = = ================================
3084 create cifs.spnego * * @sbindir@/cifs.upcall %k
3085 create dns_resolver * * @sbindir@/cifs.upcall %k
3086-
3087-
3088- See request-key.conf(5) for more info on each field.
3089-
3090- The keyutils package has also started including a dns_resolver
3091- handling program as well that is preferred over the one in
3092- \ **cifs.upcall.**\ If you are using a keyutils version equal to or
3093- greater than 1.5, you should use \ ``key.dns_resolver``\ to handle the
3094- \ ``dns_resolver``\ keytype instead of \ **cifs.upcall**\ . See
3095- key.dns_resolver(8) for more info.
3096-
3097
3098+ See request-key.conf(5) for more info on each field.
3099
3100+ The keyutils package has also started including a dns_resolver
3101+ handling program as well that is preferred over the one in
3102+ ``cifs.upcall``. If you are using a keyutils version equal to or
3103+ greater than 1.5, you should use ``key.dns_resolver`` to handle the
3104+ ``dns_resolver`` keytype instead of ``cifs.upcall``. See
3105+ key.dns_resolver(8) for more info.
3106
3107 ********
3108 SEE ALSO
3109 ********
3110
3111-
3112 request-key.conf(5), mount.cifs(8), key.dns_resolver(8)
3113
3114-
3115 ******
3116 AUTHOR
3117 ******
3118
3119-
3120 Igor Mammedov wrote the cifs.upcall program.
3121
3122 Jeff Layton authored this manpage.
3123@@ -187,4 +143,3 @@ The maintainer of the Linux CIFS VFS is Steve French.
3124
3125 The Linux CIFS Mailing list is the preferred place to ask questions
3126 regarding these programs.
3127-
3128diff --git a/cifscreds.rst b/cifscreds.rst
3129index 5c2a195..a6676cb 100644
3130--- a/cifscreds.rst
3131+++ b/cifscreds.rst
3132@@ -5,125 +5,91 @@ cifscreds
3133 -----------------------------------------
3134 manage NTLM credentials in kernel keyring
3135 -----------------------------------------
3136-
3137 :Manual section: 1
3138
3139 ********
3140 SYNOPSIS
3141 ********
3142
3143-
3144-cifscreds add|clear|clearall|update [-u username] [-d] host|domain
3145-
3146+ cifscreds add|clear|clearall|update [-u username] [-d] host|domain
3147
3148 ***********
3149 DESCRIPTION
3150 ***********
3151
3152-
3153-The \ **cifscreds**\ program is a tool for managing credentials (username
3154+The ``cifscreds`` program is a tool for managing credentials (username
3155 and password) for the purpose of establishing sessions in multiuser
3156 mounts.
3157
3158 When a cifs filesystem is mounted with the "multiuser" option, and does
3159 not use krb5 authentication, it needs to be able to get the credentials
3160-for each user from somewhere. The \ **cifscreds**\ program is the tool used
3161+for each user from somewhere. The ``cifscreds`` program is the tool used
3162 to provide these credentials to the kernel.
3163
3164 The first non-option argument to cifscreds is a command (see the
3165-\ **COMMANDS**\ section below). The second non-option argument is a hostname
3166+`COMMANDS`_ section below). The second non-option argument is a hostname
3167 or address, or an NT domain name.
3168
3169-
3170 ********
3171 COMMANDS
3172 ********
3173
3174+add
3175+ Add credentials to the kernel to be used for connecting to the given
3176+ server, or servers in the given domain.
3177
3178+clear
3179+ Clear credentials for a particular host or domain from the kernel.
3180
3181-\ **add**\
3182-
3183- Add credentials to the kernel to be used for connecting to the given server, or servers in the given domain.
3184-
3185-
3186-
3187-\ **clear**\
3188-
3189- Clear credentials for a particular host or domain from the kernel.
3190-
3191-
3192-
3193-\ **clearall**\
3194-
3195- Clear all cifs credentials from the kernel.
3196-
3197-
3198-
3199-\ **update**\
3200-
3201- Update stored credentials in the kernel with a new username and
3202- password.
3203-
3204-
3205+clearall
3206+ Clear all cifs credentials from the kernel.
3207
3208+update
3209+ Update stored credentials in the kernel with a new username and
3210+ password.
3211
3212 *******
3213 OPTIONS
3214 *******
3215
3216+-d, --domain
3217+ The provided host/domain argument is a NT domainname.
3218
3219+ Ordinarily the second argument provided to cifscreds is treated as a
3220+ hostname or IP address. This option causes the cifscreds program to
3221+ treat that argument as an NT domainname instead.
3222
3223-\ **-d**\ , \ **--domain**\
3224-
3225- The provided host/domain argument is a NT domainname.
3226-
3227- Ordinarily the second argument provided to cifscreds is treated as a
3228- hostname or IP address. This option causes the cifscreds program to
3229- treat that argument as an NT domainname instead.
3230-
3231- If there are not host specific credentials for the mounted server, then
3232- the kernel will next look for a set of domain credentials equivalent to
3233- the domain= option provided at mount time.
3234-
3235-
3236-
3237-\ **-u**\ , \ **--username**\
3238-
3239- Ordinarily, the username is derived from the unix username of the user
3240- adding the credentials. This option allows the user to substitute a
3241- different username.
3242-
3243-
3244+ If there are not host specific credentials for the mounted server, then
3245+ the kernel will next look for a set of domain credentials equivalent to
3246+ the domain= option provided at mount time.
3247
3248+-u, --username
3249+ Ordinarily, the username is derived from the unix username of the user
3250+ adding the credentials. This option allows the user to substitute a
3251+ different username.
3252
3253 *****
3254 NOTES
3255 *****
3256
3257-
3258 The cifscreds utility requires a kernel built with support for the
3259-\ **login**\ key type. That key type was added in v3.3 in mainline Linux
3260+``login`` key type. That key type was added in v3.3 in mainline Linux
3261 kernels.
3262
3263-Since \ **cifscreds**\ adds keys to the session keyring, it is highly
3264-recommended that one use \ **pam_keyinit**\ to ensure that a session keyring
3265+Since ``cifscreds`` adds keys to the session keyring, it is highly
3266+recommended that one use ``pam_keyinit`` to ensure that a session keyring
3267 is established at login time.
3268
3269-
3270 ********
3271 SEE ALSO
3272 ********
3273
3274-
3275 pam_keyinit(8)
3276
3277-
3278 *******
3279 AUTHORS
3280 *******
3281
3282-
3283 The cifscreds program was originally developed by Igor Druzhinin
3284 <jaxbrigs@gmail.com>. This manpage and a redesign of the code was done
3285 by Jeff Layton <jlayton@samba.org>.
3286-
3287diff --git a/configure b/configure
3288index 99edfb4..25af5fd 100755
3289--- a/configure
3290+++ b/configure
3291@@ -1,6 +1,6 @@
3292 #! /bin/sh
3293 # Guess values for system-dependent variables and create Makefiles.
3294-# Generated by GNU Autoconf 2.69 for cifs-utils 6.8.
3295+# Generated by GNU Autoconf 2.69 for cifs-utils 6.9.
3296 #
3297 # Report bugs to <linux-cifs@vger.kernel.org>.
3298 #
3299@@ -580,8 +580,8 @@ MAKEFLAGS=
3300 # Identity of this package.
3301 PACKAGE_NAME='cifs-utils'
3302 PACKAGE_TARNAME='cifs-utils'
3303-PACKAGE_VERSION='6.8'
3304-PACKAGE_STRING='cifs-utils 6.8'
3305+PACKAGE_VERSION='6.9'
3306+PACKAGE_STRING='cifs-utils 6.9'
3307 PACKAGE_BUGREPORT='linux-cifs@vger.kernel.org'
3308 PACKAGE_URL='https://wiki.samba.org/index.php/LinuxCIFS_utils'
3309
3310@@ -630,6 +630,8 @@ CONFIG_PLUGIN_FALSE
3311 CONFIG_PLUGIN_TRUE
3312 CONFIG_PAM_FALSE
3313 CONFIG_PAM_TRUE
3314+CONFIG_SMBINFO_FALSE
3315+CONFIG_SMBINFO_TRUE
3316 CONFIG_CIFSACL_FALSE
3317 CONFIG_CIFSACL_TRUE
3318 CONFIG_CIFSIDMAP_FALSE
3319@@ -759,6 +761,7 @@ enable_cifsupcall
3320 enable_cifscreds
3321 enable_cifsidmap
3322 enable_cifsacl
3323+enable_smbinfo
3324 enable_pam
3325 enable_systemd
3326 enable_man
3327@@ -1332,7 +1335,7 @@ if test "$ac_init_help" = "long"; then
3328 # Omit some internal or obsolete options to make the list less imposing.
3329 # This message is too long to be a string in the A/UX 3.1 sh.
3330 cat <<_ACEOF
3331-\`configure' configures cifs-utils 6.8 to adapt to many kinds of systems.
3332+\`configure' configures cifs-utils 6.9 to adapt to many kinds of systems.
3333
3334 Usage: $0 [OPTION]... [VAR=VALUE]...
3335
3336@@ -1403,7 +1406,7 @@ fi
3337
3338 if test -n "$ac_init_help"; then
3339 case $ac_init_help in
3340- short | recursive ) echo "Configuration of cifs-utils 6.8:";;
3341+ short | recursive ) echo "Configuration of cifs-utils 6.9:";;
3342 esac
3343 cat <<\_ACEOF
3344
3345@@ -1420,6 +1423,7 @@ Optional Features:
3346 --enable-cifscreds Create cifscreds utility [default=yes]
3347 --enable-cifsidmap Create cifs.idmap binary [default=yes]
3348 --enable-cifsacl Create get/set cifsacl binary [default=yes]
3349+ --enable-smbinfo Create smbinfo binary [default=yes@@
3350 --enable-pam Create cifscreds PAM module [default=yes]
3351 --enable-systemd Enable systemd specific behavior for mount.cifs
3352 [default=yes]
3353@@ -1529,7 +1533,7 @@ fi
3354 test -n "$ac_init_help" && exit $ac_status
3355 if $ac_init_version; then
3356 cat <<\_ACEOF
3357-cifs-utils configure 6.8
3358+cifs-utils configure 6.9
3359 generated by GNU Autoconf 2.69
3360
3361 Copyright (C) 2012 Free Software Foundation, Inc.
3362@@ -1998,7 +2002,7 @@ cat >config.log <<_ACEOF
3363 This file contains any messages produced by compilers while
3364 running configure, to aid debugging if configure makes a mistake.
3365
3366-It was created by cifs-utils $as_me 6.8, which was
3367+It was created by cifs-utils $as_me 6.9, which was
3368 generated by GNU Autoconf 2.69. Invocation command line was
3369
3370 $ $0 $@
3371@@ -2868,7 +2872,7 @@ fi
3372
3373 # Define the identity of the package.
3374 PACKAGE='cifs-utils'
3375- VERSION='6.8'
3376+ VERSION='6.9'
3377
3378
3379 cat >>confdefs.h <<_ACEOF
3380@@ -3011,6 +3015,14 @@ else
3381 fi
3382
3383
3384+# Check whether --enable-smbinfo was given.
3385+if test "${enable_smbinfo+set}" = set; then :
3386+ enableval=$enable_smbinfo; enable_smbinfo=$enableval
3387+else
3388+ enable_smbinfo="maybe"
3389+fi
3390+
3391+
3392 # Check whether --enable-pam was given.
3393 if test "${enable_pam+set}" = set; then :
3394 enableval=$enable_pam; enable_pam=$enableval
3395@@ -6002,8 +6014,10 @@ fi
3396
3397 # if docs are not disabled, check if rst2man is available
3398 if test $enable_man != "no"; then
3399- # Extract the first word of "rst2man", so it can be a program name with args.
3400-set dummy rst2man; ac_word=$2
3401+ for ac_prog in rst2man-3.6 rst2man-3.4 rst2man-3 rst2man.py rst2man
3402+do
3403+ # Extract the first word of "$ac_prog", so it can be a program name with args.
3404+set dummy $ac_prog; ac_word=$2
3405 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
3406 $as_echo_n "checking for $ac_word... " >&6; }
3407 if ${ac_cv_prog_have_rst2man+:} false; then :
3408@@ -6019,7 +6033,7 @@ do
3409 test -z "$as_dir" && as_dir=.
3410 for ac_exec_ext in '' $ac_executable_extensions; do
3411 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3412- ac_cv_prog_have_rst2man="yes"
3413+ ac_cv_prog_have_rst2man="$ac_prog"
3414 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
3415 break 2
3416 fi
3417@@ -6027,7 +6041,6 @@ done
3418 done
3419 IFS=$as_save_IFS
3420
3421- test -z "$ac_cv_prog_have_rst2man" && ac_cv_prog_have_rst2man="no"
3422 fi
3423 fi
3424 have_rst2man=$ac_cv_prog_have_rst2man
3425@@ -6040,12 +6053,16 @@ $as_echo "no" >&6; }
3426 fi
3427
3428
3429+ test -n "$have_rst2man" && break
3430+done
3431+test -n "$have_rst2man" || have_rst2man="no"
3432+
3433 if test $have_rst2man = "no"; then
3434 if test $enable_man = "yes"; then
3435- as_fn_error $? "rst2man not found: cannot generate man pages, consider installing perl." "$LINENO" 5
3436+ as_fn_error $? "rst2man not found: cannot generate man pages, consider installing python{2,3}-docutils." "$LINENO" 5
3437 else
3438- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: rst2man not found: cannot generate man pages, consider installing perl. Disabling man page generation." >&5
3439-$as_echo "$as_me: WARNING: rst2man not found: cannot generate man pages, consider installing perl. Disabling man page generation." >&2;}
3440+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: rst2man not found: cannot generate man pages, consider installing python{2,3}-docutils. Disabling man page generation." >&5
3441+$as_echo "$as_me: WARNING: rst2man not found: cannot generate man pages, consider installing python{2,3}-docutils. Disabling man page generation." >&2;}
3442 enable_man="no"
3443 fi
3444 else
3445@@ -6109,6 +6126,14 @@ else
3446 CONFIG_CIFSACL_FALSE=
3447 fi
3448
3449+ if test "$enable_smbinfo" != "no"; then
3450+ CONFIG_SMBINFO_TRUE=
3451+ CONFIG_SMBINFO_FALSE='#'
3452+else
3453+ CONFIG_SMBINFO_TRUE='#'
3454+ CONFIG_SMBINFO_FALSE=
3455+fi
3456+
3457 if test "$enable_pam" != "no"; then
3458 CONFIG_PAM_TRUE=
3459 CONFIG_PAM_FALSE='#'
3460@@ -6379,6 +6404,10 @@ if test -z "${CONFIG_CIFSACL_TRUE}" && test -z "${CONFIG_CIFSACL_FALSE}"; then
3461 as_fn_error $? "conditional \"CONFIG_CIFSACL\" was never defined.
3462 Usually this means the macro was only invoked conditionally." "$LINENO" 5
3463 fi
3464+if test -z "${CONFIG_SMBINFO_TRUE}" && test -z "${CONFIG_SMBINFO_FALSE}"; then
3465+ as_fn_error $? "conditional \"CONFIG_SMBINFO\" was never defined.
3466+Usually this means the macro was only invoked conditionally." "$LINENO" 5
3467+fi
3468 if test -z "${CONFIG_PAM_TRUE}" && test -z "${CONFIG_PAM_FALSE}"; then
3469 as_fn_error $? "conditional \"CONFIG_PAM\" was never defined.
3470 Usually this means the macro was only invoked conditionally." "$LINENO" 5
3471@@ -6784,7 +6813,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
3472 # report actual input values of CONFIG_FILES etc. instead of their
3473 # values after options handling.
3474 ac_log="
3475-This file was extended by cifs-utils $as_me 6.8, which was
3476+This file was extended by cifs-utils $as_me 6.9, which was
3477 generated by GNU Autoconf 2.69. Invocation command line was
3478
3479 CONFIG_FILES = $CONFIG_FILES
3480@@ -6851,7 +6880,7 @@ _ACEOF
3481 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
3482 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
3483 ac_cs_version="\\
3484-cifs-utils config.status 6.8
3485+cifs-utils config.status 6.9
3486 configured by $0, generated by GNU Autoconf 2.69,
3487 with options \\"\$ac_cs_config\\"
3488
3489diff --git a/configure.ac b/configure.ac
3490index b0bc2b9..cc48563 100644
3491--- a/configure.ac
3492+++ b/configure.ac
3493@@ -1,7 +1,7 @@
3494 # -*- Autoconf -*-
3495 # Process this file with autoconf to produce a configure script.
3496
3497-AC_INIT([cifs-utils],[6.8],[linux-cifs@vger.kernel.org],[cifs-utils],[https://wiki.samba.org/index.php/LinuxCIFS_utils])
3498+AC_INIT([cifs-utils],[6.9],[linux-cifs@vger.kernel.org],[cifs-utils],[https://wiki.samba.org/index.php/LinuxCIFS_utils])
3499 AC_CONFIG_SRCDIR([data_blob.h])
3500 AC_CONFIG_HEADERS([config.h])
3501 AC_CONFIG_FILES([Makefile contrib/Makefile contrib/request-key.d/Makefile])
3502@@ -40,6 +40,11 @@ AC_ARG_ENABLE(cifsacl,
3503 enable_cifsacl=$enableval,
3504 enable_cifsacl="maybe")
3505
3506+AC_ARG_ENABLE(smbinfo,
3507+ [AS_HELP_STRING([--enable-smbinfo],[Create smbinfo binary @<:@default=yes@@])],
3508+ enable_smbinfo=$enableval,
3509+ enable_smbinfo="maybe")
3510+
3511 AC_ARG_ENABLE(pam,
3512 [AS_HELP_STRING([--enable-pam],[Create cifscreds PAM module @<:@default=yes@:>@])],
3513 enable_pam=$enableval,
3514@@ -252,12 +257,12 @@ fi
3515
3516 # if docs are not disabled, check if rst2man is available
3517 if test $enable_man != "no"; then
3518- AC_CHECK_PROG(have_rst2man, rst2man, yes, no)
3519+ AC_CHECK_PROGS(have_rst2man, rst2man-3.6 rst2man-3.4 rst2man-3 rst2man.py rst2man, no)
3520 if test $have_rst2man = "no"; then
3521 if test $enable_man = "yes"; then
3522- AC_MSG_ERROR([rst2man not found: cannot generate man pages, consider installing perl.])
3523+ AC_MSG_ERROR([rst2man not found: cannot generate man pages, consider installing python{2,3}-docutils.])
3524 else
3525- AC_MSG_WARN([rst2man not found: cannot generate man pages, consider installing perl. Disabling man page generation.])
3526+ AC_MSG_WARN([rst2man not found: cannot generate man pages, consider installing python{2,3}-docutils. Disabling man page generation.])
3527 enable_man="no"
3528 fi
3529 else
3530@@ -275,6 +280,7 @@ AM_CONDITIONAL(CONFIG_CIFSUPCALL, [test "$enable_cifsupcall" != "no"])
3531 AM_CONDITIONAL(CONFIG_CIFSCREDS, [test "$enable_cifscreds" != "no"])
3532 AM_CONDITIONAL(CONFIG_CIFSIDMAP, [test "$enable_cifsidmap" != "no"])
3533 AM_CONDITIONAL(CONFIG_CIFSACL, [test "$enable_cifsacl" != "no"])
3534+AM_CONDITIONAL(CONFIG_SMBINFO, [test "$enable_smbinfo" != "no"])
3535 AM_CONDITIONAL(CONFIG_PAM, [test "$enable_pam" != "no"])
3536 AM_CONDITIONAL(CONFIG_PLUGIN, [test "$enable_cifsidmap" != "no" -o "$enable_cifsacl" != "no"])
3537
3538diff --git a/debian/changelog b/debian/changelog
3539index bb072ea..f769a50 100644
3540--- a/debian/changelog
3541+++ b/debian/changelog
3542@@ -1,3 +1,9 @@
3543+cifs-utils (2:6.9-0ubuntu1) eoan; urgency=medium
3544+
3545+ * New upstream version: 6.9 (LP: #1831292)
3546+
3547+ -- Andreas Hasenack <andreas@canonical.com> Mon, 17 Jun 2019 13:47:42 +0000
3548+
3549 cifs-utils (2:6.8-2) unstable; urgency=medium
3550
3551 * Drop Depends: samba-common (Closes: #901654)
3552diff --git a/debian/control b/debian/control
3553index 6c156ec..0f3b7bc 100644
3554--- a/debian/control
3555+++ b/debian/control
3556@@ -1,7 +1,8 @@
3557 Source: cifs-utils
3558 Section: otherosfs
3559 Priority: optional
3560-Maintainer: Debian Samba Maintainers <pkg-samba-maint@lists.alioth.debian.org>
3561+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
3562+XSBC-Original-Maintainer: Debian Samba Maintainers <pkg-samba-maint@lists.alioth.debian.org>
3563 Uploaders: Steve Langasek <vorlon@debian.org>, Noèl Köthe <noel@debian.org>, Jelmer Vernooij <jelmer@debian.org>, Mathieu Parent <sathieu@debian.org>
3564 Build-Depends: debhelper (>= 11),
3565 libkeyutils-dev,
3566diff --git a/getcifsacl.c b/getcifsacl.c
3567index f08cdea..fc78881 100644
3568--- a/getcifsacl.c
3569+++ b/getcifsacl.c
3570@@ -40,6 +40,7 @@
3571
3572 static void *plugin_handle;
3573 static bool plugin_loaded;
3574+static char *execname;
3575
3576 static void
3577 print_each_ace_mask(uint32_t mask)
3578@@ -331,6 +332,8 @@ getcifsacl_usage(const char *prog)
3579 prog);
3580 fprintf(stderr, "Usage: %s [option] <file_name>\n", prog);
3581 fprintf(stderr, "Valid options:\n");
3582+ fprintf(stderr, "\t-h Display this help text\n");
3583+ fprintf(stderr, "\n");
3584 fprintf(stderr, "\t-v Version of the program\n");
3585 fprintf(stderr, "\n");
3586 fprintf(stderr, "\t-r Display raw values of the ACE fields\n");
3587@@ -345,8 +348,15 @@ main(const int argc, char *const argv[])
3588 ssize_t attrlen;
3589 size_t bufsize = BUFSIZE;
3590 char *filename, *attrval;
3591+ execname = basename(argv[0]);
3592
3593- while ((c = getopt_long(argc, argv, "r:v", NULL, NULL)) != -1) {
3594+ if (argc < 2) {
3595+ fprintf(stderr, "%s: you must specify a filename.\n", execname);
3596+ printf("Try `getcifsacl -h' for more information.\n");
3597+ goto out;
3598+ }
3599+
3600+ while ((c = getopt_long(argc, argv, "rhv", NULL, NULL)) != -1) {
3601 switch (c) {
3602 case 'v':
3603 printf("Version: %s\n", VERSION);
3604@@ -355,18 +365,17 @@ main(const int argc, char *const argv[])
3605 raw = true;
3606 break;
3607 default:
3608- break;
3609+ getcifsacl_usage(execname);
3610+ goto out;
3611 }
3612 }
3613
3614- if (raw && argc == 3)
3615- filename = argv[2];
3616- else if (argc == 2)
3617- filename = argv[1];
3618- else {
3619- getcifsacl_usage(basename(argv[0]));
3620+ if (optind >= argc) {
3621+ printf("you must specify a filename after options.\n");
3622+ printf("Usage: getcifsacl [option] <file_name>\n");
3623 goto out;
3624- }
3625+ } else
3626+ filename = argv[optind];
3627
3628 if (!raw && !plugin_loaded) {
3629 ret = init_plugin(&plugin_handle);
3630@@ -398,8 +407,12 @@ cifsacl:
3631 free(attrval);
3632 bufsize += BUFSIZE;
3633 goto cifsacl;
3634- } else
3635- printf("getxattr error: %d\n", errno);
3636+ } else {
3637+ fprintf(stderr, "getxattr failed on %s: %s\n", filename, strerror(errno) );
3638+ free(attrval);
3639+ ret = -1;
3640+ goto out;
3641+ }
3642 }
3643
3644 parse_sec_desc((struct cifs_ntsd *)attrval, attrlen, raw);
3645diff --git a/getcifsacl.rst.in b/getcifsacl.rst.in
3646index 42af258..21a10cd 100644
3647--- a/getcifsacl.rst.in
3648+++ b/getcifsacl.rst.in
3649@@ -7,80 +7,60 @@ Userspace helper to display an ACL in a security descriptor for Common Internet
3650 --------------------------------------------------------------------------------------------------
3651 :Manual section: 1
3652
3653-
3654 ********
3655 SYNOPSIS
3656 ********
3657
3658-
3659-getcifsacl [-v|-r] {file system object}
3660-
3661+ getcifsacl [-v|-r] {file system object}
3662
3663 ***********
3664 DESCRIPTION
3665 ***********
3666
3667-
3668 This tool is part of the cifs-utils suite.
3669
3670-getcifsacl is a userspace helper program for the Linux CIFS client
3671+``getcifsacl`` is a userspace helper program for the Linux CIFS client
3672 file system. It is intended to display a security descriptor including
3673 ACL for a file system object.
3674
3675 This program uses a plugin to handle the mapping of SIDs to user and
3676-group names. \ *@pluginpath@*\ should be a symlink that points to the
3677+group names. *@pluginpath@* should be a symlink that points to the
3678 correct plugin to use.
3679
3680 Fields of an ACE such as SID, type, flags, and mask are displayed
3681-separated by /. Numeric values of type, flags, and mask are displayed
3682+separated by /. Numeric values of type, flags, and mask are displayed
3683 in hexadecimal format.
3684
3685-
3686 *******
3687 OPTIONS
3688 *******
3689
3690+-v
3691+ Print version number and exit.
3692
3693-
3694-\ **-v**\
3695-
3696- Print version number and exit.
3697-
3698-
3699-
3700-\ **-r**\
3701-
3702- Display a security descriptor in raw mode. Values such as type and
3703- flags are displayed in hexadecimal format, a SID is not mapped to a
3704- name.
3705-
3706-
3707-
3708+-r
3709+ Display a security descriptor in raw mode. Values such as type and
3710+ flags are displayed in hexadecimal format, a SID is not mapped to a
3711+ name.
3712
3713 *****
3714 NOTES
3715 *****
3716
3717-
3718 Kernel support for getcifsacl/setcifsacl utilities was initially
3719 introduced in the 2.6.37 kernel.
3720
3721-
3722 ********
3723 SEE ALSO
3724 ********
3725
3726-
3727 mount.cifs(8), setcifsacl(1)
3728
3729-
3730 ******
3731 AUTHOR
3732 ******
3733
3734-
3735 Shirish Pargaonkar wrote the getcifsacl program.
3736
3737 The Linux CIFS Mailing list is the preferred place to ask questions
3738 regarding these programs.
3739-
3740diff --git a/idmapwb.rst.in b/idmapwb.rst.in
3741index 4d7fd62..c03e4ca 100644
3742--- a/idmapwb.rst.in
3743+++ b/idmapwb.rst.in
3744@@ -7,31 +7,28 @@ winbind ID mapping plugin for cifs-utils
3745 ----------------------------------------
3746 :Manual section: 8
3747
3748-
3749 ***********
3750 DESCRIPTION
3751 ***********
3752
3753-
3754 This plugin allows the utilities in cifs-utils to work in conjuction with
3755 the winbind facility of Samba suite. It handles several functions including
3756 mapping UID and GID to SIDs and vice versa.
3757
3758 Utilities are usually configured to use the correct plugin by creating a
3759-symlink at @pluginpath@ that points to the correct plugin that you wish
3760+symlink at *@pluginpath@* that points to the correct plugin that you wish
3761 to use.
3762
3763-This plugin requires that \ **winbindd(8)**\ be properly configured and running.
3764+This plugin requires that winbindd(8) be properly configured and running.
3765
3766-
3767-*******************************************************************************
3768+********
3769 SEE ALSO
3770-*******************************************************************************
3771-getcifsacl(1), setcifsacl(1), cifs.idmap(8), samba(7), smb.conf(5), winbindd(8)
3772-
3773+********
3774
3775+getcifsacl(1), setcifsacl(1), cifs.idmap(8), samba(7), smb.conf(5), winbindd(8)
3776
3777-*****************************************************************
3778+******
3779 AUTHOR
3780-*****************************************************************
3781+******
3782+
3783 idmapwb.so was written by Jeff Layton <jlayton@samba.org>
3784diff --git a/mount.cifs.c b/mount.cifs.c
3785index ae7a899..b3235e4 100644
3786--- a/mount.cifs.c
3787+++ b/mount.cifs.c
3788@@ -43,6 +43,7 @@
3789 #include <limits.h>
3790 #include <paths.h>
3791 #include <libgen.h>
3792+#include <time.h>
3793 #include <sys/mman.h>
3794 #include <sys/wait.h>
3795 #ifdef HAVE_SYS_FSUID_H
3796@@ -161,10 +162,16 @@
3797 #define OPT_BKUPUID 30
3798 #define OPT_BKUPGID 31
3799 #define OPT_NOFAIL 32
3800+#define OPT_SNAPSHOT 33
3801
3802 #define MNT_TMP_FILE "/.mtab.cifs.XXXXXX"
3803
3804-/* struct for holding parsed mount info for use by privleged process */
3805+#define GMT_NAME_LEN 24 /* length of a @GMT- name */
3806+#define GMT_FORMAT "@GMT-%Y.%m.%d-%H.%M.%S"
3807+
3808+#define NTFS_TIME_OFFSET ((unsigned long long)(369*365 + 89) * 24 * 3600 * 10000000)
3809+
3810+/* struct for holding parsed mount info for use by privileged process */
3811 struct parsed_mount_info {
3812 unsigned long flags;
3813 char host[NI_MAXHOST + 1];
3814@@ -267,22 +274,32 @@ static int mount_usage(FILE * stream)
3815 fprintf(stream,
3816 "\n\tsep=<char>,iocharset=<codepage>,suid,nosuid,exec,noexec,serverino,");
3817 fprintf(stream,
3818- "\n\tmapchars,nomapchars,nolock,servernetbiosname=<SRV_RFC1001NAME>");
3819+ "\n\tnoserverino,mapchars,nomapchars,nolock,servernetbiosname=<SRV_RFC1001NAME>");
3820+ fprintf(stream,
3821+ "\n\tcache=<strict|none|loose>,nounix,cifsacl,sec=<authentication mechanism>,");
3822+ fprintf(stream,
3823+ "\n\tsign,seal,fsc,snapshot=<token|time>,nosharesock,persistenthandles,");
3824 fprintf(stream,
3825- "\n\tdirectio,nounix,cifsacl,sec=<authentication mechanism>,sign,seal,fsc");
3826+ "\n\tresilienthandles,rdma,vers=<smb_dialect>,cruid");
3827 fprintf(stream,
3828 "\n\nOptions not needed for servers supporting CIFS Unix extensions");
3829 fprintf(stream,
3830 "\n\t(e.g. unneeded for mounts to most Samba versions):");
3831 fprintf(stream,
3832- "\n\tuid=<uid>,gid=<gid>,dir_mode=<mode>,file_mode=<mode>,sfu");
3833+ "\n\tuid=<uid>,gid=<gid>,dir_mode=<mode>,file_mode=<mode>,sfu,");
3834+ fprintf(stream,
3835+ "\n\tmfsymlinks,idsfromsid");
3836 fprintf(stream, "\n\nRarely used options:");
3837 fprintf(stream,
3838 "\n\tport=<tcpport>,rsize=<size>,wsize=<size>,unc=<unc_name>,ip=<ip_address>,");
3839 fprintf(stream,
3840 "\n\tdev,nodev,nouser_xattr,netbiosname=<OUR_RFC1001NAME>,hard,soft,intr,");
3841 fprintf(stream,
3842- "\n\tnointr,ignorecase,noposixpaths,noacl,prefixpath=<path>,nobrl");
3843+ "\n\tnointr,ignorecase,noposixpaths,noacl,prefixpath=<path>,nobrl,");
3844+ fprintf(stream,
3845+ "\n\techo_interval=<seconds>,actimeo=<seconds>,max_credits=<credits>,");
3846+ fprintf(stream,
3847+ "\n\tbsize=<size>");
3848 fprintf(stream,
3849 "\n\nOptions are described in more detail in the manual page");
3850 fprintf(stream, "\n\tman 8 mount.cifs\n");
3851@@ -763,6 +780,8 @@ static int parse_opt_token(const char *token)
3852 return OPT_NOFAIL;
3853 if (strncmp(token, "x-", 2) == 0)
3854 return OPT_IGNORE;
3855+ if (strncmp(token, "snapshot", 8) == 0)
3856+ return OPT_SNAPSHOT;
3857
3858 return OPT_ERROR;
3859 }
3860@@ -783,16 +802,19 @@ parse_options(const char *data, struct parsed_mount_info *parsed_info)
3861 int got_uid = 0;
3862 int got_cruid = 0;
3863 int got_gid = 0;
3864+ int got_snapshot = 0;
3865 uid_t uid, cruid = 0, bkupuid = 0;
3866 gid_t gid, bkupgid = 0;
3867 char *ep;
3868 struct passwd *pw;
3869 struct group *gr;
3870 /*
3871- * max 32-bit uint in decimal is 4294967295 which is 10 chars wide
3872- * +1 for NULL, and +1 for good measure
3873+ * max 64-bit uint in decimal is 18446744073709551615 which is 20 chars
3874+ * wide +1 for NULL, and +1 for good measure
3875 */
3876- char txtbuf[12];
3877+ char txtbuf[22];
3878+ unsigned long long snapshot;
3879+ struct tm tm;
3880
3881 /* make sure we're starting from beginning */
3882 out[0] = '\0';
3883@@ -1120,6 +1142,19 @@ parse_options(const char *data, struct parsed_mount_info *parsed_info)
3884 case OPT_NOFAIL:
3885 parsed_info->nofail = 1;
3886 goto nocopy;
3887+ case OPT_SNAPSHOT:
3888+ if (!value || !*value)
3889+ goto nocopy;
3890+ if (strncmp(value, "@GMT-", 5))
3891+ break;
3892+ if ((strlen(value) != GMT_NAME_LEN) ||
3893+ (strptime(value, GMT_FORMAT, &tm) == NULL)) {
3894+ fprintf(stderr, "bad snapshot token\n");
3895+ return EX_USAGE;
3896+ }
3897+ snapshot = timegm(&tm) * 10000000 + NTFS_TIME_OFFSET;
3898+ got_snapshot = 1;
3899+ goto nocopy;
3900 }
3901
3902 /* check size before copying option to buffer */
3903@@ -1215,7 +1250,7 @@ nocopy:
3904 if (got_bkupgid) {
3905 word_len = snprintf(txtbuf, sizeof(txtbuf), "%u", bkupgid);
3906
3907- /* comma + "backkupgid=" + terminating NULL == 12 */
3908+ /* comma + "backupgid=" + terminating NULL == 12 */
3909 if (out_len + word_len + 12 > MAX_OPTIONS_LEN) {
3910 fprintf(stderr, "Options string too long\n");
3911 return EX_USAGE;
3912@@ -1227,6 +1262,21 @@ nocopy:
3913 }
3914 snprintf(out + out_len, word_len + 11, "backupgid=%s", txtbuf);
3915 }
3916+ if (got_snapshot) {
3917+ word_len = snprintf(txtbuf, sizeof(txtbuf), "%llu", snapshot);
3918+
3919+ /* comma + "snapshot=" + terminating NULL == 11 */
3920+ if (out_len + word_len + 11 > MAX_OPTIONS_LEN) {
3921+ fprintf(stderr, "Options string too long\n");
3922+ return EX_USAGE;
3923+ }
3924+
3925+ if (out_len) {
3926+ strlcat(out, ",", MAX_OPTIONS_LEN);
3927+ out_len++;
3928+ }
3929+ snprintf(out + out_len, word_len + 11, "snapshot=%s", txtbuf);
3930+ }
3931
3932 return 0;
3933 }
3934@@ -2099,6 +2149,10 @@ mount_retry:
3935 switch (errno) {
3936 case ECONNREFUSED:
3937 case EHOSTUNREACH:
3938+ if (currentaddress) {
3939+ fprintf(stderr, "mount error(%d): could not connect to %s",
3940+ errno, currentaddress);
3941+ }
3942 currentaddress = nextaddress;
3943 if (currentaddress) {
3944 nextaddress = strchr(currentaddress, ',');
3945@@ -2110,6 +2164,12 @@ mount_retry:
3946 fprintf(stderr,
3947 "mount error: %s filesystem not supported by the system\n", cifs_fstype);
3948 break;
3949+ case EHOSTDOWN:
3950+ fprintf(stderr,
3951+ "mount error: Server abruptly closed the connection.\n"
3952+ "This can happen if the server does not support the SMB version you are trying to use.\n"
3953+ "The default SMB version recently changed from SMB1 to SMB2.1 and above. Try mounting with vers=1.0.\n");
3954+ break;
3955 case ENXIO:
3956 if (!already_uppercased &&
3957 uppercase_string(parsed_info->host) &&
3958@@ -2126,7 +2186,7 @@ mount_retry:
3959 strerror(errno));
3960 fprintf(stderr,
3961 "Refer to the %s(8) manual page (e.g. man "
3962- "%s)\n", thisprogram, thisprogram);
3963+ "%s) and kernel log messages (dmesg)\n", thisprogram, thisprogram);
3964 rc = EX_FAIL;
3965 goto mount_exit;
3966 }
3967diff --git a/mount.cifs.rst b/mount.cifs.rst
3968index a81c6c4..ee5086c 100644
3969--- a/mount.cifs.rst
3970+++ b/mount.cifs.rst
3971@@ -15,13 +15,13 @@ SYNOPSIS
3972
3973 This tool is part of the cifs-utils suite.
3974
3975-``mount.cifs`` mounts a Linux CIFS filesystem. It is usually invoked
3976-indirectly by the mount(8) command when using the "-t cifs"
3977+``mount.cifs`` mounts a CIFS or SMB3 filesystem from Linux. It is
3978+usually invoked indirectly by the mount(8) command when using the "-t cifs"
3979 option. This command only works in Linux, and the kernel must support
3980-the cifs filesystem. The CIFS protocol is the successor to the SMB
3981-protocol and is supported by most Windows servers and many other
3982-commercial servers and Network Attached Storage appliances as well as
3983-by the popular Open Source server Samba.
3984+the cifs filesystem. The SMB3 protocol is the successor to the CIFS (SMB)
3985+protocol and is supported by most Windows servers, Azure (cloud storage),
3986+Macs and many other commercial servers and Network Attached Storage
3987+appliances as well as by the popular Open Source server Samba.
3988
3989 The mount.cifs utility attaches the UNC name (exported network
3990 resource) specified as service (using ``//server/share`` syntax, where
3991@@ -47,7 +47,6 @@ unmounted (usually via the ``umount`` utility).
3992 OPTIONS
3993 *******
3994
3995-
3996 username=arg|user=arg
3997 specifies the username to connect as. If this is not
3998 given, then the environment variable USER is used.
3999@@ -84,9 +83,9 @@ credentials=filename|cred=filename
4000 password=value
4001 domain=value
4002
4003- This is preferred over having passwords in plaintext in a shared file,
4004- such as ``/etc/fstab`` . Be sure to protect any credentials file
4005- properly.
4006+ This is preferred over having passwords in plaintext in a shared file,
4007+ such as */etc/fstab* . Be sure to protect any credentials file
4008+ properly.
4009
4010 uid=arg
4011 sets the uid that will own all files or directories on the mounted
4012@@ -124,6 +123,11 @@ forcegid
4013 of the gid= option. See the section on `FILE AND DIRECTORY OWNERSHIP
4014 AND PERMISSIONS`_ below for more information.
4015
4016+idsfromsid
4017+ Extract uid/gid from special SID instead of mapping it. See the
4018+ section on `FILE AND DIRECTORY OWNERSHIP AND PERMISSIONS`_ below for
4019+ more information.
4020+
4021 port=arg
4022 sets the port number on which the client will attempt to contact the
4023 CIFS server. If this value is specified, look for an existing
4024@@ -134,23 +138,20 @@ port=arg
4025 try to connect on port 445 first and then port 139 if that
4026 fails. Return an error if both fail.
4027
4028-servernetbiosname=arg
4029- Specify the server netbios name (RFC1001 name) to use when attempting
4030- to setup a session to the server. Although rarely needed for mounting
4031+netbiosname=arg
4032+ When mounting to servers via port 139, specifies the RFC1001 source
4033+ name to use to represent the client netbios machine during the netbios
4034+ session initialization.
4035+
4036+servern=arg
4037+ Similar to ``netbiosname`` except it specifies the netbios name of
4038+ the server instead of the client. Although rarely needed for mounting
4039 to newer servers, this option is needed for mounting to some older
4040 servers (such as OS/2 or Windows 98 and Windows ME) since when
4041 connecting over port 139 they, unlike most newer servers, do not
4042 support a default server name. A server name can be up to 15
4043 characters long and is usually uppercased.
4044
4045-servern=arg
4046- Synonym for ``servernetbiosname``
4047-
4048-netbiosname=arg
4049- When mounting to servers via port 139, specifies the RFC1001 source
4050- name to use to represent the client netbios machine name when doing
4051- the RFC1001 netbios session initialize.
4052-
4053 file_mode=arg
4054 If the server does not support the CIFS Unix extensions this overrides
4055 the default file mode.
4056@@ -165,7 +166,14 @@ ip=arg|addr=arg
4057 rarely needs to be specified by the user.
4058
4059 domain=arg|dom=arg|workgroup=arg
4060- sets the domain (workgroup) of the user.
4061+ Sets the domain (workgroup) of the user. If no domains are given,
4062+ the empty domain will be used. Use ``domainauto`` to automatically
4063+ guess the domain of the server you are connecting to.
4064+
4065+domainauto
4066+ When using NTLM authentication and not providing a domain via
4067+ ``domain``, guess the domain from the server NTLM challenge.
4068+ This behavior used to be the default on kernels older than 2.6.36.
4069
4070 guest
4071 don't prompt for a password.
4072@@ -238,31 +246,32 @@ cache=arg
4073 The default in kernels prior to 3.7 was ``loose``. As of kernel 3.7 the
4074 default is ``strict``.
4075
4076-directio
4077- Do not do inode data caching on files opened on this mount. This
4078- precludes mmaping files on this mount. In some cases with fast
4079- networks and little or no caching benefits on the client (e.g. when
4080- the application is doing large sequential reads bigger than page size
4081- without rereading the same data) this can provide better performance
4082- than the default behavior which caches reads (readahead) and writes
4083- (writebehind) through the local Linux client pagecache if oplock
4084- (caching token) is granted and held. Note that direct allows write
4085- operations larger than page size to be sent to the server. On some
4086- kernels this requires the cifs.ko module to be built with the
4087- ``CIFS_EXPERIMENTAL`` configure option.
4088-
4089- This option is will be deprecated in 3.7. Users should use
4090- ``cache=none`` instead on more recent kernels.
4091-
4092-strictcache
4093- Use for switching on strict cache mode. In this mode the client reads
4094- from the cache all the time it has *Oplock Level II* , otherwise -
4095- read from the server. As for write - the client stores a data in the
4096- cache in *Exclusive Oplock* case, otherwise - write directly to the
4097- server.
4098-
4099- This option is will be deprecated in 3.7. Users should use
4100- ``cache=strict`` instead on more recent kernels.
4101+nostrictsync
4102+ Do not ask the server to flush on fsync().
4103+ Some servers perform non-buffered writes by default in which case
4104+ flushing is redundant. In workloads where a client is performing a
4105+ lot of small write + fsync combinations and where network latency is
4106+ much higher than the server latency, this brings a 2x performance
4107+ improvement.
4108+ This option is also a good candidate in scenarios where we want
4109+ performance over consistency.
4110+
4111+handlecache
4112+ (default) In SMB2 and above, the client often has to open the root
4113+ of the share (empty path) in various places during mount, path
4114+ revalidation and the statfs(2) system call. This option cuts
4115+ redundant round trip traffic (opens and closes) by simply keeping
4116+ the directory handle for the root around once opened.
4117+
4118+nohandlecache
4119+ Disable caching of the share root directory handle.
4120+
4121+handletimeout=arg
4122+ The time (in milliseconds) for which the server should reserve the handle after
4123+ a failover waiting for the client to reconnect. When mounting with
4124+ resilienthandles or persistenthandles mount option, or when their use is
4125+ requested by the server (continuous availability shares) then this parameter
4126+ overrides the server default handle timeout (which for most servers is 120 seconds).
4127
4128 rwpidforward
4129 Forward pid of a process who opened a file to any read or write
4130@@ -274,7 +283,7 @@ mapchars
4131 including the colon, question mark, pipe, asterik, greater than and
4132 less than characters) to the remap range (above 0xF000), which also
4133 allows the CIFS client to recognize files created with such characters
4134- by Windows's POSIX emulation. This can also be useful when mounting to
4135+ by Windows's Services for Mac. This can also be useful when mounting to
4136 most versions of Samba (which also forbids creating and opening files
4137 whose names contain any of these seven characters). This has no effect
4138 if the server does not support Unicode on the wire. Please note that
4139@@ -284,6 +293,10 @@ mapchars
4140 nomapchars
4141 (default) Do not translate any of these seven characters.
4142
4143+mapposix
4144+ Translate reserved characters similarly to ``mapchars`` but use the
4145+ mapping from Microsoft "Services For Unix".
4146+
4147 intr
4148 currently unimplemented.
4149
4150@@ -358,8 +371,35 @@ sec=arg
4151 automatically if it's enabled in */proc/fs/cifs/SecurityFlags*.
4152
4153 seal
4154- Request encryption at the SMB layer. Encryption is only supported in
4155- SMBv3 and above. The encryption algorithm used is AES-128-CCM.
4156+ Request encryption at the SMB layer. The encryption algorithm used
4157+ is AES-128-CCM. Requires SMB3 or above (see ``vers``).
4158+
4159+rdma
4160+ Connect directly to the server using SMB Direct via a RDMA
4161+ adapter. Requires SMB3 or above (see ``vers``).
4162+
4163+resilienthandles
4164+ Enable resilient handles. If the server supports it, keep opened
4165+ files across reconnections. Requires SMB2.1 (see ``vers``).
4166+
4167+noresilienthandles
4168+ (default) Disable resilient handles.
4169+
4170+persistenthandles
4171+ Enable persistent handles. If the server supports it, keep opened
4172+ files across reconnections. Persistent handles are also valid across
4173+ servers in a cluster and have stronger guarantees than resilient
4174+ handles. Requires SMB3 or above (see ``vers``).
4175+
4176+nopersistenthandles
4177+ (default) Disable persistent handles.
4178+
4179+snapshot=time
4180+ Mount a specific snapshot of the remote share. ``time`` must be a
4181+ positive integer identifying the snapshot requested (in 100-nanosecond
4182+ units that have elapsed since January 1, 1601, or alternatively it can
4183+ be specified in GMT format e.g. @GMT-2019.03.27-20.52.19). Supported
4184+ in the Linux kernel starting from v4.19.
4185
4186 nobrl
4187 Do not send byte range lock requests to the server. This is necessary
4188@@ -367,8 +407,15 @@ nobrl
4189 range locks (and most cifs servers do not yet support requesting
4190 advisory byte range locks).
4191
4192+forcemandatorylock
4193+ Do not use POSIX locks even when available via unix
4194+ extensions. Always use cifs style mandatory locks.
4195+
4196+locallease
4197+ Check cached leases locally instead of querying the server.
4198+
4199 sfu
4200- When the CIFS Unix Extensions are not negotiated, attempt to create
4201+ When the CIFS or SMB3 Unix Extensions are not negotiated, attempt to create
4202 device files and fifos in a format compatible with Services for Unix
4203 (SFU). In addition retrieve bits 10-12 of the mode via the
4204 ``SETFILEBITS`` extended attribute (as SFU does). In the future the
4205@@ -417,8 +464,12 @@ noserverino
4206
4207 See section `INODE NUMBERS`_ for more information.
4208
4209-nounix
4210- Disable the CIFS Unix Extensions for this mount. This can be useful in
4211+posix|unix|linux
4212+ (default) Enable Unix Extensions for this mount. Requires CIFS
4213+ (vers=1.0) or SMB3.1.1 (vers=3.1.1) and a server supporting them.
4214+
4215+noposix|nounix|nolinux
4216+ Disable the Unix Extensions for this mount. This can be useful in
4217 order to turn off multiple settings at once. This includes POSIX acls,
4218 POSIX locks, POSIX paths, symlink support and retrieving
4219 uids/gids/mode from the server. This can also be useful to work around
4220@@ -430,33 +481,51 @@ nouser_xattr
4221 Do not allow getfattr/setfattr to get/set xattrs, even if server would
4222 support it otherwise. The default is for xattr support to be enabled.
4223
4224+nodfs
4225+ Do not follow Distributed FileSystem referrals. IO on a file not
4226+ stored on the server will fail instead of connecting to the target
4227+ server transparently.
4228+
4229+noautotune
4230+ Use fixed size for kernel recv/send socket buffers.
4231+
4232+nosharesock
4233+ Do not try to reuse sockets if the system is already connected to
4234+ the server via an existing mount point. This will make the client
4235+ always make a new connection to the server no matter what he is
4236+ already connected to. This can be useful in simulating multiple
4237+ clients connecting to the same server, as each mount point
4238+ will use a different TCP socket.
4239+
4240+noblocksend
4241+ Send data on the socket using non blocking operations (MSG_DONTWAIT flag).
4242+
4243 rsize=bytes
4244 Maximum amount of data that the kernel will request in a read request
4245- in bytes. Prior to kernel 3.2.0, the default was 16k, and the maximum
4246- size was limited by the ``CIFSMaxBufSize`` module parameter. As of
4247- kernel 3.2.0, the behavior varies according to whether POSIX
4248- extensions are enabled on the mount and the server supports large
4249- POSIX reads. If they are, then the default is 1M, and the maximum is
4250- 16M. If they are not supported by the server, then the default is 60k
4251- and the maximum is around 127k. The reason for the 60k is because it's
4252- the maximum size read that windows servers can fill. Note that this
4253- value is a maximum, and the client may settle on a smaller size to
4254- accommodate what the server supports. In kernels prior to 3.2.0, no
4255- negotiation is performed.
4256+ in bytes. Maximum size that servers will accept is typically 8MB for SMB3
4257+ or later dialects. Default requested during mount is 4MB. Prior to the 4.20
4258+ kernel the default requested was 1MB. Prior to the SMB2.1 dialect the
4259+ maximum was usually 64K.
4260
4261 wsize=bytes
4262 Maximum amount of data that the kernel will send in a write request in
4263- bytes. Prior to kernel 3.0.0, the default and maximum was 57344 (14 \*
4264- 4096 pages). As of 3.0.0, the default depends on whether the client
4265- and server negotiate large writes via POSIX extensions. If they do,
4266- then the default is 1M, and the maximum allowed is 16M. If they do
4267- not, then the default is 65536 and the maximum allowed is 131007. Note
4268- that this value is just a starting point for negotiation in 3.0.0 and
4269- up. The client and server may negotiate this size downward according
4270- to the server's capabilities. In kernels prior to 3.0.0, no
4271- negotiation is performed. It can end up with an existing superblock if
4272- this value isn't specified or it's greater or equal than the existing
4273- one.
4274+ bytes. Maximum size that servers will accept is typically 8MB for SMB3
4275+ or later dialects. Default requested during mount is 4MB. Prior to the 4.20
4276+ kernel the default requested was 1MB. Prior to the SMB2.1 dialect the
4277+ maximum was usually 64K.
4278+
4279+bsize=bytes
4280+ Override the default blocksize (1MB) reported on SMB3 files (requires
4281+ kernel version of 5.1 or later). Prior to kernel version 5.1, the
4282+ blocksize was always reported as 16K instead of 1MB (and was not
4283+ configurable) which can hurt the performance of tools like cp and scp
4284+ (especially for uncached I/O) which decide on the read and write size
4285+ to use for file copies based on the inode blocksize. bsize may not be
4286+ less than 16K or greater than 16M.
4287+
4288+max_credits=n
4289+ Maximum credits the SMB2 client can have. Default is 32000. Must be
4290+ set to a number between 20 and 60000.
4291
4292 fsc
4293 Enable local disk caching using FS-Cache for CIFS. This option could
4294@@ -533,7 +602,13 @@ vers=arg
4295 different dialect (2.000) that is not supported.
4296 - 2.1 - The SMBv2.1 protocol that was introduced in Microsoft Windows 7 and Windows Server 2008R2.
4297 - 3.0 - The SMBv3.0 protocol that was introduced in Microsoft Windows 8 and Windows Server 2012.
4298- - 3.1.1 or 3.11 - The SMBv3.1.1 protocol that was introduced in Microsoft Windows Server 2016.
4299+ - 3.02 or 3.0.2 - The SMBv3.0.2 protocol that was introduced in Microsoft Windows 8.1 and Windows Server 2012R2.
4300+ - 3.1.1 or 3.11 - The SMBv3.1.1 protocol that was introduced in Microsoft Windows 10 and Windows Server 2016.
4301+ - 3 - The SMBv3.0 protocol version and above.
4302+ - default - Tries to negotiate the highest SMB2+ version supported by both the client and server.
4303+
4304+ If no dialect is specified on mount vers=default is used.
4305+ To check ``Dialect`` refer to /proc/fs/cifs/DebugData
4306
4307 Note too that while this option governs the protocol version used, not
4308 all features of each version are available.
4309@@ -558,7 +633,7 @@ It's generally preferred to use forward slashes (/) as a delimiter in
4310 service names. They are considered to be the "universal delimiter"
4311 since they are generally not allowed to be embedded within path
4312 components on Windows machines and the client can convert them to
4313-backslashes (\) unconditionally. Conversely, backslash characters are
4314+backslashes (\\) unconditionally. Conversely, backslash characters are
4315 allowed by POSIX to be part of a path component, and can't be
4316 automatically converted in the same way.
4317
4318@@ -821,14 +896,26 @@ CONFIGURATION
4319 The primary mechanism for making configuration changes and for reading
4320 debug information for the cifs vfs is via the Linux /proc
4321 filesystem. In the directory */proc/fs/cifs* are various
4322-configuration files and pseudo files which can display debug
4323-information. There are additional startup options such as maximum
4324-buffer size and number of buffers which only may be set when the
4325+configuration files and pseudo files which can display debug information
4326+and performance statistics. There are additional startup options such as
4327+maximum buffer size and number of buffers which only may be set when the
4328 kernel cifs vfs (cifs.ko module) is loaded. These can be seen by
4329 running the ``modinfo`` utility against the file cifs.ko which will
4330 list the options that may be passed to cifs during module installation
4331 (device driver load). For more information see the kernel file
4332-*fs/cifs/README*.
4333+*fs/cifs/README*. When configuring dynamic tracing (trace-cmd)
4334+note that the list of SMB3 events which can be enabled can be seen at:
4335+*/sys/kernel/debug/tracing/events/cifs/*.
4336+
4337+********
4338+SECURITY
4339+********
4340+
4341+The use of SMB2.1 or later (including the latest dialect SMB3.1.1)
4342+is recommended for improved security and SMB1 is no longer requested
4343+by default at mount time. Old dialects such as CIFS (SMB1, ie vers=1.0)
4344+have much weaker security. Use of CIFS (SMB1) can be disabled by
4345+modprobe cifs disable_legacy_dialects=y.
4346
4347 ****
4348 BUGS
4349@@ -849,8 +936,8 @@ bugs (minimum: mount.cifs (try ``mount.cifs -V``), kernel (see
4350 VERSION
4351 *******
4352
4353-This man page is correct for version 1.74 of the cifs vfs filesystem
4354-(roughly Linux kernel 3.0).
4355+This man page is correct for version 2.18 of the cifs vfs filesystem
4356+(roughly Linux kernel 5.0).
4357
4358 ********
4359 SEE ALSO
4360@@ -868,6 +955,6 @@ AUTHOR
4361
4362 Steve French
4363
4364-The maintainer of the Linux cifs vfs and the userspace tool mount.cifs
4365-is Steve French. The Linux CIFS Mailing list is the preferred place to
4366-ask questions regarding these programs.
4367+The maintainer of the Linux cifs vfs is Steve French. The maintainer of the
4368+cifs-utils suite of user space tools is Pavel Shilovsky. The Linux CIFS Mailing
4369+list is the preferred place to ask questions regarding these programs.
4370diff --git a/pam_cifscreds.rst b/pam_cifscreds.rst
4371index 8e8308c..4e89bfd 100644
4372--- a/pam_cifscreds.rst
4373+++ b/pam_cifscreds.rst
4374@@ -7,110 +7,83 @@ PAM module to manage NTLM credentials in kernel keyring
4375 -------------------------------------------------------
4376 :Manual section: 8
4377
4378-
4379 ********
4380 SYNOPSIS
4381 ********
4382
4383-
4384 Edit the PAM configuration files for the systems that you want to
4385-automatically register NTLM credentials for, e.g. /etc/pam.d/login,
4386-and modify as follows:
4387-
4388-
4389-.. code-block:: perl
4390+automatically register NTLM credentials for, e.g. */etc/pam.d/login*,
4391+and modify as follows::
4392
4393 ...
4394 auth substack system-auth
4395 +++ auth optional pam_cifscreds.so
4396 auth include postlogin
4397 ...
4398-
4399+
4400 ...
4401 session include system-auth
4402 +++ session optional pam_cifscreds.so domain=DOMAIN
4403 session include postlogin
4404 ...
4405
4406-
4407 Change DOMAIN to the name of you Windows domain, or use host= as
4408 described below.
4409
4410-
4411 ***********
4412 DESCRIPTION
4413 ***********
4414
4415-
4416-The \ **pam_cifscreds**\ PAM module is a tool for automatically adding
4417+The ``pam_cifscreds`` PAM module is a tool for automatically adding
4418 credentials (username and password) for the purpose of establishing
4419 sessions in multiuser mounts.
4420
4421 When a cifs filesystem is mounted with the "multiuser" option, and does
4422 not use krb5 authentication, it needs to be able to get the credentials
4423-for each user from somewhere. The \ **pam_cifscreds**\ module can be used
4424+for each user from somewhere. The ``pam_cifscreds`` module can be used
4425 to provide these credentials to the kernel automatically at login.
4426
4427 In the session section of the PAM configuration file, the module can
4428 either an NT domain name or a list of hostname or addresses.
4429
4430-
4431 *******
4432 OPTIONS
4433 *******
4434
4435+``pam_cifscreds`` supports a couple options which can be set in the PAM
4436+configuration files. You must have one (and only one) of ``domain=`` or
4437+``host=``.
4438
4439-\ **pam_cifscreds**\ supports a couple options which can be set in the PAM
4440-configuration files. You must have one (and only one) of domain= or
4441-host=.
4442-
4443-
4444-\ **debug**\
4445-
4446- Turns on some extra debug logging.
4447-
4448-
4449-
4450-\ **domain**\ =<NT domain name>
4451-
4452- Credentials will be added for the specified NT domain name.
4453-
4454-
4455-
4456-\ **host**\ =<hostname or IP address>[,...]
4457-
4458- Credentials will be added for the specified hostnames or IP addresses.
4459-
4460+debug
4461+ Turns on some extra debug logging.
4462
4463+domain=<NT domain name>
4464+ Credentials will be added for the specified NT domain name.
4465
4466+host=<hostname or IP address>[,...]
4467+ Credentials will be added for the specified hostnames or IP addresses.
4468
4469 *****
4470 NOTES
4471 *****
4472
4473-
4474 The pam_cifscreds PAM module requires a kernel built with support for
4475-the \ **login**\ key type. That key type was added in v3.3 in mainline Linux
4476+the ``login`` key type. That key type was added in v3.3 in mainline Linux
4477 kernels.
4478
4479-Since \ **pam_cifscreds**\ adds keys to the session keyring, it is highly
4480-recommended that one use \ **pam_keyinit**\ to ensure that a session keyring
4481+Since ``pam_cifscreds`` adds keys to the session keyring, it is highly
4482+recommended that one use ``pam_keyinit`` to ensure that a session keyring
4483 is established at login time.
4484
4485-
4486 ********
4487 SEE ALSO
4488 ********
4489
4490-
4491 cifscreds(1), pam_keyinit(8)
4492
4493-
4494 ******
4495 AUTHOR
4496 ******
4497
4498-
4499 The pam_cifscreds PAM module was developed by Orion Poplawski
4500 <orion@nwra.com>.
4501-
4502diff --git a/setcifsacl.c b/setcifsacl.c
4503index ba34403..1b98c37 100644
4504--- a/setcifsacl.c
4505+++ b/setcifsacl.c
4506@@ -106,13 +106,32 @@ copy_sec_desc(const struct cifs_ntsd *pntsd, struct cifs_ntsd *pnntsd,
4507
4508 /* copy owner sid */
4509 owner_sid_ptr = (struct cifs_sid *)((char *)pntsd + osidsoffset);
4510- nowner_sid_ptr = (struct cifs_sid *)((char *)pnntsd + osidsoffset);
4511- size = copy_cifs_sid(nowner_sid_ptr, owner_sid_ptr);
4512- bufsize += size;
4513+ group_sid_ptr = (struct cifs_sid *)((char *)pntsd + gsidsoffset);
4514+ /*
4515+ * some servers like Azure return the owner and group SIDs at end rather
4516+ * than at the beginning of the ACL so don't want to overwrite the last ACEs
4517+ */
4518+ if (dacloffset <= osidsoffset) {
4519+ /* owners placed at end of ACL */
4520+ nowner_sid_ptr = (struct cifs_sid *)((char *)pnntsd + dacloffset + size);
4521+ pnntsd->osidoffset = dacloffset + size;
4522+ size = copy_cifs_sid(nowner_sid_ptr, owner_sid_ptr);
4523+ bufsize += size;
4524+ /* put group SID after owner SID */
4525+ ngroup_sid_ptr = (struct cifs_sid *)((char *)nowner_sid_ptr + size);
4526+ pnntsd->gsidoffset = pnntsd->osidoffset + size;
4527+ } else {
4528+ /*
4529+ * Most servers put the owner information at the beginning,
4530+ * before the ACL
4531+ */
4532+ nowner_sid_ptr = (struct cifs_sid *)((char *)pnntsd + osidsoffset);
4533+ size = copy_cifs_sid(nowner_sid_ptr, owner_sid_ptr);
4534+ bufsize += size;
4535+ ngroup_sid_ptr = (struct cifs_sid *)((char *)pnntsd + gsidsoffset);
4536+ }
4537
4538 /* copy group sid */
4539- group_sid_ptr = (struct cifs_sid *)((char *)pntsd + gsidsoffset);
4540- ngroup_sid_ptr = (struct cifs_sid *)((char *)pnntsd + gsidsoffset);
4541 size = copy_cifs_sid(ngroup_sid_ptr, group_sid_ptr);
4542 bufsize += size;
4543
4544diff --git a/setcifsacl.rst.in b/setcifsacl.rst.in
4545index ea981e2..de9c758 100644
4546--- a/setcifsacl.rst.in
4547+++ b/setcifsacl.rst.in
4548@@ -7,179 +7,110 @@ Userspace helper to alter an ACL in a security descriptor for Common Internet Fi
4549 ------------------------------------------------------------------------------------------------
4550 :Manual section: 1
4551
4552-
4553 ********
4554 SYNOPSIS
4555 ********
4556
4557-
4558-setcifsacl [-v|-a|-D|-M|-S] "{one or more ACEs}" {file system object}
4559-
4560+ setcifsacl [-v|-a|-D|-M|-S] "{one or more ACEs}" {file system object}
4561
4562 ***********
4563 DESCRIPTION
4564 ***********
4565
4566-
4567 This tool is part of the cifs-utils suite.
4568
4569-\ **setcifsacl**\ is a userspace helper program for the Linux CIFS client
4570-file system. It is intended to alter an ACL of a security descriptor
4571-for a file system object. Whether a security descriptor to be set is
4572+``setcifsacl`` is a userspace helper program for the Linux CIFS client
4573+file system. It is intended to alter an ACL of a security descriptor
4574+for a file system object. Whether a security descriptor to be set is
4575 applied or not is determined by the CIFS/SMB server.
4576
4577 This program uses a plugin to handle the mapping of user and group
4578-names to SIDs. ``@pluginpath@`` should be a symlink that points to the
4579+names to SIDs. *@pluginpath@* should be a symlink that points to the
4580 correct plugin to use.
4581
4582-
4583 *******
4584 OPTIONS
4585 *******
4586
4587+-h
4588+ Print usage message and exit.
4589
4590+-v
4591+ Print version number and exit.
4592
4593-\ **-h**\
4594-
4595- Print usage message and exit.
4596-
4597-
4598-
4599-\ **-v**\
4600-
4601- Print version number and exit.
4602-
4603+-a
4604+ Add one or more ACEs to an ACL of a security descriptor. An ACE is
4605+ added even if the same ACE exists in the ACL.
4606
4607+-D
4608+ Delete one or more ACEs from an ACL of a security descriptor. Entire
4609+ ACE has to match in an existing ACL for the listed ACEs to be deleted.
4610
4611-\ **-a**\
4612-
4613- Add one or more ACEs to an ACL of a security descriptor. An ACE is
4614- added even if the same ACE exists in the ACL.
4615-
4616+-M
4617+ Modify one or more ACEs from an ACL of a security descriptor. SID and
4618+ type are used to match for existing ACEs to be modified with the list
4619+ of ACEs specified.
4620
4621+-S
4622+ Set an ACL of security descriptor with the list of ACEs Existing ACL
4623+ is replaced entirely with the specified ACEs.
4624
4625-\ **-D**\
4626-
4627- Delete one or more ACEs from an ACL of a security descriptor. Entire
4628- ACE has to match in an existing ACL for the listed ACEs to be deleted.
4629-
4630-
4631-
4632-\ **-M**\
4633-
4634- Modify one or more ACEs from an ACL of a security descriptor. SID and
4635- type are used to match for existing ACEs to be modified with the list
4636- of ACEs specified.
4637-
4638-
4639-
4640-\ **-S**\
4641-
4642- Set an ACL of security descriptor with the list of ACEs Existing ACL
4643- is replaced entirely with the specified ACEs.
4644-
4645- Every ACE entry starts with "ACL:" One or more ACEs are specified
4646- within double quotes. Multiple ACEs are separated by a comma.
4647-
4648- Following fields of an ACE can be modified with possible values:
4649-
4650-
4651- \ **SID**\ - Either a name or a raw SID value.
4652-
4653-
4654-
4655- \ **type**\ - ALLOWED (0x0), DENIED (0x1), OBJECT_ALLOWED (0x5), OBJECT_DENIED (0x6)
4656-
4657-
4658-
4659- \ **flags**\ - OBJECT_INHERIT_FLAG (OI or 0x1), CONTAINER_INHERIT_FLAG (CI or 0x2), NO_PROPAGATE_INHERIT_FLAG (NI or
4660- 0x4), INHERIT_ONLY_FLAG (IO or 0x8), INHERITED_ACE_FLAG (IA or 0x10)
4661- or a combination/OR of these values.
4662-
4663-
4664-
4665- \ **mask**\ - Either one of FULL, CHANGE, READ, a combination of R W X D P O, or a hex value
4666-
4667-
4668-
4669+ Every ACE entry starts with "ACL:" One or more ACEs are specified
4670+ within double quotes. Multiple ACEs are separated by a comma.
4671
4672+ Following fields of an ACE can be modified with possible values:
4673
4674+ - ``SID`` - Either a name or a raw SID value.
4675+ - ``type`` - ALLOWED (0x0), DENIED (0x1), OBJECT_ALLOWED (0x5), OBJECT_DENIED (0x6)
4676+ - ``flags`` - OBJECT_INHERIT_FLAG (OI or 0x1),
4677+ CONTAINER_INHERIT_FLAG (CI or 0x2), NO_PROPAGATE_INHERIT_FLAG (NI
4678+ or 0x4), INHERIT_ONLY_FLAG (IO or 0x8), INHERITED_ACE_FLAG (IA or
4679+ 0x10) or a combination/OR of these values.
4680+ - ``mask`` - Either one of FULL, CHANGE, READ, a combination of R W X D P O, or a hex value.
4681
4682 ********
4683 EXAMPLES
4684 ********
4685
4686-
4687 Add an ACE
4688 ==========
4689
4690-
4691-
4692-.. code-block:: perl
4693-
4694- setcifsacl -a "ACL:CIFSTESTDOM\user2:DENIED/0x1/D" <file_name>
4695- setcifsacl -a "ACL:CIFSTESTDOM\user1:ALLOWED/OI|CI|NI/D" <file_name>
4696-
4697-
4698+ setcifsacl -a "ACL:CIFSTESTDOM\user2:DENIED/0x1/D" <file_name>
4699+ setcifsacl -a "ACL:CIFSTESTDOM\user1:ALLOWED/OI|CI|NI/D" <file_name>
4700
4701 Delete an ACE
4702 =============
4703
4704-
4705-
4706-.. code-block:: perl
4707-
4708- setcifsacl -D "ACL:S-1-1-0:0x1/OI/0x1201ff" <file_name>
4709-
4710-
4711+ setcifsacl -D "ACL:S-1-1-0:0x1/OI/0x1201ff" <file_name>
4712
4713 Modify an ACE
4714 =============
4715
4716-
4717-
4718-.. code-block:: perl
4719-
4720- setcifsacl -M "ACL:CIFSTESTDOM\user1:ALLOWED/0x1f/CHANGE" <file_name>
4721-
4722-
4723+ setcifsacl -M "ACL:CIFSTESTDOM\user1:ALLOWED/0x1f/CHANGE" <file_name>
4724
4725 Set an ACL
4726 ==========
4727
4728-
4729-
4730-.. code-block:: perl
4731-
4732- setcifsacl -S "ACL:CIFSTESTDOM\Administrator:0x0/0x0/FULL,ACL:CIFSTESTDOM\user2:0x0/0x0/FULL" <file_name>
4733-
4734-
4735-
4736+ setcifsacl -S "ACL:CIFSTESTDOM\Administrator:0x0/0x0/FULL,ACL:CIFSTESTDOM\user2:0x0/0x0/FULL" <file_name>
4737
4738 *****
4739 NOTES
4740 *****
4741
4742-
4743 Kernel support for getcifsacl/setcifsacl utilities was initially
4744 introduced in the 2.6.37 kernel.
4745
4746-
4747 ********
4748 SEE ALSO
4749 ********
4750
4751-
4752 mount.cifs(8), getcifsacl(1)
4753
4754-
4755 ******
4756 AUTHOR
4757 ******
4758
4759-
4760 Shirish Pargaonkar wrote the setcifsacl program.
4761
4762 The Linux CIFS Mailing list is the preferred place to ask questions
4763 regarding these programs.
4764-
4765diff --git a/smbinfo.c b/smbinfo.c
4766new file mode 100644
4767index 0000000..4bc503a
4768--- /dev/null
4769+++ b/smbinfo.c
4770@@ -0,0 +1,1134 @@
4771+/*
4772+ * smbinfo
4773+ *
4774+ * Copyright (C) Ronnie Sahlberg (lsahlberg@redhat.com) 2018
4775+ * Copyright (C) Aurelien Aptel (aaptel@suse.com) 2018
4776+ *
4777+ * Display SMB-specific file information using cifs IOCTL
4778+ *
4779+ * This program is free software; you can redistribute it and/or modify
4780+ * it under the terms of the GNU General Public License as published by
4781+ * the Free Software Foundation; either version 2 of the License, or
4782+ * (at your option) any later version.
4783+ * This program is distributed in the hope that it will be useful,
4784+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
4785+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4786+ * GNU General Public License for more details.
4787+ * You should have received a copy of the GNU General Public License
4788+ * along with this program; if not, write to the Free Software
4789+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
4790+ */
4791+
4792+#ifdef HAVE_CONFIG_H
4793+#include "config.h"
4794+#endif /* HAVE_CONFIG_H */
4795+
4796+#include <endian.h>
4797+#include <errno.h>
4798+#include <getopt.h>
4799+#include <sys/ioctl.h>
4800+#include <sys/types.h>
4801+#include <sys/stat.h>
4802+#include <fcntl.h>
4803+#include <string.h>
4804+#include <stdint.h>
4805+#include <stdio.h>
4806+#include <stdlib.h>
4807+#include <time.h>
4808+#include <unistd.h>
4809+#include <inttypes.h>
4810+
4811+#define CIFS_IOCTL_MAGIC 0xCF
4812+
4813+/* query_info flags */
4814+#define PASSTHRU_QUERY_INFO 0x00000000
4815+#define PASSTHRU_FSCTL 0x00000001
4816+
4817+struct smb_query_info {
4818+ uint32_t info_type;
4819+ uint32_t file_info_class;
4820+ uint32_t additional_information;
4821+ uint32_t flags;
4822+ uint32_t input_buffer_length;
4823+ uint32_t output_buffer_length;
4824+ /* char buffer[]; */
4825+} __packed;
4826+
4827+#define CIFS_QUERY_INFO _IOWR(CIFS_IOCTL_MAGIC, 7, struct smb_query_info)
4828+#define INPUT_BUFFER_LENGTH 16384
4829+
4830+int verbose;
4831+
4832+static void
4833+usage(char *name)
4834+{
4835+ fprintf(stderr, "Usage: %s [-V] <command> <file>\n"
4836+ "-V for verbose output\n"
4837+ "Commands are\n"
4838+ " fileaccessinfo:\n"
4839+ " Prints FileAccessInfo for a cifs file.\n"
4840+ " filealigninfo:\n"
4841+ " Prints FileAlignInfo for a cifs file.\n"
4842+ " fileallinfo:\n"
4843+ " Prints FileAllInfo for a cifs file.\n"
4844+ " filebasicinfo:\n"
4845+ " Prints FileBasicInfo for a cifs file.\n"
4846+ " fileeainfo:\n"
4847+ " Prints FileEAInfo for a cifs file.\n"
4848+ " filefsfullsizeinfo:\n"
4849+ " Prints FileFsFullSizeInfo for a cifs share.\n"
4850+ " fileinternalinfo:\n"
4851+ " Prints FileInternalInfo for a cifs file.\n"
4852+ " filemodeinfo:\n"
4853+ " Prints FileModeInfo for a cifs file.\n"
4854+ " filepositioninfo:\n"
4855+ " Prints FilePositionInfo for a cifs file.\n"
4856+ " filestandardinfo:\n"
4857+ " Prints FileStandardInfo for a cifs file.\n"
4858+ " fsctl-getobjid:\n"
4859+ " Prints the objectid of the file and GUID of the underlying volume.\n"
4860+ " list-snapshots:\n"
4861+ " List the previous versions of the volume that backs this file.\n"
4862+ " quota:\n"
4863+ " Prints the quota for a cifs file.\n"
4864+ " secdesc:\n"
4865+ " Prints the security descriptor for a cifs file.\n",
4866+ name);
4867+ exit(1);
4868+}
4869+
4870+static void
4871+win_to_timeval(uint64_t smb2_time, struct timeval *tv)
4872+{
4873+ tv->tv_usec = (smb2_time / 10) % 1000000;
4874+ tv->tv_sec = (smb2_time - 116444736000000000) / 10000000;
4875+}
4876+
4877+struct bit_string {
4878+ unsigned int bit;
4879+ char *string;
4880+};
4881+
4882+struct bit_string directory_access_mask[] = {
4883+ { 0x00000001, "LIST_DIRECTORY" },
4884+ { 0x00000002, "ADD_FILE" },
4885+ { 0x00000004, "ADD_SUBDIRECTORY" },
4886+ { 0x00000008, "READ_EA" },
4887+ { 0x00000010, "WRITE_EA" },
4888+ { 0x00000020, "TRAVERSE" },
4889+ { 0x00000040, "DELETE_CHILD" },
4890+ { 0x00000080, "READ_ATTRIBUTES" },
4891+ { 0x00000100, "WRITE_ATTRIBUTES" },
4892+ { 0x00010000, "DELETE" },
4893+ { 0x00020000, "READ_CONTROL" },
4894+ { 0x00040000, "WRITE_DAC" },
4895+ { 0x00080000, "WRITE_OWNER" },
4896+ { 0x00100000, "SYNCHRONIZER" },
4897+ { 0x01000000, "ACCESS_SYSTEM_SECURITY" },
4898+ { 0x02000000, "MAXIMUM_ALLOWED" },
4899+ { 0x10000000, "GENERIC_ALL" },
4900+ { 0x20000000, "GENERIC_EXECUTE" },
4901+ { 0x40000000, "GENERIC_WRITE" },
4902+ { 0x80000000, "GENERIC_READ" },
4903+ { 0, NULL }
4904+};
4905+
4906+struct bit_string file_access_mask[] = {
4907+ { 0x00000001, "READ_DATA" },
4908+ { 0x00000002, "WRITE_DATA" },
4909+ { 0x00000004, "APPEND_DATA" },
4910+ { 0x00000008, "READ_EA" },
4911+ { 0x00000010, "WRITE_EA" },
4912+ { 0x00000020, "EXECUTE" },
4913+ { 0x00000040, "DELETE_CHILD" },
4914+ { 0x00000080, "READ_ATTRIBUTES" },
4915+ { 0x00000100, "WRITE_ATTRIBUTES" },
4916+ { 0x00010000, "DELETE" },
4917+ { 0x00020000, "READ_CONTROL" },
4918+ { 0x00040000, "WRITE_DAC" },
4919+ { 0x00080000, "WRITE_OWNER" },
4920+ { 0x00100000, "SYNCHRONIZER" },
4921+ { 0x01000000, "ACCESS_SYSTEM_SECURITY" },
4922+ { 0x02000000, "MAXIMUM_ALLOWED" },
4923+ { 0x10000000, "GENERIC_ALL" },
4924+ { 0x20000000, "GENERIC_EXECUTE" },
4925+ { 0x40000000, "GENERIC_WRITE" },
4926+ { 0x80000000, "GENERIC_READ" },
4927+ { 0, NULL }
4928+};
4929+
4930+static void
4931+print_bits(uint32_t mask, struct bit_string *bs)
4932+{
4933+ int first = 1;
4934+
4935+ if (!verbose)
4936+ return;
4937+
4938+ while (bs->string) {
4939+ if (mask & bs->bit) {
4940+ printf("%s%s", first?"":",", bs->string);
4941+ first = 0;
4942+ }
4943+ bs++;
4944+ }
4945+ if (!first)
4946+ printf(" ");
4947+}
4948+
4949+static void
4950+print_guid(uint8_t *sd)
4951+{
4952+ uint32_t u32;
4953+ uint16_t u16;
4954+ int i;
4955+
4956+ memcpy(&u32, &sd[0], 4);
4957+ printf("%08x-", le32toh(u32));
4958+
4959+ memcpy(&u16, &sd[4], 2);
4960+ printf("%04x-", le16toh(u16));
4961+
4962+ memcpy(&u16, &sd[6], 2);
4963+ printf("%04x-", le16toh(u16));
4964+
4965+ printf("%02x%02x-", sd[8], sd[9]);
4966+ for (i = 0; i < 6; i++)
4967+ printf("%02x", sd[10 + i]);
4968+}
4969+
4970+static void
4971+print_objidbuf(uint8_t *sd)
4972+{
4973+ printf("Object-ID: ");
4974+ print_guid(&sd[0]);
4975+ printf("\n");
4976+
4977+ printf("Birth-Volume-ID: ");
4978+ print_guid(&sd[16]);
4979+ printf("\n");
4980+
4981+ printf("Birth-Object-ID: ");
4982+ print_guid(&sd[32]);
4983+ printf("\n");
4984+
4985+ printf("Domain-ID: ");
4986+ print_guid(&sd[48]);
4987+ printf("\n");
4988+}
4989+
4990+static void
4991+fsctlgetobjid(int f)
4992+{
4993+ struct smb_query_info *qi;
4994+ struct stat st;
4995+
4996+ fstat(f, &st);
4997+
4998+ qi = malloc(sizeof(struct smb_query_info) + 64);
4999+ memset(qi, 0, sizeof(qi) + 64);
5000+ qi->info_type = 0x9009c;
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches