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
diff --git a/.gitignore b/.gitignore
index df791a8..da666b8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -72,6 +72,7 @@ support/nsm/sm_inter_clnt.c
72support/nsm/sm_inter_svc.c72support/nsm/sm_inter_svc.c
73support/nsm/sm_inter_xdr.c73support/nsm/sm_inter_xdr.c
74support/include/sm_inter.h74support/include/sm_inter.h
75support/reexport/fsidd
75tests/nsm_client/nlm_sm_inter.h76tests/nsm_client/nlm_sm_inter.h
76tests/nsm_client/nlm_sm_inter_clnt.c77tests/nsm_client/nlm_sm_inter_clnt.c
77tests/nsm_client/nlm_sm_inter_svc.c78tests/nsm_client/nlm_sm_inter_svc.c
@@ -86,3 +87,5 @@ systemd/rpc-gssd.service
86cscope.*87cscope.*
87# generic editor backup et al88# generic editor backup et al
88*~89*~
90# file generated by ctags
91tags
diff --git a/Makefile.in b/Makefile.in
index a8c54ee..b9aa115 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -286,6 +286,8 @@ LIBCRYPT = @LIBCRYPT@
286LIBEVENT = @LIBEVENT@286LIBEVENT = @LIBEVENT@
287LIBKEYUTILS = @LIBKEYUTILS@287LIBKEYUTILS = @LIBKEYUTILS@
288LIBMOUNT = @LIBMOUNT@288LIBMOUNT = @LIBMOUNT@
289LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
290LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
289LIBNSL = @LIBNSL@291LIBNSL = @LIBNSL@
290LIBOBJS = @LIBOBJS@292LIBOBJS = @LIBOBJS@
291LIBPTHREAD = @LIBPTHREAD@293LIBPTHREAD = @LIBPTHREAD@
@@ -387,7 +389,6 @@ localedir = @localedir@
387localstatedir = @localstatedir@389localstatedir = @localstatedir@
388mandir = @mandir@390mandir = @mandir@
389mkdir_p = @mkdir_p@391mkdir_p = @mkdir_p@
390modprobedir = @modprobedir@
391mountfile = @mountfile@392mountfile = @mountfile@
392nfsconfig = @nfsconfig@393nfsconfig = @nfsconfig@
393oldincludedir = @oldincludedir@394oldincludedir = @oldincludedir@
diff --git a/NEWS b/NEWS
index e70ae8a..77872c5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,32 +1,32 @@
1Significant changes for nfs-utils 1.1.0 - March/April 20071Significant changes for nfs-utils 1.1.0 - March/April 2007
22
3 - rpc.lockd is gone. One 3 old kernel releases need it.3 - rpc.lockd is gone. One 3 old kernel releases need it.
4 - rpc.rquotad is gone. Use the one from the 'quota' package.4 - rpc.rquotad is gone. Use the one from the 'quota' package.
5 Everone else does.5 Everyone else does.
6 - /sbin/{u,}mount.nfs{,4} are now installed so 'mount' will6 - /sbin/{u,}mount.nfs{,4} are now installed so 'mount' will
7 use these to mount nfs filesystems instead of internal code.7 use these to mount nfs filesystems instead of internal code.
8 + mount.nfs will check for 'statd' to be running when mounting8 + mount.nfs will check for 'statd' to be running when mounting
9 a filesystem which requires it. If it is not running it will9 a filesystem which requires it. If it is not running it will
10 run "/usr/sbin/start-statd" to try to start it.10 run "/usr/sbin/start-statd" to try to start it.
11 If statd is not running and cannot be started, mount.nfs will11 If statd is not running and cannot be started, mount.nfs will
12 refuse to mount the filesystem and will suggest the 'nolock'12 refuse to mount the filesystem and will suggest the 'nolock'
13 option.13 option.
14 - Substantial changes to statd14 - Substantial changes to statd
15 + The 'notify' process that must happen at boot has been split15 + The 'notify' process that must happen at boot has been split
16 into a separate program "sm-notify". It ensures that it16 into a separate program "sm-notify". It ensures that it
17 only runs once even if you restart statd. This is correct17 only runs once even if you restart statd. This is correct
18 behaviour.18 behaviour.
19 + statd stores state in the files in /var/lib/nfs/sm/ so that19 + statd stores state in the files in /var/lib/nfs/sm/ so that
20 if you kill and restart it, it will restore that state and20 if you kill and restart it, it will restore that state and
21 continue working correctly.21 continue working correctly.
22 + statd makes more use of DNS lookup and should handle22 + statd makes more use of DNS lookup and should handle
23 multi-homed peers better. In particular, files in23 multi-homed peers better. In particular, files in
24 /var/lib/nfs/sm/ are named with the Full Qualified Domain Name24 /var/lib/nfs/sm/ are named with the Full Qualified Domain Name
25 if available.25 if available.
26 - If you export a directory as 'crossmnt', all filesystems26 - If you export a directory as 'crossmnt', all filesystems
27 mounted beneath are automatically exported with the same27 mounted beneath are automatically exported with the same
28 options (unless explicitly exported with different options).28 options (unless explicitly exported with different options).
29 - subtree_check is no-longer the default. The default is now29 - subtree_check is no-longer the default. The default is now
30 no_subtree_check.30 no_subtree_check.
31 - By default the system 'rpcgen' is used while building31 - By default the system 'rpcgen' is used while building
32 nfs-utils rather than the internal one.32 nfs-utils rather than the internal one.
@@ -43,14 +43,14 @@ Significant changes for nfs-utils 1.1.0 - March/April 2007
4343
44 - A new option, -n, was added to rpc.gssd which specifies that44 - A new option, -n, was added to rpc.gssd which specifies that
45 accesses by root should not use 'machine credentials' when45 accesses by root should not use 'machine credentials' when
46 accessing NFS file systems mounted with Kerberos. Using this46 accessing NFS file systems mounted with Kerberos. Using this
47 option allows the root user to access the NFS space using any47 option allows the root user to access the NFS space using any
48 Kerberos principal, rather than always using the machine48 Kerberos principal, rather than always using the machine
49 credentials. However, its use also requires that root manually49 credentials. However, its use also requires that root manually
50 authenticate before attempting a mount with Kerberos.50 authenticate before attempting a mount with Kerberos.
5151
52 When rpc.gssd uses machine credentials, the selection algorithm has52 When rpc.gssd uses machine credentials, the selection algorithm has
53 been changed. Instead of simply using the first "nfs/*" key in the53 been changed. Instead of simply using the first "nfs/*" key in the
54 keytab, the keytab is now searched for keys in the following54 keytab, the keytab is now searched for keys in the following
55 defined order:55 defined order:
5656
diff --git a/README b/README
index 5e98240..3b0e771 100644
--- a/README
+++ b/README
@@ -25,7 +25,7 @@ Unpack the sources and run these commands:
25 # ./configure25 # ./configure
26 # make26 # make
2727
28To install binaries and documenation, run this command:28To install binaries and documentation, run this command:
2929
30 # make install30 # make install
3131
@@ -40,7 +40,7 @@ Updating to the latest head after you've already got it.
4040
41 git pull41 git pull
4242
43Building requires that autotools be installed. To invoke them43Building requires that autotools be installed. To invoke them
44simply44simply
4545
46 sh autogen.sh46 sh autogen.sh
@@ -70,7 +70,7 @@ scripts can be written to work correctly.
703.1. SERVER STARTUP703.1. SERVER STARTUP
7171
7272
73 A/ mount -t nfsd /proc/fs/nfsd73 A/ mount -t nfsd nfsd /proc/fs/nfsd
74 This filesystem needs to be mount before most daemons,74 This filesystem needs to be mount before most daemons,
75 particularly exportfs, mountd, svcgssd, idmapd.75 particularly exportfs, mountd, svcgssd, idmapd.
76 It could be mounted once, or the script that starts each daemon76 It could be mounted once, or the script that starts each daemon
@@ -95,27 +95,27 @@ scripts can be written to work correctly.
9595
96 D/ rpc.statd --no-notify96 D/ rpc.statd --no-notify
97 It is best if statd is started before nfsd though this isn't97 It is best if statd is started before nfsd though this isn't
98 critical. Certainly it should be at most a few seconds after98 critical. Certainly, it should be at most a few seconds after
99 nfsd.99 nfsd.
100 When nfsd starts it will start lockd. If lockd then receives a100 When nfsd starts it will start lockd. If lockd then receives a
101 lock request it will communicate with statd. If statd is not101 lock request, it will communicate with statd. If statd is not
102 running lockd will retry, but it won't wait forever for a102 running lockd will retry, but it won't wait forever for a
103 reply.103 reply.
104 Note that if statd is started before nfsd, the --no-notify104 Note that if statd is started before nfsd, the --no-notify
105 option must be used. If notify requests are sent out before105 option must be used. If notify requests are sent out before
106 nfsd start, clients may try to reclaim locks and, on finding106 nfsd start, clients may try to reclaim locks and, on finding
107 that lockd isn't running, they will give up and never reclaim107 that lockd isn't running, they will give up and never reclaim
108 the lock.108 the lock.
109 rpc.statd is only needed for NFSv2 and NFSv3 support.109 rpc.statd is only needed for NFSv2 and NFSv3 support.
110110
111 E/ rpc.nfsd111 E/ rpc.nfsd
112 Starting nfsd will automatically start lockd. The nfs server112 Starting nfsd will automatically start lockd. The nfs server
113 will now be fully active and respond to any requests from113 will now be fully active and respond to any requests from
114 clients.114 clients.
115 115
116 F/ sm-notify116 F/ sm-notify
117 This will notify any client which might have locks from before117 This will notify any client which might have locks from before
118 a reboot to try to reclaim their locks. This should start118 a reboot to try to reclaim their locks. This should start
119 immediately after rpc.nfsd is started so that clients have a119 immediately after rpc.nfsd is started so that clients have a
120 chance to reclaim locks within the 90 second grace period.120 chance to reclaim locks within the 90 second grace period.
121 sm-notify is only needed for NFSv2 and NFSv3 support.121 sm-notify is only needed for NFSv2 and NFSv3 support.
diff --git a/configure b/configure
index e14489e..2a29dd4 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
1#! /bin/sh1#! /bin/sh
2# Guess values for system-dependent variables and create Makefiles.2# Guess values for system-dependent variables and create Makefiles.
3# Generated by GNU Autoconf 2.71 for linux nfs-utils 2.6.2.3# Generated by GNU Autoconf 2.71 for linux nfs-utils 2.6.3.
4#4#
5# Report bugs to <linux-nfs@vger.kernel.org>.5# Report bugs to <linux-nfs@vger.kernel.org>.
6#6#
@@ -621,8 +621,8 @@ MAKEFLAGS=
621# Identity of this package.621# Identity of this package.
622PACKAGE_NAME='linux nfs-utils'622PACKAGE_NAME='linux nfs-utils'
623PACKAGE_TARNAME='nfs-utils'623PACKAGE_TARNAME='nfs-utils'
624PACKAGE_VERSION='2.6.2'624PACKAGE_VERSION='2.6.3'
625PACKAGE_STRING='linux nfs-utils 2.6.2'625PACKAGE_STRING='linux nfs-utils 2.6.3'
626PACKAGE_BUGREPORT='linux-nfs@vger.kernel.org'626PACKAGE_BUGREPORT='linux-nfs@vger.kernel.org'
627PACKAGE_URL=''627PACKAGE_URL=''
628628
@@ -757,11 +757,15 @@ LIBTIRPC
757AM_CPPFLAGS757AM_CPPFLAGS
758TIRPC_LIBS758TIRPC_LIBS
759TIRPC_CFLAGS759TIRPC_CFLAGS
760CONFIG_NFSV4SERVER_FALSE
761CONFIG_NFSV4SERVER_TRUE
762LIBMOUNT_LIBS
763LIBMOUNT_CFLAGS
760PKG_CONFIG_LIBDIR764PKG_CONFIG_LIBDIR
761PKG_CONFIG_PATH765PKG_CONFIG_PATH
762PKG_CONFIG766PKG_CONFIG
763CONFIG_NFSV4SERVER_FALSE767CONFIG_NFSRAHEAD_FALSE
764CONFIG_NFSV4SERVER_TRUE768CONFIG_NFSRAHEAD_TRUE
765MOUNT_CONFIG_FALSE769MOUNT_CONFIG_FALSE
766MOUNT_CONFIG_TRUE770MOUNT_CONFIG_TRUE
767enable_mountconfig771enable_mountconfig
@@ -794,9 +798,6 @@ CONFIG_NFSV4_FALSE
794CONFIG_NFSV4_TRUE798CONFIG_NFSV4_TRUE
795enable_nfsv4799enable_nfsv4
796IDMAPD800IDMAPD
797modprobedir
798INSTALL_MODPROBEDIR_FALSE
799INSTALL_MODPROBEDIR_TRUE
800unitdir801unitdir
801INSTALL_SYSTEMD_FALSE802INSTALL_SYSTEMD_FALSE
802INSTALL_SYSTEMD_TRUE803INSTALL_SYSTEMD_TRUE
@@ -916,7 +917,6 @@ with_statdpath
916with_statduser917with_statduser
917with_start_statd918with_start_statd
918with_systemd919with_systemd
919with_modprobedir
920enable_nfsv4920enable_nfsv4
921enable_nfsv41921enable_nfsv41
922enable_gss922enable_gss
@@ -933,6 +933,7 @@ enable_ipv6
933enable_mountconfig933enable_mountconfig
934with_mountfile934with_mountfile
935enable_nfsdcld935enable_nfsdcld
936enable_nfsrahead
936enable_nfsdcltrack937enable_nfsdcltrack
937enable_nfsv4server938enable_nfsv4server
938with_tirpcinclude939with_tirpcinclude
@@ -964,6 +965,8 @@ CPPFLAGS
964PKG_CONFIG965PKG_CONFIG
965PKG_CONFIG_PATH966PKG_CONFIG_PATH
966PKG_CONFIG_LIBDIR967PKG_CONFIG_LIBDIR
968LIBMOUNT_CFLAGS
969LIBMOUNT_LIBS
967TIRPC_CFLAGS970TIRPC_CFLAGS
968TIRPC_LIBS971TIRPC_LIBS
969XML2_CFLAGS972XML2_CFLAGS
@@ -1526,7 +1529,7 @@ if test "$ac_init_help" = "long"; then
1526 # Omit some internal or obsolete options to make the list less imposing.1529 # Omit some internal or obsolete options to make the list less imposing.
1527 # This message is too long to be a string in the A/UX 3.1 sh.1530 # This message is too long to be a string in the A/UX 3.1 sh.
1528 cat <<_ACEOF1531 cat <<_ACEOF
1529\`configure' configures linux nfs-utils 2.6.2 to adapt to many kinds of systems.1532\`configure' configures linux nfs-utils 2.6.3 to adapt to many kinds of systems.
15301533
1531Usage: $0 [OPTION]... [VAR=VALUE]...1534Usage: $0 [OPTION]... [VAR=VALUE]...
15321535
@@ -1597,7 +1600,7 @@ fi
15971600
1598if test -n "$ac_init_help"; then1601if test -n "$ac_init_help"; then
1599 case $ac_init_help in1602 case $ac_init_help in
1600 short | recursive ) echo "Configuration of linux nfs-utils 2.6.2:";;1603 short | recursive ) echo "Configuration of linux nfs-utils 2.6.3:";;
1601 esac1604 esac
1602 cat <<\_ACEOF1605 cat <<\_ACEOF
16031606
@@ -1633,6 +1636,7 @@ Optional Features:
1633 --disable-mountconfig disable mount to use a configuration file1636 --disable-mountconfig disable mount to use a configuration file
1634 [default=no]1637 [default=no]
1635 --disable-nfsdcld disable NFSv4 clientid tracking daemon [default=no]1638 --disable-nfsdcld disable NFSv4 clientid tracking daemon [default=no]
1639 --disable-nfsrahead disable nfsrahead command [default=no]
1636 --disable-nfsdcltrack disable NFSv4 clientid tracking programs1640 --disable-nfsdcltrack disable NFSv4 clientid tracking programs
1637 [default=no]1641 [default=no]
1638 --enable-nfsv4server enable support for NFSv4 only server [default=no]1642 --enable-nfsv4server enable support for NFSv4 only server [default=no]
@@ -1665,9 +1669,6 @@ Optional Packages:
1665 --with-systemd[=unit-dir-path]1669 --with-systemd[=unit-dir-path]
1666 install systemd unit files [Default: no, and path1670 install systemd unit files [Default: no, and path
1667 defaults to /usr/lib/systemd/system if not given]1671 defaults to /usr/lib/systemd/system if not given]
1668 --with-modprobedir[=modprobe-dir-path]
1669 install modprobe config files [Default:
1670 /usr/lib/modprobe.d]
1671 --with-rpcgen=internal use internal rpcgen instead of system one1672 --with-rpcgen=internal use internal rpcgen instead of system one
1672 --with-mountfile=filename1673 --with-mountfile=filename
1673 Using filename as the NFS mount options file1674 Using filename as the NFS mount options file
@@ -1701,6 +1702,10 @@ Some influential environment variables:
1701 directories to add to pkg-config's search path1702 directories to add to pkg-config's search path
1702 PKG_CONFIG_LIBDIR1703 PKG_CONFIG_LIBDIR
1703 path overriding pkg-config's built-in search path1704 path overriding pkg-config's built-in search path
1705 LIBMOUNT_CFLAGS
1706 C compiler flags for LIBMOUNT, overriding pkg-config
1707 LIBMOUNT_LIBS
1708 linker flags for LIBMOUNT, overriding pkg-config
1704 TIRPC_CFLAGS1709 TIRPC_CFLAGS
1705 C compiler flags for TIRPC, overriding pkg-config1710 C compiler flags for TIRPC, overriding pkg-config
1706 TIRPC_LIBS linker flags for TIRPC, overriding pkg-config1711 TIRPC_LIBS linker flags for TIRPC, overriding pkg-config
@@ -1788,7 +1793,7 @@ fi
1788test -n "$ac_init_help" && exit $ac_status1793test -n "$ac_init_help" && exit $ac_status
1789if $ac_init_version; then1794if $ac_init_version; then
1790 cat <<\_ACEOF1795 cat <<\_ACEOF
1791linux nfs-utils configure 2.6.21796linux nfs-utils configure 2.6.3
1792generated by GNU Autoconf 2.711797generated by GNU Autoconf 2.71
17931798
1794Copyright (C) 2021 Free Software Foundation, Inc.1799Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2457,7 +2462,7 @@ cat >config.log <<_ACEOF
2457This file contains any messages produced by compilers while2462This file contains any messages produced by compilers while
2458running configure, to aid debugging if configure makes a mistake.2463running configure, to aid debugging if configure makes a mistake.
24592464
2460It was created by linux nfs-utils $as_me 2.6.2, which was2465It was created by linux nfs-utils $as_me 2.6.3, which was
2461generated by GNU Autoconf 2.71. Invocation command line was2466generated by GNU Autoconf 2.71. Invocation command line was
24622467
2463 $ $0$ac_configure_args_raw2468 $ $0$ac_configure_args_raw
@@ -4026,7 +4031,7 @@ fi
40264031
4027# Define the identity of the package.4032# Define the identity of the package.
4028 PACKAGE='nfs-utils'4033 PACKAGE='nfs-utils'
4029 VERSION='2.6.2'4034 VERSION='2.6.3'
40304035
40314036
4032printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h4037printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -5675,29 +5680,6 @@ fi
56755680
56765681
56775682
5678modprobedir=/usr/lib/modprobe.d
5679
5680# Check whether --with-modprobedir was given.
5681if test ${with_modprobedir+y}
5682then :
5683 withval=$with_modprobedir; if test "$withval" != "no" ; then
5684 modprobedir=$withval
5685 else
5686 modprobedir=
5687 fi
5688
5689fi
5690
5691 if test -n "$modprobedir"; then
5692 INSTALL_MODPROBEDIR_TRUE=
5693 INSTALL_MODPROBEDIR_FALSE='#'
5694else
5695 INSTALL_MODPROBEDIR_TRUE='#'
5696 INSTALL_MODPROBEDIR_FALSE=
5697fi
5698
5699
5700
5701# Check whether --enable-nfsv4 was given.5683# Check whether --enable-nfsv4 was given.
5702if test ${enable_nfsv4+y}5684if test ${enable_nfsv4+y}
5703then :5685then :
@@ -6012,6 +5994,246 @@ else $as_nop
6012fi5994fi
60135995
60145996
5997# Check whether --enable-nfsrahead was given.
5998if test ${enable_nfsrahead+y}
5999then :
6000 enableval=$enable_nfsrahead; enable_nfsrahead=$enableval
6001else $as_nop
6002 enable_nfsrahead="yes"
6003fi
6004
6005 if test "$enable_nfsrahead" = "yes" ; then
6006 CONFIG_NFSRAHEAD_TRUE=
6007 CONFIG_NFSRAHEAD_FALSE='#'
6008else
6009 CONFIG_NFSRAHEAD_TRUE='#'
6010 CONFIG_NFSRAHEAD_FALSE=
6011fi
6012
6013 if test "$enable_nfsrahead" = yes; then
6014
6015
6016
6017
6018
6019
6020
6021if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
6022 if test -n "$ac_tool_prefix"; then
6023 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
6024set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
6025{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
6026printf %s "checking for $ac_word... " >&6; }
6027if test ${ac_cv_path_PKG_CONFIG+y}
6028then :
6029 printf %s "(cached) " >&6
6030else $as_nop
6031 case $PKG_CONFIG in
6032 [\\/]* | ?:[\\/]*)
6033 ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
6034 ;;
6035 *)
6036 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6037for as_dir in $PATH
6038do
6039 IFS=$as_save_IFS
6040 case $as_dir in #(((
6041 '') as_dir=./ ;;
6042 */) ;;
6043 *) as_dir=$as_dir/ ;;
6044 esac
6045 for ac_exec_ext in '' $ac_executable_extensions; do
6046 if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
6047 ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
6048 printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
6049 break 2
6050 fi
6051done
6052 done
6053IFS=$as_save_IFS
6054
6055 ;;
6056esac
6057fi
6058PKG_CONFIG=$ac_cv_path_PKG_CONFIG
6059if test -n "$PKG_CONFIG"; then
6060 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
6061printf "%s\n" "$PKG_CONFIG" >&6; }
6062else
6063 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
6064printf "%s\n" "no" >&6; }
6065fi
6066
6067
6068fi
6069if test -z "$ac_cv_path_PKG_CONFIG"; then
6070 ac_pt_PKG_CONFIG=$PKG_CONFIG
6071 # Extract the first word of "pkg-config", so it can be a program name with args.
6072set dummy pkg-config; ac_word=$2
6073{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
6074printf %s "checking for $ac_word... " >&6; }
6075if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
6076then :
6077 printf %s "(cached) " >&6
6078else $as_nop
6079 case $ac_pt_PKG_CONFIG in
6080 [\\/]* | ?:[\\/]*)
6081 ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
6082 ;;
6083 *)
6084 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6085for as_dir in $PATH
6086do
6087 IFS=$as_save_IFS
6088 case $as_dir in #(((
6089 '') as_dir=./ ;;
6090 */) ;;
6091 *) as_dir=$as_dir/ ;;
6092 esac
6093 for ac_exec_ext in '' $ac_executable_extensions; do
6094 if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
6095 ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
6096 printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
6097 break 2
6098 fi
6099done
6100 done
6101IFS=$as_save_IFS
6102
6103 ;;
6104esac
6105fi
6106ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
6107if test -n "$ac_pt_PKG_CONFIG"; then
6108 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
6109printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
6110else
6111 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
6112printf "%s\n" "no" >&6; }
6113fi
6114
6115 if test "x$ac_pt_PKG_CONFIG" = x; then
6116 PKG_CONFIG=""
6117 else
6118 case $cross_compiling:$ac_tool_warned in
6119yes:)
6120{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
6121printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
6122ac_tool_warned=yes ;;
6123esac
6124 PKG_CONFIG=$ac_pt_PKG_CONFIG
6125 fi
6126else
6127 PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
6128fi
6129
6130fi
6131if test -n "$PKG_CONFIG"; then
6132 _pkg_min_version=0.9.0
6133 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
6134printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
6135 if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
6136 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
6137printf "%s\n" "yes" >&6; }
6138 else
6139 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
6140printf "%s\n" "no" >&6; }
6141 PKG_CONFIG=""
6142 fi
6143fi
6144
6145pkg_failed=no
6146{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LIBMOUNT" >&5
6147printf %s "checking for LIBMOUNT... " >&6; }
6148
6149if test -n "$LIBMOUNT_CFLAGS"; then
6150 pkg_cv_LIBMOUNT_CFLAGS="$LIBMOUNT_CFLAGS"
6151 elif test -n "$PKG_CONFIG"; then
6152 if test -n "$PKG_CONFIG" && \
6153 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mount\""; } >&5
6154 ($PKG_CONFIG --exists --print-errors "mount") 2>&5
6155 ac_status=$?
6156 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
6157 test $ac_status = 0; }; then
6158 pkg_cv_LIBMOUNT_CFLAGS=`$PKG_CONFIG --cflags "mount" 2>/dev/null`
6159 test "x$?" != "x0" && pkg_failed=yes
6160else
6161 pkg_failed=yes
6162fi
6163 else
6164 pkg_failed=untried
6165fi
6166if test -n "$LIBMOUNT_LIBS"; then
6167 pkg_cv_LIBMOUNT_LIBS="$LIBMOUNT_LIBS"
6168 elif test -n "$PKG_CONFIG"; then
6169 if test -n "$PKG_CONFIG" && \
6170 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mount\""; } >&5
6171 ($PKG_CONFIG --exists --print-errors "mount") 2>&5
6172 ac_status=$?
6173 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
6174 test $ac_status = 0; }; then
6175 pkg_cv_LIBMOUNT_LIBS=`$PKG_CONFIG --libs "mount" 2>/dev/null`
6176 test "x$?" != "x0" && pkg_failed=yes
6177else
6178 pkg_failed=yes
6179fi
6180 else
6181 pkg_failed=untried
6182fi
6183
6184
6185
6186if test $pkg_failed = yes; then
6187 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
6188printf "%s\n" "no" >&6; }
6189
6190if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
6191 _pkg_short_errors_supported=yes
6192else
6193 _pkg_short_errors_supported=no
6194fi
6195 if test $_pkg_short_errors_supported = yes; then
6196 LIBMOUNT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "mount" 2>&1`
6197 else
6198 LIBMOUNT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "mount" 2>&1`
6199 fi
6200 # Put the nasty error message in config.log where it belongs
6201 echo "$LIBMOUNT_PKG_ERRORS" >&5
6202
6203 as_fn_error $? "Package requirements (mount) were not met:
6204
6205$LIBMOUNT_PKG_ERRORS
6206
6207Consider adjusting the PKG_CONFIG_PATH environment variable if you
6208installed software in a non-standard prefix.
6209
6210Alternatively, you may set the environment variables LIBMOUNT_CFLAGS
6211and LIBMOUNT_LIBS to avoid the need to call pkg-config.
6212See the pkg-config man page for more details." "$LINENO" 5
6213elif test $pkg_failed = untried; then
6214 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
6215printf "%s\n" "no" >&6; }
6216 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
6217printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
6218as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
6219is in your PATH or set the PKG_CONFIG environment variable to the full
6220path to pkg-config.
6221
6222Alternatively, you may set the environment variables LIBMOUNT_CFLAGS
6223and LIBMOUNT_LIBS to avoid the need to call pkg-config.
6224See the pkg-config man page for more details.
6225
6226To get pkg-config, see <http://pkg-config.freedesktop.org/>.
6227See \`config.log' for more details" "$LINENO" 5; }
6228else
6229 LIBMOUNT_CFLAGS=$pkg_cv_LIBMOUNT_CFLAGS
6230 LIBMOUNT_LIBS=$pkg_cv_LIBMOUNT_LIBS
6231 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
6232printf "%s\n" "yes" >&6; }
6233
6234fi
6235 fi
6236
6015# Check whether --enable-nfsdcltrack was given.6237# Check whether --enable-nfsdcltrack was given.
6016if test ${enable_nfsdcltrack+y}6238if test ${enable_nfsdcltrack+y}
6017then :6239then :
@@ -7418,11 +7640,11 @@ if test x$ac_prog_cxx_stdcxx = xno
7418then :7640then :
7419 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&57641 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5
7420printf %s "checking for $CXX option to enable C++11 features... " >&6; }7642printf %s "checking for $CXX option to enable C++11 features... " >&6; }
7421if test ${ac_cv_prog_cxx_11+y}7643if test ${ac_cv_prog_cxx_cxx11+y}
7422then :7644then :
7423 printf %s "(cached) " >&67645 printf %s "(cached) " >&6
7424else $as_nop7646else $as_nop
7425 ac_cv_prog_cxx_11=no7647 ac_cv_prog_cxx_cxx11=no
7426ac_save_CXX=$CXX7648ac_save_CXX=$CXX
7427cat confdefs.h - <<_ACEOF >conftest.$ac_ext7649cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7428/* end confdefs.h. */7650/* end confdefs.h. */
@@ -7464,11 +7686,11 @@ if test x$ac_prog_cxx_stdcxx = xno
7464then :7686then :
7465 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&57687 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5
7466printf %s "checking for $CXX option to enable C++98 features... " >&6; }7688printf %s "checking for $CXX option to enable C++98 features... " >&6; }
7467if test ${ac_cv_prog_cxx_98+y}7689if test ${ac_cv_prog_cxx_cxx98+y}
7468then :7690then :
7469 printf %s "(cached) " >&67691 printf %s "(cached) " >&6
7470else $as_nop7692else $as_nop
7471 ac_cv_prog_cxx_98=no7693 ac_cv_prog_cxx_cxx98=no
7472ac_save_CXX=$CXX7694ac_save_CXX=$CXX
7473cat confdefs.h - <<_ACEOF >conftest.$ac_ext7695cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7474/* end confdefs.h. */7696/* end confdefs.h. */
@@ -24825,12 +25047,12 @@ AM_CFLAGS="$my_am_cflags $flg1 $flg2 $flg3 $flg4 $flg5"
24825ACLOCAL_AMFLAGS="-I $ac_macro_dir \$(ACLOCAL_FLAGS)"25047ACLOCAL_AMFLAGS="-I $ac_macro_dir \$(ACLOCAL_FLAGS)"
2482625048
2482725049
24828# make _sysconfdir available for substituion in config files25050# make _sysconfdir available for substitution in config files
24829# 2 "evals" needed late to expand variable names.25051# 2 "evals" needed late to expand variable names.
2483025052
2483125053
2483225054
24833# make _statedir available for substituion in config files25055# make _statedir available for substitution in config files
24834# 2 "evals" needed late to expand variable names.25056# 2 "evals" needed late to expand variable names.
2483525057
2483625058
@@ -24842,12 +25064,12 @@ else
24842fi25064fi
2484325065
2484425066
24845# make _rpc_pipefsmount available for substituion in config files25067# make _rpc_pipefsmount available for substitution in config files
24846# 2 "evals" needed late to expand variable names.25068# 2 "evals" needed late to expand variable names.
2484725069
2484825070
2484925071
24850ac_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"25072ac_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"
2485125073
24852cat >confcache <<\_ACEOF25074cat >confcache <<\_ACEOF
24853# This file is a shell script that caches the results of configure25075# This file is a shell script that caches the results of configure
@@ -24990,10 +25212,6 @@ if test -z "${INSTALL_SYSTEMD_TRUE}" && test -z "${INSTALL_SYSTEMD_FALSE}"; then
24990 as_fn_error $? "conditional \"INSTALL_SYSTEMD\" was never defined.25212 as_fn_error $? "conditional \"INSTALL_SYSTEMD\" was never defined.
24991Usually this means the macro was only invoked conditionally." "$LINENO" 525213Usually this means the macro was only invoked conditionally." "$LINENO" 5
24992fi25214fi
24993if test -z "${INSTALL_MODPROBEDIR_TRUE}" && test -z "${INSTALL_MODPROBEDIR_FALSE}"; then
24994 as_fn_error $? "conditional \"INSTALL_MODPROBEDIR\" was never defined.
24995Usually this means the macro was only invoked conditionally." "$LINENO" 5
24996fi
24997if test -z "${CONFIG_NFSV4_TRUE}" && test -z "${CONFIG_NFSV4_FALSE}"; then25215if test -z "${CONFIG_NFSV4_TRUE}" && test -z "${CONFIG_NFSV4_FALSE}"; then
24998 as_fn_error $? "conditional \"CONFIG_NFSV4\" was never defined.25216 as_fn_error $? "conditional \"CONFIG_NFSV4\" was never defined.
24999Usually this means the macro was only invoked conditionally." "$LINENO" 525217Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -25038,6 +25256,10 @@ if test -z "${MOUNT_CONFIG_TRUE}" && test -z "${MOUNT_CONFIG_FALSE}"; then
25038 as_fn_error $? "conditional \"MOUNT_CONFIG\" was never defined.25256 as_fn_error $? "conditional \"MOUNT_CONFIG\" was never defined.
25039Usually this means the macro was only invoked conditionally." "$LINENO" 525257Usually this means the macro was only invoked conditionally." "$LINENO" 5
25040fi25258fi
25259if test -z "${CONFIG_NFSRAHEAD_TRUE}" && test -z "${CONFIG_NFSRAHEAD_FALSE}"; then
25260 as_fn_error $? "conditional \"CONFIG_NFSRAHEAD\" was never defined.
25261Usually this means the macro was only invoked conditionally." "$LINENO" 5
25262fi
25041if test -z "${CONFIG_NFSV4SERVER_TRUE}" && test -z "${CONFIG_NFSV4SERVER_FALSE}"; then25263if test -z "${CONFIG_NFSV4SERVER_TRUE}" && test -z "${CONFIG_NFSV4SERVER_FALSE}"; then
25042 as_fn_error $? "conditional \"CONFIG_NFSV4SERVER\" was never defined.25264 as_fn_error $? "conditional \"CONFIG_NFSV4SERVER\" was never defined.
25043Usually this means the macro was only invoked conditionally." "$LINENO" 525265Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -25471,7 +25693,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
25471# report actual input values of CONFIG_FILES etc. instead of their25693# report actual input values of CONFIG_FILES etc. instead of their
25472# values after options handling.25694# values after options handling.
25473ac_log="25695ac_log="
25474This file was extended by linux nfs-utils $as_me 2.6.2, which was25696This file was extended by linux nfs-utils $as_me 2.6.3, which was
25475generated by GNU Autoconf 2.71. Invocation command line was25697generated by GNU Autoconf 2.71. Invocation command line was
2547625698
25477 CONFIG_FILES = $CONFIG_FILES25699 CONFIG_FILES = $CONFIG_FILES
@@ -25539,7 +25761,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
25539cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=125761cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
25540ac_cs_config='$ac_cs_config_escaped'25762ac_cs_config='$ac_cs_config_escaped'
25541ac_cs_version="\\25763ac_cs_version="\\
25542linux nfs-utils config.status 2.6.225764linux nfs-utils config.status 2.6.3
25543configured by $0, generated by GNU Autoconf 2.71,25765configured by $0, generated by GNU Autoconf 2.71,
25544 with options \\"\$ac_cs_config\\"25766 with options \\"\$ac_cs_config\\"
2554525767
@@ -26072,6 +26294,7 @@ do
26072 "support/nsm/Makefile") CONFIG_FILES="$CONFIG_FILES support/nsm/Makefile" ;;26294 "support/nsm/Makefile") CONFIG_FILES="$CONFIG_FILES support/nsm/Makefile" ;;
26073 "support/nfsidmap/Makefile") CONFIG_FILES="$CONFIG_FILES support/nfsidmap/Makefile" ;;26295 "support/nfsidmap/Makefile") CONFIG_FILES="$CONFIG_FILES support/nfsidmap/Makefile" ;;
26074 "support/nfsidmap/libnfsidmap.pc") CONFIG_FILES="$CONFIG_FILES support/nfsidmap/libnfsidmap.pc" ;;26296 "support/nfsidmap/libnfsidmap.pc") CONFIG_FILES="$CONFIG_FILES support/nfsidmap/libnfsidmap.pc" ;;
26297 "support/reexport/Makefile") CONFIG_FILES="$CONFIG_FILES support/reexport/Makefile" ;;
26075 "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;26298 "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
26076 "tools/locktest/Makefile") CONFIG_FILES="$CONFIG_FILES tools/locktest/Makefile" ;;26299 "tools/locktest/Makefile") CONFIG_FILES="$CONFIG_FILES tools/locktest/Makefile" ;;
26077 "tools/nlmtest/Makefile") CONFIG_FILES="$CONFIG_FILES tools/nlmtest/Makefile" ;;26300 "tools/nlmtest/Makefile") CONFIG_FILES="$CONFIG_FILES tools/nlmtest/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index f1c46c5..4ade528 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
1dnl Process this file with autoconf to produce a configure script.1dnl Process this file with autoconf to produce a configure script.
2dnl2dnl
3AC_INIT([linux nfs-utils],[2.6.2],[linux-nfs@vger.kernel.org],[nfs-utils])3AC_INIT([linux nfs-utils],[2.6.3],[linux-nfs@vger.kernel.org],[nfs-utils])
4AC_CANONICAL_BUILD([])4AC_CANONICAL_BUILD([])
5AC_CANONICAL_HOST([])5AC_CANONICAL_HOST([])
6AC_CONFIG_MACRO_DIR(aclocal)6AC_CONFIG_MACRO_DIR(aclocal)
@@ -71,18 +71,6 @@ AC_ARG_WITH(systemd,
71 AM_CONDITIONAL(INSTALL_SYSTEMD, [test "$use_systemd" = 1])71 AM_CONDITIONAL(INSTALL_SYSTEMD, [test "$use_systemd" = 1])
72 AC_SUBST(unitdir)72 AC_SUBST(unitdir)
7373
74modprobedir=/usr/lib/modprobe.d
75AC_ARG_WITH(modprobedir,
76 [AS_HELP_STRING([--with-modprobedir@<:@=modprobe-dir-path@:>@],[install modprobe config files @<:@Default: /usr/lib/modprobe.d@:>@])],
77 if test "$withval" != "no" ; then
78 modprobedir=$withval
79 else
80 modprobedir=
81 fi
82 )
83 AM_CONDITIONAL(INSTALL_MODPROBEDIR, [test -n "$modprobedir"])
84 AC_SUBST(modprobedir)
85
86AC_ARG_ENABLE(nfsv4,74AC_ARG_ENABLE(nfsv4,
87 [AS_HELP_STRING([--disable-nfsv4],[disable support for NFSv4 @<:@default=no@:>@])],75 [AS_HELP_STRING([--disable-nfsv4],[disable support for NFSv4 @<:@default=no@:>@])],
88 enable_nfsv4=$enableval,76 enable_nfsv4=$enableval,
@@ -249,6 +237,16 @@ AC_ARG_ENABLE(nfsdcld,
249 enable_nfsdcld=$enableval,237 enable_nfsdcld=$enableval,
250 enable_nfsdcld="yes")238 enable_nfsdcld="yes")
251239
240AC_ARG_ENABLE(nfsrahead,
241 [AS_HELP_STRING([--disable-nfsrahead],[disable nfsrahead command @<:@default=no@:>@])],
242 enable_nfsrahead=$enableval,
243 enable_nfsrahead="yes")
244 AM_CONDITIONAL(CONFIG_NFSRAHEAD, [test "$enable_nfsrahead" = "yes" ])
245 if test "$enable_nfsrahead" = yes; then
246 dnl Check for -lmount
247 PKG_CHECK_MODULES([LIBMOUNT], [mount])
248 fi
249
252AC_ARG_ENABLE(nfsdcltrack,250AC_ARG_ENABLE(nfsdcltrack,
253 [AS_HELP_STRING([--disable-nfsdcltrack],[disable NFSv4 clientid tracking programs @<:@default=no@:>@])],251 [AS_HELP_STRING([--disable-nfsdcltrack],[disable NFSv4 clientid tracking programs @<:@default=no@:>@])],
254 enable_nfsdcltrack=$enableval,252 enable_nfsdcltrack=$enableval,
@@ -678,12 +676,12 @@ AC_SUBST([AM_CFLAGS], ["$my_am_cflags $flg1 $flg2 $flg3 $flg4 $flg5"])
678# Make sure that $ACLOCAL_FLAGS are used during a rebuild676# Make sure that $ACLOCAL_FLAGS are used during a rebuild
679AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])677AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
680678
681# make _sysconfdir available for substituion in config files679# make _sysconfdir available for substitution in config files
682# 2 "evals" needed late to expand variable names.680# 2 "evals" needed late to expand variable names.
683AC_SUBST([_sysconfdir])681AC_SUBST([_sysconfdir])
684AC_CONFIG_COMMANDS_PRE([eval eval _sysconfdir=$sysconfdir])682AC_CONFIG_COMMANDS_PRE([eval eval _sysconfdir=$sysconfdir])
685683
686# make _statedir available for substituion in config files684# make _statedir available for substitution in config files
687# 2 "evals" needed late to expand variable names.685# 2 "evals" needed late to expand variable names.
688AC_SUBST([_statedir])686AC_SUBST([_statedir])
689AC_CONFIG_COMMANDS_PRE([eval eval _statedir=$statedir])687AC_CONFIG_COMMANDS_PRE([eval eval _statedir=$statedir])
@@ -695,7 +693,7 @@ else
695fi693fi
696AC_SUBST(rpc_pipefsmount)694AC_SUBST(rpc_pipefsmount)
697695
698# make _rpc_pipefsmount available for substituion in config files696# make _rpc_pipefsmount available for substitution in config files
699# 2 "evals" needed late to expand variable names.697# 2 "evals" needed late to expand variable names.
700AC_SUBST([_rpc_pipefsmount])698AC_SUBST([_rpc_pipefsmount])
701AC_CONFIG_COMMANDS_PRE([eval eval _rpc_pipefsmount=$rpc_pipefsmount])699AC_CONFIG_COMMANDS_PRE([eval eval _rpc_pipefsmount=$rpc_pipefsmount])
@@ -719,6 +717,7 @@ AC_CONFIG_FILES([
719 support/nsm/Makefile717 support/nsm/Makefile
720 support/nfsidmap/Makefile718 support/nfsidmap/Makefile
721 support/nfsidmap/libnfsidmap.pc719 support/nfsidmap/libnfsidmap.pc
720 support/reexport/Makefile
722 tools/Makefile721 tools/Makefile
723 tools/locktest/Makefile722 tools/locktest/Makefile
724 tools/nlmtest/Makefile723 tools/nlmtest/Makefile
diff --git a/debian/changelog b/debian/changelog
index ac87df3..252dbff 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,105 @@
1<<<<<<< debian/changelog
2=======
3nfs-utils (1:2.6.3-3ubuntu1) mantic; urgency=medium
4
5 * Merge with Debian unstable. Remaining changes:
6 - d/control: don't provide libnfsidmap2 in libnfsidmap1. This
7 package contains not only plugins, but an actual shared library,
8 with a different soname.
9 - Update README file:
10 + d/README.Ubuntu: new /etc/nfs.conf config structure
11 + d/libnfsidmap1.docs, d/nfs-common.docs: install README.Ubuntu
12 - New apport hook (LP #1961058):
13 + d/source.apport: apport hook for nfs-utils
14 + d/control: build-depend dh-apport
15 + d/rules: build with apport, and install the hook in the
16 nfs-common package which is installed on both client and servers
17 - Add more DEP8 tests (LP #1960828):
18 + d/t/{control,kerberos-mount,util}: test NFSv4 krb5p mounts
19 + d/t/{control, v3-mount}: specific NFSv3 mount test
20 - Move the regex module to a separate binary package libnfsidmap-regex
21 (LP #1974067):
22 + d/control: new package, adjust breaks/conflicts
23 + d/libnfsidmap-regex.install: install the plugin file
24 + d/libnfsidmap1.install: don't install regex.so
25 + d/p/ubuntu-idmapd-manpage-update-regex-other-package.patch:
26 note that the regex plugin is in another package
27 - rpc.svcgssd fixes and improvements (LP #1977745):
28 + d/p/nfs-conf-manpage-missing-svcgssd-options.patch: also
29 document the missing svcgssd options to the nfs.conf(5) manpage
30 - d/not-installed: mark files we knowingly don't include in the
31 packaging
32 * Dropped changes:
33 - Rely on the generator units for the rpc_pipefs mount (LP #1971935):
34 + d/p/always-run-generator.patch: run the generator even if the
35 config differs from the built-in default
36 + d/rules: exclude the units we will let the generator produce
37 [Fixed in 1:2.6.3-1]
38
39 -- Vladimir Petko <vladimir.petko@canonical.com> Tue, 08 Aug 2023 09:54:52 +1200
40
41nfs-utils (1:2.6.3-3) unstable; urgency=medium
42
43 * nfs-idmapd.service: add network-online.target to Wants= and After=
44 (Closes: #1035840)
45 * libnfsidmap: try to get the domain directly from hostname if the DNS
46 lookup fails and always show the log message if the domain can't be
47 determined
48
49 -- Salvatore Bonaccorso <carnil@debian.org> Tue, 01 Aug 2023 15:10:41 +0200
50
51nfs-utils (1:2.6.3-2) unstable; urgency=medium
52
53 * fsidd: provide better default socket name. (Closes: #1041147)
54 * nfs-kernel-server: Handle leftover /fsid.sock socket
55
56 -- Salvatore Bonaccorso <carnil@debian.org> Mon, 24 Jul 2023 11:01:42 +0200
57
58nfs-utils (1:2.6.3-1) unstable; urgency=medium
59
60 [ Andreas Hasenack ]
61 * Rely on the generator units for the rpc_pipefs mount (Closes: #1014429)
62 - d/p/always-run-generator.patch: run the generator even if the config
63 differs from the built-in default
64 - d/rules: exclude the units we will let the generator produce
65
66 [ Ben Hutchings ]
67 * Remove obsolete postinst upgrade logic and nfsconvert.py
68 * init: Remove support for setting command-line options in /etc/default
69 * d/salsa-ci.yml: Add shellcheck job
70 * start-statd: Fix shellcheck warnings
71 * init: Fix shellcheck warnings and info, thanks to наб (Closes: #1017869)
72 * d/*.bug-script: Fix redundant use of cat noted by shellcheck
73
74 [ Salvatore Bonaccorso ]
75 * Upload to unstable
76
77 -- Salvatore Bonaccorso <carnil@debian.org> Sun, 09 Jul 2023 10:34:04 +0200
78
79nfs-utils (1:2.6.3-1~exp1) experimental; urgency=medium
80
81 [ Ben Hutchings ]
82 * d/control: Remove obsolete dependencies on lsb-base
83
84 [ Salvatore Bonaccorso ]
85 * New upstream version 2.6.3
86 * nfs-kernel-server: export: Add fsidd
87 * nfs-kernel-server: Add fsid systemd service file
88 * debian/rules: Replace call to dpkg-architecture with Makefile snippet
89 include
90 * nfs-common: lintian-overrides: Adapt overrides to new format
91 * nfs-kernel-server: lintian-overrides: Adapt overrides to new format
92
93 [ наб ]
94 * d/nfs-common.bug-script: fix stray \ warnings
95 * d/nfs-kernel-server.bug-script: fix stray \ warnings
96
97 [ Debian Janitor ]
98 * Apply multi-arch hints: libnfsidmap-dev: Add Multi-Arch: same
99
100 -- Salvatore Bonaccorso <carnil@debian.org> Sun, 23 Apr 2023 18:08:07 +0200
101
102>>>>>>> debian/changelog
1nfs-utils (1:2.6.2-4ubuntu1) lunar; urgency=medium103nfs-utils (1:2.6.2-4ubuntu1) lunar; urgency=medium
2104
3 * Merge with Debian unstable. Remaining changes:105 * Merge with Debian unstable. Remaining changes:
diff --git a/debian/control b/debian/control
index e268002..e6a18e4 100644
--- a/debian/control
+++ b/debian/control
@@ -12,7 +12,7 @@ Vcs-Browser: https://salsa.debian.org/kernel-team/nfs-utils
1212
13Package: nfs-kernel-server13Package: nfs-kernel-server
14Architecture: any14Architecture: any
15Depends: ${shlibs:Depends}, ${misc:Depends}, nfs-common (= ${binary:Version}), ucf, netbase, lsb-base, keyutils15Depends: ${shlibs:Depends}, ${misc:Depends}, nfs-common (= ${binary:Version}), ucf, netbase, keyutils
16Provides: knfs, nfs-server16Provides: knfs, nfs-server
17Conflicts: knfs, nfs-server17Conflicts: knfs, nfs-server
18Replaces: knfs, nfs-server18Replaces: knfs, nfs-server
@@ -34,7 +34,7 @@ Description: support for NFS kernel server
34Package: nfs-common34Package: nfs-common
35Architecture: any35Architecture: any
36Pre-Depends: ${misc:Pre-Depends}36Pre-Depends: ${misc:Pre-Depends}
37Depends: ${shlibs:Depends}, ${misc:Depends}, libnfsidmap1 (= ${binary:Version}), rpcbind, adduser, ucf, lsb-base, keyutils, python337Depends: ${shlibs:Depends}, ${misc:Depends}, libnfsidmap1 (= ${binary:Version}), rpcbind, adduser, ucf, keyutils, python3
38Suggests: open-iscsi, watchdog38Suggests: open-iscsi, watchdog
39Provides: nfs-client39Provides: nfs-client
40Conflicts: nfs-client40Conflicts: nfs-client
@@ -48,6 +48,7 @@ Package: libnfsidmap-dev
48Section: libdevel48Section: libdevel
49Architecture: any49Architecture: any
50Depends: libnfsidmap1 (= ${binary:Version}), ${misc:Depends}50Depends: libnfsidmap1 (= ${binary:Version}), ${misc:Depends}
51Multi-Arch: same
51Description: header files and docs for libnfsidmap52Description: header files and docs for libnfsidmap
52 Contains the header files and documentation for libnfsidmap53 Contains the header files and documentation for libnfsidmap
53 for use in developing applications that use the libnfsidmap library.54 for use in developing applications that use the libnfsidmap library.
diff --git a/debian/copyright b/debian/copyright
index f286135..6e68099 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -87,4 +87,3 @@ Copyright Notices
87 Copyright (C) 2007 Chuck Lever <chuck.lever@oracle.com>87 Copyright (C) 2007 Chuck Lever <chuck.lever@oracle.com>
88 Copyright (C) 2007 Oracle. All rights reserved.88 Copyright (C) 2007 Oracle. All rights reserved.
89 Copyright (C) 2008 Oracle Corporation. All rights reserved.89 Copyright (C) 2008 Oracle Corporation. All rights reserved.
90 Copyright 2018, 2019 Red Hat, Inc.
diff --git a/debian/nfs-common.bug-script b/debian/nfs-common.bug-script
index 9b3dc0c..ae348bd 100644
--- a/debian/nfs-common.bug-script
+++ b/debian/nfs-common.bug-script
@@ -9,23 +9,23 @@ echo '-- rpcinfo --' >&3
9/usr/sbin/rpcinfo -p >&39/usr/sbin/rpcinfo -p >&3
1010
11echo '-- /etc/default/nfs-common --' >&311echo '-- /etc/default/nfs-common --' >&3
12cat /etc/default/nfs-common|grep_no_match_ok -v -e '^\#' -e '^$' >&312grep_no_match_ok -v -e '^#' -e '^$' /etc/default/nfs-common >&3
1313
14echo '-- /etc/nfs.conf --' >&314echo '-- /etc/nfs.conf --' >&3
15cat /etc/nfs.conf|grep_no_match_ok -v -e '^\#' -e '^$' >&315grep_no_match_ok -v -e '^#' -e '^$' /etc/nfs.conf >&3
1616
17if [ -d /etc/nfs.conf.d ]; then17if [ -d /etc/nfs.conf.d ]; then
18 for f in /etc/nfs.conf.d/*.conf; do18 for f in /etc/nfs.conf.d/*.conf; do
19 echo "-- $f --" >&319 echo "-- $f --" >&3
20 cat "$f" | grep_no_match_ok -v -e '^\#' -e '^$' >&320 grep_no_match_ok -v -e '^#' -e '^$' "$f" >&3
21 done21 done
22fi22fi
2323
24echo '-- /etc/idmapd.conf --' >&324echo '-- /etc/idmapd.conf --' >&3
25cat /etc/idmapd.conf|grep_no_match_ok -v -e '^\#' -e '^$' >&325grep_no_match_ok -v -e '^#' -e '^$' /etc/idmapd.conf >&3
2626
27echo '-- /etc/fstab --' >&327echo '-- /etc/fstab --' >&3
28cat /etc/fstab|grep_no_match_ok nfs >&328grep_no_match_ok nfs /etc/fstab >&3
2929
30echo '-- /proc/mounts --' >&330echo '-- /proc/mounts --' >&3
31cat /proc/mounts|grep_no_match_ok nfs >&331grep_no_match_ok nfs /proc/mounts >&3
diff --git a/debian/nfs-common.default b/debian/nfs-common.default
index 0e373e6..7256fb2 100644
--- a/debian/nfs-common.default
+++ b/debian/nfs-common.default
@@ -5,13 +5,6 @@
5# Do you want to start the statd daemon? It is not needed for NFSv4.5# Do you want to start the statd daemon? It is not needed for NFSv4.
6NEED_STATD=6NEED_STATD=
77
8# Options for rpc.statd.
9# Should rpc.statd listen on a specific port? This is especially useful
10# when you have a port-based firewall. To use a fixed port, set this
11# this variable to a statd argument like: "--port 4000 --outgoing-port 4001".
12# For more information, see rpc.statd(8) or http://wiki.debian.org/SecuringNFS
13STATDOPTS=
14
15# Do you want to start the idmapd daemon? It is only needed for NFSv4.8# Do you want to start the idmapd daemon? It is only needed for NFSv4.
16NEED_IDMAPD=9NEED_IDMAPD=
1710
diff --git a/debian/nfs-common.init b/debian/nfs-common.init
index 052de51..6480ba9 100644
--- a/debian/nfs-common.init
+++ b/debian/nfs-common.init
@@ -20,7 +20,6 @@ DEFAULTFILE=/etc/default/nfs-common
20NEED_STATD=20NEED_STATD=
21NEED_GSSD=21NEED_GSSD=
22PIPEFS_MOUNTPOINT=/run/rpc_pipefs22PIPEFS_MOUNTPOINT=/run/rpc_pipefs
23RPCGSSDOPTS=
24if [ -f $DEFAULTFILE ]; then23if [ -f $DEFAULTFILE ]; then
25 . $DEFAULTFILE24 . $DEFAULTFILE
26fi25fi
@@ -40,7 +39,7 @@ AUTO_NEED_GSSD=no
40if [ -f /etc/fstab ]; then39if [ -f /etc/fstab ]; then
41 exec 9<&0 </etc/fstab40 exec 9<&0 </etc/fstab
4241
43 while read DEV MTPT FSTYPE OPTS REST42 while read -r DEV _ _ OPTS _
44 do43 do
45 case $DEV in44 case $DEV in
46 ''|\#*)45 ''|\#*)
@@ -87,7 +86,7 @@ case "$NEED_GSSD" in
87esac86esac
8887
89do_modprobe() {88do_modprobe() {
90 if [ -x /sbin/modprobe -a -f /proc/modules ]89 if [ -x /sbin/modprobe ] && [ -f /proc/modules ]
91 then90 then
92 modprobe -q "$1" || true91 modprobe -q "$1" || true
93 fi92 fi
@@ -134,7 +133,7 @@ case "$1" in
134 fi133 fi
135 start-stop-daemon --start --oknodo --quiet \134 start-stop-daemon --start --oknodo --quiet \
136 --pidfile /run/rpc.statd.pid \135 --pidfile /run/rpc.statd.pid \
137 --exec /sbin/rpc.statd -- $STATDOPTS136 --exec /sbin/rpc.statd
138 RET=$?137 RET=$?
139 if [ $RET != 0 ]; then138 if [ $RET != 0 ]; then
140 log_end_msg $RET139 log_end_msg $RET
@@ -184,7 +183,7 @@ case "$1" in
184 fi183 fi
185184
186 start-stop-daemon --start --oknodo --quiet \185 start-stop-daemon --start --oknodo --quiet \
187 --exec /usr/sbin/rpc.gssd -- $RPCGSSDOPTS186 --exec /usr/sbin/rpc.gssd
188 RET=$?187 RET=$?
189 if [ $RET != 0 ]; then188 if [ $RET != 0 ]; then
190 log_end_msg $RET189 log_end_msg $RET
diff --git a/debian/nfs-common.install b/debian/nfs-common.install
index 5ebdf64..8604c0c 100644
--- a/debian/nfs-common.install
+++ b/debian/nfs-common.install
@@ -29,6 +29,5 @@ debian/tmp/lib/systemd/system/nfs-idmapd.service
29debian/tmp/lib/systemd/system/nfs-client.target29debian/tmp/lib/systemd/system/nfs-client.target
30debian/tmp/lib/systemd/system/nfs-utils.service30debian/tmp/lib/systemd/system/nfs-utils.service
31debian/tmp/usr/sbin/nfsconf31debian/tmp/usr/sbin/nfsconf
32debian/nfsconvert.py usr/share/nfs-common/
33debian/tmp/usr/lib/udev/rules.d/99-nfs.rules32debian/tmp/usr/lib/udev/rules.d/99-nfs.rules
34debian/tmp/usr/libexec/nfsrahead33debian/tmp/usr/libexec/nfsrahead
diff --git a/debian/nfs-common.lintian-overrides b/debian/nfs-common.lintian-overrides
index 0a7fafc..b26b930 100644
--- a/debian/nfs-common.lintian-overrides
+++ b/debian/nfs-common.lintian-overrides
@@ -1,6 +1,6 @@
1nfs-common: file-missing-in-md5sums var/lib/nfs/state1nfs-common: file-missing-in-md5sums var/lib/nfs/state [md5sums]
2nfs-common: elevated-privileges 4755 root/root [sbin/mount.nfs]2nfs-common: elevated-privileges 4755 root/root [sbin/mount.nfs]
3# The mount.nfs and umount.nfs manual pages also cover these, but3# The mount.nfs and umount.nfs manual pages also cover these, but
4# lintian doesn't notice that4# lintian doesn't notice that
5nfs-common: no-manual-page sbin/mount.nfs45nfs-common: no-manual-page [sbin/mount.nfs4]
6nfs-common: no-manual-page sbin/umount.nfs46nfs-common: no-manual-page [sbin/umount.nfs4]
diff --git a/debian/nfs-common.postinst b/debian/nfs-common.postinst
index 325f006..d0ffe74 100644
--- a/debian/nfs-common.postinst
+++ b/debian/nfs-common.postinst
@@ -12,34 +12,11 @@ case "$1" in
12 adduser --system --home /var/lib/nfs --no-create-home statd12 adduser --system --home /var/lib/nfs --no-create-home statd
13 fi13 fi
1414
15 # Don't make /var/lib/nfs owned by statd. Only sm and sm.bak need to be
16 # accessible by statd or sm-notify after they drop privileges.
17 # https://bugs.debian.org/940848 (CVE-2019-3689)
18 if dpkg --compare-versions "$2" lt 1:1.3.4-3; then
19 chown root:root /var/lib/nfs
20 fi
21 chown statd: /var/lib/nfs/sm \15 chown statd: /var/lib/nfs/sm \
22 /var/lib/nfs/sm.bak16 /var/lib/nfs/sm.bak
23 if [ -f /var/lib/nfs/state ]; then17 if [ -f /var/lib/nfs/state ]; then
24 chown statd /var/lib/nfs/state18 chown statd /var/lib/nfs/state
25 fi19 fi
26
27 # Convert default files to /etc/nfs.conf.d/local.conf if they
28 # have been modified
29 if dpkg --compare-versions "$2" lt 1:2.6.1-1~exp2 &&
30 ! md5sum --status --ignore-missing -c <<EOF
31ddcb1fbb90a14ff9850f22eed0127a10 /etc/default/nfs-common
32fa4e0530df26499ca3940353fbfbf241 /etc/default/nfs-kernel-server
33EOF
34 then
35 mkdir -p /etc/nfs.conf.d
36 /usr/share/nfs-common/nfsconvert.py
37 fi
38
39 # Remove obsolete symlinks for sysvinit runlevels 2-5
40 if dpkg --compare-versions "$2" lt 1:2.6.1-2~; then
41 update-rc.d -f nfs-common remove
42 fi
43 ;;20 ;;
44esac21esac
4522
diff --git a/debian/nfs-kernel-server.bug-script b/debian/nfs-kernel-server.bug-script
index 5ad593f..50e1350 100644
--- a/debian/nfs-kernel-server.bug-script
+++ b/debian/nfs-kernel-server.bug-script
@@ -9,20 +9,20 @@ echo '-- rpcinfo --' >&3
9/usr/sbin/rpcinfo -p >&39/usr/sbin/rpcinfo -p >&3
1010
11echo '-- /etc/default/nfs-kernel-server --' >&311echo '-- /etc/default/nfs-kernel-server --' >&3
12cat /etc/default/nfs-kernel-server|grep_no_match_ok -v -e '\#' -e '^$' >&312grep_no_match_ok -v -e '#' -e '^$' /etc/default/nfs-kernel-server >&3
1313
14echo '-- /etc/nfs.conf --' >&314echo '-- /etc/nfs.conf --' >&3
15cat /etc/nfs.conf|grep_no_match_ok -v -e '^\#' -e '^$' >&315grep_no_match_ok -v -e '^#' -e '^$' /etc/nfs.conf >&3
1616
17if [ -d /etc/nfs.conf.d ]; then17if [ -d /etc/nfs.conf.d ]; then
18 for f in /etc/nfs.conf.d/*.conf; do18 for f in /etc/nfs.conf.d/*.conf; do
19 echo "-- $f --" >&319 echo "-- $f --" >&3
20 cat "$f" | grep_no_match_ok -v -e '^\#' -e '^$' >&320 grep_no_match_ok -v -e '^#' -e '^$' "$f" >&3
21 done21 done
22fi22fi
2323
24echo '-- /etc/exports --' >&324echo '-- /etc/exports --' >&3
25cat /etc/exports|grep_no_match_ok -v -e '^\#' -e '^$' >&325grep_no_match_ok -v -e '^#' -e '^$' /etc/exports >&3
2626
27echo '-- /proc/fs/nfs/exports --' >&327echo '-- /proc/fs/nfs/exports --' >&3
28cat /proc/fs/nfs/exports >&328cat /proc/fs/nfs/exports >&3
diff --git a/debian/nfs-kernel-server.default b/debian/nfs-kernel-server.default
index 7137dae..a747a28 100644
--- a/debian/nfs-kernel-server.default
+++ b/debian/nfs-kernel-server.default
@@ -1,19 +1,6 @@
1# Number of servers to start up
2RPCNFSDCOUNT=8
3
4# Runtime priority of server (see nice(1))1# Runtime priority of server (see nice(1))
5RPCNFSDPRIORITY=02RPCNFSDPRIORITY=0
63
7# Options for rpc.mountd.
8# If you have a port-based firewall, you might want to set up
9# a fixed port here using the --port option. For more information,
10# see rpc.mountd(8) or http://wiki.debian.org/SecuringNFS
11# To disable NFSv4 on the server, specify '--no-nfs-version 4' here
12RPCMOUNTDOPTS="--manage-gids"
13
14# Do you want to start the svcgssd daemon? It is only required for Kerberos4# Do you want to start the svcgssd daemon? It is only required for Kerberos
15# exports. Valid alternatives are "yes" and "no"; the default is "no".5# exports. Valid alternatives are "yes" and "no"; the default is "no".
16NEED_SVCGSSD=""6NEED_SVCGSSD=""
17
18# Options for rpc.svcgssd.
19RPCSVCGSSDOPTS=""
diff --git a/debian/nfs-kernel-server.init b/debian/nfs-kernel-server.init
index 88ee869..a8d4525 100644
--- a/debian/nfs-kernel-server.init
+++ b/debian/nfs-kernel-server.init
@@ -25,11 +25,8 @@ PREFIX=/usr
2525
26# Read config26# Read config
27DEFAULTFILE=/etc/default/nfs-kernel-server27DEFAULTFILE=/etc/default/nfs-kernel-server
28RPCNFSDCOUNT=8
29RPCNFSDPRIORITY=028RPCNFSDPRIORITY=0
30RPCMOUNTDOPTS=
31NEED_SVCGSSD=no29NEED_SVCGSSD=no
32RPCSVCGSSDOPTS=
33PROCNFSD_MOUNTPOINT=/proc/fs/nfsd30PROCNFSD_MOUNTPOINT=/proc/fs/nfsd
34if [ -f $DEFAULTFILE ]; then31if [ -f $DEFAULTFILE ]; then
35 . $DEFAULTFILE32 . $DEFAULTFILE
@@ -38,7 +35,7 @@ fi
38. /lib/lsb/init-functions35. /lib/lsb/init-functions
3936
40do_modprobe() {37do_modprobe() {
41 if [ -x /sbin/modprobe -a -f /proc/modules ]38 if [ -x /sbin/modprobe ] && [ -f /proc/modules ]
42 then39 then
43 modprobe -q "$1" || true40 modprobe -q "$1" || true
44 fi41 fi
@@ -66,6 +63,7 @@ case "$1" in
66 export_files="$export_files $file"63 export_files="$export_files $file"
67 fi64 fi
68 done65 done
66 # shellcheck disable=SC2086
69 if [ -f /etc/exports ] && grep -q '^[[:space:]]*[^#]*/' $export_files67 if [ -f /etc/exports ] && grep -q '^[[:space:]]*[^#]*/' $export_files
70 then68 then
71 do_modprobe nfsd69 do_modprobe nfsd
@@ -100,7 +98,7 @@ case "$1" in
10098
101 start-stop-daemon --start --oknodo --quiet \99 start-stop-daemon --start --oknodo --quiet \
102 --nicelevel $RPCNFSDPRIORITY \100 --nicelevel $RPCNFSDPRIORITY \
103 --exec $PREFIX/sbin/rpc.nfsd -- $RPCNFSDCOUNT101 --exec $PREFIX/sbin/rpc.nfsd
104 RET=$?102 RET=$?
105 if [ $RET != 0 ]; then103 if [ $RET != 0 ]; then
106 log_end_msg $RET104 log_end_msg $RET
@@ -111,7 +109,7 @@ case "$1" in
111 ClearAddr=109 ClearAddr=
112 if [ -f /proc/net/rpc/auth.unix.ip/channel ]110 if [ -f /proc/net/rpc/auth.unix.ip/channel ]
113 then111 then
114 fgrep -qs 127.0.0.1 /proc/net/rpc/auth.unix.ip/content || {112 grep -Fqs 127.0.0.1 /proc/net/rpc/auth.unix.ip/content || {
115 echo "nfsd 127.0.0.1 2147483647 localhost" >/proc/net/rpc/auth.unix.ip/channel113 echo "nfsd 127.0.0.1 2147483647 localhost" >/proc/net/rpc/auth.unix.ip/channel
116 ClearAddr=yes114 ClearAddr=yes
117 }115 }
@@ -123,7 +121,7 @@ case "$1" in
123 do_modprobe rpcsec_gss_krb5121 do_modprobe rpcsec_gss_krb5
124 log_progress_msg "svcgssd"122 log_progress_msg "svcgssd"
125 start-stop-daemon --start --oknodo --quiet \123 start-stop-daemon --start --oknodo --quiet \
126 --exec $PREFIX/sbin/rpc.svcgssd -- $RPCSVCGSSDOPTS124 --exec $PREFIX/sbin/rpc.svcgssd
127 RET=$?125 RET=$?
128 if [ $RET != 0 ]; then126 if [ $RET != 0 ]; then
129 log_end_msg $RET127 log_end_msg $RET
@@ -133,7 +131,7 @@ case "$1" in
133131
134 log_progress_msg "mountd"132 log_progress_msg "mountd"
135 start-stop-daemon --start --oknodo --quiet \133 start-stop-daemon --start --oknodo --quiet \
136 --exec $PREFIX/sbin/rpc.mountd -- $RPCMOUNTDOPTS134 --exec $PREFIX/sbin/rpc.mountd
137 RET=$?135 RET=$?
138 if [ $RET != 0 ]; then136 if [ $RET != 0 ]; then
139 log_end_msg $RET137 log_end_msg $RET
diff --git a/debian/nfs-kernel-server.install b/debian/nfs-kernel-server.install
index 955f74c..72fa1f8 100644
--- a/debian/nfs-kernel-server.install
+++ b/debian/nfs-kernel-server.install
@@ -1,5 +1,6 @@
1debian/tmp/usr/sbin/exportfs1debian/tmp/usr/sbin/exportfs
2debian/tmp/sbin/nfsdcltrack2debian/tmp/sbin/nfsdcltrack
3debian/tmp/usr/sbin/fsidd
3debian/tmp/usr/sbin/nfsdcld4debian/tmp/usr/sbin/nfsdcld
4debian/tmp/usr/sbin/nfsdclddb5debian/tmp/usr/sbin/nfsdclddb
5debian/tmp/usr/sbin/nfsdclnts6debian/tmp/usr/sbin/nfsdclnts
@@ -9,6 +10,7 @@ debian/tmp/var/lib/nfs/etab
9debian/tmp/var/lib/nfs/rmtab10debian/tmp/var/lib/nfs/rmtab
10debian/nfs-kernel-server.default /usr/share/nfs-kernel-server/conffiles/11debian/nfs-kernel-server.default /usr/share/nfs-kernel-server/conffiles/
11debian/etc.exports /usr/share/nfs-kernel-server/conffiles/12debian/etc.exports /usr/share/nfs-kernel-server/conffiles/
13debian/tmp/lib/systemd/system/fsidd.service
12debian/tmp/lib/systemd/system/nfs-blkmap.service14debian/tmp/lib/systemd/system/nfs-blkmap.service
13debian/tmp/lib/systemd/system/nfs-mountd.service15debian/tmp/lib/systemd/system/nfs-mountd.service
14debian/tmp/lib/systemd/system/nfs-server.service16debian/tmp/lib/systemd/system/nfs-server.service
diff --git a/debian/nfs-kernel-server.lintian-overrides b/debian/nfs-kernel-server.lintian-overrides
index 31c0167..10c1eef 100644
--- a/debian/nfs-kernel-server.lintian-overrides
+++ b/debian/nfs-kernel-server.lintian-overrides
@@ -1,2 +1,2 @@
1nfs-kernel-server: file-missing-in-md5sums var/lib/nfs/rmtab1nfs-kernel-server: file-missing-in-md5sums var/lib/nfs/rmtab [md5sums]
2nfs-kernel-server: file-missing-in-md5sums var/lib/nfs/etab2nfs-kernel-server: file-missing-in-md5sums var/lib/nfs/etab [md5sums]
diff --git a/debian/nfs-kernel-server.postinst b/debian/nfs-kernel-server.postinst
index 11a0d72..f0cdc44 100644
--- a/debian/nfs-kernel-server.postinst
+++ b/debian/nfs-kernel-server.postinst
@@ -14,13 +14,14 @@ case "$1" in
14 [ -e $f ] || touch $f14 [ -e $f ] || touch $f
15 done15 done
1616
17 # Since upstream version 2.1.1 use of /var/lib/nfs/xtab
18 # has been removed and nfs-utils stops creating the file
19 if dpkg --compare-versions "$2" lt 1:2.1.1; then
20 rm -f /var/lib/nfs/xtab
21 fi
22
23 update-rc.d nfs-kernel-server defaults 20 80 >/dev/null17 update-rc.d nfs-kernel-server defaults 20 80 >/dev/null
18
19 # Remove leftover /fsid.sock file on upgrade (Cf. #1041147)
20 if dpkg --compare-versions "$2" lt 1:2.6.3-2~; then
21 if [ -S /fsid.sock ]; then
22 rm -f /fsid.sock
23 fi
24 fi
24 ;;25 ;;
25esac26esac
2627
diff --git a/debian/nfsconvert.py b/debian/nfsconvert.py
27deleted file mode 10075528deleted file mode 100755
index 8b48749..0000000
--- a/debian/nfsconvert.py
+++ /dev/null
@@ -1,294 +0,0 @@
1#!/usr/bin/env python3
2"""
3Read in the /etc/default/nfs-{common,kernel-server} files and
4set the corresponding values in nfs.conf
5"""
6
7from __future__ import print_function
8import sys
9import getopt
10import subprocess
11
12CONF_NFS = '/etc/nfs.conf.d/local.conf'
13CONF_TOOL = '/usr/sbin/nfsconf'
14
15# options for nfsd found in RPCNFSDOPTS
16OPTS_NFSD = 'dH:p:rR:N:V:stTuUG:L:'
17LONG_NFSD = ['debug', 'host=', 'port=', 'rdma=', 'nfs-version=', 'no-nfs-version=',
18 'tcp', 'no-tcp', 'udp', 'no-udp', 'grace-time=', 'lease-time=']
19CONV_NFSD = {'-d': (CONF_NFS, 'nfsd', 'debug', 'all'),
20 '-H': (CONF_NFS, 'nfsd', 'host', ','),
21 '-p': (CONF_NFS, 'nfsd', 'port', '$1'),
22 '-r': (CONF_NFS, 'nfsd', 'rdma', 'nfsrdma'),
23 '-R': (CONF_NFS, 'nfsd', 'rdma', '$1'),
24 '-N': (CONF_NFS, 'nfsd', 'vers$1', 'n'),
25 '-V': (CONF_NFS, 'nfsd', 'vers$1', 'y'),
26 '-t': (CONF_NFS, 'nfsd', 'tcp', '1'),
27 '-T': (CONF_NFS, 'nfsd', 'tcp', '0'),
28 '-u': (CONF_NFS, 'nfsd', 'udp', '1'),
29 '-U': (CONF_NFS, 'nfsd', 'udp', '0'),
30 '-G': (CONF_NFS, 'nfsd', 'grace-time', '$1'),
31 '-L': (CONF_NFS, 'nfsd', 'lease-time', '$1'),
32 '$1': (CONF_NFS, 'nfsd', 'threads', '$1'),
33 '--debug': (CONF_NFS, 'nfsd', 'debug', 'all'),
34 '--host': (CONF_NFS, 'nfsd', 'host', ','),
35 '--port': (CONF_NFS, 'nfsd', 'port', '$1'),
36 '--rdma': (CONF_NFS, 'nfsd', 'rdma', '$1'),
37 '--no-nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'n'),
38 '--nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'y'),
39 '--tcp': (CONF_NFS, 'nfsd', 'tcp', '1'),
40 '--no-tcp': (CONF_NFS, 'nfsd', 'tcp', '0'),
41 '--udp': (CONF_NFS, 'nfsd', 'udp', '1'),
42 '--no-udp': (CONF_NFS, 'nfsd', 'udp', '0'),
43 '--grace-time': (CONF_NFS, 'nfsd', 'grace-time', '$1'),
44 '--lease-time': (CONF_NFS, 'nfsd', 'lease-time', '$1'),
45 }
46
47# options for mountd found in RPCMOUNTDOPTS
48OPTS_MOUNTD = 'go:d:H:p:N:nrus:t:V:'
49LONG_MOUNTD = ['descriptors=', 'debug=', 'nfs-version=', 'no-nfs-version=',
50 'port=', 'no-tcp', 'ha-callout=', 'state-directory-path=',
51 'num-threads=', 'reverse-lookup', 'manage-gids', 'no-udp']
52
53CONV_MOUNTD = {'-g': (CONF_NFS, 'mountd', 'manage-gids', '1'),
54 '-o': (CONF_NFS, 'mountd', 'descriptors', '$1'),
55 '-d': (CONF_NFS, 'mountd', 'debug', '$1'),
56 '-H': (CONF_NFS, 'mountd', 'ha-callout', '$1'),
57 '-p': (CONF_NFS, 'mountd', 'port', '$1'),
58 '-N': (CONF_NFS, 'nfsd', 'vers$1', 'n'),
59 '-V': (CONF_NFS, 'nfsd', 'vers$1', 'y'),
60 '-n': (CONF_NFS, 'nfsd', 'tcp', '0'),
61 '-s': (CONF_NFS, 'mountd', 'stat-directory-path', '$1'),
62 '-t': (CONF_NFS, 'mountd', 'threads', '$1'),
63 '-r': (CONF_NFS, 'mountd', 'reverse-lookup', '1'),
64 '-u': (CONF_NFS, 'nfsd', 'udp', '0'),
65 '--manage-gids': (CONF_NFS, 'mountd', 'manage-gids', '1'),
66 '--descriptors': (CONF_NFS, 'mountd', 'descriptors', '$1'),
67 '--debug': (CONF_NFS, 'mountd', 'debug', '$1'),
68 '--ha-callout': (CONF_NFS, 'mountd', 'ha-callout', '$1'),
69 '--port': (CONF_NFS, 'mountd', 'port', '$1'),
70 '--nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'y'),
71 '--no-nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'n'),
72 '--no-tcp': (CONF_NFS, 'nfsd', 'tcp', '0'),
73 '--state-directory-path': (CONF_NFS, 'mountd', 'state-directory-path', '$1'),
74 '--num-threads': (CONF_NFS, 'mountd', 'threads', '$1'),
75 '--reverse-lookup': (CONF_NFS, 'mountd', 'reverse-lookup', '1'),
76 '--no-udp': (CONF_NFS, 'nfsd', 'udp', '0'),
77 }
78# We enable manage-gids by default. But if /etc/default/nfs-common
79# was modified then we need to set manage-gids = 0 unless we see
80# --manage-gids.
81INIT_MOUNTD = [(CONF_NFS, 'mountd', 'manage-gids', '0')]
82
83# options for statd found in STATDOPTS
84OPTS_STATD = 'o:p:T:U:n:P:H:'
85LONG_STATD = ['outgoing-port=', 'port=', 'name=', 'state-directory-path=',
86 'ha-callout=', 'nlm-port=', 'nlm-udp-port=']
87CONV_STATD = {'-o': (CONF_NFS, 'statd', 'outgoing-port', '$1'),
88 '-p': (CONF_NFS, 'statd', 'port', '$1'),
89 '-T': (CONF_NFS, 'lockd', 'port', '$1'),
90 '-U': (CONF_NFS, 'lockd', 'udp-port', '$1'),
91 '-n': (CONF_NFS, 'statd', 'name', '$1'),
92 '-P': (CONF_NFS, 'statd', 'state-directory-path', '$1'),
93 '-H': (CONF_NFS, 'statd', 'ha-callout', '$1'),
94 '--outgoing-port': (CONF_NFS, 'statd', 'outgoing-port', '$1'),
95 '--port': (CONF_NFS, 'statd', 'port', '$1'),
96 '--name': (CONF_NFS, 'statd', 'name', '$1'),
97 '--state-directory-path': (CONF_NFS, 'statd', 'state-directory-path', '$1'),
98 '--ha-callout': (CONF_NFS, 'statd', 'ha-callout', '$1'),
99 '--nlm-port': (CONF_NFS, 'lockd', 'port', '$1'),
100 '--nlm-udp-port': (CONF_NFS, 'lockd', 'udp-port', '$1'),
101 }
102
103# options for gssd found in RPCGSSDOPTS
104OPTS_GSSD = 'Mnvrp:k:d:t:T:R:lD'
105CONV_GSSD = {'-M': (CONF_NFS, 'gssd', 'use-memcache', '1'),
106 '-n': (CONF_NFS, 'gssd', 'root_uses_machine_creds', '0'),
107 '-v': (CONF_NFS, 'gssd', 'verbosity', '+'),
108 '-r': (CONF_NFS, 'gssd', 'rpc-verbosity', '+'),
109 '-p': (CONF_NFS, 'general', 'pipefs-directory', '$1'),
110 '-k': (CONF_NFS, 'gssd', 'keytab-file', '$1'),
111 '-d': (CONF_NFS, 'gssd', 'cred-cache-directory', '$1'),
112 '-t': (CONF_NFS, 'gssd', 'context-timeout', '$1'),
113 '-T': (CONF_NFS, 'gssd', 'rpc-timeout', '$1'),
114 '-R': (CONF_NFS, 'gssd', 'preferred-realm', '$1'),
115 '-l': (CONF_NFS, 'gssd', 'limit-to-legacy-enctypes', '0'),
116 '-D': (CONF_NFS, 'gssd', 'avoid-dns', '0'),
117 }
118
119# options for svcgssd found in RPCSVCGSSDOPTS
120OPTS_SVCGSSD = 'ivrnp:'
121CONV_SVCGSSD = {'-i': (CONF_NFS, 'svcgssd', 'idmap-verbosity', '+'),
122 '-v': (CONF_NFS, 'svcgssd', 'verbosity', '+'),
123 '-r': (CONF_NFS, 'svcgssd', 'rpc-verbosity', '+'),
124 '-n': (CONF_NFS, 'svcgssd', 'principal', 'system'),
125 '-p': (CONF_NFS, 'svcgssd', 'principal', '$1'),
126 }
127
128# meta list of all the getopt lists
129GETOPT_MAPS = [('RPCNFSDOPTS', OPTS_NFSD, LONG_NFSD, CONV_NFSD, []),
130 ('RPCMOUNTDOPTS', OPTS_MOUNTD, LONG_MOUNTD, CONV_MOUNTD, INIT_MOUNTD),
131 ('STATDOPTS', OPTS_STATD, LONG_STATD, CONV_STATD, []),
132 ('RPCGSSDOPTS', OPTS_GSSD, [], CONV_GSSD, []),
133 ('RPCSVCGSSDOPTS', OPTS_SVCGSSD, [], CONV_SVCGSSD, []),
134 ]
135
136# map for all of the single option values
137VALUE_MAPS = {'RPCNFSDCOUNT': (CONF_NFS, 'nfsd', 'threads', '$1'),
138 }
139
140def eprint(*args, **kwargs):
141 """ Print error to stderr """
142 print(*args, file=sys.stderr, **kwargs)
143
144def makesub(param, value):
145 """ Variable substitution """
146 return param.replace('$1', value)
147
148def set_value(value, entry):
149 """ Set a configuration value by running nfsconf tool"""
150 cfile, section, tag, param = entry
151
152 tag = makesub(tag, value)
153 param = makesub(param, value)
154 if param == '+':
155 param = value
156 if param == ',':
157 param = value
158 args = [CONF_TOOL, "--file", cfile, "--set", section, tag, param]
159
160 try:
161 subprocess.check_output(args, stderr=subprocess.STDOUT)
162 except subprocess.CalledProcessError as e:
163 print("Error running nfs-conf tool:\n %s" % (e.output.decode()))
164 print("Args: %s\n" % args)
165 raise Exception
166
167def convert_getopt(optname, options, optstring, longopts, conversions, init):
168 """ Parse option string into seperate config items
169
170 Take a getopt string and a table of conversions
171 parse it all and spit out the converted config
172
173 Keyword arguments:
174 options -- the argv string to convert
175 optstring -- getopt format option list
176 conversions -- table of translations
177 """
178 optcount = 0
179 try:
180 args = options.strip('\"').split()
181 optlist, optargs = getopt.gnu_getopt(args, optstring, longopts=longopts)
182 except getopt.GetoptError as err:
183 eprint(err)
184 raise Exception
185
186 for c in init:
187 set_value('', c)
188
189 setlist = {}
190 for (k, v) in optlist:
191 if k in conversions:
192 # it's already been set once
193 param = conversions[k][3]
194 tag = k + makesub(conversions[k][2], v)
195 if tag in setlist:
196 value = setlist[tag][0]
197 # is it a cummulative entry
198 if param == '+':
199 value = str(int(value) + 1)
200 if param == ',':
201 value += "," + v
202 else:
203 if param == '+':
204 value = "1"
205 elif param == ',':
206 value = v
207 else:
208 value = v
209 setlist[tag] = (value, conversions[k])
210 else:
211 if v:
212 eprint("Ignoring unrecognised option %s=%s in %s" % (k, v, optname))
213 else:
214 eprint("Ignoring unrecognised option %s in %s" % (k, optname))
215
216
217 for v, c in setlist.values():
218 try:
219 set_value(v, c)
220 optcount += 1
221 except Exception:
222 raise
223
224 i = 1
225 for o in optargs:
226 opname = '$' + str(i)
227 if opname in conversions:
228 try:
229 set_value(o, conversions[opname])
230 optcount += 1
231 except Exception:
232 raise
233 else:
234 eprint("Unrecognised trailing arguments")
235 raise Exception
236 i += 1
237
238 return optcount
239
240def load_old_config():
241 """ Load the old configuration
242
243 Since "default" files were always meant to be parsed by a
244 shell, run a shell script to read them and dump the values.
245 """
246 names = ([name for (name, _, _, _, _) in GETOPT_MAPS]
247 + list(VALUE_MAPS.keys()))
248 script = ''.join(
249 [f'{name}=\n' for name in names]
250 + [f'[ -r {file_name} ] && . {file_name} >/dev/null\n'
251 for file_name in ['/etc/default/nfs-common',
252 '/etc/default/nfs-kernel-server']]
253 + [f'printf \'{name}=%s\\n\' "${name}"\n' for name in names])
254 config = {}
255 with subprocess.Popen(script, shell=True,
256 stdout=subprocess.PIPE, text=True) as proc:
257 for line in proc.stdout:
258 name, value = line.rstrip('\n').split('=', 1)
259 config[name] = value
260 return config
261
262def map_values():
263 """ Main function """
264 mapcount = 0
265
266 config = load_old_config()
267
268 # Map all the getopt option lists
269 for (name, opts, lopts, conv, init) in GETOPT_MAPS:
270 if name in config:
271 try:
272 mapcount += convert_getopt(name, config[name], opts,
273 lopts, conv, init)
274 except Exception:
275 eprint("Error whilst converting %s to nfsconf options." % (name))
276 raise
277
278 # Map the single value options
279 for name, opts in VALUE_MAPS.items():
280 if name in config:
281 try:
282 value = config[name]
283 set_value(value.strip('\"'), opts)
284 mapcount += 1
285 except Exception:
286 raise
287
288# Main routine
289try:
290 map_values()
291except Exception as e:
292 eprint(e)
293 eprint("Conversion failed. Please correct the error and try again.")
294 sys.exit(1)
diff --git a/debian/patches/Revert-configure-make-modprobe.d-directory-configura.patch b/debian/patches/Revert-configure-make-modprobe.d-directory-configura.patch
295deleted file mode 1006440deleted file mode 100644
index 9df4dd5..0000000
--- a/debian/patches/Revert-configure-make-modprobe.d-directory-configura.patch
+++ /dev/null
@@ -1,61 +0,0 @@
1From 89ea291577cf3b01ec20883c9d0a8a3c8c68d9b2 Mon Sep 17 00:00:00 2001
2From: Salvatore Bonaccorso <carnil@debian.org>
3Date: Mon, 5 Dec 2022 15:28:25 -0500
4Subject: [PATCH 1/4] Revert "configure: make modprobe.d directory configurable"
5
6This reverts commit 7d76dd2e6f09a141eb6303b7343baa5c4f9c85ad.
7
8This is part of the full revert of adding support via modprobe.d
9configuration to set sysctl settings of NFS-related modules when loading
10the modules.
11
12The approach caused problems with sysctl from busybox and with kmod as
13reported in Debian (https://bugs.debian.org/1024082).
14
15Signed-off-by: Salvatore Bonaccorso <carnil@debian.org>
16Signed-off-by: Steve Dickson <steved@redhat.com>
17---
18 configure.ac | 12 ------------
19 systemd/Makefile.am | 6 ++----
20 2 files changed, 2 insertions(+), 16 deletions(-)
21
22diff --git a/configure.ac b/configure.ac
23index 5d9cbf317453..4280cc770a45 100644
24--- a/configure.ac
25+++ b/configure.ac
26@@ -71,18 +71,6 @@ AC_ARG_WITH(systemd,
27 AM_CONDITIONAL(INSTALL_SYSTEMD, [test "$use_systemd" = 1])
28 AC_SUBST(unitdir)
29
30-modprobedir=/usr/lib/modprobe.d
31-AC_ARG_WITH(modprobedir,
32- [AS_HELP_STRING([--with-modprobedir@<:@=modprobe-dir-path@:>@],[install modprobe config files @<:@Default: /usr/lib/modprobe.d@:>@])],
33- if test "$withval" != "no" ; then
34- modprobedir=$withval
35- else
36- modprobedir=
37- fi
38- )
39- AM_CONDITIONAL(INSTALL_MODPROBEDIR, [test -n "$modprobedir"])
40- AC_SUBST(modprobedir)
41-
42 AC_ARG_ENABLE(nfsv4,
43 [AS_HELP_STRING([--disable-nfsv4],[disable support for NFSv4 @<:@default=no@:>@])],
44 enable_nfsv4=$enableval,
45diff --git a/systemd/Makefile.am b/systemd/Makefile.am
46index 7b5ab84bd793..63a50bf2c07e 100644
47--- a/systemd/Makefile.am
48+++ b/systemd/Makefile.am
49@@ -82,7 +82,5 @@ install-data-hook: $(unit_files) $(modprobe_files)
50 else
51 install-data-hook: $(modprobe_files)
52 endif
53-if INSTALL_MODPROBEDIR
54- mkdir -p $(DESTDIR)$(modprobedir)
55- cp $(modprobe_files) $(DESTDIR)$(modprobedir)
56-endif
57+ mkdir -p $(DESTDIR)/usr/lib/modprobe.d
58+ cp $(modprobe_files) $(DESTDIR)/usr/lib/modprobe.d/
59--
602.38.1
61
diff --git a/debian/patches/Revert-modprobe-protect-against-sysctl-errors.patch b/debian/patches/Revert-modprobe-protect-against-sysctl-errors.patch
62deleted file mode 1006440deleted file mode 100644
index cb9d368..0000000
--- a/debian/patches/Revert-modprobe-protect-against-sysctl-errors.patch
+++ /dev/null
@@ -1,49 +0,0 @@
1From 5bab9cbc9ff3d071f1e297d7bfff70f40ca9e78e Mon Sep 17 00:00:00 2001
2From: Salvatore Bonaccorso <carnil@debian.org>
3Date: Mon, 5 Dec 2022 15:30:55 -0500
4Subject: [PATCH 2/4] Revert "modprobe: protect against sysctl errors"
5
6This reverts commit 5e60e38aa4ba251ef66610514be5f45c41519e0f.
7
8This is part of the full revert of adding support via modprobe.d
9configuration to set sysctl settings of NFS-related modules when loading
10the modules.
11
12The approach caused problems with sysctl from busybox and with kmod as
13reported in Debian (https://bugs.debian.org/1024082).
14
15Signed-off-by: Salvatore Bonaccorso <carnil@debian.org>
16Signed-off-by: Steve Dickson <steved@redhat.com>
17---
18 systemd/50-nfs.conf | 10 +++++-----
19 1 file changed, 5 insertions(+), 5 deletions(-)
20
21diff --git a/systemd/50-nfs.conf b/systemd/50-nfs.conf
22index 19e8ee734c8e..b56b2d765969 100644
23--- a/systemd/50-nfs.conf
24+++ b/systemd/50-nfs.conf
25@@ -1,16 +1,16 @@
26 # Ensure all NFS systctl settings get applied when modules load
27
28 # sunrpc module supports "sunrpc.*" sysctls
29-install sunrpc /sbin/modprobe --ignore-install sunrpc $CMDLINE_OPTS && { /sbin/sysctl -q --pattern sunrpc --system; exit 0; }
30+install sunrpc /sbin/modprobe --ignore-install sunrpc $CMDLINE_OPTS && /sbin/sysctl -q --pattern sunrpc --system
31
32 # rpcrdma module supports sunrpc.svc_rdma.*
33-install rpcrdma /sbin/modprobe --ignore-install rpcrdma $CMDLINE_OPTS && { /sbin/sysctl -q --pattern sunrpc.svc_rdma --system; exit 0; }
34+install rpcrdma /sbin/modprobe --ignore-install rpcrdma $CMDLINE_OPTS && /sbin/sysctl -q --pattern sunrpc.svc_rdma --system
35
36 # lockd module supports "fs.nfs.nlm*" and "fs.nfs.nsm*" sysctls
37-install lockd /sbin/modprobe --ignore-install lockd $CMDLINE_OPTS && { /sbin/sysctl -q --pattern fs.nfs.n[sl]m --system; exit 0; }
38+install lockd /sbin/modprobe --ignore-install lockd $CMDLINE_OPTS && /sbin/sysctl -q --pattern fs.nfs.n[sl]m --system
39
40 # nfsv4 module supports "fs.nfs.*" sysctls (nfs_callback_tcpport and idmap_cache_timeout)
41-install nfsv4 /sbin/modprobe --ignore-install nfsv4 $CMDLINE_OPTS && { /sbin/sysctl -q --pattern 'fs.nfs.(nfs_callback_tcpport|idmap_cache_timeout)' --system; exit 0; }
42+install nfsv4 /sbin/modprobe --ignore-install nfsv4 $CMDLINE_OPTS && /sbin/sysctl -q --pattern 'fs.nfs.(nfs_callback_tcpport|idmap_cache_timeout)' --system
43
44 # nfs module supports "fs.nfs.*" sysctls
45-install nfs /sbin/modprobe --ignore-install nfs $CMDLINE_OPTS && { /sbin/sysctl -q --pattern fs.nfs --system; exit 0; }
46+install nfs /sbin/modprobe --ignore-install nfs $CMDLINE_OPTS && /sbin/sysctl -q --pattern fs.nfs --system
47--
482.38.1
49
diff --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
50deleted file mode 1006440deleted file mode 100644
index bc68df9..0000000
--- a/debian/patches/Revert-systemd-Apply-all-sysctl-settings-when-NFS-re.patch
+++ /dev/null
@@ -1,80 +0,0 @@
1From d8d29f851993f67c053d9712e92244b2f53c4f65 Mon Sep 17 00:00:00 2001
2From: Salvatore Bonaccorso <carnil@debian.org>
3Date: Mon, 5 Dec 2022 15:37:32 -0500
4Subject: [PATCH 3/4] Revert "systemd: Apply all sysctl settings when
5 NFS-related modules are loaded"
6
7This reverts commit afc7132dfb212ac1f676a5ac36d29a9e06325645.
8
9The approach caused problems with sysctl from busybox and with kmod as
10reported in Debian (https://bugs.debian.org/1024082).
11
12Signed-off-by: Salvatore Bonaccorso <carnil@debian.org>
13Signed-off-by: Steve Dickson <steved@redhat.com>
14---
15 systemd/50-nfs.conf | 16 ----------------
16 systemd/Makefile.am | 10 ++--------
17 2 files changed, 2 insertions(+), 24 deletions(-)
18 delete mode 100644 systemd/50-nfs.conf
19
20diff --git a/systemd/50-nfs.conf b/systemd/50-nfs.conf
21deleted file mode 100644
22index b56b2d765969..000000000000
23--- a/systemd/50-nfs.conf
24+++ /dev/null
25@@ -1,16 +0,0 @@
26-# Ensure all NFS systctl settings get applied when modules load
27-
28-# sunrpc module supports "sunrpc.*" sysctls
29-install sunrpc /sbin/modprobe --ignore-install sunrpc $CMDLINE_OPTS && /sbin/sysctl -q --pattern sunrpc --system
30-
31-# rpcrdma module supports sunrpc.svc_rdma.*
32-install rpcrdma /sbin/modprobe --ignore-install rpcrdma $CMDLINE_OPTS && /sbin/sysctl -q --pattern sunrpc.svc_rdma --system
33-
34-# lockd module supports "fs.nfs.nlm*" and "fs.nfs.nsm*" sysctls
35-install lockd /sbin/modprobe --ignore-install lockd $CMDLINE_OPTS && /sbin/sysctl -q --pattern fs.nfs.n[sl]m --system
36-
37-# nfsv4 module supports "fs.nfs.*" sysctls (nfs_callback_tcpport and idmap_cache_timeout)
38-install nfsv4 /sbin/modprobe --ignore-install nfsv4 $CMDLINE_OPTS && /sbin/sysctl -q --pattern 'fs.nfs.(nfs_callback_tcpport|idmap_cache_timeout)' --system
39-
40-# nfs module supports "fs.nfs.*" sysctls
41-install nfs /sbin/modprobe --ignore-install nfs $CMDLINE_OPTS && /sbin/sysctl -q --pattern fs.nfs --system
42diff --git a/systemd/Makefile.am b/systemd/Makefile.am
43index 63a50bf2c07e..e7f5d818a913 100644
44--- a/systemd/Makefile.am
45+++ b/systemd/Makefile.am
46@@ -2,8 +2,6 @@
47
48 MAINTAINERCLEANFILES = Makefile.in
49
50-modprobe_files = 50-nfs.conf
51-
52 unit_files = \
53 nfs-client.target \
54 rpc_pipefs.target \
55@@ -53,7 +51,7 @@ endif
56
57 man5_MANS = nfs.conf.man
58 man7_MANS = nfs.systemd.man
59-EXTRA_DIST = $(unit_files) $(modprobe_files) $(man5_MANS) $(man7_MANS)
60+EXTRA_DIST = $(unit_files) $(man5_MANS) $(man7_MANS)
61
62 generator_dir = $(unitdir)/../system-generators
63
64@@ -75,12 +73,8 @@ rpc_pipefs_generator_LDADD = ../support/nfs/libnfs.la
65
66 if INSTALL_SYSTEMD
67 genexec_PROGRAMS = nfs-server-generator rpc-pipefs-generator
68-install-data-hook: $(unit_files) $(modprobe_files)
69+install-data-hook: $(unit_files)
70 mkdir -p $(DESTDIR)/$(unitdir)
71 cp $(unit_files) $(DESTDIR)/$(unitdir)
72 cp $(rpc_pipefs_mount_file) $(DESTDIR)/$(unitdir)/$(rpc_pipefsmount)
73-else
74-install-data-hook: $(modprobe_files)
75 endif
76- mkdir -p $(DESTDIR)/usr/lib/modprobe.d
77- cp $(modprobe_files) $(DESTDIR)/usr/lib/modprobe.d/
78--
792.38.1
80
diff --git a/debian/patches/always-run-generator.patch b/debian/patches/always-run-generator.patch
index ba420c5..ed82672 100644
--- a/debian/patches/always-run-generator.patch
+++ b/debian/patches/always-run-generator.patch
@@ -3,8 +3,13 @@ Description: Always run the generator
3Author: Andreas Hasenack <andreas@canonical.com>3Author: Andreas Hasenack <andreas@canonical.com>
4Bug-Ubuntu: https://bugs.launchpad.net/bugs/19719354Bug-Ubuntu: https://bugs.launchpad.net/bugs/1971935
5Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=10144295Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1014429
6<<<<<<< debian/patches/always-run-generator.patch
6Forwarded: https://marc.info/?l=linux-nfs&m=165754514206399&w=47Forwarded: https://marc.info/?l=linux-nfs&m=165754514206399&w=4
7Last-Updated: 2022-07-128Last-Updated: 2022-07-12
9=======
10Forwarded: https://lore.kernel.org/linux-nfs/EE39279C-4E40-48C8-ABC9-707EB1AD6D79@redhat.com/
11Last-Update: 2022-07-12
12>>>>>>> debian/patches/always-run-generator.patch
8---13---
9This patch header follows DEP-3: http://dep.debian.net/deps/dep3/14This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
10diff --git a/systemd/rpc-pipefs-generator.c b/systemd/rpc-pipefs-generator.c15diff --git a/systemd/rpc-pipefs-generator.c b/systemd/rpc-pipefs-generator.c
diff --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
11deleted file mode 10064416deleted file mode 100644
index f9da1c6..0000000
--- a/debian/patches/auth-rpcgss-module.service-Don-t-fail-inside-linux-c.patch
+++ /dev/null
@@ -1,40 +0,0 @@
1From ca5b0e7e4d41d93483427390d6d5e031b0b7c6af Mon Sep 17 00:00:00 2001
2From: Joachim Falk <joachim.falk@gmx.de>
3Date: Mon, 5 Dec 2022 15:52:53 -0500
4Subject: [PATCH] auth-rpcgss-module.service: Don't fail inside linux
5 container.
6
7Only try to load the auth_rpcgss kernel module if we are not executing
8inside a Linux container. Otherwise, the auth-rpcgss-module service will
9fail inside a Linux container as the loading of kernel modules is
10forbidden for the container. Thus, the "/sbin/modprobe -q auth_rpcgss"
11call will fail even if the auth_rpcgss kernel module is already loaded.
12This situation occurs when the container host has already loaded the
13auth_rpcgss kernel module to enable kerberized NFS service for its
14containers. This behavior has been tested with kmod up to version
1530+20220630-3 (current in bookworm as of 2022-09-20).
16
17Bug-Debian: http://bugs.debian.org/985000
18Discussion-Debian: https://salsa.debian.org/kernel-team/nfs-utils/-/merge_requests/7
19
20Signed-off-by: Joachim Falk <joachim.falk@gmx.de>
21Signed-off-by: Steve Dickson <steved@redhat.com>
22---
23 systemd/auth-rpcgss-module.service | 1 +
24 1 file changed, 1 insertion(+)
25
26diff --git a/systemd/auth-rpcgss-module.service b/systemd/auth-rpcgss-module.service
27index 4548283377d0..25c9de8088fc 100644
28--- a/systemd/auth-rpcgss-module.service
29+++ b/systemd/auth-rpcgss-module.service
30@@ -10,6 +10,7 @@ DefaultDependencies=no
31 Before=gssproxy.service rpc-svcgssd.service rpc-gssd.service
32 Wants=gssproxy.service rpc-svcgssd.service rpc-gssd.service
33 ConditionPathExists=/etc/krb5.keytab
34+ConditionVirtualization=!container
35
36 [Service]
37 Type=oneshot
38--
392.38.1
40
diff --git a/debian/patches/blkmapd-fix-coredump-in-bl_add_disk.patch b/debian/patches/blkmapd-fix-coredump-in-bl_add_disk.patch
41deleted file mode 1006440deleted file mode 100644
index db3c216..0000000
--- a/debian/patches/blkmapd-fix-coredump-in-bl_add_disk.patch
+++ /dev/null
@@ -1,97 +0,0 @@
1From: Lixiaokeng <lixiaokeng@huawei.com>
2Date: Mon, 24 Oct 2022 13:00:50 -0400
3Subject: blkmapd: fix coredump in bl_add_disk
4Origin: https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=c1c35487aba2cec828d9b8a1be9043000beadea5
5Bug-Debian: https://bugs.debian.org/1022185
6
7The serial->data is not malloced separately (just part of
8the serial), so it can't be freed. The bl_serial has its
9own free function. Use it.
10
11Signed-off-by: Lixiaokeng <lixiaokeng@huawei.com>
12Signed-off-by: Zhiqiang Liu <liuzhiqiang26@huawei.com>
13Signed-off-by: Steve Dickson <steved@redhat.com>
14---
15 utils/blkmapd/device-discovery.c | 15 +++------------
16 utils/blkmapd/device-discovery.h | 2 ++
17 utils/blkmapd/device-inq.c | 4 ++--
18 3 files changed, 7 insertions(+), 14 deletions(-)
19
20diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c
21index 49935c2e19fe..bd890598d73c 100644
22--- a/utils/blkmapd/device-discovery.c
23+++ b/utils/blkmapd/device-discovery.c
24@@ -187,10 +187,7 @@ static void bl_add_disk(char *filepath)
25 }
26
27 if (disk && diskpath) {
28- if (serial) {
29- free(serial->data);
30- free(serial);
31- }
32+ bl_free_scsi_string(serial);
33 return;
34 }
35
36@@ -228,10 +225,7 @@ static void bl_add_disk(char *filepath)
37 disk->size = size;
38 disk->valid_path = path;
39 }
40- if (serial) {
41- free(serial->data);
42- free(serial);
43- }
44+ bl_free_scsi_string(serial);
45 }
46 return;
47
48@@ -241,10 +235,7 @@ static void bl_add_disk(char *filepath)
49 free(path->full_path);
50 free(path);
51 }
52- if (serial) {
53- free(serial->data);
54- free(serial);
55- }
56+ bl_free_scsi_string(serial);
57 return;
58 }
59
60diff --git a/utils/blkmapd/device-discovery.h b/utils/blkmapd/device-discovery.h
61index a86eed9945c0..462aa943bc28 100644
62--- a/utils/blkmapd/device-discovery.h
63+++ b/utils/blkmapd/device-discovery.h
64@@ -151,6 +151,8 @@ uint64_t process_deviceinfo(const char *dev_addr_buf,
65
66 extern ssize_t atomicio(ssize_t(*f) (int, void *, size_t),
67 int fd, void *_s, size_t n);
68+extern struct bl_serial *bl_create_scsi_string(int len, const char *bytes);
69+extern void bl_free_scsi_string(struct bl_serial *str);
70 extern struct bl_serial *bldev_read_serial(int fd, const char *filename);
71 extern enum bl_path_state_e bldev_read_ap_state(int fd);
72 extern int bl_discover_devices(void);
73diff --git a/utils/blkmapd/device-inq.c b/utils/blkmapd/device-inq.c
74index c7952c3e95c3..9e5749ef508b 100644
75--- a/utils/blkmapd/device-inq.c
76+++ b/utils/blkmapd/device-inq.c
77@@ -53,7 +53,7 @@
78 #define DEF_ALLOC_LEN 255
79 #define MX_ALLOC_LEN (0xc000 + 0x80)
80
81-static struct bl_serial *bl_create_scsi_string(int len, const char *bytes)
82+struct bl_serial *bl_create_scsi_string(int len, const char *bytes)
83 {
84 struct bl_serial *s;
85
86@@ -66,7 +66,7 @@ static struct bl_serial *bl_create_scsi_string(int len, const char *bytes)
87 return s;
88 }
89
90-static void bl_free_scsi_string(struct bl_serial *str)
91+void bl_free_scsi_string(struct bl_serial *str)
92 {
93 if (str)
94 free(str);
95--
962.38.1
97
diff --git a/debian/patches/fsidd-provide-better-default-socket-name.patch b/debian/patches/fsidd-provide-better-default-socket-name.patch
98new file mode 1006440new file mode 100644
index 0000000..ef3b909
--- /dev/null
+++ b/debian/patches/fsidd-provide-better-default-socket-name.patch
@@ -0,0 +1,96 @@
1From: NeilBrown <neilb@suse.de>
2Date: Thu, 11 May 2023 14:26:47 -0400
3Subject: fsidd: provide better default socket name.
4Origin: http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=e00ab3c0616fe6d83ab0710d9e7d989c299088f7
5Bug-Debian: https://bugs.debian.org/1041147
6
7Having the default socket name be in the current directory is a poor
8choice for a daemon that is expected to run as root.
9
10It is also likely better to use an "abstract" socket name. abstract
11names do not exist in the filesystem namespace and are local to a
12network namespace. Using an abstract name ensures that the nfsd,
13mountd, and fsidd are all in the same network namespace.
14
15This patch:
16 - uses a single #define for the default socket name, rather than 2;
17 - allows the socket name to start with '@' which is interpreted to
18 be a request to use the abstract name space (systemd uses the same
19 convention).
20 - changes the default to "@/run/fsid.sock". I don't know of a formal
21 standard for choosing names in the abstract name space, the defacto
22 standard (seen in "ss -xa|grep @") is to use a name similar to what
23 might be used in the filesystem.
24
25Acked-by: Richard Weinberger <richard@nod.at>
26Signed-off-by: NeilBrown <neilb@suse.de>
27Signed-off-by: Steve Dickson <steved@redhat.com>
28---
29 support/reexport/fsidd.c | 10 ++++++----
30 support/reexport/reexport.c | 3 +++
31 support/reexport/reexport.h | 2 +-
32 3 files changed, 10 insertions(+), 5 deletions(-)
33
34diff --git a/support/reexport/fsidd.c b/support/reexport/fsidd.c
35index 3fef1ef3512b..37649d065ce6 100644
36--- a/support/reexport/fsidd.c
37+++ b/support/reexport/fsidd.c
38@@ -18,11 +18,10 @@
39
40 #include "conffile.h"
41 #include "reexport_backend.h"
42+#include "reexport.h"
43 #include "xcommon.h"
44 #include "xlog.h"
45
46-#define FSID_SOCKET_NAME "fsid.sock"
47-
48 static struct event_base *evbase;
49 static struct reexpdb_backend_plugin *dbbackend = &sqlite_plug_ops;
50
51@@ -167,11 +166,14 @@ int main(void)
52
53 sock_file = conf_get_str_with_def("reexport", "fsidd_socket", FSID_SOCKET_NAME);
54
55- unlink(sock_file);
56-
57 memset(&addr, 0, sizeof(struct sockaddr_un));
58 addr.sun_family = AF_UNIX;
59 strncpy(addr.sun_path, sock_file, sizeof(addr.sun_path) - 1);
60+ if (addr.sun_path[0] == '@')
61+ /* "abstract" socket namespace */
62+ addr.sun_path[0] = 0;
63+ else
64+ unlink(sock_file);
65
66 srv = socket(AF_UNIX, SOCK_SEQPACKET | SOCK_NONBLOCK, 0);
67 if (srv == -1) {
68diff --git a/support/reexport/reexport.c b/support/reexport/reexport.c
69index eddc9bf413f6..d597a2f73c93 100644
70--- a/support/reexport/reexport.c
71+++ b/support/reexport/reexport.c
72@@ -38,6 +38,9 @@ static bool connect_fsid_service(void)
73 memset(&addr, 0, sizeof(struct sockaddr_un));
74 addr.sun_family = AF_UNIX;
75 strncpy(addr.sun_path, sock_file, sizeof(addr.sun_path) - 1);
76+ if (addr.sun_path[0] == '@')
77+ /* "abstract" socket namespace */
78+ addr.sun_path[0] = 0;
79
80 s = socket(AF_UNIX, SOCK_SEQPACKET, 0);
81 if (s == -1) {
82diff --git a/support/reexport/reexport.h b/support/reexport/reexport.h
83index 3bed03a9a0bb..856c3085a1dd 100644
84--- a/support/reexport/reexport.h
85+++ b/support/reexport/reexport.h
86@@ -13,6 +13,6 @@ int reexpdb_fsidnum_by_path(char *path, uint32_t *fsidnum, int may_create);
87 int reexpdb_apply_reexport_settings(struct exportent *ep, char *flname, int flline);
88 void reexpdb_uncover_subvolume(uint32_t fsidnum);
89
90-#define FSID_SOCKET_NAME "fsid.sock"
91+#define FSID_SOCKET_NAME "@/run/fsid.sock"
92
93 #endif /* REEXPORT_H */
94--
952.40.1
96
diff --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
0new file mode 10064497new file mode 100644
index 0000000..50ca4e5
--- /dev/null
+++ b/debian/patches/libnfsidmap-try-to-get-the-domain-directly-from-host.patch
@@ -0,0 +1,54 @@
1From: Aram Akhavan <github@aram.nubmail.ca>
2Date: Sat, 15 Jul 2023 13:21:04 -0400
3Subject: libnfsidmap: try to get the domain directly from hostname if the DNS
4 lookup fails and always show the log message if the domain can't be
5 determined
6Origin: https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=90a23f7c6343bcb1b69c93ceccc14cc06e14d958
7
8In 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.
9If 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
10for anyone who doesn't happen to use "localdomain". Previously, the log message indicating this has happened requires -v to be passed, so the
11"failure" was silent by default.
12
13Signed-off-by: Aram Akhavan <github@aram.nubmail.ca>
14Signed-off-by: Steve Dickson <steved@redhat.com>
15---
16 support/nfsidmap/libnfsidmap.c | 15 ++++++++++-----
17 1 file changed, 10 insertions(+), 5 deletions(-)
18
19diff --git a/support/nfsidmap/libnfsidmap.c b/support/nfsidmap/libnfsidmap.c
20index 0a912e52e1fb..f8c36480155f 100644
21--- a/support/nfsidmap/libnfsidmap.c
22+++ b/support/nfsidmap/libnfsidmap.c
23@@ -219,10 +219,15 @@ static int domain_from_dns(char **domain)
24
25 if (gethostname(hname, sizeof(hname)) == -1)
26 return -1;
27- if ((he = gethostbyname(hname)) == NULL)
28- return -1;
29- if ((c = strchr(he->h_name, '.')) == NULL || *++c == '\0')
30- return -1;
31+ if ((he = gethostbyname(hname)) == NULL) {
32+ IDMAP_LOG(1, ("libnfsidmap: DNS lookup of hostname failed. Attempting to use domain from hostname as is."));
33+ if ((c = strchr(hname, '.')) == NULL || *++c == '\0')
34+ return -1;
35+ }
36+ else {
37+ if ((c = strchr(he->h_name, '.')) == NULL || *++c == '\0')
38+ return -1;
39+ }
40 /*
41 * Query DNS to see if the _nfsv4idmapdomain TXT record exists
42 * If so use it...
43@@ -387,7 +392,7 @@ int nfs4_init_name_mapping(char *conffile)
44 dflt = 1;
45 ret = domain_from_dns(&default_domain);
46 if (ret) {
47- IDMAP_LOG(1, ("libnfsidmap: Unable to determine "
48+ IDMAP_LOG(0, ("libnfsidmap: Unable to determine "
49 "the NFSv4 domain; Using '%s' as the NFSv4 domain "
50 "which means UIDs will be mapped to the 'Nobody-User' "
51 "user defined in %s",
52--
532.40.1
54
diff --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
0new file mode 10064455new file mode 100644
index 0000000..6572d70
--- /dev/null
+++ b/debian/patches/nfs-idmapd.service-add-network-online.target-to-Want.patch
@@ -0,0 +1,33 @@
1From: Aram Akhavan <github@aram.nubmail.ca>
2Date: Sat, 15 Jul 2023 13:16:58 -0400
3Subject: nfs-idmapd.service: add network-online.target to Wants= and After=
4Origin: https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=4f5e66718c01f89b28bf9e7a8c645d9e18682485
5Bug-Debian: https://bugs.debian.org/1035840
6
7nfs-idmapd.service does not have any dependency on the network so there's no
8starting point to wait for DNS resolution. nfs-server.service already has this
9network dependency and ordering.
10
11Signed-off-by: Aram Akhavan <github@aram.nubmail.ca>
12Signed-off-by: Steve Dickson <steved@redhat.com>
13---
14 systemd/nfs-idmapd.service | 3 ++-
15 1 file changed, 2 insertions(+), 1 deletion(-)
16
17diff --git a/systemd/nfs-idmapd.service b/systemd/nfs-idmapd.service
18index f38fe527237e..198ca87c2bc9 100644
19--- a/systemd/nfs-idmapd.service
20+++ b/systemd/nfs-idmapd.service
21@@ -2,7 +2,8 @@
22 Description=NFSv4 ID-name mapping service
23 DefaultDependencies=no
24 Requires=rpc_pipefs.target
25-After=rpc_pipefs.target local-fs.target
26+After=rpc_pipefs.target local-fs.target network-online.target
27+Wants=network-online.target
28
29 BindsTo=nfs-server.service
30
31--
322.40.1
33
diff --git a/debian/patches/series b/debian/patches/series
index 60ba4c9..2046770 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,6 +1,7 @@
101-sm-notify-in-sbin.patch101-sm-notify-in-sbin.patch
225-systemd-daemon-paths.patch225-systemd-daemon-paths.patch
3multiarch-kerberos-paths.patch3multiarch-kerberos-paths.patch
4<<<<<<< debian/patches/series
4ubuntu-idmapd-manpage-update-regex-other-package.patch5ubuntu-idmapd-manpage-update-regex-other-package.patch
5nfs-conf-manpage-missing-svcgssd-options.patch6nfs-conf-manpage-missing-svcgssd-options.patch
6always-run-generator.patch7always-run-generator.patch
@@ -11,3 +12,12 @@ Revert-systemd-Apply-all-sysctl-settings-when-NFS-re.patch
11systemd-Apply-all-sysctl-settings-through-udev-rule-.patch12systemd-Apply-all-sysctl-settings-through-udev-rule-.patch
12auth-rpcgss-module.service-Don-t-fail-inside-linux-c.patch13auth-rpcgss-module.service-Don-t-fail-inside-linux-c.patch
13systemd-Don-t-degrade-system-state-for-nfs-clients-w.patch14systemd-Don-t-degrade-system-state-for-nfs-clients-w.patch
15=======
16always-run-generator.patch
17start-statd-fix-shellcheck-warnings.patch
18fsidd-provide-better-default-socket-name.patch
19nfs-idmapd.service-add-network-online.target-to-Want.patch
20libnfsidmap-try-to-get-the-domain-directly-from-host.patch
21ubuntu-idmapd-manpage-update-regex-other-package.patch
22nfs-conf-manpage-missing-svcgssd-options.patch
23>>>>>>> debian/patches/series
diff --git a/debian/patches/start-statd-fix-shellcheck-warnings.patch b/debian/patches/start-statd-fix-shellcheck-warnings.patch
14new file mode 10064424new file mode 100644
index 0000000..e4f383d
--- /dev/null
+++ b/debian/patches/start-statd-fix-shellcheck-warnings.patch
@@ -0,0 +1,41 @@
1From: Ben Hutchings <benh@debian.org>
2Date: Tue, 13 Jun 2023 03:56:03 +0200
3Subject: start-statd: Fix shellcheck warnings
4
5shellcheck currently complains:
6
7In utils/statd/start-statd line 14:
8 [ 1`cat /run/rpc.statd.pid` -gt 1 ] &&
9 ^----------------------^ SC2046 (warning): Quote this to prevent word splitting.
10 ^----------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
11
12Did you mean:
13 [ 1$(cat /run/rpc.statd.pid) -gt 1 ] &&
14
15
16In utils/statd/start-statd line 15:
17 kill -0 `cat /run/rpc.statd.pid` > /dev/null 2>&1
18 ^----------------------^ SC2046 (warning): Quote this to prevent word splitting.
19 ^----------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
20
21Did you mean:
22 kill -0 $(cat /run/rpc.statd.pid) > /dev/null 2>&1
23
24Use quotes and $() as recommended.
25
26Signed-off-by: Ben Hutchings <benh@debian.org>
27---
28
29--- a/utils/statd/start-statd
30+++ b/utils/statd/start-statd
31@@ -11,8 +11,8 @@ exec 9> /run/rpc.statd.lock
32 flock -e 9
33
34 if [ -s /run/rpc.statd.pid ] &&
35- [ 1`cat /run/rpc.statd.pid` -gt 1 ] &&
36- kill -0 `cat /run/rpc.statd.pid` > /dev/null 2>&1
37+ [ "1$(cat /run/rpc.statd.pid)" -gt 1 ] &&
38+ kill -0 "$(cat /run/rpc.statd.pid)" > /dev/null 2>&1
39 then
40 # statd already running - must have been slow to respond.
41 exit 0
diff --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
0deleted file mode 10064442deleted file mode 100644
index b2230cc..0000000
--- a/debian/patches/systemd-Apply-all-sysctl-settings-through-udev-rule-.patch
+++ /dev/null
@@ -1,97 +0,0 @@
1From 9466df03394a48cc08aa4bcdcfda3fe6cd074468 Mon Sep 17 00:00:00 2001
2From: Salvatore Bonaccorso <carnil@debian.org>
3Date: Mon, 5 Dec 2022 15:51:34 -0500
4Subject: [PATCH 4/4] systemd: Apply all sysctl settings through udev rule when
5 NFS-related modules are loaded
6
7sysctl settings (e.g. /etc/sysctl.conf and others) are normally loaded
8once at boot. If the module that implements some settings is no yet
9loaded, those settings don't get applied.
10
11Various NFS modules support various sysctl settings. If they are loaded
12after boot, they miss out.
13
14Add a new udev rule configuration to udev/rules.d/60-nfs.rules to apply
15the relevant settings when the modules are loaded.
16
17Placing it in the systemd directory similarly as the choice for the
18original commit afc7132dfb21 ("systemd: Apply all sysctl settings when
19NFS-related modules are loaded").
20
21Link: https://lore.kernel.org/linux-nfs/Y1KoKwu88PulcokW@eldamar.lan/
22Link: https://bugs.debian.org/1022172
23Link: https://bugs.debian.org/1024082
24Suggested-by: Marco d'Itri <md@linux.it>
25Signed-off-by: Salvatore Bonaccorso <carnil@debian.org>
26Signed-off-by: Steve Dickson <steved@redhat.com>
27---
28 systemd/60-nfs.rules | 21 +++++++++++++++++++++
29 systemd/Makefile.am | 9 +++++++--
30 2 files changed, 28 insertions(+), 2 deletions(-)
31 create mode 100644 systemd/60-nfs.rules
32
33diff --git a/systemd/60-nfs.rules b/systemd/60-nfs.rules
34new file mode 100644
35index 000000000000..188423c1d2e3
36--- /dev/null
37+++ b/systemd/60-nfs.rules
38@@ -0,0 +1,21 @@
39+# Ensure all NFS systctl settings get applied when modules load
40+
41+# sunrpc module supports "sunrpc.*" sysctls
42+ACTION=="add", SUBSYSTEM=="module", KERNEL=="sunrpc", \
43+ RUN+="/sbin/sysctl -q --pattern ^sunrpc --system"
44+
45+# rpcrdma module supports sunrpc.svc_rdma.*
46+ACTION=="add", SUBSYSTEM=="module", KERNEL=="rpcrdma", \
47+ RUN+="/sbin/sysctl -q --pattern ^sunrpc.svc_rdma --system"
48+
49+# lockd module supports "fs.nfs.nlm*" and "fs.nfs.nsm*" sysctls
50+ACTION=="add", SUBSYSTEM=="module", KERNEL=="lockd", \
51+ RUN+="/sbin/sysctl -q --pattern ^fs.nfs.n[sl]m --system"
52+
53+# nfsv4 module supports "fs.nfs.*" sysctls (nfs_callback_tcpport and idmap_cache_timeout)
54+ACTION=="add", SUBSYSTEM=="module", KERNEL=="nfsv4", \
55+ RUN+="/sbin/sysctl -q --pattern ^fs.nfs.(nfs_callback_tcpport|idmap_cache_timeout) --system"
56+
57+# nfs module supports "fs.nfs.*" sysctls
58+ACTION=="add", SUBSYSTEM=="module", KERNEL=="nfs", \
59+ RUN+="/sbin/sysctl -q --pattern ^fs.nfs --system"
60diff --git a/systemd/Makefile.am b/systemd/Makefile.am
61index e7f5d818a913..577c6a2286c0 100644
62--- a/systemd/Makefile.am
63+++ b/systemd/Makefile.am
64@@ -2,6 +2,9 @@
65
66 MAINTAINERCLEANFILES = Makefile.in
67
68+udev_rulesdir = /usr/lib/udev/rules.d/
69+udev_files = 60-nfs.rules
70+
71 unit_files = \
72 nfs-client.target \
73 rpc_pipefs.target \
74@@ -51,7 +54,7 @@ endif
75
76 man5_MANS = nfs.conf.man
77 man7_MANS = nfs.systemd.man
78-EXTRA_DIST = $(unit_files) $(man5_MANS) $(man7_MANS)
79+EXTRA_DIST = $(unit_files) $(udev_files) $(man5_MANS) $(man7_MANS)
80
81 generator_dir = $(unitdir)/../system-generators
82
83@@ -73,8 +76,10 @@ rpc_pipefs_generator_LDADD = ../support/nfs/libnfs.la
84
85 if INSTALL_SYSTEMD
86 genexec_PROGRAMS = nfs-server-generator rpc-pipefs-generator
87-install-data-hook: $(unit_files)
88+install-data-hook: $(unit_files) $(udev_files)
89 mkdir -p $(DESTDIR)/$(unitdir)
90 cp $(unit_files) $(DESTDIR)/$(unitdir)
91 cp $(rpc_pipefs_mount_file) $(DESTDIR)/$(unitdir)/$(rpc_pipefsmount)
92+ mkdir -p $(DESTDIR)/$(udev_rulesdir)
93+ cp $(udev_files) $(DESTDIR)/$(udev_rulesdir)
94 endif
95--
962.38.1
97
diff --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
98deleted file mode 1006440deleted file mode 100644
index 15548bd..0000000
--- a/debian/patches/systemd-Don-t-degrade-system-state-for-nfs-clients-w.patch
+++ /dev/null
@@ -1,60 +0,0 @@
1From: Joachim Falk <joachim.falk@gmx.de>
2Date: Tue, 10 Jan 2023 09:55:59 -0500
3Subject: systemd: Don't degrade system state for nfs-clients when krb5 keytab
4 present but not containing the nfs/<FQDN> principal
5Origin: https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=5faf98a62843d1cda2a0fe15e0878fa1281e42b8
6Bug-Debian: https://bugs.debian.org/985002
7
8The nfs-client.target requires the auth-rpcgss-module.service, which in
9turn requires the rpc-svcgssd.service. However, the rpc.svcgssd daemon
10is unnecessary for an NFS client, even when using Kerberos security.
11Moreover, starting this daemon with its default configuration will fail
12when no nfs/<host>@REALM principal is in the Kerberos keytab. Thus,
13resulting in a degraded system state for NFS client configurations
14without nfs/<host>@REALM principal in the Kerberos keytab. However, this
15is a perfectly valid NFS client configuration as the nfs/<host>@REALM
16principal is not required for mounting NFS file systems. This is even
17the case when Kerberos security is enabled for the mount!
18
19Installing the gssproxy package hides this problem as this disables the
20rpc-svcgssd.service.
21
22Link: http://bugs.debian.org/985002
23Link: https://salsa.debian.org/kernel-team/nfs-utils/-/merge_requests/23
24
25Signed-off-by: Joachim Falk <joachim.falk@gmx.de>
26Signed-off-by: Steve Dickson <steved@redhat.com>
27---
28 systemd/auth-rpcgss-module.service | 2 +-
29 systemd/nfs-server.service | 2 +-
30 2 files changed, 2 insertions(+), 2 deletions(-)
31
32diff --git a/systemd/auth-rpcgss-module.service b/systemd/auth-rpcgss-module.service
33index 25c9de8088fc..4a69a7b77b03 100644
34--- a/systemd/auth-rpcgss-module.service
35+++ b/systemd/auth-rpcgss-module.service
36@@ -8,7 +8,7 @@
37 Description=Kernel Module supporting RPCSEC_GSS
38 DefaultDependencies=no
39 Before=gssproxy.service rpc-svcgssd.service rpc-gssd.service
40-Wants=gssproxy.service rpc-svcgssd.service rpc-gssd.service
41+Wants=gssproxy.service rpc-gssd.service
42 ConditionPathExists=/etc/krb5.keytab
43 ConditionVirtualization=!container
44
45diff --git a/systemd/nfs-server.service b/systemd/nfs-server.service
46index b432f9102d0c..2cdd786841ea 100644
47--- a/systemd/nfs-server.service
48+++ b/systemd/nfs-server.service
49@@ -15,7 +15,7 @@ After=nfsdcld.service
50 Before=rpc-statd-notify.service
51
52 # GSS services dependencies and ordering
53-Wants=auth-rpcgss-module.service
54+Wants=auth-rpcgss-module.service rpc-svcgssd.service
55 After=rpc-gssd.service gssproxy.service rpc-svcgssd.service
56
57 [Service]
58--
592.39.0
60
diff --git a/debian/rules b/debian/rules
index fcc473d..1bfc0d4 100755
--- a/debian/rules
+++ b/debian/rules
@@ -4,7 +4,9 @@
44
5export DEB_BUILD_MAINT_OPTIONS = hardening=+all5export DEB_BUILD_MAINT_OPTIONS = hardening=+all
66
7DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)7# set and export all variables from dpkg-architecture
8# and using DEB_HOST_MULTIARCH
9include /usr/share/dpkg/architecture.mk
810
9%:11%:
10 dh $@ --with apport12 dh $@ --with apport
@@ -29,6 +31,10 @@ override_dh_fixperms:
2931
30override_dh_install:32override_dh_install:
31 # we will let the generator produce these units, see LP: #197193533 # we will let the generator produce these units, see LP: #1971935
34<<<<<<< debian/rules
35=======
36 # and https://bugs.debian.org/1014429
37>>>>>>> debian/rules
32 dh_install -Xvar-lib-nfs-rpc_pipefs.mount -Xrpc_pipefs.target38 dh_install -Xvar-lib-nfs-rpc_pipefs.mount -Xrpc_pipefs.target
3339
34override_dh_installinit:40override_dh_installinit:
diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml
index 30caef7..bfbe59b 100644
--- a/debian/salsa-ci.yml
+++ b/debian/salsa-ci.yml
@@ -8,3 +8,17 @@ variables:
8 SALSA_CI_DISABLE_BUILD_PACKAGE_ALL: 'true'8 SALSA_CI_DISABLE_BUILD_PACKAGE_ALL: 'true'
9 # Currently triggering falsely (bugs #973313, #1000977)9 # Currently triggering falsely (bugs #973313, #1000977)
10 SALSA_CI_LINTIAN_SUPPRESS_TAGS: 'groff-message,elf-error'10 SALSA_CI_LINTIAN_SUPPRESS_TAGS: 'groff-message,elf-error'
11
12shellcheck:
13 stage: test
14 image: $SALSA_CI_IMAGES_BASE
15 except:
16 variables:
17 - $CI_COMMIT_TAG != null
18 script:
19 - apt-get update
20 - apt-get install -y quilt shellcheck
21 - QUILT_PATCHES=debian/patches quilt push -a
22 - |
23 shellcheck -e SC1090,SC1091 utils/statd/start-statd $(find debian -maxdepth 1 -type f | xargs grep -El '^#!/bin/(ba|da)?sh')
24 needs: []
diff --git a/linux-nfs/Makefile.in b/linux-nfs/Makefile.in
index 8dee515..037331c 100644
--- a/linux-nfs/Makefile.in
+++ b/linux-nfs/Makefile.in
@@ -207,6 +207,8 @@ LIBCRYPT = @LIBCRYPT@
207LIBEVENT = @LIBEVENT@207LIBEVENT = @LIBEVENT@
208LIBKEYUTILS = @LIBKEYUTILS@208LIBKEYUTILS = @LIBKEYUTILS@
209LIBMOUNT = @LIBMOUNT@209LIBMOUNT = @LIBMOUNT@
210LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
211LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
210LIBNSL = @LIBNSL@212LIBNSL = @LIBNSL@
211LIBOBJS = @LIBOBJS@213LIBOBJS = @LIBOBJS@
212LIBPTHREAD = @LIBPTHREAD@214LIBPTHREAD = @LIBPTHREAD@
@@ -308,7 +310,6 @@ localedir = @localedir@
308localstatedir = @localstatedir@310localstatedir = @localstatedir@
309mandir = @mandir@311mandir = @mandir@
310mkdir_p = @mkdir_p@312mkdir_p = @mkdir_p@
311modprobedir = @modprobedir@
312mountfile = @mountfile@313mountfile = @mountfile@
313nfsconfig = @nfsconfig@314nfsconfig = @nfsconfig@
314oldincludedir = @oldincludedir@315oldincludedir = @oldincludedir@
diff --git a/support/Makefile.am b/support/Makefile.am
index c962d4d..07cfd87 100644
--- a/support/Makefile.am
+++ b/support/Makefile.am
@@ -10,7 +10,7 @@ if CONFIG_JUNCTION
10OPTDIRS += junction10OPTDIRS += junction
11endif11endif
1212
13SUBDIRS = export include misc nfs nsm $(OPTDIRS)13SUBDIRS = export include misc nfs nsm reexport $(OPTDIRS)
1414
15MAINTAINERCLEANFILES = Makefile.in15MAINTAINERCLEANFILES = Makefile.in
1616
diff --git a/support/Makefile.in b/support/Makefile.in
index 7c438c3..86c5e97 100644
--- a/support/Makefile.in
+++ b/support/Makefile.in
@@ -166,7 +166,7 @@ am__define_uniq_tagged_files = \
166 unique=`for i in $$list; do \166 unique=`for i in $$list; do \
167 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \167 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
168 done | $(am__uniquify_input)`168 done | $(am__uniquify_input)`
169DIST_SUBDIRS = export include misc nfs nsm nfsidmap junction169DIST_SUBDIRS = export include misc nfs nsm reexport nfsidmap junction
170am__DIST_COMMON = $(srcdir)/Makefile.in170am__DIST_COMMON = $(srcdir)/Makefile.in
171DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)171DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
172am__relativize = \172am__relativize = \
@@ -266,6 +266,8 @@ LIBCRYPT = @LIBCRYPT@
266LIBEVENT = @LIBEVENT@266LIBEVENT = @LIBEVENT@
267LIBKEYUTILS = @LIBKEYUTILS@267LIBKEYUTILS = @LIBKEYUTILS@
268LIBMOUNT = @LIBMOUNT@268LIBMOUNT = @LIBMOUNT@
269LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
270LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
269LIBNSL = @LIBNSL@271LIBNSL = @LIBNSL@
270LIBOBJS = @LIBOBJS@272LIBOBJS = @LIBOBJS@
271LIBPTHREAD = @LIBPTHREAD@273LIBPTHREAD = @LIBPTHREAD@
@@ -367,7 +369,6 @@ localedir = @localedir@
367localstatedir = @localstatedir@369localstatedir = @localstatedir@
368mandir = @mandir@370mandir = @mandir@
369mkdir_p = @mkdir_p@371mkdir_p = @mkdir_p@
370modprobedir = @modprobedir@
371mountfile = @mountfile@372mountfile = @mountfile@
372nfsconfig = @nfsconfig@373nfsconfig = @nfsconfig@
373oldincludedir = @oldincludedir@374oldincludedir = @oldincludedir@
@@ -391,7 +392,7 @@ top_builddir = @top_builddir@
391top_srcdir = @top_srcdir@392top_srcdir = @top_srcdir@
392unitdir = @unitdir@393unitdir = @unitdir@
393OPTDIRS = $(am__append_1) $(am__append_2)394OPTDIRS = $(am__append_1) $(am__append_2)
394SUBDIRS = export include misc nfs nsm $(OPTDIRS)395SUBDIRS = export include misc nfs nsm reexport $(OPTDIRS)
395MAINTAINERCLEANFILES = Makefile.in396MAINTAINERCLEANFILES = Makefile.in
396all: all-recursive397all: all-recursive
397398
diff --git a/support/export/Makefile.am b/support/export/Makefile.am
index eec737f..7338e1c 100644
--- a/support/export/Makefile.am
+++ b/support/export/Makefile.am
@@ -14,6 +14,8 @@ libexport_a_SOURCES = client.c export.c hostname.c \
14 xtab.c mount_clnt.c mount_xdr.c \14 xtab.c mount_clnt.c mount_xdr.c \
15 cache.c auth.c v4root.c fsloc.c \15 cache.c auth.c v4root.c fsloc.c \
16 v4clients.c16 v4clients.c
17libexport_a_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS) -I$(top_srcdir)/support/reexport
18
17BUILT_SOURCES = $(GENFILES)19BUILT_SOURCES = $(GENFILES)
1820
19noinst_HEADERS = mount.h21noinst_HEADERS = mount.h
diff --git a/support/export/Makefile.in b/support/export/Makefile.in
index 51ce717..e9d5f1b 100644
--- a/support/export/Makefile.in
+++ b/support/export/Makefile.in
@@ -123,10 +123,12 @@ am__v_AR_0 = @echo " AR " $@;
123am__v_AR_1 = 123am__v_AR_1 =
124libexport_a_AR = $(AR) $(ARFLAGS)124libexport_a_AR = $(AR) $(ARFLAGS)
125libexport_a_LIBADD =125libexport_a_LIBADD =
126am_libexport_a_OBJECTS = client.$(OBJEXT) export.$(OBJEXT) \126am_libexport_a_OBJECTS = libexport_a-client.$(OBJEXT) \
127 hostname.$(OBJEXT) xtab.$(OBJEXT) mount_clnt.$(OBJEXT) \127 libexport_a-export.$(OBJEXT) libexport_a-hostname.$(OBJEXT) \
128 mount_xdr.$(OBJEXT) cache.$(OBJEXT) auth.$(OBJEXT) \128 libexport_a-xtab.$(OBJEXT) libexport_a-mount_clnt.$(OBJEXT) \
129 v4root.$(OBJEXT) fsloc.$(OBJEXT) v4clients.$(OBJEXT)129 libexport_a-mount_xdr.$(OBJEXT) libexport_a-cache.$(OBJEXT) \
130 libexport_a-auth.$(OBJEXT) libexport_a-v4root.$(OBJEXT) \
131 libexport_a-fsloc.$(OBJEXT) libexport_a-v4clients.$(OBJEXT)
130libexport_a_OBJECTS = $(am_libexport_a_OBJECTS)132libexport_a_OBJECTS = $(am_libexport_a_OBJECTS)
131AM_V_P = $(am__v_P_@AM_V@)133AM_V_P = $(am__v_P_@AM_V@)
132am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)134am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -143,19 +145,24 @@ am__v_at_1 =
143DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/support/include145DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/support/include
144depcomp = $(SHELL) $(top_srcdir)/depcomp146depcomp = $(SHELL) $(top_srcdir)/depcomp
145am__maybe_remake_depfiles = depfiles147am__maybe_remake_depfiles = depfiles
146am__depfiles_remade = ./$(DEPDIR)/auth.Po ./$(DEPDIR)/cache.Po \148am__depfiles_remade = ./$(DEPDIR)/libexport_a-auth.Po \
147 ./$(DEPDIR)/client.Po ./$(DEPDIR)/export.Po \149 ./$(DEPDIR)/libexport_a-cache.Po \
148 ./$(DEPDIR)/fsloc.Po ./$(DEPDIR)/hostname.Po \150 ./$(DEPDIR)/libexport_a-client.Po \
149 ./$(DEPDIR)/mount_clnt.Po ./$(DEPDIR)/mount_xdr.Po \151 ./$(DEPDIR)/libexport_a-export.Po \
150 ./$(DEPDIR)/v4clients.Po ./$(DEPDIR)/v4root.Po \152 ./$(DEPDIR)/libexport_a-fsloc.Po \
151 ./$(DEPDIR)/xtab.Po153 ./$(DEPDIR)/libexport_a-hostname.Po \
154 ./$(DEPDIR)/libexport_a-mount_clnt.Po \
155 ./$(DEPDIR)/libexport_a-mount_xdr.Po \
156 ./$(DEPDIR)/libexport_a-v4clients.Po \
157 ./$(DEPDIR)/libexport_a-v4root.Po \
158 ./$(DEPDIR)/libexport_a-xtab.Po
152am__mv = mv -f159am__mv = mv -f
153COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
154 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
155AM_V_lt = $(am__v_lt_@AM_V@)160AM_V_lt = $(am__v_lt_@AM_V@)
156am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)161am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
157am__v_lt_0 = --silent162am__v_lt_0 = --silent
158am__v_lt_1 = 163am__v_lt_1 =
164COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
165 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
159LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \166LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
160 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \167 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
161 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \168 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
@@ -271,6 +278,8 @@ LIBCRYPT = @LIBCRYPT@
271LIBEVENT = @LIBEVENT@278LIBEVENT = @LIBEVENT@
272LIBKEYUTILS = @LIBKEYUTILS@279LIBKEYUTILS = @LIBKEYUTILS@
273LIBMOUNT = @LIBMOUNT@280LIBMOUNT = @LIBMOUNT@
281LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
282LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
274LIBNSL = @LIBNSL@283LIBNSL = @LIBNSL@
275LIBOBJS = @LIBOBJS@284LIBOBJS = @LIBOBJS@
276LIBPTHREAD = @LIBPTHREAD@285LIBPTHREAD = @LIBPTHREAD@
@@ -372,7 +381,6 @@ localedir = @localedir@
372localstatedir = @localstatedir@381localstatedir = @localstatedir@
373mandir = @mandir@382mandir = @mandir@
374mkdir_p = @mkdir_p@383mkdir_p = @mkdir_p@
375modprobedir = @modprobedir@
376mountfile = @mountfile@384mountfile = @mountfile@
377nfsconfig = @nfsconfig@385nfsconfig = @nfsconfig@
378oldincludedir = @oldincludedir@386oldincludedir = @oldincludedir@
@@ -406,6 +414,7 @@ libexport_a_SOURCES = client.c export.c hostname.c \
406 cache.c auth.c v4root.c fsloc.c \414 cache.c auth.c v4root.c fsloc.c \
407 v4clients.c415 v4clients.c
408416
417libexport_a_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS) -I$(top_srcdir)/support/reexport
409BUILT_SOURCES = $(GENFILES)418BUILT_SOURCES = $(GENFILES)
410noinst_HEADERS = mount.h419noinst_HEADERS = mount.h
411@CONFIG_RPCGEN_FALSE@RPCGEN = @RPCGEN_PATH@420@CONFIG_RPCGEN_FALSE@RPCGEN = @RPCGEN_PATH@
@@ -461,17 +470,17 @@ mostlyclean-compile:
461distclean-compile:470distclean-compile:
462 -rm -f *.tab.c471 -rm -f *.tab.c
463472
464@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/auth.Po@am__quote@ # am--include-marker473@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-auth.Po@am__quote@ # am--include-marker
465@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cache.Po@am__quote@ # am--include-marker474@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-cache.Po@am__quote@ # am--include-marker
466@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/client.Po@am__quote@ # am--include-marker475@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-client.Po@am__quote@ # am--include-marker
467@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/export.Po@am__quote@ # am--include-marker476@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-export.Po@am__quote@ # am--include-marker
468@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsloc.Po@am__quote@ # am--include-marker477@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-fsloc.Po@am__quote@ # am--include-marker
469@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hostname.Po@am__quote@ # am--include-marker478@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-hostname.Po@am__quote@ # am--include-marker
470@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_clnt.Po@am__quote@ # am--include-marker479@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-mount_clnt.Po@am__quote@ # am--include-marker
471@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount_xdr.Po@am__quote@ # am--include-marker480@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-mount_xdr.Po@am__quote@ # am--include-marker
472@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/v4clients.Po@am__quote@ # am--include-marker481@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-v4clients.Po@am__quote@ # am--include-marker
473@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/v4root.Po@am__quote@ # am--include-marker482@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-v4root.Po@am__quote@ # am--include-marker
474@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xtab.Po@am__quote@ # am--include-marker483@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexport_a-xtab.Po@am__quote@ # am--include-marker
475484
476$(am__depfiles_remade):485$(am__depfiles_remade):
477 @$(MKDIR_P) $(@D)486 @$(MKDIR_P) $(@D)
@@ -500,6 +509,160 @@ am--depfiles: $(am__depfiles_remade)
500@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@509@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
501@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<510@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
502511
512libexport_a-client.o: client.c
513@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
514@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-client.Tpo $(DEPDIR)/libexport_a-client.Po
515@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='client.c' object='libexport_a-client.o' libtool=no @AMDEPBACKSLASH@
516@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
517@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
518
519libexport_a-client.obj: client.c
520@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`
521@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-client.Tpo $(DEPDIR)/libexport_a-client.Po
522@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='client.c' object='libexport_a-client.obj' libtool=no @AMDEPBACKSLASH@
523@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
524@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`
525
526libexport_a-export.o: export.c
527@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
528@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-export.Tpo $(DEPDIR)/libexport_a-export.Po
529@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='export.c' object='libexport_a-export.o' libtool=no @AMDEPBACKSLASH@
530@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
531@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
532
533libexport_a-export.obj: export.c
534@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`
535@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-export.Tpo $(DEPDIR)/libexport_a-export.Po
536@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='export.c' object='libexport_a-export.obj' libtool=no @AMDEPBACKSLASH@
537@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
538@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`
539
540libexport_a-hostname.o: hostname.c
541@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
542@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-hostname.Tpo $(DEPDIR)/libexport_a-hostname.Po
543@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hostname.c' object='libexport_a-hostname.o' libtool=no @AMDEPBACKSLASH@
544@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
545@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
546
547libexport_a-hostname.obj: hostname.c
548@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`
549@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-hostname.Tpo $(DEPDIR)/libexport_a-hostname.Po
550@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hostname.c' object='libexport_a-hostname.obj' libtool=no @AMDEPBACKSLASH@
551@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
552@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`
553
554libexport_a-xtab.o: xtab.c
555@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
556@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-xtab.Tpo $(DEPDIR)/libexport_a-xtab.Po
557@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xtab.c' object='libexport_a-xtab.o' libtool=no @AMDEPBACKSLASH@
558@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
559@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
560
561libexport_a-xtab.obj: xtab.c
562@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`
563@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-xtab.Tpo $(DEPDIR)/libexport_a-xtab.Po
564@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xtab.c' object='libexport_a-xtab.obj' libtool=no @AMDEPBACKSLASH@
565@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
566@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`
567
568libexport_a-mount_clnt.o: mount_clnt.c
569@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
570@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-mount_clnt.Tpo $(DEPDIR)/libexport_a-mount_clnt.Po
571@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mount_clnt.c' object='libexport_a-mount_clnt.o' libtool=no @AMDEPBACKSLASH@
572@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
573@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
574
575libexport_a-mount_clnt.obj: mount_clnt.c
576@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`
577@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-mount_clnt.Tpo $(DEPDIR)/libexport_a-mount_clnt.Po
578@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mount_clnt.c' object='libexport_a-mount_clnt.obj' libtool=no @AMDEPBACKSLASH@
579@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
580@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`
581
582libexport_a-mount_xdr.o: mount_xdr.c
583@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
584@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-mount_xdr.Tpo $(DEPDIR)/libexport_a-mount_xdr.Po
585@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mount_xdr.c' object='libexport_a-mount_xdr.o' libtool=no @AMDEPBACKSLASH@
586@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
587@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
588
589libexport_a-mount_xdr.obj: mount_xdr.c
590@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`
591@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-mount_xdr.Tpo $(DEPDIR)/libexport_a-mount_xdr.Po
592@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mount_xdr.c' object='libexport_a-mount_xdr.obj' libtool=no @AMDEPBACKSLASH@
593@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
594@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`
595
596libexport_a-cache.o: cache.c
597@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
598@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-cache.Tpo $(DEPDIR)/libexport_a-cache.Po
599@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cache.c' object='libexport_a-cache.o' libtool=no @AMDEPBACKSLASH@
600@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
601@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
602
603libexport_a-cache.obj: cache.c
604@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`
605@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-cache.Tpo $(DEPDIR)/libexport_a-cache.Po
606@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cache.c' object='libexport_a-cache.obj' libtool=no @AMDEPBACKSLASH@
607@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
608@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`
609
610libexport_a-auth.o: auth.c
611@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
612@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-auth.Tpo $(DEPDIR)/libexport_a-auth.Po
613@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='auth.c' object='libexport_a-auth.o' libtool=no @AMDEPBACKSLASH@
614@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
615@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
616
617libexport_a-auth.obj: auth.c
618@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`
619@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-auth.Tpo $(DEPDIR)/libexport_a-auth.Po
620@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='auth.c' object='libexport_a-auth.obj' libtool=no @AMDEPBACKSLASH@
621@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
622@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`
623
624libexport_a-v4root.o: v4root.c
625@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
626@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-v4root.Tpo $(DEPDIR)/libexport_a-v4root.Po
627@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4root.c' object='libexport_a-v4root.o' libtool=no @AMDEPBACKSLASH@
628@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
629@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
630
631libexport_a-v4root.obj: v4root.c
632@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`
633@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-v4root.Tpo $(DEPDIR)/libexport_a-v4root.Po
634@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4root.c' object='libexport_a-v4root.obj' libtool=no @AMDEPBACKSLASH@
635@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
636@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`
637
638libexport_a-fsloc.o: fsloc.c
639@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
640@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-fsloc.Tpo $(DEPDIR)/libexport_a-fsloc.Po
641@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsloc.c' object='libexport_a-fsloc.o' libtool=no @AMDEPBACKSLASH@
642@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
643@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
644
645libexport_a-fsloc.obj: fsloc.c
646@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`
647@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-fsloc.Tpo $(DEPDIR)/libexport_a-fsloc.Po
648@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsloc.c' object='libexport_a-fsloc.obj' libtool=no @AMDEPBACKSLASH@
649@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
650@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`
651
652libexport_a-v4clients.o: v4clients.c
653@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
654@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-v4clients.Tpo $(DEPDIR)/libexport_a-v4clients.Po
655@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4clients.c' object='libexport_a-v4clients.o' libtool=no @AMDEPBACKSLASH@
656@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
657@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
658
659libexport_a-v4clients.obj: v4clients.c
660@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`
661@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libexport_a-v4clients.Tpo $(DEPDIR)/libexport_a-v4clients.Po
662@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4clients.c' object='libexport_a-v4clients.obj' libtool=no @AMDEPBACKSLASH@
663@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
664@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`
665
503mostlyclean-libtool:666mostlyclean-libtool:
504 -rm -f *.lo667 -rm -f *.lo
505668
@@ -639,17 +802,17 @@ clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
639 mostlyclean-am802 mostlyclean-am
640803
641distclean: distclean-am804distclean: distclean-am
642 -rm -f ./$(DEPDIR)/auth.Po805 -rm -f ./$(DEPDIR)/libexport_a-auth.Po
643 -rm -f ./$(DEPDIR)/cache.Po806 -rm -f ./$(DEPDIR)/libexport_a-cache.Po
644 -rm -f ./$(DEPDIR)/client.Po807 -rm -f ./$(DEPDIR)/libexport_a-client.Po
645 -rm -f ./$(DEPDIR)/export.Po808 -rm -f ./$(DEPDIR)/libexport_a-export.Po
646 -rm -f ./$(DEPDIR)/fsloc.Po809 -rm -f ./$(DEPDIR)/libexport_a-fsloc.Po
647 -rm -f ./$(DEPDIR)/hostname.Po810 -rm -f ./$(DEPDIR)/libexport_a-hostname.Po
648 -rm -f ./$(DEPDIR)/mount_clnt.Po811 -rm -f ./$(DEPDIR)/libexport_a-mount_clnt.Po
649 -rm -f ./$(DEPDIR)/mount_xdr.Po812 -rm -f ./$(DEPDIR)/libexport_a-mount_xdr.Po
650 -rm -f ./$(DEPDIR)/v4clients.Po813 -rm -f ./$(DEPDIR)/libexport_a-v4clients.Po
651 -rm -f ./$(DEPDIR)/v4root.Po814 -rm -f ./$(DEPDIR)/libexport_a-v4root.Po
652 -rm -f ./$(DEPDIR)/xtab.Po815 -rm -f ./$(DEPDIR)/libexport_a-xtab.Po
653 -rm -f Makefile816 -rm -f Makefile
654distclean-am: clean-am distclean-compile distclean-generic \817distclean-am: clean-am distclean-compile distclean-generic \
655 distclean-tags818 distclean-tags
@@ -695,17 +858,17 @@ install-ps-am:
695installcheck-am:858installcheck-am:
696859
697maintainer-clean: maintainer-clean-am860maintainer-clean: maintainer-clean-am
698 -rm -f ./$(DEPDIR)/auth.Po861 -rm -f ./$(DEPDIR)/libexport_a-auth.Po
699 -rm -f ./$(DEPDIR)/cache.Po862 -rm -f ./$(DEPDIR)/libexport_a-cache.Po
700 -rm -f ./$(DEPDIR)/client.Po863 -rm -f ./$(DEPDIR)/libexport_a-client.Po
701 -rm -f ./$(DEPDIR)/export.Po864 -rm -f ./$(DEPDIR)/libexport_a-export.Po
702 -rm -f ./$(DEPDIR)/fsloc.Po865 -rm -f ./$(DEPDIR)/libexport_a-fsloc.Po
703 -rm -f ./$(DEPDIR)/hostname.Po866 -rm -f ./$(DEPDIR)/libexport_a-hostname.Po
704 -rm -f ./$(DEPDIR)/mount_clnt.Po867 -rm -f ./$(DEPDIR)/libexport_a-mount_clnt.Po
705 -rm -f ./$(DEPDIR)/mount_xdr.Po868 -rm -f ./$(DEPDIR)/libexport_a-mount_xdr.Po
706 -rm -f ./$(DEPDIR)/v4clients.Po869 -rm -f ./$(DEPDIR)/libexport_a-v4clients.Po
707 -rm -f ./$(DEPDIR)/v4root.Po870 -rm -f ./$(DEPDIR)/libexport_a-v4root.Po
708 -rm -f ./$(DEPDIR)/xtab.Po871 -rm -f ./$(DEPDIR)/libexport_a-xtab.Po
709 -rm -f Makefile872 -rm -f Makefile
710maintainer-clean-am: distclean-am maintainer-clean-generic873maintainer-clean-am: distclean-am maintainer-clean-generic
711874
diff --git a/support/export/auth.c b/support/export/auth.c
index 03ce4b8..2d7960f 100644
--- a/support/export/auth.c
+++ b/support/export/auth.c
@@ -82,7 +82,7 @@ check_useipaddr(void)
82}82}
8383
84unsigned int84unsigned int
85auth_reload()85auth_reload(void)
86{86{
87 struct stat stb;87 struct stat stb;
88 static ino_t last_inode;88 static ino_t last_inode;
diff --git a/support/export/cache.c b/support/export/cache.c
index a5823e9..19bbba5 100644
--- a/support/export/cache.c
+++ b/support/export/cache.c
@@ -33,6 +33,7 @@
33#include "export.h"33#include "export.h"
34#include "pseudoflavors.h"34#include "pseudoflavors.h"
35#include "xcommon.h"35#include "xcommon.h"
36#include "reexport.h"
3637
37#ifdef HAVE_JUNCTION_SUPPORT38#ifdef HAVE_JUNCTION_SUPPORT
38#include "fsloc.h"39#include "fsloc.h"
@@ -235,6 +236,16 @@ static void auth_unix_gid(int f)
235 xlog(L_ERROR, "auth_unix_gid: error writing reply");236 xlog(L_ERROR, "auth_unix_gid: error writing reply");
236}237}
237238
239static int match_crossmnt_fsidnum(uint32_t parsed_fsidnum, char *path)
240{
241 uint32_t fsidnum;
242
243 if (reexpdb_fsidnum_by_path(path, &fsidnum, 0) == 0)
244 return 0;
245
246 return fsidnum == parsed_fsidnum;
247}
248
238#ifdef USE_BLKID249#ifdef USE_BLKID
239static const char *get_uuid_blkdev(char *path)250static const char *get_uuid_blkdev(char *path)
240{251{
@@ -346,27 +357,27 @@ static int uuid_by_path(char *path, int type, size_t uuidlen, char *uuid)
346357
347 /* Possible sources of uuid are358 /* Possible sources of uuid are
348 * - blkid uuid359 * - blkid uuid
349 * - statfs64 uuid360 * - statfs uuid
350 *361 *
351 * On some filesystems (e.g. vfat) the statfs64 uuid is simply an362 * On some filesystems (e.g. vfat) the statfs uuid is simply an
352 * encoding of the device that the filesystem is mounted from, so363 * encoding of the device that the filesystem is mounted from, so
353 * it we be very bad to use that (as device numbers change). blkid364 * it we be very bad to use that (as device numbers change). blkid
354 * must be preferred.365 * must be preferred.
355 * On other filesystems (e.g. btrfs) the statfs64 uuid contains366 * On other filesystems (e.g. btrfs) the statfs uuid contains
356 * important info that the blkid uuid cannot contain: This happens367 * important info that the blkid uuid cannot contain: This happens
357 * when multiple subvolumes are exported (they have the same368 * when multiple subvolumes are exported (they have the same
358 * blkid uuid but different statfs64 uuids).369 * blkid uuid but different statfs uuids).
359 * We rely on get_uuid_blkdev *knowing* which is which and not returning370 * We rely on get_uuid_blkdev *knowing* which is which and not returning
360 * a uuid for filesystems where the statfs64 uuid is better.371 * a uuid for filesystems where the statfs uuid is better.
361 *372 *
362 */373 */
363 struct statfs64 st;374 struct statfs st;
364 char fsid_val[17];375 char fsid_val[17];
365 const char *blkid_val = NULL;376 const char *blkid_val = NULL;
366 const char *val;377 const char *val;
367 int rc;378 int rc;
368379
369 rc = nfsd_path_statfs64(path, &st);380 rc = nfsd_path_statfs(path, &st);
370381
371 if (type == 0 && rc == 0) {382 if (type == 0 && rc == 0) {
372 const unsigned long *bad;383 const unsigned long *bad;
@@ -410,12 +421,16 @@ static char *next_mnt(void **v, char *p)
410 *v = f;421 *v = f;
411 } else422 } else
412 f = *v;423 f = *v;
413 while ((me = getmntent(f)) != NULL && l > 1) {424 while ((me = getmntent(f)) != NULL && l >= 1) {
414 char *mnt_dir = nfsd_path_strip_root(me->mnt_dir);425 char *mnt_dir = nfsd_path_strip_root(me->mnt_dir);
415426
416 if (!mnt_dir)427 if (!mnt_dir)
417 continue;428 continue;
418429
430 /* Everything below "/" is a proper sub-mount */
431 if (strcmp(p, "/") == 0)
432 return mnt_dir;
433
419 if (strncmp(mnt_dir, p, l) == 0 && mnt_dir[l] == '/')434 if (strncmp(mnt_dir, p, l) == 0 && mnt_dir[l] == '/')
420 return mnt_dir;435 return mnt_dir;
421 }436 }
@@ -684,8 +699,13 @@ static int match_fsid(struct parsed_fsid *parsed, nfs_export *exp, char *path)
684 goto match;699 goto match;
685 case FSID_NUM:700 case FSID_NUM:
686 if (((exp->m_export.e_flags & NFSEXP_FSID) == 0 ||701 if (((exp->m_export.e_flags & NFSEXP_FSID) == 0 ||
687 exp->m_export.e_fsid != parsed->fsidnum))702 exp->m_export.e_fsid != parsed->fsidnum)) {
703 if ((exp->m_export.e_flags & NFSEXP_CROSSMOUNT) && exp->m_export.e_reexport != REEXP_NONE &&
704 match_crossmnt_fsidnum(parsed->fsidnum, path))
705 goto match;
706
688 goto nomatch;707 goto nomatch;
708 }
689 goto match;709 goto match;
690 case FSID_UUID4_INUM:710 case FSID_UUID4_INUM:
691 case FSID_UUID16_INUM:711 case FSID_UUID16_INUM:
@@ -758,6 +778,7 @@ static void nfsd_fh(int f)
758 int dev_missing = 0;778 int dev_missing = 0;
759 char buf[RPC_CHAN_BUF_SIZE], *bp;779 char buf[RPC_CHAN_BUF_SIZE], *bp;
760 int blen;780 int blen;
781 int did_uncover = 0;
761782
762 blen = cache_read(f, buf, sizeof(buf));783 blen = cache_read(f, buf, sizeof(buf));
763 if (blen <= 0 || buf[blen-1] != '\n') return;784 if (blen <= 0 || buf[blen-1] != '\n') return;
@@ -795,6 +816,11 @@ static void nfsd_fh(int f)
795 for (exp = exportlist[i].p_head; exp; exp = next_exp) {816 for (exp = exportlist[i].p_head; exp; exp = next_exp) {
796 char *path;817 char *path;
797818
819 if (!did_uncover && parsed.fsidnum && parsed.fsidtype == FSID_NUM && exp->m_export.e_reexport != REEXP_NONE) {
820 reexpdb_uncover_subvolume(parsed.fsidnum);
821 did_uncover = 1;
822 }
823
798 if (exp->m_export.e_flags & NFSEXP_CROSSMOUNT) {824 if (exp->m_export.e_flags & NFSEXP_CROSSMOUNT) {
799 static nfs_export *prev = NULL;825 static nfs_export *prev = NULL;
800 static void *mnt = NULL;826 static void *mnt = NULL;
@@ -932,7 +958,8 @@ static void write_fsloc(char **bp, int *blen, struct exportent *ep)
932 release_replicas(servers);958 release_replicas(servers);
933}959}
934#endif960#endif
935static void write_secinfo(char **bp, int *blen, struct exportent *ep, int flag_mask)961
962static void write_secinfo(char **bp, int *blen, struct exportent *ep, int flag_mask, int extra_flag)
936{963{
937 struct sec_entry *p;964 struct sec_entry *p;
938965
@@ -947,9 +974,31 @@ static void write_secinfo(char **bp, int *blen, struct exportent *ep, int flag_m
947 qword_addint(bp, blen, p - ep->e_secinfo);974 qword_addint(bp, blen, p - ep->e_secinfo);
948 for (p = ep->e_secinfo; p->flav; p++) {975 for (p = ep->e_secinfo; p->flav; p++) {
949 qword_addint(bp, blen, p->flav->fnum);976 qword_addint(bp, blen, p->flav->fnum);
950 qword_addint(bp, blen, p->flags & flag_mask);977 qword_addint(bp, blen, (p->flags | extra_flag) & flag_mask);
951 }978 }
979}
980
981static void write_xprtsec(char **bp, int *blen, struct exportent *ep)
982{
983 struct xprtsec_entry *p;
952984
985 for (p = ep->e_xprtsec; p->info; p++);
986 if (p == ep->e_xprtsec)
987 return;
988
989 qword_add(bp, blen, "xprtsec");
990 qword_addint(bp, blen, p - ep->e_xprtsec);
991 for (p = ep->e_xprtsec; p->info; p++)
992 qword_addint(bp, blen, p->info->number);
993}
994
995static int can_reexport_via_fsidnum(struct exportent *exp, struct statfs *st)
996{
997 if (st->f_type != 0x6969 /* NFS_SUPER_MAGIC */)
998 return 0;
999
1000 return exp->e_reexport == REEXP_PREDEFINED_FSIDNUM ||
1001 exp->e_reexport == REEXP_AUTO_FSIDNUM;
953}1002}
9541003
955static int dump_to_cache(int f, char *buf, int blen, char *domain,1004static int dump_to_cache(int f, char *buf, int blen, char *domain,
@@ -968,17 +1017,48 @@ static int dump_to_cache(int f, char *buf, int blen, char *domain,
968 if (exp) {1017 if (exp) {
969 int different_fs = strcmp(path, exp->e_path) != 0;1018 int different_fs = strcmp(path, exp->e_path) != 0;
970 int flag_mask = different_fs ? ~NFSEXP_FSID : ~0;1019 int flag_mask = different_fs ? ~NFSEXP_FSID : ~0;
1020 int rc, do_fsidnum = 0;
1021 uint32_t fsidnum = exp->e_fsid;
1022
1023 if (different_fs) {
1024 struct statfs st;
1025
1026 rc = nfsd_path_statfs(path, &st);
1027 if (rc) {
1028 xlog(L_WARNING, "unable to statfs %s", path);
1029 errno = EINVAL;
1030 return -1;
1031 }
1032
1033 if (can_reexport_via_fsidnum(exp, &st)) {
1034 do_fsidnum = 1;
1035 flag_mask = ~0;
1036 }
1037 }
9711038
972 qword_adduint(&bp, &blen, now + exp->e_ttl);1039 qword_adduint(&bp, &blen, now + exp->e_ttl);
973 qword_addint(&bp, &blen, exp->e_flags & flag_mask);1040
1041 if (do_fsidnum) {
1042 uint32_t search_fsidnum = 0;
1043 if (exp->e_reexport != REEXP_NONE && reexpdb_fsidnum_by_path(path, &search_fsidnum,
1044 exp->e_reexport == REEXP_AUTO_FSIDNUM) == 0) {
1045 errno = EINVAL;
1046 return -1;
1047 }
1048 fsidnum = search_fsidnum;
1049 qword_addint(&bp, &blen, exp->e_flags | NFSEXP_FSID);
1050 } else {
1051 qword_addint(&bp, &blen, exp->e_flags & flag_mask);
1052 }
1053
974 qword_addint(&bp, &blen, exp->e_anonuid);1054 qword_addint(&bp, &blen, exp->e_anonuid);
975 qword_addint(&bp, &blen, exp->e_anongid);1055 qword_addint(&bp, &blen, exp->e_anongid);
976 qword_addint(&bp, &blen, exp->e_fsid);1056 qword_addint(&bp, &blen, fsidnum);
9771057
978#ifdef HAVE_JUNCTION_SUPPORT1058#ifdef HAVE_JUNCTION_SUPPORT
979 write_fsloc(&bp, &blen, exp);1059 write_fsloc(&bp, &blen, exp);
980#endif1060#endif
981 write_secinfo(&bp, &blen, exp, flag_mask);1061 write_secinfo(&bp, &blen, exp, flag_mask, do_fsidnum ? NFSEXP_FSID : 0);
982 if (exp->e_uuid == NULL || different_fs) {1062 if (exp->e_uuid == NULL || different_fs) {
983 char u[16];1063 char u[16];
984 if ((exp->e_flags & flag_mask & NFSEXP_FSID) == 0 &&1064 if ((exp->e_flags & flag_mask & NFSEXP_FSID) == 0 &&
@@ -992,6 +1072,7 @@ static int dump_to_cache(int f, char *buf, int blen, char *domain,
992 qword_add(&bp, &blen, "uuid");1072 qword_add(&bp, &blen, "uuid");
993 qword_addhex(&bp, &blen, u, 16);1073 qword_addhex(&bp, &blen, u, 16);
994 }1074 }
1075 write_xprtsec(&bp, &blen, exp);
995 xlog(D_AUTH, "granted access to %s for %s",1076 xlog(D_AUTH, "granted access to %s for %s",
996 path, *domain == '$' ? domain+1 : domain);1077 path, *domain == '$' ? domain+1 : domain);
997 } else {1078 } else {
diff --git a/support/export/client.c b/support/export/client.c
index ea4f89d..79164fe 100644
--- a/support/export/client.c
+++ b/support/export/client.c
@@ -699,6 +699,9 @@ check_netgroup(const nfs_client *clp, const struct addrinfo *ai)
699699
700 /* check whether the IP itself is in the netgroup */700 /* check whether the IP itself is in the netgroup */
701 ip = calloc(INET6_ADDRSTRLEN, 1);701 ip = calloc(INET6_ADDRSTRLEN, 1);
702 if (ip == NULL)
703 goto out;
704
702 if (inet_ntop(ai->ai_family, &(((struct sockaddr_in *)ai->ai_addr)->sin_addr), ip, INET6_ADDRSTRLEN) == ip) {705 if (inet_ntop(ai->ai_family, &(((struct sockaddr_in *)ai->ai_addr)->sin_addr), ip, INET6_ADDRSTRLEN) == ip) {
703 if (innetgr(netgroup, ip, NULL, NULL)) {706 if (innetgr(netgroup, ip, NULL, NULL)) {
704 free(hname);707 free(hname);
diff --git a/support/export/export.c b/support/export/export.c
index 03390df..3e48c42 100644
--- a/support/export/export.c
+++ b/support/export/export.c
@@ -25,6 +25,7 @@
25#include "exportfs.h"25#include "exportfs.h"
26#include "nfsd_path.h"26#include "nfsd_path.h"
27#include "xlog.h"27#include "xlog.h"
28#include "reexport.h"
2829
29exp_hash_table exportlist[MCL_MAXTYPES] = {{NULL, {{NULL,NULL}, }}, }; 30exp_hash_table exportlist[MCL_MAXTYPES] = {{NULL, {{NULL,NULL}, }}, };
30static int export_hash(char *);31static int export_hash(char *);
@@ -115,6 +116,7 @@ export_read(char *fname, int ignore_hosts)
115 nfs_export *exp;116 nfs_export *exp;
116117
117 int volumes = 0;118 int volumes = 0;
119 int reexport_found = 0;
118120
119 setexportent(fname, "r");121 setexportent(fname, "r");
120 while ((eep = getexportent(0,1)) != NULL) {122 while ((eep = getexportent(0,1)) != NULL) {
@@ -126,7 +128,25 @@ export_read(char *fname, int ignore_hosts)
126 }128 }
127 else129 else
128 warn_duplicated_exports(exp, eep);130 warn_duplicated_exports(exp, eep);
131
132 if (eep->e_reexport)
133 reexport_found = 1;
129 }134 }
135
136 if (reexport_found) {
137 for (int i = 0; i < MCL_MAXTYPES; i++) {
138 for (exp = exportlist[i].p_head; exp; exp = exp->m_next) {
139 if (exp->m_export.e_reexport)
140 continue;
141
142 if (exp->m_export.e_flags & NFSEXP_FSID) {
143 xlog(L_ERROR, "When a reexport= option is present no manully assigned numerical fsid= options are allowed");
144 return -1;
145 }
146 }
147 }
148 }
149
130 endexportent();150 endexportent();
131151
132 return volumes;152 return volumes;
diff --git a/support/export/v4clients.c b/support/export/v4clients.c
index 5f15b61..3230251 100644
--- a/support/export/v4clients.c
+++ b/support/export/v4clients.c
@@ -26,7 +26,7 @@ void v4clients_init(void)
26{26{
27 struct stat sb;27 struct stat sb;
2828
29 if (!stat("/proc/fs/nfsd/clients", &sb) == 0 ||29 if (stat("/proc/fs/nfsd/clients", &sb) != 0 ||
30 !S_ISDIR(sb.st_mode))30 !S_ISDIR(sb.st_mode))
31 return;31 return;
32 if (clients_fd >= 0)32 if (clients_fd >= 0)
diff --git a/support/export/v4root.c b/support/export/v4root.c
index c12a7d8..03805dc 100644
--- a/support/export/v4root.c
+++ b/support/export/v4root.c
@@ -66,6 +66,8 @@ set_pseudofs_security(struct exportent *pseudo)
6666
67 if (!flav->fnum)67 if (!flav->fnum)
68 continue;68 continue;
69 if (flav->need_krb5 && access("/etc/krb5.keytab", F_OK) != 0)
70 continue;
6971
70 i = secinfo_addflavor(flav, pseudo);72 i = secinfo_addflavor(flav, pseudo);
71 new = &pseudo->e_secinfo[i];73 new = &pseudo->e_secinfo[i];
@@ -198,7 +200,7 @@ static int v4root_add_parents(nfs_export *exp)
198 * looking for components of the v4 mount.200 * looking for components of the v4 mount.
199 */201 */
200void202void
201v4root_set()203v4root_set(void)
202{204{
203 nfs_export *exp;205 nfs_export *exp;
204 int i;206 int i;
diff --git a/support/export/xtab.c b/support/export/xtab.c
index c888a80..e210ca9 100644
--- a/support/export/xtab.c
+++ b/support/export/xtab.c
@@ -135,7 +135,7 @@ xtab_write(char *xtab, char *xtabtmp, char *lockfn, int is_export)
135}135}
136136
137int137int
138xtab_export_write()138xtab_export_write(void)
139{139{
140 return xtab_write(etab.statefn, etab.tmpfn, etab.lockfn, 1);140 return xtab_write(etab.statefn, etab.tmpfn, etab.lockfn, 1);
141}141}
diff --git a/support/include/Makefile.in b/support/include/Makefile.in
index a0982c5..6b08669 100644
--- a/support/include/Makefile.in
+++ b/support/include/Makefile.in
@@ -268,6 +268,8 @@ LIBCRYPT = @LIBCRYPT@
268LIBEVENT = @LIBEVENT@268LIBEVENT = @LIBEVENT@
269LIBKEYUTILS = @LIBKEYUTILS@269LIBKEYUTILS = @LIBKEYUTILS@
270LIBMOUNT = @LIBMOUNT@270LIBMOUNT = @LIBMOUNT@
271LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
272LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
271LIBNSL = @LIBNSL@273LIBNSL = @LIBNSL@
272LIBOBJS = @LIBOBJS@274LIBOBJS = @LIBOBJS@
273LIBPTHREAD = @LIBPTHREAD@275LIBPTHREAD = @LIBPTHREAD@
@@ -369,7 +371,6 @@ localedir = @localedir@
369localstatedir = @localstatedir@371localstatedir = @localstatedir@
370mandir = @mandir@372mandir = @mandir@
371mkdir_p = @mkdir_p@373mkdir_p = @mkdir_p@
372modprobedir = @modprobedir@
373mountfile = @mountfile@374mountfile = @mountfile@
374nfsconfig = @nfsconfig@375nfsconfig = @nfsconfig@
375oldincludedir = @oldincludedir@376oldincludedir = @oldincludedir@
diff --git a/support/include/nfs/Makefile.in b/support/include/nfs/Makefile.in
index b4eb775..015d6d8 100644
--- a/support/include/nfs/Makefile.in
+++ b/support/include/nfs/Makefile.in
@@ -225,6 +225,8 @@ LIBCRYPT = @LIBCRYPT@
225LIBEVENT = @LIBEVENT@225LIBEVENT = @LIBEVENT@
226LIBKEYUTILS = @LIBKEYUTILS@226LIBKEYUTILS = @LIBKEYUTILS@
227LIBMOUNT = @LIBMOUNT@227LIBMOUNT = @LIBMOUNT@
228LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
229LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
228LIBNSL = @LIBNSL@230LIBNSL = @LIBNSL@
229LIBOBJS = @LIBOBJS@231LIBOBJS = @LIBOBJS@
230LIBPTHREAD = @LIBPTHREAD@232LIBPTHREAD = @LIBPTHREAD@
@@ -326,7 +328,6 @@ localedir = @localedir@
326localstatedir = @localstatedir@328localstatedir = @localstatedir@
327mandir = @mandir@329mandir = @mandir@
328mkdir_p = @mkdir_p@330mkdir_p = @mkdir_p@
329modprobedir = @modprobedir@
330mountfile = @mountfile@331mountfile = @mountfile@
331nfsconfig = @nfsconfig@332nfsconfig = @nfsconfig@
332oldincludedir = @oldincludedir@333oldincludedir = @oldincludedir@
diff --git a/support/include/nfs/export.h b/support/include/nfs/export.h
index 0eca828..be5867c 100644
--- a/support/include/nfs/export.h
+++ b/support/include/nfs/export.h
@@ -40,4 +40,18 @@
40#define NFSEXP_OLD_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \40#define NFSEXP_OLD_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \
41 | NFSEXP_ALLSQUASH)41 | NFSEXP_ALLSQUASH)
4242
43/*
44 * Transport layer security policies that are permitted to access
45 * an export
46 */
47#define NFSEXP_XPRTSEC_NONE 0x0001
48#define NFSEXP_XPRTSEC_TLS 0x0002
49#define NFSEXP_XPRTSEC_MTLS 0x0004
50
51#define NFSEXP_XPRTSEC_NUM (3)
52
53#define NFSEXP_XPRTSEC_ALL (NFSEXP_XPRTSEC_NONE | \
54 NFSEXP_XPRTSEC_TLS | \
55 NFSEXP_XPRTSEC_MTLS)
56
43#endif /* _NSF_EXPORT_H */57#endif /* _NSF_EXPORT_H */
diff --git a/support/include/nfsd_path.h b/support/include/nfsd_path.h
index 3b73aad..aa1e1dd 100644
--- a/support/include/nfsd_path.h
+++ b/support/include/nfsd_path.h
@@ -7,7 +7,7 @@
7#include <sys/stat.h>7#include <sys/stat.h>
88
9struct file_handle;9struct file_handle;
10struct statfs64;10struct statfs;
1111
12void nfsd_path_init(void);12void nfsd_path_init(void);
1313
@@ -18,8 +18,8 @@ char * nfsd_path_prepend_dir(const char *dir, const char *pathname);
18int nfsd_path_stat(const char *pathname, struct stat *statbuf);18int nfsd_path_stat(const char *pathname, struct stat *statbuf);
19int nfsd_path_lstat(const char *pathname, struct stat *statbuf);19int nfsd_path_lstat(const char *pathname, struct stat *statbuf);
2020
21int nfsd_path_statfs64(const char *pathname,21int nfsd_path_statfs(const char *pathname,
22 struct statfs64 *statbuf);22 struct statfs *statbuf);
2323
24char * nfsd_realpath(const char *path, char *resolved_path);24char * nfsd_realpath(const char *path, char *resolved_path);
2525
diff --git a/support/include/nfslib.h b/support/include/nfslib.h
index 6faba71..bdbde78 100644
--- a/support/include/nfslib.h
+++ b/support/include/nfslib.h
@@ -62,6 +62,18 @@ struct sec_entry {
62 int flags;62 int flags;
63};63};
6464
65#define XPRTSECMODE_COUNT 3
66
67struct xprtsec_info {
68 const char *name;
69 int number;
70};
71
72struct xprtsec_entry {
73 const struct xprtsec_info *info;
74 int flags;
75};
76
65/*77/*
66 * Data related to a single exports entry as returned by getexportent.78 * Data related to a single exports entry as returned by getexportent.
67 * FIXME: export options should probably be parsed at a later time to79 * FIXME: export options should probably be parsed at a later time to
@@ -83,8 +95,10 @@ struct exportent {
83 char * e_fslocdata;95 char * e_fslocdata;
84 char * e_uuid;96 char * e_uuid;
85 struct sec_entry e_secinfo[SECFLAVOR_COUNT+1];97 struct sec_entry e_secinfo[SECFLAVOR_COUNT+1];
98 struct xprtsec_entry e_xprtsec[XPRTSECMODE_COUNT + 1];
86 unsigned int e_ttl;99 unsigned int e_ttl;
87 char * e_realpath;100 char * e_realpath;
101 int e_reexport;
88};102};
89103
90struct rmtabent {104struct rmtabent {
@@ -99,6 +113,7 @@ struct rmtabent {
99void setexportent(char *fname, char *type);113void setexportent(char *fname, char *type);
100struct exportent * getexportent(int,int);114struct exportent * getexportent(int,int);
101void secinfo_show(FILE *fp, struct exportent *ep);115void secinfo_show(FILE *fp, struct exportent *ep);
116void xprtsecinfo_show(FILE *fp, struct exportent *ep);
102void putexportent(struct exportent *xep);117void putexportent(struct exportent *xep);
103void endexportent(void);118void endexportent(void);
104struct exportent * mkexportent(char *hname, char *path, char *opts);119struct exportent * mkexportent(char *hname, char *path, char *opts);
diff --git a/support/include/pseudoflavors.h b/support/include/pseudoflavors.h
index deb052b..1f16f3f 100644
--- a/support/include/pseudoflavors.h
+++ b/support/include/pseudoflavors.h
@@ -8,6 +8,7 @@
8struct flav_info {8struct flav_info {
9 char *flavour;9 char *flavour;
10 int fnum;10 int fnum;
11 int need_krb5;
11};12};
1213
13extern struct flav_info flav_map[];14extern struct flav_info flav_map[];
diff --git a/support/include/rpcsvc/Makefile.in b/support/include/rpcsvc/Makefile.in
index 635d867..3d0b2e7 100644
--- a/support/include/rpcsvc/Makefile.in
+++ b/support/include/rpcsvc/Makefile.in
@@ -225,6 +225,8 @@ LIBCRYPT = @LIBCRYPT@
225LIBEVENT = @LIBEVENT@225LIBEVENT = @LIBEVENT@
226LIBKEYUTILS = @LIBKEYUTILS@226LIBKEYUTILS = @LIBKEYUTILS@
227LIBMOUNT = @LIBMOUNT@227LIBMOUNT = @LIBMOUNT@
228LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
229LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
228LIBNSL = @LIBNSL@230LIBNSL = @LIBNSL@
229LIBOBJS = @LIBOBJS@231LIBOBJS = @LIBOBJS@
230LIBPTHREAD = @LIBPTHREAD@232LIBPTHREAD = @LIBPTHREAD@
@@ -326,7 +328,6 @@ localedir = @localedir@
326localstatedir = @localstatedir@328localstatedir = @localstatedir@
327mandir = @mandir@329mandir = @mandir@
328mkdir_p = @mkdir_p@330mkdir_p = @mkdir_p@
329modprobedir = @modprobedir@
330mountfile = @mountfile@331mountfile = @mountfile@
331nfsconfig = @nfsconfig@332nfsconfig = @nfsconfig@
332oldincludedir = @oldincludedir@333oldincludedir = @oldincludedir@
diff --git a/support/include/sys/Makefile.in b/support/include/sys/Makefile.in
index b42c1fb..28f99a6 100644
--- a/support/include/sys/Makefile.in
+++ b/support/include/sys/Makefile.in
@@ -264,6 +264,8 @@ LIBCRYPT = @LIBCRYPT@
264LIBEVENT = @LIBEVENT@264LIBEVENT = @LIBEVENT@
265LIBKEYUTILS = @LIBKEYUTILS@265LIBKEYUTILS = @LIBKEYUTILS@
266LIBMOUNT = @LIBMOUNT@266LIBMOUNT = @LIBMOUNT@
267LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
268LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
267LIBNSL = @LIBNSL@269LIBNSL = @LIBNSL@
268LIBOBJS = @LIBOBJS@270LIBOBJS = @LIBOBJS@
269LIBPTHREAD = @LIBPTHREAD@271LIBPTHREAD = @LIBPTHREAD@
@@ -365,7 +367,6 @@ localedir = @localedir@
365localstatedir = @localstatedir@367localstatedir = @localstatedir@
366mandir = @mandir@368mandir = @mandir@
367mkdir_p = @mkdir_p@369mkdir_p = @mkdir_p@
368modprobedir = @modprobedir@
369mountfile = @mountfile@370mountfile = @mountfile@
370nfsconfig = @nfsconfig@371nfsconfig = @nfsconfig@
371oldincludedir = @oldincludedir@372oldincludedir = @oldincludedir@
diff --git a/support/include/sys/fs/Makefile.in b/support/include/sys/fs/Makefile.in
index 5ee8920..596c100 100644
--- a/support/include/sys/fs/Makefile.in
+++ b/support/include/sys/fs/Makefile.in
@@ -225,6 +225,8 @@ LIBCRYPT = @LIBCRYPT@
225LIBEVENT = @LIBEVENT@225LIBEVENT = @LIBEVENT@
226LIBKEYUTILS = @LIBKEYUTILS@226LIBKEYUTILS = @LIBKEYUTILS@
227LIBMOUNT = @LIBMOUNT@227LIBMOUNT = @LIBMOUNT@
228LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
229LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
228LIBNSL = @LIBNSL@230LIBNSL = @LIBNSL@
229LIBOBJS = @LIBOBJS@231LIBOBJS = @LIBOBJS@
230LIBPTHREAD = @LIBPTHREAD@232LIBPTHREAD = @LIBPTHREAD@
@@ -326,7 +328,6 @@ localedir = @localedir@
326localstatedir = @localstatedir@328localstatedir = @localstatedir@
327mandir = @mandir@329mandir = @mandir@
328mkdir_p = @mkdir_p@330mkdir_p = @mkdir_p@
329modprobedir = @modprobedir@
330mountfile = @mountfile@331mountfile = @mountfile@
331nfsconfig = @nfsconfig@332nfsconfig = @nfsconfig@
332oldincludedir = @oldincludedir@333oldincludedir = @oldincludedir@
diff --git a/support/junction/Makefile.in b/support/junction/Makefile.in
index ed8cd7f..0e9200b 100644
--- a/support/junction/Makefile.in
+++ b/support/junction/Makefile.in
@@ -261,6 +261,8 @@ LIBCRYPT = @LIBCRYPT@
261LIBEVENT = @LIBEVENT@261LIBEVENT = @LIBEVENT@
262LIBKEYUTILS = @LIBKEYUTILS@262LIBKEYUTILS = @LIBKEYUTILS@
263LIBMOUNT = @LIBMOUNT@263LIBMOUNT = @LIBMOUNT@
264LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
265LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
264LIBNSL = @LIBNSL@266LIBNSL = @LIBNSL@
265LIBOBJS = @LIBOBJS@267LIBOBJS = @LIBOBJS@
266LIBPTHREAD = @LIBPTHREAD@268LIBPTHREAD = @LIBPTHREAD@
@@ -362,7 +364,6 @@ localedir = @localedir@
362localstatedir = @localstatedir@364localstatedir = @localstatedir@
363mandir = @mandir@365mandir = @mandir@
364mkdir_p = @mkdir_p@366mkdir_p = @mkdir_p@
365modprobedir = @modprobedir@
366mountfile = @mountfile@367mountfile = @mountfile@
367nfsconfig = @nfsconfig@368nfsconfig = @nfsconfig@
368oldincludedir = @oldincludedir@369oldincludedir = @oldincludedir@
diff --git a/support/junction/junction.c b/support/junction/junction.c
index 41cce26..0628bb0 100644
--- a/support/junction/junction.c
+++ b/support/junction/junction.c
@@ -63,7 +63,7 @@ junction_open_path(const char *pathname, int *fd)
63 if (pathname == NULL || fd == NULL)63 if (pathname == NULL || fd == NULL)
64 return FEDFS_ERR_INVAL;64 return FEDFS_ERR_INVAL;
6565
66 tmp = open(pathname, O_DIRECTORY);66 tmp = open(pathname, O_PATH|O_DIRECTORY);
67 if (tmp == -1) {67 if (tmp == -1) {
68 switch (errno) {68 switch (errno) {
69 case EPERM:69 case EPERM:
@@ -93,7 +93,7 @@ junction_is_directory(int fd, const char *path)
93{93{
94 struct stat stb;94 struct stat stb;
9595
96 if (fstat(fd, &stb) == -1) {96 if (fstatat(fd, "", &stb, AT_NO_AUTOMOUNT|AT_EMPTY_PATH) == -1) {
97 xlog(D_GENERAL, "%s: failed to stat %s: %m",97 xlog(D_GENERAL, "%s: failed to stat %s: %m",
98 __func__, path);98 __func__, path);
99 return FEDFS_ERR_ACCESS;99 return FEDFS_ERR_ACCESS;
@@ -121,7 +121,7 @@ junction_is_sticky_bit_set(int fd, const char *path)
121{121{
122 struct stat stb;122 struct stat stb;
123123
124 if (fstat(fd, &stb) == -1) {124 if (fstatat(fd, "", &stb, AT_NO_AUTOMOUNT|AT_EMPTY_PATH) == -1) {
125 xlog(D_GENERAL, "%s: failed to stat %s: %m",125 xlog(D_GENERAL, "%s: failed to stat %s: %m",
126 __func__, path);126 __func__, path);
127 return FEDFS_ERR_ACCESS;127 return FEDFS_ERR_ACCESS;
@@ -155,7 +155,7 @@ junction_set_sticky_bit(int fd, const char *path)
155{155{
156 struct stat stb;156 struct stat stb;
157157
158 if (fstat(fd, &stb) == -1) {158 if (fstatat(fd, "", &stb, AT_NO_AUTOMOUNT|AT_EMPTY_PATH) == -1) {
159 xlog(D_GENERAL, "%s: failed to stat %s: %m",159 xlog(D_GENERAL, "%s: failed to stat %s: %m",
160 __func__, path);160 __func__, path);
161 return FEDFS_ERR_ACCESS;161 return FEDFS_ERR_ACCESS;
@@ -393,7 +393,7 @@ junction_get_mode(const char *pathname, mode_t *mode)
393 if (retval != FEDFS_OK)393 if (retval != FEDFS_OK)
394 return retval;394 return retval;
395395
396 if (fstat(fd, &stb) == -1) {396 if (fstatat(fd, "", &stb, AT_NO_AUTOMOUNT|AT_EMPTY_PATH) == -1) {
397 xlog(D_GENERAL, "%s: failed to stat %s: %m",397 xlog(D_GENERAL, "%s: failed to stat %s: %m",
398 __func__, pathname);398 __func__, pathname);
399 (void)close(fd);399 (void)close(fd);
diff --git a/support/misc/Makefile.in b/support/misc/Makefile.in
index 8943bff..45e6cec 100644
--- a/support/misc/Makefile.in
+++ b/support/misc/Makefile.in
@@ -265,6 +265,8 @@ LIBCRYPT = @LIBCRYPT@
265LIBEVENT = @LIBEVENT@265LIBEVENT = @LIBEVENT@
266LIBKEYUTILS = @LIBKEYUTILS@266LIBKEYUTILS = @LIBKEYUTILS@
267LIBMOUNT = @LIBMOUNT@267LIBMOUNT = @LIBMOUNT@
268LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
269LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
268LIBNSL = @LIBNSL@270LIBNSL = @LIBNSL@
269LIBOBJS = @LIBOBJS@271LIBOBJS = @LIBOBJS@
270LIBPTHREAD = @LIBPTHREAD@272LIBPTHREAD = @LIBPTHREAD@
@@ -366,7 +368,6 @@ localedir = @localedir@
366localstatedir = @localstatedir@368localstatedir = @localstatedir@
367mandir = @mandir@369mandir = @mandir@
368mkdir_p = @mkdir_p@370mkdir_p = @mkdir_p@
369modprobedir = @modprobedir@
370mountfile = @mountfile@371mountfile = @mountfile@
371nfsconfig = @nfsconfig@372nfsconfig = @nfsconfig@
372oldincludedir = @oldincludedir@373oldincludedir = @oldincludedir@
diff --git a/support/misc/nfsd_path.c b/support/misc/nfsd_path.c
index 65e53c1..c3dea4f 100644
--- a/support/misc/nfsd_path.c
+++ b/support/misc/nfsd_path.c
@@ -184,46 +184,46 @@ nfsd_path_lstat(const char *pathname, struct stat *statbuf)
184 return nfsd_run_stat(nfsd_wq, nfsd_lstatfunc, pathname, statbuf);184 return nfsd_run_stat(nfsd_wq, nfsd_lstatfunc, pathname, statbuf);
185}185}
186186
187struct nfsd_statfs64_data {187struct nfsd_statfs_data {
188 const char *pathname;188 const char *pathname;
189 struct statfs64 *statbuf;189 struct statfs *statbuf;
190 int ret;190 int ret;
191 int err;191 int err;
192};192};
193193
194static void194static void
195nfsd_statfs64func(void *data)195nfsd_statfsfunc(void *data)
196{196{
197 struct nfsd_statfs64_data *d = data;197 struct nfsd_statfs_data *d = data;
198198
199 d->ret = statfs64(d->pathname, d->statbuf);199 d->ret = statfs(d->pathname, d->statbuf);
200 if (d->ret < 0)200 if (d->ret < 0)
201 d->err = errno;201 d->err = errno;
202}202}
203203
204static int204static int
205nfsd_run_statfs64(struct xthread_workqueue *wq,205nfsd_run_statfs(struct xthread_workqueue *wq,
206 const char *pathname,206 const char *pathname,
207 struct statfs64 *statbuf)207 struct statfs *statbuf)
208{208{
209 struct nfsd_statfs64_data data = {209 struct nfsd_statfs_data data = {
210 pathname,210 pathname,
211 statbuf,211 statbuf,
212 0,212 0,
213 0213 0
214 };214 };
215 xthread_work_run_sync(wq, nfsd_statfs64func, &data);215 xthread_work_run_sync(wq, nfsd_statfsfunc, &data);
216 if (data.ret < 0)216 if (data.ret < 0)
217 errno = data.err;217 errno = data.err;
218 return data.ret;218 return data.ret;
219}219}
220220
221int221int
222nfsd_path_statfs64(const char *pathname, struct statfs64 *statbuf)222nfsd_path_statfs(const char *pathname, struct statfs *statbuf)
223{223{
224 if (!nfsd_wq)224 if (!nfsd_wq)
225 return statfs64(pathname, statbuf);225 return statfs(pathname, statbuf);
226 return nfsd_run_statfs64(nfsd_wq, pathname, statbuf);226 return nfsd_run_statfs(nfsd_wq, pathname, statbuf);
227}227}
228228
229struct nfsd_realpath_data {229struct nfsd_realpath_data {
diff --git a/support/nfs/Makefile.am b/support/nfs/Makefile.am
index 67e3a8e..2e1577c 100644
--- a/support/nfs/Makefile.am
+++ b/support/nfs/Makefile.am
@@ -9,6 +9,7 @@ libnfs_la_SOURCES = exports.c rmtab.c xio.c rpcmisc.c rpcdispatch.c \
9 svc_socket.c cacheio.c closeall.c nfs_mntent.c \9 svc_socket.c cacheio.c closeall.c nfs_mntent.c \
10 svc_create.c atomicio.c strlcat.c strlcpy.c10 svc_create.c atomicio.c strlcat.c strlcpy.c
11libnfs_la_LIBADD = libnfsconf.la11libnfs_la_LIBADD = libnfsconf.la
12libnfs_la_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS) -I$(top_srcdir)/support/reexport
1213
13libnfsconf_la_SOURCES = conffile.c xlog.c14libnfsconf_la_SOURCES = conffile.c xlog.c
1415
diff --git a/support/nfs/Makefile.in b/support/nfs/Makefile.in
index 3b97f99..0379852 100644
--- a/support/nfs/Makefile.in
+++ b/support/nfs/Makefile.in
@@ -117,10 +117,15 @@ CONFIG_CLEAN_VPATH_FILES =
117LIBRARIES = $(noinst_LIBRARIES)117LIBRARIES = $(noinst_LIBRARIES)
118LTLIBRARIES = $(noinst_LTLIBRARIES)118LTLIBRARIES = $(noinst_LTLIBRARIES)
119libnfs_la_DEPENDENCIES = libnfsconf.la119libnfs_la_DEPENDENCIES = libnfsconf.la
120am_libnfs_la_OBJECTS = exports.lo rmtab.lo xio.lo rpcmisc.lo \120am_libnfs_la_OBJECTS = libnfs_la-exports.lo libnfs_la-rmtab.lo \
121 rpcdispatch.lo xcommon.lo wildmat.lo mydaemon.lo rpc_socket.lo \121 libnfs_la-xio.lo libnfs_la-rpcmisc.lo libnfs_la-rpcdispatch.lo \
122 getport.lo svc_socket.lo cacheio.lo closeall.lo nfs_mntent.lo \122 libnfs_la-xcommon.lo libnfs_la-wildmat.lo \
123 svc_create.lo atomicio.lo strlcat.lo strlcpy.lo123 libnfs_la-mydaemon.lo libnfs_la-rpc_socket.lo \
124 libnfs_la-getport.lo libnfs_la-svc_socket.lo \
125 libnfs_la-cacheio.lo libnfs_la-closeall.lo \
126 libnfs_la-nfs_mntent.lo libnfs_la-svc_create.lo \
127 libnfs_la-atomicio.lo libnfs_la-strlcat.lo \
128 libnfs_la-strlcpy.lo
124libnfs_la_OBJECTS = $(am_libnfs_la_OBJECTS)129libnfs_la_OBJECTS = $(am_libnfs_la_OBJECTS)
125AM_V_lt = $(am__v_lt_@AM_V@)130AM_V_lt = $(am__v_lt_@AM_V@)
126am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)131am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -144,16 +149,25 @@ am__v_at_1 =
144DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/support/include149DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/support/include
145depcomp = $(SHELL) $(top_srcdir)/depcomp150depcomp = $(SHELL) $(top_srcdir)/depcomp
146am__maybe_remake_depfiles = depfiles151am__maybe_remake_depfiles = depfiles
147am__depfiles_remade = ./$(DEPDIR)/atomicio.Plo ./$(DEPDIR)/cacheio.Plo \152am__depfiles_remade = ./$(DEPDIR)/conffile.Plo \
148 ./$(DEPDIR)/closeall.Plo ./$(DEPDIR)/conffile.Plo \153 ./$(DEPDIR)/libnfs_la-atomicio.Plo \
149 ./$(DEPDIR)/exports.Plo ./$(DEPDIR)/getport.Plo \154 ./$(DEPDIR)/libnfs_la-cacheio.Plo \
150 ./$(DEPDIR)/mydaemon.Plo ./$(DEPDIR)/nfs_mntent.Plo \155 ./$(DEPDIR)/libnfs_la-closeall.Plo \
151 ./$(DEPDIR)/rmtab.Plo ./$(DEPDIR)/rpc_socket.Plo \156 ./$(DEPDIR)/libnfs_la-exports.Plo \
152 ./$(DEPDIR)/rpcdispatch.Plo ./$(DEPDIR)/rpcmisc.Plo \157 ./$(DEPDIR)/libnfs_la-getport.Plo \
153 ./$(DEPDIR)/strlcat.Plo ./$(DEPDIR)/strlcpy.Plo \158 ./$(DEPDIR)/libnfs_la-mydaemon.Plo \
154 ./$(DEPDIR)/svc_create.Plo ./$(DEPDIR)/svc_socket.Plo \159 ./$(DEPDIR)/libnfs_la-nfs_mntent.Plo \
155 ./$(DEPDIR)/wildmat.Plo ./$(DEPDIR)/xcommon.Plo \160 ./$(DEPDIR)/libnfs_la-rmtab.Plo \
156 ./$(DEPDIR)/xio.Plo ./$(DEPDIR)/xlog.Plo161 ./$(DEPDIR)/libnfs_la-rpc_socket.Plo \
162 ./$(DEPDIR)/libnfs_la-rpcdispatch.Plo \
163 ./$(DEPDIR)/libnfs_la-rpcmisc.Plo \
164 ./$(DEPDIR)/libnfs_la-strlcat.Plo \
165 ./$(DEPDIR)/libnfs_la-strlcpy.Plo \
166 ./$(DEPDIR)/libnfs_la-svc_create.Plo \
167 ./$(DEPDIR)/libnfs_la-svc_socket.Plo \
168 ./$(DEPDIR)/libnfs_la-wildmat.Plo \
169 ./$(DEPDIR)/libnfs_la-xcommon.Plo \
170 ./$(DEPDIR)/libnfs_la-xio.Plo ./$(DEPDIR)/xlog.Plo
157am__mv = mv -f171am__mv = mv -f
158COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \172COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
159 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)173 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -271,6 +285,8 @@ LIBCRYPT = @LIBCRYPT@
271LIBEVENT = @LIBEVENT@285LIBEVENT = @LIBEVENT@
272LIBKEYUTILS = @LIBKEYUTILS@286LIBKEYUTILS = @LIBKEYUTILS@
273LIBMOUNT = @LIBMOUNT@287LIBMOUNT = @LIBMOUNT@
288LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
289LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
274LIBNSL = @LIBNSL@290LIBNSL = @LIBNSL@
275LIBOBJS = @LIBOBJS@291LIBOBJS = @LIBOBJS@
276LIBPTHREAD = @LIBPTHREAD@292LIBPTHREAD = @LIBPTHREAD@
@@ -372,7 +388,6 @@ localedir = @localedir@
372localstatedir = @localstatedir@388localstatedir = @localstatedir@
373mandir = @mandir@389mandir = @mandir@
374mkdir_p = @mkdir_p@390mkdir_p = @mkdir_p@
375modprobedir = @modprobedir@
376mountfile = @mountfile@391mountfile = @mountfile@
377nfsconfig = @nfsconfig@392nfsconfig = @nfsconfig@
378oldincludedir = @oldincludedir@393oldincludedir = @oldincludedir@
@@ -404,6 +419,7 @@ libnfs_la_SOURCES = exports.c rmtab.c xio.c rpcmisc.c rpcdispatch.c \
404 svc_create.c atomicio.c strlcat.c strlcpy.c419 svc_create.c atomicio.c strlcat.c strlcpy.c
405420
406libnfs_la_LIBADD = libnfsconf.la421libnfs_la_LIBADD = libnfsconf.la
422libnfs_la_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS) -I$(top_srcdir)/support/reexport
407libnfsconf_la_SOURCES = conffile.c xlog.c423libnfsconf_la_SOURCES = conffile.c xlog.c
408MAINTAINERCLEANFILES = Makefile.in424MAINTAINERCLEANFILES = Makefile.in
409all: all-am425all: all-am
@@ -466,25 +482,25 @@ mostlyclean-compile:
466distclean-compile:482distclean-compile:
467 -rm -f *.tab.c483 -rm -f *.tab.c
468484
469@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atomicio.Plo@am__quote@ # am--include-marker
470@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cacheio.Plo@am__quote@ # am--include-marker
471@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closeall.Plo@am__quote@ # am--include-marker
472@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conffile.Plo@am__quote@ # am--include-marker485@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conffile.Plo@am__quote@ # am--include-marker
473@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exports.Plo@am__quote@ # am--include-marker486@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-atomicio.Plo@am__quote@ # am--include-marker
474@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getport.Plo@am__quote@ # am--include-marker487@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-cacheio.Plo@am__quote@ # am--include-marker
475@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mydaemon.Plo@am__quote@ # am--include-marker488@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-closeall.Plo@am__quote@ # am--include-marker
476@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfs_mntent.Plo@am__quote@ # am--include-marker489@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-exports.Plo@am__quote@ # am--include-marker
477@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rmtab.Plo@am__quote@ # am--include-marker490@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-getport.Plo@am__quote@ # am--include-marker
478@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpc_socket.Plo@am__quote@ # am--include-marker491@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-mydaemon.Plo@am__quote@ # am--include-marker
479@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpcdispatch.Plo@am__quote@ # am--include-marker492@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-nfs_mntent.Plo@am__quote@ # am--include-marker
480@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpcmisc.Plo@am__quote@ # am--include-marker493@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-rmtab.Plo@am__quote@ # am--include-marker
481@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strlcat.Plo@am__quote@ # am--include-marker494@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-rpc_socket.Plo@am__quote@ # am--include-marker
482@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strlcpy.Plo@am__quote@ # am--include-marker495@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-rpcdispatch.Plo@am__quote@ # am--include-marker
483@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/svc_create.Plo@am__quote@ # am--include-marker496@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-rpcmisc.Plo@am__quote@ # am--include-marker
484@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/svc_socket.Plo@am__quote@ # am--include-marker497@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-strlcat.Plo@am__quote@ # am--include-marker
485@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wildmat.Plo@am__quote@ # am--include-marker498@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-strlcpy.Plo@am__quote@ # am--include-marker
486@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcommon.Plo@am__quote@ # am--include-marker499@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-svc_create.Plo@am__quote@ # am--include-marker
487@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xio.Plo@am__quote@ # am--include-marker500@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-svc_socket.Plo@am__quote@ # am--include-marker
501@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-wildmat.Plo@am__quote@ # am--include-marker
502@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-xcommon.Plo@am__quote@ # am--include-marker
503@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnfs_la-xio.Plo@am__quote@ # am--include-marker
488@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xlog.Plo@am__quote@ # am--include-marker504@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xlog.Plo@am__quote@ # am--include-marker
489505
490$(am__depfiles_remade):506$(am__depfiles_remade):
@@ -514,6 +530,132 @@ am--depfiles: $(am__depfiles_remade)
514@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@530@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
515@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<531@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
516532
533libnfs_la-exports.lo: exports.c
534@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
535@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-exports.Tpo $(DEPDIR)/libnfs_la-exports.Plo
536@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='exports.c' object='libnfs_la-exports.lo' libtool=yes @AMDEPBACKSLASH@
537@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
538@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
539
540libnfs_la-rmtab.lo: rmtab.c
541@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
542@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-rmtab.Tpo $(DEPDIR)/libnfs_la-rmtab.Plo
543@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rmtab.c' object='libnfs_la-rmtab.lo' libtool=yes @AMDEPBACKSLASH@
544@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
545@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
546
547libnfs_la-xio.lo: xio.c
548@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
549@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-xio.Tpo $(DEPDIR)/libnfs_la-xio.Plo
550@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xio.c' object='libnfs_la-xio.lo' libtool=yes @AMDEPBACKSLASH@
551@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
552@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
553
554libnfs_la-rpcmisc.lo: rpcmisc.c
555@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
556@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-rpcmisc.Tpo $(DEPDIR)/libnfs_la-rpcmisc.Plo
557@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rpcmisc.c' object='libnfs_la-rpcmisc.lo' libtool=yes @AMDEPBACKSLASH@
558@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
559@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
560
561libnfs_la-rpcdispatch.lo: rpcdispatch.c
562@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
563@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-rpcdispatch.Tpo $(DEPDIR)/libnfs_la-rpcdispatch.Plo
564@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rpcdispatch.c' object='libnfs_la-rpcdispatch.lo' libtool=yes @AMDEPBACKSLASH@
565@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
566@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
567
568libnfs_la-xcommon.lo: xcommon.c
569@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
570@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-xcommon.Tpo $(DEPDIR)/libnfs_la-xcommon.Plo
571@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xcommon.c' object='libnfs_la-xcommon.lo' libtool=yes @AMDEPBACKSLASH@
572@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
573@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
574
575libnfs_la-wildmat.lo: wildmat.c
576@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
577@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-wildmat.Tpo $(DEPDIR)/libnfs_la-wildmat.Plo
578@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wildmat.c' object='libnfs_la-wildmat.lo' libtool=yes @AMDEPBACKSLASH@
579@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
580@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
581
582libnfs_la-mydaemon.lo: mydaemon.c
583@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
584@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-mydaemon.Tpo $(DEPDIR)/libnfs_la-mydaemon.Plo
585@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mydaemon.c' object='libnfs_la-mydaemon.lo' libtool=yes @AMDEPBACKSLASH@
586@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
587@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
588
589libnfs_la-rpc_socket.lo: rpc_socket.c
590@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
591@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-rpc_socket.Tpo $(DEPDIR)/libnfs_la-rpc_socket.Plo
592@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rpc_socket.c' object='libnfs_la-rpc_socket.lo' libtool=yes @AMDEPBACKSLASH@
593@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
594@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
595
596libnfs_la-getport.lo: getport.c
597@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
598@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-getport.Tpo $(DEPDIR)/libnfs_la-getport.Plo
599@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getport.c' object='libnfs_la-getport.lo' libtool=yes @AMDEPBACKSLASH@
600@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
601@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
602
603libnfs_la-svc_socket.lo: svc_socket.c
604@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
605@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-svc_socket.Tpo $(DEPDIR)/libnfs_la-svc_socket.Plo
606@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='svc_socket.c' object='libnfs_la-svc_socket.lo' libtool=yes @AMDEPBACKSLASH@
607@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
608@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
609
610libnfs_la-cacheio.lo: cacheio.c
611@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
612@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-cacheio.Tpo $(DEPDIR)/libnfs_la-cacheio.Plo
613@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cacheio.c' object='libnfs_la-cacheio.lo' libtool=yes @AMDEPBACKSLASH@
614@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
615@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
616
617libnfs_la-closeall.lo: closeall.c
618@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
619@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-closeall.Tpo $(DEPDIR)/libnfs_la-closeall.Plo
620@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='closeall.c' object='libnfs_la-closeall.lo' libtool=yes @AMDEPBACKSLASH@
621@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
622@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
623
624libnfs_la-nfs_mntent.lo: nfs_mntent.c
625@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
626@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-nfs_mntent.Tpo $(DEPDIR)/libnfs_la-nfs_mntent.Plo
627@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nfs_mntent.c' object='libnfs_la-nfs_mntent.lo' libtool=yes @AMDEPBACKSLASH@
628@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
629@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
630
631libnfs_la-svc_create.lo: svc_create.c
632@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
633@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-svc_create.Tpo $(DEPDIR)/libnfs_la-svc_create.Plo
634@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='svc_create.c' object='libnfs_la-svc_create.lo' libtool=yes @AMDEPBACKSLASH@
635@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
636@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
637
638libnfs_la-atomicio.lo: atomicio.c
639@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
640@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-atomicio.Tpo $(DEPDIR)/libnfs_la-atomicio.Plo
641@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='atomicio.c' object='libnfs_la-atomicio.lo' libtool=yes @AMDEPBACKSLASH@
642@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
643@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
644
645libnfs_la-strlcat.lo: strlcat.c
646@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
647@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-strlcat.Tpo $(DEPDIR)/libnfs_la-strlcat.Plo
648@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strlcat.c' object='libnfs_la-strlcat.lo' libtool=yes @AMDEPBACKSLASH@
649@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
650@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
651
652libnfs_la-strlcpy.lo: strlcpy.c
653@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
654@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnfs_la-strlcpy.Tpo $(DEPDIR)/libnfs_la-strlcpy.Plo
655@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strlcpy.c' object='libnfs_la-strlcpy.lo' libtool=yes @AMDEPBACKSLASH@
656@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
657@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
658
517mostlyclean-libtool:659mostlyclean-libtool:
518 -rm -f *.lo660 -rm -f *.lo
519661
@@ -645,25 +787,25 @@ clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
645 clean-noinstLTLIBRARIES mostlyclean-am787 clean-noinstLTLIBRARIES mostlyclean-am
646788
647distclean: distclean-am789distclean: distclean-am
648 -rm -f ./$(DEPDIR)/atomicio.Plo790 -rm -f ./$(DEPDIR)/conffile.Plo
649 -rm -f ./$(DEPDIR)/cacheio.Plo791 -rm -f ./$(DEPDIR)/libnfs_la-atomicio.Plo
650 -rm -f ./$(DEPDIR)/closeall.Plo792 -rm -f ./$(DEPDIR)/libnfs_la-cacheio.Plo
651 -rm -f ./$(DEPDIR)/conffile.Plo793 -rm -f ./$(DEPDIR)/libnfs_la-closeall.Plo
652 -rm -f ./$(DEPDIR)/exports.Plo794 -rm -f ./$(DEPDIR)/libnfs_la-exports.Plo
653 -rm -f ./$(DEPDIR)/getport.Plo795 -rm -f ./$(DEPDIR)/libnfs_la-getport.Plo
654 -rm -f ./$(DEPDIR)/mydaemon.Plo796 -rm -f ./$(DEPDIR)/libnfs_la-mydaemon.Plo
655 -rm -f ./$(DEPDIR)/nfs_mntent.Plo797 -rm -f ./$(DEPDIR)/libnfs_la-nfs_mntent.Plo
656 -rm -f ./$(DEPDIR)/rmtab.Plo798 -rm -f ./$(DEPDIR)/libnfs_la-rmtab.Plo
657 -rm -f ./$(DEPDIR)/rpc_socket.Plo799 -rm -f ./$(DEPDIR)/libnfs_la-rpc_socket.Plo
658 -rm -f ./$(DEPDIR)/rpcdispatch.Plo800 -rm -f ./$(DEPDIR)/libnfs_la-rpcdispatch.Plo
659 -rm -f ./$(DEPDIR)/rpcmisc.Plo801 -rm -f ./$(DEPDIR)/libnfs_la-rpcmisc.Plo
660 -rm -f ./$(DEPDIR)/strlcat.Plo802 -rm -f ./$(DEPDIR)/libnfs_la-strlcat.Plo
661 -rm -f ./$(DEPDIR)/strlcpy.Plo803 -rm -f ./$(DEPDIR)/libnfs_la-strlcpy.Plo
662 -rm -f ./$(DEPDIR)/svc_create.Plo804 -rm -f ./$(DEPDIR)/libnfs_la-svc_create.Plo
663 -rm -f ./$(DEPDIR)/svc_socket.Plo805 -rm -f ./$(DEPDIR)/libnfs_la-svc_socket.Plo
664 -rm -f ./$(DEPDIR)/wildmat.Plo806 -rm -f ./$(DEPDIR)/libnfs_la-wildmat.Plo
665 -rm -f ./$(DEPDIR)/xcommon.Plo807 -rm -f ./$(DEPDIR)/libnfs_la-xcommon.Plo
666 -rm -f ./$(DEPDIR)/xio.Plo808 -rm -f ./$(DEPDIR)/libnfs_la-xio.Plo
667 -rm -f ./$(DEPDIR)/xlog.Plo809 -rm -f ./$(DEPDIR)/xlog.Plo
668 -rm -f Makefile810 -rm -f Makefile
669distclean-am: clean-am distclean-compile distclean-generic \811distclean-am: clean-am distclean-compile distclean-generic \
@@ -710,25 +852,25 @@ install-ps-am:
710installcheck-am:852installcheck-am:
711853
712maintainer-clean: maintainer-clean-am854maintainer-clean: maintainer-clean-am
713 -rm -f ./$(DEPDIR)/atomicio.Plo855 -rm -f ./$(DEPDIR)/conffile.Plo
714 -rm -f ./$(DEPDIR)/cacheio.Plo856 -rm -f ./$(DEPDIR)/libnfs_la-atomicio.Plo
715 -rm -f ./$(DEPDIR)/closeall.Plo857 -rm -f ./$(DEPDIR)/libnfs_la-cacheio.Plo
716 -rm -f ./$(DEPDIR)/conffile.Plo858 -rm -f ./$(DEPDIR)/libnfs_la-closeall.Plo
717 -rm -f ./$(DEPDIR)/exports.Plo859 -rm -f ./$(DEPDIR)/libnfs_la-exports.Plo
718 -rm -f ./$(DEPDIR)/getport.Plo860 -rm -f ./$(DEPDIR)/libnfs_la-getport.Plo
719 -rm -f ./$(DEPDIR)/mydaemon.Plo861 -rm -f ./$(DEPDIR)/libnfs_la-mydaemon.Plo
720 -rm -f ./$(DEPDIR)/nfs_mntent.Plo862 -rm -f ./$(DEPDIR)/libnfs_la-nfs_mntent.Plo
721 -rm -f ./$(DEPDIR)/rmtab.Plo863 -rm -f ./$(DEPDIR)/libnfs_la-rmtab.Plo
722 -rm -f ./$(DEPDIR)/rpc_socket.Plo864 -rm -f ./$(DEPDIR)/libnfs_la-rpc_socket.Plo
723 -rm -f ./$(DEPDIR)/rpcdispatch.Plo865 -rm -f ./$(DEPDIR)/libnfs_la-rpcdispatch.Plo
724 -rm -f ./$(DEPDIR)/rpcmisc.Plo866 -rm -f ./$(DEPDIR)/libnfs_la-rpcmisc.Plo
725 -rm -f ./$(DEPDIR)/strlcat.Plo867 -rm -f ./$(DEPDIR)/libnfs_la-strlcat.Plo
726 -rm -f ./$(DEPDIR)/strlcpy.Plo868 -rm -f ./$(DEPDIR)/libnfs_la-strlcpy.Plo
727 -rm -f ./$(DEPDIR)/svc_create.Plo869 -rm -f ./$(DEPDIR)/libnfs_la-svc_create.Plo
728 -rm -f ./$(DEPDIR)/svc_socket.Plo870 -rm -f ./$(DEPDIR)/libnfs_la-svc_socket.Plo
729 -rm -f ./$(DEPDIR)/wildmat.Plo871 -rm -f ./$(DEPDIR)/libnfs_la-wildmat.Plo
730 -rm -f ./$(DEPDIR)/xcommon.Plo872 -rm -f ./$(DEPDIR)/libnfs_la-xcommon.Plo
731 -rm -f ./$(DEPDIR)/xio.Plo873 -rm -f ./$(DEPDIR)/libnfs_la-xio.Plo
732 -rm -f ./$(DEPDIR)/xlog.Plo874 -rm -f ./$(DEPDIR)/xlog.Plo
733 -rm -f Makefile875 -rm -f Makefile
734maintainer-clean-am: distclean-am maintainer-clean-generic876maintainer-clean-am: distclean-am maintainer-clean-generic
diff --git a/support/nfs/exports.c b/support/nfs/exports.c
index 2c8f075..15dc574 100644
--- a/support/nfs/exports.c
+++ b/support/nfs/exports.c
@@ -31,18 +31,19 @@
31#include "xlog.h"31#include "xlog.h"
32#include "xio.h"32#include "xio.h"
33#include "pseudoflavors.h"33#include "pseudoflavors.h"
34#include "reexport.h"
3435
35#define EXPORT_DEFAULT_FLAGS \36#define EXPORT_DEFAULT_FLAGS \
36 (NFSEXP_READONLY|NFSEXP_ROOTSQUASH|NFSEXP_GATHERED_WRITES|NFSEXP_NOSUBTREECHECK)37 (NFSEXP_READONLY|NFSEXP_ROOTSQUASH|NFSEXP_GATHERED_WRITES|NFSEXP_NOSUBTREECHECK)
3738
38struct flav_info flav_map[] = {39struct flav_info flav_map[] = {
39 { "krb5", RPC_AUTH_GSS_KRB5 },40 { "krb5", RPC_AUTH_GSS_KRB5, 1},
40 { "krb5i", RPC_AUTH_GSS_KRB5I },41 { "krb5i", RPC_AUTH_GSS_KRB5I, 1},
41 { "krb5p", RPC_AUTH_GSS_KRB5P },42 { "krb5p", RPC_AUTH_GSS_KRB5P, 1},
42 { "unix", AUTH_UNIX },43 { "unix", AUTH_UNIX, 0},
43 { "sys", AUTH_SYS },44 { "sys", AUTH_SYS, 0},
44 { "null", AUTH_NULL },45 { "null", AUTH_NULL, 0},
45 { "none", AUTH_NONE },46 { "none", AUTH_NONE, 0},
46};47};
4748
48const int flav_map_size = sizeof(flav_map)/sizeof(flav_map[0]);49const int flav_map_size = sizeof(flav_map)/sizeof(flav_map[0]);
@@ -99,10 +100,12 @@ static void init_exportent (struct exportent *ee, int fromkernel)
99 ee->e_fslocmethod = FSLOC_NONE;100 ee->e_fslocmethod = FSLOC_NONE;
100 ee->e_fslocdata = NULL;101 ee->e_fslocdata = NULL;
101 ee->e_secinfo[0].flav = NULL;102 ee->e_secinfo[0].flav = NULL;
103 ee->e_xprtsec[0].info = NULL;
102 ee->e_nsquids = 0;104 ee->e_nsquids = 0;
103 ee->e_nsqgids = 0;105 ee->e_nsqgids = 0;
104 ee->e_uuid = NULL;106 ee->e_uuid = NULL;
105 ee->e_ttl = default_ttl;107 ee->e_ttl = default_ttl;
108 ee->e_reexport = REEXP_NONE;
106}109}
107110
108struct exportent *111struct exportent *
@@ -122,7 +125,7 @@ getexportent(int fromkernel, int fromexports)
122 if (first || (ok = getexport(exp, sizeof(exp))) == 0) {125 if (first || (ok = getexport(exp, sizeof(exp))) == 0) {
123 has_default_opts = 0;126 has_default_opts = 0;
124 has_default_subtree_opts = 0;127 has_default_subtree_opts = 0;
125 128
126 init_exportent(&def_ee, fromkernel);129 init_exportent(&def_ee, fromkernel);
127130
128 ok = getpath(def_ee.e_path, sizeof(def_ee.e_path));131 ok = getpath(def_ee.e_path, sizeof(def_ee.e_path));
@@ -146,7 +149,7 @@ getexportent(int fromkernel, int fromexports)
146 if (exp[0] == '-' && !fromkernel) {149 if (exp[0] == '-' && !fromkernel) {
147 if (parseopts(exp + 1, &def_ee, 0, &has_default_subtree_opts) < 0)150 if (parseopts(exp + 1, &def_ee, 0, &has_default_subtree_opts) < 0)
148 return NULL;151 return NULL;
149 152
150 has_default_opts = 1;153 has_default_opts = 1;
151154
152 ok = getexport(exp, sizeof(exp));155 ok = getexport(exp, sizeof(exp));
@@ -239,7 +242,6 @@ void secinfo_show(FILE *fp, struct exportent *ep)
239 if (ep->e_secinfo[0].flav == NULL)242 if (ep->e_secinfo[0].flav == NULL)
240 secinfo_addflavor(find_flavor("sys"), ep);243 secinfo_addflavor(find_flavor("sys"), ep);
241 for (p1=ep->e_secinfo; p1->flav; p1=p2) {244 for (p1=ep->e_secinfo; p1->flav; p1=p2) {
242
243 fprintf(fp, ",sec=%s", p1->flav->flavour);245 fprintf(fp, ",sec=%s", p1->flav->flavour);
244 for (p2=p1+1; (p2->flav != NULL) && (p1->flags == p2->flags);246 for (p2=p1+1; (p2->flav != NULL) && (p1->flags == p2->flags);
245 p2++) {247 p2++) {
@@ -249,6 +251,17 @@ void secinfo_show(FILE *fp, struct exportent *ep)
249 }251 }
250}252}
251253
254void xprtsecinfo_show(FILE *fp, struct exportent *ep)
255{
256 struct xprtsec_entry *p1, *p2;
257
258 for (p1 = ep->e_xprtsec; p1->info; p1 = p2) {
259 fprintf(fp, ",xprtsec=%s", p1->info->name);
260 for (p2 = p1 + 1; p2->info && (p1->flags == p2->flags); p2++)
261 fprintf(fp, ":%s", p2->info->name);
262 }
263}
264
252static void265static void
253fprintpath(FILE *fp, const char *path)266fprintpath(FILE *fp, const char *path)
254{267{
@@ -302,6 +315,23 @@ putexportent(struct exportent *ep)
302 }315 }
303 if (ep->e_uuid)316 if (ep->e_uuid)
304 fprintf(fp, "fsid=%s,", ep->e_uuid);317 fprintf(fp, "fsid=%s,", ep->e_uuid);
318
319 if (ep->e_reexport) {
320 fprintf(fp, "reexport=");
321 switch (ep->e_reexport) {
322 case REEXP_AUTO_FSIDNUM:
323 fprintf(fp, "auto-fsidnum");
324 break;
325 case REEXP_PREDEFINED_FSIDNUM:
326 fprintf(fp, "predefined-fsidnum");
327 break;
328 default:
329 xlog(L_ERROR, "unknown reexport method %i", ep->e_reexport);
330 fprintf(fp, "none");
331 }
332 fprintf(fp, ",");
333 }
334
305 if (ep->e_mountpoint)335 if (ep->e_mountpoint)
306 fprintf(fp, "mountpoint%s%s,",336 fprintf(fp, "mountpoint%s%s,",
307 ep->e_mountpoint[0]?"=":"", ep->e_mountpoint);337 ep->e_mountpoint[0]?"=":"", ep->e_mountpoint);
@@ -345,6 +375,7 @@ putexportent(struct exportent *ep)
345 }375 }
346 fprintf(fp, "anonuid=%d,anongid=%d", ep->e_anonuid, ep->e_anongid);376 fprintf(fp, "anonuid=%d,anongid=%d", ep->e_anonuid, ep->e_anongid);
347 secinfo_show(fp, ep);377 secinfo_show(fp, ep);
378 xprtsecinfo_show(fp, ep);
348 fprintf(fp, ")\n");379 fprintf(fp, ")\n");
349}380}
350381
@@ -483,6 +514,75 @@ static unsigned int parse_flavors(char *str, struct exportent *ep)
483 return out;514 return out;
484}515}
485516
517static const struct xprtsec_info xprtsec_name2info[] = {
518 { "none", NFSEXP_XPRTSEC_NONE },
519 { "tls", NFSEXP_XPRTSEC_TLS },
520 { "mtls", NFSEXP_XPRTSEC_MTLS },
521 { NULL, 0 }
522};
523
524static const struct xprtsec_info *find_xprtsec_info(const char *name)
525{
526 const struct xprtsec_info *info;
527
528 for (info = xprtsec_name2info; info->name; info++)
529 if (strcmp(info->name, name) == 0)
530 return info;
531 return NULL;
532}
533
534/*
535 * Append the given xprtsec mode to the exportent's e_xprtsec array,
536 * or do nothing if it's already there. Returns the index of flavor in
537 * the resulting array in any case.
538 */
539static int xprtsec_addmode(const struct xprtsec_info *info, struct exportent *ep)
540{
541 struct xprtsec_entry *p;
542
543 for (p = ep->e_xprtsec; p->info; p++)
544 if (p->info == info || p->info->number == info->number)
545 return p - ep->e_xprtsec;
546
547 if (p - ep->e_xprtsec >= XPRTSECMODE_COUNT) {
548 xlog(L_ERROR, "more than %d xprtsec modes on an export\n",
549 XPRTSECMODE_COUNT);
550 return -1;
551 }
552 p->info = info;
553 p->flags = ep->e_flags;
554 (p + 1)->info = NULL;
555 return p - ep->e_xprtsec;
556}
557
558/*
559 * @str is a colon seperated list of transport layer security modes.
560 * Their order is recorded in @ep, and a bitmap corresponding to the
561 * list is returned.
562 *
563 * A zero return indicates an error.
564 */
565static unsigned int parse_xprtsec(char *str, struct exportent *ep)
566{
567 unsigned int out = 0;
568 char *name;
569
570 while ((name = strsep(&str, ":"))) {
571 const struct xprtsec_info *info = find_xprtsec_info(name);
572 int bit;
573
574 if (!info) {
575 xlog(L_ERROR, "unknown xprtsec mode %s\n", name);
576 return 0;
577 }
578 bit = xprtsec_addmode(info, ep);
579 if (bit < 0)
580 return 0;
581 out |= 1 << bit;
582 }
583 return out;
584}
585
486/* Sets the bits in @mask for the appropriate security flavor flags. */586/* Sets the bits in @mask for the appropriate security flavor flags. */
487static void setflags(int mask, unsigned int active, struct exportent *ep)587static void setflags(int mask, unsigned int active, struct exportent *ep)
488{588{
@@ -538,6 +638,7 @@ parseopts(char *cp, struct exportent *ep, int warn, int *had_subtree_opt_ptr)
538 char *flname = efname?efname:"command line";638 char *flname = efname?efname:"command line";
539 int flline = efp?efp->x_line:0;639 int flline = efp?efp->x_line:0;
540 unsigned int active = 0;640 unsigned int active = 0;
641 int saw_reexport = 0;
541642
542 squids = ep->e_squids; nsquids = ep->e_nsquids;643 squids = ep->e_squids; nsquids = ep->e_nsquids;
543 sqgids = ep->e_sqgids; nsqgids = ep->e_nsqgids;644 sqgids = ep->e_sqgids; nsqgids = ep->e_nsqgids;
@@ -621,7 +722,7 @@ parseopts(char *cp, struct exportent *ep, int warn, int *had_subtree_opt_ptr)
621 ep->e_anonuid = strtol(opt+8, &oe, 10);722 ep->e_anonuid = strtol(opt+8, &oe, 10);
622 if (opt[8]=='\0' || *oe != '\0') {723 if (opt[8]=='\0' || *oe != '\0') {
623 xlog(L_ERROR, "%s: %d: bad anonuid \"%s\"\n",724 xlog(L_ERROR, "%s: %d: bad anonuid \"%s\"\n",
624 flname, flline, opt); 725 flname, flline, opt);
625bad_option:726bad_option:
626 free(opt);727 free(opt);
627 return -1;728 return -1;
@@ -631,7 +732,7 @@ bad_option:
631 ep->e_anongid = strtol(opt+8, &oe, 10);732 ep->e_anongid = strtol(opt+8, &oe, 10);
632 if (opt[8]=='\0' || *oe != '\0') {733 if (opt[8]=='\0' || *oe != '\0') {
633 xlog(L_ERROR, "%s: %d: bad anongid \"%s\"\n",734 xlog(L_ERROR, "%s: %d: bad anongid \"%s\"\n",
634 flname, flline, opt); 735 flname, flline, opt);
635 goto bad_option;736 goto bad_option;
636 }737 }
637 } else if (strncmp(opt, "squash_uids=", 12) == 0) {738 } else if (strncmp(opt, "squash_uids=", 12) == 0) {
@@ -644,18 +745,25 @@ bad_option:
644 }745 }
645 } else if (strncmp(opt, "fsid=", 5) == 0) {746 } else if (strncmp(opt, "fsid=", 5) == 0) {
646 char *oe;747 char *oe;
748
749 if (saw_reexport) {
750 xlog(L_ERROR, "%s:%d: 'fsid=' has to be before 'reexport=' %s\n",
751 flname, flline, opt);
752 goto bad_option;
753 }
754
647 if (strcmp(opt+5, "root") == 0) {755 if (strcmp(opt+5, "root") == 0) {
648 ep->e_fsid = 0;756 ep->e_fsid = 0;
649 setflags(NFSEXP_FSID, active, ep);757 setflags(NFSEXP_FSID, active, ep);
650 } else {758 } else {
651 ep->e_fsid = strtoul(opt+5, &oe, 0);759 ep->e_fsid = strtoul(opt+5, &oe, 0);
652 if (opt[5]!='\0' && *oe == '\0') 760 if (opt[5]!='\0' && *oe == '\0')
653 setflags(NFSEXP_FSID, active, ep);761 setflags(NFSEXP_FSID, active, ep);
654 else if (valid_uuid(opt+5))762 else if (valid_uuid(opt+5))
655 ep->e_uuid = strdup(opt+5);763 ep->e_uuid = strdup(opt+5);
656 else {764 else {
657 xlog(L_ERROR, "%s: %d: bad fsid \"%s\"\n",765 xlog(L_ERROR, "%s: %d: bad fsid \"%s\"\n",
658 flname, flline, opt); 766 flname, flline, opt);
659 goto bad_option;767 goto bad_option;
660 }768 }
661 }769 }
@@ -688,6 +796,44 @@ bad_option:
688 active = parse_flavors(opt+4, ep);796 active = parse_flavors(opt+4, ep);
689 if (!active)797 if (!active)
690 goto bad_option;798 goto bad_option;
799 } else if (strncmp(opt, "xprtsec=", 8) == 0) {
800 if (!parse_xprtsec(opt + 8, ep))
801 goto bad_option;
802 } else if (strncmp(opt, "reexport=", 9) == 0) {
803 char *strategy = strchr(opt, '=');
804
805 if (!strategy) {
806 xlog(L_ERROR, "%s:%d: bad option %s\n",
807 flname, flline, opt);
808 goto bad_option;
809 }
810 strategy++;
811
812 if (saw_reexport) {
813 xlog(L_ERROR, "%s:%d: only one 'reexport=' is allowed%s\n",
814 flname, flline, opt);
815 goto bad_option;
816 }
817
818 if (strcmp(strategy, "auto-fsidnum") == 0) {
819 ep->e_reexport = REEXP_AUTO_FSIDNUM;
820 } else if (strcmp(strategy, "predefined-fsidnum") == 0) {
821 ep->e_reexport = REEXP_PREDEFINED_FSIDNUM;
822 } else if (strcmp(strategy, "none") == 0) {
823 ep->e_reexport = REEXP_NONE;
824 } else {
825 xlog(L_ERROR, "%s:%d: bad option %s\n",
826 flname, flline, strategy);
827 goto bad_option;
828 }
829
830 if (reexpdb_apply_reexport_settings(ep, flname, flline) != 0)
831 goto bad_option;
832
833 if (ep->e_fsid)
834 setflags(NFSEXP_FSID, active, ep);
835
836 saw_reexport = 1;
691 } else {837 } else {
692 xlog(L_ERROR, "%s:%d: unknown keyword \"%s\"\n",838 xlog(L_ERROR, "%s:%d: unknown keyword \"%s\"\n",
693 flname, flline, opt);839 flname, flline, opt);
@@ -709,7 +855,7 @@ out:
709 if (warn && !had_subtree_opt)855 if (warn && !had_subtree_opt)
710 xlog(L_WARNING, "%s [%d]: Neither 'subtree_check' or 'no_subtree_check' specified for export \"%s:%s\".\n"856 xlog(L_WARNING, "%s [%d]: Neither 'subtree_check' or 'no_subtree_check' specified for export \"%s:%s\".\n"
711 " Assuming default behaviour ('no_subtree_check').\n"857 " Assuming default behaviour ('no_subtree_check').\n"
712 " NOTE: this default has changed since nfs-utils version 1.0.x\n",858 " NOTE: this default has changed since nfs-utils version 1.0.x\n",
713859
714 flname, flline,860 flname, flline,
715 ep->e_hostname, ep->e_path);861 ep->e_hostname, ep->e_path);
diff --git a/support/nfs/xlog.c b/support/nfs/xlog.c
index e5861b9..fa125ce 100644
--- a/support/nfs/xlog.c
+++ b/support/nfs/xlog.c
@@ -46,11 +46,13 @@ int export_errno = 0;
4646
47static void xlog_toggle(int sig);47static void xlog_toggle(int sig);
48static struct xlog_debugfac debugnames[] = {48static struct xlog_debugfac debugnames[] = {
49 { "0", 0, },
49 { "general", D_GENERAL, },50 { "general", D_GENERAL, },
50 { "call", D_CALL, },51 { "call", D_CALL, },
51 { "auth", D_AUTH, },52 { "auth", D_AUTH, },
52 { "parse", D_PARSE, },53 { "parse", D_PARSE, },
53 { "all", D_ALL, },54 { "all", D_ALL, },
55 { "1", D_ALL, },
54 { NULL, 0, },56 { NULL, 0, },
55};57};
5658
@@ -119,13 +121,14 @@ xlog_sconfig(char *kind, int on)
119{121{
120 struct xlog_debugfac *tbl = debugnames;122 struct xlog_debugfac *tbl = debugnames;
121123
122 while (tbl->df_name != NULL && strcasecmp(tbl->df_name, kind)) 124 while (tbl->df_name != NULL && strcasecmp(tbl->df_name, kind))
123 tbl++;125 tbl++;
124 if (!tbl->df_name) {126 if (!tbl->df_name) {
125 xlog (L_WARNING, "Invalid debug facility: %s\n", kind);127 xlog (L_WARNING, "Invalid debug facility: %s\n", kind);
126 return;128 return;
127 }129 }
128 xlog_config(tbl->df_fac, on);130 if (tbl->df_fac)
131 xlog_config(tbl->df_fac, on);
129}132}
130133
131void134void
diff --git a/support/nfsidmap/Makefile.in b/support/nfsidmap/Makefile.in
index 34346bd..196f05e 100644
--- a/support/nfsidmap/Makefile.in
+++ b/support/nfsidmap/Makefile.in
@@ -339,6 +339,8 @@ LIBCRYPT = @LIBCRYPT@
339LIBEVENT = @LIBEVENT@339LIBEVENT = @LIBEVENT@
340LIBKEYUTILS = @LIBKEYUTILS@340LIBKEYUTILS = @LIBKEYUTILS@
341LIBMOUNT = @LIBMOUNT@341LIBMOUNT = @LIBMOUNT@
342LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
343LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
342LIBNSL = @LIBNSL@344LIBNSL = @LIBNSL@
343LIBOBJS = @LIBOBJS@345LIBOBJS = @LIBOBJS@
344LIBPTHREAD = @LIBPTHREAD@346LIBPTHREAD = @LIBPTHREAD@
@@ -440,7 +442,6 @@ localedir = @localedir@
440localstatedir = @localstatedir@442localstatedir = @localstatedir@
441mandir = @mandir@443mandir = @mandir@
442mkdir_p = @mkdir_p@444mkdir_p = @mkdir_p@
443modprobedir = @modprobedir@
444mountfile = @mountfile@445mountfile = @mountfile@
445nfsconfig = @nfsconfig@446nfsconfig = @nfsconfig@
446oldincludedir = @oldincludedir@447oldincludedir = @oldincludedir@
diff --git a/support/nfsidmap/regex.c b/support/nfsidmap/regex.c
index 958b4ac..8424179 100644
--- a/support/nfsidmap/regex.c
+++ b/support/nfsidmap/regex.c
@@ -542,7 +542,7 @@ struct trans_func regex_trans = {
542 .gss_princ_to_grouplist = regex_gss_princ_to_grouplist,542 .gss_princ_to_grouplist = regex_gss_princ_to_grouplist,
543};543};
544544
545struct trans_func *libnfsidmap_plugin_init()545struct trans_func *libnfsidmap_plugin_init(void)
546{546{
547 return (&regex_trans);547 return (&regex_trans);
548}548}
diff --git a/support/nsm/Makefile.in b/support/nsm/Makefile.in
index ef09b50..0bab45e 100644
--- a/support/nsm/Makefile.in
+++ b/support/nsm/Makefile.in
@@ -268,6 +268,8 @@ LIBCRYPT = @LIBCRYPT@
268LIBEVENT = @LIBEVENT@268LIBEVENT = @LIBEVENT@
269LIBKEYUTILS = @LIBKEYUTILS@269LIBKEYUTILS = @LIBKEYUTILS@
270LIBMOUNT = @LIBMOUNT@270LIBMOUNT = @LIBMOUNT@
271LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
272LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
271LIBNSL = @LIBNSL@273LIBNSL = @LIBNSL@
272LIBOBJS = @LIBOBJS@274LIBOBJS = @LIBOBJS@
273LIBPTHREAD = @LIBPTHREAD@275LIBPTHREAD = @LIBPTHREAD@
@@ -369,7 +371,6 @@ localedir = @localedir@
369localstatedir = @localstatedir@371localstatedir = @localstatedir@
370mandir = @mandir@372mandir = @mandir@
371mkdir_p = @mkdir_p@373mkdir_p = @mkdir_p@
372modprobedir = @modprobedir@
373mountfile = @mountfile@374mountfile = @mountfile@
374nfsconfig = @nfsconfig@375nfsconfig = @nfsconfig@
375oldincludedir = @oldincludedir@376oldincludedir = @oldincludedir@
diff --git a/support/reexport/Makefile.am b/support/reexport/Makefile.am
376new file mode 100644377new file mode 100644
index 0000000..fbd66a2
--- /dev/null
+++ b/support/reexport/Makefile.am
@@ -0,0 +1,18 @@
1## Process this file with automake to produce Makefile.in
2
3noinst_LIBRARIES = libreexport.a
4libreexport_a_SOURCES = reexport.c
5
6sbin_PROGRAMS = fsidd
7
8fsidd_SOURCES = fsidd.c backend_sqlite.c
9
10fsidd_LDADD = ../../support/misc/libmisc.a \
11 ../../support/nfs/libnfs.la \
12 $(LIBPTHREAD) $(LIBEVENT) $(LIBSQLITE) \
13 $(OPTLIBS)
14
15fsidd_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS) \
16 -I$(top_builddir)/support/include
17
18MAINTAINERCLEANFILES = Makefile.in
diff --git a/support/reexport/Makefile.in b/support/reexport/Makefile.in
0new file mode 10064419new file mode 100644
index 0000000..4b70d8d
--- /dev/null
+++ b/support/reexport/Makefile.in
@@ -0,0 +1,797 @@
1# Makefile.in generated by automake 1.16.5 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994-2021 Free Software Foundation, Inc.
5
6# This Makefile.in is free software; the Free Software Foundation
7# gives unlimited permission to copy and/or distribute it,
8# with or without modifications, as long as this notice is preserved.
9
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
12# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13# PARTICULAR PURPOSE.
14
15@SET_MAKE@
16
17
18VPATH = @srcdir@
19am__is_gnu_make = { \
20 if test -z '$(MAKELEVEL)'; then \
21 false; \
22 elif test -n '$(MAKE_HOST)'; then \
23 true; \
24 elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
25 true; \
26 else \
27 false; \
28 fi; \
29}
30am__make_running_with_option = \
31 case $${target_option-} in \
32 ?) ;; \
33 *) echo "am__make_running_with_option: internal error: invalid" \
34 "target option '$${target_option-}' specified" >&2; \
35 exit 1;; \
36 esac; \
37 has_opt=no; \
38 sane_makeflags=$$MAKEFLAGS; \
39 if $(am__is_gnu_make); then \
40 sane_makeflags=$$MFLAGS; \
41 else \
42 case $$MAKEFLAGS in \
43 *\\[\ \ ]*) \
44 bs=\\; \
45 sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
46 | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
47 esac; \
48 fi; \
49 skip_next=no; \
50 strip_trailopt () \
51 { \
52 flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
53 }; \
54 for flg in $$sane_makeflags; do \
55 test $$skip_next = yes && { skip_next=no; continue; }; \
56 case $$flg in \
57 *=*|--*) continue;; \
58 -*I) strip_trailopt 'I'; skip_next=yes;; \
59 -*I?*) strip_trailopt 'I';; \
60 -*O) strip_trailopt 'O'; skip_next=yes;; \
61 -*O?*) strip_trailopt 'O';; \
62 -*l) strip_trailopt 'l'; skip_next=yes;; \
63 -*l?*) strip_trailopt 'l';; \
64 -[dEDm]) skip_next=yes;; \
65 -[JT]) skip_next=yes;; \
66 esac; \
67 case $$flg in \
68 *$$target_option*) has_opt=yes; break;; \
69 esac; \
70 done; \
71 test $$has_opt = yes
72am__make_dryrun = (target_option=n; $(am__make_running_with_option))
73am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
74pkgdatadir = $(datadir)/@PACKAGE@
75pkgincludedir = $(includedir)/@PACKAGE@
76pkglibdir = $(libdir)/@PACKAGE@
77pkglibexecdir = $(libexecdir)/@PACKAGE@
78am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
79install_sh_DATA = $(install_sh) -c -m 644
80install_sh_PROGRAM = $(install_sh) -c
81install_sh_SCRIPT = $(install_sh) -c
82INSTALL_HEADER = $(INSTALL_DATA)
83transform = $(program_transform_name)
84NORMAL_INSTALL = :
85PRE_INSTALL = :
86POST_INSTALL = :
87NORMAL_UNINSTALL = :
88PRE_UNINSTALL = :
89POST_UNINSTALL = :
90build_triplet = @build@
91host_triplet = @host@
92sbin_PROGRAMS = fsidd$(EXEEXT)
93subdir = support/reexport
94ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
95am__aclocal_m4_deps = $(top_srcdir)/aclocal/ax_gcc_func_attribute.m4 \
96 $(top_srcdir)/aclocal/bsdsignals.m4 \
97 $(top_srcdir)/aclocal/ipv6.m4 \
98 $(top_srcdir)/aclocal/kerberos5.m4 \
99 $(top_srcdir)/aclocal/keyutils.m4 \
100 $(top_srcdir)/aclocal/libblkid.m4 \
101 $(top_srcdir)/aclocal/libcap.m4 \
102 $(top_srcdir)/aclocal/libevent.m4 \
103 $(top_srcdir)/aclocal/libpthread.m4 \
104 $(top_srcdir)/aclocal/libsqlite3.m4 \
105 $(top_srcdir)/aclocal/libtirpc.m4 \
106 $(top_srcdir)/aclocal/libxml2.m4 \
107 $(top_srcdir)/aclocal/nfs-utils.m4 \
108 $(top_srcdir)/aclocal/rpcsec_vers.m4 \
109 $(top_srcdir)/aclocal/tcp-wrappers.m4 \
110 $(top_srcdir)/configure.ac
111am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
112 $(ACLOCAL_M4)
113DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
114mkinstalldirs = $(install_sh) -d
115CONFIG_HEADER = $(top_builddir)/support/include/config.h
116CONFIG_CLEAN_FILES =
117CONFIG_CLEAN_VPATH_FILES =
118am__installdirs = "$(DESTDIR)$(sbindir)"
119PROGRAMS = $(sbin_PROGRAMS)
120LIBRARIES = $(noinst_LIBRARIES)
121ARFLAGS = cru
122AM_V_AR = $(am__v_AR_@AM_V@)
123am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
124am__v_AR_0 = @echo " AR " $@;
125am__v_AR_1 =
126libreexport_a_AR = $(AR) $(ARFLAGS)
127libreexport_a_LIBADD =
128am_libreexport_a_OBJECTS = reexport.$(OBJEXT)
129libreexport_a_OBJECTS = $(am_libreexport_a_OBJECTS)
130am_fsidd_OBJECTS = fsidd-fsidd.$(OBJEXT) \
131 fsidd-backend_sqlite.$(OBJEXT)
132fsidd_OBJECTS = $(am_fsidd_OBJECTS)
133am__DEPENDENCIES_1 =
134fsidd_DEPENDENCIES = ../../support/misc/libmisc.a \
135 ../../support/nfs/libnfs.la $(am__DEPENDENCIES_1) \
136 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
137AM_V_lt = $(am__v_lt_@AM_V@)
138am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
139am__v_lt_0 = --silent
140am__v_lt_1 =
141AM_V_P = $(am__v_P_@AM_V@)
142am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
143am__v_P_0 = false
144am__v_P_1 = :
145AM_V_GEN = $(am__v_GEN_@AM_V@)
146am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
147am__v_GEN_0 = @echo " GEN " $@;
148am__v_GEN_1 =
149AM_V_at = $(am__v_at_@AM_V@)
150am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
151am__v_at_0 = @
152am__v_at_1 =
153DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/support/include
154depcomp = $(SHELL) $(top_srcdir)/depcomp
155am__maybe_remake_depfiles = depfiles
156am__depfiles_remade = ./$(DEPDIR)/fsidd-backend_sqlite.Po \
157 ./$(DEPDIR)/fsidd-fsidd.Po ./$(DEPDIR)/reexport.Po
158am__mv = mv -f
159COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
160 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
161LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
162 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
163 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
164 $(AM_CFLAGS) $(CFLAGS)
165AM_V_CC = $(am__v_CC_@AM_V@)
166am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
167am__v_CC_0 = @echo " CC " $@;
168am__v_CC_1 =
169CCLD = $(CC)
170LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
171 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
172 $(AM_LDFLAGS) $(LDFLAGS) -o $@
173AM_V_CCLD = $(am__v_CCLD_@AM_V@)
174am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
175am__v_CCLD_0 = @echo " CCLD " $@;
176am__v_CCLD_1 =
177SOURCES = $(libreexport_a_SOURCES) $(fsidd_SOURCES)
178DIST_SOURCES = $(libreexport_a_SOURCES) $(fsidd_SOURCES)
179am__can_run_installinfo = \
180 case $$AM_UPDATE_INFO_DIR in \
181 n|no|NO) false;; \
182 *) (install-info --version) >/dev/null 2>&1;; \
183 esac
184am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
185# Read a list of newline-separated strings from the standard input,
186# and print each of them once, without duplicates. Input order is
187# *not* preserved.
188am__uniquify_input = $(AWK) '\
189 BEGIN { nonempty = 0; } \
190 { items[$$0] = 1; nonempty = 1; } \
191 END { if (nonempty) { for (i in items) print i; }; } \
192'
193# Make sure the list of sources is unique. This is necessary because,
194# e.g., the same source file might be shared among _SOURCES variables
195# for different programs/libraries.
196am__define_uniq_tagged_files = \
197 list='$(am__tagged_files)'; \
198 unique=`for i in $$list; do \
199 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
200 done | $(am__uniquify_input)`
201am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
202DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
203ACLOCAL = @ACLOCAL@
204ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
205ALLOCA = @ALLOCA@
206AMTAR = @AMTAR@
207AM_CFLAGS = @AM_CFLAGS@
208AM_CPPFLAGS = @AM_CPPFLAGS@
209AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
210AR = @AR@
211AUTOCONF = @AUTOCONF@
212AUTOHEADER = @AUTOHEADER@
213AUTOMAKE = @AUTOMAKE@
214AWK = @AWK@
215CC = @CC@
216CCDEPMODE = @CCDEPMODE@
217CC_FOR_BUILD = @CC_FOR_BUILD@
218CFLAGS = @CFLAGS@
219CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
220CPP = @CPP@
221CPPFLAGS = @CPPFLAGS@
222CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
223CSCOPE = @CSCOPE@
224CTAGS = @CTAGS@
225CXX = @CXX@
226CXXCPP = @CXXCPP@
227CXXDEPMODE = @CXXDEPMODE@
228CXXFLAGS = @CXXFLAGS@
229CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@
230CYGPATH_W = @CYGPATH_W@
231DEFS = @DEFS@
232DEPDIR = @DEPDIR@
233DLLTOOL = @DLLTOOL@
234DSYMUTIL = @DSYMUTIL@
235DUMPBIN = @DUMPBIN@
236ECHO_C = @ECHO_C@
237ECHO_N = @ECHO_N@
238ECHO_T = @ECHO_T@
239EGREP = @EGREP@
240ETAGS = @ETAGS@
241EXEEXT = @EXEEXT@
242FGREP = @FGREP@
243FILECMD = @FILECMD@
244GREP = @GREP@
245GSSAPI_CFLAGS = @GSSAPI_CFLAGS@
246GSSAPI_LIBS = @GSSAPI_LIBS@
247GSSD = @GSSD@
248GSSGLUE_CFLAGS = @GSSGLUE_CFLAGS@
249GSSGLUE_LIBS = @GSSGLUE_LIBS@
250GSSKRB_CFLAGS = @GSSKRB_CFLAGS@
251GSSKRB_LIBS = @GSSKRB_LIBS@
252HAVE_LIBWRAP = @HAVE_LIBWRAP@
253HAVE_TCP_WRAPPER = @HAVE_TCP_WRAPPER@
254IDMAPD = @IDMAPD@
255INSTALL = @INSTALL@
256INSTALL_DATA = @INSTALL_DATA@
257INSTALL_PROGRAM = @INSTALL_PROGRAM@
258INSTALL_SCRIPT = @INSTALL_SCRIPT@
259INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
260K5VERS = @K5VERS@
261KRBCFLAGS = @KRBCFLAGS@
262KRBDIR = @KRBDIR@
263KRBLDFLAGS = @KRBLDFLAGS@
264KRBLIBS = @KRBLIBS@
265LD = @LD@
266LDFLAGS = @LDFLAGS@
267LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
268LIBBLKID = @LIBBLKID@
269LIBBSD = @LIBBSD@
270LIBCAP = @LIBCAP@
271LIBCRYPT = @LIBCRYPT@
272LIBEVENT = @LIBEVENT@
273LIBKEYUTILS = @LIBKEYUTILS@
274LIBMOUNT = @LIBMOUNT@
275LIBMOUNT_CFLAGS = @LIBMOUNT_CFLAGS@
276LIBMOUNT_LIBS = @LIBMOUNT_LIBS@
277LIBNSL = @LIBNSL@
278LIBOBJS = @LIBOBJS@
279LIBPTHREAD = @LIBPTHREAD@
280LIBS = @LIBS@
281LIBSOCKET = @LIBSOCKET@
282LIBSQLITE = @LIBSQLITE@
283LIBTIRPC = @LIBTIRPC@
284LIBTOOL = @LIBTOOL@
285LIBWRAP = @LIBWRAP@
286LIBXML2 = @LIBXML2@
287LIPO = @LIPO@
288LN_S = @LN_S@
289LTLIBOBJS = @LTLIBOBJS@
290LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
291MAINT = @MAINT@
292MAKEINFO = @MAKEINFO@
293MANIFEST_TOOL = @MANIFEST_TOOL@
294MKDIR_P = @MKDIR_P@
295NM = @NM@
296NMEDIT = @NMEDIT@
297OBJDUMP = @OBJDUMP@
298OBJEXT = @OBJEXT@
299OTOOL = @OTOOL@
300OTOOL64 = @OTOOL64@
301PACKAGE = @PACKAGE@
302PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
303PACKAGE_NAME = @PACKAGE_NAME@
304PACKAGE_STRING = @PACKAGE_STRING@
305PACKAGE_TARNAME = @PACKAGE_TARNAME@
306PACKAGE_URL = @PACKAGE_URL@
307PACKAGE_VERSION = @PACKAGE_VERSION@
308PATH_PLUGINS = @PATH_PLUGINS@
309PATH_SEPARATOR = @PATH_SEPARATOR@
310PKG_CONFIG = @PKG_CONFIG@
311PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
312PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
313RANLIB = @RANLIB@
314RELEASE = @RELEASE@
315RPCGEN_PATH = @RPCGEN_PATH@
316RPCSECGSS_CFLAGS = @RPCSECGSS_CFLAGS@
317RPCSECGSS_LIBS = @RPCSECGSS_LIBS@
318SED = @SED@
319SET_MAKE = @SET_MAKE@
320SHELL = @SHELL@
321STRIP = @STRIP@
322SVCGSSD = @SVCGSSD@
323TIRPC_CFLAGS = @TIRPC_CFLAGS@
324TIRPC_LIBS = @TIRPC_LIBS@
325VERSION = @VERSION@
326XML2_CFLAGS = @XML2_CFLAGS@
327XML2_LIBS = @XML2_LIBS@
328_rpc_pipefsmount = @_rpc_pipefsmount@
329_statedir = @_statedir@
330_sysconfdir = @_sysconfdir@
331abs_builddir = @abs_builddir@
332abs_srcdir = @abs_srcdir@
333abs_top_builddir = @abs_top_builddir@
334abs_top_srcdir = @abs_top_srcdir@
335ac_ct_AR = @ac_ct_AR@
336ac_ct_CC = @ac_ct_CC@
337ac_ct_CXX = @ac_ct_CXX@
338ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
339am__include = @am__include@
340am__leading_dot = @am__leading_dot@
341am__quote = @am__quote@
342am__tar = @am__tar@
343am__untar = @am__untar@
344bindir = @bindir@
345build = @build@
346build_alias = @build_alias@
347build_cpu = @build_cpu@
348build_os = @build_os@
349build_vendor = @build_vendor@
350builddir = @builddir@
351datadir = @datadir@
352datarootdir = @datarootdir@
353docdir = @docdir@
354dvidir = @dvidir@
355enable_gss = @enable_gss@
356enable_ipv6 = @enable_ipv6@
357enable_mountconfig = @enable_mountconfig@
358enable_nfsv4 = @enable_nfsv4@
359enable_nfsv41 = @enable_nfsv41@
360enable_svcgss = @enable_svcgss@
361exec_prefix = @exec_prefix@
362host = @host@
363host_alias = @host_alias@
364host_cpu = @host_cpu@
365host_os = @host_os@
366host_vendor = @host_vendor@
367htmldir = @htmldir@
368includedir = @includedir@
369infodir = @infodir@
370install_sh = @install_sh@
371kprefix = @kprefix@
372libdir = @libdir@
373libexecdir = @libexecdir@
374localedir = @localedir@
375localstatedir = @localstatedir@
376mandir = @mandir@
377mkdir_p = @mkdir_p@
378mountfile = @mountfile@
379nfsconfig = @nfsconfig@
380oldincludedir = @oldincludedir@
381pdfdir = @pdfdir@
382prefix = @prefix@
383program_transform_name = @program_transform_name@
384psdir = @psdir@
385rpc_pipefsmount = @rpc_pipefsmount@
386runstatedir = @runstatedir@
387sbindir = @sbindir@
388sharedstatedir = @sharedstatedir@
389srcdir = @srcdir@
390startstatd = @startstatd@
391statdpath = @statdpath@
392statduser = @statduser@
393statedir = @statedir@
394sysconfdir = @sysconfdir@
395target_alias = @target_alias@
396top_build_prefix = @top_build_prefix@
397top_builddir = @top_builddir@
398top_srcdir = @top_srcdir@
399unitdir = @unitdir@
400noinst_LIBRARIES = libreexport.a
401libreexport_a_SOURCES = reexport.c
402fsidd_SOURCES = fsidd.c backend_sqlite.c
403fsidd_LDADD = ../../support/misc/libmisc.a \
404 ../../support/nfs/libnfs.la \
405 $(LIBPTHREAD) $(LIBEVENT) $(LIBSQLITE) \
406 $(OPTLIBS)
407
408fsidd_CPPFLAGS = $(AM_CPPFLAGS) $(CPPFLAGS) \
409 -I$(top_builddir)/support/include
410
411MAINTAINERCLEANFILES = Makefile.in
412all: all-am
413
414.SUFFIXES:
415.SUFFIXES: .c .lo .o .obj
416$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
417 @for dep in $?; do \
418 case '$(am__configure_deps)' in \
419 *$$dep*) \
420 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
421 && { if test -f $@; then exit 0; else break; fi; }; \
422 exit 1;; \
423 esac; \
424 done; \
425 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu support/reexport/Makefile'; \
426 $(am__cd) $(top_srcdir) && \
427 $(AUTOMAKE) --gnu support/reexport/Makefile
428Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
429 @case '$?' in \
430 *config.status*) \
431 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
432 *) \
433 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
434 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
435 esac;
436
437$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
438 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
439
440$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
441 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
442$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
443 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
444$(am__aclocal_m4_deps):
445install-sbinPROGRAMS: $(sbin_PROGRAMS)
446 @$(NORMAL_INSTALL)
447 @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
448 if test -n "$$list"; then \
449 echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \
450 $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \
451 fi; \
452 for p in $$list; do echo "$$p $$p"; done | \
453 sed 's/$(EXEEXT)$$//' | \
454 while read p p1; do if test -f $$p \
455 || test -f $$p1 \
456 ; then echo "$$p"; echo "$$p"; else :; fi; \
457 done | \
458 sed -e 'p;s,.*/,,;n;h' \
459 -e 's|.*|.|' \
460 -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
461 sed 'N;N;N;s,\n, ,g' | \
462 $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
463 { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
464 if ($$2 == $$4) files[d] = files[d] " " $$1; \
465 else { print "f", $$3 "/" $$4, $$1; } } \
466 END { for (d in files) print "f", d, files[d] }' | \
467 while read type dir files; do \
468 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
469 test -z "$$files" || { \
470 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \
471 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \
472 } \
473 ; done
474
475uninstall-sbinPROGRAMS:
476 @$(NORMAL_UNINSTALL)
477 @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
478 files=`for p in $$list; do echo "$$p"; done | \
479 sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
480 -e 's/$$/$(EXEEXT)/' \
481 `; \
482 test -n "$$list" || exit 0; \
483 echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
484 cd "$(DESTDIR)$(sbindir)" && rm -f $$files
485
486clean-sbinPROGRAMS:
487 @list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \
488 echo " rm -f" $$list; \
489 rm -f $$list || exit $$?; \
490 test -n "$(EXEEXT)" || exit 0; \
491 list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
492 echo " rm -f" $$list; \
493 rm -f $$list
494
495clean-noinstLIBRARIES:
496 -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
497
498libreexport.a: $(libreexport_a_OBJECTS) $(libreexport_a_DEPENDENCIES) $(EXTRA_libreexport_a_DEPENDENCIES)
499 $(AM_V_at)-rm -f libreexport.a
500 $(AM_V_AR)$(libreexport_a_AR) libreexport.a $(libreexport_a_OBJECTS) $(libreexport_a_LIBADD)
501 $(AM_V_at)$(RANLIB) libreexport.a
502
503fsidd$(EXEEXT): $(fsidd_OBJECTS) $(fsidd_DEPENDENCIES) $(EXTRA_fsidd_DEPENDENCIES)
504 @rm -f fsidd$(EXEEXT)
505 $(AM_V_CCLD)$(LINK) $(fsidd_OBJECTS) $(fsidd_LDADD) $(LIBS)
506
507mostlyclean-compile:
508 -rm -f *.$(OBJEXT)
509
510distclean-compile:
511 -rm -f *.tab.c
512
513@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsidd-backend_sqlite.Po@am__quote@ # am--include-marker
514@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsidd-fsidd.Po@am__quote@ # am--include-marker
515@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reexport.Po@am__quote@ # am--include-marker
516
517$(am__depfiles_remade):
518 @$(MKDIR_P) $(@D)
519 @echo '# dummy' >$@-t && $(am__mv) $@-t $@
520
521am--depfiles: $(am__depfiles_remade)
522
523.c.o:
524@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
525@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
526@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
527@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
528@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
529
530.c.obj:
531@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
532@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
533@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
534@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
535@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
536
537.c.lo:
538@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
539@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
540@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
541@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
542@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
543
544fsidd-fsidd.o: fsidd.c
545@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
546@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fsidd-fsidd.Tpo $(DEPDIR)/fsidd-fsidd.Po
547@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsidd.c' object='fsidd-fsidd.o' libtool=no @AMDEPBACKSLASH@
548@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
549@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
550
551fsidd-fsidd.obj: fsidd.c
552@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`
553@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fsidd-fsidd.Tpo $(DEPDIR)/fsidd-fsidd.Po
554@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsidd.c' object='fsidd-fsidd.obj' libtool=no @AMDEPBACKSLASH@
555@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
556@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`
557
558fsidd-backend_sqlite.o: backend_sqlite.c
559@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
560@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fsidd-backend_sqlite.Tpo $(DEPDIR)/fsidd-backend_sqlite.Po
561@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backend_sqlite.c' object='fsidd-backend_sqlite.o' libtool=no @AMDEPBACKSLASH@
562@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
563@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
564
565fsidd-backend_sqlite.obj: backend_sqlite.c
566@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`
567@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fsidd-backend_sqlite.Tpo $(DEPDIR)/fsidd-backend_sqlite.Po
568@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='backend_sqlite.c' object='fsidd-backend_sqlite.obj' libtool=no @AMDEPBACKSLASH@
569@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
570@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`
571
572mostlyclean-libtool:
573 -rm -f *.lo
574
575clean-libtool:
576 -rm -rf .libs _libs
577
578ID: $(am__tagged_files)
579 $(am__define_uniq_tagged_files); mkid -fID $$unique
580tags: tags-am
581TAGS: tags
582
583tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
584 set x; \
585 here=`pwd`; \
586 $(am__define_uniq_tagged_files); \
587 shift; \
588 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
589 test -n "$$unique" || unique=$$empty_fix; \
590 if test $$# -gt 0; then \
591 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
592 "$$@" $$unique; \
593 else \
594 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
595 $$unique; \
596 fi; \
597 fi
598ctags: ctags-am
599
600CTAGS: ctags
601ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
602 $(am__define_uniq_tagged_files); \
603 test -z "$(CTAGS_ARGS)$$unique" \
604 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
605 $$unique
606
607GTAGS:
608 here=`$(am__cd) $(top_builddir) && pwd` \
609 && $(am__cd) $(top_srcdir) \
610 && gtags -i $(GTAGS_ARGS) "$$here"
611cscopelist: cscopelist-am
612
613cscopelist-am: $(am__tagged_files)
614 list='$(am__tagged_files)'; \
615 case "$(srcdir)" in \
616 [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
617 *) sdir=$(subdir)/$(srcdir) ;; \
618 esac; \
619 for i in $$list; do \
620 if test -f "$$i"; then \
621 echo "$(subdir)/$$i"; \
622 else \
623 echo "$$sdir/$$i"; \
624 fi; \
625 done >> $(top_builddir)/cscope.files
626
627distclean-tags:
628 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
629distdir: $(BUILT_SOURCES)
630 $(MAKE) $(AM_MAKEFLAGS) distdir-am
631
632distdir-am: $(DISTFILES)
633 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
634 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
635 list='$(DISTFILES)'; \
636 dist_files=`for file in $$list; do echo $$file; done | \
637 sed -e "s|^$$srcdirstrip/||;t" \
638 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
639 case $$dist_files in \
640 */*) $(MKDIR_P) `echo "$$dist_files" | \
641 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
642 sort -u` ;; \
643 esac; \
644 for file in $$dist_files; do \
645 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
646 if test -d $$d/$$file; then \
647 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
648 if test -d "$(distdir)/$$file"; then \
649 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
650 fi; \
651 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
652 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
653 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
654 fi; \
655 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
656 else \
657 test -f "$(distdir)/$$file" \
658 || cp -p $$d/$$file "$(distdir)/$$file" \
659 || exit 1; \
660 fi; \
661 done
662check-am: all-am
663check: check-am
664all-am: Makefile $(PROGRAMS) $(LIBRARIES)
665installdirs:
666 for dir in "$(DESTDIR)$(sbindir)"; do \
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches