Merge ~vpa1977/ubuntu/+source/nfs-utils:merge-lp2030474 into ubuntu/+source/nfs-utils:ubuntu/devel

Proposed by Vladimir Petko
Status: Superseded
Proposed branch: ~vpa1977/ubuntu/+source/nfs-utils:merge-lp2030474
Merge into: ubuntu/+source/nfs-utils:ubuntu/devel
Diff against target: 7868 lines (+3596/-520) (has conflicts)
128 files modified
.gitignore (+3/-0)
Makefile.in (+2/-1)
NEWS (+11/-11)
README (+8/-8)
configure (+277/-54)
configure.ac (+15/-16)
debian/changelog (+102/-0)
debian/control (+3/-2)
debian/copyright (+0/-1)
debian/nfs-common.bug-script (+6/-6)
debian/nfs-common.default (+0/-7)
debian/nfs-common.init (+4/-5)
debian/nfs-common.install (+0/-1)
debian/nfs-common.lintian-overrides (+3/-3)
debian/nfs-common.postinst (+0/-23)
debian/nfs-kernel-server.bug-script (+4/-4)
debian/nfs-kernel-server.default (+0/-13)
debian/nfs-kernel-server.init (+6/-8)
debian/nfs-kernel-server.install (+2/-0)
debian/nfs-kernel-server.lintian-overrides (+2/-2)
debian/nfs-kernel-server.postinst (+7/-6)
debian/patches/always-run-generator.patch (+5/-0)
debian/patches/fsidd-provide-better-default-socket-name.patch (+96/-0)
debian/patches/libnfsidmap-try-to-get-the-domain-directly-from-host.patch (+54/-0)
debian/patches/nfs-idmapd.service-add-network-online.target-to-Want.patch (+33/-0)
debian/patches/series (+10/-0)
debian/patches/start-statd-fix-shellcheck-warnings.patch (+41/-0)
debian/rules (+7/-1)
debian/salsa-ci.yml (+14/-0)
dev/null (+0/-16)
linux-nfs/Makefile.in (+2/-1)
support/Makefile.am (+1/-1)
support/Makefile.in (+4/-3)
support/export/Makefile.am (+2/-0)
support/export/Makefile.in (+209/-46)
support/export/auth.c (+1/-1)
support/export/cache.c (+95/-14)
support/export/client.c (+3/-0)
support/export/export.c (+20/-0)
support/export/v4clients.c (+1/-1)
support/export/v4root.c (+3/-1)
support/export/xtab.c (+1/-1)
support/include/Makefile.in (+2/-1)
support/include/nfs/Makefile.in (+2/-1)
support/include/nfs/export.h (+14/-0)
support/include/nfsd_path.h (+3/-3)
support/include/nfslib.h (+15/-0)
support/include/pseudoflavors.h (+1/-0)
support/include/rpcsvc/Makefile.in (+2/-1)
support/include/sys/Makefile.in (+2/-1)
support/include/sys/fs/Makefile.in (+2/-1)
support/junction/Makefile.in (+2/-1)
support/junction/junction.c (+5/-5)
support/misc/Makefile.in (+2/-1)
support/misc/nfsd_path.c (+12/-12)
support/nfs/Makefile.am (+1/-0)
support/nfs/Makefile.in (+213/-71)
support/nfs/exports.c (+161/-15)
support/nfs/xlog.c (+5/-2)
support/nfsidmap/Makefile.in (+2/-1)
support/nfsidmap/regex.c (+1/-1)
support/nsm/Makefile.in (+2/-1)
support/reexport/Makefile.am (+18/-0)
support/reexport/Makefile.in (+797/-0)
support/reexport/backend_sqlite.c (+267/-0)
support/reexport/fsidd.c (+198/-0)
support/reexport/reexport.c (+326/-0)
support/reexport/reexport.h (+18/-0)
support/reexport/reexport_backend.h (+47/-0)
systemd/60-nfs.rules (+21/-0)
systemd/Makefile.am (+10/-10)
systemd/Makefile.in (+14/-11)
systemd/auth-rpcgss-module.service (+2/-1)
systemd/fsidd.service (+10/-0)
systemd/nfs-server.service (+1/-1)
systemd/nfs.conf.man (+7/-0)
tests/Makefile.in (+2/-1)
tests/nsm_client/Makefile.in (+2/-1)
tools/Makefile.am (+5/-1)
tools/Makefile.in (+6/-4)
tools/locktest/Makefile.in (+2/-1)
tools/mountstats/Makefile.in (+2/-1)
tools/nfs-iostat/Makefile.in (+2/-1)
tools/nfs-iostat/nfs-iostat.py (+9/-6)
tools/nfsconf/Makefile.in (+2/-1)
tools/nfsdclddb/Makefile.in (+2/-1)
tools/nfsdclnts/Makefile.in (+2/-1)
tools/nfsrahead/Makefile.am (+1/-1)
tools/nfsrahead/Makefile.in (+3/-2)
tools/nfsrahead/main.c (+1/-1)
tools/nlmtest/Makefile.in (+2/-1)
tools/rpcctl/Makefile.in (+2/-1)
tools/rpcdebug/Makefile.in (+2/-1)
tools/rpcdebug/rpcdebug.c (+1/-1)
tools/rpcgen/Makefile.in (+2/-1)
utils/Makefile.in (+2/-1)
utils/blkmapd/Makefile.in (+2/-1)
utils/blkmapd/device-discovery.c (+36/-29)
utils/blkmapd/device-discovery.h (+2/-0)
utils/blkmapd/device-inq.c (+2/-2)
utils/exportd/Makefile.am (+3/-1)
utils/exportd/Makefile.in (+7/-4)
utils/exportfs/Makefile.am (+3/-0)
utils/exportfs/Makefile.in (+25/-8)
utils/exportfs/exportfs.c (+16/-4)
utils/exportfs/exports.man (+81/-1)
utils/gssd/Makefile.in (+2/-1)
utils/idmapd/Makefile.in (+2/-1)
utils/idmapd/idmapd.c (+1/-1)
utils/mount/Makefile.am (+2/-1)
utils/mount/Makefile.in (+9/-4)
utils/mount/error.c (+16/-15)
utils/mount/network.c (+1/-1)
utils/mount/nfs.man (+33/-1)
utils/mount/nfsmount.conf (+3/-3)
utils/mount/parse_dev.c (+2/-1)
utils/mountd/Makefile.am (+2/-0)
utils/mountd/Makefile.in (+5/-3)
utils/nfsd/Makefile.in (+2/-1)
utils/nfsd/nfsd.c (+16/-1)
utils/nfsd/nfsd.man (+15/-2)
utils/nfsdcld/Makefile.in (+2/-1)
utils/nfsdcltrack/Makefile.in (+2/-1)
utils/nfsidmap/Makefile.in (+2/-1)
utils/nfsref/Makefile.in (+2/-1)
utils/nfsstat/Makefile.in (+2/-1)
utils/showmount/Makefile.in (+2/-1)
utils/statd/Makefile.in (+2/-1)
Conflict in debian/changelog
Conflict in debian/patches/always-run-generator.patch
Conflict in debian/patches/series
Conflict in debian/rules
Reviewer Review Type Date Requested Status
git-ubuntu import Pending
Review via email: mp+448654@code.launchpad.net

Description of the change

Merge of nfs-utils 2.1.6

Summary of changes:
 - rebased existing commits
 - dropped patch integrated upstream.

PPA: ppa:vpa1977/nfs-utils [1]

[1] https://launchpad.net/~vpa1977/+archive/ubuntu/nfs-utils

To post a comment you must log in.

Unmerged commits

6c5b047... by Vladimir Petko

changelog

d6a4159... by Vladimir Petko

update-maintainer

36e79fa... by Vladimir Petko

reconstruct-changelog

b9f0922... by Vladimir Petko

merge-changelogs

ffb229f... by Andreas Hasenack

    - d/not-installed: mark files we knowingly don't include in the
      packaging
      [Missed in previous d/changelog]

