autofs-5.1.7 - remove mount.x and rpcgen dependencies From: Ian Kent 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 --- 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 -#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; - -/* - * The type name is used for arbitrary names (hostnames, groupnames) - */ -typedef string name; - -/* - * 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; - -/* - * 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