Blob Blame History Raw
autofs-5.1.7 - remove mount.x and rpcgen dependencies

From: Ian Kent <raven@themaw.net>

Adding a local implementation to get the exports list from a server
means the the rpcgen generataed code is no longer needed so remove
mount.x and the build dependencies.

Signed-off-by: Ian Kent <raven@themaw.net>
---
 CHANGELOG           |    1 
 Makefile.conf.in    |    1 
 autofs.spec         |    2 
 configure           |   58 ---------
 configure.in        |    1 
 include/automount.h |    1 
 include/config.h.in |    3 
 lib/Makefile        |   26 ----
 lib/mount.x         |  345 ---------------------------------------------------
 9 files changed, 5 insertions(+), 433 deletions(-)
 delete mode 100644 lib/mount.x

diff --git a/CHANGELOG b/CHANGELOG
index 84050e91..19af245e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,6 @@
 
 - add xdr_exports().
+- remove mount.x and rpcgen dependencies.
 
 25/01/2021 autofs-5.1.7
 - make bind mounts propagation slave by default.
diff --git a/Makefile.conf.in b/Makefile.conf.in
index df678eec..12f26eb8 100644
--- a/Makefile.conf.in
+++ b/Makefile.conf.in
@@ -65,7 +65,6 @@ FEDFS = @ENABLE_FEDFS@
 
 LEX = @PATH_LEX@
 YACC = @PATH_YACC@
-RPCGEN = @PATH_RPCGEN@
 RANLIB = @PATH_RANLIB@
 
 # Use libtirpc if requested and available
diff --git a/autofs.spec b/autofs.spec
index 3c2b144a..823735a3 100644
--- a/autofs.spec
+++ b/autofs.spec
@@ -39,7 +39,7 @@ BuildRequires: libtirpc-devel
 %endif
 BuildRequires: autoconf, openldap-devel, bison, flex, libxml2-devel
 BuildRequires: cyrus-sasl-devel, openssl-devel, util-linux
-BuildRequires: libtirpc-devel, rpcgen, libnsl2-devel, krb5-devel
+BuildRequires: libtirpc-devel, libnsl2-devel, krb5-devel
 Requires: chkconfig
 Requires: /bin/bash sed grep /bin/ps
 %if %{with_systemd}
diff --git a/configure b/configure
index de968f0e..3c5fe78b 100755
--- a/configure
+++ b/configure
@@ -650,8 +650,6 @@ XML_CFLAGS
 ENABLE_FEDFS
 sssldir
 HAVE_SSS_AUTOFS
-PATH_RPCGEN
-RPCGEN
 PATH_RANLIB
 RANLIB
 PATH_YACC
@@ -4205,62 +4203,6 @@ else
   as_fn_error $? "required program RANLIB not found" "$LINENO" 5
 fi
 
-for ac_prog in rpcgen
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_RPCGEN+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $RPCGEN in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_RPCGEN="$RPCGEN" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $searchpath
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_RPCGEN="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-RPCGEN=$ac_cv_path_RPCGEN
-if test -n "$RPCGEN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RPCGEN" >&5
-$as_echo "$RPCGEN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$RPCGEN" && break
-done
-
-if test -n "$RPCGEN"; then
-
-cat >>confdefs.h <<_ACEOF
-#define PATH_RPCGEN "$RPCGEN"
-_ACEOF
-
-  PATH_RPCGEN="$RPCGEN"
-else
-  as_fn_error $? "required program RPCGEN not found" "$LINENO" 5
-fi
-
 
 if test -z "$sssldir"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sssd autofs library" >&5
diff --git a/configure.in b/configure.in
index a38d6655..e774b4cc 100644
--- a/configure.in
+++ b/configure.in
@@ -164,7 +164,6 @@ AF_PATH_INCLUDE(E4FSCK, fsck.ext4 e4fsck, , $searchpath)
 AF_CHECK_PROG(LEX, flex lex, , $searchpath)
 AF_CHECK_PROG(YACC, bison, , $searchpath)
 AF_CHECK_PROG(RANLIB, ranlib, , $searchpath)
-AF_CHECK_PROG(RPCGEN, rpcgen, , $searchpath)
 
 AF_CHECK_SSS_LIB(SSS_AUTOFS, libsss_autofs.so)
 AC_SUBST(HAVE_SSS_AUTOFS)
diff --git a/include/automount.h b/include/automount.h
index 1ae40786..2f09e8e7 100644
--- a/include/automount.h
+++ b/include/automount.h
@@ -32,7 +32,6 @@
 #include "macros.h"
 #include "log.h"
 #include "rpc_subs.h"
-#include "mounts.h"
 #include "parse_subs.h"
 #include "mounts.h"
 #include "dev-ioctl-lib.h"
diff --git a/include/config.h.in b/include/config.h.in
index a4879494..4e36b390 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -135,9 +135,6 @@
 /* define if you have RANLIB */
 #undef PATH_RANLIB
 
-/* define if you have RPCGEN */
-#undef PATH_RPCGEN
-
 /* define if you have UMOUNT */
 #undef PATH_UMOUNT
 
diff --git a/lib/Makefile b/lib/Makefile
index 83a80a1e..d18c67b5 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -8,10 +8,9 @@ include ../Makefile.rules
 SRCS = cache.c cat_path.c rpc_subs.c mounts.c log.c nsswitch.c \
 	nss_tok.c nss_parse.tab.c args.c alarm.c macros.c defaults.c \
 	parse_subs.c dev-ioctl-lib.c
-RPCS = mount.h mount_clnt.c mount_xdr.c
-OBJS = cache.o mount_clnt.o mount_xdr.o cat_path.o rpc_subs.o \
-	mounts.o log.o nsswitch.o nss_tok.o nss_parse.tab.o args.o \
-	alarm.o macros.o defaults.o parse_subs.o dev-ioctl-lib.o
+OBJS = cache.o cat_path.o rpc_subs.o mounts.o log.o nsswitch.o \
+	nss_tok.o nss_parse.tab.o args.o alarm.o macros.o defaults.o \
+	parse_subs.o dev-ioctl-lib.o
 
 YACCSRC = nss_tok.c nss_parse.tab.c nss_parse.tab.h
 
@@ -33,23 +32,6 @@ libautofs.so: $(OBJS)
 	$(CC) $(SOLDFLAGS) $(CFLAGS) -o $*.so $^ $(LDFLAGS) $(LIBS)
 	$(STRIP) $*.so
 
-mount.h: mount.x
-	$(RPCGEN) -h -o mount.h mount.x
-
-mount_clnt.c: mount.h
-	$(RPCGEN) -l -o mount_clnt.c mount.x
-
-mount_clnt.o: mount_clnt.c
-	$(CC) $(CFLAGS) -o mount_clnt.o -c mount_clnt.c
-	$(STRIP) mount_clnt.o
-
-mount_xdr.c: mount.h
-	$(RPCGEN) -c -o mount_xdr.c mount.x
-
-mount_xdr.o: mount_xdr.c
-	$(CC) $(CFLAGS) -Wno-unused-variable -o mount_xdr.o -c mount_xdr.c
-	$(STRIP) mount_xdr.o
-
 nss_tok.c: nss_tok.l
 	$(LEX) -o$@ -Pnss_ $?
 
@@ -60,8 +42,6 @@ nss_tok.o: nss_tok.c nss_parse.tab.h
 
 nss_parse.tab.o: nss_parse.tab.c nss_parse.tab.h
 
-rpc_subs.o: mount.h
-
 install: all
 	install -d -m 755 $(INSTALLROOT)$(autofslibdir)
 	install -c $(LIB) -m 755 $(INSTALLROOT)$(sharedlibdir)
