--- /dev/null
+From: Ben Hutchings <ben@decadent.org.uk>
+Subject: [PATCH] exports.man: Fix comment syntax
+
+Using three single-quotes for a comment sort of works because it
+results in invoking a nonexistent macro, but it results in a huge
+number of warnings when trying to validate the man page.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+
+--- a/utils/exportfs/exports.man
++++ b/utils/exportfs/exports.man
+@@ -72,25 +72,25 @@ For example, either `/255.255.252.0' or `/22' appended
+ to the network base IPv4 address results in identical subnetworks with 10 bits of
+ host. Wildcard characters generally do not work on IP addresses, though they
+ may work by accident when reverse DNS lookups fail.
+-'''.TP
+-'''.B =public
+-'''This is a special ``hostname'' that identifies the given directory name
+-'''as the public root directory (see the section on WebNFS in
+-'''.BR nfsd (8)
+-'''for a discussion of WebNFS and the public root handle). When using this
+-'''convention,
+-'''.B =public
+-'''must be the only entry on this line, and must have no export options
+-'''associated with it. Note that this does
+-'''.I not
+-'''actually export the named directory; you still have to set the exports
+-'''options in a separate entry.
+-'''.PP
+-'''The public root path can also be specified by invoking
+-'''.I nfsd
+-'''with the
+-'''.B \-\-public\-root
+-'''option. Multiple specifications of a public root will be ignored.
++.\".TP
++.\".B =public
++.\"This is a special ``hostname'' that identifies the given directory name
++.\"as the public root directory (see the section on WebNFS in
++.\".BR nfsd (8)
++.\"for a discussion of WebNFS and the public root handle). When using this
++.\"convention,
++.\".B =public
++.\"must be the only entry on this line, and must have no export options
++.\"associated with it. Note that this does
++.\".I not
++.\"actually export the named directory; you still have to set the exports
++.\"options in a separate entry.
++.\".PP
++.\"The public root path can also be specified by invoking
++.\".I nfsd
++.\"with the
++.\".B \-\-public\-root
++.\"option. Multiple specifications of a public root will be ignored.
+ .PP
+ .SS RPCSEC_GSS security
+ You may use the special strings "gss/krb5", "gss/krb5i", or "gss/krb5p"
+@@ -295,24 +295,24 @@ with ACL support (i.e. by default,
+ .I no_acl
+ is off).
+
+-'''.TP
+-'''.I noaccess
+-'''This makes everything below the directory inaccessible for the named
+-'''client. This is useful when you want to export a directory hierarchy to
+-'''a client, but exclude certain subdirectories. The client's view of a
+-'''directory flagged with noaccess is very limited; it is allowed to read
+-'''its attributes, and lookup `.' and `..'. These are also the only entries
+-'''returned by a readdir.
+-'''.TP
+-'''.IR link_relative
+-'''Convert absolute symbolic links (where the link contents start with a
+-'''slash) into relative links by prepending the necessary number of ../'s
+-'''to get from the directory containing the link to the root on the
+-'''server. This has subtle, perhaps questionable, semantics when the file
+-'''hierarchy is not mounted at its root.
+-'''.TP
+-'''.IR link_absolute
+-'''Leave all symbolic link as they are. This is the default operation.
++.\".TP
++.\".I noaccess
++.\"This makes everything below the directory inaccessible for the named
++.\"client. This is useful when you want to export a directory hierarchy to
++.\"a client, but exclude certain subdirectories. The client's view of a
++.\"directory flagged with noaccess is very limited; it is allowed to read
++.\"its attributes, and lookup `.' and `..'. These are also the only entries
++.\"returned by a readdir.
++.\".TP
++.\".IR link_relative
++.\"Convert absolute symbolic links (where the link contents start with a
++.\"slash) into relative links by prepending the necessary number of ../'s
++.\"to get from the directory containing the link to the root on the
++.\"server. This has subtle, perhaps questionable, semantics when the file
++.\"hierarchy is not mounted at its root.
++.\".TP
++.\".IR link_absolute
++.\"Leave all symbolic link as they are. This is the default operation.
+
+ .TP
+ .IR mountpoint= path
+@@ -409,21 +409,21 @@ and can be turned off with
+ .IR no_root_squash .
+ .PP
+ By default,
+-'''.B nfsd
+-'''tries to obtain the anonymous uid and gid by looking up user
+-'''.I nobody
+-'''in the password file at startup time. If it isn't found, a uid and gid
++.\".B nfsd
++.\"tries to obtain the anonymous uid and gid by looking up user
++.\".I nobody
++.\"in the password file at startup time. If it isn't found, a uid and gid
+ .B exportfs
+ chooses a uid and gid
+ of 65534 for squashed access. These values can also be overridden by
+ the
+ .IR anonuid " and " anongid
+ options.
+-'''.PP
+-'''In addition to this,
+-'''.B nfsd
+-'''lets you specify arbitrary uids and gids that should be mapped to user
+-'''nobody as well.
++.\".PP
++.\"In addition to this,
++.\".B nfsd
++.\"lets you specify arbitrary uids and gids that should be mapped to user
++.\"nobody as well.
+ Finally, you can map all user requests to the
+ anonymous uid by specifying the
+ .IR all_squash " option.
+@@ -468,7 +468,7 @@ is supposedly that of user joe).
+ /home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
+ /pub *(ro,insecure,all_squash)
+ /srv/www \-sync,rw server @trusted @external(ro)
+-'''/pub/private (noaccess)
++.\"/pub/private (noaccess)
+ .fi
+ .PP
+ The first line exports the entire filesystem to machines master and trusty.
+@@ -484,21 +484,21 @@ don't use a reserved port for NFS.
+ The sixth line exports a directory read-write to the machine 'server'
+ as well as the `@trusted' netgroup, and read-only to netgroup `@external',
+ all three mounts with the `sync' option enabled.
+-''' The last line denies all NFS clients
+-'''access to the private directory.
+-'''.SH CAVEATS
+-'''Unlike other NFS server implementations, this
+-'''.B nfsd
+-'''allows you to export both a directory and a subdirectory thereof to
+-'''the same host, for instance
+-'''.IR /usr " and " /usr/X11R6 .
+-'''In this case, the mount options of the most specific entry apply. For
+-'''instance, when a user on the client host accesses a file in
+-'''.IR /usr/X11R6 ,
+-'''the mount options given in the
+-'''.I /usr/X11R6
+-'''entry apply. This is also true when the latter is a wildcard or netgroup
+-'''entry.
++.\" The last line denies all NFS clients
++.\"access to the private directory.
++.\".SH CAVEATS
++.\"Unlike other NFS server implementations, this
++.\".B nfsd
++.\"allows you to export both a directory and a subdirectory thereof to
++.\"the same host, for instance
++.\".IR /usr " and " /usr/X11R6 .
++.\"In this case, the mount options of the most specific entry apply. For
++.\"instance, when a user on the client host accesses a file in
++.\".IR /usr/X11R6 ,
++.\"the mount options given in the
++.\".I /usr/X11R6
++.\"entry apply. This is also true when the latter is a wildcard or netgroup
++.\"entry.
+ .SH FILES
+ /etc/exports
+ .SH SEE ALSO
+@@ -507,17 +507,17 @@ all three mounts with the `sync' option enabled.
+ .BR mountd (8),
+ .BR nfsd (8),
+ .BR showmount (8).
+-'''.SH DIAGNOSTICS
+-'''An error parsing the file is reported using syslogd(8) as level NOTICE from
+-'''a DAEMON whenever
+-'''.BR nfsd (8)
+-'''or
+-'''.BR mountd (8)
+-'''is started up. Any unknown
+-'''host is reported at that time, but often not all hosts are not yet known
+-'''to
+-'''.BR named (8)
+-'''at boot time, thus as hosts are found they are reported
+-'''with the same
+-'''.BR syslogd (8)
+-'''parameters.
++.\".SH DIAGNOSTICS
++.\"An error parsing the file is reported using syslogd(8) as level NOTICE from
++.\"a DAEMON whenever
++.\".BR nfsd (8)
++.\"or
++.\".BR mountd (8)
++.\"is started up. Any unknown
++.\"host is reported at that time, but often not all hosts are not yet known
++.\"to
++.\".BR named (8)
++.\"at boot time, thus as hosts are found they are reported
++.\"with the same
++.\".BR syslogd (8)
++.\"parameters.