575 lines
15 KiB
Diff
575 lines
15 KiB
Diff
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
|