6216c38... by Andreas Hasenack

    - rpc.svcgssd fixes and improvements (LP: #1977745):
      + d/p/nfs-conf-manpage-missing-svcgssd-options.patch: also
        document the missing svcgssd options to the nfs.conf(5) manpage

596eb1f... by Andreas Hasenack

    - Move the regex module to a separate binary package libnfsidmap-regex
      (LP: #1974067):
      + d/control: new package, adjust breaks/conflicts
      + d/libnfsidmap-regex.install: install the plugin file
      + d/libnfsidmap1.install: don't install regex.so
        [missed in previous d/changelog]
      + d/p/ubuntu-idmapd-manpage-update-regex-other-package.patch:
        note that the regex plugin is in another package

a0f1d70... by Andreas Hasenack

      + d/t/{control, v3-mount}: specific NFSv3 mount test

2f5f6d6... by Andreas Hasenack

    - Add more DEP8 tests (LP: #1960828):
      + d/t/{control,kerberos-mount,util}: test NFSv4 krb5p mounts

81d4400... by Andreas Hasenack

      + d/rules: build with apport, and install the hook in the
        nfs-common package which is installed on both client and servers

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/.gitignore b/.gitignore
2index df791a8..da666b8 100644
3--- a/.gitignore
4+++ b/.gitignore
5@@ -72,6 +72,7 @@ support/nsm/sm_inter_clnt.c
6 support/nsm/sm_inter_svc.c
7 support/nsm/sm_inter_xdr.c
8 support/include/sm_inter.h
9+support/reexport/fsidd
10 tests/nsm_client/nlm_sm_inter.h
11 tests/nsm_client/nlm_sm_inter_clnt.c
12 tests/nsm_client/nlm_sm_inter_svc.c
13@@ -86,3 +87,5 @@ systemd/rpc-gssd.service
14 cscope.*
15 # generic editor backup et al
16 *~
17+# file generated by ctags
18+tags
19diff --git a/Makefile.in b/Makefile.in
20index a8c54ee..b9aa115 100644
21--- a/Makefile.in
22+++ b/Makefile.in
23@@ -286,6 +286,8 @@ LIBCRYPT = @LIBCRYPT@
24 LIBEVENT = @LIBEVENT@
25 LIBKEYUTILS = @LIBKEYUTILS@
26 LIBMOUNT = @LIBMOUNT@
27+LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
28+LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
29 LIBNSL = @LIBNSL@
30 LIBOBJS = @LIBOBJS@
31 LIBPTHREAD = @LIBPTHREAD@
32@@ -387,7 +389,6 @@ localedir = @localedir@
33 localstatedir = @localstatedir@
34 mandir = @mandir@
35 mkdir_p = @mkdir_p@
36-modprobedir = @modprobedir@
37 mountfile = @mountfile@
38 nfsconfig = @nfsconfig@
39 oldincludedir = @oldincludedir@
40diff --git a/NEWS b/NEWS
41index e70ae8a..77872c5 100644
42--- a/NEWS
43+++ b/NEWS
44@@ -1,32 +1,32 @@
45 Significant changes for nfs-utils 1.1.0 - March/April 2007
46
47- - rpc.lockd is gone. One 3 old kernel releases need it.
48- - rpc.rquotad is gone. Use the one from the 'quota' package.
49- Everone else does.
50+ - rpc.lockd is gone. One 3 old kernel releases need it.
51+ - rpc.rquotad is gone. Use the one from the 'quota' package.
52+ Everyone else does.
53 - /sbin/{u,}mount.nfs{,4} are now installed so 'mount' will
54 use these to mount nfs filesystems instead of internal code.
55 + mount.nfs will check for 'statd' to be running when mounting
56- a filesystem which requires it. If it is not running it will
57+ a filesystem which requires it. If it is not running it will
58 run "/usr/sbin/start-statd" to try to start it.
59 If statd is not running and cannot be started, mount.nfs will
60 refuse to mount the filesystem and will suggest the 'nolock'
61 option.
62 - Substantial changes to statd
63 + The 'notify' process that must happen at boot has been split
64- into a separate program "sm-notify". It ensures that it
65- only runs once even if you restart statd. This is correct
66+ into a separate program "sm-notify". It ensures that it
67+ only runs once even if you restart statd. This is correct
68 behaviour.
69 + statd stores state in the files in /var/lib/nfs/sm/ so that
70 if you kill and restart it, it will restore that state and
71 continue working correctly.
72 + statd makes more use of DNS lookup and should handle
73- multi-homed peers better. In particular, files in
74+ multi-homed peers better. In particular, files in
75 /var/lib/nfs/sm/ are named with the Full Qualified Domain Name
76 if available.
77 - If you export a directory as 'crossmnt', all filesystems
78 mounted beneath are automatically exported with the same
79 options (unless explicitly exported with different options).
80- - subtree_check is no-longer the default. The default is now
81+ - subtree_check is no-longer the default. The default is now
82 no_subtree_check.
83 - By default the system 'rpcgen' is used while building
84 nfs-utils rather than the internal one.
85@@ -43,14 +43,14 @@ Significant changes for nfs-utils 1.1.0 - March/April 2007
86
87 - A new option, -n, was added to rpc.gssd which specifies that
88 accesses by root should not use 'machine credentials' when
89- accessing NFS file systems mounted with Kerberos. Using this
90+ accessing NFS file systems mounted with Kerberos. Using this
91 option allows the root user to access the NFS space using any
92 Kerberos principal, rather than always using the machine
93- credentials. However, its use also requires that root manually
94+ credentials. However, its use also requires that root manually
95 authenticate before attempting a mount with Kerberos.
96
97 When rpc.gssd uses machine credentials, the selection algorithm has
98- been changed. Instead of simply using the first "nfs/*" key in the
99+ been changed. Instead of simply using the first "nfs/*" key in the
100 keytab, the keytab is now searched for keys in the following
101 defined order:
102
103diff --git a/README b/README
104index 5e98240..3b0e771 100644
105--- a/README
106+++ b/README
107@@ -25,7 +25,7 @@ Unpack the sources and run these commands:
108 # ./configure
109 # make
110
111-To install binaries and documenation, run this command:
112+To install binaries and documentation, run this command:
113
114 # make install
115
116@@ -40,7 +40,7 @@ Updating to the latest head after you've already got it.
117
118 git pull
119
120-Building requires that autotools be installed. To invoke them
121+Building requires that autotools be installed. To invoke them
122 simply
123
124 sh autogen.sh
125@@ -70,7 +70,7 @@ scripts can be written to work correctly.
126 3.1. SERVER STARTUP
127
128
129- A/ mount -t nfsd /proc/fs/nfsd
130+ A/ mount -t nfsd nfsd /proc/fs/nfsd
131 This filesystem needs to be mount before most daemons,
132 particularly exportfs, mountd, svcgssd, idmapd.
133 It could be mounted once, or the script that starts each daemon
134@@ -95,27 +95,27 @@ scripts can be written to work correctly.
135
136 D/ rpc.statd --no-notify
137 It is best if statd is started before nfsd though this isn't
138- critical. Certainly it should be at most a few seconds after
139+ critical. Certainly, it should be at most a few seconds after
140 nfsd.
141 When nfsd starts it will start lockd. If lockd then receives a
142- lock request it will communicate with statd. If statd is not
143+ lock request, it will communicate with statd. If statd is not
144 running lockd will retry, but it won't wait forever for a
145 reply.
146 Note that if statd is started before nfsd, the --no-notify
147- option must be used. If notify requests are sent out before
148+ option must be used. If notify requests are sent out before
149 nfsd start, clients may try to reclaim locks and, on finding
150 that lockd isn't running, they will give up and never reclaim
151 the lock.
152 rpc.statd is only needed for NFSv2 and NFSv3 support.
153
154 E/ rpc.nfsd
155- Starting nfsd will automatically start lockd. The nfs server
156+ Starting nfsd will automatically start lockd. The nfs server
157 will now be fully active and respond to any requests from
158 clients.
159
160 F/ sm-notify
161 This will notify any client which might have locks from before
162- a reboot to try to reclaim their locks. This should start
163+ a reboot to try to reclaim their locks. This should start
164 immediately after rpc.nfsd is started so that clients have a
165 chance to reclaim locks within the 90 second grace period.
166 sm-notify is only needed for NFSv2 and NFSv3 support.
167diff --git a/configure b/configure
168index e14489e..2a29dd4 100755
169--- a/configure
170+++ b/configure
171@@ -1,6 +1,6 @@
172 #! /bin/sh
173 # Guess values for system-dependent variables and create Makefiles.
174-# Generated by GNU Autoconf 2.71 for linux nfs-utils 2.6.2.
175+# Generated by GNU Autoconf 2.71 for linux nfs-utils 2.6.3.
176 #
177 # Report bugs to <linux-nfs@vger.kernel.org>.
178 #
179@@ -621,8 +621,8 @@ MAKEFLAGS=
180 # Identity of this package.
181 PACKAGE_NAME='linux nfs-utils'
182 PACKAGE_TARNAME='nfs-utils'
183-PACKAGE_VERSION='2.6.2'
184-PACKAGE_STRING='linux nfs-utils 2.6.2'
185+PACKAGE_VERSION='2.6.3'
186+PACKAGE_STRING='linux nfs-utils 2.6.3'
187 PACKAGE_BUGREPORT='linux-nfs@vger.kernel.org'
188 PACKAGE_URL=''
189
190@@ -757,11 +757,15 @@ LIBTIRPC
191 AM_CPPFLAGS
192 TIRPC_LIBS
193 TIRPC_CFLAGS
194+CONFIG_NFSV4SERVER_FALSE
195+CONFIG_NFSV4SERVER_TRUE
196+LIBMOUNT_LIBS
197+LIBMOUNT_CFLAGS
198 PKG_CONFIG_LIBDIR
199 PKG_CONFIG_PATH
200 PKG_CONFIG
201-CONFIG_NFSV4SERVER_FALSE
202-CONFIG_NFSV4SERVER_TRUE
203+CONFIG_NFSRAHEAD_FALSE
204+CONFIG_NFSRAHEAD_TRUE
205 MOUNT_CONFIG_FALSE
206 MOUNT_CONFIG_TRUE
207 enable_mountconfig
208@@ -794,9 +798,6 @@ CONFIG_NFSV4_FALSE
209 CONFIG_NFSV4_TRUE
210 enable_nfsv4
211 IDMAPD
212-modprobedir
213-INSTALL_MODPROBEDIR_FALSE
214-INSTALL_MODPROBEDIR_TRUE
215 unitdir
216 INSTALL_SYSTEMD_FALSE
217 INSTALL_SYSTEMD_TRUE
218@@ -916,7 +917,6 @@ with_statdpath
219 with_statduser
220 with_start_statd
221 with_systemd
222-with_modprobedir
223 enable_nfsv4
224 enable_nfsv41
225 enable_gss
226@@ -933,6 +933,7 @@ enable_ipv6
227 enable_mountconfig
228 with_mountfile
229 enable_nfsdcld
230+enable_nfsrahead
231 enable_nfsdcltrack
232 enable_nfsv4server
233 with_tirpcinclude
234@@ -964,6 +965,8 @@ CPPFLAGS
235 PKG_CONFIG
236 PKG_CONFIG_PATH
237 PKG_CONFIG_LIBDIR
238+LIBMOUNT_CFLAGS
239+LIBMOUNT_LIBS
240 TIRPC_CFLAGS
241 TIRPC_LIBS
242 XML2_CFLAGS
243@@ -1526,7 +1529,7 @@ if test "$ac_init_help" = "long"; then
244 # Omit some internal or obsolete options to make the list less imposing.
245 # This message is too long to be a string in the A/UX 3.1 sh.
246 cat <<_ACEOF
247-\`configure' configures linux nfs-utils 2.6.2 to adapt to many kinds of systems.
248+\`configure' configures linux nfs-utils 2.6.3 to adapt to many kinds of systems.
249
250 Usage: $0 [OPTION]... [VAR=VALUE]...
251
252@@ -1597,7 +1600,7 @@ fi
253
254 if test -n "$ac_init_help"; then
255 case $ac_init_help in
256- short | recursive ) echo "Configuration of linux nfs-utils 2.6.2:";;
257+ short | recursive ) echo "Configuration of linux nfs-utils 2.6.3:";;
258 esac
259 cat <<\_ACEOF
260
261@@ -1633,6 +1636,7 @@ Optional Features:
262 --disable-mountconfig disable mount to use a configuration file
263 [default=no]
264 --disable-nfsdcld disable NFSv4 clientid tracking daemon [default=no]
265+ --disable-nfsrahead disable nfsrahead command [default=no]
266 --disable-nfsdcltrack disable NFSv4 clientid tracking programs
267 [default=no]
268 --enable-nfsv4server enable support for NFSv4 only server [default=no]
269@@ -1665,9 +1669,6 @@ Optional Packages:
270 --with-systemd[=unit-dir-path]
271 install systemd unit files [Default: no, and path
272 defaults to /usr/lib/systemd/system if not given]
273- --with-modprobedir[=modprobe-dir-path]
274- install modprobe config files [Default:
275- /usr/lib/modprobe.d]
276 --with-rpcgen=internal use internal rpcgen instead of system one
277 --with-mountfile=filename
278 Using filename as the NFS mount options file
279@@ -1701,6 +1702,10 @@ Some influential environment variables:
280 directories to add to pkg-config's search path
281 PKG_CONFIG_LIBDIR
282 path overriding pkg-config's built-in search path
283+ LIBMOUNT_CFLAGS
284+ C compiler flags for LIBMOUNT, overriding pkg-config
285+ LIBMOUNT_LIBS
286+ linker flags for LIBMOUNT, overriding pkg-config
287 TIRPC_CFLAGS
288 C compiler flags for TIRPC, overriding pkg-config
289 TIRPC_LIBS linker flags for TIRPC, overriding pkg-config
290@@ -1788,7 +1793,7 @@ fi
291 test -n "$ac_init_help" && exit $ac_status
292 if $ac_init_version; then
293 cat <<\_ACEOF
294-linux nfs-utils configure 2.6.2
295+linux nfs-utils configure 2.6.3
296 generated by GNU Autoconf 2.71
297
298 Copyright (C) 2021 Free Software Foundation, Inc.
299@@ -2457,7 +2462,7 @@ cat >config.log <<_ACEOF
300 This file contains any messages produced by compilers while
301 running configure, to aid debugging if configure makes a mistake.
302
303-It was created by linux nfs-utils $as_me 2.6.2, which was
304+It was created by linux nfs-utils $as_me 2.6.3, which was
305 generated by GNU Autoconf 2.71. Invocation command line was
306
307 $ $0$ac_configure_args_raw
308@@ -4026,7 +4031,7 @@ fi
309
310 # Define the identity of the package.
311 PACKAGE='nfs-utils'
312- VERSION='2.6.2'
313+ VERSION='2.6.3'
314
315
316 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
317@@ -5675,29 +5680,6 @@ fi
318
319
320
321-modprobedir=/usr/lib/modprobe.d
322-
323-# Check whether --with-modprobedir was given.
324-if test ${with_modprobedir+y}
325-then :
326- withval=$with_modprobedir; if test "$withval" != "no" ; then
327- modprobedir=$withval
328- else
329- modprobedir=
330- fi
331-
332-fi
333-
334- if test -n "$modprobedir"; then
335- INSTALL_MODPROBEDIR_TRUE=
336- INSTALL_MODPROBEDIR_FALSE='#'
337-else
338- INSTALL_MODPROBEDIR_TRUE='#'
339- INSTALL_MODPROBEDIR_FALSE=
340-fi
341-
342-
343-
344 # Check whether --enable-nfsv4 was given.
345 if test ${enable_nfsv4+y}
346 then :
347@@ -6012,6 +5994,246 @@ else $as_nop
348 fi
349
350
351+# Check whether --enable-nfsrahead was given.
352+if test ${enable_nfsrahead+y}
353+then :
354+ enableval=$enable_nfsrahead; enable_nfsrahead=$enableval
355+else $as_nop
356+ enable_nfsrahead="yes"
357+fi
358+
359+ if test "$enable_nfsrahead" = "yes" ; then
360+ CONFIG_NFSRAHEAD_TRUE=
361+ CONFIG_NFSRAHEAD_FALSE='#'
362+else
363+ CONFIG_NFSRAHEAD_TRUE='#'
364+ CONFIG_NFSRAHEAD_FALSE=
365+fi
366+
367+ if test "$enable_nfsrahead" = yes; then
368+
369+
370+
371+
372+
373+
374+
375+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
376+ if test -n "$ac_tool_prefix"; then
377+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
378+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
379+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
380+printf %s "checking for $ac_word... " >&6; }
381+if test ${ac_cv_path_PKG_CONFIG+y}
382+then :
383+ printf %s "(cached) " >&6
384+else $as_nop
385+ case $PKG_CONFIG in
386+ [\\/]* | ?:[\\/]*)
387+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
388+ ;;
389+ *)
390+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
391+for as_dir in $PATH
392+do
393+ IFS=$as_save_IFS
394+ case $as_dir in #(((
395+ '') as_dir=./ ;;
396+ */) ;;
397+ *) as_dir=$as_dir/ ;;
398+ esac
399+ for ac_exec_ext in '' $ac_executable_extensions; do
400+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
401+ ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
402+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
403+ break 2
404+ fi
405+done
406+ done
407+IFS=$as_save_IFS
408+
409+ ;;
410+esac
411+fi
412+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
413+if test -n "$PKG_CONFIG"; then
414+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
415+printf "%s\n" "$PKG_CONFIG" >&6; }
416+else
417+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
418+printf "%s\n" "no" >&6; }
419+fi
420+
421+
422+fi
423+if test -z "$ac_cv_path_PKG_CONFIG"; then
424+ ac_pt_PKG_CONFIG=$PKG_CONFIG
425+ # Extract the first word of "pkg-config", so it can be a program name with args.
426+set dummy pkg-config; ac_word=$2
427+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
428+printf %s "checking for $ac_word... " >&6; }
429+if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
430+then :
431+ printf %s "(cached) " >&6
432+else $as_nop
433+ case $ac_pt_PKG_CONFIG in
434+ [\\/]* | ?:[\\/]*)
435+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
436+ ;;
437+ *)
438+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
439+for as_dir in $PATH
440+do
441+ IFS=$as_save_IFS
442+ case $as_dir in #(((
443+ '') as_dir=./ ;;
444+ */) ;;
445+ *) as_dir=$as_dir/ ;;
446+ esac
447+ for ac_exec_ext in '' $ac_executable_extensions; do
448+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
449+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
450+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
451+ break 2
452+ fi
453+done
454+ done
455+IFS=$as_save_IFS
456+
457+ ;;
458+esac
459+fi
460+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
461+if test -n "$ac_pt_PKG_CONFIG"; then
462+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
463+printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
464+else
465+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
466+printf "%s\n" "no" >&6; }
467+fi
468+
469+ if test "x$ac_pt_PKG_CONFIG" = x; then
470+ PKG_CONFIG=""
471+ else
472+ case $cross_compiling:$ac_tool_warned in
473+yes:)
474+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
475+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
476+ac_tool_warned=yes ;;
477+esac
478+ PKG_CONFIG=$ac_pt_PKG_CONFIG
479+ fi
480+else
481+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
482+fi
483+
484+fi
485+if test -n "$PKG_CONFIG"; then
486+ _pkg_min_version=0.9.0
487+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
488+printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
489+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
490+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
491+printf "%s\n" "yes" >&6; }
492+ else
493+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
494+printf "%s\n" "no" >&6; }
495+ PKG_CONFIG=""
496+ fi
497+fi
498+
499+pkg_failed=no
500+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LIBMOUNT" >&5
501+printf %s "checking for LIBMOUNT... " >&6; }
502+
503+if test -n "$LIBMOUNT_CFLAGS"; then
504+ pkg_cv_LIBMOUNT_CFLAGS="$LIBMOUNT_CFLAGS"
505+ elif test -n "$PKG_CONFIG"; then
506+ if test -n "$PKG_CONFIG" && \
507+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mount\""; } >&5
508+ ($PKG_CONFIG --exists --print-errors "mount") 2>&5
509+ ac_status=$?
510+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
511+ test $ac_status = 0; }; then
512+ pkg_cv_LIBMOUNT_CFLAGS=`$PKG_CONFIG --cflags "mount" 2>/dev/null`
513+ test "x$?" != "x0" && pkg_failed=yes
514+else
515+ pkg_failed=yes
516+fi
517+ else
518+ pkg_failed=untried
519+fi
520+if test -n "$LIBMOUNT_LIBS"; then
521+ pkg_cv_LIBMOUNT_LIBS="$LIBMOUNT_LIBS"
522+ elif test -n "$PKG_CONFIG"; then
523+ if test -n "$PKG_CONFIG" && \
524+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mount\""; } >&5
525+ ($PKG_CONFIG --exists --print-errors "mount") 2>&5
526+ ac_status=$?
527+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
528+ test $ac_status = 0; }; then
529+ pkg_cv_LIBMOUNT_LIBS=`$PKG_CONFIG --libs "mount" 2>/dev/null`
530+ test "x$?" != "x0" && pkg_failed=yes
531+else
532+ pkg_failed=yes
533+fi
534+ else
535+ pkg_failed=untried
536+fi
537+
538+
539+
540+if test $pkg_failed = yes; then
541+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
542+printf "%s\n" "no" >&6; }
543+
544+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
545+ _pkg_short_errors_supported=yes
546+else
547+ _pkg_short_errors_supported=no
548+fi
549+ if test $_pkg_short_errors_supported = yes; then
550+ LIBMOUNT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "mount" 2>&1`
551+ else
552+ LIBMOUNT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "mount" 2>&1`
553+ fi
554+ # Put the nasty error message in config.log where it belongs
555+ echo "$LIBMOUNT_PKG_ERRORS" >&5
556+
557+ as_fn_error $? "Package requirements (mount) were not met:
558+
559+$LIBMOUNT_PKG_ERRORS
560+
561+Consider adjusting the PKG_CONFIG_PATH environment variable if you
562+installed software in a non-standard prefix.
563+
564+Alternatively, you may set the environment variables LIBMOUNT_CFLAGS
565+and LIBMOUNT_LIBS to avoid the need to call pkg-config.
566+See the pkg-config man page for more details." "$LINENO" 5
567+elif test $pkg_failed = untried; then
568+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
569+printf "%s\n" "no" >&6; }
570+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
571+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
572+as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
573+is in your PATH or set the PKG_CONFIG environment variable to the full
574+path to pkg-config.
575+
576+Alternatively, you may set the environment variables LIBMOUNT_CFLAGS
577+and LIBMOUNT_LIBS to avoid the need to call pkg-config.
578+See the pkg-config man page for more details.
579+
580+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
581+See \`config.log' for more details" "$LINENO" 5; }
582+else
583+ LIBMOUNT_CFLAGS=$pkg_cv_LIBMOUNT_CFLAGS
584+ LIBMOUNT_LIBS=$pkg_cv_LIBMOUNT_LIBS
585+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
586+printf "%s\n" "yes" >&6; }
587+
588+fi
589+ fi
590+
591 # Check whether --enable-nfsdcltrack was given.
592 if test ${enable_nfsdcltrack+y}
593 then :
594@@ -7418,11 +7640,11 @@ if test x$ac_prog_cxx_stdcxx = xno
595 then :
596 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5
597 printf %s "checking for $CXX option to enable C++11 features... " >&6; }
598-if test ${ac_cv_prog_cxx_11+y}
599+if test ${ac_cv_prog_cxx_cxx11+y}
600 then :
601 printf %s "(cached) " >&6
602 else $as_nop
603- ac_cv_prog_cxx_11=no
604+ ac_cv_prog_cxx_cxx11=no
605 ac_save_CXX=$CXX
606 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
607 /* end confdefs.h. */
608@@ -7464,11 +7686,11 @@ if test x$ac_prog_cxx_stdcxx = xno
609 then :
610 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5
611 printf %s "checking for $CXX option to enable C++98 features... " >&6; }
612-if test ${ac_cv_prog_cxx_98+y}
613+if test ${ac_cv_prog_cxx_cxx98+y}
614 then :
615 printf %s "(cached) " >&6
616 else $as_nop
617- ac_cv_prog_cxx_98=no
618+ ac_cv_prog_cxx_cxx98=no
619 ac_save_CXX=$CXX
620 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
621 /* end confdefs.h. */
622@@ -24825,12 +25047,12 @@ AM_CFLAGS="$my_am_cflags $flg1 $flg2 $flg3 $flg4 $flg5"
623 ACLOCAL_AMFLAGS="-I $ac_macro_dir \$(ACLOCAL_FLAGS)"
624
625
626-# make _sysconfdir available for substituion in config files
627+# make _sysconfdir available for substitution in config files
628 # 2 "evals" needed late to expand variable names.
629
630
631
632-# make _statedir available for substituion in config files
633+# make _statedir available for substitution in config files
634 # 2 "evals" needed late to expand variable names.
635
636
637@@ -24842,12 +25064,12 @@ else
638 fi
639
640
641-# make _rpc_pipefsmount available for substituion in config files
642+# make _rpc_pipefsmount available for substitution in config files
643 # 2 "evals" needed late to expand variable names.
644
645
646
647-ac_config_files="$ac_config_files Makefile systemd/rpc-gssd.service systemd/rpc_pipefs.target systemd/var-lib-nfs-rpc_pipefs.mount linux-nfs/Makefile support/Makefile support/export/Makefile support/include/nfs/Makefile support/include/rpcsvc/Makefile support/include/sys/fs/Makefile support/include/sys/Makefile support/include/Makefile support/junction/Makefile support/misc/Makefile support/nfs/Makefile support/nsm/Makefile support/nfsidmap/Makefile support/nfsidmap/libnfsidmap.pc tools/Makefile tools/locktest/Makefile tools/nlmtest/Makefile tools/rpcdebug/Makefile tools/rpcgen/Makefile tools/mountstats/Makefile tools/nfs-iostat/Makefile tools/nfsrahead/Makefile tools/rpcctl/Makefile tools/nfsdclnts/Makefile tools/nfsconf/Makefile tools/nfsdclddb/Makefile utils/Makefile utils/blkmapd/Makefile utils/nfsdcld/Makefile utils/nfsdcltrack/Makefile utils/exportfs/Makefile utils/gssd/Makefile utils/idmapd/Makefile utils/mount/Makefile utils/mountd/Makefile utils/exportd/Makefile utils/nfsd/Makefile utils/nfsref/Makefile utils/nfsstat/Makefile utils/nfsidmap/Makefile utils/showmount/Makefile utils/statd/Makefile systemd/Makefile tests/Makefile tests/nsm_client/Makefile"
648+ac_config_files="$ac_config_files Makefile systemd/rpc-gssd.service systemd/rpc_pipefs.target systemd/var-lib-nfs-rpc_pipefs.mount linux-nfs/Makefile support/Makefile support/export/Makefile support/include/nfs/Makefile support/include/rpcsvc/Makefile support/include/sys/fs/Makefile support/include/sys/Makefile support/include/Makefile support/junction/Makefile support/misc/Makefile support/nfs/Makefile support/nsm/Makefile support/nfsidmap/Makefile support/nfsidmap/libnfsidmap.pc support/reexport/Makefile tools/Makefile tools/locktest/Makefile tools/nlmtest/Makefile tools/rpcdebug/Makefile tools/rpcgen/Makefile tools/mountstats/Makefile tools/nfs-iostat/Makefile tools/nfsrahead/Makefile tools/rpcctl/Makefile tools/nfsdclnts/Makefile tools/nfsconf/Makefile tools/nfsdclddb/Makefile utils/Makefile utils/blkmapd/Makefile utils/nfsdcld/Makefile utils/nfsdcltrack/Makefile utils/exportfs/Makefile utils/gssd/Makefile utils/idmapd/Makefile utils/mount/Makefile utils/mountd/Makefile utils/exportd/Makefile utils/nfsd/Makefile utils/nfsref/Makefile utils/nfsstat/Makefile utils/nfsidmap/Makefile utils/showmount/Makefile utils/statd/Makefile systemd/Makefile tests/Makefile tests/nsm_client/Makefile"
649
650 cat >confcache <<\_ACEOF
651 # This file is a shell script that caches the results of configure
652@@ -24990,10 +25212,6 @@ if test -z "${INSTALL_SYSTEMD_TRUE}" && test -z "${INSTALL_SYSTEMD_FALSE}"; then
653 as_fn_error $? "conditional \"INSTALL_SYSTEMD\" was never defined.
654 Usually this means the macro was only invoked conditionally." "$LINENO" 5
655 fi
656-if test -z "${INSTALL_MODPROBEDIR_TRUE}" && test -z "${INSTALL_MODPROBEDIR_FALSE}"; then
657- as_fn_error $? "conditional \"INSTALL_MODPROBEDIR\" was never defined.
658-Usually this means the macro was only invoked conditionally." "$LINENO" 5
659-fi
660 if test -z "${CONFIG_NFSV4_TRUE}" && test -z "${CONFIG_NFSV4_FALSE}"; then
661 as_fn_error $? "conditional \"CONFIG_NFSV4\" was never defined.
662 Usually this means the macro was only invoked conditionally." "$LINENO" 5
663@@ -25038,6 +25256,10 @@ if test -z "${MOUNT_CONFIG_TRUE}" && test -z "${MOUNT_CONFIG_FALSE}"; then
664 as_fn_error $? "conditional \"MOUNT_CONFIG\" was never defined.
665 Usually this means the macro was only invoked conditionally." "$LINENO" 5
666 fi
667+if test -z "${CONFIG_NFSRAHEAD_TRUE}" && test -z "${CONFIG_NFSRAHEAD_FALSE}"; then
668+ as_fn_error $? "conditional \"CONFIG_NFSRAHEAD\" was never defined.
669+Usually this means the macro was only invoked conditionally." "$LINENO" 5
670+fi
671 if test -z "${CONFIG_NFSV4SERVER_TRUE}" && test -z "${CONFIG_NFSV4SERVER_FALSE}"; then
672 as_fn_error $? "conditional \"CONFIG_NFSV4SERVER\" was never defined.
673 Usually this means the macro was only invoked conditionally." "$LINENO" 5
674@@ -25471,7 +25693,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
675 # report actual input values of CONFIG_FILES etc. instead of their
676 # values after options handling.
677 ac_log="
678-This file was extended by linux nfs-utils $as_me 2.6.2, which was
679+This file was extended by linux nfs-utils $as_me 2.6.3, which was
680 generated by GNU Autoconf 2.71. Invocation command line was
681
682 CONFIG_FILES = $CONFIG_FILES
683@@ -25539,7 +25761,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
684 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
685 ac_cs_config='$ac_cs_config_escaped'
686 ac_cs_version="\\
687-linux nfs-utils config.status 2.6.2
688+linux nfs-utils config.status 2.6.3
689 configured by $0, generated by GNU Autoconf 2.71,
690 with options \\"\$ac_cs_config\\"
691
692@@ -26072,6 +26294,7 @@ do
693 "support/nsm/Makefile") CONFIG_FILES="$CONFIG_FILES support/nsm/Makefile" ;;
694 "support/nfsidmap/Makefile") CONFIG_FILES="$CONFIG_FILES support/nfsidmap/Makefile" ;;
695 "support/nfsidmap/libnfsidmap.pc") CONFIG_FILES="$CONFIG_FILES support/nfsidmap/libnfsidmap.pc" ;;
696+ "support/reexport/Makefile") CONFIG_FILES="$CONFIG_FILES support/reexport/Makefile" ;;
697 "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
698 "tools/locktest/Makefile") CONFIG_FILES="$CONFIG_FILES tools/locktest/Makefile" ;;
699 "tools/nlmtest/Makefile") CONFIG_FILES="$CONFIG_FILES tools/nlmtest/Makefile" ;;
700diff --git a/configure.ac b/configure.ac
701index f1c46c5..4ade528 100644
702--- a/configure.ac
703+++ b/configure.ac
704@@ -1,6 +1,6 @@
705 dnl Process this file with autoconf to produce a configure script.
706 dnl
707-AC_INIT([linux nfs-utils],[2.6.2],[linux-nfs@vger.kernel.org],[nfs-utils])
708+AC_INIT([linux nfs-utils],[2.6.3],[linux-nfs@vger.kernel.org],[nfs-utils])
709 AC_CANONICAL_BUILD([])
710 AC_CANONICAL_HOST([])
711 AC_CONFIG_MACRO_DIR(aclocal)
712@@ -71,18 +71,6 @@ AC_ARG_WITH(systemd,
713 AM_CONDITIONAL(INSTALL_SYSTEMD, [test "$use_systemd" = 1])
714 AC_SUBST(unitdir)
715
716-modprobedir=/usr/lib/modprobe.d
717-AC_ARG_WITH(modprobedir,
718- [AS_HELP_STRING([--with-modprobedir@<:@=modprobe-dir-path@:>@],[install modprobe config files @<:@Default: /usr/lib/modprobe.d@:>@])],
719- if test "$withval" != "no" ; then
720- modprobedir=$withval
721- else
722- modprobedir=
723- fi
724- )
725- AM_CONDITIONAL(INSTALL_MODPROBEDIR, [test -n "$modprobedir"])
726- AC_SUBST(modprobedir)
727-
728 AC_ARG_ENABLE(nfsv4,
729 [AS_HELP_STRING([--disable-nfsv4],[disable support for NFSv4 @<:@default=no@:>@])],
730 enable_nfsv4=$enableval,
731@@ -249,6 +237,16 @@ AC_ARG_ENABLE(nfsdcld,
732 enable_nfsdcld=$enableval,
733 enable_nfsdcld="yes")
734
735+AC_ARG_ENABLE(nfsrahead,
736+ [AS_HELP_STRING([--disable-nfsrahead],[disable nfsrahead command @<:@default=no@:>@])],
737+ enable_nfsrahead=$enableval,
738+ enable_nfsrahead="yes")
739+ AM_CONDITIONAL(CONFIG_NFSRAHEAD, [test "$enable_nfsrahead" = "yes" ])
740+ if test "$enable_nfsrahead" = yes; then
741+ dnl Check for -lmount
742+ PKG_CHECK_MODULES([LIBMOUNT], [mount])
743+ fi
744+
745 AC_ARG_ENABLE(nfsdcltrack,
746 [AS_HELP_STRING([--disable-nfsdcltrack],[disable NFSv4 clientid tracking programs @<:@default=no@:>@])],
747 enable_nfsdcltrack=$enableval,
748@@ -678,12 +676,12 @@ AC_SUBST([AM_CFLAGS], ["$my_am_cflags $flg1 $flg2 $flg3 $flg4 $flg5"])
749 # Make sure that $ACLOCAL_FLAGS are used during a rebuild
750 AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
751
752-# make _sysconfdir available for substituion in config files
753+# make _sysconfdir available for substitution in config files
754 # 2 "evals" needed late to expand variable names.
755 AC_SUBST([_sysconfdir])
756 AC_CONFIG_COMMANDS_PRE([eval eval _sysconfdir=$sysconfdir])
757
758-# make _statedir available for substituion in config files
759+# make _statedir available for substitution in config files
760 # 2 "evals" needed late to expand variable names.
761 AC_SUBST([_statedir])
762 AC_CONFIG_COMMANDS_PRE([eval eval _statedir=$statedir])
763@@ -695,7 +693,7 @@ else
764 fi
765 AC_SUBST(rpc_pipefsmount)
766
767-# make _rpc_pipefsmount available for substituion in config files
768+# make _rpc_pipefsmount available for substitution in config files
769 # 2 "evals" needed late to expand variable names.
770 AC_SUBST([_rpc_pipefsmount])
771 AC_CONFIG_COMMANDS_PRE([eval eval _rpc_pipefsmount=$rpc_pipefsmount])
772@@ -719,6 +717,7 @@ AC_CONFIG_FILES([
773 support/nsm/Makefile
774 support/nfsidmap/Makefile
775 support/nfsidmap/libnfsidmap.pc
776+ support/reexport/Makefile
777 tools/Makefile
778 tools/locktest/Makefile
779 tools/nlmtest/Makefile
780diff --git a/debian/changelog b/debian/changelog
781index ac87df3..252dbff 100644
782--- a/debian/changelog
783+++ b/debian/changelog
784@@ -1,3 +1,105 @@
785+<<<<<<< debian/changelog
786+=======
787+nfs-utils (1:2.6.3-3ubuntu1) mantic; urgency=medium
788+
789+ * Merge with Debian unstable. Remaining changes:
790+ - d/control: don't provide libnfsidmap2 in libnfsidmap1. This
791+ package contains not only plugins, but an actual shared library,
792+ with a different soname.
793+ - Update README file:
794+ + d/README.Ubuntu: new /etc/nfs.conf config structure
795+ + d/libnfsidmap1.docs, d/nfs-common.docs: install README.Ubuntu
796+ - New apport hook (LP #1961058):
797+ + d/source.apport: apport hook for nfs-utils
798+ + d/control: build-depend dh-apport
799+ + d/rules: build with apport, and install the hook in the
800+ nfs-common package which is installed on both client and servers
801+ - Add more DEP8 tests (LP #1960828):
802+ + d/t/{control,kerberos-mount,util}: test NFSv4 krb5p mounts
803+ + d/t/{control, v3-mount}: specific NFSv3 mount test
804+ - Move the regex module to a separate binary package libnfsidmap-regex
805+ (LP #1974067):
806+ + d/control: new package, adjust breaks/conflicts
807+ + d/libnfsidmap-regex.install: install the plugin file
808+ + d/libnfsidmap1.install: don't install regex.so
809+ + d/p/ubuntu-idmapd-manpage-update-regex-other-package.patch:
810+ note that the regex plugin is in another package
811+ - rpc.svcgssd fixes and improvements (LP #1977745):
812+ + d/p/nfs-conf-manpage-missing-svcgssd-options.patch: also
813+ document the missing svcgssd options to the nfs.conf(5) manpage
814+ - d/not-installed: mark files we knowingly don't include in the
815+ packaging
816+ * Dropped changes:
817+ - Rely on the generator units for the rpc_pipefs mount (LP #1971935):
818+ + d/p/always-run-generator.patch: run the generator even if the
819+ config differs from the built-in default
820+ + d/rules: exclude the units we will let the generator produce
821+ [Fixed in 1:2.6.3-1]
822+
823+ -- Vladimir Petko <vladimir.petko@canonical.com> Tue, 08 Aug 2023 09:54:52 +1200
824+
825+nfs-utils (1:2.6.3-3) unstable; urgency=medium
826+
827+ * nfs-idmapd.service: add network-online.target to Wants= and After=
828+ (Closes: #1035840)
829+ * libnfsidmap: try to get the domain directly from hostname if the DNS
830+ lookup fails and always show the log message if the domain can't be
831+ determined
832+
833+ -- Salvatore Bonaccorso <carnil@debian.org> Tue, 01 Aug 2023 15:10:41 +0200
834+
835+nfs-utils (1:2.6.3-2) unstable; urgency=medium
836+
837+ * fsidd: provide better default socket name. (Closes: #1041147)
838+ * nfs-kernel-server: Handle leftover /fsid.sock socket
839+
840+ -- Salvatore Bonaccorso <carnil@debian.org> Mon, 24 Jul 2023 11:01:42 +0200
841+
842+nfs-utils (1:2.6.3-1) unstable; urgency=medium
843+
844+ [ Andreas Hasenack ]
845+ * Rely on the generator units for the rpc_pipefs mount (Closes: #1014429)
846+ - d/p/always-run-generator.patch: run the generator even if the config
847+ differs from the built-in default
848+ - d/rules: exclude the units we will let the generator produce
849+
850+ [ Ben Hutchings ]
851+ * Remove obsolete postinst upgrade logic and nfsconvert.py
852+ * init: Remove support for setting command-line options in /etc/default
853+ * d/salsa-ci.yml: Add shellcheck job
854+ * start-statd: Fix shellcheck warnings
855+ * init: Fix shellcheck warnings and info, thanks to наб (Closes: #1017869)
856+ * d/*.bug-script: Fix redundant use of cat noted by shellcheck
857+
858+ [ Salvatore Bonaccorso ]
859+ * Upload to unstable
860+
861+ -- Salvatore Bonaccorso <carnil@debian.org> Sun, 09 Jul 2023 10:34:04 +0200
862+
863+nfs-utils (1:2.6.3-1~exp1) experimental; urgency=medium
864+
865+ [ Ben Hutchings ]
866+ * d/control: Remove obsolete dependencies on lsb-base
867+
868+ [ Salvatore Bonaccorso ]
869+ * New upstream version 2.6.3
870+ * nfs-kernel-server: export: Add fsidd
871+ * nfs-kernel-server: Add fsid systemd service file
872+ * debian/rules: Replace call to dpkg-architecture with Makefile snippet
873+ include
874+ * nfs-common: lintian-overrides: Adapt overrides to new format
875+ * nfs-kernel-server: lintian-overrides: Adapt overrides to new format
876+
877+ [ наб ]
878+ * d/nfs-common.bug-script: fix stray \ warnings
879+ * d/nfs-kernel-server.bug-script: fix stray \ warnings
880+
881+ [ Debian Janitor ]
882+ * Apply multi-arch hints: libnfsidmap-dev: Add Multi-Arch: same
883+
884+ -- Salvatore Bonaccorso <carnil@debian.org> Sun, 23 Apr 2023 18:08:07 +0200
885+
886+>>>>>>> debian/changelog
887 nfs-utils (1:2.6.2-4ubuntu1) lunar; urgency=medium
888
889 * Merge with Debian unstable. Remaining changes:
890diff --git a/debian/control b/debian/control
891index e268002..e6a18e4 100644
892--- a/debian/control
893+++ b/debian/control
894@@ -12,7 +12,7 @@ Vcs-Browser: https://salsa.debian.org/kernel-team/nfs-utils
895
896 Package: nfs-kernel-server
897 Architecture: any
898-Depends: ${shlibs:Depends}, ${misc:Depends}, nfs-common (= ${binary:Version}), ucf, netbase, lsb-base, keyutils
899+Depends: ${shlibs:Depends}, ${misc:Depends}, nfs-common (= ${binary:Version}), ucf, netbase, keyutils
900 Provides: knfs, nfs-server
901 Conflicts: knfs, nfs-server
902 Replaces: knfs, nfs-server
903@@ -34,7 +34,7 @@ Description: support for NFS kernel server
904 Package: nfs-common
905 Architecture: any
906 Pre-Depends: ${misc:Pre-Depends}
907-Depends: ${shlibs:Depends}, ${misc:Depends}, libnfsidmap1 (= ${binary:Version}), rpcbind, adduser, ucf, lsb-base, keyutils, python3
908+Depends: ${shlibs:Depends}, ${misc:Depends}, libnfsidmap1 (= ${binary:Version}), rpcbind, adduser, ucf, keyutils, python3
909 Suggests: open-iscsi, watchdog
910 Provides: nfs-client
911 Conflicts: nfs-client
912@@ -48,6 +48,7 @@ Package: libnfsidmap-dev
913 Section: libdevel
914 Architecture: any
915 Depends: libnfsidmap1 (= ${binary:Version}), ${misc:Depends}
916+Multi-Arch: same
917 Description: header files and docs for libnfsidmap
918 Contains the header files and documentation for libnfsidmap
919 for use in developing applications that use the libnfsidmap library.
920diff --git a/debian/copyright b/debian/copyright
921index f286135..6e68099 100644
922--- a/debian/copyright
923+++ b/debian/copyright
924@@ -87,4 +87,3 @@ Copyright Notices
925 Copyright (C) 2007 Chuck Lever <chuck.lever@oracle.com>
926 Copyright (C) 2007 Oracle. All rights reserved.
927 Copyright (C) 2008 Oracle Corporation. All rights reserved.
928- Copyright 2018, 2019 Red Hat, Inc.
929diff --git a/debian/nfs-common.bug-script b/debian/nfs-common.bug-script
930index 9b3dc0c..ae348bd 100644
931--- a/debian/nfs-common.bug-script
932+++ b/debian/nfs-common.bug-script
933@@ -9,23 +9,23 @@ echo '-- rpcinfo --' >&3
934 /usr/sbin/rpcinfo -p >&3
935
936 echo '-- /etc/default/nfs-common --' >&3
937-cat /etc/default/nfs-common|grep_no_match_ok -v -e '^\#' -e '^$' >&3
938+grep_no_match_ok -v -e '^#' -e '^$' /etc/default/nfs-common >&3
939
940 echo '-- /etc/nfs.conf --' >&3
941-cat /etc/nfs.conf|grep_no_match_ok -v -e '^\#' -e '^$' >&3
942+grep_no_match_ok -v -e '^#' -e '^$' /etc/nfs.conf >&3
943
944 if [ -d /etc/nfs.conf.d ]; then
945 for f in /etc/nfs.conf.d/*.conf; do
946 echo "-- $f --" >&3
947- cat "$f" | grep_no_match_ok -v -e '^\#' -e '^$' >&3
948+ grep_no_match_ok -v -e '^#' -e '^$' "$f" >&3
949 done
950 fi
951
952 echo '-- /etc/idmapd.conf --' >&3
953-cat /etc/idmapd.conf|grep_no_match_ok -v -e '^\#' -e '^$' >&3
954+grep_no_match_ok -v -e '^#' -e '^$' /etc/idmapd.conf >&3
955
956 echo '-- /etc/fstab --' >&3
957-cat /etc/fstab|grep_no_match_ok nfs >&3
958+grep_no_match_ok nfs /etc/fstab >&3
959
960 echo '-- /proc/mounts --' >&3
961-cat /proc/mounts|grep_no_match_ok nfs >&3
962+grep_no_match_ok nfs /proc/mounts >&3
963diff --git a/debian/nfs-common.default b/debian/nfs-common.default
964index 0e373e6..7256fb2 100644
965--- a/debian/nfs-common.default
966+++ b/debian/nfs-common.default
967@@ -5,13 +5,6 @@
968 # Do you want to start the statd daemon? It is not needed for NFSv4.
969 NEED_STATD=
970
971-# Options for rpc.statd.
972-# Should rpc.statd listen on a specific port? This is especially useful
973-# when you have a port-based firewall. To use a fixed port, set this
974-# this variable to a statd argument like: "--port 4000 --outgoing-port 4001".
975-# For more information, see rpc.statd(8) or http://wiki.debian.org/SecuringNFS
976-STATDOPTS=
977-
978 # Do you want to start the idmapd daemon? It is only needed for NFSv4.
979 NEED_IDMAPD=
980
981diff --git a/debian/nfs-common.init b/debian/nfs-common.init
982index 052de51..6480ba9 100644
983--- a/debian/nfs-common.init
984+++ b/debian/nfs-common.init
985@@ -20,7 +20,6 @@ DEFAULTFILE=/etc/default/nfs-common
986 NEED_STATD=
987 NEED_GSSD=
988 PIPEFS_MOUNTPOINT=/run/rpc_pipefs
989-RPCGSSDOPTS=
990 if [ -f $DEFAULTFILE ]; then
991 . $DEFAULTFILE
992 fi
993@@ -40,7 +39,7 @@ AUTO_NEED_GSSD=no
994 if [ -f /etc/fstab ]; then
995 exec 9<&0 </etc/fstab
996
997- while read DEV MTPT FSTYPE OPTS REST
998+ while read -r DEV _ _ OPTS _
999 do
1000 case $DEV in
1001 ''|\#*)
1002@@ -87,7 +86,7 @@ case "$NEED_GSSD" in
1003 esac
1004
1005 do_modprobe() {
1006- if [ -x /sbin/modprobe -a -f /proc/modules ]
1007+ if [ -x /sbin/modprobe ] && [ -f /proc/modules ]
1008 then
1009 modprobe -q "$1" || true
1010 fi
1011@@ -134,7 +133,7 @@ case "$1" in
1012 fi
1013 start-stop-daemon --start --oknodo --quiet \
1014 --pidfile /run/rpc.statd.pid \
1015- --exec /sbin/rpc.statd -- $STATDOPTS
1016+ --exec /sbin/rpc.statd
1017 RET=$?
1018 if [ $RET != 0 ]; then
1019 log_end_msg $RET
1020@@ -184,7 +183,7 @@ case "$1" in
1021 fi
1022
1023 start-stop-daemon --start --oknodo --quiet \
1024- --exec /usr/sbin/rpc.gssd -- $RPCGSSDOPTS
1025+ --exec /usr/sbin/rpc.gssd
1026 RET=$?
1027 if [ $RET != 0 ]; then
1028 log_end_msg $RET
1029diff --git a/debian/nfs-common.install b/debian/nfs-common.install
1030index 5ebdf64..8604c0c 100644
1031--- a/debian/nfs-common.install
1032+++ b/debian/nfs-common.install
1033@@ -29,6 +29,5 @@ debian/tmp/lib/systemd/system/nfs-idmapd.service
1034 debian/tmp/lib/systemd/system/nfs-client.target
1035 debian/tmp/lib/systemd/system/nfs-utils.service
1036 debian/tmp/usr/sbin/nfsconf
1037-debian/nfsconvert.py usr/share/nfs-common/
1038 debian/tmp/usr/lib/udev/rules.d/99-nfs.rules
1039 debian/tmp/usr/libexec/nfsrahead
1040diff --git a/debian/nfs-common.lintian-overrides b/debian/nfs-common.lintian-overrides
1041index 0a7fafc..b26b930 100644
1042--- a/debian/nfs-common.lintian-overrides
1043+++ b/debian/nfs-common.lintian-overrides
1044@@ -1,6 +1,6 @@
1045-nfs-common: file-missing-in-md5sums var/lib/nfs/state
1046+nfs-common: file-missing-in-md5sums var/lib/nfs/state [md5sums]
1047 nfs-common: elevated-privileges 4755 root/root [sbin/mount.nfs]
1048 # The mount.nfs and umount.nfs manual pages also cover these, but
1049 # lintian doesn't notice that
1050-nfs-common: no-manual-page sbin/mount.nfs4
1051-nfs-common: no-manual-page sbin/umount.nfs4
1052+nfs-common: no-manual-page [sbin/mount.nfs4]
1053+nfs-common: no-manual-page [sbin/umount.nfs4]
1054diff --git a/debian/nfs-common.postinst b/debian/nfs-common.postinst
1055index 325f006..d0ffe74 100644
1056--- a/debian/nfs-common.postinst
1057+++ b/debian/nfs-common.postinst
1058@@ -12,34 +12,11 @@ case "$1" in
1059 adduser --system --home /var/lib/nfs --no-create-home statd
1060 fi
1061
1062- # Don't make /var/lib/nfs owned by statd. Only sm and sm.bak need to be
1063- # accessible by statd or sm-notify after they drop privileges.
1064- # https://bugs.debian.org/940848 (CVE-2019-3689)
1065- if dpkg --compare-versions "$2" lt 1:1.3.4-3; then
1066- chown root:root /var/lib/nfs
1067- fi
1068 chown statd: /var/lib/nfs/sm \
1069 /var/lib/nfs/sm.bak
1070 if [ -f /var/lib/nfs/state ]; then
1071 chown statd /var/lib/nfs/state
1072 fi
1073-
1074- # Convert default files to /etc/nfs.conf.d/local.conf if they
1075- # have been modified
1076- if dpkg --compare-versions "$2" lt 1:2.6.1-1~exp2 &&
1077- ! md5sum --status --ignore-missing -c <<EOF
1078-ddcb1fbb90a14ff9850f22eed0127a10 /etc/default/nfs-common
1079-fa4e0530df26499ca3940353fbfbf241 /etc/default/nfs-kernel-server
1080-EOF
1081- then
1082- mkdir -p /etc/nfs.conf.d
1083- /usr/share/nfs-common/nfsconvert.py
1084- fi
1085-
1086- # Remove obsolete symlinks for sysvinit runlevels 2-5
1087- if dpkg --compare-versions "$2" lt 1:2.6.1-2~; then
1088- update-rc.d -f nfs-common remove
1089- fi
1090 ;;
1091 esac
1092
1093diff --git a/debian/nfs-kernel-server.bug-script b/debian/nfs-kernel-server.bug-script
1094index 5ad593f..50e1350 100644
1095--- a/debian/nfs-kernel-server.bug-script
1096+++ b/debian/nfs-kernel-server.bug-script
1097@@ -9,20 +9,20 @@ echo '-- rpcinfo --' >&3
1098 /usr/sbin/rpcinfo -p >&3
1099
1100 echo '-- /etc/default/nfs-kernel-server --' >&3
1101-cat /etc/default/nfs-kernel-server|grep_no_match_ok -v -e '\#' -e '^$' >&3
1102+grep_no_match_ok -v -e '#' -e '^$' /etc/default/nfs-kernel-server >&3
1103
1104 echo '-- /etc/nfs.conf --' >&3
1105-cat /etc/nfs.conf|grep_no_match_ok -v -e '^\#' -e '^$' >&3
1106+grep_no_match_ok -v -e '^#' -e '^$' /etc/nfs.conf >&3
1107
1108 if [ -d /etc/nfs.conf.d ]; then
1109 for f in /etc/nfs.conf.d/*.conf; do
1110 echo "-- $f --" >&3
1111- cat "$f" | grep_no_match_ok -v -e '^\#' -e '^$' >&3
1112+ grep_no_match_ok -v -e '^#' -e '^$' "$f" >&3
1113 done
1114 fi
1115
1116 echo '-- /etc/exports --' >&3
1117-cat /etc/exports|grep_no_match_ok -v -e '^\#' -e '^$' >&3
1118+grep_no_match_ok -v -e '^#' -e '^$' /etc/exports >&3
1119
1120 echo '-- /proc/fs/nfs/exports --' >&3
1121 cat /proc/fs/nfs/exports >&3
1122diff --git a/debian/nfs-kernel-server.default b/debian/nfs-kernel-server.default
1123index 7137dae..a747a28 100644
1124--- a/debian/nfs-kernel-server.default
1125+++ b/debian/nfs-kernel-server.default
1126@@ -1,19 +1,6 @@
1127-# Number of servers to start up
1128-RPCNFSDCOUNT=8
1129-
1130 # Runtime priority of server (see nice(1))
1131 RPCNFSDPRIORITY=0
1132
1133-# Options for rpc.mountd.
1134-# If you have a port-based firewall, you might want to set up
1135-# a fixed port here using the --port option. For more information,
1136-# see rpc.mountd(8) or http://wiki.debian.org/SecuringNFS
1137-# To disable NFSv4 on the server, specify '--no-nfs-version 4' here
1138-RPCMOUNTDOPTS="--manage-gids"
1139-
1140 # Do you want to start the svcgssd daemon? It is only required for Kerberos
1141 # exports. Valid alternatives are "yes" and "no"; the default is "no".
1142 NEED_SVCGSSD=""
1143-
1144-# Options for rpc.svcgssd.
1145-RPCSVCGSSDOPTS=""
1146diff --git a/debian/nfs-kernel-server.init b/debian/nfs-kernel-server.init
1147index 88ee869..a8d4525 100644
1148--- a/debian/nfs-kernel-server.init
1149+++ b/debian/nfs-kernel-server.init
1150@@ -25,11 +25,8 @@ PREFIX=/usr
1151
1152 # Read config
1153 DEFAULTFILE=/etc/default/nfs-kernel-server
1154-RPCNFSDCOUNT=8
1155 RPCNFSDPRIORITY=0
1156-RPCMOUNTDOPTS=
1157 NEED_SVCGSSD=no
1158-RPCSVCGSSDOPTS=
1159 PROCNFSD_MOUNTPOINT=/proc/fs/nfsd
1160 if [ -f $DEFAULTFILE ]; then
1161 . $DEFAULTFILE
1162@@ -38,7 +35,7 @@ fi
1163 . /lib/lsb/init-functions
1164
1165 do_modprobe() {
1166- if [ -x /sbin/modprobe -a -f /proc/modules ]
1167+ if [ -x /sbin/modprobe ] && [ -f /proc/modules ]
1168 then
1169 modprobe -q "$1" || true
1170 fi
1171@@ -66,6 +63,7 @@ case "$1" in
1172 export_files="$export_files $file"
1173 fi
1174 done
1175+ # shellcheck disable=SC2086
1176 if [ -f /etc/exports ] && grep -q '^[[:space:]]*[^#]*/' $export_files
1177 then
1178 do_modprobe nfsd
1179@@ -100,7 +98,7 @@ case "$1" in
1180
1181 start-stop-daemon --start --oknodo --quiet \
1182 --nicelevel $RPCNFSDPRIORITY \
1183- --exec $PREFIX/sbin/rpc.nfsd -- $RPCNFSDCOUNT
1184+ --exec $PREFIX/sbin/rpc.nfsd
1185 RET=$?
1186 if [ $RET != 0 ]; then
1187 log_end_msg $RET
1188@@ -111,7 +109,7 @@ case "$1" in
1189 ClearAddr=
1190 if [ -f /proc/net/rpc/auth.unix.ip/channel ]
1191 then
1192- fgrep -qs 127.0.0.1 /proc/net/rpc/auth.unix.ip/content || {
1193+ grep -Fqs 127.0.0.1 /proc/net/rpc/auth.unix.ip/content || {
1194 echo "nfsd 127.0.0.1 2147483647 localhost" >/proc/net/rpc/auth.unix.ip/channel
1195 ClearAddr=yes
1196 }
1197@@ -123,7 +121,7 @@ case "$1" in
1198 do_modprobe rpcsec_gss_krb5
1199 log_progress_msg "svcgssd"
1200 start-stop-daemon --start --oknodo --quiet \
1201- --exec $PREFIX/sbin/rpc.svcgssd -- $RPCSVCGSSDOPTS
1202+ --exec $PREFIX/sbin/rpc.svcgssd
1203 RET=$?
1204 if [ $RET != 0 ]; then
1205 log_end_msg $RET
1206@@ -133,7 +131,7 @@ case "$1" in
1207
1208 log_progress_msg "mountd"
1209 start-stop-daemon --start --oknodo --quiet \
1210- --exec $PREFIX/sbin/rpc.mountd -- $RPCMOUNTDOPTS
1211+ --exec $PREFIX/sbin/rpc.mountd
1212 RET=$?
1213 if [ $RET != 0 ]; then
1214 log_end_msg $RET
1215diff --git a/debian/nfs-kernel-server.install b/debian/nfs-kernel-server.install
1216index 955f74c..72fa1f8 100644
1217--- a/debian/nfs-kernel-server.install
1218+++ b/debian/nfs-kernel-server.install
1219@@ -1,5 +1,6 @@
1220 debian/tmp/usr/sbin/exportfs
1221 debian/tmp/sbin/nfsdcltrack
1222+debian/tmp/usr/sbin/fsidd
1223 debian/tmp/usr/sbin/nfsdcld
1224 debian/tmp/usr/sbin/nfsdclddb
1225 debian/tmp/usr/sbin/nfsdclnts
1226@@ -9,6 +10,7 @@ debian/tmp/var/lib/nfs/etab
1227 debian/tmp/var/lib/nfs/rmtab
1228 debian/nfs-kernel-server.default /usr/share/nfs-kernel-server/conffiles/
1229 debian/etc.exports /usr/share/nfs-kernel-server/conffiles/
1230+debian/tmp/lib/systemd/system/fsidd.service
1231 debian/tmp/lib/systemd/system/nfs-blkmap.service
1232 debian/tmp/lib/systemd/system/nfs-mountd.service
1233 debian/tmp/lib/systemd/system/nfs-server.service
1234diff --git a/debian/nfs-kernel-server.lintian-overrides b/debian/nfs-kernel-server.lintian-overrides
1235index 31c0167..10c1eef 100644
1236--- a/debian/nfs-kernel-server.lintian-overrides
1237+++ b/debian/nfs-kernel-server.lintian-overrides
1238@@ -1,2 +1,2 @@
1239-nfs-kernel-server: file-missing-in-md5sums var/lib/nfs/rmtab
1240-nfs-kernel-server: file-missing-in-md5sums var/lib/nfs/etab
1241+nfs-kernel-server: file-missing-in-md5sums var/lib/nfs/rmtab [md5sums]
1242+nfs-kernel-server: file-missing-in-md5sums var/lib/nfs/etab [md5sums]
1243diff --git a/debian/nfs-kernel-server.postinst b/debian/nfs-kernel-server.postinst
1244index 11a0d72..f0cdc44 100644
1245--- a/debian/nfs-kernel-server.postinst
1246+++ b/debian/nfs-kernel-server.postinst
1247@@ -14,13 +14,14 @@ case "$1" in
1248 [ -e $f ] || touch $f
1249 done
1250
1251- # Since upstream version 2.1.1 use of /var/lib/nfs/xtab
1252- # has been removed and nfs-utils stops creating the file
1253- if dpkg --compare-versions "$2" lt 1:2.1.1; then
1254- rm -f /var/lib/nfs/xtab
1255- fi
1256-
1257 update-rc.d nfs-kernel-server defaults 20 80 >/dev/null
1258+
1259+ # Remove leftover /fsid.sock file on upgrade (Cf. #1041147)
1260+ if dpkg --compare-versions "$2" lt 1:2.6.3-2~; then
1261+ if [ -S /fsid.sock ]; then
1262+ rm -f /fsid.sock
1263+ fi
1264+ fi
1265 ;;
1266 esac
1267
1268diff --git a/debian/nfsconvert.py b/debian/nfsconvert.py
1269deleted file mode 100755
1270index 8b48749..0000000
1271--- a/debian/nfsconvert.py
1272+++ /dev/null
1273@@ -1,294 +0,0 @@
1274-#!/usr/bin/env python3
1275-"""
1276-Read in the /etc/default/nfs-{common,kernel-server} files and
1277-set the corresponding values in nfs.conf
1278-"""
1279-
1280-from __future__ import print_function
1281-import sys
1282-import getopt
1283-import subprocess
1284-
1285-CONF_NFS = '/etc/nfs.conf.d/local.conf'
1286-CONF_TOOL = '/usr/sbin/nfsconf'
1287-
1288-# options for nfsd found in RPCNFSDOPTS
1289-OPTS_NFSD = 'dH:p:rR:N:V:stTuUG:L:'
1290-LONG_NFSD = ['debug', 'host=', 'port=', 'rdma=', 'nfs-version=', 'no-nfs-version=',
1291- 'tcp', 'no-tcp', 'udp', 'no-udp', 'grace-time=', 'lease-time=']
1292-CONV_NFSD = {'-d': (CONF_NFS, 'nfsd', 'debug', 'all'),
1293- '-H': (CONF_NFS, 'nfsd', 'host', ','),
1294- '-p': (CONF_NFS, 'nfsd', 'port', '$1'),
1295- '-r': (CONF_NFS, 'nfsd', 'rdma', 'nfsrdma'),
1296- '-R': (CONF_NFS, 'nfsd', 'rdma', '$1'),
1297- '-N': (CONF_NFS, 'nfsd', 'vers$1', 'n'),
1298- '-V': (CONF_NFS, 'nfsd', 'vers$1', 'y'),
1299- '-t': (CONF_NFS, 'nfsd', 'tcp', '1'),
1300- '-T': (CONF_NFS, 'nfsd', 'tcp', '0'),
1301- '-u': (CONF_NFS, 'nfsd', 'udp', '1'),
1302- '-U': (CONF_NFS, 'nfsd', 'udp', '0'),
1303- '-G': (CONF_NFS, 'nfsd', 'grace-time', '$1'),
1304- '-L': (CONF_NFS, 'nfsd', 'lease-time', '$1'),
1305- '$1': (CONF_NFS, 'nfsd', 'threads', '$1'),
1306- '--debug': (CONF_NFS, 'nfsd', 'debug', 'all'),
1307- '--host': (CONF_NFS, 'nfsd', 'host', ','),
1308- '--port': (CONF_NFS, 'nfsd', 'port', '$1'),
1309- '--rdma': (CONF_NFS, 'nfsd', 'rdma', '$1'),
1310- '--no-nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'n'),
1311- '--nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'y'),
1312- '--tcp': (CONF_NFS, 'nfsd', 'tcp', '1'),
1313- '--no-tcp': (CONF_NFS, 'nfsd', 'tcp', '0'),
1314- '--udp': (CONF_NFS, 'nfsd', 'udp', '1'),
1315- '--no-udp': (CONF_NFS, 'nfsd', 'udp', '0'),
1316- '--grace-time': (CONF_NFS, 'nfsd', 'grace-time', '$1'),
1317- '--lease-time': (CONF_NFS, 'nfsd', 'lease-time', '$1'),
1318- }
1319-
1320-# options for mountd found in RPCMOUNTDOPTS
1321-OPTS_MOUNTD = 'go:d:H:p:N:nrus:t:V:'
1322-LONG_MOUNTD = ['descriptors=', 'debug=', 'nfs-version=', 'no-nfs-version=',
1323- 'port=', 'no-tcp', 'ha-callout=', 'state-directory-path=',
1324- 'num-threads=', 'reverse-lookup', 'manage-gids', 'no-udp']
1325-
1326-CONV_MOUNTD = {'-g': (CONF_NFS, 'mountd', 'manage-gids', '1'),
1327- '-o': (CONF_NFS, 'mountd', 'descriptors', '$1'),
1328- '-d': (CONF_NFS, 'mountd', 'debug', '$1'),
1329- '-H': (CONF_NFS, 'mountd', 'ha-callout', '$1'),
1330- '-p': (CONF_NFS, 'mountd', 'port', '$1'),
1331- '-N': (CONF_NFS, 'nfsd', 'vers$1', 'n'),
1332- '-V': (CONF_NFS, 'nfsd', 'vers$1', 'y'),
1333- '-n': (CONF_NFS, 'nfsd', 'tcp', '0'),
1334- '-s': (CONF_NFS, 'mountd', 'stat-directory-path', '$1'),
1335- '-t': (CONF_NFS, 'mountd', 'threads', '$1'),
1336- '-r': (CONF_NFS, 'mountd', 'reverse-lookup', '1'),
1337- '-u': (CONF_NFS, 'nfsd', 'udp', '0'),
1338- '--manage-gids': (CONF_NFS, 'mountd', 'manage-gids', '1'),
1339- '--descriptors': (CONF_NFS, 'mountd', 'descriptors', '$1'),
1340- '--debug': (CONF_NFS, 'mountd', 'debug', '$1'),
1341- '--ha-callout': (CONF_NFS, 'mountd', 'ha-callout', '$1'),
1342- '--port': (CONF_NFS, 'mountd', 'port', '$1'),
1343- '--nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'y'),
1344- '--no-nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'n'),
1345- '--no-tcp': (CONF_NFS, 'nfsd', 'tcp', '0'),
1346- '--state-directory-path': (CONF_NFS, 'mountd', 'state-directory-path', '$1'),
1347- '--num-threads': (CONF_NFS, 'mountd', 'threads', '$1'),
1348- '--reverse-lookup': (CONF_NFS, 'mountd', 'reverse-lookup', '1'),
1349- '--no-udp': (CONF_NFS, 'nfsd', 'udp', '0'),
1350- }
1351-# We enable manage-gids by default. But if /etc/default/nfs-common
1352-# was modified then we need to set manage-gids = 0 unless we see
1353-# --manage-gids.
1354-INIT_MOUNTD = [(CONF_NFS, 'mountd', 'manage-gids', '0')]
1355-
1356-# options for statd found in STATDOPTS
1357-OPTS_STATD = 'o:p:T:U:n:P:H:'
1358-LONG_STATD = ['outgoing-port=', 'port=', 'name=', 'state-directory-path=',
1359- 'ha-callout=', 'nlm-port=', 'nlm-udp-port=']
1360-CONV_STATD = {'-o': (CONF_NFS, 'statd', 'outgoing-port', '$1'),
1361- '-p': (CONF_NFS, 'statd', 'port', '$1'),
1362- '-T': (CONF_NFS, 'lockd', 'port', '$1'),
1363- '-U': (CONF_NFS, 'lockd', 'udp-port', '$1'),
1364- '-n': (CONF_NFS, 'statd', 'name', '$1'),
1365- '-P': (CONF_NFS, 'statd', 'state-directory-path', '$1'),
1366- '-H': (CONF_NFS, 'statd', 'ha-callout', '$1'),
1367- '--outgoing-port': (CONF_NFS, 'statd', 'outgoing-port', '$1'),
1368- '--port': (CONF_NFS, 'statd', 'port', '$1'),
1369- '--name': (CONF_NFS, 'statd', 'name', '$1'),
1370- '--state-directory-path': (CONF_NFS, 'statd', 'state-directory-path', '$1'),
1371- '--ha-callout': (CONF_NFS, 'statd', 'ha-callout', '$1'),
1372- '--nlm-port': (CONF_NFS, 'lockd', 'port', '$1'),
1373- '--nlm-udp-port': (CONF_NFS, 'lockd', 'udp-port', '$1'),
1374- }
1375-
1376-# options for gssd found in RPCGSSDOPTS
1377-OPTS_GSSD = 'Mnvrp:k:d:t:T:R:lD'
1378-CONV_GSSD = {'-M': (CONF_NFS, 'gssd', 'use-memcache', '1'),
1379- '-n': (CONF_NFS, 'gssd', 'root_uses_machine_creds', '0'),
1380- '-v': (CONF_NFS, 'gssd', 'verbosity', '+'),
1381- '-r': (CONF_NFS, 'gssd', 'rpc-verbosity', '+'),
1382- '-p': (CONF_NFS, 'general', 'pipefs-directory', '$1'),
1383- '-k': (CONF_NFS, 'gssd', 'keytab-file', '$1'),
1384- '-d': (CONF_NFS, 'gssd', 'cred-cache-directory', '$1'),
1385- '-t': (CONF_NFS, 'gssd', 'context-timeout', '$1'),
1386- '-T': (CONF_NFS, 'gssd', 'rpc-timeout', '$1'),
1387- '-R': (CONF_NFS, 'gssd', 'preferred-realm', '$1'),
1388- '-l': (CONF_NFS, 'gssd', 'limit-to-legacy-enctypes', '0'),
1389- '-D': (CONF_NFS, 'gssd', 'avoid-dns', '0'),
1390- }
1391-
1392-# options for svcgssd found in RPCSVCGSSDOPTS
1393-OPTS_SVCGSSD = 'ivrnp:'
1394-CONV_SVCGSSD = {'-i': (CONF_NFS, 'svcgssd', 'idmap-verbosity', '+'),
1395- '-v': (CONF_NFS, 'svcgssd', 'verbosity', '+'),
1396- '-r': (CONF_NFS, 'svcgssd', 'rpc-verbosity', '+'),
1397- '-n': (CONF_NFS, 'svcgssd', 'principal', 'system'),
1398- '-p': (CONF_NFS, 'svcgssd', 'principal', '$1'),
1399- }
1400-
1401-# meta list of all the getopt lists
1402-GETOPT_MAPS = [('RPCNFSDOPTS', OPTS_NFSD, LONG_NFSD, CONV_NFSD, []),
1403- ('RPCMOUNTDOPTS', OPTS_MOUNTD, LONG_MOUNTD, CONV_MOUNTD, INIT_MOUNTD),
1404- ('STATDOPTS', OPTS_STATD, LONG_STATD, CONV_STATD, []),
1405- ('RPCGSSDOPTS', OPTS_GSSD, [], CONV_GSSD, []),
1406- ('RPCSVCGSSDOPTS', OPTS_SVCGSSD, [], CONV_SVCGSSD, []),
1407- ]
1408-
1409-# map for all of the single option values
1410-VALUE_MAPS = {'RPCNFSDCOUNT': (CONF_NFS, 'nfsd', 'threads', '$1'),
1411- }
1412-
1413-def eprint(*args, **kwargs):
1414- """ Print error to stderr """
1415- print(*args, file=sys.stderr, **kwargs)
1416-
1417-def makesub(param, value):
1418- """ Variable substitution """
1419- return param.replace('$1', value)
1420-
1421-def set_value(value, entry):
1422- """ Set a configuration value by running nfsconf tool"""
1423- cfile, section, tag, param = entry
1424-
1425- tag = makesub(tag, value)
1426- param = makesub(param, value)
1427- if param == '+':
1428- param = value
1429- if param == ',':
1430- param = value
1431- args = [CONF_TOOL, "--file", cfile, "--set", section, tag, param]
1432-
1433- try:
1434- subprocess.check_output(args, stderr=subprocess.STDOUT)
1435- except subprocess.CalledProcessError as e:
1436- print("Error running nfs-conf tool:\n %s" % (e.output.decode()))
1437- print("Args: %s\n" % args)
1438- raise Exception
1439-
1440-def convert_getopt(optname, options, optstring, longopts, conversions, init):
1441- """ Parse option string into seperate config items
1442-
1443- Take a getopt string and a table of conversions
1444- parse it all and spit out the converted config
1445-
1446- Keyword arguments:
1447- options -- the argv string to convert
1448- optstring -- getopt format option list
1449- conversions -- table of translations
1450- """
1451- optcount = 0
1452- try:
1453- args = options.strip('\"').split()
1454- optlist, optargs = getopt.gnu_getopt(args, optstring, longopts=longopts)
1455- except getopt.GetoptError as err:
1456- eprint(err)
1457- raise Exception
1458-
1459- for c in init:
1460- set_value('', c)
1461-
1462- setlist = {}
1463- for (k, v) in optlist:
1464- if k in conversions:
1465- # it's already been set once
1466- param = conversions[k][3]
1467- tag = k + makesub(conversions[k][2], v)
1468- if tag in setlist:
1469- value = setlist[tag][0]
1470- # is it a cummulative entry
1471- if param == '+':
1472- value = str(int(value) + 1)
1473- if param == ',':
1474- value += "," + v
1475- else:
1476- if param == '+':
1477- value = "1"
1478- elif param == ',':
1479- value = v
1480- else:
1481- value = v
1482- setlist[tag] = (value, conversions[k])
1483- else:
1484- if v:
1485- eprint("Ignoring unrecognised option %s=%s in %s" % (k, v, optname))
1486- else:
1487- eprint("Ignoring unrecognised option %s in %s" % (k, optname))
1488-
1489-
1490- for v, c in setlist.values():
1491- try:
1492- set_value(v, c)
1493- optcount += 1
1494- except Exception:
1495- raise
1496-
1497- i = 1
1498- for o in optargs:
1499- opname = '$' + str(i)
1500- if opname in conversions:
1501- try:
1502- set_value(o, conversions[opname])
1503- optcount += 1
1504- except Exception:
1505- raise
1506- else:
1507- eprint("Unrecognised trailing arguments")
1508- raise Exception
1509- i += 1
1510-
1511- return optcount
1512-
1513-def load_old_config():
1514- """ Load the old configuration
1515-
1516- Since "default" files were always meant to be parsed by a
1517- shell, run a shell script to read them and dump the values.
1518- """
1519- names = ([name for (name, _, _, _, _) in GETOPT_MAPS]
1520- + list(VALUE_MAPS.keys()))
1521- script = ''.join(
1522- [f'{name}=\n' for name in names]
1523- + [f'[ -r {file_name} ] && . {file_name} >/dev/null\n'
1524- for file_name in ['/etc/default/nfs-common',
1525- '/etc/default/nfs-kernel-server']]
1526- + [f'printf \'{name}=%s\\n\' "${name}"\n' for name in names])
1527- config = {}
1528- with subprocess.Popen(script, shell=True,
1529- stdout=subprocess.PIPE, text=True) as proc:
1530- for line in proc.stdout:
1531- name, value = line.rstrip('\n').split('=', 1)
1532- config[name] = value
1533- return config
1534-
1535-def map_values():
1536- """ Main function """
1537- mapcount = 0
1538-
1539- config = load_old_config()
1540-
1541- # Map all the getopt option lists
1542- for (name, opts, lopts, conv, init) in GETOPT_MAPS:
1543- if name in config:
1544- try:
1545- mapcount += convert_getopt(name, config[name], opts,
1546- lopts, conv, init)
1547- except Exception:
1548- eprint("Error whilst converting %s to nfsconf options." % (name))
1549- raise
1550-
1551- # Map the single value options
1552- for name, opts in VALUE_MAPS.items():
1553- if name in config:
1554- try:
1555- value = config[name]
1556- set_value(value.strip('\"'), opts)
1557- mapcount += 1
1558- except Exception:
1559- raise
1560-
1561-# Main routine
1562-try:
1563- map_values()
1564-except Exception as e:
1565- eprint(e)
1566- eprint("Conversion failed. Please correct the error and try again.")
1567- sys.exit(1)
1568diff --git a/debian/patches/Revert-configure-make-modprobe.d-directory-configura.patch b/debian/patches/Revert-configure-make-modprobe.d-directory-configura.patch
1569deleted file mode 100644
1570index 9df4dd5..0000000
1571--- a/debian/patches/Revert-configure-make-modprobe.d-directory-configura.patch
1572+++ /dev/null
1573@@ -1,61 +0,0 @@
1574-From 89ea291577cf3b01ec20883c9d0a8a3c8c68d9b2 Mon Sep 17 00:00:00 2001
1575-From: Salvatore Bonaccorso <carnil@debian.org>
1576-Date: Mon, 5 Dec 2022 15:28:25 -0500
1577-Subject: [PATCH 1/4] Revert "configure: make modprobe.d directory configurable"
1578-
1579-This reverts commit 7d76dd2e6f09a141eb6303b7343baa5c4f9c85ad.
1580-
1581-This is part of the full revert of adding support via modprobe.d
1582-configuration to set sysctl settings of NFS-related modules when loading
1583-the modules.
1584-
1585-The approach caused problems with sysctl from busybox and with kmod as
1586-reported in Debian (https://bugs.debian.org/1024082).
1587-
1588-Signed-off-by: Salvatore Bonaccorso <carnil@debian.org>
1589-Signed-off-by: Steve Dickson <steved@redhat.com>
1590----
1591- configure.ac | 12 ------------
1592- systemd/Makefile.am | 6 ++----
1593- 2 files changed, 2 insertions(+), 16 deletions(-)
1594-
1595-diff --git a/configure.ac b/configure.ac
1596-index 5d9cbf317453..4280cc770a45 100644
1597---- a/configure.ac
1598-+++ b/configure.ac
1599-@@ -71,18 +71,6 @@ AC_ARG_WITH(systemd,
1600- AM_CONDITIONAL(INSTALL_SYSTEMD, [test "$use_systemd" = 1])
1601- AC_SUBST(unitdir)
1602-
1603--modprobedir=/usr/lib/modprobe.d
1604--AC_ARG_WITH(modprobedir,
1605-- [AS_HELP_STRING([--with-modprobedir@<:@=modprobe-dir-path@:>@],[install modprobe config files @<:@Default: /usr/lib/modprobe.d@:>@])],
1606-- if test "$withval" != "no" ; then
1607-- modprobedir=$withval
1608-- else
1609-- modprobedir=
1610-- fi
1611-- )
1612-- AM_CONDITIONAL(INSTALL_MODPROBEDIR, [test -n "$modprobedir"])
1613-- AC_SUBST(modprobedir)
1614--
1615- AC_ARG_ENABLE(nfsv4,
1616- [AS_HELP_STRING([--disable-nfsv4],[disable support for NFSv4 @<:@default=no@:>@])],
1617- enable_nfsv4=$enableval,
1618-diff --git a/systemd/Makefile.am b/systemd/Makefile.am
1619-index 7b5ab84bd793..63a50bf2c07e 100644
1620---- a/systemd/Makefile.am
1621-+++ b/systemd/Makefile.am
1622-@@ -82,7 +82,5 @@ install-data-hook: $(unit_files) $(modprobe_files)
1623- else
1624- install-data-hook: $(modprobe_files)
1625- endif
1626--if INSTALL_MODPROBEDIR
1627-- mkdir -p $(DESTDIR)$(modprobedir)
1628-- cp $(modprobe_files) $(DESTDIR)$(modprobedir)
1629--endif
1630-+ mkdir -p $(DESTDIR)/usr/lib/modprobe.d
1631-+ cp $(modprobe_files) $(DESTDIR)/usr/lib/modprobe.d/
1632---
1633-2.38.1
1634-
1635diff --git a/debian/patches/Revert-modprobe-protect-against-sysctl-errors.patch b/debian/patches/Revert-modprobe-protect-against-sysctl-errors.patch
1636deleted file mode 100644
1637index cb9d368..0000000
1638--- a/debian/patches/Revert-modprobe-protect-against-sysctl-errors.patch
1639+++ /dev/null
1640@@ -1,49 +0,0 @@
1641-From 5bab9cbc9ff3d071f1e297d7bfff70f40ca9e78e Mon Sep 17 00:00:00 2001
1642-From: Salvatore Bonaccorso <carnil@debian.org>
1643-Date: Mon, 5 Dec 2022 15:30:55 -0500
1644-Subject: [PATCH 2/4] Revert "modprobe: protect against sysctl errors"
1645-
1646-This reverts commit 5e60e38aa4ba251ef66610514be5f45c41519e0f.
1647-
1648-This is part of the full revert of adding support via modprobe.d
1649-configuration to set sysctl settings of NFS-related modules when loading
1650-the modules.
1651-
1652-The approach caused problems with sysctl from busybox and with kmod as
1653-reported in Debian (https://bugs.debian.org/1024082).
1654-
1655-Signed-off-by: Salvatore Bonaccorso <carnil@debian.org>
1656-Signed-off-by: Steve Dickson <steved@redhat.com>
1657----
1658- systemd/50-nfs.conf | 10 +++++-----
1659- 1 file changed, 5 insertions(+), 5 deletions(-)
1660-
1661-diff --git a/systemd/50-nfs.conf b/systemd/50-nfs.conf
1662-index 19e8ee734c8e..b56b2d765969 100644
1663---- a/systemd/50-nfs.conf
1664-+++ b/systemd/50-nfs.conf
1665-@@ -1,16 +1,16 @@
1666- # Ensure all NFS systctl settings get applied when modules load
1667-
1668- # sunrpc module supports "sunrpc.*" sysctls
1669--install sunrpc /sbin/modprobe --ignore-install sunrpc $CMDLINE_OPTS && { /sbin/sysctl -q --pattern sunrpc --system; exit 0; }
1670-+install sunrpc /sbin/modprobe --ignore-install sunrpc $CMDLINE_OPTS && /sbin/sysctl -q --pattern sunrpc --system
1671-
1672- # rpcrdma module supports sunrpc.svc_rdma.*
1673--install rpcrdma /sbin/modprobe --ignore-install rpcrdma $CMDLINE_OPTS && { /sbin/sysctl -q --pattern sunrpc.svc_rdma --system; exit 0; }
1674-+install rpcrdma /sbin/modprobe --ignore-install rpcrdma $CMDLINE_OPTS && /sbin/sysctl -q --pattern sunrpc.svc_rdma --system
1675-
1676- # lockd module supports "fs.nfs.nlm*" and "fs.nfs.nsm*" sysctls
1677--install lockd /sbin/modprobe --ignore-install lockd $CMDLINE_OPTS && { /sbin/sysctl -q --pattern fs.nfs.n[sl]m --system; exit 0; }
1678-+install lockd /sbin/modprobe --ignore-install lockd $CMDLINE_OPTS && /sbin/sysctl -q --pattern fs.nfs.n[sl]m --system
1679-
1680- # nfsv4 module supports "fs.nfs.*" sysctls (nfs_callback_tcpport and idmap_cache_timeout)
1681--install nfsv4 /sbin/modprobe --ignore-install nfsv4 $CMDLINE_OPTS && { /sbin/sysctl -q --pattern 'fs.nfs.(nfs_callback_tcpport|idmap_cache_timeout)' --system; exit 0; }
1682-+install nfsv4 /sbin/modprobe --ignore-install nfsv4 $CMDLINE_OPTS && /sbin/sysctl -q --pattern 'fs.nfs.(nfs_callback_tcpport|idmap_cache_timeout)' --system
1683-
1684- # nfs module supports "fs.nfs.*" sysctls
1685--install nfs /sbin/modprobe --ignore-install nfs $CMDLINE_OPTS && { /sbin/sysctl -q --pattern fs.nfs --system; exit 0; }
1686-+install nfs /sbin/modprobe --ignore-install nfs $CMDLINE_OPTS && /sbin/sysctl -q --pattern fs.nfs --system
1687---
1688-2.38.1
1689-
1690diff --git a/debian/patches/Revert-systemd-Apply-all-sysctl-settings-when-NFS-re.patch b/debian/patches/Revert-systemd-Apply-all-sysctl-settings-when-NFS-re.patch
1691deleted file mode 100644
1692index bc68df9..0000000
1693--- a/debian/patches/Revert-systemd-Apply-all-sysctl-settings-when-NFS-re.patch
1694+++ /dev/null
1695@@ -1,80 +0,0 @@
1696-From d8d29f851993f67c053d9712e92244b2f53c4f65 Mon Sep 17 00:00:00 2001
1697-From: Salvatore Bonaccorso <carnil@debian.org>
1698-Date: Mon, 5 Dec 2022 15:37:32 -0500
1699-Subject: [PATCH 3/4] Revert "systemd: Apply all sysctl settings when
1700- NFS-related modules are loaded"
1701-
1702-This reverts commit afc7132dfb212ac1f676a5ac36d29a9e06325645.
1703-
1704-The approach caused problems with sysctl from busybox and with kmod as
1705-reported in Debian (https://bugs.debian.org/1024082).
1706-
1707-Signed-off-by: Salvatore Bonaccorso <carnil@debian.org>
1708-Signed-off-by: Steve Dickson <steved@redhat.com>
1709----
1710- systemd/50-nfs.conf | 16 ----------------
1711- systemd/Makefile.am | 10 ++--------
1712- 2 files changed, 2 insertions(+), 24 deletions(-)
1713- delete mode 100644 systemd/50-nfs.conf
1714-
1715-diff --git a/systemd/50-nfs.conf b/systemd/50-nfs.conf
1716-deleted file mode 100644
1717-index b56b2d765969..000000000000
1718---- a/systemd/50-nfs.conf
1719-+++ /dev/null
1720-@@ -1,16 +0,0 @@
1721--# Ensure all NFS systctl settings get applied when modules load
1722--
1723--# sunrpc module supports "sunrpc.*" sysctls
1724--install sunrpc /sbin/modprobe --ignore-install sunrpc $CMDLINE_OPTS && /sbin/sysctl -q --pattern sunrpc --system
1725--
1726--# rpcrdma module supports sunrpc.svc_rdma.*
1727--install rpcrdma /sbin/modprobe --ignore-install rpcrdma $CMDLINE_OPTS && /sbin/sysctl -q --pattern sunrpc.svc_rdma --system
1728--
1729--# lockd module supports "fs.nfs.nlm*" and "fs.nfs.nsm*" sysctls
1730--install lockd /sbin/modprobe --ignore-install lockd $CMDLINE_OPTS && /sbin/sysctl -q --pattern fs.nfs.n[sl]m --system
1731--
1732--# nfsv4 module supports "fs.nfs.*" sysctls (nfs_callback_tcpport and idmap_cache_timeout)
1733--install nfsv4 /sbin/modprobe --ignore-install nfsv4 $CMDLINE_OPTS && /sbin/sysctl -q --pattern 'fs.nfs.(nfs_callback_tcpport|idmap_cache_timeout)' --system
1734--
1735--# nfs module supports "fs.nfs.*" sysctls
1736--install nfs /sbin/modprobe --ignore-install nfs $CMDLINE_OPTS && /sbin/sysctl -q --pattern fs.nfs --system
1737-diff --git a/systemd/Makefile.am b/systemd/Makefile.am
1738-index 63a50bf2c07e..e7f5d818a913 100644
1739---- a/systemd/Makefile.am
1740-+++ b/systemd/Makefile.am
1741-@@ -2,8 +2,6 @@
1742-
1743- MAINTAINERCLEANFILES = Makefile.in
1744-
1745--modprobe_files = 50-nfs.conf
1746--
1747- unit_files = \
1748- nfs-client.target \
1749- rpc_pipefs.target \
1750-@@ -53,7 +51,7 @@ endif
1751-
1752- man5_MANS = nfs.conf.man
1753- man7_MANS = nfs.systemd.man
1754--EXTRA_DIST = $(unit_files) $(modprobe_files) $(man5_MANS) $(man7_MANS)
1755-+EXTRA_DIST = $(unit_files) $(man5_MANS) $(man7_MANS)
1756-
1757- generator_dir = $(unitdir)/../system-generators
1758-
1759-@@ -75,12 +73,8 @@ rpc_pipefs_generator_LDADD = ../support/nfs/libnfs.la
1760-
1761- if INSTALL_SYSTEMD
1762- genexec_PROGRAMS = nfs-server-generator rpc-pipefs-generator
1763--install-data-hook: $(unit_files) $(modprobe_files)
1764-+install-data-hook: $(unit_files)
1765- mkdir -p $(DESTDIR)/$(unitdir)
1766- cp $(unit_files) $(DESTDIR)/$(unitdir)
1767- cp $(rpc_pipefs_mount_file) $(DESTDIR)/$(unitdir)/$(rpc_pipefsmount)
1768--else
1769--install-data-hook: $(modprobe_files)
1770- endif
1771-- mkdir -p $(DESTDIR)/usr/lib/modprobe.d
1772-- cp $(modprobe_files) $(DESTDIR)/usr/lib/modprobe.d/
1773---
1774-2.38.1
1775-
1776diff --git a/debian/patches/always-run-generator.patch b/debian/patches/always-run-generator.patch
1777index ba420c5..ed82672 100644
1778--- a/debian/patches/always-run-generator.patch
1779+++ b/debian/patches/always-run-generator.patch
1780@@ -3,8 +3,13 @@ Description: Always run the generator
1781 Author: Andreas Hasenack <andreas@canonical.com>
1782 Bug-Ubuntu: https://bugs.launchpad.net/bugs/1971935
1783 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1014429
1784+<<<<<<< debian/patches/always-run-generator.patch
1785 Forwarded: https://marc.info/?l=linux-nfs&m=165754514206399&w=4
1786 Last-Updated: 2022-07-12
1787+=======
1788+Forwarded: https://lore.kernel.org/linux-nfs/EE39279C-4E40-48C8-ABC9-707EB1AD6D79@redhat.com/
1789+Last-Update: 2022-07-12
1790+>>>>>>> debian/patches/always-run-generator.patch
1791 ---
1792 This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
1793 diff --git a/systemd/rpc-pipefs-generator.c b/systemd/rpc-pipefs-generator.c
1794diff --git a/debian/patches/auth-rpcgss-module.service-Don-t-fail-inside-linux-c.patch b/debian/patches/auth-rpcgss-module.service-Don-t-fail-inside-linux-c.patch
1795deleted file mode 100644
1796index f9da1c6..0000000
1797--- a/debian/patches/auth-rpcgss-module.service-Don-t-fail-inside-linux-c.patch
1798+++ /dev/null
1799@@ -1,40 +0,0 @@
1800-From ca5b0e7e4d41d93483427390d6d5e031b0b7c6af Mon Sep 17 00:00:00 2001
1801-From: Joachim Falk <joachim.falk@gmx.de>
1802-Date: Mon, 5 Dec 2022 15:52:53 -0500
1803-Subject: [PATCH] auth-rpcgss-module.service: Don't fail inside linux
1804- container.
1805-
1806-Only try to load the auth_rpcgss kernel module if we are not executing
1807-inside a Linux container. Otherwise, the auth-rpcgss-module service will
1808-fail inside a Linux container as the loading of kernel modules is
1809-forbidden for the container. Thus, the "/sbin/modprobe -q auth_rpcgss"
1810-call will fail even if the auth_rpcgss kernel module is already loaded.
1811-This situation occurs when the container host has already loaded the
1812-auth_rpcgss kernel module to enable kerberized NFS service for its
1813-containers. This behavior has been tested with kmod up to version
1814-30+20220630-3 (current in bookworm as of 2022-09-20).
1815-
1816-Bug-Debian: http://bugs.debian.org/985000
1817-Discussion-Debian: https://salsa.debian.org/kernel-team/nfs-utils/-/merge_requests/7
1818-
1819-Signed-off-by: Joachim Falk <joachim.falk@gmx.de>
1820-Signed-off-by: Steve Dickson <steved@redhat.com>
1821----
1822- systemd/auth-rpcgss-module.service | 1 +
1823- 1 file changed, 1 insertion(+)
1824-
1825-diff --git a/systemd/auth-rpcgss-module.service b/systemd/auth-rpcgss-module.service
1826-index 4548283377d0..25c9de8088fc 100644
1827---- a/systemd/auth-rpcgss-module.service
1828-+++ b/systemd/auth-rpcgss-module.service
1829-@@ -10,6 +10,7 @@ DefaultDependencies=no
1830- Before=gssproxy.service rpc-svcgssd.service rpc-gssd.service
1831- Wants=gssproxy.service rpc-svcgssd.service rpc-gssd.service
1832- ConditionPathExists=/etc/krb5.keytab
1833-+ConditionVirtualization=!container
1834-
1835- [Service]
1836- Type=oneshot
1837---
1838-2.38.1
1839-
1840diff --git a/debian/patches/blkmapd-fix-coredump-in-bl_add_disk.patch b/debian/patches/blkmapd-fix-coredump-in-bl_add_disk.patch
1841deleted file mode 100644
1842index db3c216..0000000
1843--- a/debian/patches/blkmapd-fix-coredump-in-bl_add_disk.patch
1844+++ /dev/null
1845@@ -1,97 +0,0 @@
1846-From: Lixiaokeng <lixiaokeng@huawei.com>
1847-Date: Mon, 24 Oct 2022 13:00:50 -0400
1848-Subject: blkmapd: fix coredump in bl_add_disk
1849-Origin: https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=c1c35487aba2cec828d9b8a1be9043000beadea5
1850-Bug-Debian: https://bugs.debian.org/1022185
1851-
1852-The serial->data is not malloced separately (just part of
1853-the serial), so it can't be freed. The bl_serial has its
1854-own free function. Use it.
1855-
1856-Signed-off-by: Lixiaokeng <lixiaokeng@huawei.com>
1857-Signed-off-by: Zhiqiang Liu <liuzhiqiang26@huawei.com>
1858-Signed-off-by: Steve Dickson <steved@redhat.com>
1859----
1860- utils/blkmapd/device-discovery.c | 15 +++------------
1861- utils/blkmapd/device-discovery.h | 2 ++
1862- utils/blkmapd/device-inq.c | 4 ++--
1863- 3 files changed, 7 insertions(+), 14 deletions(-)
1864-
1865-diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c
1866-index 49935c2e19fe..bd890598d73c 100644
1867---- a/utils/blkmapd/device-discovery.c
1868-+++ b/utils/blkmapd/device-discovery.c
1869-@@ -187,10 +187,7 @@ static void bl_add_disk(char *filepath)
1870- }
1871-
1872- if (disk && diskpath) {
1873-- if (serial) {
1874-- free(serial->data);
1875-- free(serial);
1876-- }
1877-+ bl_free_scsi_string(serial);
1878- return;
1879- }
1880-
1881-@@ -228,10 +225,7 @@ static void bl_add_disk(char *filepath)
1882- disk->size = size;
1883- disk->valid_path = path;
1884- }
1885-- if (serial) {
1886-- free(serial->data);
1887-- free(serial);
1888-- }
1889-+ bl_free_scsi_string(serial);
1890- }
1891- return;
1892-
1893-@@ -241,10 +235,7 @@ static void bl_add_disk(char *filepath)
1894- free(path->full_path);
1895- free(path);
1896- }
1897-- if (serial) {
1898-- free(serial->data);
1899-- free(serial);
1900-- }
1901-+ bl_free_scsi_string(serial);
1902- return;
1903- }
1904-
1905-diff --git a/utils/blkmapd/device-discovery.h b/utils/blkmapd/device-discovery.h
1906-index a86eed9945c0..462aa943bc28 100644
1907---- a/utils/blkmapd/device-discovery.h
1908-+++ b/utils/blkmapd/device-discovery.h
1909-@@ -151,6 +151,8 @@ uint64_t process_deviceinfo(const char *dev_addr_buf,
1910-
1911- extern ssize_t atomicio(ssize_t(*f) (int, void *, size_t),
1912- int fd, void *_s, size_t n);
1913-+extern struct bl_serial *bl_create_scsi_string(int len, const char *bytes);
1914-+extern void bl_free_scsi_string(struct bl_serial *str);
1915- extern struct bl_serial *bldev_read_serial(int fd, const char *filename);
1916- extern enum bl_path_state_e bldev_read_ap_state(int fd);
1917- extern int bl_discover_devices(void);
1918-diff --git a/utils/blkmapd/device-inq.c b/utils/blkmapd/device-inq.c
1919-index c7952c3e95c3..9e5749ef508b 100644
1920---- a/utils/blkmapd/device-inq.c
1921-+++ b/utils/blkmapd/device-inq.c
1922-@@ -53,7 +53,7 @@
1923- #define DEF_ALLOC_LEN 255
1924- #define MX_ALLOC_LEN (0xc000 + 0x80)
1925-
1926--static struct bl_serial *bl_create_scsi_string(int len, const char *bytes)
1927-+struct bl_serial *bl_create_scsi_string(int len, const char *bytes)
1928- {
1929- struct bl_serial *s;
1930-
1931-@@ -66,7 +66,7 @@ static struct bl_serial *bl_create_scsi_string(int len, const char *bytes)
1932- return s;
1933- }
1934-
1935--static void bl_free_scsi_string(struct bl_serial *str)
1936-+void bl_free_scsi_string(struct bl_serial *str)
1937- {
1938- if (str)
1939- free(str);
1940---
1941-2.38.1
1942-
1943diff --git a/debian/patches/fsidd-provide-better-default-socket-name.patch b/debian/patches/fsidd-provide-better-default-socket-name.patch
1944new file mode 100644
1945index 0000000..ef3b909
1946--- /dev/null
1947+++ b/debian/patches/fsidd-provide-better-default-socket-name.patch
1948@@ -0,0 +1,96 @@
1949+From: NeilBrown <neilb@suse.de>
1950+Date: Thu, 11 May 2023 14:26:47 -0400
1951+Subject: fsidd: provide better default socket name.
1952+Origin: http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=e00ab3c0616fe6d83ab0710d9e7d989c299088f7
1953+Bug-Debian: https://bugs.debian.org/1041147
1954+
1955+Having the default socket name be in the current directory is a poor
1956+choice for a daemon that is expected to run as root.
1957+
1958+It is also likely better to use an "abstract" socket name. abstract
1959+names do not exist in the filesystem namespace and are local to a
1960+network namespace. Using an abstract name ensures that the nfsd,
1961+mountd, and fsidd are all in the same network namespace.
1962+
1963+This patch:
1964+ - uses a single #define for the default socket name, rather than 2;
1965+ - allows the socket name to start with '@' which is interpreted to
1966+ be a request to use the abstract name space (systemd uses the same
1967+ convention).
1968+ - changes the default to "@/run/fsid.sock". I don't know of a formal
1969+ standard for choosing names in the abstract name space, the defacto
1970+ standard (seen in "ss -xa|grep @") is to use a name similar to what
1971+ might be used in the filesystem.
1972+
1973+Acked-by: Richard Weinberger <richard@nod.at>
1974+Signed-off-by: NeilBrown <neilb@suse.de>
1975+Signed-off-by: Steve Dickson <steved@redhat.com>
1976+---
1977+ support/reexport/fsidd.c | 10 ++++++----
1978+ support/reexport/reexport.c | 3 +++
1979+ support/reexport/reexport.h | 2 +-
1980+ 3 files changed, 10 insertions(+), 5 deletions(-)
1981+
1982+diff --git a/support/reexport/fsidd.c b/support/reexport/fsidd.c
1983+index 3fef1ef3512b..37649d065ce6 100644
1984+--- a/support/reexport/fsidd.c
1985++++ b/support/reexport/fsidd.c
1986+@@ -18,11 +18,10 @@
1987+
1988+ #include "conffile.h"
1989+ #include "reexport_backend.h"
1990++#include "reexport.h"
1991+ #include "xcommon.h"
1992+ #include "xlog.h"
1993+
1994+-#define FSID_SOCKET_NAME "fsid.sock"
1995+-
1996+ static struct event_base *evbase;
1997+ static struct reexpdb_backend_plugin *dbbackend = &sqlite_plug_ops;
1998+
1999+@@ -167,11 +166,14 @@ int main(void)
2000+
2001+ sock_file = conf_get_str_with_def("reexport", "fsidd_socket", FSID_SOCKET_NAME);
2002+
2003+- unlink(sock_file);
2004+-
2005+ memset(&addr, 0, sizeof(struct sockaddr_un));
2006+ addr.sun_family = AF_UNIX;
2007+ strncpy(addr.sun_path, sock_file, sizeof(addr.sun_path) - 1);
2008++ if (addr.sun_path[0] == '@')
2009++ /* "abstract" socket namespace */
2010++ addr.sun_path[0] = 0;
2011++ else
2012++ unlink(sock_file);
2013+
2014+ srv = socket(AF_UNIX, SOCK_SEQPACKET | SOCK_NONBLOCK, 0);
2015+ if (srv == -1) {
2016+diff --git a/support/reexport/reexport.c b/support/reexport/reexport.c
2017+index eddc9bf413f6..d597a2f73c93 100644
2018+--- a/support/reexport/reexport.c
2019++++ b/support/reexport/reexport.c
2020+@@ -38,6 +38,9 @@ static bool connect_fsid_service(void)
2021+ memset(&addr, 0, sizeof(struct sockaddr_un));
2022+ addr.sun_family = AF_UNIX;
2023+ strncpy(addr.sun_path, sock_file, sizeof(addr.sun_path) - 1);
2024++ if (addr.sun_path[0] == '@')
2025++ /* "abstract" socket namespace */
2026++ addr.sun_path[0] = 0;
2027+
2028+ s = socket(AF_UNIX, SOCK_SEQPACKET, 0);
2029+ if (s == -1) {
2030+diff --git a/support/reexport/reexport.h b/support/reexport/reexport.h
2031+index 3bed03a9a0bb..856c3085a1dd 100644
2032+--- a/support/reexport/reexport.h
2033++++ b/support/reexport/reexport.h
2034+@@ -13,6 +13,6 @@ int reexpdb_fsidnum_by_path(char *path, uint32_t *fsidnum, int may_create);
2035+ int reexpdb_apply_reexport_settings(struct exportent *ep, char *flname, int flline);
2036+ void reexpdb_uncover_subvolume(uint32_t fsidnum);
2037+
2038+-#define FSID_SOCKET_NAME "fsid.sock"
2039++#define FSID_SOCKET_NAME "@/run/fsid.sock"
2040+
2041+ #endif /* REEXPORT_H */
2042+--
2043+2.40.1
2044+
2045diff --git a/debian/patches/libnfsidmap-try-to-get-the-domain-directly-from-host.patch b/debian/patches/libnfsidmap-try-to-get-the-domain-directly-from-host.patch
2046new file mode 100644
2047index 0000000..50ca4e5
2048--- /dev/null
2049+++ b/debian/patches/libnfsidmap-try-to-get-the-domain-directly-from-host.patch
2050@@ -0,0 +1,54 @@
2051+From: Aram Akhavan <github@aram.nubmail.ca>
2052+Date: Sat, 15 Jul 2023 13:21:04 -0400
2053+Subject: libnfsidmap: try to get the domain directly from hostname if the DNS
2054+ lookup fails and always show the log message if the domain can't be
2055+ determined
2056+Origin: https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=90a23f7c6343bcb1b69c93ceccc14cc06e14d958
2057+
2058+In nfs4_init_name_mapping(), if no domain is specified in the config file, the hostname will be looked up in DNS, and the domain extracted from that.
2059+If DNS resolution isn't up at this time (i.e. on idmapd startup), the hardcoded domain in IDMAPD_DEFAULT_DOMAIN is used. This will break id mapping
2060+for anyone who doesn't happen to use "localdomain". Previously, the log message indicating this has happened requires -v to be passed, so the
2061+"failure" was silent by default.
2062+
2063+Signed-off-by: Aram Akhavan <github@aram.nubmail.ca>
2064+Signed-off-by: Steve Dickson <steved@redhat.com>
2065+---
2066+ support/nfsidmap/libnfsidmap.c | 15 ++++++++++-----
2067+ 1 file changed, 10 insertions(+), 5 deletions(-)
2068+
2069+diff --git a/support/nfsidmap/libnfsidmap.c b/support/nfsidmap/libnfsidmap.c
2070+index 0a912e52e1fb..f8c36480155f 100644
2071+--- a/support/nfsidmap/libnfsidmap.c
2072++++ b/support/nfsidmap/libnfsidmap.c
2073+@@ -219,10 +219,15 @@ static int domain_from_dns(char **domain)
2074+
2075+ if (gethostname(hname, sizeof(hname)) == -1)
2076+ return -1;
2077+- if ((he = gethostbyname(hname)) == NULL)
2078+- return -1;
2079+- if ((c = strchr(he->h_name, '.')) == NULL || *++c == '\0')
2080+- return -1;
2081++ if ((he = gethostbyname(hname)) == NULL) {
2082++ IDMAP_LOG(1, ("libnfsidmap: DNS lookup of hostname failed. Attempting to use domain from hostname as is."));
2083++ if ((c = strchr(hname, '.')) == NULL || *++c == '\0')
2084++ return -1;
2085++ }
2086++ else {
2087++ if ((c = strchr(he->h_name, '.')) == NULL || *++c == '\0')
2088++ return -1;
2089++ }
2090+ /*
2091+ * Query DNS to see if the _nfsv4idmapdomain TXT record exists
2092+ * If so use it...
2093+@@ -387,7 +392,7 @@ int nfs4_init_name_mapping(char *conffile)
2094+ dflt = 1;
2095+ ret = domain_from_dns(&default_domain);
2096+ if (ret) {
2097+- IDMAP_LOG(1, ("libnfsidmap: Unable to determine "
2098++ IDMAP_LOG(0, ("libnfsidmap: Unable to determine "
2099+ "the NFSv4 domain; Using '%s' as the NFSv4 domain "
2100+ "which means UIDs will be mapped to the 'Nobody-User' "
2101+ "user defined in %s",
2102+--
2103+2.40.1
2104+
2105diff --git a/debian/patches/nfs-idmapd.service-add-network-online.target-to-Want.patch b/debian/patches/nfs-idmapd.service-add-network-online.target-to-Want.patch
2106new file mode 100644
2107index 0000000..6572d70
2108--- /dev/null
2109+++ b/debian/patches/nfs-idmapd.service-add-network-online.target-to-Want.patch
2110@@ -0,0 +1,33 @@
2111+From: Aram Akhavan <github@aram.nubmail.ca>
2112+Date: Sat, 15 Jul 2023 13:16:58 -0400
2113+Subject: nfs-idmapd.service: add network-online.target to Wants= and After=
2114+Origin: https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=4f5e66718c01f89b28bf9e7a8c645d9e18682485
2115+Bug-Debian: https://bugs.debian.org/1035840
2116+
2117+nfs-idmapd.service does not have any dependency on the network so there's no
2118+starting point to wait for DNS resolution. nfs-server.service already has this
2119+network dependency and ordering.
2120+
2121+Signed-off-by: Aram Akhavan <github@aram.nubmail.ca>
2122+Signed-off-by: Steve Dickson <steved@redhat.com>
2123+---
2124+ systemd/nfs-idmapd.service | 3 ++-
2125+ 1 file changed, 2 insertions(+), 1 deletion(-)
2126+
2127+diff --git a/systemd/nfs-idmapd.service b/systemd/nfs-idmapd.service
2128+index f38fe527237e..198ca87c2bc9 100644
2129+--- a/systemd/nfs-idmapd.service
2130++++ b/systemd/nfs-idmapd.service
2131+@@ -2,7 +2,8 @@
2132+ Description=NFSv4 ID-name mapping service
2133+ DefaultDependencies=no
2134+ Requires=rpc_pipefs.target
2135+-After=rpc_pipefs.target local-fs.target
2136++After=rpc_pipefs.target local-fs.target network-online.target
2137++Wants=network-online.target
2138+
2139+ BindsTo=nfs-server.service
2140+
2141+--
2142+2.40.1
2143+
2144diff --git a/debian/patches/series b/debian/patches/series
2145index 60ba4c9..2046770 100644
2146--- a/debian/patches/series
2147+++ b/debian/patches/series
2148@@ -1,6 +1,7 @@
2149 01-sm-notify-in-sbin.patch
2150 25-systemd-daemon-paths.patch
2151 multiarch-kerberos-paths.patch
2152+<<<<<<< debian/patches/series
2153 ubuntu-idmapd-manpage-update-regex-other-package.patch
2154 nfs-conf-manpage-missing-svcgssd-options.patch
2155 always-run-generator.patch
2156@@ -11,3 +12,12 @@ Revert-systemd-Apply-all-sysctl-settings-when-NFS-re.patch
2157 systemd-Apply-all-sysctl-settings-through-udev-rule-.patch
2158 auth-rpcgss-module.service-Don-t-fail-inside-linux-c.patch
2159 systemd-Don-t-degrade-system-state-for-nfs-clients-w.patch
2160+=======
2161+always-run-generator.patch
2162+start-statd-fix-shellcheck-warnings.patch
2163+fsidd-provide-better-default-socket-name.patch
2164+nfs-idmapd.service-add-network-online.target-to-Want.patch
2165+libnfsidmap-try-to-get-the-domain-directly-from-host.patch
2166+ubuntu-idmapd-manpage-update-regex-other-package.patch
2167+nfs-conf-manpage-missing-svcgssd-options.patch
2168+>>>>>>> debian/patches/series
2169diff --git a/debian/patches/start-statd-fix-shellcheck-warnings.patch b/debian/patches/start-statd-fix-shellcheck-warnings.patch
2170new file mode 100644
2171index 0000000..e4f383d
2172--- /dev/null
2173+++ b/debian/patches/start-statd-fix-shellcheck-warnings.patch
2174@@ -0,0 +1,41 @@
2175+From: Ben Hutchings <benh@debian.org>
2176+Date: Tue, 13 Jun 2023 03:56:03 +0200
2177+Subject: start-statd: Fix shellcheck warnings
2178+
2179+shellcheck currently complains:
2180+
2181+In utils/statd/start-statd line 14:
2182+ [ 1`cat /run/rpc.statd.pid` -gt 1 ] &&
2183+ ^----------------------^ SC2046 (warning): Quote this to prevent word splitting.
2184+ ^----------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
2185+
2186+Did you mean:
2187+ [ 1$(cat /run/rpc.statd.pid) -gt 1 ] &&
2188+
2189+
2190+In utils/statd/start-statd line 15:
2191+ kill -0 `cat /run/rpc.statd.pid` > /dev/null 2>&1
2192+ ^----------------------^ SC2046 (warning): Quote this to prevent word splitting.
2193+ ^----------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
2194+
2195+Did you mean:
2196+ kill -0 $(cat /run/rpc.statd.pid) > /dev/null 2>&1
2197+
2198+Use quotes and $() as recommended.
2199+
2200+Signed-off-by: Ben Hutchings <benh@debian.org>
2201+---
2202+
2203+--- a/utils/statd/start-statd
2204++++ b/utils/statd/start-statd
2205+@@ -11,8 +11,8 @@ exec 9> /run/rpc.statd.lock
2206+ flock -e 9
2207+
2208+ if [ -s /run/rpc.statd.pid ] &&
2209+- [ 1`cat /run/rpc.statd.pid` -gt 1 ] &&
2210+- kill -0 `cat /run/rpc.statd.pid` > /dev/null 2>&1
2211++ [ "1$(cat /run/rpc.statd.pid)" -gt 1 ] &&
2212++ kill -0 "$(cat /run/rpc.statd.pid)" > /dev/null 2>&1
2213+ then
2214+ # statd already running - must have been slow to respond.
2215+ exit 0
2216diff --git a/debian/patches/systemd-Apply-all-sysctl-settings-through-udev-rule-.patch b/debian/patches/systemd-Apply-all-sysctl-settings-through-udev-rule-.patch
2217deleted file mode 100644
2218index b2230cc..0000000
2219--- a/debian/patches/systemd-Apply-all-sysctl-settings-through-udev-rule-.patch
2220+++ /dev/null
2221@@ -1,97 +0,0 @@
2222-From 9466df03394a48cc08aa4bcdcfda3fe6cd074468 Mon Sep 17 00:00:00 2001
2223-From: Salvatore Bonaccorso <carnil@debian.org>
2224-Date: Mon, 5 Dec 2022 15:51:34 -0500
2225-Subject: [PATCH 4/4] systemd: Apply all sysctl settings through udev rule when
2226- NFS-related modules are loaded
2227-
2228-sysctl settings (e.g. /etc/sysctl.conf and others) are normally loaded
2229-once at boot. If the module that implements some settings is no yet
2230-loaded, those settings don't get applied.
2231-
2232-Various NFS modules support various sysctl settings. If they are loaded
2233-after boot, they miss out.
2234-
2235-Add a new udev rule configuration to udev/rules.d/60-nfs.rules to apply
2236-the relevant settings when the modules are loaded.
2237-
2238-Placing it in the systemd directory similarly as the choice for the
2239-original commit afc7132dfb21 ("systemd: Apply all sysctl settings when
2240-NFS-related modules are loaded").
2241-
2242-Link: https://lore.kernel.org/linux-nfs/Y1KoKwu88PulcokW@eldamar.lan/
2243-Link: https://bugs.debian.org/1022172
2244-Link: https://bugs.debian.org/1024082
2245-Suggested-by: Marco d'Itri <md@linux.it>
2246-Signed-off-by: Salvatore Bonaccorso <carnil@debian.org>
2247-Signed-off-by: Steve Dickson <steved@redhat.com>
2248----
2249- systemd/60-nfs.rules | 21 +++++++++++++++++++++
2250- systemd/Makefile.am | 9 +++++++--
2251- 2 files changed, 28 insertions(+), 2 deletions(-)
2252- create mode 100644 systemd/60-nfs.rules
2253-
2254-diff --git a/systemd/60-nfs.rules b/systemd/60-nfs.rules
2255-new file mode 100644
2256-index 000000000000..188423c1d2e3
2257---- /dev/null
2258-+++ b/systemd/60-nfs.rules
2259-@@ -0,0 +1,21 @@
2260-+# Ensure all NFS systctl settings get applied when modules load
2261-+
2262-+# sunrpc module supports "sunrpc.*" sysctls
2263-+ACTION=="add", SUBSYSTEM=="module", KERNEL=="sunrpc", \
2264-+ RUN+="/sbin/sysctl -q --pattern ^sunrpc --system"
2265-+
2266-+# rpcrdma module supports sunrpc.svc_rdma.*
2267-+ACTION=="add", SUBSYSTEM=="module", KERNEL=="rpcrdma", \
2268-+ RUN+="/sbin/sysctl -q --pattern ^sunrpc.svc_rdma --system"
2269-+
2270-+# lockd module supports "fs.nfs.nlm*" and "fs.nfs.nsm*" sysctls
2271-+ACTION=="add", SUBSYSTEM=="module", KERNEL=="lockd", \
2272-+ RUN+="/sbin/sysctl -q --pattern ^fs.nfs.n[sl]m --system"
2273-+
2274-+# nfsv4 module supports "fs.nfs.*" sysctls (nfs_callback_tcpport and idmap_cache_timeout)
2275-+ACTION=="add", SUBSYSTEM=="module", KERNEL=="nfsv4", \
2276-+ RUN+="/sbin/sysctl -q --pattern ^fs.nfs.(nfs_callback_tcpport|idmap_cache_timeout) --system"
2277-+
2278-+# nfs module supports "fs.nfs.*" sysctls
2279-+ACTION=="add", SUBSYSTEM=="module", KERNEL=="nfs", \
2280-+ RUN+="/sbin/sysctl -q --pattern ^fs.nfs --system"
2281-diff --git a/systemd/Makefile.am b/systemd/Makefile.am
2282-index e7f5d818a913..577c6a2286c0 100644
2283---- a/systemd/Makefile.am
2284-+++ b/systemd/Makefile.am
2285-@@ -2,6 +2,9 @@
2286-
2287- MAINTAINERCLEANFILES = Makefile.in
2288-
2289-+udev_rulesdir = /usr/lib/udev/rules.d/
2290-+udev_files = 60-nfs.rules
2291-+
2292- unit_files = \
2293- nfs-client.target \
2294- rpc_pipefs.target \
2295-@@ -51,7 +54,7 @@ endif
2296-
2297- man5_MANS = nfs.conf.man
2298- man7_MANS = nfs.systemd.man
2299--EXTRA_DIST = $(unit_files) $(man5_MANS) $(man7_MANS)
2300-+EXTRA_DIST = $(unit_files) $(udev_files) $(man5_MANS) $(man7_MANS)
2301-
2302- generator_dir = $(unitdir)/../system-generators
2303-
2304-@@ -73,8 +76,10 @@ rpc_pipefs_generator_LDADD = ../support/nfs/libnfs.la
2305-
2306- if INSTALL_SYSTEMD
2307- genexec_PROGRAMS = nfs-server-generator rpc-pipefs-generator
2308--install-data-hook: $(unit_files)
2309-+install-data-hook: $(unit_files) $(udev_files)
2310- mkdir -p $(DESTDIR)/$(unitdir)
2311- cp $(unit_files) $(DESTDIR)/$(unitdir)
2312- cp $(rpc_pipefs_mount_file) $(DESTDIR)/$(unitdir)/$(rpc_pipefsmount)
2313-+ mkdir -p $(DESTDIR)/$(udev_rulesdir)
2314-+ cp $(udev_files) $(DESTDIR)/$(udev_rulesdir)
2315- endif
2316---
2317-2.38.1
2318-
2319diff --git a/debian/patches/systemd-Don-t-degrade-system-state-for-nfs-clients-w.patch b/debian/patches/systemd-Don-t-degrade-system-state-for-nfs-clients-w.patch
2320deleted file mode 100644
2321index 15548bd..0000000
2322--- a/debian/patches/systemd-Don-t-degrade-system-state-for-nfs-clients-w.patch
2323+++ /dev/null
2324@@ -1,60 +0,0 @@
2325-From: Joachim Falk <joachim.falk@gmx.de>
2326-Date: Tue, 10 Jan 2023 09:55:59 -0500
2327-Subject: systemd: Don't degrade system state for nfs-clients when krb5 keytab
2328- present but not containing the nfs/<FQDN> principal
2329-Origin: https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=5faf98a62843d1cda2a0fe15e0878fa1281e42b8
2330-Bug-Debian: https://bugs.debian.org/985002
2331-
2332-The nfs-client.target requires the auth-rpcgss-module.service, which in
2333-turn requires the rpc-svcgssd.service. However, the rpc.svcgssd daemon
2334-is unnecessary for an NFS client, even when using Kerberos security.
2335-Moreover, starting this daemon with its default configuration will fail
2336-when no nfs/<host>@REALM principal is in the Kerberos keytab. Thus,
2337-resulting in a degraded system state for NFS client configurations
2338-without nfs/<host>@REALM principal in the Kerberos keytab. However, this
2339-is a perfectly valid NFS client configuration as the nfs/<host>@REALM
2340-principal is not required for mounting NFS file systems. This is even
2341-the case when Kerberos security is enabled for the mount!
2342-
2343-Installing the gssproxy package hides this problem as this disables the
2344-rpc-svcgssd.service.
2345-
2346-Link: http://bugs.debian.org/985002
2347-Link: https://salsa.debian.org/kernel-team/nfs-utils/-/merge_requests/23
2348-
2349-Signed-off-by: Joachim Falk <joachim.falk@gmx.de>
2350-Signed-off-by: Steve Dickson <steved@redhat.com>
2351----
2352- systemd/auth-rpcgss-module.service | 2 +-
2353- systemd/nfs-server.service | 2 +-
2354- 2 files changed, 2 insertions(+), 2 deletions(-)
2355-
2356-diff --git a/systemd/auth-rpcgss-module.service b/systemd/auth-rpcgss-module.service
2357-index 25c9de8088fc..4a69a7b77b03 100644
2358---- a/systemd/auth-rpcgss-module.service
2359-+++ b/systemd/auth-rpcgss-module.service
2360-@@ -8,7 +8,7 @@
2361- Description=Kernel Module supporting RPCSEC_GSS
2362- DefaultDependencies=no
2363- Before=gssproxy.service rpc-svcgssd.service rpc-gssd.service
2364--Wants=gssproxy.service rpc-svcgssd.service rpc-gssd.service
2365-+Wants=gssproxy.service rpc-gssd.service
2366- ConditionPathExists=/etc/krb5.keytab
2367- ConditionVirtualization=!container
2368-
2369-diff --git a/systemd/nfs-server.service b/systemd/nfs-server.service
2370-index b432f9102d0c..2cdd786841ea 100644
2371---- a/systemd/nfs-server.service
2372-+++ b/systemd/nfs-server.service
2373-@@ -15,7 +15,7 @@ After=nfsdcld.service
2374- Before=rpc-statd-notify.service
2375-
2376- # GSS services dependencies and ordering
2377--Wants=auth-rpcgss-module.service
2378-+Wants=auth-rpcgss-module.service rpc-svcgssd.service
2379- After=rpc-gssd.service gssproxy.service rpc-svcgssd.service
2380-
2381- [Service]
2382---
2383-2.39.0
2384-
2385diff --git a/debian/rules b/debian/rules
2386index fcc473d..1bfc0d4 100755
2387--- a/debian/rules
2388+++ b/debian/rules
2389@@ -4,7 +4,9 @@
2390
2391 export DEB_BUILD_MAINT_OPTIONS = hardening=+all
2392
2393-DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
2394+# set and export all variables from dpkg-architecture
2395+# and using DEB_HOST_MULTIARCH
2396+include /usr/share/dpkg/architecture.mk
2397
2398 %:
2399 dh $@ --with apport
2400@@ -29,6 +31,10 @@ override_dh_fixperms:
2401
2402 override_dh_install:
2403 # we will let the generator produce these units, see LP: #1971935
2404+<<<<<<< debian/rules
2405+=======
2406+ # and https://bugs.debian.org/1014429
2407+>>>>>>> debian/rules
2408 dh_install -Xvar-lib-nfs-rpc_pipefs.mount -Xrpc_pipefs.target
2409
2410 override_dh_installinit:
2411diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml
2412index 30caef7..bfbe59b 100644
2413--- a/debian/salsa-ci.yml
2414+++ b/debian/salsa-ci.yml
2415@@ -8,3 +8,17 @@ variables:
2416 SALSA_CI_DISABLE_BUILD_PACKAGE_ALL: 'true'
2417 # Currently triggering falsely (bugs #973313, #1000977)
2418 SALSA_CI_LINTIAN_SUPPRESS_TAGS: 'groff-message,elf-error'
2419+
2420+shellcheck:
2421+ stage: test
2422+ image: $SALSA_CI_IMAGES_BASE
2423+ except:
2424+ variables:
2425+ - $CI_COMMIT_TAG != null
2426+ script:
2427+ - apt-get update
2428+ - apt-get install -y quilt shellcheck
2429+ - QUILT_PATCHES=debian/patches quilt push -a
2430+ - |
2431+ shellcheck -e SC1090,SC1091 utils/statd/start-statd $(find debian -maxdepth 1 -type f | xargs grep -El '^#!/bin/(ba|da)?sh')
2432+ needs: []
2433diff --git a/linux-nfs/Makefile.in b/linux-nfs/Makefile.in
2434index 8dee515..037331c 100644
2435--- a/linux-nfs/Makefile.in
2436+++ b/linux-nfs/Makefile.in
2437@@ -207,6 +207,8 @@ LIBCRYPT = @LIBCRYPT@
2438 LIBEVENT = @LIBEVENT@
2439 LIBKEYUTILS = @LIBKEYUTILS@
2440 LIBMOUNT = @LIBMOUNT@
2441+LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
2442+LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
2443 LIBNSL = @LIBNSL@
2444 LIBOBJS = @LIBOBJS@
2445 LIBPTHREAD = @LIBPTHREAD@
2446@@ -308,7 +310,6 @@ localedir = @localedir@
2447 localstatedir = @localstatedir@
2448 mandir = @mandir@
2449 mkdir_p = @mkdir_p@
2450-modprobedir = @modprobedir@
2451 mountfile = @mountfile@
2452 nfsconfig = @nfsconfig@
2453 oldincludedir = @oldincludedir@
2454diff --git a/support/Makefile.am b/support/Makefile.am
2455index c962d4d..07cfd87 100644
2456--- a/support/Makefile.am
2457+++ b/support/Makefile.am
2458@@ -10,7 +10,7 @@ if CONFIG_JUNCTION
2459 OPTDIRS += junction
2460 endif
2461
2462-SUBDIRS = export include misc nfs nsm $(OPTDIRS)
2463+SUBDIRS = export include misc nfs nsm reexport $(OPTDIRS)
2464
2465 MAINTAINERCLEANFILES = Makefile.in
2466
2467diff --git a/support/Makefile.in b/support/Makefile.in
2468index 7c438c3..86c5e97 100644
2469--- a/support/Makefile.in
2470+++ b/support/Makefile.in
2471@@ -166,7 +166,7 @@ am__define_uniq_tagged_files = \
2472 unique=`for i in $$list; do \
2473 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
2474 done | $(am__uniquify_input)`
2475-DIST_SUBDIRS = export include misc nfs nsm nfsidmap junction
2476+DIST_SUBDIRS = export include misc nfs nsm reexport nfsidmap junction
2477 am__DIST_COMMON = $(srcdir)/Makefile.in
2478 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
2479 am__relativize = \
2480@@ -266,6 +266,8 @@ LIBCRYPT = @LIBCRYPT@
2481 LIBEVENT = @LIBEVENT@
2482 LIBKEYUTILS = @LIBKEYUTILS@
2483 LIBMOUNT = @LIBMOUNT@
2484+LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
2485+LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
2486 LIBNSL = @LIBNSL@
2487 LIBOBJS = @LIBOBJS@
2488 LIBPTHREAD = @LIBPTHREAD@
2489@@ -367,7 +369,6 @@ localedir = @localedir@
2490 localstatedir = @localstatedir@
2491 mandir = @mandir@
2492 mkdir_p = @mkdir_p@
2493-modprobedir = @modprobedir@
2494 mountfile = @mountfile@
2495 nfsconfig = @nfsconfig@
2496 oldincludedir = @oldincludedir@
2497@@ -391,7 +392,7 @@ top_builddir = @top_builddir@
2498 top_srcdir = @top_srcdir@
2499 unitdir = @unitdir@
2500 OPTDIRS = $(am__append_1) $(am__append_2)
2501-SUBDIRS = export include misc nfs nsm $(OPTDIRS)
2502+SUBDIRS = export include misc nfs nsm reexport $(OPTDIRS)
2503 MAINTAINERCLEANFILES = Makefile.in
2504 all: all-recursive
2505
2506diff --git a/support/export/Makefile.am b/support/export/Makefile.am
2507index eec737f..7338e1c 100644
2508--- a/support/export/Makefile.am
2509+++ b/support/export/Makefile.am
2510@@ -14,6 +14,8 @@ libexport_a_SOURCES = client.c export.c hostname.c \
2511 xtab.c mount_clnt.c mount_xdr.c \
2512 cache.c auth.c v4root.c fsloc.c \
2513 v4clients.c
2514+libexport_a_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS) -I$(top_srcdir)/support/reexport
2515+
2516 BUILT_SOURCES = $(GENFILES)
2517
2518 noinst_HEADERS = mount.h
2519diff --git a/support/export/Makefile.in b/support/export/Makefile.in
2520index 51ce717..e9d5f1b 100644
2521--- a/support/export/Makefile.in
2522+++ b/support/export/Makefile.in
2523@@ -123,10 +123,12 @@ am__v_AR_0 = @echo " AR " $@;
2524 am__v_AR_1 =
2525 libexport_a_AR = $(AR) $(ARFLAGS)
2526 libexport_a_LIBADD =
2527-am_libexport_a_OBJECTS = client.$(OBJEXT) export.$(OBJEXT) \
2528- hostname.$(OBJEXT) xtab.$(OBJEXT) mount_clnt.$(OBJEXT) \
2529- mount_xdr.$(OBJEXT) cache.$(OBJEXT) auth.$(OBJEXT) \
2530- v4root.$(OBJEXT) fsloc.$(OBJEXT) v4clients.$(OBJEXT)
2531+am_libexport_a_OBJECTS = libexport_a-client.$(OBJEXT) \
2532+ libexport_a-export.$(OBJEXT) libexport_a-hostname.$(OBJEXT) \
2533+ libexport_a-xtab.$(OBJEXT) libexport_a-mount_clnt.$(OBJEXT) \
2534+ libexport_a-mount_xdr.$(OBJEXT) libexport_a-cache.$(OBJEXT) \
2535+ libexport_a-auth.$(OBJEXT) libexport_a-v4root.$(OBJEXT) \
2536+ libexport_a-fsloc.$(OBJEXT) libexport_a-v4clients.$(OBJEXT)
2537 libexport_a_OBJECTS = $(am_libexport_a_OBJECTS)
2538 AM_V_P = $(am__v_P_@AM_V@)
2539 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
2540@@ -143,19 +145,24 @@ am__v_at_1 =
2541 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/support/include
2542 depcomp = $(SHELL) $(top_srcdir)/depcomp
2543 am__maybe_remake_depfiles = depfiles
2544-am__depfiles_remade = ./$(DEPDIR)/auth.Po ./$(DEPDIR)/cache.Po \
2545- ./$(DEPDIR)/client.Po ./$(DEPDIR)/export.Po \
2546- ./$(DEPDIR)/fsloc.Po ./$(DEPDIR)/hostname.Po \
2547- ./$(DEPDIR)/mount_clnt.Po ./$(DEPDIR)/mount_xdr.Po \
2548- ./$(DEPDIR)/v4clients.Po ./$(DEPDIR)/v4root.Po \
2549- ./$(DEPDIR)/xtab.Po
2550+am__depfiles_remade = ./$(DEPDIR)/libexport_a-auth.Po \
2551+ ./$(DEPDIR)/libexport_a-cache.Po \
2552+ ./$(DEPDIR)/libexport_a-client.Po \
2553+ ./$(DEPDIR)/libexport_a-export.Po \
2554+ ./$(DEPDIR)/libexport_a-fsloc.Po \
2555+ ./$(DEPDIR)/libexport_a-hostname.Po \
2556+ ./$(DEPDIR)/libexport_a-mount_clnt.Po \
2557+ ./$(DEPDIR)/libexport_a-mount_xdr.Po \
2558+ ./$(DEPDIR)/libexport_a-v4clients.Po \
2559+ ./$(DEPDIR)/libexport_a-v4root.Po \
2560+ ./$(DEPDIR)/libexport_a-xtab.Po
2561 am__mv = mv -f
2562-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
2563- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
2564 AM_V_lt = $(am__v_lt_@AM_V@)
2565 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
2566 am__v_lt_0 = --silent
2567 am__v_lt_1 =
2568+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
2569+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
2570 LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
2571 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
2572 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
2573@@ -271,6 +278,8 @@ LIBCRYPT = @LIBCRYPT@
2574 LIBEVENT = @LIBEVENT@
2575 LIBKEYUTILS = @LIBKEYUTILS@
2576 LIBMOUNT = @LIBMOUNT@
2577+LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
2578+LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
2579 LIBNSL = @LIBNSL@
2580 LIBOBJS = @LIBOBJS@
2581 LIBPTHREAD = @LIBPTHREAD@
2582@@ -372,7 +381,6 @@ localedir = @localedir@
2583 localstatedir = @localstatedir@
2584 mandir = @mandir@
2585 mkdir_p = @mkdir_p@
2586-modprobedir = @modprobedir@
2587 mountfile = @mountfile@
2588 nfsconfig = @nfsconfig@
2589 oldincludedir = @oldincludedir@
2590@@ -406,6 +414,7 @@ libexport_a_SOURCES = client.c export.c hostname.c \
2591 cache.c auth.c v4root.c fsloc.c \
2592 v4clients.c
2593
2594+libexport_a_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS) -I$(top_srcdir)/support/reexport
2595 BUILT_SOURCES = $(GENFILES)
2596 noinst_HEADERS = mount.h
2597 @CONFIG_RPCGEN_FALSE@RPCGEN = @RPCGEN_PATH@
2598@@ -461,17 +470,17 @@ mostlyclean-compile:
2599 distclean-compile:
2600 -rm -f *.tab.c
2601
2602-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/auth.Po@am__quote@ # am--include-marker
2603-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cache.Po@am__quote@ # am--include-marker
2604-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/client.Po@am__quote@ # am--include-marker
2605-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/export.Po@am__quote@ # am--include-marker
2606-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsloc.Po@am__quote@ # am--include-marker
2607-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hostname.Po@am__quote@ # am--include-marker
2608-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_clnt.Po@am__quote@ # am--include-marker
2609-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_xdr.Po@am__quote@ # am--include-marker
2610-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/v4clients.Po@am__quote@ # am--include-marker
2611-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/v4root.Po@am__quote@ # am--include-marker
2612-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xtab.Po@am__quote@ # am--include-marker
2613+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-auth.Po@am__quote@ # am--include-marker
2614+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-cache.Po@am__quote@ # am--include-marker
2615+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-client.Po@am__quote@ # am--include-marker
2616+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-export.Po@am__quote@ # am--include-marker
2617+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-fsloc.Po@am__quote@ # am--include-marker
2618+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-hostname.Po@am__quote@ # am--include-marker
2619+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-mount_clnt.Po@am__quote@ # am--include-marker
2620+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-mount_xdr.Po@am__quote@ # am--include-marker
2621+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-v4clients.Po@am__quote@ # am--include-marker
2622+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-v4root.Po@am__quote@ # am--include-marker
2623+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-xtab.Po@am__quote@ # am--include-marker
2624
2625 $(am__depfiles_remade):
2626 @$(MKDIR_P) $(@D)
2627@@ -500,6 +509,160 @@ am--depfiles: $(am__depfiles_remade)
2628 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2629 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
2630
2631+libexport_a-client.o: client.c
2632+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-client.o -MD -MP -MF $(DEPDIR)/libexport_a-client.Tpo -c -o libexport_a-client.o `test -f 'client.c' || echo '$(srcdir)/'`client.c
2633+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-client.Tpo $(DEPDIR)/libexport_a-client.Po
2634+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='client.c' object='libexport_a-client.o' libtool=no @AMDEPBACKSLASH@
2635+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2636+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-client.o `test -f 'client.c' || echo '$(srcdir)/'`client.c
2637+
2638+libexport_a-client.obj: client.c
2639+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-client.obj -MD -MP -MF $(DEPDIR)/libexport_a-client.Tpo -c -o libexport_a-client.obj `if test -f 'client.c'; then $(CYGPATH_W) 'client.c'; else $(CYGPATH_W) '$(srcdir)/client.c'; fi`
2640+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-client.Tpo $(DEPDIR)/libexport_a-client.Po
2641+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='client.c' object='libexport_a-client.obj' libtool=no @AMDEPBACKSLASH@
2642+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2643+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-client.obj `if test -f 'client.c'; then $(CYGPATH_W) 'client.c'; else $(CYGPATH_W) '$(srcdir)/client.c'; fi`
2644+
2645+libexport_a-export.o: export.c
2646+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-export.o -MD -MP -MF $(DEPDIR)/libexport_a-export.Tpo -c -o libexport_a-export.o `test -f 'export.c' || echo '$(srcdir)/'`export.c
2647+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-export.Tpo $(DEPDIR)/libexport_a-export.Po
2648+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='export.c' object='libexport_a-export.o' libtool=no @AMDEPBACKSLASH@
2649+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2650+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-export.o `test -f 'export.c' || echo '$(srcdir)/'`export.c
2651+
2652+libexport_a-export.obj: export.c
2653+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-export.obj -MD -MP -MF $(DEPDIR)/libexport_a-export.Tpo -c -o libexport_a-export.obj `if test -f 'export.c'; then $(CYGPATH_W) 'export.c'; else $(CYGPATH_W) '$(srcdir)/export.c'; fi`
2654+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-export.Tpo $(DEPDIR)/libexport_a-export.Po
2655+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='export.c' object='libexport_a-export.obj' libtool=no @AMDEPBACKSLASH@
2656+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2657+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-export.obj `if test -f 'export.c'; then $(CYGPATH_W) 'export.c'; else $(CYGPATH_W) '$(srcdir)/export.c'; fi`
2658+
2659+libexport_a-hostname.o: hostname.c
2660+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-hostname.o -MD -MP -MF $(DEPDIR)/libexport_a-hostname.Tpo -c -o libexport_a-hostname.o `test -f 'hostname.c' || echo '$(srcdir)/'`hostname.c
2661+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-hostname.Tpo $(DEPDIR)/libexport_a-hostname.Po
2662+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hostname.c' object='libexport_a-hostname.o' libtool=no @AMDEPBACKSLASH@
2663+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2664+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-hostname.o `test -f 'hostname.c' || echo '$(srcdir)/'`hostname.c
2665+
2666+libexport_a-hostname.obj: hostname.c
2667+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-hostname.obj -MD -MP -MF $(DEPDIR)/libexport_a-hostname.Tpo -c -o libexport_a-hostname.obj `if test -f 'hostname.c'; then $(CYGPATH_W) 'hostname.c'; else $(CYGPATH_W) '$(srcdir)/hostname.c'; fi`
2668+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-hostname.Tpo $(DEPDIR)/libexport_a-hostname.Po
2669+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hostname.c' object='libexport_a-hostname.obj' libtool=no @AMDEPBACKSLASH@
2670+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2671+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-hostname.obj `if test -f 'hostname.c'; then $(CYGPATH_W) 'hostname.c'; else $(CYGPATH_W) '$(srcdir)/hostname.c'; fi`
2672+
2673+libexport_a-xtab.o: xtab.c
2674+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-xtab.o -MD -MP -MF $(DEPDIR)/libexport_a-xtab.Tpo -c -o libexport_a-xtab.o `test -f 'xtab.c' || echo '$(srcdir)/'`xtab.c
2675+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-xtab.Tpo $(DEPDIR)/libexport_a-xtab.Po
2676+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xtab.c' object='libexport_a-xtab.o' libtool=no @AMDEPBACKSLASH@
2677+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2678+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-xtab.o `test -f 'xtab.c' || echo '$(srcdir)/'`xtab.c
2679+
2680+libexport_a-xtab.obj: xtab.c
2681+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-xtab.obj -MD -MP -MF $(DEPDIR)/libexport_a-xtab.Tpo -c -o libexport_a-xtab.obj `if test -f 'xtab.c'; then $(CYGPATH_W) 'xtab.c'; else $(CYGPATH_W) '$(srcdir)/xtab.c'; fi`
2682+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-xtab.Tpo $(DEPDIR)/libexport_a-xtab.Po
2683+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xtab.c' object='libexport_a-xtab.obj' libtool=no @AMDEPBACKSLASH@
2684+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2685+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-xtab.obj `if test -f 'xtab.c'; then $(CYGPATH_W) 'xtab.c'; else $(CYGPATH_W) '$(srcdir)/xtab.c'; fi`
2686+
2687+libexport_a-mount_clnt.o: mount_clnt.c
2688+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-mount_clnt.o -MD -MP -MF $(DEPDIR)/libexport_a-mount_clnt.Tpo -c -o libexport_a-mount_clnt.o `test -f 'mount_clnt.c' || echo '$(srcdir)/'`mount_clnt.c
2689+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-mount_clnt.Tpo $(DEPDIR)/libexport_a-mount_clnt.Po
2690+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mount_clnt.c' object='libexport_a-mount_clnt.o' libtool=no @AMDEPBACKSLASH@
2691+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2692+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-mount_clnt.o `test -f 'mount_clnt.c' || echo '$(srcdir)/'`mount_clnt.c
2693+
2694+libexport_a-mount_clnt.obj: mount_clnt.c
2695+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-mount_clnt.obj -MD -MP -MF $(DEPDIR)/libexport_a-mount_clnt.Tpo -c -o libexport_a-mount_clnt.obj `if test -f 'mount_clnt.c'; then $(CYGPATH_W) 'mount_clnt.c'; else $(CYGPATH_W) '$(srcdir)/mount_clnt.c'; fi`
2696+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-mount_clnt.Tpo $(DEPDIR)/libexport_a-mount_clnt.Po
2697+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mount_clnt.c' object='libexport_a-mount_clnt.obj' libtool=no @AMDEPBACKSLASH@
2698+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2699+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-mount_clnt.obj `if test -f 'mount_clnt.c'; then $(CYGPATH_W) 'mount_clnt.c'; else $(CYGPATH_W) '$(srcdir)/mount_clnt.c'; fi`
2700+
2701+libexport_a-mount_xdr.o: mount_xdr.c
2702+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-mount_xdr.o -MD -MP -MF $(DEPDIR)/libexport_a-mount_xdr.Tpo -c -o libexport_a-mount_xdr.o `test -f 'mount_xdr.c' || echo '$(srcdir)/'`mount_xdr.c
2703+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-mount_xdr.Tpo $(DEPDIR)/libexport_a-mount_xdr.Po
2704+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mount_xdr.c' object='libexport_a-mount_xdr.o' libtool=no @AMDEPBACKSLASH@
2705+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2706+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-mount_xdr.o `test -f 'mount_xdr.c' || echo '$(srcdir)/'`mount_xdr.c
2707+
2708+libexport_a-mount_xdr.obj: mount_xdr.c
2709+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-mount_xdr.obj -MD -MP -MF $(DEPDIR)/libexport_a-mount_xdr.Tpo -c -o libexport_a-mount_xdr.obj `if test -f 'mount_xdr.c'; then $(CYGPATH_W) 'mount_xdr.c'; else $(CYGPATH_W) '$(srcdir)/mount_xdr.c'; fi`
2710+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-mount_xdr.Tpo $(DEPDIR)/libexport_a-mount_xdr.Po
2711+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mount_xdr.c' object='libexport_a-mount_xdr.obj' libtool=no @AMDEPBACKSLASH@
2712+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2713+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-mount_xdr.obj `if test -f 'mount_xdr.c'; then $(CYGPATH_W) 'mount_xdr.c'; else $(CYGPATH_W) '$(srcdir)/mount_xdr.c'; fi`
2714+
2715+libexport_a-cache.o: cache.c
2716+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-cache.o -MD -MP -MF $(DEPDIR)/libexport_a-cache.Tpo -c -o libexport_a-cache.o `test -f 'cache.c' || echo '$(srcdir)/'`cache.c
2717+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-cache.Tpo $(DEPDIR)/libexport_a-cache.Po
2718+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cache.c' object='libexport_a-cache.o' libtool=no @AMDEPBACKSLASH@
2719+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2720+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-cache.o `test -f 'cache.c' || echo '$(srcdir)/'`cache.c
2721+
2722+libexport_a-cache.obj: cache.c
2723+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-cache.obj -MD -MP -MF $(DEPDIR)/libexport_a-cache.Tpo -c -o libexport_a-cache.obj `if test -f 'cache.c'; then $(CYGPATH_W) 'cache.c'; else $(CYGPATH_W) '$(srcdir)/cache.c'; fi`
2724+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-cache.Tpo $(DEPDIR)/libexport_a-cache.Po
2725+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cache.c' object='libexport_a-cache.obj' libtool=no @AMDEPBACKSLASH@
2726+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2727+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-cache.obj `if test -f 'cache.c'; then $(CYGPATH_W) 'cache.c'; else $(CYGPATH_W) '$(srcdir)/cache.c'; fi`
2728+
2729+libexport_a-auth.o: auth.c
2730+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-auth.o -MD -MP -MF $(DEPDIR)/libexport_a-auth.Tpo -c -o libexport_a-auth.o `test -f 'auth.c' || echo '$(srcdir)/'`auth.c
2731+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-auth.Tpo $(DEPDIR)/libexport_a-auth.Po
2732+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='auth.c' object='libexport_a-auth.o' libtool=no @AMDEPBACKSLASH@
2733+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2734+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-auth.o `test -f 'auth.c' || echo '$(srcdir)/'`auth.c
2735+
2736+libexport_a-auth.obj: auth.c
2737+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-auth.obj -MD -MP -MF $(DEPDIR)/libexport_a-auth.Tpo -c -o libexport_a-auth.obj `if test -f 'auth.c'; then $(CYGPATH_W) 'auth.c'; else $(CYGPATH_W) '$(srcdir)/auth.c'; fi`
2738+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-auth.Tpo $(DEPDIR)/libexport_a-auth.Po
2739+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='auth.c' object='libexport_a-auth.obj' libtool=no @AMDEPBACKSLASH@
2740+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2741+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-auth.obj `if test -f 'auth.c'; then $(CYGPATH_W) 'auth.c'; else $(CYGPATH_W) '$(srcdir)/auth.c'; fi`
2742+
2743+libexport_a-v4root.o: v4root.c
2744+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-v4root.o -MD -MP -MF $(DEPDIR)/libexport_a-v4root.Tpo -c -o libexport_a-v4root.o `test -f 'v4root.c' || echo '$(srcdir)/'`v4root.c
2745+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-v4root.Tpo $(DEPDIR)/libexport_a-v4root.Po
2746+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4root.c' object='libexport_a-v4root.o' libtool=no @AMDEPBACKSLASH@
2747+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2748+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-v4root.o `test -f 'v4root.c' || echo '$(srcdir)/'`v4root.c
2749+
2750+libexport_a-v4root.obj: v4root.c
2751+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-v4root.obj -MD -MP -MF $(DEPDIR)/libexport_a-v4root.Tpo -c -o libexport_a-v4root.obj `if test -f 'v4root.c'; then $(CYGPATH_W) 'v4root.c'; else $(CYGPATH_W) '$(srcdir)/v4root.c'; fi`
2752+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-v4root.Tpo $(DEPDIR)/libexport_a-v4root.Po
2753+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4root.c' object='libexport_a-v4root.obj' libtool=no @AMDEPBACKSLASH@
2754+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2755+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-v4root.obj `if test -f 'v4root.c'; then $(CYGPATH_W) 'v4root.c'; else $(CYGPATH_W) '$(srcdir)/v4root.c'; fi`
2756+
2757+libexport_a-fsloc.o: fsloc.c
2758+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-fsloc.o -MD -MP -MF $(DEPDIR)/libexport_a-fsloc.Tpo -c -o libexport_a-fsloc.o `test -f 'fsloc.c' || echo '$(srcdir)/'`fsloc.c
2759+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-fsloc.Tpo $(DEPDIR)/libexport_a-fsloc.Po
2760+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsloc.c' object='libexport_a-fsloc.o' libtool=no @AMDEPBACKSLASH@
2761+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2762+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-fsloc.o `test -f 'fsloc.c' || echo '$(srcdir)/'`fsloc.c
2763+
2764+libexport_a-fsloc.obj: fsloc.c
2765+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-fsloc.obj -MD -MP -MF $(DEPDIR)/libexport_a-fsloc.Tpo -c -o libexport_a-fsloc.obj `if test -f 'fsloc.c'; then $(CYGPATH_W) 'fsloc.c'; else $(CYGPATH_W) '$(srcdir)/fsloc.c'; fi`
2766+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-fsloc.Tpo $(DEPDIR)/libexport_a-fsloc.Po
2767+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsloc.c' object='libexport_a-fsloc.obj' libtool=no @AMDEPBACKSLASH@
2768+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2769+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-fsloc.obj `if test -f 'fsloc.c'; then $(CYGPATH_W) 'fsloc.c'; else $(CYGPATH_W) '$(srcdir)/fsloc.c'; fi`
2770+
2771+libexport_a-v4clients.o: v4clients.c
2772+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-v4clients.o -MD -MP -MF $(DEPDIR)/libexport_a-v4clients.Tpo -c -o libexport_a-v4clients.o `test -f 'v4clients.c' || echo '$(srcdir)/'`v4clients.c
2773+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-v4clients.Tpo $(DEPDIR)/libexport_a-v4clients.Po
2774+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4clients.c' object='libexport_a-v4clients.o' libtool=no @AMDEPBACKSLASH@
2775+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2776+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-v4clients.o `test -f 'v4clients.c' || echo '$(srcdir)/'`v4clients.c
2777+
2778+libexport_a-v4clients.obj: v4clients.c
2779+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libexport_a-v4clients.obj -MD -MP -MF $(DEPDIR)/libexport_a-v4clients.Tpo -c -o libexport_a-v4clients.obj `if test -f 'v4clients.c'; then $(CYGPATH_W) 'v4clients.c'; else $(CYGPATH_W) '$(srcdir)/v4clients.c'; fi`
2780+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-v4clients.Tpo $(DEPDIR)/libexport_a-v4clients.Po
2781+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4clients.c' object='libexport_a-v4clients.obj' libtool=no @AMDEPBACKSLASH@
2782+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2783+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libexport_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libexport_a-v4clients.obj `if test -f 'v4clients.c'; then $(CYGPATH_W) 'v4clients.c'; else $(CYGPATH_W) '$(srcdir)/v4clients.c'; fi`
2784+
2785 mostlyclean-libtool:
2786 -rm -f *.lo
2787
2788@@ -639,17 +802,17 @@ clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
2789 mostlyclean-am
2790
2791 distclean: distclean-am
2792- -rm -f ./$(DEPDIR)/auth.Po
2793- -rm -f ./$(DEPDIR)/cache.Po
2794- -rm -f ./$(DEPDIR)/client.Po
2795- -rm -f ./$(DEPDIR)/export.Po
2796- -rm -f ./$(DEPDIR)/fsloc.Po
2797- -rm -f ./$(DEPDIR)/hostname.Po
2798- -rm -f ./$(DEPDIR)/mount_clnt.Po
2799- -rm -f ./$(DEPDIR)/mount_xdr.Po
2800- -rm -f ./$(DEPDIR)/v4clients.Po
2801- -rm -f ./$(DEPDIR)/v4root.Po
2802- -rm -f ./$(DEPDIR)/xtab.Po
2803+ -rm -f ./$(DEPDIR)/libexport_a-auth.Po
2804+ -rm -f ./$(DEPDIR)/libexport_a-cache.Po
2805+ -rm -f ./$(DEPDIR)/libexport_a-client.Po
2806+ -rm -f ./$(DEPDIR)/libexport_a-export.Po
2807+ -rm -f ./$(DEPDIR)/libexport_a-fsloc.Po
2808+ -rm -f ./$(DEPDIR)/libexport_a-hostname.Po
2809+ -rm -f ./$(DEPDIR)/libexport_a-mount_clnt.Po
2810+ -rm -f ./$(DEPDIR)/libexport_a-mount_xdr.Po
2811+ -rm -f ./$(DEPDIR)/libexport_a-v4clients.Po
2812+ -rm -f ./$(DEPDIR)/libexport_a-v4root.Po
2813+ -rm -f ./$(DEPDIR)/libexport_a-xtab.Po
2814 -rm -f Makefile
2815 distclean-am: clean-am distclean-compile distclean-generic \
2816 distclean-tags
2817@@ -695,17 +858,17 @@ install-ps-am:
2818 installcheck-am:
2819
2820 maintainer-clean: maintainer-clean-am
2821- -rm -f ./$(DEPDIR)/auth.Po
2822- -rm -f ./$(DEPDIR)/cache.Po
2823- -rm -f ./$(DEPDIR)/client.Po
2824- -rm -f ./$(DEPDIR)/export.Po
2825- -rm -f ./$(DEPDIR)/fsloc.Po
2826- -rm -f ./$(DEPDIR)/hostname.Po
2827- -rm -f ./$(DEPDIR)/mount_clnt.Po
2828- -rm -f ./$(DEPDIR)/mount_xdr.Po
2829- -rm -f ./$(DEPDIR)/v4clients.Po
2830- -rm -f ./$(DEPDIR)/v4root.Po
2831- -rm -f ./$(DEPDIR)/xtab.Po
2832+ -rm -f ./$(DEPDIR)/libexport_a-auth.Po
2833+ -rm -f ./$(DEPDIR)/libexport_a-cache.Po
2834+ -rm -f ./$(DEPDIR)/libexport_a-client.Po
2835+ -rm -f ./$(DEPDIR)/libexport_a-export.Po
2836+ -rm -f ./$(DEPDIR)/libexport_a-fsloc.Po
2837+ -rm -f ./$(DEPDIR)/libexport_a-hostname.Po
2838+ -rm -f ./$(DEPDIR)/libexport_a-mount_clnt.Po
2839+ -rm -f ./$(DEPDIR)/libexport_a-mount_xdr.Po
2840+ -rm -f ./$(DEPDIR)/libexport_a-v4clients.Po
2841+ -rm -f ./$(DEPDIR)/libexport_a-v4root.Po
2842+ -rm -f ./$(DEPDIR)/libexport_a-xtab.Po
2843 -rm -f Makefile
2844 maintainer-clean-am: distclean-am maintainer-clean-generic
2845
2846diff --git a/support/export/auth.c b/support/export/auth.c
2847index 03ce4b8..2d7960f 100644
2848--- a/support/export/auth.c
2849+++ b/support/export/auth.c
2850@@ -82,7 +82,7 @@ check_useipaddr(void)
2851 }
2852
2853 unsigned int
2854-auth_reload()
2855+auth_reload(void)
2856 {
2857 struct stat stb;
2858 static ino_t last_inode;
2859diff --git a/support/export/cache.c b/support/export/cache.c
2860index a5823e9..19bbba5 100644
2861--- a/support/export/cache.c
2862+++ b/support/export/cache.c
2863@@ -33,6 +33,7 @@
2864 #include "export.h"
2865 #include "pseudoflavors.h"
2866 #include "xcommon.h"
2867+#include "reexport.h"
2868
2869 #ifdef HAVE_JUNCTION_SUPPORT
2870 #include "fsloc.h"
2871@@ -235,6 +236,16 @@ static void auth_unix_gid(int f)
2872 xlog(L_ERROR, "auth_unix_gid: error writing reply");
2873 }
2874
2875+static int match_crossmnt_fsidnum(uint32_t parsed_fsidnum, char *path)
2876+{
2877+ uint32_t fsidnum;
2878+
2879+ if (reexpdb_fsidnum_by_path(path, &fsidnum, 0) == 0)
2880+ return 0;
2881+
2882+ return fsidnum == parsed_fsidnum;
2883+}
2884+
2885 #ifdef USE_BLKID
2886 static const char *get_uuid_blkdev(char *path)
2887 {
2888@@ -346,27 +357,27 @@ static int uuid_by_path(char *path, int type, size_t uuidlen, char *uuid)
2889
2890 /* Possible sources of uuid are
2891 * - blkid uuid
2892- * - statfs64 uuid
2893+ * - statfs uuid
2894 *
2895- * On some filesystems (e.g. vfat) the statfs64 uuid is simply an
2896+ * On some filesystems (e.g. vfat) the statfs uuid is simply an
2897 * encoding of the device that the filesystem is mounted from, so
2898 * it we be very bad to use that (as device numbers change). blkid
2899 * must be preferred.
2900- * On other filesystems (e.g. btrfs) the statfs64 uuid contains
2901+ * On other filesystems (e.g. btrfs) the statfs uuid contains
2902 * important info that the blkid uuid cannot contain: This happens
2903 * when multiple subvolumes are exported (they have the same
2904- * blkid uuid but different statfs64 uuids).
2905+ * blkid uuid but different statfs uuids).
2906 * We rely on get_uuid_blkdev *knowing* which is which and not returning
2907- * a uuid for filesystems where the statfs64 uuid is better.
2908+ * a uuid for filesystems where the statfs uuid is better.
2909 *
2910 */
2911- struct statfs64 st;
2912+ struct statfs st;
2913 char fsid_val[17];
2914 const char *blkid_val = NULL;
2915 const char *val;
2916 int rc;
2917
2918- rc = nfsd_path_statfs64(path, &st);
2919+ rc = nfsd_path_statfs(path, &st);
2920
2921 if (type == 0 && rc == 0) {
2922 const unsigned long *bad;
2923@@ -410,12 +421,16 @@ static char *next_mnt(void **v, char *p)
2924 *v = f;
2925 } else
2926 f = *v;
2927- while ((me = getmntent(f)) != NULL && l > 1) {
2928+ while ((me = getmntent(f)) != NULL && l >= 1) {
2929 char *mnt_dir = nfsd_path_strip_root(me->mnt_dir);
2930
2931 if (!mnt_dir)
2932 continue;
2933
2934+ /* Everything below "/" is a proper sub-mount */
2935+ if (strcmp(p, "/") == 0)
2936+ return mnt_dir;
2937+
2938 if (strncmp(mnt_dir, p, l) == 0 && mnt_dir[l] == '/')
2939 return mnt_dir;
2940 }
2941@@ -684,8 +699,13 @@ static int match_fsid(struct parsed_fsid *parsed, nfs_export *exp, char *path)
2942 goto match;
2943 case FSID_NUM:
2944 if (((exp->m_export.e_flags & NFSEXP_FSID) == 0 ||
2945- exp->m_export.e_fsid != parsed->fsidnum))
2946+ exp->m_export.e_fsid != parsed->fsidnum)) {
2947+ if ((exp->m_export.e_flags & NFSEXP_CROSSMOUNT) && exp->m_export.e_reexport != REEXP_NONE &&
2948+ match_crossmnt_fsidnum(parsed->fsidnum, path))
2949+ goto match;
2950+
2951 goto nomatch;
2952+ }
2953 goto match;
2954 case FSID_UUID4_INUM:
2955 case FSID_UUID16_INUM:
2956@@ -758,6 +778,7 @@ static void nfsd_fh(int f)
2957 int dev_missing = 0;
2958 char buf[RPC_CHAN_BUF_SIZE], *bp;
2959 int blen;
2960+ int did_uncover = 0;
2961
2962 blen = cache_read(f, buf, sizeof(buf));
2963 if (blen <= 0 || buf[blen-1] != '\n') return;
2964@@ -795,6 +816,11 @@ static void nfsd_fh(int f)
2965 for (exp = exportlist[i].p_head; exp; exp = next_exp) {
2966 char *path;
2967
2968+ if (!did_uncover && parsed.fsidnum && parsed.fsidtype == FSID_NUM && exp->m_export.e_reexport != REEXP_NONE) {
2969+ reexpdb_uncover_subvolume(parsed.fsidnum);
2970+ did_uncover = 1;
2971+ }
2972+
2973 if (exp->m_export.e_flags & NFSEXP_CROSSMOUNT) {
2974 static nfs_export *prev = NULL;
2975 static void *mnt = NULL;
2976@@ -932,7 +958,8 @@ static void write_fsloc(char **bp, int *blen, struct exportent *ep)
2977 release_replicas(servers);
2978 }
2979 #endif
2980-static void write_secinfo(char **bp, int *blen, struct exportent *ep, int flag_mask)
2981+
2982+static void write_secinfo(char **bp, int *blen, struct exportent *ep, int flag_mask, int extra_flag)
2983 {
2984 struct sec_entry *p;
2985
2986@@ -947,9 +974,31 @@ static void write_secinfo(char **bp, int *blen, struct exportent *ep, int flag_m
2987 qword_addint(bp, blen, p - ep->e_secinfo);
2988 for (p = ep->e_secinfo; p->flav; p++) {
2989 qword_addint(bp, blen, p->flav->fnum);
2990- qword_addint(bp, blen, p->flags & flag_mask);
2991+ qword_addint(bp, blen, (p->flags | extra_flag) & flag_mask);
2992 }
2993+}
2994+
2995+static void write_xprtsec(char **bp, int *blen, struct exportent *ep)
2996+{
2997+ struct xprtsec_entry *p;
2998
2999+ for (p = ep->e_xprtsec; p->info; p++);
3000+ if (p == ep->e_xprtsec)
3001+ return;
3002+
3003+ qword_add(bp, blen, "xprtsec");
3004+ qword_addint(bp, blen, p - ep->e_xprtsec);
3005+ for (p = ep->e_xprtsec; p->info; p++)
3006+ qword_addint(bp, blen, p->info->number);
3007+}
3008+
3009+static int can_reexport_via_fsidnum(struct exportent *exp, struct statfs *st)
3010+{
3011+ if (st->f_type != 0x6969 /* NFS_SUPER_MAGIC */)
3012+ return 0;
3013+
3014+ return exp->e_reexport == REEXP_PREDEFINED_FSIDNUM ||
3015+ exp->e_reexport == REEXP_AUTO_FSIDNUM;
3016 }
3017
3018 static int dump_to_cache(int f, char *buf, int blen, char *domain,
3019@@ -968,17 +1017,48 @@ static int dump_to_cache(int f, char *buf, int blen, char *domain,
3020 if (exp) {
3021 int different_fs = strcmp(path, exp->e_path) != 0;
3022 int flag_mask = different_fs ? ~NFSEXP_FSID : ~0;
3023+ int rc, do_fsidnum = 0;
3024+ uint32_t fsidnum = exp->e_fsid;
3025+
3026+ if (different_fs) {
3027+ struct statfs st;
3028+
3029+ rc = nfsd_path_statfs(path, &st);
3030+ if (rc) {
3031+ xlog(L_WARNING, "unable to statfs %s", path);
3032+ errno = EINVAL;
3033+ return -1;
3034+ }
3035+
3036+ if (can_reexport_via_fsidnum(exp, &st)) {
3037+ do_fsidnum = 1;
3038+ flag_mask = ~0;
3039+ }
3040+ }
3041
3042 qword_adduint(&bp, &blen, now + exp->e_ttl);
3043- qword_addint(&bp, &blen, exp->e_flags & flag_mask);
3044+
3045+ if (do_fsidnum) {
3046+ uint32_t search_fsidnum = 0;
3047+ if (exp->e_reexport != REEXP_NONE && reexpdb_fsidnum_by_path(path, &search_fsidnum,
3048+ exp->e_reexport == REEXP_AUTO_FSIDNUM) == 0) {
3049+ errno = EINVAL;
3050+ return -1;
3051+ }
3052+ fsidnum = search_fsidnum;
3053+ qword_addint(&bp, &blen, exp->e_flags | NFSEXP_FSID);
3054+ } else {
3055+ qword_addint(&bp, &blen, exp->e_flags & flag_mask);
3056+ }
3057+
3058 qword_addint(&bp, &blen, exp->e_anonuid);
3059 qword_addint(&bp, &blen, exp->e_anongid);
3060- qword_addint(&bp, &blen, exp->e_fsid);
3061+ qword_addint(&bp, &blen, fsidnum);
3062
3063 #ifdef HAVE_JUNCTION_SUPPORT
3064 write_fsloc(&bp, &blen, exp);
3065 #endif
3066- write_secinfo(&bp, &blen, exp, flag_mask);
3067+ write_secinfo(&bp, &blen, exp, flag_mask, do_fsidnum ? NFSEXP_FSID : 0);
3068 if (exp->e_uuid == NULL || different_fs) {
3069 char u[16];
3070 if ((exp->e_flags & flag_mask & NFSEXP_FSID) == 0 &&
3071@@ -992,6 +1072,7 @@ static int dump_to_cache(int f, char *buf, int blen, char *domain,
3072 qword_add(&bp, &blen, "uuid");
3073 qword_addhex(&bp, &blen, u, 16);
3074 }
3075+ write_xprtsec(&bp, &blen, exp);
3076 xlog(D_AUTH, "granted access to %s for %s",
3077 path, *domain == '$' ? domain+1 : domain);
3078 } else {
3079diff --git a/support/export/client.c b/support/export/client.c
3080index ea4f89d..79164fe 100644
3081--- a/support/export/client.c
3082+++ b/support/export/client.c
3083@@ -699,6 +699,9 @@ check_netgroup(const nfs_client *clp, const struct addrinfo *ai)
3084
3085 /* check whether the IP itself is in the netgroup */
3086 ip = calloc(INET6_ADDRSTRLEN, 1);
3087+ if (ip == NULL)
3088+ goto out;
3089+
3090 if (inet_ntop(ai->ai_family, &(((struct sockaddr_in *)ai->ai_addr)->sin_addr), ip, INET6_ADDRSTRLEN) == ip) {
3091 if (innetgr(netgroup, ip, NULL, NULL)) {
3092 free(hname);
3093diff --git a/support/export/export.c b/support/export/export.c
3094index 03390df..3e48c42 100644
3095--- a/support/export/export.c
3096+++ b/support/export/export.c
3097@@ -25,6 +25,7 @@
3098 #include "exportfs.h"
3099 #include "nfsd_path.h"
3100 #include "xlog.h"
3101+#include "reexport.h"
3102
3103 exp_hash_table exportlist[MCL_MAXTYPES] = {{NULL, {{NULL,NULL}, }}, };
3104 static int export_hash(char *);
3105@@ -115,6 +116,7 @@ export_read(char *fname, int ignore_hosts)
3106 nfs_export *exp;
3107
3108 int volumes = 0;
3109+ int reexport_found = 0;
3110
3111 setexportent(fname, "r");
3112 while ((eep = getexportent(0,1)) != NULL) {
3113@@ -126,7 +128,25 @@ export_read(char *fname, int ignore_hosts)
3114 }
3115 else
3116 warn_duplicated_exports(exp, eep);
3117+
3118+ if (eep->e_reexport)
3119+ reexport_found = 1;
3120 }
3121+
3122+ if (reexport_found) {
3123+ for (int i = 0; i < MCL_MAXTYPES; i++) {
3124+ for (exp = exportlist[i].p_head; exp; exp = exp->m_next) {
3125+ if (exp->m_export.e_reexport)
3126+ continue;
3127+
3128+ if (exp->m_export.e_flags & NFSEXP_FSID) {
3129+ xlog(L_ERROR, "When a reexport= option is present no manully assigned numerical fsid= options are allowed");
3130+ return -1;
3131+ }
3132+ }
3133+ }
3134+ }
3135+
3136 endexportent();
3137
3138 return volumes;
3139diff --git a/support/export/v4clients.c b/support/export/v4clients.c
3140index 5f15b61..3230251 100644
3141--- a/support/export/v4clients.c
3142+++ b/support/export/v4clients.c
3143@@ -26,7 +26,7 @@ void v4clients_init(void)
3144 {
3145 struct stat sb;
3146
3147- if (!stat("/proc/fs/nfsd/clients", &sb) == 0 ||
3148+ if (stat("/proc/fs/nfsd/clients", &sb) != 0 ||
3149 !S_ISDIR(sb.st_mode))
3150 return;
3151 if (clients_fd >= 0)
3152diff --git a/support/export/v4root.c b/support/export/v4root.c
3153index c12a7d8..03805dc 100644
3154--- a/support/export/v4root.c
3155+++ b/support/export/v4root.c
3156@@ -66,6 +66,8 @@ set_pseudofs_security(struct exportent *pseudo)
3157
3158 if (!flav->fnum)
3159 continue;
3160+ if (flav->need_krb5 && access("/etc/krb5.keytab", F_OK) != 0)
3161+ continue;
3162
3163 i = secinfo_addflavor(flav, pseudo);
3164 new = &pseudo->e_secinfo[i];
3165@@ -198,7 +200,7 @@ static int v4root_add_parents(nfs_export *exp)
3166 * looking for components of the v4 mount.
3167 */
3168 void
3169-v4root_set()
3170+v4root_set(void)
3171 {
3172 nfs_export *exp;
3173 int i;
3174diff --git a/support/export/xtab.c b/support/export/xtab.c
3175index c888a80..e210ca9 100644
3176--- a/support/export/xtab.c
3177+++ b/support/export/xtab.c
3178@@ -135,7 +135,7 @@ xtab_write(char *xtab, char *xtabtmp, char *lockfn, int is_export)
3179 }
3180
3181 int
3182-xtab_export_write()
3183+xtab_export_write(void)
3184 {
3185 return xtab_write(etab.statefn, etab.tmpfn, etab.lockfn, 1);
3186 }
3187diff --git a/support/include/Makefile.in b/support/include/Makefile.in
3188index a0982c5..6b08669 100644
3189--- a/support/include/Makefile.in
3190+++ b/support/include/Makefile.in
3191@@ -268,6 +268,8 @@ LIBCRYPT = @LIBCRYPT@
3192 LIBEVENT = @LIBEVENT@
3193 LIBKEYUTILS = @LIBKEYUTILS@
3194 LIBMOUNT = @LIBMOUNT@
3195+LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
3196+LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
3197 LIBNSL = @LIBNSL@
3198 LIBOBJS = @LIBOBJS@
3199 LIBPTHREAD = @LIBPTHREAD@
3200@@ -369,7 +371,6 @@ localedir = @localedir@
3201 localstatedir = @localstatedir@
3202 mandir = @mandir@
3203 mkdir_p = @mkdir_p@
3204-modprobedir = @modprobedir@
3205 mountfile = @mountfile@
3206 nfsconfig = @nfsconfig@
3207 oldincludedir = @oldincludedir@
3208diff --git a/support/include/nfs/Makefile.in b/support/include/nfs/Makefile.in
3209index b4eb775..015d6d8 100644
3210--- a/support/include/nfs/Makefile.in
3211+++ b/support/include/nfs/Makefile.in
3212@@ -225,6 +225,8 @@ LIBCRYPT = @LIBCRYPT@
3213 LIBEVENT = @LIBEVENT@
3214 LIBKEYUTILS = @LIBKEYUTILS@
3215 LIBMOUNT = @LIBMOUNT@
3216+LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
3217+LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
3218 LIBNSL = @LIBNSL@
3219 LIBOBJS = @LIBOBJS@
3220 LIBPTHREAD = @LIBPTHREAD@
3221@@ -326,7 +328,6 @@ localedir = @localedir@
3222 localstatedir = @localstatedir@
3223 mandir = @mandir@
3224 mkdir_p = @mkdir_p@
3225-modprobedir = @modprobedir@
3226 mountfile = @mountfile@
3227 nfsconfig = @nfsconfig@
3228 oldincludedir = @oldincludedir@
3229diff --git a/support/include/nfs/export.h b/support/include/nfs/export.h
3230index 0eca828..be5867c 100644
3231--- a/support/include/nfs/export.h
3232+++ b/support/include/nfs/export.h
3233@@ -40,4 +40,18 @@
3234 #define NFSEXP_OLD_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \
3235 | NFSEXP_ALLSQUASH)
3236
3237+/*
3238+ * Transport layer security policies that are permitted to access
3239+ * an export
3240+ */
3241+#define NFSEXP_XPRTSEC_NONE 0x0001
3242+#define NFSEXP_XPRTSEC_TLS 0x0002
3243+#define NFSEXP_XPRTSEC_MTLS 0x0004
3244+
3245+#define NFSEXP_XPRTSEC_NUM (3)
3246+
3247+#define NFSEXP_XPRTSEC_ALL (NFSEXP_XPRTSEC_NONE | \
3248+ NFSEXP_XPRTSEC_TLS | \
3249+ NFSEXP_XPRTSEC_MTLS)
3250+
3251 #endif /* _NSF_EXPORT_H */
3252diff --git a/support/include/nfsd_path.h b/support/include/nfsd_path.h
3253index 3b73aad..aa1e1dd 100644
3254--- a/support/include/nfsd_path.h
3255+++ b/support/include/nfsd_path.h
3256@@ -7,7 +7,7 @@
3257 #include <sys/stat.h>
3258
3259 struct file_handle;
3260-struct statfs64;
3261+struct statfs;
3262
3263 void nfsd_path_init(void);
3264
3265@@ -18,8 +18,8 @@ char * nfsd_path_prepend_dir(const char *dir, const char *pathname);
3266 int nfsd_path_stat(const char *pathname, struct stat *statbuf);
3267 int nfsd_path_lstat(const char *pathname, struct stat *statbuf);
3268
3269-int nfsd_path_statfs64(const char *pathname,
3270- struct statfs64 *statbuf);
3271+int nfsd_path_statfs(const char *pathname,
3272+ struct statfs *statbuf);
3273
3274 char * nfsd_realpath(const char *path, char *resolved_path);
3275
3276diff --git a/support/include/nfslib.h b/support/include/nfslib.h
3277index 6faba71..bdbde78 100644
3278--- a/support/include/nfslib.h
3279+++ b/support/include/nfslib.h
3280@@ -62,6 +62,18 @@ struct sec_entry {
3281 int flags;
3282 };
3283
3284+#define XPRTSECMODE_COUNT 3
3285+
3286+struct xprtsec_info {
3287+ const char *name;
3288+ int number;
3289+};
3290+
3291+struct xprtsec_entry {
3292+ const struct xprtsec_info *info;
3293+ int flags;
3294+};
3295+
3296 /*
3297 * Data related to a single exports entry as returned by getexportent.
3298 * FIXME: export options should probably be parsed at a later time to
3299@@ -83,8 +95,10 @@ struct exportent {
3300 char * e_fslocdata;
3301 char * e_uuid;
3302 struct sec_entry e_secinfo[SECFLAVOR_COUNT+1];
3303+ struct xprtsec_entry e_xprtsec[XPRTSECMODE_COUNT + 1];
3304 unsigned int e_ttl;
3305 char * e_realpath;
3306+ int e_reexport;
3307 };
3308
3309 struct rmtabent {
3310@@ -99,6 +113,7 @@ struct rmtabent {
3311 void setexportent(char *fname, char *type);
3312 struct exportent * getexportent(int,int);
3313 void secinfo_show(FILE *fp, struct exportent *ep);
3314+void xprtsecinfo_show(FILE *fp, struct exportent *ep);
3315 void putexportent(struct exportent *xep);
3316 void endexportent(void);
3317 struct exportent * mkexportent(char *hname, char *path, char *opts);
3318diff --git a/support/include/pseudoflavors.h b/support/include/pseudoflavors.h
3319index deb052b..1f16f3f 100644
3320--- a/support/include/pseudoflavors.h
3321+++ b/support/include/pseudoflavors.h
3322@@ -8,6 +8,7 @@
3323 struct flav_info {
3324 char *flavour;
3325 int fnum;
3326+ int need_krb5;
3327 };
3328
3329 extern struct flav_info flav_map[];
3330diff --git a/support/include/rpcsvc/Makefile.in b/support/include/rpcsvc/Makefile.in
3331index 635d867..3d0b2e7 100644
3332--- a/support/include/rpcsvc/Makefile.in
3333+++ b/support/include/rpcsvc/Makefile.in
3334@@ -225,6 +225,8 @@ LIBCRYPT = @LIBCRYPT@
3335 LIBEVENT = @LIBEVENT@
3336 LIBKEYUTILS = @LIBKEYUTILS@
3337 LIBMOUNT = @LIBMOUNT@
3338+LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
3339+LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
3340 LIBNSL = @LIBNSL@
3341 LIBOBJS = @LIBOBJS@
3342 LIBPTHREAD = @LIBPTHREAD@
3343@@ -326,7 +328,6 @@ localedir = @localedir@
3344 localstatedir = @localstatedir@
3345 mandir = @mandir@
3346 mkdir_p = @mkdir_p@
3347-modprobedir = @modprobedir@
3348 mountfile = @mountfile@
3349 nfsconfig = @nfsconfig@
3350 oldincludedir = @oldincludedir@
3351diff --git a/support/include/sys/Makefile.in b/support/include/sys/Makefile.in
3352index b42c1fb..28f99a6 100644
3353--- a/support/include/sys/Makefile.in
3354+++ b/support/include/sys/Makefile.in
3355@@ -264,6 +264,8 @@ LIBCRYPT = @LIBCRYPT@
3356 LIBEVENT = @LIBEVENT@
3357 LIBKEYUTILS = @LIBKEYUTILS@
3358 LIBMOUNT = @LIBMOUNT@
3359+LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
3360+LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
3361 LIBNSL = @LIBNSL@
3362 LIBOBJS = @LIBOBJS@
3363 LIBPTHREAD = @LIBPTHREAD@
3364@@ -365,7 +367,6 @@ localedir = @localedir@
3365 localstatedir = @localstatedir@
3366 mandir = @mandir@
3367 mkdir_p = @mkdir_p@
3368-modprobedir = @modprobedir@
3369 mountfile = @mountfile@
3370 nfsconfig = @nfsconfig@
3371 oldincludedir = @oldincludedir@
3372diff --git a/support/include/sys/fs/Makefile.in b/support/include/sys/fs/Makefile.in
3373index 5ee8920..596c100 100644
3374--- a/support/include/sys/fs/Makefile.in
3375+++ b/support/include/sys/fs/Makefile.in
3376@@ -225,6 +225,8 @@ LIBCRYPT = @LIBCRYPT@
3377 LIBEVENT = @LIBEVENT@
3378 LIBKEYUTILS = @LIBKEYUTILS@
3379 LIBMOUNT = @LIBMOUNT@
3380+LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
3381+LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
3382 LIBNSL = @LIBNSL@
3383 LIBOBJS = @LIBOBJS@
3384 LIBPTHREAD = @LIBPTHREAD@
3385@@ -326,7 +328,6 @@ localedir = @localedir@
3386 localstatedir = @localstatedir@
3387 mandir = @mandir@
3388 mkdir_p = @mkdir_p@
3389-modprobedir = @modprobedir@
3390 mountfile = @mountfile@
3391 nfsconfig = @nfsconfig@
3392 oldincludedir = @oldincludedir@
3393diff --git a/support/junction/Makefile.in b/support/junction/Makefile.in
3394index ed8cd7f..0e9200b 100644
3395--- a/support/junction/Makefile.in
3396+++ b/support/junction/Makefile.in
3397@@ -261,6 +261,8 @@ LIBCRYPT = @LIBCRYPT@
3398 LIBEVENT = @LIBEVENT@
3399 LIBKEYUTILS = @LIBKEYUTILS@
3400 LIBMOUNT = @LIBMOUNT@
3401+LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
3402+LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
3403 LIBNSL = @LIBNSL@
3404 LIBOBJS = @LIBOBJS@
3405 LIBPTHREAD = @LIBPTHREAD@
3406@@ -362,7 +364,6 @@ localedir = @localedir@
3407 localstatedir = @localstatedir@
3408 mandir = @mandir@
3409 mkdir_p = @mkdir_p@
3410-modprobedir = @modprobedir@
3411 mountfile = @mountfile@
3412 nfsconfig = @nfsconfig@
3413 oldincludedir = @oldincludedir@
3414diff --git a/support/junction/junction.c b/support/junction/junction.c
3415index 41cce26..0628bb0 100644
3416--- a/support/junction/junction.c
3417+++ b/support/junction/junction.c
3418@@ -63,7 +63,7 @@ junction_open_path(const char *pathname, int *fd)
3419 if (pathname == NULL || fd == NULL)
3420 return FEDFS_ERR_INVAL;
3421
3422- tmp = open(pathname, O_DIRECTORY);
3423+ tmp = open(pathname, O_PATH|O_DIRECTORY);
3424 if (tmp == -1) {
3425 switch (errno) {
3426 case EPERM:
3427@@ -93,7 +93,7 @@ junction_is_directory(int fd, const char *path)
3428 {
3429 struct stat stb;
3430
3431- if (fstat(fd, &stb) == -1) {
3432+ if (fstatat(fd, "", &stb, AT_NO_AUTOMOUNT|AT_EMPTY_PATH) == -1) {
3433 xlog(D_GENERAL, "%s: failed to stat %s: %m",
3434 __func__, path);
3435 return FEDFS_ERR_ACCESS;
3436@@ -121,7 +121,7 @@ junction_is_sticky_bit_set(int fd, const char *path)
3437 {
3438 struct stat stb;
3439
3440- if (fstat(fd, &stb) == -1) {
3441+ if (fstatat(fd, "", &stb, AT_NO_AUTOMOUNT|AT_EMPTY_PATH) == -1) {
3442 xlog(D_GENERAL, "%s: failed to stat %s: %m",
3443 __func__, path);
3444 return FEDFS_ERR_ACCESS;
3445@@ -155,7 +155,7 @@ junction_set_sticky_bit(int fd, const char *path)
3446 {
3447 struct stat stb;
3448
3449- if (fstat(fd, &stb) == -1) {
3450+ if (fstatat(fd, "", &stb, AT_NO_AUTOMOUNT|AT_EMPTY_PATH) == -1) {
3451 xlog(D_GENERAL, "%s: failed to stat %s: %m",
3452 __func__, path);
3453 return FEDFS_ERR_ACCESS;
3454@@ -393,7 +393,7 @@ junction_get_mode(const char *pathname, mode_t *mode)
3455 if (retval != FEDFS_OK)
3456 return retval;
3457
3458- if (fstat(fd, &stb) == -1) {
3459+ if (fstatat(fd, "", &stb, AT_NO_AUTOMOUNT|AT_EMPTY_PATH) == -1) {
3460 xlog(D_GENERAL, "%s: failed to stat %s: %m",
3461 __func__, pathname);
3462 (void)close(fd);
3463diff --git a/support/misc/Makefile.in b/support/misc/Makefile.in
3464index 8943bff..45e6cec 100644
3465--- a/support/misc/Makefile.in
3466+++ b/support/misc/Makefile.in
3467@@ -265,6 +265,8 @@ LIBCRYPT = @LIBCRYPT@
3468 LIBEVENT = @LIBEVENT@
3469 LIBKEYUTILS = @LIBKEYUTILS@
3470 LIBMOUNT = @LIBMOUNT@
3471+LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
3472+LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
3473 LIBNSL = @LIBNSL@
3474 LIBOBJS = @LIBOBJS@
3475 LIBPTHREAD = @LIBPTHREAD@
3476@@ -366,7 +368,6 @@ localedir = @localedir@
3477 localstatedir = @localstatedir@
3478 mandir = @mandir@
3479 mkdir_p = @mkdir_p@
3480-modprobedir = @modprobedir@
3481 mountfile = @mountfile@
3482 nfsconfig = @nfsconfig@
3483 oldincludedir = @oldincludedir@
3484diff --git a/support/misc/nfsd_path.c b/support/misc/nfsd_path.c
3485index 65e53c1..c3dea4f 100644
3486--- a/support/misc/nfsd_path.c
3487+++ b/support/misc/nfsd_path.c
3488@@ -184,46 +184,46 @@ nfsd_path_lstat(const char *pathname, struct stat *statbuf)
3489 return nfsd_run_stat(nfsd_wq, nfsd_lstatfunc, pathname, statbuf);
3490 }
3491
3492-struct nfsd_statfs64_data {
3493+struct nfsd_statfs_data {
3494 const char *pathname;
3495- struct statfs64 *statbuf;
3496+ struct statfs *statbuf;
3497 int ret;
3498 int err;
3499 };
3500
3501 static void
3502-nfsd_statfs64func(void *data)
3503+nfsd_statfsfunc(void *data)
3504 {
3505- struct nfsd_statfs64_data *d = data;
3506+ struct nfsd_statfs_data *d = data;
3507
3508- d->ret = statfs64(d->pathname, d->statbuf);
3509+ d->ret = statfs(d->pathname, d->statbuf);
3510 if (d->ret < 0)
3511 d->err = errno;
3512 }
3513
3514 static int
3515-nfsd_run_statfs64(struct xthread_workqueue *wq,
3516+nfsd_run_statfs(struct xthread_workqueue *wq,
3517 const char *pathname,
3518- struct statfs64 *statbuf)
3519+ struct statfs *statbuf)
3520 {
3521- struct nfsd_statfs64_data data = {
3522+ struct nfsd_statfs_data data = {
3523 pathname,
3524 statbuf,
3525 0,
3526 0
3527 };
3528- xthread_work_run_sync(wq, nfsd_statfs64func, &data);
3529+ xthread_work_run_sync(wq, nfsd_statfsfunc, &data);
3530 if (data.ret < 0)
3531 errno = data.err;
3532 return data.ret;
3533 }
3534
3535 int
3536-nfsd_path_statfs64(const char *pathname, struct statfs64 *statbuf)
3537+nfsd_path_statfs(const char *pathname, struct statfs *statbuf)
3538 {
3539 if (!nfsd_wq)
3540- return statfs64(pathname, statbuf);
3541- return nfsd_run_statfs64(nfsd_wq, pathname, statbuf);
3542+ return statfs(pathname, statbuf);
3543+ return nfsd_run_statfs(nfsd_wq, pathname, statbuf);
3544 }
3545
3546 struct nfsd_realpath_data {
3547diff --git a/support/nfs/Makefile.am b/support/nfs/Makefile.am
3548index 67e3a8e..2e1577c 100644
3549--- a/support/nfs/Makefile.am
3550+++ b/support/nfs/Makefile.am
3551@@ -9,6 +9,7 @@ libnfs_la_SOURCES = exports.c rmtab.c xio.c rpcmisc.c rpcdispatch.c \
3552 svc_socket.c cacheio.c closeall.c nfs_mntent.c \
3553 svc_create.c atomicio.c strlcat.c strlcpy.c
3554 libnfs_la_LIBADD = libnfsconf.la
3555+libnfs_la_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS) -I$(top_srcdir)/support/reexport
3556
3557 libnfsconf_la_SOURCES = conffile.c xlog.c
3558
3559diff --git a/support/nfs/Makefile.in b/support/nfs/Makefile.in
3560index 3b97f99..0379852 100644
3561--- a/support/nfs/Makefile.in
3562+++ b/support/nfs/Makefile.in
3563@@ -117,10 +117,15 @@ CONFIG_CLEAN_VPATH_FILES =
3564 LIBRARIES = $(noinst_LIBRARIES)
3565 LTLIBRARIES = $(noinst_LTLIBRARIES)
3566 libnfs_la_DEPENDENCIES = libnfsconf.la
3567-am_libnfs_la_OBJECTS = exports.lo rmtab.lo xio.lo rpcmisc.lo \
3568- rpcdispatch.lo xcommon.lo wildmat.lo mydaemon.lo rpc_socket.lo \
3569- getport.lo svc_socket.lo cacheio.lo closeall.lo nfs_mntent.lo \
3570- svc_create.lo atomicio.lo strlcat.lo strlcpy.lo
3571+am_libnfs_la_OBJECTS = libnfs_la-exports.lo libnfs_la-rmtab.lo \
3572+ libnfs_la-xio.lo libnfs_la-rpcmisc.lo libnfs_la-rpcdispatch.lo \
3573+ libnfs_la-xcommon.lo libnfs_la-wildmat.lo \
3574+ libnfs_la-mydaemon.lo libnfs_la-rpc_socket.lo \
3575+ libnfs_la-getport.lo libnfs_la-svc_socket.lo \
3576+ libnfs_la-cacheio.lo libnfs_la-closeall.lo \
3577+ libnfs_la-nfs_mntent.lo libnfs_la-svc_create.lo \
3578+ libnfs_la-atomicio.lo libnfs_la-strlcat.lo \
3579+ libnfs_la-strlcpy.lo
3580 libnfs_la_OBJECTS = $(am_libnfs_la_OBJECTS)
3581 AM_V_lt = $(am__v_lt_@AM_V@)
3582 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
3583@@ -144,16 +149,25 @@ am__v_at_1 =
3584 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/support/include
3585 depcomp = $(SHELL) $(top_srcdir)/depcomp
3586 am__maybe_remake_depfiles = depfiles
3587-am__depfiles_remade = ./$(DEPDIR)/atomicio.Plo ./$(DEPDIR)/cacheio.Plo \
3588- ./$(DEPDIR)/closeall.Plo ./$(DEPDIR)/conffile.Plo \
3589- ./$(DEPDIR)/exports.Plo ./$(DEPDIR)/getport.Plo \
3590- ./$(DEPDIR)/mydaemon.Plo ./$(DEPDIR)/nfs_mntent.Plo \
3591- ./$(DEPDIR)/rmtab.Plo ./$(DEPDIR)/rpc_socket.Plo \
3592- ./$(DEPDIR)/rpcdispatch.Plo ./$(DEPDIR)/rpcmisc.Plo \
3593- ./$(DEPDIR)/strlcat.Plo ./$(DEPDIR)/strlcpy.Plo \
3594- ./$(DEPDIR)/svc_create.Plo ./$(DEPDIR)/svc_socket.Plo \
3595- ./$(DEPDIR)/wildmat.Plo ./$(DEPDIR)/xcommon.Plo \
3596- ./$(DEPDIR)/xio.Plo ./$(DEPDIR)/xlog.Plo
3597+am__depfiles_remade = ./$(DEPDIR)/conffile.Plo \
3598+ ./$(DEPDIR)/libnfs_la-atomicio.Plo \
3599+ ./$(DEPDIR)/libnfs_la-cacheio.Plo \
3600+ ./$(DEPDIR)/libnfs_la-closeall.Plo \
3601+ ./$(DEPDIR)/libnfs_la-exports.Plo \
3602+ ./$(DEPDIR)/libnfs_la-getport.Plo \
3603+ ./$(DEPDIR)/libnfs_la-mydaemon.Plo \
3604+ ./$(DEPDIR)/libnfs_la-nfs_mntent.Plo \
3605+ ./$(DEPDIR)/libnfs_la-rmtab.Plo \
3606+ ./$(DEPDIR)/libnfs_la-rpc_socket.Plo \
3607+ ./$(DEPDIR)/libnfs_la-rpcdispatch.Plo \
3608+ ./$(DEPDIR)/libnfs_la-rpcmisc.Plo \
3609+ ./$(DEPDIR)/libnfs_la-strlcat.Plo \
3610+ ./$(DEPDIR)/libnfs_la-strlcpy.Plo \
3611+ ./$(DEPDIR)/libnfs_la-svc_create.Plo \
3612+ ./$(DEPDIR)/libnfs_la-svc_socket.Plo \
3613+ ./$(DEPDIR)/libnfs_la-wildmat.Plo \
3614+ ./$(DEPDIR)/libnfs_la-xcommon.Plo \
3615+ ./$(DEPDIR)/libnfs_la-xio.Plo ./$(DEPDIR)/xlog.Plo
3616 am__mv = mv -f
3617 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
3618 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
3619@@ -271,6 +285,8 @@ LIBCRYPT = @LIBCRYPT@
3620 LIBEVENT = @LIBEVENT@
3621 LIBKEYUTILS = @LIBKEYUTILS@
3622 LIBMOUNT = @LIBMOUNT@
3623+LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
3624+LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
3625 LIBNSL = @LIBNSL@
3626 LIBOBJS = @LIBOBJS@
3627 LIBPTHREAD = @LIBPTHREAD@
3628@@ -372,7 +388,6 @@ localedir = @localedir@
3629 localstatedir = @localstatedir@
3630 mandir = @mandir@
3631 mkdir_p = @mkdir_p@
3632-modprobedir = @modprobedir@
3633 mountfile = @mountfile@
3634 nfsconfig = @nfsconfig@
3635 oldincludedir = @oldincludedir@
3636@@ -404,6 +419,7 @@ libnfs_la_SOURCES = exports.c rmtab.c xio.c rpcmisc.c rpcdispatch.c \
3637 svc_create.c atomicio.c strlcat.c strlcpy.c
3638
3639 libnfs_la_LIBADD = libnfsconf.la
3640+libnfs_la_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS) -I$(top_srcdir)/support/reexport
3641 libnfsconf_la_SOURCES = conffile.c xlog.c
3642 MAINTAINERCLEANFILES = Makefile.in
3643 all: all-am
3644@@ -466,25 +482,25 @@ mostlyclean-compile:
3645 distclean-compile:
3646 -rm -f *.tab.c
3647
3648-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atomicio.Plo@am__quote@ # am--include-marker
3649-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cacheio.Plo@am__quote@ # am--include-marker
3650-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closeall.Plo@am__quote@ # am--include-marker
3651 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conffile.Plo@am__quote@ # am--include-marker
3652-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exports.Plo@am__quote@ # am--include-marker
3653-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getport.Plo@am__quote@ # am--include-marker
3654-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mydaemon.Plo@am__quote@ # am--include-marker
3655-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfs_mntent.Plo@am__quote@ # am--include-marker
3656-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rmtab.Plo@am__quote@ # am--include-marker
3657-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpc_socket.Plo@am__quote@ # am--include-marker
3658-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpcdispatch.Plo@am__quote@ # am--include-marker
3659-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpcmisc.Plo@am__quote@ # am--include-marker
3660-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strlcat.Plo@am__quote@ # am--include-marker
3661-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strlcpy.Plo@am__quote@ # am--include-marker
3662-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/svc_create.Plo@am__quote@ # am--include-marker
3663-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/svc_socket.Plo@am__quote@ # am--include-marker
3664-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wildmat.Plo@am__quote@ # am--include-marker
3665-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcommon.Plo@am__quote@ # am--include-marker
3666-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xio.Plo@am__quote@ # am--include-marker
3667+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-atomicio.Plo@am__quote@ # am--include-marker
3668+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-cacheio.Plo@am__quote@ # am--include-marker
3669+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-closeall.Plo@am__quote@ # am--include-marker
3670+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-exports.Plo@am__quote@ # am--include-marker
3671+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-getport.Plo@am__quote@ # am--include-marker
3672+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-mydaemon.Plo@am__quote@ # am--include-marker
3673+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-nfs_mntent.Plo@am__quote@ # am--include-marker
3674+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-rmtab.Plo@am__quote@ # am--include-marker
3675+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-rpc_socket.Plo@am__quote@ # am--include-marker
3676+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-rpcdispatch.Plo@am__quote@ # am--include-marker
3677+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-rpcmisc.Plo@am__quote@ # am--include-marker
3678+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-strlcat.Plo@am__quote@ # am--include-marker
3679+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-strlcpy.Plo@am__quote@ # am--include-marker
3680+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-svc_create.Plo@am__quote@ # am--include-marker
3681+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-svc_socket.Plo@am__quote@ # am--include-marker
3682+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-wildmat.Plo@am__quote@ # am--include-marker
3683+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-xcommon.Plo@am__quote@ # am--include-marker
3684+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-xio.Plo@am__quote@ # am--include-marker
3685 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xlog.Plo@am__quote@ # am--include-marker
3686
3687 $(am__depfiles_remade):
3688@@ -514,6 +530,132 @@ am--depfiles: $(am__depfiles_remade)
3689 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3690 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
3691
3692+libnfs_la-exports.lo: exports.c
3693+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-exports.lo -MD -MP -MF $(DEPDIR)/libnfs_la-exports.Tpo -c -o libnfs_la-exports.lo `test -f 'exports.c' || echo '$(srcdir)/'`exports.c
3694+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-exports.Tpo $(DEPDIR)/libnfs_la-exports.Plo
3695+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='exports.c' object='libnfs_la-exports.lo' libtool=yes @AMDEPBACKSLASH@
3696+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3697+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-exports.lo `test -f 'exports.c' || echo '$(srcdir)/'`exports.c
3698+
3699+libnfs_la-rmtab.lo: rmtab.c
3700+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-rmtab.lo -MD -MP -MF $(DEPDIR)/libnfs_la-rmtab.Tpo -c -o libnfs_la-rmtab.lo `test -f 'rmtab.c' || echo '$(srcdir)/'`rmtab.c
3701+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-rmtab.Tpo $(DEPDIR)/libnfs_la-rmtab.Plo
3702+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rmtab.c' object='libnfs_la-rmtab.lo' libtool=yes @AMDEPBACKSLASH@
3703+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3704+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-rmtab.lo `test -f 'rmtab.c' || echo '$(srcdir)/'`rmtab.c
3705+
3706+libnfs_la-xio.lo: xio.c
3707+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-xio.lo -MD -MP -MF $(DEPDIR)/libnfs_la-xio.Tpo -c -o libnfs_la-xio.lo `test -f 'xio.c' || echo '$(srcdir)/'`xio.c
3708+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-xio.Tpo $(DEPDIR)/libnfs_la-xio.Plo
3709+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xio.c' object='libnfs_la-xio.lo' libtool=yes @AMDEPBACKSLASH@
3710+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3711+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-xio.lo `test -f 'xio.c' || echo '$(srcdir)/'`xio.c
3712+
3713+libnfs_la-rpcmisc.lo: rpcmisc.c
3714+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-rpcmisc.lo -MD -MP -MF $(DEPDIR)/libnfs_la-rpcmisc.Tpo -c -o libnfs_la-rpcmisc.lo `test -f 'rpcmisc.c' || echo '$(srcdir)/'`rpcmisc.c
3715+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-rpcmisc.Tpo $(DEPDIR)/libnfs_la-rpcmisc.Plo
3716+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rpcmisc.c' object='libnfs_la-rpcmisc.lo' libtool=yes @AMDEPBACKSLASH@
3717+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3718+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-rpcmisc.lo `test -f 'rpcmisc.c' || echo '$(srcdir)/'`rpcmisc.c
3719+
3720+libnfs_la-rpcdispatch.lo: rpcdispatch.c
3721+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-rpcdispatch.lo -MD -MP -MF $(DEPDIR)/libnfs_la-rpcdispatch.Tpo -c -o libnfs_la-rpcdispatch.lo `test -f 'rpcdispatch.c' || echo '$(srcdir)/'`rpcdispatch.c
3722+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-rpcdispatch.Tpo $(DEPDIR)/libnfs_la-rpcdispatch.Plo
3723+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rpcdispatch.c' object='libnfs_la-rpcdispatch.lo' libtool=yes @AMDEPBACKSLASH@
3724+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3725+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-rpcdispatch.lo `test -f 'rpcdispatch.c' || echo '$(srcdir)/'`rpcdispatch.c
3726+
3727+libnfs_la-xcommon.lo: xcommon.c
3728+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-xcommon.lo -MD -MP -MF $(DEPDIR)/libnfs_la-xcommon.Tpo -c -o libnfs_la-xcommon.lo `test -f 'xcommon.c' || echo '$(srcdir)/'`xcommon.c
3729+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-xcommon.Tpo $(DEPDIR)/libnfs_la-xcommon.Plo
3730+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xcommon.c' object='libnfs_la-xcommon.lo' libtool=yes @AMDEPBACKSLASH@
3731+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3732+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-xcommon.lo `test -f 'xcommon.c' || echo '$(srcdir)/'`xcommon.c
3733+
3734+libnfs_la-wildmat.lo: wildmat.c
3735+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-wildmat.lo -MD -MP -MF $(DEPDIR)/libnfs_la-wildmat.Tpo -c -o libnfs_la-wildmat.lo `test -f 'wildmat.c' || echo '$(srcdir)/'`wildmat.c
3736+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-wildmat.Tpo $(DEPDIR)/libnfs_la-wildmat.Plo
3737+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wildmat.c' object='libnfs_la-wildmat.lo' libtool=yes @AMDEPBACKSLASH@
3738+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3739+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-wildmat.lo `test -f 'wildmat.c' || echo '$(srcdir)/'`wildmat.c
3740+
3741+libnfs_la-mydaemon.lo: mydaemon.c
3742+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-mydaemon.lo -MD -MP -MF $(DEPDIR)/libnfs_la-mydaemon.Tpo -c -o libnfs_la-mydaemon.lo `test -f 'mydaemon.c' || echo '$(srcdir)/'`mydaemon.c
3743+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-mydaemon.Tpo $(DEPDIR)/libnfs_la-mydaemon.Plo
3744+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mydaemon.c' object='libnfs_la-mydaemon.lo' libtool=yes @AMDEPBACKSLASH@
3745+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3746+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-mydaemon.lo `test -f 'mydaemon.c' || echo '$(srcdir)/'`mydaemon.c
3747+
3748+libnfs_la-rpc_socket.lo: rpc_socket.c
3749+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-rpc_socket.lo -MD -MP -MF $(DEPDIR)/libnfs_la-rpc_socket.Tpo -c -o libnfs_la-rpc_socket.lo `test -f 'rpc_socket.c' || echo '$(srcdir)/'`rpc_socket.c
3750+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-rpc_socket.Tpo $(DEPDIR)/libnfs_la-rpc_socket.Plo
3751+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rpc_socket.c' object='libnfs_la-rpc_socket.lo' libtool=yes @AMDEPBACKSLASH@
3752+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3753+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-rpc_socket.lo `test -f 'rpc_socket.c' || echo '$(srcdir)/'`rpc_socket.c
3754+
3755+libnfs_la-getport.lo: getport.c
3756+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-getport.lo -MD -MP -MF $(DEPDIR)/libnfs_la-getport.Tpo -c -o libnfs_la-getport.lo `test -f 'getport.c' || echo '$(srcdir)/'`getport.c
3757+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-getport.Tpo $(DEPDIR)/libnfs_la-getport.Plo
3758+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getport.c' object='libnfs_la-getport.lo' libtool=yes @AMDEPBACKSLASH@
3759+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3760+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-getport.lo `test -f 'getport.c' || echo '$(srcdir)/'`getport.c
3761+
3762+libnfs_la-svc_socket.lo: svc_socket.c
3763+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-svc_socket.lo -MD -MP -MF $(DEPDIR)/libnfs_la-svc_socket.Tpo -c -o libnfs_la-svc_socket.lo `test -f 'svc_socket.c' || echo '$(srcdir)/'`svc_socket.c
3764+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-svc_socket.Tpo $(DEPDIR)/libnfs_la-svc_socket.Plo
3765+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='svc_socket.c' object='libnfs_la-svc_socket.lo' libtool=yes @AMDEPBACKSLASH@
3766+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3767+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-svc_socket.lo `test -f 'svc_socket.c' || echo '$(srcdir)/'`svc_socket.c
3768+
3769+libnfs_la-cacheio.lo: cacheio.c
3770+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-cacheio.lo -MD -MP -MF $(DEPDIR)/libnfs_la-cacheio.Tpo -c -o libnfs_la-cacheio.lo `test -f 'cacheio.c' || echo '$(srcdir)/'`cacheio.c
3771+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-cacheio.Tpo $(DEPDIR)/libnfs_la-cacheio.Plo
3772+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cacheio.c' object='libnfs_la-cacheio.lo' libtool=yes @AMDEPBACKSLASH@
3773+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3774+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-cacheio.lo `test -f 'cacheio.c' || echo '$(srcdir)/'`cacheio.c
3775+
3776+libnfs_la-closeall.lo: closeall.c
3777+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-closeall.lo -MD -MP -MF $(DEPDIR)/libnfs_la-closeall.Tpo -c -o libnfs_la-closeall.lo `test -f 'closeall.c' || echo '$(srcdir)/'`closeall.c
3778+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-closeall.Tpo $(DEPDIR)/libnfs_la-closeall.Plo
3779+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='closeall.c' object='libnfs_la-closeall.lo' libtool=yes @AMDEPBACKSLASH@
3780+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3781+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-closeall.lo `test -f 'closeall.c' || echo '$(srcdir)/'`closeall.c
3782+
3783+libnfs_la-nfs_mntent.lo: nfs_mntent.c
3784+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-nfs_mntent.lo -MD -MP -MF $(DEPDIR)/libnfs_la-nfs_mntent.Tpo -c -o libnfs_la-nfs_mntent.lo `test -f 'nfs_mntent.c' || echo '$(srcdir)/'`nfs_mntent.c
3785+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-nfs_mntent.Tpo $(DEPDIR)/libnfs_la-nfs_mntent.Plo
3786+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nfs_mntent.c' object='libnfs_la-nfs_mntent.lo' libtool=yes @AMDEPBACKSLASH@
3787+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3788+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-nfs_mntent.lo `test -f 'nfs_mntent.c' || echo '$(srcdir)/'`nfs_mntent.c
3789+
3790+libnfs_la-svc_create.lo: svc_create.c
3791+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-svc_create.lo -MD -MP -MF $(DEPDIR)/libnfs_la-svc_create.Tpo -c -o libnfs_la-svc_create.lo `test -f 'svc_create.c' || echo '$(srcdir)/'`svc_create.c
3792+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-svc_create.Tpo $(DEPDIR)/libnfs_la-svc_create.Plo
3793+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='svc_create.c' object='libnfs_la-svc_create.lo' libtool=yes @AMDEPBACKSLASH@
3794+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3795+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-svc_create.lo `test -f 'svc_create.c' || echo '$(srcdir)/'`svc_create.c
3796+
3797+libnfs_la-atomicio.lo: atomicio.c
3798+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-atomicio.lo -MD -MP -MF $(DEPDIR)/libnfs_la-atomicio.Tpo -c -o libnfs_la-atomicio.lo `test -f 'atomicio.c' || echo '$(srcdir)/'`atomicio.c
3799+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-atomicio.Tpo $(DEPDIR)/libnfs_la-atomicio.Plo
3800+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='atomicio.c' object='libnfs_la-atomicio.lo' libtool=yes @AMDEPBACKSLASH@
3801+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3802+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-atomicio.lo `test -f 'atomicio.c' || echo '$(srcdir)/'`atomicio.c
3803+
3804+libnfs_la-strlcat.lo: strlcat.c
3805+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-strlcat.lo -MD -MP -MF $(DEPDIR)/libnfs_la-strlcat.Tpo -c -o libnfs_la-strlcat.lo `test -f 'strlcat.c' || echo '$(srcdir)/'`strlcat.c
3806+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-strlcat.Tpo $(DEPDIR)/libnfs_la-strlcat.Plo
3807+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strlcat.c' object='libnfs_la-strlcat.lo' libtool=yes @AMDEPBACKSLASH@
3808+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3809+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-strlcat.lo `test -f 'strlcat.c' || echo '$(srcdir)/'`strlcat.c
3810+
3811+libnfs_la-strlcpy.lo: strlcpy.c
3812+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnfs_la-strlcpy.lo -MD -MP -MF $(DEPDIR)/libnfs_la-strlcpy.Tpo -c -o libnfs_la-strlcpy.lo `test -f 'strlcpy.c' || echo '$(srcdir)/'`strlcpy.c
3813+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-strlcpy.Tpo $(DEPDIR)/libnfs_la-strlcpy.Plo
3814+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strlcpy.c' object='libnfs_la-strlcpy.lo' libtool=yes @AMDEPBACKSLASH@
3815+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3816+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnfs_la-strlcpy.lo `test -f 'strlcpy.c' || echo '$(srcdir)/'`strlcpy.c
3817+
3818 mostlyclean-libtool:
3819 -rm -f *.lo
3820
3821@@ -645,25 +787,25 @@ clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
3822 clean-noinstLTLIBRARIES mostlyclean-am
3823
3824 distclean: distclean-am
3825- -rm -f ./$(DEPDIR)/atomicio.Plo
3826- -rm -f ./$(DEPDIR)/cacheio.Plo
3827- -rm -f ./$(DEPDIR)/closeall.Plo
3828- -rm -f ./$(DEPDIR)/conffile.Plo
3829- -rm -f ./$(DEPDIR)/exports.Plo
3830- -rm -f ./$(DEPDIR)/getport.Plo
3831- -rm -f ./$(DEPDIR)/mydaemon.Plo
3832- -rm -f ./$(DEPDIR)/nfs_mntent.Plo
3833- -rm -f ./$(DEPDIR)/rmtab.Plo
3834- -rm -f ./$(DEPDIR)/rpc_socket.Plo
3835- -rm -f ./$(DEPDIR)/rpcdispatch.Plo
3836- -rm -f ./$(DEPDIR)/rpcmisc.Plo
3837- -rm -f ./$(DEPDIR)/strlcat.Plo
3838- -rm -f ./$(DEPDIR)/strlcpy.Plo
3839- -rm -f ./$(DEPDIR)/svc_create.Plo
3840- -rm -f ./$(DEPDIR)/svc_socket.Plo
3841- -rm -f ./$(DEPDIR)/wildmat.Plo
3842- -rm -f ./$(DEPDIR)/xcommon.Plo
3843- -rm -f ./$(DEPDIR)/xio.Plo
3844+ -rm -f ./$(DEPDIR)/conffile.Plo
3845+ -rm -f ./$(DEPDIR)/libnfs_la-atomicio.Plo
3846+ -rm -f ./$(DEPDIR)/libnfs_la-cacheio.Plo
3847+ -rm -f ./$(DEPDIR)/libnfs_la-closeall.Plo
3848+ -rm -f ./$(DEPDIR)/libnfs_la-exports.Plo
3849+ -rm -f ./$(DEPDIR)/libnfs_la-getport.Plo
3850+ -rm -f ./$(DEPDIR)/libnfs_la-mydaemon.Plo
3851+ -rm -f ./$(DEPDIR)/libnfs_la-nfs_mntent.Plo
3852+ -rm -f ./$(DEPDIR)/libnfs_la-rmtab.Plo
3853+ -rm -f ./$(DEPDIR)/libnfs_la-rpc_socket.Plo
3854+ -rm -f ./$(DEPDIR)/libnfs_la-rpcdispatch.Plo
3855+ -rm -f ./$(DEPDIR)/libnfs_la-rpcmisc.Plo
3856+ -rm -f ./$(DEPDIR)/libnfs_la-strlcat.Plo
3857+ -rm -f ./$(DEPDIR)/libnfs_la-strlcpy.Plo
3858+ -rm -f ./$(DEPDIR)/libnfs_la-svc_create.Plo
3859+ -rm -f ./$(DEPDIR)/libnfs_la-svc_socket.Plo
3860+ -rm -f ./$(DEPDIR)/libnfs_la-wildmat.Plo
3861+ -rm -f ./$(DEPDIR)/libnfs_la-xcommon.Plo
3862+ -rm -f ./$(DEPDIR)/libnfs_la-xio.Plo
3863 -rm -f ./$(DEPDIR)/xlog.Plo
3864 -rm -f Makefile
3865 distclean-am: clean-am distclean-compile distclean-generic \
3866@@ -710,25 +852,25 @@ install-ps-am:
3867 installcheck-am:
3868
3869 maintainer-clean: maintainer-clean-am
3870- -rm -f ./$(DEPDIR)/atomicio.Plo
3871- -rm -f ./$(DEPDIR)/cacheio.Plo
3872- -rm -f ./$(DEPDIR)/closeall.Plo
3873- -rm -f ./$(DEPDIR)/conffile.Plo
3874- -rm -f ./$(DEPDIR)/exports.Plo
3875- -rm -f ./$(DEPDIR)/getport.Plo
3876- -rm -f ./$(DEPDIR)/mydaemon.Plo
3877- -rm -f ./$(DEPDIR)/nfs_mntent.Plo
3878- -rm -f ./$(DEPDIR)/rmtab.Plo
3879- -rm -f ./$(DEPDIR)/rpc_socket.Plo
3880- -rm -f ./$(DEPDIR)/rpcdispatch.Plo
3881- -rm -f ./$(DEPDIR)/rpcmisc.Plo
3882- -rm -f ./$(DEPDIR)/strlcat.Plo
3883- -rm -f ./$(DEPDIR)/strlcpy.Plo
3884- -rm -f ./$(DEPDIR)/svc_create.Plo
3885- -rm -f ./$(DEPDIR)/svc_socket.Plo
3886- -rm -f ./$(DEPDIR)/wildmat.Plo
3887- -rm -f ./$(DEPDIR)/xcommon.Plo
3888- -rm -f ./$(DEPDIR)/xio.Plo
3889+ -rm -f ./$(DEPDIR)/conffile.Plo
3890+ -rm -f ./$(DEPDIR)/libnfs_la-atomicio.Plo
3891+ -rm -f ./$(DEPDIR)/libnfs_la-cacheio.Plo
3892+ -rm -f ./$(DEPDIR)/libnfs_la-closeall.Plo
3893+ -rm -f ./$(DEPDIR)/libnfs_la-exports.Plo
3894+ -rm -f ./$(DEPDIR)/libnfs_la-getport.Plo
3895+ -rm -f ./$(DEPDIR)/libnfs_la-mydaemon.Plo
3896+ -rm -f ./$(DEPDIR)/libnfs_la-nfs_mntent.Plo
3897+ -rm -f ./$(DEPDIR)/libnfs_la-rmtab.Plo
3898+ -rm -f ./$(DEPDIR)/libnfs_la-rpc_socket.Plo
3899+ -rm -f ./$(DEPDIR)/libnfs_la-rpcdispatch.Plo
3900+ -rm -f ./$(DEPDIR)/libnfs_la-rpcmisc.Plo
3901+ -rm -f ./$(DEPDIR)/libnfs_la-strlcat.Plo
3902+ -rm -f ./$(DEPDIR)/libnfs_la-strlcpy.Plo
3903+ -rm -f ./$(DEPDIR)/libnfs_la-svc_create.Plo
3904+ -rm -f ./$(DEPDIR)/libnfs_la-svc_socket.Plo
3905+ -rm -f ./$(DEPDIR)/libnfs_la-wildmat.Plo
3906+ -rm -f ./$(DEPDIR)/libnfs_la-xcommon.Plo
3907+ -rm -f ./$(DEPDIR)/libnfs_la-xio.Plo
3908 -rm -f ./$(DEPDIR)/xlog.Plo
3909 -rm -f Makefile
3910 maintainer-clean-am: distclean-am maintainer-clean-generic
3911diff --git a/support/nfs/exports.c b/support/nfs/exports.c
3912index 2c8f075..15dc574 100644
3913--- a/support/nfs/exports.c
3914+++ b/support/nfs/exports.c
3915@@ -31,18 +31,19 @@
3916 #include "xlog.h"
3917 #include "xio.h"
3918 #include "pseudoflavors.h"
3919+#include "reexport.h"
3920
3921 #define EXPORT_DEFAULT_FLAGS \
3922 (NFSEXP_READONLY|NFSEXP_ROOTSQUASH|NFSEXP_GATHERED_WRITES|NFSEXP_NOSUBTREECHECK)
3923
3924 struct flav_info flav_map[] = {
3925- { "krb5", RPC_AUTH_GSS_KRB5 },
3926- { "krb5i", RPC_AUTH_GSS_KRB5I },
3927- { "krb5p", RPC_AUTH_GSS_KRB5P },
3928- { "unix", AUTH_UNIX },
3929- { "sys", AUTH_SYS },
3930- { "null", AUTH_NULL },
3931- { "none", AUTH_NONE },
3932+ { "krb5", RPC_AUTH_GSS_KRB5, 1},
3933+ { "krb5i", RPC_AUTH_GSS_KRB5I, 1},
3934+ { "krb5p", RPC_AUTH_GSS_KRB5P, 1},
3935+ { "unix", AUTH_UNIX, 0},
3936+ { "sys", AUTH_SYS, 0},
3937+ { "null", AUTH_NULL, 0},
3938+ { "none", AUTH_NONE, 0},
3939 };
3940
3941 const int flav_map_size = sizeof(flav_map)/sizeof(flav_map[0]);
3942@@ -99,10 +100,12 @@ static void init_exportent (struct exportent *ee, int fromkernel)
3943 ee->e_fslocmethod = FSLOC_NONE;
3944 ee->e_fslocdata = NULL;
3945 ee->e_secinfo[0].flav = NULL;
3946+ ee->e_xprtsec[0].info = NULL;
3947 ee->e_nsquids = 0;
3948 ee->e_nsqgids = 0;
3949 ee->e_uuid = NULL;
3950 ee->e_ttl = default_ttl;
3951+ ee->e_reexport = REEXP_NONE;
3952 }
3953
3954 struct exportent *
3955@@ -122,7 +125,7 @@ getexportent(int fromkernel, int fromexports)
3956 if (first || (ok = getexport(exp, sizeof(exp))) == 0) {
3957 has_default_opts = 0;
3958 has_default_subtree_opts = 0;
3959-
3960+
3961 init_exportent(&def_ee, fromkernel);
3962
3963 ok = getpath(def_ee.e_path, sizeof(def_ee.e_path));
3964@@ -146,7 +149,7 @@ getexportent(int fromkernel, int fromexports)
3965 if (exp[0] == '-' && !fromkernel) {
3966 if (parseopts(exp + 1, &def_ee, 0, &has_default_subtree_opts) < 0)
3967 return NULL;
3968-
3969+
3970 has_default_opts = 1;
3971
3972 ok = getexport(exp, sizeof(exp));
3973@@ -239,7 +242,6 @@ void secinfo_show(FILE *fp, struct exportent *ep)
3974 if (ep->e_secinfo[0].flav == NULL)
3975 secinfo_addflavor(find_flavor("sys"), ep);
3976 for (p1=ep->e_secinfo; p1->flav; p1=p2) {
3977-
3978 fprintf(fp, ",sec=%s", p1->flav->flavour);
3979 for (p2=p1+1; (p2->flav != NULL) && (p1->flags == p2->flags);
3980 p2++) {
3981@@ -249,6 +251,17 @@ void secinfo_show(FILE *fp, struct exportent *ep)
3982 }
3983 }
3984
3985+void xprtsecinfo_show(FILE *fp, struct exportent *ep)
3986+{
3987+ struct xprtsec_entry *p1, *p2;
3988+
3989+ for (p1 = ep->e_xprtsec; p1->info; p1 = p2) {
3990+ fprintf(fp, ",xprtsec=%s", p1->info->name);
3991+ for (p2 = p1 + 1; p2->info && (p1->flags == p2->flags); p2++)
3992+ fprintf(fp, ":%s", p2->info->name);
3993+ }
3994+}
3995+
3996 static void
3997 fprintpath(FILE *fp, const char *path)
3998 {
3999@@ -302,6 +315,23 @@ putexportent(struct exportent *ep)
4000 }
4001 if (ep->e_uuid)
4002 fprintf(fp, "fsid=%s,", ep->e_uuid);
4003+
4004+ if (ep->e_reexport) {
4005+ fprintf(fp, "reexport=");
4006+ switch (ep->e_reexport) {
4007+ case REEXP_AUTO_FSIDNUM:
4008+ fprintf(fp, "auto-fsidnum");
4009+ break;
4010+ case REEXP_PREDEFINED_FSIDNUM:
4011+ fprintf(fp, "predefined-fsidnum");
4012+ break;
4013+ default:
4014+ xlog(L_ERROR, "unknown reexport method %i", ep->e_reexport);
4015+ fprintf(fp, "none");
4016+ }
4017+ fprintf(fp, ",");
4018+ }
4019+
4020 if (ep->e_mountpoint)
4021 fprintf(fp, "mountpoint%s%s,",
4022 ep->e_mountpoint[0]?"=":"", ep->e_mountpoint);
4023@@ -345,6 +375,7 @@ putexportent(struct exportent *ep)
4024 }
4025 fprintf(fp, "anonuid=%d,anongid=%d", ep->e_anonuid, ep->e_anongid);
4026 secinfo_show(fp, ep);
4027+ xprtsecinfo_show(fp, ep);
4028 fprintf(fp, ")\n");
4029 }
4030
4031@@ -483,6 +514,75 @@ static unsigned int parse_flavors(char *str, struct exportent *ep)
4032 return out;
4033 }
4034
4035+static const struct xprtsec_info xprtsec_name2info[] = {
4036+ { "none", NFSEXP_XPRTSEC_NONE },
4037+ { "tls", NFSEXP_XPRTSEC_TLS },
4038+ { "mtls", NFSEXP_XPRTSEC_MTLS },
4039+ { NULL, 0 }
4040+};
4041+
4042+static const struct xprtsec_info *find_xprtsec_info(const char *name)
4043+{
4044+ const struct xprtsec_info *info;
4045+
4046+ for (info = xprtsec_name2info; info->name; info++)
4047+ if (strcmp(info->name, name) == 0)
4048+ return info;
4049+ return NULL;
4050+}
4051+
4052+/*
4053+ * Append the given xprtsec mode to the exportent's e_xprtsec array,
4054+ * or do nothing if it's already there. Returns the index of flavor in
4055+ * the resulting array in any case.
4056+ */
4057+static int xprtsec_addmode(const struct xprtsec_info *info, struct exportent *ep)
4058+{
4059+ struct xprtsec_entry *p;
4060+
4061+ for (p = ep->e_xprtsec; p->info; p++)
4062+ if (p->info == info || p->info->number == info->number)
4063+ return p - ep->e_xprtsec;
4064+
4065+ if (p - ep->e_xprtsec >= XPRTSECMODE_COUNT) {
4066+ xlog(L_ERROR, "more than %d xprtsec modes on an export\n",
4067+ XPRTSECMODE_COUNT);
4068+ return -1;
4069+ }
4070+ p->info = info;
4071+ p->flags = ep->e_flags;
4072+ (p + 1)->info = NULL;
4073+ return p - ep->e_xprtsec;
4074+}
4075+
4076+/*
4077+ * @str is a colon seperated list of transport layer security modes.
4078+ * Their order is recorded in @ep, and a bitmap corresponding to the
4079+ * list is returned.
4080+ *
4081+ * A zero return indicates an error.
4082+ */
4083+static unsigned int parse_xprtsec(char *str, struct exportent *ep)
4084+{
4085+ unsigned int out = 0;
4086+ char *name;
4087+
4088+ while ((name = strsep(&str, ":"))) {
4089+ const struct xprtsec_info *info = find_xprtsec_info(name);
4090+ int bit;
4091+
4092+ if (!info) {
4093+ xlog(L_ERROR, "unknown xprtsec mode %s\n", name);
4094+ return 0;
4095+ }
4096+ bit = xprtsec_addmode(info, ep);
4097+ if (bit < 0)
4098+ return 0;
4099+ out |= 1 << bit;
4100+ }
4101+ return out;
4102+}
4103+
4104 /* Sets the bits in @mask for the appropriate security flavor flags. */
4105 static void setflags(int mask, unsigned int active, struct exportent *ep)
4106 {
4107@@ -538,6 +638,7 @@ parseopts(char *cp, struct exportent *ep, int warn, int *had_subtree_opt_ptr)
4108 char *flname = efname?efname:"command line";
4109 int flline = efp?efp->x_line:0;
4110 unsigned int active = 0;
4111+ int saw_reexport = 0;
4112
4113 squids = ep->e_squids; nsquids = ep->e_nsquids;
4114 sqgids = ep->e_sqgids; nsqgids = ep->e_nsqgids;
4115@@ -621,7 +722,7 @@ parseopts(char *cp, struct exportent *ep, int warn, int *had_subtree_opt_ptr)
4116 ep->e_anonuid = strtol(opt+8, &oe, 10);
4117 if (opt[8]=='\0' || *oe != '\0') {
4118 xlog(L_ERROR, "%s: %d: bad anonuid \"%s\"\n",
4119- flname, flline, opt);
4120+ flname, flline, opt);
4121 bad_option:
4122 free(opt);
4123 return -1;
4124@@ -631,7 +732,7 @@ bad_option:
4125 ep->e_anongid = strtol(opt+8, &oe, 10);
4126 if (opt[8]=='\0' || *oe != '\0') {
4127 xlog(L_ERROR, "%s: %d: bad anongid \"%s\"\n",
4128- flname, flline, opt);
4129+ flname, flline, opt);
4130 goto bad_option;
4131 }
4132 } else if (strncmp(opt, "squash_uids=", 12) == 0) {
4133@@ -644,18 +745,25 @@ bad_option:
4134 }
4135 } else if (strncmp(opt, "fsid=", 5) == 0) {
4136 char *oe;
4137+
4138+ if (saw_reexport) {
4139+ xlog(L_ERROR, "%s:%d: 'fsid=' has to be before 'reexport=' %s\n",
4140+ flname, flline, opt);
4141+ goto bad_option;
4142+ }
4143+
4144 if (strcmp(opt+5, "root") == 0) {
4145 ep->e_fsid = 0;
4146 setflags(NFSEXP_FSID, active, ep);
4147 } else {
4148 ep->e_fsid = strtoul(opt+5, &oe, 0);
4149- if (opt[5]!='\0' && *oe == '\0')
4150+ if (opt[5]!='\0' && *oe == '\0')
4151 setflags(NFSEXP_FSID, active, ep);
4152 else if (valid_uuid(opt+5))
4153 ep->e_uuid = strdup(opt+5);
4154 else {
4155 xlog(L_ERROR, "%s: %d: bad fsid \"%s\"\n",
4156- flname, flline, opt);
4157+ flname, flline, opt);
4158 goto bad_option;
4159 }
4160 }
4161@@ -688,6 +796,44 @@ bad_option:
4162 active = parse_flavors(opt+4, ep);
4163 if (!active)
4164 goto bad_option;
4165+ } else if (strncmp(opt, "xprtsec=", 8) == 0) {
4166+ if (!parse_xprtsec(opt + 8, ep))
4167+ goto bad_option;
4168+ } else if (strncmp(opt, "reexport=", 9) == 0) {
4169+ char *strategy = strchr(opt, '=');
4170+
4171+ if (!strategy) {
4172+ xlog(L_ERROR, "%s:%d: bad option %s\n",
4173+ flname, flline, opt);
4174+ goto bad_option;
4175+ }
4176+ strategy++;
4177+
4178+ if (saw_reexport) {
4179+ xlog(L_ERROR, "%s:%d: only one 'reexport=' is allowed%s\n",
4180+ flname, flline, opt);
4181+ goto bad_option;
4182+ }
4183+
4184+ if (strcmp(strategy, "auto-fsidnum") == 0) {
4185+ ep->e_reexport = REEXP_AUTO_FSIDNUM;
4186+ } else if (strcmp(strategy, "predefined-fsidnum") == 0) {
4187+ ep->e_reexport = REEXP_PREDEFINED_FSIDNUM;
4188+ } else if (strcmp(strategy, "none") == 0) {
4189+ ep->e_reexport = REEXP_NONE;
4190+ } else {
4191+ xlog(L_ERROR, "%s:%d: bad option %s\n",
4192+ flname, flline, strategy);
4193+ goto bad_option;
4194+ }
4195+
4196+ if (reexpdb_apply_reexport_settings(ep, flname, flline) != 0)
4197+ goto bad_option;
4198+
4199+ if (ep->e_fsid)
4200+ setflags(NFSEXP_FSID, active, ep);
4201+
4202+ saw_reexport = 1;
4203 } else {
4204 xlog(L_ERROR, "%s:%d: unknown keyword \"%s\"\n",
4205 flname, flline, opt);
4206@@ -709,7 +855,7 @@ out:
4207 if (warn && !had_subtree_opt)
4208 xlog(L_WARNING, "%s [%d]: Neither 'subtree_check' or 'no_subtree_check' specified for export \"%s:%s\".\n"
4209 " Assuming default behaviour ('no_subtree_check').\n"
4210- " NOTE: this default has changed since nfs-utils version 1.0.x\n",
4211+ " NOTE: this default has changed since nfs-utils version 1.0.x\n",
4212
4213 flname, flline,
4214 ep->e_hostname, ep->e_path);
4215diff --git a/support/nfs/xlog.c b/support/nfs/xlog.c
4216index e5861b9..fa125ce 100644
4217--- a/support/nfs/xlog.c
4218+++ b/support/nfs/xlog.c
4219@@ -46,11 +46,13 @@ int export_errno = 0;
4220
4221 static void xlog_toggle(int sig);
4222 static struct xlog_debugfac debugnames[] = {
4223+ { "0", 0, },
4224 { "general", D_GENERAL, },
4225 { "call", D_CALL, },
4226 { "auth", D_AUTH, },
4227 { "parse", D_PARSE, },
4228 { "all", D_ALL, },
4229+ { "1", D_ALL, },
4230 { NULL, 0, },
4231 };
4232
4233@@ -119,13 +121,14 @@ xlog_sconfig(char *kind, int on)
4234 {
4235 struct xlog_debugfac *tbl = debugnames;
4236
4237- while (tbl->df_name != NULL && strcasecmp(tbl->df_name, kind))
4238+ while (tbl->df_name != NULL && strcasecmp(tbl->df_name, kind))
4239 tbl++;
4240 if (!tbl->df_name) {
4241 xlog (L_WARNING, "Invalid debug facility: %s\n", kind);
4242 return;
4243 }
4244- xlog_config(tbl->df_fac, on);
4245+ if (tbl->df_fac)
4246+ xlog_config(tbl->df_fac, on);
4247 }
4248
4249 void
4250diff --git a/support/nfsidmap/Makefile.in b/support/nfsidmap/Makefile.in
4251index 34346bd..196f05e 100644
4252--- a/support/nfsidmap/Makefile.in
4253+++ b/support/nfsidmap/Makefile.in
4254@@ -339,6 +339,8 @@ LIBCRYPT = @LIBCRYPT@
4255 LIBEVENT = @LIBEVENT@
4256 LIBKEYUTILS = @LIBKEYUTILS@
4257 LIBMOUNT = @LIBMOUNT@
4258+LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
4259+LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
4260 LIBNSL = @LIBNSL@
4261 LIBOBJS = @LIBOBJS@
4262 LIBPTHREAD = @LIBPTHREAD@
4263@@ -440,7 +442,6 @@ localedir = @localedir@
4264 localstatedir = @localstatedir@
4265 mandir = @mandir@
4266 mkdir_p = @mkdir_p@
4267-modprobedir = @modprobedir@
4268 mountfile = @mountfile@
4269 nfsconfig = @nfsconfig@
4270 oldincludedir = @oldincludedir@
4271diff --git a/support/nfsidmap/regex.c b/support/nfsidmap/regex.c
4272index 958b4ac..8424179 100644
4273--- a/support/nfsidmap/regex.c
4274+++ b/support/nfsidmap/regex.c
4275@@ -542,7 +542,7 @@ struct trans_func regex_trans = {
4276 .gss_princ_to_grouplist = regex_gss_princ_to_grouplist,
4277 };
4278
4279-struct trans_func *libnfsidmap_plugin_init()
4280+struct trans_func *libnfsidmap_plugin_init(void)
4281 {
4282 return (&regex_trans);
4283 }
4284diff --git a/support/nsm/Makefile.in b/support/nsm/Makefile.in
4285index ef09b50..0bab45e 100644
4286--- a/support/nsm/Makefile.in
4287+++ b/support/nsm/Makefile.in
4288@@ -268,6 +268,8 @@ LIBCRYPT = @LIBCRYPT@
4289 LIBEVENT = @LIBEVENT@
4290 LIBKEYUTILS = @LIBKEYUTILS@
4291 LIBMOUNT = @LIBMOUNT@
4292+LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
4293+LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
4294 LIBNSL = @LIBNSL@
4295 LIBOBJS = @LIBOBJS@
4296 LIBPTHREAD = @LIBPTHREAD@
4297@@ -369,7 +371,6 @@ localedir = @localedir@
4298 localstatedir = @localstatedir@
4299 mandir = @mandir@
4300 mkdir_p = @mkdir_p@
4301-modprobedir = @modprobedir@
4302 mountfile = @mountfile@
4303 nfsconfig = @nfsconfig@
4304 oldincludedir = @oldincludedir@
4305diff --git a/support/reexport/Makefile.am b/support/reexport/Makefile.am
4306new file mode 100644
4307index 0000000..fbd66a2
4308--- /dev/null
4309+++ b/support/reexport/Makefile.am
4310@@ -0,0 +1,18 @@
4311+## Process this file with automake to produce Makefile.in
4312+
4313+noinst_LIBRARIES = libreexport.a
4314+libreexport_a_SOURCES = reexport.c
4315+
4316+sbin_PROGRAMS = fsidd
4317+
4318+fsidd_SOURCES = fsidd.c backend_sqlite.c
4319+
4320+fsidd_LDADD = ../../support/misc/libmisc.a \
4321+ ../../support/nfs/libnfs.la \
4322+ $(LIBPTHREAD) $(LIBEVENT) $(LIBSQLITE) \
4323+ $(OPTLIBS)
4324+
4325+fsidd_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS) \
4326+ -I$(top_builddir)/support/include
4327+
4328+MAINTAINERCLEANFILES = Makefile.in
4329diff --git a/support/reexport/Makefile.in b/support/reexport/Makefile.in
4330new file mode 100644
4331index 0000000..4b70d8d
4332--- /dev/null
4333+++ b/support/reexport/Makefile.in
4334@@ -0,0 +1,797 @@
4335+# Makefile.in generated by automake 1.16.5 from Makefile.am.
4336+# @configure_input@
4337+
4338+# Copyright (C) 1994-2021 Free Software Foundation, Inc.
4339+
4340+# This Makefile.in is free software; the Free Software Foundation
4341+# gives unlimited permission to copy and/or distribute it,
4342+# with or without modifications, as long as this notice is preserved.
4343+
4344+# This program is distributed in the hope that it will be useful,
4345+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
4346+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
4347+# PARTICULAR PURPOSE.
4348+
4349+@SET_MAKE@
4350+
4351+
4352+VPATH = @srcdir@
4353+am__is_gnu_make = { \
4354+ if test -z '$(MAKELEVEL)'; then \
4355+ false; \
4356+ elif test -n '$(MAKE_HOST)'; then \
4357+ true; \
4358+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
4359+ true; \
4360+ else \
4361+ false; \
4362+ fi; \
4363+}
4364+am__make_running_with_option = \
4365+ case $${target_option-} in \
4366+ ?) ;; \
4367+ *) echo "am__make_running_with_option: internal error: invalid" \
4368+ "target option '$${target_option-}' specified" >&2; \
4369+ exit 1;; \
4370+ esac; \
4371+ has_opt=no; \
4372+ sane_makeflags=$$MAKEFLAGS; \
4373+ if $(am__is_gnu_make); then \
4374+ sane_makeflags=$$MFLAGS; \
4375+ else \
4376+ case $$MAKEFLAGS in \
4377+ *\\[\ \ ]*) \
4378+ bs=\\; \
4379+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
4380+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
4381+ esac; \
4382+ fi; \
4383+ skip_next=no; \
4384+ strip_trailopt () \
4385+ { \
4386+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
4387+ }; \
4388+ for flg in $$sane_makeflags; do \
4389+ test $$skip_next = yes && { skip_next=no; continue; }; \
4390+ case $$flg in \
4391+ *=*|--*) continue;; \
4392+ -*I) strip_trailopt 'I'; skip_next=yes;; \
4393+ -*I?*) strip_trailopt 'I';; \
4394+ -*O) strip_trailopt 'O'; skip_next=yes;; \
4395+ -*O?*) strip_trailopt 'O';; \
4396+ -*l) strip_trailopt 'l'; skip_next=yes;; \
4397+ -*l?*) strip_trailopt 'l';; \
4398+ -[dEDm]) skip_next=yes;; \
4399+ -[JT]) skip_next=yes;; \
4400+ esac; \
4401+ case $$flg in \
4402+ *$$target_option*) has_opt=yes; break;; \
4403+ esac; \
4404+ done; \
4405+ test $$has_opt = yes
4406+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
4407+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
4408+pkgdatadir = $(datadir)/@PACKAGE@
4409+pkgincludedir = $(includedir)/@PACKAGE@
4410+pkglibdir = $(libdir)/@PACKAGE@
4411+pkglibexecdir = $(libexecdir)/@PACKAGE@
4412+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
4413+install_sh_DATA = $(install_sh) -c -m 644
4414+install_sh_PROGRAM = $(install_sh) -c
4415+install_sh_SCRIPT = $(install_sh) -c
4416+INSTALL_HEADER = $(INSTALL_DATA)
4417+transform = $(program_transform_name)
4418+NORMAL_INSTALL = :
4419+PRE_INSTALL = :
4420+POST_INSTALL = :
4421+NORMAL_UNINSTALL = :
4422+PRE_UNINSTALL = :
4423+POST_UNINSTALL = :
4424+build_triplet = @build@
4425+host_triplet = @host@
4426+sbin_PROGRAMS = fsidd$(EXEEXT)
4427+subdir = support/reexport
4428+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4429+am__aclocal_m4_deps = $(top_srcdir)/aclocal/ax_gcc_func_attribute.m4 \
4430+ $(top_srcdir)/aclocal/bsdsignals.m4 \
4431+ $(top_srcdir)/aclocal/ipv6.m4 \
4432+ $(top_srcdir)/aclocal/kerberos5.m4 \
4433+ $(top_srcdir)/aclocal/keyutils.m4 \
4434+ $(top_srcdir)/aclocal/libblkid.m4 \
4435+ $(top_srcdir)/aclocal/libcap.m4 \
4436+ $(top_srcdir)/aclocal/libevent.m4 \
4437+ $(top_srcdir)/aclocal/libpthread.m4 \
4438+ $(top_srcdir)/aclocal/libsqlite3.m4 \
4439+ $(top_srcdir)/aclocal/libtirpc.m4 \
4440+ $(top_srcdir)/aclocal/libxml2.m4 \
4441+ $(top_srcdir)/aclocal/nfs-utils.m4 \
4442+ $(top_srcdir)/aclocal/rpcsec_vers.m4 \
4443+ $(top_srcdir)/aclocal/tcp-wrappers.m4 \
4444+ $(top_srcdir)/configure.ac
4445+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
4446+ $(ACLOCAL_M4)
4447+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
4448+mkinstalldirs = $(install_sh) -d
4449+CONFIG_HEADER = $(top_builddir)/support/include/config.h
4450+CONFIG_CLEAN_FILES =
4451+CONFIG_CLEAN_VPATH_FILES =
4452+am__installdirs = "$(DESTDIR)$(sbindir)"
4453+PROGRAMS = $(sbin_PROGRAMS)
4454+LIBRARIES = $(noinst_LIBRARIES)
4455+ARFLAGS = cru
4456+AM_V_AR = $(am__v_AR_@AM_V@)
4457+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
4458+am__v_AR_0 = @echo " AR " $@;
4459+am__v_AR_1 =
4460+libreexport_a_AR = $(AR) $(ARFLAGS)
4461+libreexport_a_LIBADD =
4462+am_libreexport_a_OBJECTS = reexport.$(OBJEXT)
4463+libreexport_a_OBJECTS = $(am_libreexport_a_OBJECTS)
4464+am_fsidd_OBJECTS = fsidd-fsidd.$(OBJEXT) \
4465+ fsidd-backend_sqlite.$(OBJEXT)
4466+fsidd_OBJECTS = $(am_fsidd_OBJECTS)
4467+am__DEPENDENCIES_1 =
4468+fsidd_DEPENDENCIES = ../../support/misc/libmisc.a \
4469+ ../../support/nfs/libnfs.la $(am__DEPENDENCIES_1) \
4470+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
4471+AM_V_lt = $(am__v_lt_@AM_V@)
4472+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
4473+am__v_lt_0 = --silent
4474+am__v_lt_1 =
4475+AM_V_P = $(am__v_P_@AM_V@)
4476+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
4477+am__v_P_0 = false
4478+am__v_P_1 = :
4479+AM_V_GEN = $(am__v_GEN_@AM_V@)
4480+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
4481+am__v_GEN_0 = @echo " GEN " $@;
4482+am__v_GEN_1 =
4483+AM_V_at = $(am__v_at_@AM_V@)
4484+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
4485+am__v_at_0 = @
4486+am__v_at_1 =
4487+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/support/include
4488+depcomp = $(SHELL) $(top_srcdir)/depcomp
4489+am__maybe_remake_depfiles = depfiles
4490+am__depfiles_remade = ./$(DEPDIR)/fsidd-backend_sqlite.Po \
4491+ ./$(DEPDIR)/fsidd-fsidd.Po ./$(DEPDIR)/reexport.Po
4492+am__mv = mv -f
4493+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
4494+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
4495+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
4496+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
4497+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
4498+ $(AM_CFLAGS) $(CFLAGS)
4499+AM_V_CC = $(am__v_CC_@AM_V@)
4500+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
4501+am__v_CC_0 = @echo " CC " $@;
4502+am__v_CC_1 =
4503+CCLD = $(CC)
4504+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
4505+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
4506+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
4507+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
4508+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
4509+am__v_CCLD_0 = @echo " CCLD " $@;
4510+am__v_CCLD_1 =
4511+SOURCES = $(libreexport_a_SOURCES) $(fsidd_SOURCES)
4512+DIST_SOURCES = $(libreexport_a_SOURCES) $(fsidd_SOURCES)
4513+am__can_run_installinfo = \
4514+ case $$AM_UPDATE_INFO_DIR in \
4515+ n|no|NO) false;; \
4516+ *) (install-info --version) >/dev/null 2>&1;; \
4517+ esac
4518+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
4519+# Read a list of newline-separated strings from the standard input,
4520+# and print each of them once, without duplicates. Input order is
4521+# *not* preserved.
4522+am__uniquify_input = $(AWK) '\
4523+ BEGIN { nonempty = 0; } \
4524+ { items[$$0] = 1; nonempty = 1; } \
4525+ END { if (nonempty) { for (i in items) print i; }; } \
4526+'
4527+# Make sure the list of sources is unique. This is necessary because,
4528+# e.g., the same source file might be shared among _SOURCES variables
4529+# for different programs/libraries.
4530+am__define_uniq_tagged_files = \
4531+ list='$(am__tagged_files)'; \
4532+ unique=`for i in $$list; do \
4533+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
4534+ done | $(am__uniquify_input)`
4535+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
4536+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
4537+ACLOCAL = @ACLOCAL@
4538+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
4539+ALLOCA = @ALLOCA@
4540+AMTAR = @AMTAR@
4541+AM_CFLAGS = @AM_CFLAGS@
4542+AM_CPPFLAGS = @AM_CPPFLAGS@
4543+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
4544+AR = @AR@
4545+AUTOCONF = @AUTOCONF@
4546+AUTOHEADER = @AUTOHEADER@
4547+AUTOMAKE = @AUTOMAKE@
4548+AWK = @AWK@
4549+CC = @CC@
4550+CCDEPMODE = @CCDEPMODE@
4551+CC_FOR_BUILD = @CC_FOR_BUILD@
4552+CFLAGS = @CFLAGS@
4553+CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
4554+CPP = @CPP@
4555+CPPFLAGS = @CPPFLAGS@
4556+CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
4557+CSCOPE = @CSCOPE@
4558+CTAGS = @CTAGS@
4559+CXX = @CXX@
4560+CXXCPP = @CXXCPP@
4561+CXXDEPMODE = @CXXDEPMODE@
4562+CXXFLAGS = @CXXFLAGS@
4563+CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@
4564+CYGPATH_W = @CYGPATH_W@
4565+DEFS = @DEFS@
4566+DEPDIR = @DEPDIR@
4567+DLLTOOL = @DLLTOOL@
4568+DSYMUTIL = @DSYMUTIL@
4569+DUMPBIN = @DUMPBIN@
4570+ECHO_C = @ECHO_C@
4571+ECHO_N = @ECHO_N@
4572+ECHO_T = @ECHO_T@
4573+EGREP = @EGREP@
4574+ETAGS = @ETAGS@
4575+EXEEXT = @EXEEXT@
4576+FGREP = @FGREP@
4577+FILECMD = @FILECMD@
4578+GREP = @GREP@
4579+GSSAPI_CFLAGS = @GSSAPI_CFLAGS@
4580+GSSAPI_LIBS = @GSSAPI_LIBS@
4581+GSSD = @GSSD@
4582+GSSGLUE_CFLAGS = @GSSGLUE_CFLAGS@
4583+GSSGLUE_LIBS = @GSSGLUE_LIBS@
4584+GSSKRB_CFLAGS = @GSSKRB_CFLAGS@
4585+GSSKRB_LIBS = @GSSKRB_LIBS@
4586+HAVE_LIBWRAP = @HAVE_LIBWRAP@
4587+HAVE_TCP_WRAPPER = @HAVE_TCP_WRAPPER@
4588+IDMAPD = @IDMAPD@
4589+INSTALL = @INSTALL@
4590+INSTALL_DATA = @INSTALL_DATA@
4591+INSTALL_PROGRAM = @INSTALL_PROGRAM@
4592+INSTALL_SCRIPT = @INSTALL_SCRIPT@
4593+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
4594+K5VERS = @K5VERS@
4595+KRBCFLAGS = @KRBCFLAGS@
4596+KRBDIR = @KRBDIR@
4597+KRBLDFLAGS = @KRBLDFLAGS@
4598+KRBLIBS = @KRBLIBS@
4599+LD = @LD@
4600+LDFLAGS = @LDFLAGS@
4601+LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
4602+LIBBLKID = @LIBBLKID@
4603+LIBBSD = @LIBBSD@
4604+LIBCAP = @LIBCAP@
4605+LIBCRYPT = @LIBCRYPT@
4606+LIBEVENT = @LIBEVENT@
4607+LIBKEYUTILS = @LIBKEYUTILS@
4608+LIBMOUNT = @LIBMOUNT@
4609+LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
4610+LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
4611+LIBNSL = @LIBNSL@
4612+LIBOBJS = @LIBOBJS@
4613+LIBPTHREAD = @LIBPTHREAD@
4614+LIBS = @LIBS@
4615+LIBSOCKET = @LIBSOCKET@
4616+LIBSQLITE = @LIBSQLITE@
4617+LIBTIRPC = @LIBTIRPC@
4618+LIBTOOL = @LIBTOOL@
4619+LIBWRAP = @LIBWRAP@
4620+LIBXML2 = @LIBXML2@
4621+LIPO = @LIPO@
4622+LN_S = @LN_S@
4623+LTLIBOBJS = @LTLIBOBJS@
4624+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
4625+MAINT = @MAINT@
4626+MAKEINFO = @MAKEINFO@
4627+MANIFEST_TOOL = @MANIFEST_TOOL@
4628+MKDIR_P = @MKDIR_P@
4629+NM = @NM@
4630+NMEDIT = @NMEDIT@
4631+OBJDUMP = @OBJDUMP@
4632+OBJEXT = @OBJEXT@
4633+OTOOL = @OTOOL@
4634+OTOOL64 = @OTOOL64@
4635+PACKAGE = @PACKAGE@
4636+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
4637+PACKAGE_NAME = @PACKAGE_NAME@
4638+PACKAGE_STRING = @PACKAGE_STRING@
4639+PACKAGE_TARNAME = @PACKAGE_TARNAME@
4640+PACKAGE_URL = @PACKAGE_URL@
4641+PACKAGE_VERSION = @PACKAGE_VERSION@
4642+PATH_PLUGINS = @PATH_PLUGINS@
4643+PATH_SEPARATOR = @PATH_SEPARATOR@
4644+PKG_CONFIG = @PKG_CONFIG@
4645+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
4646+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
4647+RANLIB = @RANLIB@
4648+RELEASE = @RELEASE@
4649+RPCGEN_PATH = @RPCGEN_PATH@
4650+RPCSECGSS_CFLAGS = @RPCSECGSS_CFLAGS@
4651+RPCSECGSS_LIBS = @RPCSECGSS_LIBS@
4652+SED = @SED@
4653+SET_MAKE = @SET_MAKE@
4654+SHELL = @SHELL@
4655+STRIP = @STRIP@
4656+SVCGSSD = @SVCGSSD@
4657+TIRPC_CFLAGS = @TIRPC_CFLAGS@
4658+TIRPC_LIBS = @TIRPC_LIBS@
4659+VERSION = @VERSION@
4660+XML2_CFLAGS = @XML2_CFLAGS@
4661+XML2_LIBS = @XML2_LIBS@
4662+_rpc_pipefsmount = @_rpc_pipefsmount@
4663+_statedir = @_statedir@
4664+_sysconfdir = @_sysconfdir@
4665+abs_builddir = @abs_builddir@
4666+abs_srcdir = @abs_srcdir@
4667+abs_top_builddir = @abs_top_builddir@
4668+abs_top_srcdir = @abs_top_srcdir@
4669+ac_ct_AR = @ac_ct_AR@
4670+ac_ct_CC = @ac_ct_CC@
4671+ac_ct_CXX = @ac_ct_CXX@
4672+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
4673+am__include = @am__include@
4674+am__leading_dot = @am__leading_dot@
4675+am__quote = @am__quote@
4676+am__tar = @am__tar@
4677+am__untar = @am__untar@
4678+bindir = @bindir@
4679+build = @build@
4680+build_alias = @build_alias@
4681+build_cpu = @build_cpu@
4682+build_os = @build_os@
4683+build_vendor = @build_vendor@
4684+builddir = @builddir@
4685+datadir = @datadir@
4686+datarootdir = @datarootdir@
4687+docdir = @docdir@
4688+dvidir = @dvidir@
4689+enable_gss = @enable_gss@
4690+enable_ipv6 = @enable_ipv6@
4691+enable_mountconfig = @enable_mountconfig@
4692+enable_nfsv4 = @enable_nfsv4@
4693+enable_nfsv41 = @enable_nfsv41@
4694+enable_svcgss = @enable_svcgss@
4695+exec_prefix = @exec_prefix@
4696+host = @host@
4697+host_alias = @host_alias@
4698+host_cpu = @host_cpu@
4699+host_os = @host_os@
4700+host_vendor = @host_vendor@
4701+htmldir = @htmldir@
4702+includedir = @includedir@
4703+infodir = @infodir@
4704+install_sh = @install_sh@
4705+kprefix = @kprefix@
4706+libdir = @libdir@
4707+libexecdir = @libexecdir@
4708+localedir = @localedir@
4709+localstatedir = @localstatedir@
4710+mandir = @mandir@
4711+mkdir_p = @mkdir_p@
4712+mountfile = @mountfile@
4713+nfsconfig = @nfsconfig@
4714+oldincludedir = @oldincludedir@
4715+pdfdir = @pdfdir@
4716+prefix = @prefix@
4717+program_transform_name = @program_transform_name@
4718+psdir = @psdir@
4719+rpc_pipefsmount = @rpc_pipefsmount@
4720+runstatedir = @runstatedir@
4721+sbindir = @sbindir@
4722+sharedstatedir = @sharedstatedir@
4723+srcdir = @srcdir@
4724+startstatd = @startstatd@
4725+statdpath = @statdpath@
4726+statduser = @statduser@
4727+statedir = @statedir@
4728+sysconfdir = @sysconfdir@
4729+target_alias = @target_alias@
4730+top_build_prefix = @top_build_prefix@
4731+top_builddir = @top_builddir@
4732+top_srcdir = @top_srcdir@
4733+unitdir = @unitdir@
4734+noinst_LIBRARIES = libreexport.a
4735+libreexport_a_SOURCES = reexport.c
4736+fsidd_SOURCES = fsidd.c backend_sqlite.c
4737+fsidd_LDADD = ../../support/misc/libmisc.a \
4738+ ../../support/nfs/libnfs.la \
4739+ $(LIBPTHREAD) $(LIBEVENT) $(LIBSQLITE) \
4740+ $(OPTLIBS)
4741+
4742+fsidd_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS) \
4743+ -I$(top_builddir)/support/include
4744+
4745+MAINTAINERCLEANFILES = Makefile.in
4746+all: all-am
4747+
4748+.SUFFIXES:
4749+.SUFFIXES: .c .lo .o .obj
4750+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
4751+ @for dep in $?; do \
4752+ case '$(am__configure_deps)' in \
4753+ *$$dep*) \
4754+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
4755+ && { if test -f $@; then exit 0; else break; fi; }; \
4756+ exit 1;; \
4757+ esac; \
4758+ done; \
4759+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu support/reexport/Makefile'; \
4760+ $(am__cd) $(top_srcdir) && \
4761+ $(AUTOMAKE) --gnu support/reexport/Makefile
4762+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
4763+ @case '$?' in \
4764+ *config.status*) \
4765+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
4766+ *) \
4767+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
4768+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
4769+ esac;
4770+
4771+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
4772+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
4773+
4774+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
4775+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
4776+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
4777+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
4778+$(am__aclocal_m4_deps):
4779+install-sbinPROGRAMS: $(sbin_PROGRAMS)
4780+ @$(NORMAL_INSTALL)
4781+ @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
4782+ if test -n "$$list"; then \
4783+ echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \
4784+ $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \
4785+ fi; \
4786+ for p in $$list; do echo "$$p $$p"; done | \
4787+ sed 's/$(EXEEXT)$$//' | \
4788+ while read p p1; do if test -f $$p \
4789+ || test -f $$p1 \
4790+ ; then echo "$$p"; echo "$$p"; else :; fi; \
4791+ done | \
4792+ sed -e 'p;s,.*/,,;n;h' \
4793+ -e 's|.*|.|' \
4794+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
4795+ sed 'N;N;N;s,\n, ,g' | \
4796+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
4797+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
4798+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
4799+ else { print "f", $$3 "/" $$4, $$1; } } \
4800+ END { for (d in files) print "f", d, files[d] }' | \
4801+ while read type dir files; do \
4802+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
4803+ test -z "$$files" || { \
4804+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \
4805+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \
4806+ } \
4807+ ; done
4808+
4809+uninstall-sbinPROGRAMS:
4810+ @$(NORMAL_UNINSTALL)
4811+ @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
4812+ files=`for p in $$list; do echo "$$p"; done | \
4813+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
4814+ -e 's/$$/$(EXEEXT)/' \
4815+ `; \
4816+ test -n "$$list" || exit 0; \
4817+ echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
4818+ cd "$(DESTDIR)$(sbindir)" && rm -f $$files
4819+
4820+clean-sbinPROGRAMS:
4821+ @list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \
4822+ echo " rm -f" $$list; \
4823+ rm -f $$list || exit $$?; \
4824+ test -n "$(EXEEXT)" || exit 0; \
4825+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
4826+ echo " rm -f" $$list; \
4827+ rm -f $$list
4828+
4829+clean-noinstLIBRARIES:
4830+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
4831+
4832+libreexport.a: $(libreexport_a_OBJECTS) $(libreexport_a_DEPENDENCIES) $(EXTRA_libreexport_a_DEPENDENCIES)
4833+ $(AM_V_at)-rm -f libreexport.a
4834+ $(AM_V_AR)$(libreexport_a_AR) libreexport.a $(libreexport_a_OBJECTS) $(libreexport_a_LIBADD)
4835+ $(AM_V_at)$(RANLIB) libreexport.a
4836+
4837+fsidd$(EXEEXT): $(fsidd_OBJECTS) $(fsidd_DEPENDENCIES) $(EXTRA_fsidd_DEPENDENCIES)
4838+ @rm -f fsidd$(EXEEXT)
4839+ $(AM_V_CCLD)$(LINK) $(fsidd_OBJECTS) $(fsidd_LDADD) $(LIBS)
4840+
4841+mostlyclean-compile:
4842+ -rm -f *.$(OBJEXT)
4843+
4844+distclean-compile:
4845+ -rm -f *.tab.c
4846+
4847+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsidd-backend_sqlite.Po@am__quote@ # am--include-marker
4848+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsidd-fsidd.Po@am__quote@ # am--include-marker
4849+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reexport.Po@am__quote@ # am--include-marker
4850+
4851+$(am__depfiles_remade):
4852+ @$(MKDIR_P) $(@D)
4853+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
4854+
4855+am--depfiles: $(am__depfiles_remade)
4856+
4857+.c.o:
4858+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
4859+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
4860+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
4861+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
4862+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
4863+
4864+.c.obj:
4865+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
4866+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
4867+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
4868+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
4869+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
4870+
4871+.c.lo:
4872+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
4873+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
4874+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
4875+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
4876+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
4877+
4878+fsidd-fsidd.o: fsidd.c
4879+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fsidd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fsidd-fsidd.o -MD -MP -MF $(DEPDIR)/fsidd-fsidd.Tpo -c -o fsidd-fsidd.o `test -f 'fsidd.c' || echo '$(srcdir)/'`fsidd.c
4880+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fsidd-fsidd.Tpo $(DEPDIR)/fsidd-fsidd.Po
4881+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsidd.c' object='fsidd-fsidd.o' libtool=no @AMDEPBACKSLASH@
4882+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
4883+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fsidd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fsidd-fsidd.o `test -f 'fsidd.c' || echo '$(srcdir)/'`fsidd.c
4884+
4885+fsidd-fsidd.obj: fsidd.c
4886+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fsidd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fsidd-fsidd.obj -MD -MP -MF $(DEPDIR)/fsidd-fsidd.Tpo -c -o fsidd-fsidd.obj `if test -f 'fsidd.c'; then $(CYGPATH_W) 'fsidd.c'; else $(CYGPATH_W) '$(srcdir)/fsidd.c'; fi`
4887+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fsidd-fsidd.Tpo $(DEPDIR)/fsidd-fsidd.Po
4888+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsidd.c' object='fsidd-fsidd.obj' libtool=no @AMDEPBACKSLASH@
4889+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
4890+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fsidd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fsidd-fsidd.obj `if test -f 'fsidd.c'; then $(CYGPATH_W) 'fsidd.c'; else $(CYGPATH_W) '$(srcdir)/fsidd.c'; fi`
4891+
4892+fsidd-backend_sqlite.o: backend_sqlite.c
4893+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fsidd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fsidd-backend_sqlite.o -MD -MP -MF $(DEPDIR)/fsidd-backend_sqlite.Tpo -c -o fsidd-backend_sqlite.o `test -f 'backend_sqlite.c' || echo '$(srcdir)/'`backend_sqlite.c
4894+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fsidd-backend_sqlite.Tpo $(DEPDIR)/fsidd-backend_sqlite.Po
4895+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backend_sqlite.c' object='fsidd-backend_sqlite.o' libtool=no @AMDEPBACKSLASH@
4896+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
4897+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fsidd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fsidd-backend_sqlite.o `test -f 'backend_sqlite.c' || echo '$(srcdir)/'`backend_sqlite.c
4898+
4899+fsidd-backend_sqlite.obj: backend_sqlite.c
4900+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fsidd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fsidd-backend_sqlite.obj -MD -MP -MF $(DEPDIR)/fsidd-backend_sqlite.Tpo -c -o fsidd-backend_sqlite.obj `if test -f 'backend_sqlite.c'; then $(CYGPATH_W) 'backend_sqlite.c'; else $(CYGPATH_W) '$(srcdir)/backend_sqlite.c'; fi`
4901+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fsidd-backend_sqlite.Tpo $(DEPDIR)/fsidd-backend_sqlite.Po
4902+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backend_sqlite.c' object='fsidd-backend_sqlite.obj' libtool=no @AMDEPBACKSLASH@
4903+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
4904+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fsidd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fsidd-backend_sqlite.obj `if test -f 'backend_sqlite.c'; then $(CYGPATH_W) 'backend_sqlite.c'; else $(CYGPATH_W) '$(srcdir)/backend_sqlite.c'; fi`
4905+
4906+mostlyclean-libtool:
4907+ -rm -f *.lo
4908+
4909+clean-libtool:
4910+ -rm -rf .libs _libs
4911+
4912+ID: $(am__tagged_files)
4913+ $(am__define_uniq_tagged_files); mkid -fID $$unique
4914+tags: tags-am
4915+TAGS: tags
4916+
4917+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
4918+ set x; \
4919+ here=`pwd`; \
4920+ $(am__define_uniq_tagged_files); \
4921+ shift; \
4922+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
4923+ test -n "$$unique" || unique=$$empty_fix; \
4924+ if test $$# -gt 0; then \
4925+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
4926+ "$$@" $$unique; \
4927+ else \
4928+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
4929+ $$unique; \
4930+ fi; \
4931+ fi
4932+ctags: ctags-am
4933+
4934+CTAGS: ctags
4935+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
4936+ $(am__define_uniq_tagged_files); \
4937+ test -z "$(CTAGS_ARGS)$$unique" \
4938+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
4939+ $$unique
4940+
4941+GTAGS:
4942+ here=`$(am__cd) $(top_builddir) && pwd` \
4943+ && $(am__cd) $(top_srcdir) \
4944+ && gtags -i $(GTAGS_ARGS) "$$here"
4945+cscopelist: cscopelist-am
4946+
4947+cscopelist-am: $(am__tagged_files)
4948+ list='$(am__tagged_files)'; \
4949+ case "$(srcdir)" in \
4950+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
4951+ *) sdir=$(subdir)/$(srcdir) ;; \
4952+ esac; \
4953+ for i in $$list; do \
4954+ if test -f "$$i"; then \
4955+ echo "$(subdir)/$$i"; \
4956+ else \
4957+ echo "$$sdir/$$i"; \
4958+ fi; \
4959+ done >> $(top_builddir)/cscope.files
4960+
4961+distclean-tags:
4962+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
4963+distdir: $(BUILT_SOURCES)
4964+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
4965+
4966+distdir-am: $(DISTFILES)
4967+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
4968+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
4969+ list='$(DISTFILES)'; \
4970+ dist_files=`for file in $$list; do echo $$file; done | \
4971+ sed -e "s|^$$srcdirstrip/||;t" \
4972+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
4973+ case $$dist_files in \
4974+ */*) $(MKDIR_P) `echo "$$dist_files" | \
4975+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
4976+ sort -u` ;; \
4977+ esac; \
4978+ for file in $$dist_files; do \
4979+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
4980+ if test -d $$d/$$file; then \
4981+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
4982+ if test -d "$(distdir)/$$file"; then \
4983+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
4984+ fi; \
4985+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
4986+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
4987+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
4988+ fi; \
4989+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
4990+ else \
4991+ test -f "$(distdir)/$$file" \
4992+ || cp -p $$d/$$file "$(distdir)/$$file" \
4993+ || exit 1; \
4994+ fi; \
4995+ done
4996+check-am: all-am
4997+check: check-am
4998+all-am: Makefile $(PROGRAMS) $(LIBRARIES)
4999+installdirs:
5000+ for dir in "$(DESTDIR)$(sbindir)"; do \
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches