autofs/autofs-5.1.7-remove-mount_x-and-rpcgen-dependencies.patch

575 lines
15 KiB
Diff
Raw Normal View History

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