Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Feb 2013 14:39:26 +0300
From:      Sergey Kandaurov <pluknet@gmail.com>
To:        FreeBSD Current <freebsd-current@freebsd.org>
Subject:   [patch] Proposal: move getmntopts(3) into libutil
Message-ID:  <CAE-mSO%2B_JCAtzDbMfts8Ttgs32T7zNFZkYbGJ610v85=H-U=OA@mail.gmail.com>

next in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
Hi.

The functions from sbin/mount/getmntopts.c are used in a bunch of other
stuff like mount_* utilities which have to suck them in as their own
functions in quite a hackish way. getmntopts.c copies are compiled in to
an every utility-consumer instead of being present in one place.  Looks
like getmntopts.c was brought together with mount_ufs.c in 4.4BSD-Lite.
After that other mount_* were converted to use getmntopts().

The utilities consuming getmntopts.c as currently present in HEAD:
mount_smbfs
fsck_ffs
growfs
mksnap_ffs
mount
mount_cd9660
mount_ext2fs
mount_fusefs
mount_hpfs
mount_msdosfs
mount_nfs
mount_nullfs
mount_reiserfs
mount_std
mount_udf
mount_unionfs
mount_nwfs
mount_portalfs
mount_smbfs
mountd

External mount-like utilities may also have difficulties with building
to get getmntopts.c source as this requires /usr/src presence which is
in sync with installed world. Look how mount_fusefs from ports compiles:
# mount_fusefs needs mntopts.h and getmntopts.c from src/sbin/mount/

The attached patch moves them to the IMHO architecturally more correct
place: a separate library -lutil.
sbin/mount/mntopts.h            -> include/mntopts.h
sbin/mount/getmntopts.[3c]      -> lib/libutil/getmntopts.[3c]

The full list of functions in getmntopts.c:
getmntopts()
rmslashes()
checkpath()
build_iovec()
build_iovec_argf()

This will eventually give them public and documented status. It will
also bring back to live its semi-dead man page getmntopts(3) currently
disconnected from build, that will force us to update (and use) it which
is also a goody. getmntopts.3 was never installed.

As a bonus, it will bring us in sync with others BSDs.

The attached patch was buildworld-tested and contains only minimal changes;
getmntopts(3) updates and other improvements could be made separately.
- rearrange files from sbin/mount/ to the new place
- update Makefiles's of mount_* to use getmntopts(3) from libutil
- #include "mntopts.h" -> #include <mntopts.h>

Well, the include changes should be safe to commit as is.

Below is a changelist from svn stat, for convenience 'sake.
M       contrib/smbfs/mount_smbfs/mount_smbfs.c
M       include/Makefile
A  +    include/mntopts.h
M       lib/libutil/Makefile
A  +    lib/libutil/getmntopts.3
A  +    lib/libutil/getmntopts.c
M       sbin/fsck_ffs/Makefile
M       sbin/growfs/Makefile
M       sbin/mksnap_ffs/Makefile
M       sbin/mount/Makefile
D       sbin/mount/getmntopts.3
D       sbin/mount/getmntopts.c
D       sbin/mount/mntopts.h
M       sbin/mount/mount.c
M       sbin/mount/mount_fs.c
M       sbin/mount_cd9660/Makefile
M       sbin/mount_cd9660/mount_cd9660.c
M       sbin/mount_ext2fs/Makefile
M       sbin/mount_ext2fs/mount_ext2fs.c
M       sbin/mount_fusefs/Makefile
M       sbin/mount_fusefs/mount_fusefs.c
M       sbin/mount_hpfs/Makefile
M       sbin/mount_hpfs/mount_hpfs.c
M       sbin/mount_msdosfs/Makefile
M       sbin/mount_msdosfs/mount_msdosfs.c
M       sbin/mount_nfs/Makefile
M       sbin/mount_nfs/mount_nfs.c
M       sbin/mount_ntfs/Makefile
M       sbin/mount_ntfs/mount_ntfs.c
M       sbin/mount_nullfs/Makefile
M       sbin/mount_nullfs/mount_nullfs.c
M       sbin/mount_reiserfs/Makefile
M       sbin/mount_reiserfs/mount_reiserfs.c
M       sbin/mount_std/Makefile
M       sbin/mount_std/mount_std.c
M       sbin/mount_udf/Makefile
M       sbin/mount_udf/mount_udf.c
M       sbin/mount_unionfs/Makefile
M       sbin/mount_unionfs/mount_unionfs.c
M       usr.sbin/mount_nwfs/Makefile
M       usr.sbin/mount_nwfs/mount_nwfs.c
M       usr.sbin/mount_portalfs/Makefile
M       usr.sbin/mount_portalfs/mount_portalfs.c
M       usr.sbin/mount_smbfs/Makefile
M       usr.sbin/mountd/Makefile
M       usr.sbin/mountd/mountd.c

-- 
wbr,
pluknet