diff --git a/lib/mount.x b/lib/mount.x
deleted file mode 100644
index f504e7cf..00000000
--- a/lib/mount.x
+++ /dev/null
@@ -1,345 +0,0 @@
-%/*
-% * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
-% * unrestricted use provided that this legend is included on all tape
-% * media and as a part of the software program in whole or part.  Users
-% * may copy or modify Sun RPC without charge, but are not authorized
-% * to license or distribute it to anyone else except as part of a product or
-% * program developed by the user or with the express written consent of
-% * Sun Microsystems, Inc.
-% *
-% * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-% * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-% * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-% *
-% * Sun RPC is provided with no support and without any obligation on the
-% * part of Sun Microsystems, Inc. to assist in its use, correction,
-% * modification or enhancement.
-% *
-% * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
-% * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
-% * OR ANY PART THEREOF.
-% *
-% * In no event will Sun Microsystems, Inc. be liable for any lost revenue
-% * or profits or other special, indirect and consequential damages, even if
-% * Sun has been advised of the possibility of such damages.
-% *
-% * Sun Microsystems, Inc.
-% * 2550 Garcia Avenue
-% * Mountain View, California  94043
-% */
-
-%/*
-% * Copyright (c) 1985, 1990 by Sun Microsystems, Inc.
-% */
-%
-%/* from @(#)mount.x	1.3 91/03/11 TIRPC 1.0 */
-
-/*
- * Protocol description for the mount program
- */
-
-#ifdef RPC_HDR
-%#ifndef _rpcsvc_mount_h
-%#define _rpcsvc_mount_h
-%#include <memory.h>
-#endif
-
-const MNTPATHLEN = 1024;	/* maximum bytes in a pathname argument */
-const MNTNAMLEN = 255;		/* maximum bytes in a name argument */
-const FHSIZE = 32;		/* size in bytes of a file handle */
-
-/*
- * The fhandle is the file handle that the server passes to the client.
- * All file operations are done using the file handles to refer to a file
- * or a directory. The file handle can contain whatever information the
- * server needs to distinguish an individual file.
- */
-typedef opaque fhandle[FHSIZE];	
-
-/*
- * If a status of zero is returned, the call completed successfully, and 
- * a file handle for the directory follows. A non-zero status indicates
- * some sort of error. The status corresponds with UNIX error numbers.
- */
-union fhstatus switch (unsigned fhs_status) {
-case 0:
-	fhandle fhs_fhandle;
-default:
-	void;
-};
-
-/*
- * The type dirpath is the pathname of a directory
- */
-typedef string dirpath<MNTPATHLEN>;
-
-/*
- * The type name is used for arbitrary names (hostnames, groupnames)
- */
-typedef string name<MNTNAMLEN>;
-
-/*
- * A list of who has what mounted
- */
-typedef struct mountbody *mountlist;
-struct mountbody {
-	name ml_hostname;
-	dirpath ml_directory;
-	mountlist ml_next;
-};
-
-/*
- * A list of netgroups
- */
-typedef struct groupnode *groups;
-struct groupnode {
-	name gr_name;
-	groups gr_next;
-};
-
-/*
- * A list of what is exported and to whom
- */
-typedef struct exportnode *exports;
-struct exportnode {
-	dirpath ex_dir;
-	groups ex_groups;
-	exports ex_next;
-};
-
-/*
- * POSIX pathconf information
- */
-struct ppathcnf {
-	int	pc_link_max;	/* max links allowed */
-	short	pc_max_canon;	/* max line len for a tty */
-	short	pc_max_input;	/* input a tty can eat all at once */
-	short	pc_name_max;	/* max file name length (dir entry) */
-	short	pc_path_max;	/* max path name length (/x/y/x/.. ) */
-	short	pc_pipe_buf;	/* size of a pipe (bytes) */
-	u_char	pc_vdisable;	/* safe char to turn off c_cc[i] */
-	char	pc_xxx;		/* alignment padding; cc_t == char */
-	short	pc_mask[2];	/* validity and boolean bits */
-};
-
-/*
- * NFSv3 file handle
- */
-const FHSIZE3 =	64;		/* max size of NFSv3 file handle in bytes */
-typedef opaque		fhandle3<FHSIZE3>;
-
-/*
- * NFSv3 mount status
- */
-enum mountstat3 {
-	MNT_OK			= 0,	/* no error */
-	MNT3ERR_PERM		= 1,	/* not owner */
-	MNT3ERR_NOENT		= 2,	/* no such file or directory */
-	MNT3ERR_IO		= 5,	/* I/O error */
-	MNT3ERR_ACCES		= 13,	/* Permission denied */
-	MNT3ERR_NOTDIR		= 20,	/* Not a directory */
-	MNT3ERR_INVAL		= 22,	/* Invalid argument */
-	MNT3ERR_NAMETOOLONG	= 63,	/* File name too long */
-	MNT3ERR_NOTSUPP		= 10004,/* Operation not supported */
-	MNT3ERR_SERVERFAULT	= 10006	/* A failure on the server */
-};
-
-/*
- * NFSv3 mount result
- */
-struct mountres3_ok {
-	fhandle3	fhandle;
-	int		auth_flavors<>;
-};
-
-union mountres3 switch (mountstat3 fhs_status) {
-case MNT_OK:
-	mountres3_ok	mountinfo; /* File handle and supported flavors */
-default:
-	void;
-};
-
-program MOUNTPROG {
-	/*
-	 * Version one of the mount protocol communicates with version two
-	 * of the NFS protocol. The only connecting point is the fhandle 
-	 * structure, which is the same for both protocols.
-	 */
-	version MOUNTVERS {
-		/*
-		 * Does no work. It is made available in all RPC services
-		 * to allow server reponse testing and timing
-		 */
-		void
-		MOUNTPROC_NULL(void) = 0;
-
-		/*	
-		 * If fhs_status is 0, then fhs_fhandle contains the
-	 	 * file handle for the directory. This file handle may
-		 * be used in the NFS protocol. This procedure also adds
-		 * a new entry to the mount list for this client mounting
-		 * the directory.
-		 * Unix authentication required.
-		 */
-		fhstatus 
-		MOUNTPROC_MNT(dirpath) = 1;
-
-		/*
-		 * Returns the list of remotely mounted filesystems. The 
-		 * mountlist contains one entry for each hostname and 
-		 * directory pair.
-		 */
-		mountlist
-		MOUNTPROC_DUMP(void) = 2;
-
-		/*
-		 * Removes the mount list entry for the directory
-		 * Unix authentication required.
-		 */
-		void
-		MOUNTPROC_UMNT(dirpath) = 3;
-
-		/*
-		 * Removes all of the mount list entries for this client
-		 * Unix authentication required.
-		 */
-		void
-		MOUNTPROC_UMNTALL(void) = 4;
-
-		/*
-		 * Returns a list of all the exported filesystems, and which
-		 * machines are allowed to import it.
-		 */
-		exports
-		MOUNTPROC_EXPORT(void)  = 5;
-
-		/*
-		 * Identical to MOUNTPROC_EXPORT above
-		 */
-		exports
-		MOUNTPROC_EXPORTALL(void) = 6;
-	} = 1;
-
-	/*
-	 * Version two of the mount protocol communicates with version two
-	 * of the NFS protocol.
-	 * The only difference from version one is the addition of a POSIX
-	 * pathconf call.
-	 */
-	version MOUNTVERS_POSIX {
-		/*
-		 * Does no work. It is made available in all RPC services
-		 * to allow server reponse testing and timing
-		 */
-		void
-		MOUNTPROC_NULL(void) = 0;
-
-		/*	
-		 * If fhs_status is 0, then fhs_fhandle contains the
-	 	 * file handle for the directory. This file handle may
-		 * be used in the NFS protocol. This procedure also adds
-		 * a new entry to the mount list for this client mounting
-		 * the directory.
-		 * Unix authentication required.
-		 */
-		fhstatus 
-		MOUNTPROC_MNT(dirpath) = 1;
-
-		/*
-		 * Returns the list of remotely mounted filesystems. The 
-		 * mountlist contains one entry for each hostname and 
-		 * directory pair.
-		 */
-		mountlist
-		MOUNTPROC_DUMP(void) = 2;
-
-		/*
-		 * Removes the mount list entry for the directory
-		 * Unix authentication required.
-		 */
-		void
-		MOUNTPROC_UMNT(dirpath) = 3;
-
-		/*
-		 * Removes all of the mount list entries for this client
-		 * Unix authentication required.
-		 */
-		void
-		MOUNTPROC_UMNTALL(void) = 4;
-
-		/*
-		 * Returns a list of all the exported filesystems, and which
-		 * machines are allowed to import it.
-		 */
-		exports
-		MOUNTPROC_EXPORT(void)  = 5;
-
-		/*
-		 * Identical to MOUNTPROC_EXPORT above
-		 */
-		exports
-		MOUNTPROC_EXPORTALL(void) = 6;
-
-		/*
-		 * POSIX pathconf info (Sun hack)
-		 */
-		ppathcnf
-		MOUNTPROC_PATHCONF(dirpath) = 7;
-	} = 2;
-
-	/*
-	 * Version 3 of the protocol is for NFSv3
-	 */
-	version MOUNTVERS_NFSV3 {
-		/*
-		 * Does no work. It is made available in all RPC services
-		 * to allow server reponse testing and timing
-		 */
-		void
-		MOUNTPROC3_NULL(void) = 0;
-
-		/*	
-		 * If fhs_status is 0, then fhs_fhandle contains the
-	 	 * file handle for the directory. This file handle may
-		 * be used in the NFS protocol. This procedure also adds
-		 * a new entry to the mount list for this client mounting
-		 * the directory.
-		 * Unix authentication required.
-		 */
-		mountres3 
-		MOUNTPROC3_MNT(dirpath) = 1;
-
-		/*
-		 * Returns the list of remotely mounted filesystems. The 
-		 * mountlist contains one entry for each hostname and 
-		 * directory pair.
-		 */
-		mountlist
-		MOUNTPROC3_DUMP(void) = 2;
-
-		/*
-		 * Removes the mount list entry for the directory
-		 * Unix authentication required.
-		 */
-		void
-		MOUNTPROC3_UMNT(dirpath) = 3;
-
-		/*
-		 * Removes all of the mount list entries for this client
-		 * Unix authentication required.
-		 */
-		void
-		MOUNTPROC3_UMNTALL(void) = 4;
-
-		/*
-		 * Returns a list of all the exported filesystems, and which
-		 * machines are allowed to import it.
-		 */
-		exports
-		MOUNTPROC3_EXPORT(void)  = 5;
-	} = 3;
-} = 100005;
-
-#ifdef RPC_HDR
-%#endif /*!_rpcsvc_mount_h*/
-#endif