diff --git a/autofs-5.1.4-add-units-After-line-to-include-statd-service.patch b/autofs-5.1.4-add-units-After-line-to-include-statd-service.patch new file mode 100644 index 0000000..c5b6ee4 --- /dev/null +++ b/autofs-5.1.4-add-units-After-line-to-include-statd-service.patch @@ -0,0 +1,39 @@ +autofs-5.1.4 - add units After line to include statd service + +From: Ian Kent + +autofs needs to ensure statd is started before any NFS mounts +are attempted. This is because if the first NFS mount starts +the service and the mount is an automounted directory that is +included in the PATH used by systemctl (eg. /usr/local/bin) +the mount cannot complete. + +Add rpc-statd.service to the unit "After=" line to try and +ensure it is started before automount. + +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + + samples/autofs.service.in | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +--- autofs-5.1.4.orig/CHANGELOG ++++ autofs-5.1.4/CHANGELOG +@@ -21,6 +21,7 @@ xx/xx/2018 autofs-5.1.5 + - add an example fedfs master map entry to the installed master map. + - improve hostname lookup error logging. + - tiny patch for autofs typo and possible bug. ++- add units After line to include statd service. + + 19/12/2017 autofs-5.1.4 + - fix spec file url. +--- autofs-5.1.4.orig/samples/autofs.service.in ++++ autofs-5.1.4/samples/autofs.service.in +@@ -1,6 +1,6 @@ + [Unit] + Description=Automounts filesystems on demand +-After=network.target ypbind.service sssd.service network-online.target remote-fs.target ++After=network.target ypbind.service sssd.service network-online.target remote-fs.target rpc-statd.service rpcbind.service + Wants=network-online.target rpc-statd.service rpcbind.service + + [Service] diff --git a/autofs-5.1.4-fix-NFS-version-mask-usage.patch b/autofs-5.1.4-fix-NFS-version-mask-usage.patch new file mode 100644 index 0000000..6e25027 --- /dev/null +++ b/autofs-5.1.4-fix-NFS-version-mask-usage.patch @@ -0,0 +1,69 @@ +autofs-5.1.4 - fix NFS version mask usage + +From: Ian Kent + +Upstream commit a8af65195 changed NFS_VERS_MASK to exclude NFSv2 +so NFSv2 would be excluded in the default availability probe. + +But NFS_VERS_MASK is used like a mask elsewhere and causes NFSv2 +to be cleared for the availability probe even when it is requested. + +So add a macro to NFS_VERS_DEFAULT (and accompanying macros) to be +used to set initial defaults and restore NFS_VERS_MASK to what it +should be when used as a mask. + +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + + include/replicated.h | 5 ++++- + modules/mount_nfs.c | 6 +++--- + 3 files changed, 8 insertions(+), 4 deletions(-) + +--- autofs-5.1.4.orig/CHANGELOG ++++ autofs-5.1.4/CHANGELOG +@@ -23,6 +23,7 @@ xx/xx/2018 autofs-5.1.5 + - tiny patch for autofs typo and possible bug. + - add units After line to include statd service. + - use systemd sd_notify() at startup. ++- fix NFS version mask usage. + + 19/12/2017 autofs-5.1.4 + - fix spec file url. +--- autofs-5.1.4.orig/include/replicated.h ++++ autofs-5.1.4/include/replicated.h +@@ -26,7 +26,9 @@ + #define NFS2_SUPPORTED 0x0010 + #define NFS3_SUPPORTED 0x0020 + #define NFS4_SUPPORTED 0x0040 +-#define NFS_VERS_MASK (NFS3_SUPPORTED) ++#define NFS_VERS_DEFAULT (NFS3_SUPPORTED) ++#define NFS_VERS_MASK (NFS2_SUPPORTED|NFS3_SUPPORTED) ++#define NFS4_VERS_DEFAULT (NFS4_SUPPORTED) + #define NFS4_VERS_MASK (NFS4_SUPPORTED) + + #define NFS2_REQUESTED NFS2_SUPPORTED +@@ -39,6 +41,7 @@ + #define UDP_REQUESTED UDP_SUPPORTED + #define TCP6_REQUESTED 0x0100 + #define UDP6_REQUESTED 0x0200 ++#define NFS_PROTO_DEFAULT (TCP_SUPPORTED|UDP_SUPPORTED) + #define NFS_PROTO_MASK (TCP_SUPPORTED|UDP_SUPPORTED) + + #define NFS2_TCP_SUPPORTED NFS2_SUPPORTED +--- autofs-5.1.4.orig/modules/mount_nfs.c ++++ autofs-5.1.4/modules/mount_nfs.c +@@ -86,11 +86,11 @@ int mount_mount(struct autofs_point *ap, + root, name, what, fstype, options); + + mount_default_proto = defaults_get_mount_nfs_default_proto(); +- vers = NFS_VERS_MASK | NFS_PROTO_MASK; ++ vers = NFS_VERS_DEFAULT | NFS_PROTO_DEFAULT; + if (strcmp(fstype, "nfs4") == 0) +- vers = NFS4_VERS_MASK | TCP_SUPPORTED; ++ vers = NFS4_VERS_DEFAULT | TCP_SUPPORTED; + else if (mount_default_proto == 4) +- vers = vers | NFS4_VERS_MASK; ++ vers = vers | NFS4_VERS_DEFAULT; + + /* Extract "nosymlink" pseudo-option which stops local filesystems + * from being symlinked. diff --git a/autofs-5.1.4-tiny-patch-for-autofs-typo-and-possible-bug.patch b/autofs-5.1.4-tiny-patch-for-autofs-typo-and-possible-bug.patch new file mode 100644 index 0000000..1f03fff --- /dev/null +++ b/autofs-5.1.4-tiny-patch-for-autofs-typo-and-possible-bug.patch @@ -0,0 +1,48 @@ +autofs-5.1.4 - tiny patch for autofs typo and possible bug + +From: Todd Eigenschink + +(1) The word "to" is doubled in two warnings. + +(2) It prints a warning when it can't open the "old" config file, even +if it was able to open the default one. That's a reasonable warning if +it *couldn't* open the new one, but seems unnecessary if it could. + +The patch removes the unneeded "to"s and only prints warning about the +old config file if it couldn't open the default one. + +Signed-off-by: Todd Eigenschink +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + + lib/defaults.c | 6 +++--- + 2 files changed, 4 insertions(+), 3 deletions(-) + +--- autofs-5.1.4.orig/CHANGELOG ++++ autofs-5.1.4/CHANGELOG +@@ -20,6 +20,7 @@ xx/xx/2018 autofs-5.1.5 + - add conditional inclusion of fedfs binaries. + - add an example fedfs master map entry to the installed master map. + - improve hostname lookup error logging. ++- tiny patch for autofs typo and possible bug. + + 19/12/2017 autofs-5.1.4 + - fix spec file url. +--- autofs-5.1.4.orig/lib/defaults.c ++++ autofs-5.1.4/lib/defaults.c +@@ -1207,12 +1207,12 @@ unsigned int defaults_read_config(unsign + + conf = open_fopen_r(DEFAULT_CONFIG_FILE); + if (!conf) +- message(to_syslog, "failed to to open config %s", ++ message(to_syslog, "failed to open config %s", + DEFAULT_CONFIG_FILE); + + oldconf = open_fopen_r(OLD_CONFIG_FILE); +- if (!oldconf) +- message(to_syslog, "failed to to open old config %s", ++ if (!oldconf && !conf) ++ message(to_syslog, "failed to open old config %s", + OLD_CONFIG_FILE); + + /* Neither config has been updated */ diff --git a/autofs-5.1.4-use-systemd-sd_notify-at-startup.patch b/autofs-5.1.4-use-systemd-sd_notify-at-startup.patch new file mode 100644 index 0000000..410f267 --- /dev/null +++ b/autofs-5.1.4-use-systemd-sd_notify-at-startup.patch @@ -0,0 +1,1357 @@ +autofs-5.1.4 - use systemd sd_notify() at startup + +From: Ian Kent + +autofs needs to ensure statd is started before any NFS mounts +are attempted. + +When starting the statd service with the autofs service the statd +service will trigger a restart of the autofs service during its +start up. Sometimes this can happen during the automount start up +itself. + +When this happens it causes systemd to become confused and remove +the pid file created by automount leaving systemd thinking the +autofs service had failed start up when it was actually running. + +It was recommened that autofs be changed to a "Type=notify" service +to avoid this. Using this a pid file is no longer needed and is now +not used. + +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + Makefile.conf.in | 3 + aclocal.m4 | 3 + autofs.spec | 1 + configure | 948 +++++++++++++++++++++++++++------------------- + configure.in | 8 + daemon/Makefile | 5 + daemon/automount.c | 83 ++-- + samples/autofs.service.in | 5 + 9 files changed, 635 insertions(+), 422 deletions(-) + +--- autofs-5.1.4.orig/CHANGELOG ++++ autofs-5.1.4/CHANGELOG +@@ -22,6 +22,7 @@ xx/xx/2018 autofs-5.1.5 + - improve hostname lookup error logging. + - tiny patch for autofs typo and possible bug. + - add units After line to include statd service. ++- use systemd sd_notify() at startup. + + 19/12/2017 autofs-5.1.4 + - fix spec file url. +--- autofs-5.1.4.orig/Makefile.conf.in ++++ autofs-5.1.4/Makefile.conf.in +@@ -18,6 +18,9 @@ NSLLIB = @NSL_LIBS@ + NSLCFLAGS = @NSL_CFLAGS@ + LIBRESOLV = @LIBRESOLV@ + ++SYSTEMD = @WITH_SYSTEMD@ ++LIBSYSTEMD = @systemd_LIBS@ ++ + # Hesiod support: yes (1) no (0) + HESIOD = @HAVE_HESIOD@ + LIBHESIOD = @LIBHESIOD@ +--- autofs-5.1.4.orig/aclocal.m4 ++++ autofs-5.1.4/aclocal.m4 +@@ -257,14 +257,17 @@ AC_DEFUN([AF_WITH_SYSTEMD], + fi + done + fi ++ WITH_SYSTEMD=0 + if test -n "$systemddir"; then + AC_MSG_RESULT($systemddir) ++ WITH_SYSTEMD=1 + else + AC_MSG_RESULT(not found) + fi + else + if test "$withval" != no; then + systemddir=$withval ++ WITH_SYSTEMD=1 + fi + fi]) + ]) +--- autofs-5.1.4.orig/autofs.spec ++++ autofs-5.1.4/autofs.spec +@@ -32,6 +32,7 @@ Source: https://www.kernel.org/pub/linux + Buildroot: %{_tmppath}/%{name}-tmp + %if %{with_systemd} + BuildRequires: systemd-units ++BuildRequires: systemd-devel + %endif + %if %{with_libtirpc} + BuildRequires: libtirpc-devel +--- autofs-5.1.4.orig/configure ++++ autofs-5.1.4/configure +@@ -674,6 +674,12 @@ MOUNT_NFS + HAVE_MOUNT + MOUNT + DMALLOCLIB ++TIRPC_LIBS ++TIRPC_CFLAGS ++flagdir ++fifodir ++mapdir ++confdir + OBJEXT + EXEEXT + ac_ct_CC +@@ -681,16 +687,13 @@ CPPFLAGS + LDFLAGS + CFLAGS + CC +-TIRPC_LIBS +-TIRPC_CFLAGS ++systemd_LIBS ++systemd_CFLAGS ++WITH_SYSTEMD ++systemddir + PKG_CONFIG_LIBDIR + PKG_CONFIG_PATH + PKG_CONFIG +-flagdir +-fifodir +-mapdir +-confdir +-systemddir + piddir + initdir + target_alias +@@ -760,13 +763,15 @@ target_alias + PKG_CONFIG + PKG_CONFIG_PATH + PKG_CONFIG_LIBDIR +-TIRPC_CFLAGS +-TIRPC_LIBS ++systemd_CFLAGS ++systemd_LIBS + CC + CFLAGS + LDFLAGS + LIBS + CPPFLAGS ++TIRPC_CFLAGS ++TIRPC_LIBS + NSL_CFLAGS + NSL_LIBS + CPP' +@@ -1413,9 +1418,10 @@ Some influential environment variables: + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path +- TIRPC_CFLAGS +- C compiler flags for TIRPC, overriding pkg-config +- TIRPC_LIBS linker flags for TIRPC, overriding pkg-config ++ systemd_CFLAGS ++ C compiler flags for systemd, overriding pkg-config ++ systemd_LIBS ++ linker flags for systemd, overriding pkg-config + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a +@@ -1423,6 +1429,9 @@ Some influential environment variables: + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory ++ TIRPC_CFLAGS ++ C compiler flags for TIRPC, overriding pkg-config ++ TIRPC_LIBS linker flags for TIRPC, overriding pkg-config + NSL_CFLAGS C compiler flags for NSL, overriding pkg-config + NSL_LIBS linker flags for NSL, overriding pkg-config + CPP C preprocessor +@@ -2291,166 +2300,6 @@ if test -z "$piddir"; then + fi + + +-# +-# Check for systemd unit files direectory exists if unit file installation +-# is requested +-# +- +-# Check whether --with-systemd was given. +-if test "${with_systemd+set}" = set; then : +- withval=$with_systemd; if test "$withval" = yes; then +- if test -z "$systemddir"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking location of the systemd unit files directory" >&5 +-$as_echo_n "checking location of the systemd unit files directory... " >&6; } +- for systemd_d in /usr/lib/systemd/system /usr/lib64/systemd/system /lib/systemd/system /lib64/systemd/system; do +- if test -z "$systemddir"; then +- if test -d "$systemd_d"; then +- systemddir="$systemd_d" +- fi +- fi +- done +- fi +- if test -n "$systemddir"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $systemddir" >&5 +-$as_echo "$systemddir" >&6; } +- else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +-$as_echo "not found" >&6; } +- fi +-else +- if test "$withval" != no; then +- systemddir=$withval +- fi +-fi +-fi +- +- +- +- +-# +-# Location of system config script directory? +-# +-if test -z "$confdir"; then +- for conf_d in /etc/sysconfig /etc/defaults /etc/conf.d /etc/default; do +- if test -z "$confdir"; then +- if test -d "$conf_d"; then +- confdir="$conf_d" +- fi +- fi +- done +-fi +- +-# Check whether --with-confdir was given. +-if test "${with_confdir+set}" = set; then : +- withval=$with_confdir; if test -z "$withval" -o "$withval" = "yes" -o "$withval" = "no" +- then +- : +- else +- confdir="${withval}" +- fi +- +-fi +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for autofs configuration file directory" >&5 +-$as_echo_n "checking for autofs configuration file directory... " >&6; } +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $confdir" >&5 +-$as_echo "$confdir" >&6; } +- +- +-# +-# The user can specify --with-mapsdir=PATH to specify autofs maps go +-# +-if test -z "$mapdir"; then +- for map_d in /etc/autofs /etc; do +- if test -z "$mapdir"; then +- if test -d "$map_d"; then +- mapdir="$map_d" +- fi +- fi +- done +-fi +- +-# Check whether --with-mapdir was given. +-if test "${with_mapdir+set}" = set; then : +- withval=$with_mapdir; if test -z "$withval" -o "$withval" = "yes" -o "$withval" = "no" +- then +- : +- else +- mapdir="${withval}" +- fi +- +-fi +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for autofs maps directory" >&5 +-$as_echo_n "checking for autofs maps directory... " >&6; } +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mapdir" >&5 +-$as_echo "$mapdir" >&6; } +- +- +-# +-# The user can specify --with-fifodir=PATH to specify where autofs fifos go +-# +-if test -z "$fifodir"; then +- for fifo_d in /run /var/run /tmp; do +- if test -z "$fifodir"; then +- if test -d "$fifo_d"; then +- fifodir="$fifo_d" +- fi +- fi +- done +-fi +- +-# Check whether --with-fifodir was given. +-if test "${with_fifodir+set}" = set; then : +- withval=$with_fifodir; if test -z "$withval" -o "$withval" = "yes" -o "$withval" = "no" +- then +- : +- else +- fifodir="${withval}" +- fi +- +-fi +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for autofs fifos directory" >&5 +-$as_echo_n "checking for autofs fifos directory... " >&6; } +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $fifodir" >&5 +-$as_echo "$fifodir" >&6; } +- +- +-# +-# The user can specify --with-flagdir=PATH to specify where autofs flag file goes +-# +-if test -z "$flagdir"; then +- for flag_d in /run /var/run /tmp; do +- if test -z "$flagdir"; then +- if test -d "$flag_d"; then +- flagdir="$flag_d" +- fi +- fi +- done +-fi +- +-# Check whether --with-flagdir was given. +-if test "${with_flagdir+set}" = set; then : +- withval=$with_flagdir; if test -z "$withval" -o "$withval" = "yes" -o "$withval" = "no" +- then +- : +- else +- flagdir="${withval}" +- fi +- +-fi +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for autofs flag file directory" >&5 +-$as_echo_n "checking for autofs flag file directory... " >&6; } +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $flagdir" >&5 +-$as_echo "$flagdir" >&6; } +- +- +-# +-# Use libtirpc +-# +- + + + +@@ -2571,111 +2420,46 @@ $as_echo "no" >&6; } + fi + fi + +-# Check whether --with-libtirpc was given. +-if test "${with_libtirpc+set}" = set; then : +- withval=$with_libtirpc; +-fi +- +-if test "x$with_libtirpc" = "xyes"; then +- +-pkg_failed=no +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIRPC" >&5 +-$as_echo_n "checking for TIRPC... " >&6; } ++# ++# Check for systemd unit files direectory exists if unit file installation ++# is requested ++# + +-if test -n "$TIRPC_CFLAGS"; then +- pkg_cv_TIRPC_CFLAGS="$TIRPC_CFLAGS" +- elif test -n "$PKG_CONFIG"; then +- if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtirpc\""; } >&5 +- ($PKG_CONFIG --exists --print-errors "libtirpc") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; then +- pkg_cv_TIRPC_CFLAGS=`$PKG_CONFIG --cflags "libtirpc" 2>/dev/null` +- test "x$?" != "x0" && pkg_failed=yes +-else +- pkg_failed=yes +-fi +- else +- pkg_failed=untried +-fi +-if test -n "$TIRPC_LIBS"; then +- pkg_cv_TIRPC_LIBS="$TIRPC_LIBS" +- elif test -n "$PKG_CONFIG"; then +- if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtirpc\""; } >&5 +- ($PKG_CONFIG --exists --print-errors "libtirpc") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; then +- pkg_cv_TIRPC_LIBS=`$PKG_CONFIG --libs "libtirpc" 2>/dev/null` +- test "x$?" != "x0" && pkg_failed=yes ++# Check whether --with-systemd was given. ++if test "${with_systemd+set}" = set; then : ++ withval=$with_systemd; if test "$withval" = yes; then ++ if test -z "$systemddir"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking location of the systemd unit files directory" >&5 ++$as_echo_n "checking location of the systemd unit files directory... " >&6; } ++ for systemd_d in /usr/lib/systemd/system /usr/lib64/systemd/system /lib/systemd/system /lib64/systemd/system; do ++ if test -z "$systemddir"; then ++ if test -d "$systemd_d"; then ++ systemddir="$systemd_d" ++ fi ++ fi ++ done ++ fi ++ WITH_SYSTEMD=0 ++ if test -n "$systemddir"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $systemddir" >&5 ++$as_echo "$systemddir" >&6; } ++ WITH_SYSTEMD=1 ++ else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 ++$as_echo "not found" >&6; } ++ fi + else +- pkg_failed=yes +-fi +- else +- pkg_failed=untried ++ if test "$withval" != no; then ++ systemddir=$withval ++ WITH_SYSTEMD=1 ++ fi + fi +- +- +- +-if test $pkg_failed = yes; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- +-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then +- _pkg_short_errors_supported=yes +-else +- _pkg_short_errors_supported=no + fi +- if test $_pkg_short_errors_supported = yes; then +- TIRPC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libtirpc" 2>&1` +- else +- TIRPC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libtirpc" 2>&1` +- fi +- # Put the nasty error message in config.log where it belongs +- echo "$TIRPC_PKG_ERRORS" >&5 +- +- as_fn_error $? "Package requirements (libtirpc) were not met: +- +-$TIRPC_PKG_ERRORS +- +-Consider adjusting the PKG_CONFIG_PATH environment variable if you +-installed software in a non-standard prefix. + +-Alternatively, you may set the environment variables TIRPC_CFLAGS +-and TIRPC_LIBS to avoid the need to call pkg-config. +-See the pkg-config man page for more details." "$LINENO" 5 +-elif test $pkg_failed = untried; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +-is in your PATH or set the PKG_CONFIG environment variable to the full +-path to pkg-config. +- +-Alternatively, you may set the environment variables TIRPC_CFLAGS +-and TIRPC_LIBS to avoid the need to call pkg-config. +-See the pkg-config man page for more details. +- +-To get pkg-config, see . +-See \`config.log' for more details" "$LINENO" 5; } +-else +- TIRPC_CFLAGS=$pkg_cv_TIRPC_CFLAGS +- TIRPC_LIBS=$pkg_cv_TIRPC_LIBS +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } + + +-$as_echo "#define WITH_LIBTIRPC 1" >>confdefs.h +- +- +-$as_echo "#define TIRPC_WORKAROUND 1" >>confdefs.h +- + +-fi +- ac_ext=c ++ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +@@ -3465,7 +3249,511 @@ ac_link='$CC -o conftest$ac_exeext $CFLA + ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +-for ac_func in getrpcbyname getservbyname ++ ++pkg_failed=no ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for systemd" >&5 ++$as_echo_n "checking for systemd... " >&6; } ++ ++if test -n "$systemd_CFLAGS"; then ++ pkg_cv_systemd_CFLAGS="$systemd_CFLAGS" ++ elif test -n "$PKG_CONFIG"; then ++ if test -n "$PKG_CONFIG" && \ ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5 ++ ($PKG_CONFIG --exists --print-errors "libsystemd") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ pkg_cv_systemd_CFLAGS=`$PKG_CONFIG --cflags "libsystemd" 2>/dev/null` ++ test "x$?" != "x0" && pkg_failed=yes ++else ++ pkg_failed=yes ++fi ++ else ++ pkg_failed=untried ++fi ++if test -n "$systemd_LIBS"; then ++ pkg_cv_systemd_LIBS="$systemd_LIBS" ++ elif test -n "$PKG_CONFIG"; then ++ if test -n "$PKG_CONFIG" && \ ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5 ++ ($PKG_CONFIG --exists --print-errors "libsystemd") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ pkg_cv_systemd_LIBS=`$PKG_CONFIG --libs "libsystemd" 2>/dev/null` ++ test "x$?" != "x0" && pkg_failed=yes ++else ++ pkg_failed=yes ++fi ++ else ++ pkg_failed=untried ++fi ++ ++ ++ ++if test $pkg_failed = yes; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ ++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then ++ _pkg_short_errors_supported=yes ++else ++ _pkg_short_errors_supported=no ++fi ++ if test $_pkg_short_errors_supported = yes; then ++ systemd_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd" 2>&1` ++ else ++ systemd_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd" 2>&1` ++ fi ++ # Put the nasty error message in config.log where it belongs ++ echo "$systemd_PKG_ERRORS" >&5 ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sm_notify in -lsystemd" >&5 ++$as_echo_n "checking for sm_notify in -lsystemd... " >&6; } ++if ${ac_cv_lib_systemd_sm_notify+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lsystemd $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char sm_notify (); ++int ++main () ++{ ++return sm_notify (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_systemd_sm_notify=yes ++else ++ ac_cv_lib_systemd_sm_notify=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_systemd_sm_notify" >&5 ++$as_echo "$ac_cv_lib_systemd_sm_notify" >&6; } ++if test "x$ac_cv_lib_systemd_sm_notify" = xyes; then : ++ systemd_LIBS="-lsystemd" ++fi ++ ++ ++ ++elif test $pkg_failed = untried; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sm_notify in -lsystemd" >&5 ++$as_echo_n "checking for sm_notify in -lsystemd... " >&6; } ++if ${ac_cv_lib_systemd_sm_notify+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lsystemd $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char sm_notify (); ++int ++main () ++{ ++return sm_notify (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_systemd_sm_notify=yes ++else ++ ac_cv_lib_systemd_sm_notify=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_systemd_sm_notify" >&5 ++$as_echo "$ac_cv_lib_systemd_sm_notify" >&6; } ++if test "x$ac_cv_lib_systemd_sm_notify" = xyes; then : ++ systemd_LIBS="-lsystemd" ++fi ++ ++ ++ ++else ++ systemd_CFLAGS=$pkg_cv_systemd_CFLAGS ++ systemd_LIBS=$pkg_cv_systemd_LIBS ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++ ++fi ++ ++# ++# Location of system config script directory? ++# ++if test -z "$confdir"; then ++ for conf_d in /etc/sysconfig /etc/defaults /etc/conf.d /etc/default; do ++ if test -z "$confdir"; then ++ if test -d "$conf_d"; then ++ confdir="$conf_d" ++ fi ++ fi ++ done ++fi ++ ++# Check whether --with-confdir was given. ++if test "${with_confdir+set}" = set; then : ++ withval=$with_confdir; if test -z "$withval" -o "$withval" = "yes" -o "$withval" = "no" ++ then ++ : ++ else ++ confdir="${withval}" ++ fi ++ ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for autofs configuration file directory" >&5 ++$as_echo_n "checking for autofs configuration file directory... " >&6; } ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $confdir" >&5 ++$as_echo "$confdir" >&6; } ++ ++ ++# ++# The user can specify --with-mapsdir=PATH to specify autofs maps go ++# ++if test -z "$mapdir"; then ++ for map_d in /etc/autofs /etc; do ++ if test -z "$mapdir"; then ++ if test -d "$map_d"; then ++ mapdir="$map_d" ++ fi ++ fi ++ done ++fi ++ ++# Check whether --with-mapdir was given. ++if test "${with_mapdir+set}" = set; then : ++ withval=$with_mapdir; if test -z "$withval" -o "$withval" = "yes" -o "$withval" = "no" ++ then ++ : ++ else ++ mapdir="${withval}" ++ fi ++ ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for autofs maps directory" >&5 ++$as_echo_n "checking for autofs maps directory... " >&6; } ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mapdir" >&5 ++$as_echo "$mapdir" >&6; } ++ ++ ++# ++# The user can specify --with-fifodir=PATH to specify where autofs fifos go ++# ++if test -z "$fifodir"; then ++ for fifo_d in /run /var/run /tmp; do ++ if test -z "$fifodir"; then ++ if test -d "$fifo_d"; then ++ fifodir="$fifo_d" ++ fi ++ fi ++ done ++fi ++ ++# Check whether --with-fifodir was given. ++if test "${with_fifodir+set}" = set; then : ++ withval=$with_fifodir; if test -z "$withval" -o "$withval" = "yes" -o "$withval" = "no" ++ then ++ : ++ else ++ fifodir="${withval}" ++ fi ++ ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for autofs fifos directory" >&5 ++$as_echo_n "checking for autofs fifos directory... " >&6; } ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $fifodir" >&5 ++$as_echo "$fifodir" >&6; } ++ ++ ++# ++# The user can specify --with-flagdir=PATH to specify where autofs flag file goes ++# ++if test -z "$flagdir"; then ++ for flag_d in /run /var/run /tmp; do ++ if test -z "$flagdir"; then ++ if test -d "$flag_d"; then ++ flagdir="$flag_d" ++ fi ++ fi ++ done ++fi ++ ++# Check whether --with-flagdir was given. ++if test "${with_flagdir+set}" = set; then : ++ withval=$with_flagdir; if test -z "$withval" -o "$withval" = "yes" -o "$withval" = "no" ++ then ++ : ++ else ++ flagdir="${withval}" ++ fi ++ ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for autofs flag file directory" >&5 ++$as_echo_n "checking for autofs flag file directory... " >&6; } ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $flagdir" >&5 ++$as_echo "$flagdir" >&6; } ++ ++ ++# ++# Use libtirpc ++# ++ ++ ++ ++ ++ ++ ++ ++if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. ++set dummy ${ac_tool_prefix}pkg-config; 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_PKG_CONFIG+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $PKG_CONFIG in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ++ ;; ++ *) ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++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_PKG_CONFIG="$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 ++PKG_CONFIG=$ac_cv_path_PKG_CONFIG ++if test -n "$PKG_CONFIG"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 ++$as_echo "$PKG_CONFIG" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_path_PKG_CONFIG"; then ++ ac_pt_PKG_CONFIG=$PKG_CONFIG ++ # Extract the first word of "pkg-config", so it can be a program name with args. ++set dummy pkg-config; 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_ac_pt_PKG_CONFIG+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $ac_pt_PKG_CONFIG in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ++ ;; ++ *) ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++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_ac_pt_PKG_CONFIG="$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 ++ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG ++if test -n "$ac_pt_PKG_CONFIG"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 ++$as_echo "$ac_pt_PKG_CONFIG" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_pt_PKG_CONFIG" = x; then ++ PKG_CONFIG="" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ PKG_CONFIG=$ac_pt_PKG_CONFIG ++ fi ++else ++ PKG_CONFIG="$ac_cv_path_PKG_CONFIG" ++fi ++ ++fi ++if test -n "$PKG_CONFIG"; then ++ _pkg_min_version=0.9.0 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 ++$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } ++ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++ else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ PKG_CONFIG="" ++ fi ++fi ++ ++# Check whether --with-libtirpc was given. ++if test "${with_libtirpc+set}" = set; then : ++ withval=$with_libtirpc; ++fi ++ ++if test "x$with_libtirpc" = "xyes"; then ++ ++pkg_failed=no ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIRPC" >&5 ++$as_echo_n "checking for TIRPC... " >&6; } ++ ++if test -n "$TIRPC_CFLAGS"; then ++ pkg_cv_TIRPC_CFLAGS="$TIRPC_CFLAGS" ++ elif test -n "$PKG_CONFIG"; then ++ if test -n "$PKG_CONFIG" && \ ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtirpc\""; } >&5 ++ ($PKG_CONFIG --exists --print-errors "libtirpc") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ pkg_cv_TIRPC_CFLAGS=`$PKG_CONFIG --cflags "libtirpc" 2>/dev/null` ++ test "x$?" != "x0" && pkg_failed=yes ++else ++ pkg_failed=yes ++fi ++ else ++ pkg_failed=untried ++fi ++if test -n "$TIRPC_LIBS"; then ++ pkg_cv_TIRPC_LIBS="$TIRPC_LIBS" ++ elif test -n "$PKG_CONFIG"; then ++ if test -n "$PKG_CONFIG" && \ ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtirpc\""; } >&5 ++ ($PKG_CONFIG --exists --print-errors "libtirpc") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ pkg_cv_TIRPC_LIBS=`$PKG_CONFIG --libs "libtirpc" 2>/dev/null` ++ test "x$?" != "x0" && pkg_failed=yes ++else ++ pkg_failed=yes ++fi ++ else ++ pkg_failed=untried ++fi ++ ++ ++ ++if test $pkg_failed = yes; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ ++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then ++ _pkg_short_errors_supported=yes ++else ++ _pkg_short_errors_supported=no ++fi ++ if test $_pkg_short_errors_supported = yes; then ++ TIRPC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libtirpc" 2>&1` ++ else ++ TIRPC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libtirpc" 2>&1` ++ fi ++ # Put the nasty error message in config.log where it belongs ++ echo "$TIRPC_PKG_ERRORS" >&5 ++ ++ as_fn_error $? "Package requirements (libtirpc) were not met: ++ ++$TIRPC_PKG_ERRORS ++ ++Consider adjusting the PKG_CONFIG_PATH environment variable if you ++installed software in a non-standard prefix. ++ ++Alternatively, you may set the environment variables TIRPC_CFLAGS ++and TIRPC_LIBS to avoid the need to call pkg-config. ++See the pkg-config man page for more details." "$LINENO" 5 ++elif test $pkg_failed = untried; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it ++is in your PATH or set the PKG_CONFIG environment variable to the full ++path to pkg-config. ++ ++Alternatively, you may set the environment variables TIRPC_CFLAGS ++and TIRPC_LIBS to avoid the need to call pkg-config. ++See the pkg-config man page for more details. ++ ++To get pkg-config, see . ++See \`config.log' for more details" "$LINENO" 5; } ++else ++ TIRPC_CFLAGS=$pkg_cv_TIRPC_CFLAGS ++ TIRPC_LIBS=$pkg_cv_TIRPC_LIBS ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++ ++ ++$as_echo "#define WITH_LIBTIRPC 1" >>confdefs.h ++ ++ ++$as_echo "#define TIRPC_WORKAROUND 1" >>confdefs.h ++ ++ ++fi ++ for ac_func in getrpcbyname getservbyname + do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` + ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +@@ -4522,126 +4810,6 @@ fi + + + +- +- +- +- +- +- +-if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then +- if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +-set dummy ${ac_tool_prefix}pkg-config; 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_PKG_CONFIG+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- case $PKG_CONFIG in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-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_PKG_CONFIG="$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 +-PKG_CONFIG=$ac_cv_path_PKG_CONFIG +-if test -n "$PKG_CONFIG"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +-$as_echo "$PKG_CONFIG" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-fi +-if test -z "$ac_cv_path_PKG_CONFIG"; then +- ac_pt_PKG_CONFIG=$PKG_CONFIG +- # Extract the first word of "pkg-config", so it can be a program name with args. +-set dummy pkg-config; 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_ac_pt_PKG_CONFIG+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- case $ac_pt_PKG_CONFIG in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-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_ac_pt_PKG_CONFIG="$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 +-ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +-if test -n "$ac_pt_PKG_CONFIG"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +-$as_echo "$ac_pt_PKG_CONFIG" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- if test "x$ac_pt_PKG_CONFIG" = x; then +- PKG_CONFIG="" +- else +- case $cross_compiling:$ac_tool_warned in +-yes:) +-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +-ac_tool_warned=yes ;; +-esac +- PKG_CONFIG=$ac_pt_PKG_CONFIG +- fi +-else +- PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +-fi +- +-fi +-if test -n "$PKG_CONFIG"; then +- _pkg_min_version=0.9.0 +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +-$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } +- if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } +- else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- PKG_CONFIG="" +- fi +-fi +- + pkg_failed=no + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NSL" >&5 + $as_echo_n "checking for NSL... " >&6; } +--- autofs-5.1.4.orig/configure.in ++++ autofs-5.1.4/configure.in +@@ -48,6 +48,7 @@ AF_INIT_D() + AC_SUBST(initdir) + AF_PID_D() + AC_SUBST(piddir) ++PKG_PROG_PKG_CONFIG() + + # + # Check for systemd unit files direectory exists if unit file installation +@@ -55,6 +56,12 @@ AC_SUBST(piddir) + # + AF_WITH_SYSTEMD() + AC_SUBST(systemddir) ++AC_SUBST(WITH_SYSTEMD) ++PKG_CHECK_MODULES([systemd],[libsystemd],, ++[ ++ AC_CHECK_LIB(systemd, sm_notify, systemd_LIBS="-lsystemd") ++ AC_SUBST(systemd_LIBS) ++]) + + # + # Location of system config script directory? +@@ -218,7 +225,6 @@ fi + AC_CHECK_LIB(rt, clock_gettime, LIBCLOCK_GETTIME="-lrt") + AC_SUBST(LIBCLOCK_GETTIME) + +-PKG_PROG_PKG_CONFIG() + PKG_CHECK_MODULES([NSL],[libnsl],, + [ + AC_CHECK_LIB(nsl, yp_match, NSL_LIBS="-lnsl") +--- autofs-5.1.4.orig/daemon/Makefile ++++ autofs-5.1.4/daemon/Makefile +@@ -22,6 +22,11 @@ CFLAGS += -DVERSION_STRING=\"$(version)\ + LDFLAGS += -rdynamic + LIBS += -ldl -lpthread + ++ifeq ($(SYSTEMD), 1) ++ CFLAGS += -DWITH_SYSTEMD ++ LIBS += $(LIBSYSTEMD) ++endif ++ + ifeq ($(LDAP), 1) + CFLAGS += $(XML_FLAGS) + LIBS += $(XML_LIBS) +--- autofs-5.1.4.orig/daemon/automount.c ++++ autofs-5.1.4/daemon/automount.c +@@ -36,6 +36,9 @@ + #include + #include + #include ++#ifdef WITH_SYSTEMD ++#include ++#endif + + #include "automount.h" + #if defined(LIBXML2_WORKAROUND) || defined(TIRPC_WORKAROUND) +@@ -67,7 +70,7 @@ unsigned int global_selection_options; + long global_negative_timeout = -1; + int do_force_unlink = 0; /* Forceably unlink mount tree at startup */ + +-static int start_pipefd[2]; ++static int start_pipefd[2] = {-1, -1}; + static int st_stat = 1; + static int *pst_stat = &st_stat; + static pthread_t state_mach_thid; +@@ -1206,12 +1209,6 @@ static void become_daemon(unsigned foreg + exit(0); + } + +- if (open_pipe(start_pipefd) < 0) { +- fprintf(stderr, "%s: failed to create start_pipefd.\n", +- program); +- exit(0); +- } +- + /* Detach from foreground process */ + if (foreground) { + if (daemon_check && !aquire_flag_file()) { +@@ -1221,6 +1218,12 @@ static void become_daemon(unsigned foreg + } + log_to_stderr(); + } else { ++ if (open_pipe(start_pipefd) < 0) { ++ fprintf(stderr, "%s: failed to create start_pipefd.\n", ++ program); ++ exit(0); ++ } ++ + pid = fork(); + if (pid > 0) { + close(start_pipefd[1]); +@@ -2450,8 +2453,10 @@ int main(int argc, char *argv[]) + if (pthread_attr_init(&th_attr)) { + logerr("%s: failed to init thread attribute struct!", + program); +- res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); +- close(start_pipefd[1]); ++ if (start_pipefd[1] != -1) { ++ res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); ++ close(start_pipefd[1]); ++ } + release_flag_file(); + macro_free_global_table(); + exit(1); +@@ -2460,8 +2465,10 @@ int main(int argc, char *argv[]) + if (pthread_attr_init(&th_attr_detached)) { + logerr("%s: failed to init thread attribute struct!", + program); +- res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); +- close(start_pipefd[1]); ++ if (start_pipefd[1] != -1) { ++ res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); ++ close(start_pipefd[1]); ++ } + release_flag_file(); + macro_free_global_table(); + exit(1); +@@ -2471,8 +2478,10 @@ int main(int argc, char *argv[]) + &th_attr_detached, PTHREAD_CREATE_DETACHED)) { + logerr("%s: failed to set detached thread attribute!", + program); +- res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); +- close(start_pipefd[1]); ++ if (start_pipefd[1] != -1) { ++ res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); ++ close(start_pipefd[1]); ++ } + release_flag_file(); + macro_free_global_table(); + exit(1); +@@ -2483,8 +2492,10 @@ int main(int argc, char *argv[]) + &th_attr_detached, detached_thread_stack_size)) { + logerr("%s: failed to set stack size thread attribute!", + program); +- res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); +- close(start_pipefd[1]); ++ if (start_pipefd[1] != -1) { ++ res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); ++ close(start_pipefd[1]); ++ } + release_flag_file(); + macro_free_global_table(); + exit(1); +@@ -2495,8 +2506,10 @@ int main(int argc, char *argv[]) + &th_attr_detached, &detached_thread_stack_size)) { + logerr("%s: failed to get detached thread stack size!", + program); +- res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); +- close(start_pipefd[1]); ++ if (start_pipefd[1] != -1) { ++ res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); ++ close(start_pipefd[1]); ++ } + release_flag_file(); + macro_free_global_table(); + exit(1); +@@ -2513,8 +2526,10 @@ int main(int argc, char *argv[]) + logerr("%s: failed to create thread data key for std env vars!", + program); + master_kill(master_list); +- res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); +- close(start_pipefd[1]); ++ if (start_pipefd[1] != -1) { ++ res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); ++ close(start_pipefd[1]); ++ } + release_flag_file(); + macro_free_global_table(); + exit(1); +@@ -2525,8 +2540,10 @@ int main(int argc, char *argv[]) + logerr("%s: failed to create thread data key for attempt ID!", + program); + master_kill(master_list); +- res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); +- close(start_pipefd[1]); ++ if (start_pipefd[1] != -1) { ++ res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); ++ close(start_pipefd[1]); ++ } + release_flag_file(); + macro_free_global_table(); + exit(1); +@@ -2537,8 +2554,10 @@ int main(int argc, char *argv[]) + if (!alarm_start_handler()) { + logerr("%s: failed to create alarm handler thread!", program); + master_kill(master_list); +- res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); +- close(start_pipefd[1]); ++ if (start_pipefd[1] != -1) { ++ res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); ++ close(start_pipefd[1]); ++ } + release_flag_file(); + macro_free_global_table(); + exit(1); +@@ -2547,8 +2566,10 @@ int main(int argc, char *argv[]) + if (!st_start_handler()) { + logerr("%s: failed to create FSM handler thread!", program); + master_kill(master_list); +- res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); +- close(start_pipefd[1]); ++ if (start_pipefd[1] != -1) { ++ res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); ++ close(start_pipefd[1]); ++ } + release_flag_file(); + macro_free_global_table(); + exit(1); +@@ -2596,9 +2617,15 @@ int main(int argc, char *argv[]) + */ + do_force_unlink = 0; + +- st_stat = 0; +- res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); +- close(start_pipefd[1]); ++ if (start_pipefd[1] != -1) { ++ st_stat = 0; ++ res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); ++ close(start_pipefd[1]); ++ } ++ ++#ifdef WITH_SYSTEMD ++ sd_notify(1, "READY=1"); ++#endif + + state_mach_thid = pthread_self(); + statemachine(NULL); +--- autofs-5.1.4.orig/samples/autofs.service.in ++++ autofs-5.1.4/samples/autofs.service.in +@@ -4,10 +4,9 @@ After=network.target ypbind.service sssd + Wants=network-online.target rpc-statd.service rpcbind.service + + [Service] +-Type=forking +-PIDFile=@@autofspiddir@@/autofs.pid ++Type=notify + EnvironmentFile=-@@autofsconfdir@@/autofs +-ExecStart=@@sbindir@@/automount $OPTIONS --pid-file @@autofspiddir@@/autofs.pid ++ExecStart=@@sbindir@@/automount $OPTIONS --foreground --dont-check-daemon + ExecReload=/usr/bin/kill -HUP $MAINPID + KillMode=process + TimeoutSec=180 diff --git a/autofs.spec b/autofs.spec index 0b617c4..98186d2 100644 --- a/autofs.spec +++ b/autofs.spec @@ -8,7 +8,7 @@ Summary: A tool for automatically mounting and unmounting filesystems Name: autofs Version: 5.1.4 -Release: 14%{?dist} +Release: 16%{?dist} Epoch: 1 License: GPLv2+ Group: System Environment/Daemons @@ -34,9 +34,14 @@ Patch18: autofs-5.1.4-add-fedfs-map-nfs4_c.patch Patch19: autofs-5.1.4-add-conditional-inclusion-of-fedfs-binaries.patch Patch20: autofs-5.1.4-add-an-example-fedfs-master-map-entry-to-the-installed-master-map.patch Patch21: autofs-5.1.4-improve-hostname-lookup-error-logging.patch +Patch22: autofs-5.1.4-tiny-patch-for-autofs-typo-and-possible-bug.patch +Patch23: autofs-5.1.4-add-units-After-line-to-include-statd-service.patch +Patch24: autofs-5.1.4-use-systemd-sd_notify-at-startup.patch +Patch25: autofs-5.1.4-fix-NFS-version-mask-usage.patch %if %{with_systemd} BuildRequires: systemd-units +BuildRequires: systemd-devel %endif BuildRequires: gcc BuildRequires: autoconf, hesiod-devel, openldap-devel, bison, flex, libxml2-devel @@ -114,6 +119,10 @@ echo %{version}-%{release} > .version %patch19 -p1 %patch20 -p1 %patch21 -p1 +%patch22 -p1 +%patch23 -p1 +%patch24 -p1 +%patch25 -p1 %build LDFLAGS=-Wl,-z,now @@ -208,6 +217,14 @@ fi %dir /etc/auto.master.d %changelog +* Mon Mar 26 2018 Ian Kent - 1:5.1.4-16 +- tiny patch for autofs typo and possible bug. +- add units After line to include statd service. +- use systemd sd_notify() at startup. +- add "BuildRequires: systemd-devel". +- fix NFS version mask usage. +- fix incorrect date in changelog. + * Tue Mar 06 2018 Ian Kent - 1:5.1.4-14 - improve hostname lookup error logging. @@ -229,7 +246,7 @@ fi * Fri Feb 9 2018 Ian Kent - 1:5.1.4-10 - clean up obsolete spec file directives. -* Tue Feb 7 2018 Ian Kent - 1:5.1.4-9 +* Wed Feb 7 2018 Ian Kent - 1:5.1.4-9 - fix install mode of autofs_ldap_auth.conf. * Tue Feb 6 2018 Ian Kent - 1:5.1.4-8