[-- Attachment #2 --]
Index: contrib/smbfs/mount_smbfs/mount_smbfs.c
===================================================================
--- contrib/smbfs/mount_smbfs/mount_smbfs.c	(revision 247149)
+++ contrib/smbfs/mount_smbfs/mount_smbfs.c	(working copy)
@@ -47,6 +47,7 @@
 #include <stdlib.h>
 #include <err.h>
 #include <sysexits.h>
+#include <mntopts.h>
 
 #include <cflib.h>
 
@@ -56,8 +57,6 @@
 
 #include <fs/smbfs/smbfs.h>
 
-#include "mntopts.h"
-
 static char mount_point[MAXPATHLEN + 1];
 static void usage(void);
 
Index: include/Makefile
===================================================================
--- include/Makefile	(revision 247149)
+++ include/Makefile	(working copy)
@@ -13,8 +13,8 @@
 	fts.h ftw.h getopt.h glob.h grp.h gssapi.h \
 	ieeefp.h ifaddrs.h \
 	inttypes.h iso646.h kenv.h langinfo.h libgen.h limits.h link.h \
-	locale.h malloc.h malloc_np.h memory.h monetary.h mpool.h mqueue.h \
-	ndbm.h netconfig.h \
+	locale.h malloc.h malloc_np.h memory.h mntopts.h \
+	monetary.h mpool.h mqueue.h ndbm.h netconfig.h \
 	netdb.h nl_types.h nlist.h nss.h nsswitch.h paths.h \
 	printf.h proc_service.h pthread.h \
 	pthread_np.h pwd.h ranlib.h readpassphrase.h regex.h \
Index: lib/libutil/Makefile
===================================================================
--- lib/libutil/Makefile	(revision 247149)
+++ lib/libutil/Makefile	(working copy)
@@ -8,7 +8,8 @@
 LIB=	util
 SHLIB_MAJOR= 9
 
-SRCS=	_secure_path.c auth.c expand_number.c flopen.c fparseln.c gr_util.c \
+SRCS=	_secure_path.c auth.c expand_number.c flopen.c fparseln.c \
+	getmntopts.c gr_util.c \
 	hexdump.c humanize_number.c kinfo_getfile.c kinfo_getfile.c \
 	kinfo_getallproc.c kinfo_getproc.c kinfo_getvmmap.c kld.c \
 	login_auth.c login_cap.c \
@@ -25,7 +26,7 @@
 
 CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../libc/gen/
 
-MAN+=	expand_number.3 flopen.3 fparseln.3 hexdump.3 \
+MAN+=	expand_number.3 flopen.3 fparseln.3 getmntopts.3 hexdump.3 \
 	humanize_number.3 kinfo_getallproc.3 kinfo_getfile.3 \
 	kinfo_getproc.3 kinfo_getvmmap.3 kld.3 login_auth.3 login_cap.3 \
 	login_class.3 login_ok.3 login_times.3 login_tty.3 pidfile.3 \
Index: sbin/fsck_ffs/Makefile
===================================================================
--- sbin/fsck_ffs/Makefile	(revision 247256)
+++ sbin/fsck_ffs/Makefile	(working copy)
@@ -7,12 +7,12 @@
 MAN=	fsck_ffs.8
 MLINKS=	fsck_ffs.8 fsck_ufs.8 fsck_ffs.8 fsck_4.2bsd.8
 SRCS=	dir.c ea.c fsutil.c inode.c main.c pass1.c pass1b.c pass2.c pass3.c \
-	pass4.c pass5.c setup.c suj.c utilities.c gjournal.c getmntopts.c
-DPADD=	${LIBUFS}
-LDADD=	-lufs
+	pass4.c pass5.c setup.c suj.c utilities.c gjournal.c
+DPADD=	${LIBUFS} ${LIBUTIL}
+LDADD=	-lufs -lutil
 WARNS?=	2
-CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../mount
+CFLAGS+= -I${.CURDIR}
 
-.PATH:	${.CURDIR}/../../sys/ufs/ffs ${.CURDIR}/../mount
+.PATH:	${.CURDIR}/../../sys/ufs/ffs
 
 .include <bsd.prog.mk>
Index: sbin/growfs/Makefile
===================================================================
--- sbin/growfs/Makefile	(revision 247149)
+++ sbin/growfs/Makefile	(working copy)
@@ -6,12 +6,9 @@
 
 #GFSDBG=
 
-.PATH:	${.CURDIR}/../mount
-
 PROG=   growfs
-SRCS=   growfs.c getmntopts.c
+SRCS=   growfs.c
 MAN=	growfs.8
-CFLAGS+=-I${.CURDIR}/../mount
 
 .if defined(GFSDBG)
 SRCS+=  debug.c
Index: sbin/mksnap_ffs/Makefile
===================================================================
--- sbin/mksnap_ffs/Makefile	(revision 247149)
+++ sbin/mksnap_ffs/Makefile	(working copy)
@@ -3,12 +3,13 @@
 .PATH:	${.CURDIR}/../mount
 
 PROG=	mksnap_ffs
-SRCS=	mksnap_ffs.c getmntopts.c
 MAN=	mksnap_ffs.8
 
 WARNS?=	2
-CFLAGS+=-I${.CURDIR}/../mount
 
+DPADD=	${LIBUTIL}
+LDADD=	-lutil
+
 .if defined(NOSUID)
 BINMODE=550
 .else
Index: sbin/mount/Makefile
===================================================================
--- sbin/mount/Makefile	(revision 247149)
+++ sbin/mount/Makefile	(working copy)
@@ -2,9 +2,8 @@
 # $FreeBSD$
 
 PROG=	mount
-SRCS=	mount.c mount_fs.c getmntopts.c vfslist.c
+SRCS=	mount.c mount_fs.c vfslist.c
 MAN=	mount.8
-# We do NOT install the getmntopts.3 man page.
 
 DPADD=	${LIBUTIL}
 LDADD=	-lutil
Index: sbin/mount/getmntopts.3
===================================================================
--- sbin/mount/getmntopts.3	(revision 247149)
+++ sbin/mount/getmntopts.3	(working copy)
@@ -1,181 +0,0 @@
-.\" Copyright (c) 1994
-.\"	The Regents of the University of California.  All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\"    may be used to endorse or promote products derived from this software
-.\"    without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\"	@(#)getmntopts.3	8.3 (Berkeley) 3/30/95
-.\" $FreeBSD$
-.\"
-.Dd February 17, 2008
-.Dt GETMNTOPTS 3
-.Os
-.Sh NAME
-.Nm getmntopts
-.Nd scan mount options
-.Sh SYNOPSIS
-.Fd #include \&"mntopts.h"
-.Ft void
-.Fo getmntopts
-.Fa "const char *options" "const struct mntopt *mopts"
-.Fa "int *flagp" "int *altflagp"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn getmntopts
-function takes a comma separated option list and a list
-of valid option names, and computes the bitmask
-corresponding to the requested set of options.
-.Pp
-The string
-.Fa options
-is broken down into a sequence of comma separated tokens.
-Each token is looked up in the table described by
-.Fa mopts
-and the bits in
-the word referenced by either
-.Fa flagp
-or
-.Fa altflagp
-(depending on the
-.Va m_altloc
-field of the option's table entry)
-are updated.
-The flag words are not initialized by
-.Fn getmntopts .
-The table,
-.Fa mopts ,
-has the following format:
-.Bd -literal
-struct mntopt {
-	char *m_option;		/* option name */
-	int m_inverse;		/* is this a negative option, e.g., "dev" */
-	int m_flag;		/* bit to set, e.g., MNT_RDONLY */
-	int m_altloc;		/* non-zero to use altflagp rather than flagp */
-};
-.Ed
-.Pp
-The members of this structure are:
-.Bl -tag -width m_inverse
-.It Va m_option
-the option name,
-for example
-.Dq Li suid .
-.It Va m_inverse
-tells
-.Fn getmntopts
-that the name has the inverse meaning of the
-bit.
-For example,
-.Dq Li suid
-is the string, whereas the
-mount flag is
-.Dv MNT_NOSUID .
-In this case, the sense of the string and the flag
-are inverted, so the
-.Va m_inverse
-flag should be set.
-.It Va m_flag
-the value of the bit to be set or cleared in
-the flag word when the option is recognized.
-The bit is set when the option is discovered,
-but cleared if the option name was preceded
-by the letters
-.Dq Li no .
-The
-.Va m_inverse
-flag causes these two operations to be reversed.
-.It Va m_altloc
-the bit should be set or cleared in
-.Fa altflagp
-rather than
-.Fa flagp .
-.El
-.Pp
-Each of the user visible
-.Dv MNT_
-flags has a corresponding
-.Dv MOPT_
-macro which defines an appropriate
-.Vt "struct mntopt"
-entry.
-To simplify the program interface and ensure consistency across all
-programs, a general purpose macro,
-.Dv MOPT_STDOPTS ,
-is defined which
-contains an entry for all the generic VFS options.
-In addition, the macros
-.Dv MOPT_FORCE
-and
-.Dv MOPT_UPDATE
-exist to enable the
-.Dv MNT_FORCE
-and
-.Dv MNT_UPDATE
-flags to be set.
-Finally, the table must be terminated by an entry with a
-.Dv NULL
-first element.
-.Sh EXAMPLES
-Most commands will use the standard option set.
-Local file systems which support the
-.Dv MNT_UPDATE
-flag, would also have an
-.Dv MOPT_UPDATE
-entry.
-This can be declared and used as follows:
-.Bd -literal
-#include "mntopts.h"
-
-struct mntopt mopts[] = {
-	MOPT_STDOPTS,
-	MOPT_UPDATE,
-	{ NULL }
-};
-
-	...
-	mntflags = mntaltflags = 0;
-	...
-	getmntopts(options, mopts, &mntflags, &mntaltflags);
-	...
-.Ed
-.Sh DIAGNOSTICS
-If the external integer variable
-.Va getmnt_silent
-is zero, then the
-.Fn getmntopts
-function displays an error message and exits if an
-unrecognized option is encountered.
-Otherwise unrecognized options are silently ignored.
-By default
-.Va getmnt_silent
-is zero.
-.Sh SEE ALSO
-.Xr err 3 ,
-.Xr mount 8
-.Sh HISTORY
-The
-.Fn getmntopts
-function appeared in
-.Bx 4.4 .
Index: sbin/mount/getmntopts.c
===================================================================
--- sbin/mount/getmntopts.c	(revision 247149)
+++ sbin/mount/getmntopts.c	(working copy)
@@ -1,183 +0,0 @@
-/*-
- * Copyright (c) 1994
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if 0
-#ifndef lint
-static char sccsid[] = "@(#)getmntopts.c	8.3 (Berkeley) 3/29/95";
-#endif /* not lint */
-#endif
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/mount.h>
-#include <sys/stat.h>
-#include <sys/uio.h>
-
-#include <err.h>
-#include <errno.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "mntopts.h"
-
-int getmnt_silent = 0;
-
-void
-getmntopts(const char *options, const struct mntopt *m0, int *flagp,
-	int *altflagp)
-{
-	const struct mntopt *m;
-	int negative, len;
-	char *opt, *optbuf, *p;
-	int *thisflagp;
-
-	/* Copy option string, since it is about to be torn asunder... */
-	if ((optbuf = strdup(options)) == NULL)
-		err(1, NULL);
-
-	for (opt = optbuf; (opt = strtok(opt, ",")) != NULL; opt = NULL) {
-		/* Check for "no" prefix. */
-		if (opt[0] == 'n' && opt[1] == 'o') {
-			negative = 1;
-			opt += 2;
-		} else
-			negative = 0;
-
-		/*
-		 * for options with assignments in them (ie. quotas)
-		 * ignore the assignment as it's handled elsewhere
-		 */
-		p = strchr(opt, '=');
-		if (p != NULL)
-			 *++p = '\0';
-
-		/* Scan option table. */
-		for (m = m0; m->m_option != NULL; ++m) {
-			len = strlen(m->m_option);
-			if (strncasecmp(opt, m->m_option, len) == 0)
-				if (opt[len] == '\0' || opt[len] == '=')
-					break;
-		}
-
-		/* Save flag, or fail if option is not recognized. */
-		if (m->m_option) {
-			thisflagp = m->m_altloc ? altflagp : flagp;
-			if (negative == m->m_inverse)
-				*thisflagp |= m->m_flag;
-			else
-				*thisflagp &= ~m->m_flag;
-		} else if (!getmnt_silent) {
-			errx(1, "-o %s: option not supported", opt);
-		}
-	}
-
-	free(optbuf);
-}
-
-void
-rmslashes(char *rrpin, char *rrpout)
-{
-	char *rrpoutstart;
-
-	*rrpout = *rrpin;
-	for (rrpoutstart = rrpout; *rrpin != '\0'; *rrpout++ = *rrpin++) {
-
-		/* skip all double slashes */
-		while (*rrpin == '/' && *(rrpin + 1) == '/')
-			 rrpin++;
-	}
-
-	/* remove trailing slash if necessary */
-	if (rrpout - rrpoutstart > 1 && *(rrpout - 1) == '/')
-		*(rrpout - 1) = '\0';
-	else
-		*rrpout = '\0';
-}
-
-int
-checkpath(const char *path, char *resolved)
-{
-	struct stat sb;
-
-	if (realpath(path, resolved) == NULL || stat(resolved, &sb) != 0)
-		return (1);
-	if (!S_ISDIR(sb.st_mode)) {
-		errno = ENOTDIR;
-		return (1);
-	}
-	return (0);
-}
-
-void
-build_iovec(struct iovec **iov, int *iovlen, const char *name, void *val,
-	    size_t len)
-{
-	int i;
-
-	if (*iovlen < 0)
-		return;
-	i = *iovlen;
-	*iov = realloc(*iov, sizeof **iov * (i + 2));
-	if (*iov == NULL) {
-		*iovlen = -1;
-		return;
-	}
-	(*iov)[i].iov_base = strdup(name);
-	(*iov)[i].iov_len = strlen(name) + 1;
-	i++;
-	(*iov)[i].iov_base = val;
-	if (len == (size_t)-1) {
-		if (val != NULL)
-			len = strlen(val) + 1;
-		else
-			len = 0;
-	}
-	(*iov)[i].iov_len = (int)len;
-	*iovlen = ++i;
-}
-
-/*
- * This function is needed for compatibility with parameters
- * which used to use the mount_argf() command for the old mount() syscall.
- */
-void
-build_iovec_argf(struct iovec **iov, int *iovlen, const char *name,
-    const char *fmt, ...)
-{
-	va_list ap;
-	char val[255] = { 0 };
-
-	va_start(ap, fmt);
-	vsnprintf(val, sizeof(val), fmt, ap);
-	va_end(ap);
-	build_iovec(iov, iovlen, name, strdup(val), (size_t)-1);
-}
Index: sbin/mount/mntopts.h
===================================================================
--- sbin/mount/mntopts.h	(revision 247149)
+++ sbin/mount/mntopts.h	(working copy)
@@ -1,99 +0,0 @@
-/*-
- * Copyright (c) 1994
- *      The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)mntopts.h	8.7 (Berkeley) 3/29/95
- * $FreeBSD$
- */
-
-struct mntopt {
-	const char *m_option;	/* option name */
-	int m_inverse;		/* if a negative option, e.g. "atime" */
-	int m_flag;		/* bit to set, e.g. MNT_RDONLY */
-	int m_altloc;		/* 1 => set bit in altflags */
-};
-
-/* User-visible MNT_ flags. */
-#define MOPT_ASYNC		{ "async",	0, MNT_ASYNC, 0 }
-#define MOPT_NOATIME		{ "atime",	1, MNT_NOATIME, 0 }
-#define MOPT_NOEXEC		{ "exec",	1, MNT_NOEXEC, 0 }
-#define MOPT_NOSUID		{ "suid",	1, MNT_NOSUID, 0 }
-#define MOPT_NOSYMFOLLOW	{ "symfollow",  1, MNT_NOSYMFOLLOW, 0 }
-#define MOPT_RDONLY		{ "rdonly",	0, MNT_RDONLY, 0 }
-#define MOPT_SYNC		{ "sync",	0, MNT_SYNCHRONOUS, 0 }
-#define MOPT_UNION		{ "union",	0, MNT_UNION, 0 }
-#define MOPT_USERQUOTA		{ "userquota",	0, 0, 0 }
-#define MOPT_GROUPQUOTA		{ "groupquota",	0, 0, 0 }
-#define MOPT_NOCLUSTERR		{ "clusterr",	1, MNT_NOCLUSTERR, 0 }
-#define MOPT_NOCLUSTERW		{ "clusterw",	1, MNT_NOCLUSTERW, 0 }
-#define MOPT_SUIDDIR		{ "suiddir",	0, MNT_SUIDDIR, 0 }
-#define MOPT_SNAPSHOT		{ "snapshot",	0, MNT_SNAPSHOT, 0 }
-#define MOPT_MULTILABEL		{ "multilabel",	0, MNT_MULTILABEL, 0 }
-#define MOPT_ACLS		{ "acls",	0, MNT_ACLS, 0 }
-#define MOPT_NFS4ACLS		{ "nfsv4acls",	0, MNT_NFS4ACLS, 0 }
-
-/* Control flags. */
-#define MOPT_FORCE		{ "force",	0, MNT_FORCE, 0 }
-#define MOPT_UPDATE		{ "update",	0, MNT_UPDATE, 0 }
-#define MOPT_RO			{ "ro",		0, MNT_RDONLY, 0 }
-#define MOPT_RW			{ "rw",		1, MNT_RDONLY, 0 }
-
-/* This is parsed by mount(8), but is ignored by specific mount_*(8)s. */
-#define MOPT_AUTO		{ "auto",	0, 0, 0 }
-
-/* A handy macro as terminator of MNT_ array. */
-#define MOPT_END		{ NULL,		0, 0, 0 }
-
-#define MOPT_FSTAB_COMPAT						\
-	MOPT_RO,							\
-	MOPT_RW,							\
-	MOPT_AUTO
-
-/* Standard options which all mounts can understand. */
-#define MOPT_STDOPTS							\
-	MOPT_USERQUOTA,							\
-	MOPT_GROUPQUOTA,						\
-	MOPT_FSTAB_COMPAT,						\
-	MOPT_NOATIME,							\
-	MOPT_NOEXEC,							\
-	MOPT_SUIDDIR,		/* must be before MOPT_NOSUID */	\
-	MOPT_NOSUID,							\
-	MOPT_NOSYMFOLLOW,						\
-	MOPT_RDONLY,							\
-	MOPT_UNION,							\
-	MOPT_NOCLUSTERR,						\
-	MOPT_NOCLUSTERW,						\
-	MOPT_MULTILABEL,						\
-	MOPT_ACLS,							\
-	MOPT_NFS4ACLS
-
-void getmntopts(const char *, const struct mntopt *, int *, int *);
-void rmslashes(char *, char *);
-int checkpath(const char *, char resolved_path[]);
-extern int getmnt_silent;
-void build_iovec(struct iovec **iov, int *iovlen, const char *name, void *val, size_t len);
-void build_iovec_argf(struct iovec **iov, int *iovlen, const char *name, const char *fmt, ...);
Index: sbin/mount/mount.c
===================================================================
--- sbin/mount/mount.c	(revision 247149)
+++ sbin/mount/mount.c	(working copy)
@@ -48,6 +48,7 @@
 #include <err.h>
 #include <errno.h>
 #include <fstab.h>
+#include <mntopts.h>
 #include <paths.h>
 #include <pwd.h>
 #include <signal.h>
@@ -59,7 +60,6 @@
 #include <libutil.h>
 
 #include "extern.h"
-#include "mntopts.h"
 #include "pathnames.h"
 
 /* `meta' options */
Index: sbin/mount/mount_fs.c
===================================================================
--- sbin/mount/mount_fs.c	(revision 247149)
+++ sbin/mount/mount_fs.c	(working copy)
@@ -50,13 +50,13 @@
 #include <err.h>
 #include <getopt.h>
 #include <libgen.h>
+#include <mntopts.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
 #include "extern.h"
-#include "mntopts.h"
 
 static struct mntopt mopts[] = {
 	MOPT_STDOPTS,
Index: sbin/mount_cd9660/Makefile
===================================================================
--- sbin/mount_cd9660/Makefile	(revision 247149)
+++ sbin/mount_cd9660/Makefile	(working copy)
@@ -2,18 +2,12 @@
 # $FreeBSD$
 
 PROG=	mount_cd9660
-SRCS=	mount_cd9660.c getmntopts.c
 MAN=	mount_cd9660.8
-DPADD=	${LIBKICONV}
-LDADD=	-lkiconv
+DPADD=	${LIBKICONV} ${LIBUTIL}
+LDADD=	-lkiconv -lutil
 
-MOUNT=	${.CURDIR}/../mount
-CFLAGS+= -I${MOUNT}
-
 # Needs to be dynamically linked for optional dlopen() access to
 # userland libiconv
 NO_SHARED?=	NO
 
-.PATH:	${MOUNT}
-
 .include <bsd.prog.mk>
Index: sbin/mount_cd9660/mount_cd9660.c
===================================================================
--- sbin/mount_cd9660/mount_cd9660.c	(revision 247149)
+++ sbin/mount_cd9660/mount_cd9660.c	(working copy)
@@ -60,14 +60,13 @@
 
 #include <err.h>
 #include <errno.h>
+#include <mntopts.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <sysexits.h>
 #include <unistd.h>
 
-#include "mntopts.h"
-
 static struct mntopt mopts[] = {
 	MOPT_STDOPTS,
 	MOPT_UPDATE,
Index: sbin/mount_ext2fs/Makefile
===================================================================
--- sbin/mount_ext2fs/Makefile	(revision 247149)
+++ sbin/mount_ext2fs/Makefile	(working copy)
@@ -2,13 +2,11 @@
 # $FreeBSD$
 
 PROG=	mount_ext2fs
-SRCS=	mount_ext2fs.c getmntopts.c
 MAN=	mount_ext2fs.8
 
 WARNS?=	2
-MOUNT=	${.CURDIR}/../mount
-CFLAGS+= -I${MOUNT}
 
-.PATH:	${MOUNT}
+DPADD=	${LIBUTIL}
+LDADD=	-lutil
 
 .include <bsd.prog.mk>
Index: sbin/mount_ext2fs/mount_ext2fs.c
===================================================================
--- sbin/mount_ext2fs/mount_ext2fs.c	(revision 247149)
+++ sbin/mount_ext2fs/mount_ext2fs.c	(working copy)
@@ -46,14 +46,13 @@
 #include <sys/uio.h>
 
 #include <err.h>
+#include <mntopts.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sysexits.h>
 #include <unistd.h>
 
-#include "mntopts.h"
-
 static void	usage(void);
 
 int
Index: sbin/mount_fusefs/Makefile
===================================================================
--- sbin/mount_fusefs/Makefile	(revision 247149)
+++ sbin/mount_fusefs/Makefile	(working copy)
@@ -21,13 +21,10 @@
 .endif
 
 PROG=	mount_fusefs
-SRCS=	mount_fusefs.c getmntopts.c
 MAN8=	mount_fusefs.8
 NO_MANCOMPRESS?=	yes
 
-MOUNT=	${.CURDIR}/../mount
-CFLAGS+=	-I${MOUNT}
+DPADD=	${LIBUTIL}
+LDADD=	-lutil
 
-.PATH: ${MOUNT}
-
 .include <bsd.prog.mk>
Index: sbin/mount_fusefs/mount_fusefs.c
===================================================================
--- sbin/mount_fusefs/mount_fusefs.c	(revision 247149)
+++ sbin/mount_fusefs/mount_fusefs.c	(working copy)
@@ -36,6 +36,7 @@
 #include <sys/sysctl.h>
 
 #include <err.h>
+#include <mntopts.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -48,8 +49,6 @@
 #include <osreldate.h>
 #include <paths.h>
 
-#include "mntopts.h"
-
 #ifndef FUSE4BSD_VERSION
 #define	FUSE4BSD_VERSION	"0.3.9-pre1"
 #endif
Index: sbin/mount_hpfs/Makefile
===================================================================
--- sbin/mount_hpfs/Makefile	(revision 247149)
+++ sbin/mount_hpfs/Makefile	(working copy)
@@ -3,12 +3,11 @@
 #
 
 PROG=	mount_hpfs
-SRCS=	mount_hpfs.c getmntopts.c
 MAN=	mount_hpfs.8
 
-MOUNT=	${.CURDIR}/../mount
-CFLAGS+= -I${MOUNT} -DHPFS
+CFLAGS+= -DHPFS
 
-.PATH:	${MOUNT}
+DPADD=	${LIBUTIL}
+LDADD=	-lutil
 
 .include <bsd.prog.mk>
Index: sbin/mount_hpfs/mount_hpfs.c
===================================================================
--- sbin/mount_hpfs/mount_hpfs.c	(revision 247149)
+++ sbin/mount_hpfs/mount_hpfs.c	(working copy)
@@ -39,6 +39,7 @@
 #include <ctype.h>
 #include <err.h>
 #include <grp.h>
+#include <mntopts.h>
 #include <pwd.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -46,8 +47,6 @@
 #include <sysexits.h>
 #include <unistd.h>
 
-#include "mntopts.h"
-
 static struct mntopt mopts[] = {
 	MOPT_STDOPTS,
 	MOPT_END
Index: sbin/mount_msdosfs/Makefile
===================================================================
--- sbin/mount_msdosfs/Makefile	(revision 247149)
+++ sbin/mount_msdosfs/Makefile	(working copy)
@@ -3,18 +3,12 @@
 #
 
 PROG=	mount_msdosfs
-SRCS=	mount_msdosfs.c getmntopts.c
 MAN=	mount_msdosfs.8
-DPADD=	${LIBKICONV}
-LDADD=	-lkiconv
+DPADD=	${LIBKICONV} ${LIBUTIL}
+LDADD=	-lkiconv -lutil
 
-MOUNT=	${.CURDIR}/../mount
-CFLAGS+= -I${MOUNT}
-
 # Needs to be dynamically linked for optional dlopen() access to
 # userland libiconv
 NO_SHARED?=	NO
 
-.PATH:	${MOUNT}
-
 .include <bsd.prog.mk>
Index: sbin/mount_msdosfs/mount_msdosfs.c
===================================================================
--- sbin/mount_msdosfs/mount_msdosfs.c	(revision 247149)
+++ sbin/mount_msdosfs/mount_msdosfs.c	(working copy)
@@ -46,6 +46,7 @@
 #include <err.h>
 #include <grp.h>
 #include <locale.h>
+#include <mntopts.h>
 #include <pwd.h>
 #include <stdio.h>
 /* must be after stdio to declare fparseln */
@@ -55,8 +56,6 @@
 #include <sysexits.h>
 #include <unistd.h>
 
-#include "mntopts.h"
-
 static gid_t	a_gid(char *);
 static uid_t	a_uid(char *);
 static mode_t	a_mask(char *);
Index: sbin/mount_nfs/Makefile
===================================================================
--- sbin/mount_nfs/Makefile	(revision 247149)
+++ sbin/mount_nfs/Makefile	(working copy)
@@ -3,17 +3,19 @@
 # $FreeBSD$
 
 PROG=	mount_nfs
-SRCS=	mount_nfs.c getmntopts.c mounttab.c
+SRCS=	mount_nfs.c mounttab.c
 MAN=	mount_nfs.8
 MLINKS=	mount_nfs.8 mount_oldnfs.8
 
-MOUNT=	${.CURDIR}/../mount
 UMNTALL= ${.CURDIR}/../../usr.sbin/rpc.umntall
-CFLAGS+= -DNFS -I${MOUNT} -I${UMNTALL}
+CFLAGS+= -DNFS -I${UMNTALL}
 WARNS?=	3
 
+DPADD=	${LIBUTIL}
+LDADD=	-lutil
+
 LINKS=	${BINDIR}/mount_nfs ${BINDIR}/mount_oldnfs
 
-.PATH: ${MOUNT} ${UMNTALL}
+.PATH: ${UMNTALL}
 
 .include <bsd.prog.mk>
Index: sbin/mount_nfs/mount_nfs.c
===================================================================
--- sbin/mount_nfs/mount_nfs.c	(revision 247149)
+++ sbin/mount_nfs/mount_nfs.c	(working copy)
@@ -67,6 +67,7 @@
 #include <err.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <mntopts.h>
 #include <netdb.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -75,7 +76,6 @@
 #include <sysexits.h>
 #include <unistd.h>
 
-#include "mntopts.h"
 #include "mounttab.h"
 
 /* Table for af,sotype -> netid conversions. */
Index: sbin/mount_ntfs/Makefile
===================================================================
--- sbin/mount_ntfs/Makefile	(revision 247149)
+++ sbin/mount_ntfs/Makefile	(working copy)
@@ -3,18 +3,12 @@
 #
 
 PROG=	mount_ntfs
-SRCS=	mount_ntfs.c getmntopts.c
 MAN=	mount_ntfs.8
-DPADD=	${LIBKICONV}
-LDADD=	-lkiconv
+DPADD=	${LIBKICONV} ${LIBUTIL}
+LDADD=	-lkiconv -lutil
 
-MOUNT=	${.CURDIR}/../mount
-CFLAGS+= -I${MOUNT}
-
 # Needs to be dynamically linked for optional dlopen() access to
 # userland libiconv
 NO_SHARED?=	NO
 
-.PATH:	${MOUNT}
-
 .include <bsd.prog.mk>
Index: sbin/mount_ntfs/mount_ntfs.c
===================================================================
--- sbin/mount_ntfs/mount_ntfs.c	(revision 247149)
+++ sbin/mount_ntfs/mount_ntfs.c	(working copy)
@@ -44,6 +44,7 @@
 #include <ctype.h>
 #include <err.h>
 #include <grp.h>
+#include <mntopts.h>
 #include <pwd.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -52,8 +53,6 @@
 #include <unistd.h>
 #include <libutil.h>
 
-#include "mntopts.h"
-
 #define TRANSITION_PERIOD_HACK
 
 static struct mntopt mopts[] = {
Index: sbin/mount_nullfs/Makefile
===================================================================
--- sbin/mount_nullfs/Makefile	(revision 247149)
+++ sbin/mount_nullfs/Makefile	(working copy)
@@ -2,12 +2,9 @@
 # $FreeBSD$
 
 PROG=	mount_nullfs
-SRCS=	mount_nullfs.c getmntopts.c
 MAN=	mount_nullfs.8
 
-MOUNT=	${.CURDIR}/../mount
-CFLAGS+=-I${MOUNT}
+DPADD=	${LIBUTIL}
+LDADD=	-lutil
 
-.PATH:	${MOUNT}
-
 .include <bsd.prog.mk>
Index: sbin/mount_nullfs/mount_nullfs.c
===================================================================
--- sbin/mount_nullfs/mount_nullfs.c	(revision 247149)
+++ sbin/mount_nullfs/mount_nullfs.c	(working copy)
@@ -49,14 +49,13 @@
 #include <sys/uio.h>
 
 #include <err.h>
+#include <mntopts.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sysexits.h>
 #include <unistd.h>
 
-#include "mntopts.h"
-
 int	subdir(const char *, const char *);
 static void	usage(void) __dead2;
 
Index: sbin/mount_reiserfs/Makefile
===================================================================
--- sbin/mount_reiserfs/Makefile	(revision 247149)
+++ sbin/mount_reiserfs/Makefile	(working copy)
@@ -1,13 +1,9 @@
 # $FreeBSD$
 
 PROG = mount_reiserfs
-SRCS = mount_reiserfs.c getmntopts.c
 MAN  = mount_reiserfs.8
 
-# mount_reiserfs needs mntopts.h and getmntopts.c from src/sbin/mount/
-MOUNT  ?= ${.CURDIR}/../mount
-CFLAGS += -I${MOUNT}
+DPADD=	${LIBUTIL}
+LDADD=	-lutil
 
-.PATH: ${MOUNT}
-
 .include <bsd.prog.mk>
Index: sbin/mount_reiserfs/mount_reiserfs.c
===================================================================
--- sbin/mount_reiserfs/mount_reiserfs.c	(revision 247149)
+++ sbin/mount_reiserfs/mount_reiserfs.c	(working copy)
@@ -31,14 +31,13 @@
 #include <sys/uio.h>
 
 #include <err.h>
+#include <mntopts.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sysexits.h>
 #include <unistd.h>
 
-#include "mntopts.h"
-
 struct mntopt mopts[] = {
 	MOPT_STDOPTS,
 	MOPT_END
Index: sbin/mount_std/Makefile
===================================================================
--- sbin/mount_std/Makefile	(revision 247149)
+++ sbin/mount_std/Makefile	(working copy)
@@ -2,18 +2,16 @@
 #	$FreeBSD$
 
 PROG=	mount_std
-SRCS=	mount_std.c getmntopts.c
 MAN=	mount_std.8
 MLINKS=	mount_std.8 mount_devfs.8 \
 	mount_std.8 mount_fdescfs.8 \
 	mount_std.8 mount_linprocfs.8 \
 	mount_std.8 mount_procfs.8
 
-MOUNT=	${.CURDIR}/../mount
-CFLAGS+= -I${MOUNT}
 WARNS?=	3
 
-.PATH:	${MOUNT}
+DPADD=	${LIBUTIL}
+LDADD=	-lutil
 
 LINKS=	${BINDIR}/mount_std ${BINDIR}/mount_devfs \
 	${BINDIR}/mount_std ${BINDIR}/mount_fdescfs \
Index: sbin/mount_std/mount_std.c
===================================================================
--- sbin/mount_std/mount_std.c	(revision 247149)
+++ sbin/mount_std/mount_std.c	(working copy)
@@ -46,6 +46,7 @@
 
 #include <err.h>
 #include <errno.h>
+#include <mntopts.h>
 #include <stdio.h>
 #include <signal.h>
 #include <stdlib.h>
@@ -53,8 +54,6 @@
 #include <sysexits.h>
 #include <unistd.h>
 
-#include "mntopts.h"
-
 static struct mntopt mopts[] = {
 	MOPT_STDOPTS,
 	MOPT_END
Index: sbin/mount_udf/Makefile
===================================================================
--- sbin/mount_udf/Makefile	(revision 247149)
+++ sbin/mount_udf/Makefile	(working copy)
@@ -1,14 +1,11 @@
 # $FreeBSD$
 
 PROG=	mount_udf
-SRCS=	mount_udf.c getmntopts.c
 MAN=	mount_udf.8
-DPADD=	${LIBKICONV}
-LDADD=	-lkiconv
+DPADD=	${LIBKICONV} ${LIBUTIL}
+LDADD=	-lkiconv -lutil
 
-MOUNT=	${.CURDIR}/../mount
-CFLAGS+= -I${MOUNT} -I${.CURDIR}/../../sys
-.PATH:	${MOUNT}
+CFLAGS+= -I${.CURDIR}/../../sys
 WARNS?= 1
 
 # Needs to be dynamically linked for optional dlopen() access to
Index: sbin/mount_udf/mount_udf.c
===================================================================
--- sbin/mount_udf/mount_udf.c	(revision 247149)
+++ sbin/mount_udf/mount_udf.c	(working copy)
@@ -53,14 +53,13 @@
 
 #include <err.h>
 #include <errno.h>
+#include <mntopts.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <sysexits.h>
 #include <unistd.h>
 
-#include "mntopts.h"
-
 static struct mntopt mopts[] = {
 	MOPT_STDOPTS,
 	MOPT_UPDATE,
Index: sbin/mount_unionfs/Makefile
===================================================================
--- sbin/mount_unionfs/Makefile	(revision 247149)
+++ sbin/mount_unionfs/Makefile	(working copy)
@@ -2,12 +2,9 @@
 # $FreeBSD$
 
 PROG=	mount_unionfs
-SRCS=	mount_unionfs.c getmntopts.c
 MAN=	mount_unionfs.8
 
-MOUNT=	${.CURDIR}/../mount
-CFLAGS+=-I${MOUNT}
+DPADD=	${LIBUTIL}
+LDADD=	-lutil
 
-.PATH:	${MOUNT}
-
 .include <bsd.prog.mk>
Index: sbin/mount_unionfs/mount_unionfs.c
===================================================================
--- sbin/mount_unionfs/mount_unionfs.c	(revision 247149)
+++ sbin/mount_unionfs/mount_unionfs.c	(working copy)
@@ -54,6 +54,7 @@
 #include <sys/errno.h>
 
 #include <err.h>
+#include <mntopts.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -62,8 +63,6 @@
 #include <grp.h>
 #include <pwd.h>
 
-#include "mntopts.h"
-
 static int 
 subdir(const char *p, const char *dir)
 {
Index: usr.sbin/mount_nwfs/Makefile
===================================================================
--- usr.sbin/mount_nwfs/Makefile	(revision 247149)
+++ usr.sbin/mount_nwfs/Makefile	(working copy)
@@ -1,15 +1,11 @@
 # $FreeBSD$
 
 PROG=	mount_nwfs
-SRCS=	mount_nwfs.c getmntopts.c
 MAN=	mount_nwfs.8
 
-MOUNT=	${.CURDIR}/../../sbin/mount
-CFLAGS+= -DNWFS -I${MOUNT}
+CFLAGS+= -DNWFS
 
-.PATH:	${MOUNT}
+DPADD=	${LIBNCP} ${LIBIPX} ${LIBUTIL}
+LDADD=	-lncp -lipx -lutil
 
-DPADD=	${LIBNCP} ${LIBIPX}
-LDADD=	-lncp -lipx
-
 .include <bsd.prog.mk>
Index: usr.sbin/mount_nwfs/mount_nwfs.c
===================================================================
--- usr.sbin/mount_nwfs/mount_nwfs.c	(revision 247149)
+++ usr.sbin/mount_nwfs/mount_nwfs.c	(working copy)
@@ -48,11 +48,11 @@
 #include <err.h>
 #include <sysexits.h>
 #include <time.h>
+#include <mntopts.h>
 
 #include <netncp/ncp_lib.h>
 #include <netncp/ncp_rcfile.h>
 #include <fs/nwfs/nwfs_mount.h>
-#include "mntopts.h"
 
 #define	NWFS_VFSNAME	"nwfs"
 
Index: usr.sbin/mount_portalfs/Makefile
===================================================================
--- usr.sbin/mount_portalfs/Makefile	(revision 247149)
+++ usr.sbin/mount_portalfs/Makefile	(working copy)
@@ -2,14 +2,13 @@
 # $FreeBSD$
 
 PROG=	mount_portalfs
-SRCS=	mount_portalfs.c activate.c conf.c cred.c getmntopts.c pt_conf.c \
+SRCS=	mount_portalfs.c activate.c conf.c cred.c pt_conf.c \
 	pt_exec.c pt_file.c pt_pipe.c pt_tcp.c pt_tcplisten.c
 MAN=	mount_portalfs.8
 
-MOUNT=	${.CURDIR}/../../sbin/mount
-CFLAGS+=-I${MOUNT}
 WARNS?=	3
 
-.PATH:	${MOUNT}
+DPADD=	${LIBUTIL}
+LDADD=	-lutil
 
 .include <bsd.prog.mk>
Index: usr.sbin/mount_portalfs/mount_portalfs.c
===================================================================
--- usr.sbin/mount_portalfs/mount_portalfs.c	(revision 247149)
+++ usr.sbin/mount_portalfs/mount_portalfs.c	(working copy)
@@ -53,13 +53,13 @@
 
 #include <err.h>
 #include <errno.h>
+#include <mntopts.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sysexits.h>
 #include <unistd.h>
 
-#include "mntopts.h"
 #include "pathnames.h"
 #include "portald.h"
 
Index: usr.sbin/mount_smbfs/Makefile
===================================================================
--- usr.sbin/mount_smbfs/Makefile	(revision 247149)
+++ usr.sbin/mount_smbfs/Makefile	(working copy)
@@ -1,15 +1,13 @@
 # $FreeBSD$
 
 PROG=	mount_smbfs
-SRCS=	mount_smbfs.c getmntopts.c
 MAN=	mount_smbfs.8
 
-MOUNTDIR=	${.CURDIR}/../../sbin/mount
 CONTRIBDIR=	${.CURDIR}/../../contrib/smbfs
-CFLAGS+=	-DSMBFS -I${MOUNTDIR} -I${CONTRIBDIR}/include
+CFLAGS+=	-DSMBFS -I${CONTRIBDIR}/include
 
-LDADD=	-lsmb -lkiconv
-DPADD=	${LIBSMB} ${LIBKICONV}
+LDADD=	-lsmb -lkiconv -lutil
+DPADD=	${LIBSMB} ${LIBKICONV} ${LIBUTIL}
 
 # Needs to be dynamically linked for optional dlopen() access to
 # userland libiconv (see the -E option).
@@ -17,6 +15,5 @@
 NO_SHARED?=	NO
 
 .PATH:	${CONTRIBDIR}/mount_smbfs
-.PATH:  ${MOUNTDIR}
 
 .include <bsd.prog.mk>
Index: usr.sbin/mountd/Makefile
===================================================================
--- usr.sbin/mountd/Makefile	(revision 247149)
+++ usr.sbin/mountd/Makefile	(working copy)
@@ -2,15 +2,10 @@
 # $FreeBSD$
 
 PROG=	mountd
-SRCS=	mountd.c getmntopts.c
 MAN=	exports.5 netgroup.5 mountd.8
 
-MOUNT=  ${.CURDIR}/../../sbin/mount
-CFLAGS+= -I${MOUNT}
 WARNS?= 2
 
-.PATH: ${MOUNT}
-
 DPADD=	${LIBUTIL}
 LDADD=	-lutil
 
Index: usr.sbin/mountd/mountd.c
===================================================================
--- usr.sbin/mountd/mountd.c	(revision 247149)
+++ usr.sbin/mountd/mountd.c	(working copy)
@@ -73,6 +73,7 @@
 #include <grp.h>
 #include <libutil.h>
 #include <limits.h>
+#include <mntopts.h>
 #include <netdb.h>
 #include <pwd.h>
 #include <signal.h>
@@ -81,7 +82,6 @@
 #include <string.h>
 #include <unistd.h>
 #include "pathnames.h"
-#include "mntopts.h"
 
 #ifdef DEBUG
 #include <stdarg.h>

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAE-mSO%2B_JCAtzDbMfts8Ttgs32T7zNFZkYbGJ610v85=H-U=OA>