From a275d04aab1717885c711cbb30f5216004fe98ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Wed, 14 Oct 2020 22:07:18 +0200 Subject: [PATCH] RHEL 9.0.0 Alpha bootstrap The content of this branch was automatically imported from Fedora ELN with the following as its source: https://src.fedoraproject.org/rpms/autofs#1cda5aaae19a25dd9afa10a9ed1763ac59640019 --- .gitignore | 13 + autofs-5.1.6-correct-fsf-address.patch | 62 + ...-regression-with-map-instance-lookup.patch | 329 +++ ...ix-autofs-mount-options-construction.patch | 283 +++ ...dir-not-re-created-on-symlink-expire.patch | 56 + ...6-fix-configure-force-shutdown-check.patch | 46 + ...5.1.6-fix-double-quoting-in-auto.smb.patch | 27 + ...ing-of-ampersand-in-auto.smb-as-well.patch | 26 + ....1.6-fix-ldap-sasl-reconnect-problem.patch | 347 +++ ...-multi-mount-lookup-after-mount-fail.patch | 64 + ...d-string-length-calc-in-expandsunent.patch | 48 + ...-trailing-dollar-sun-entry-expansion.patch | 50 + ...truct-addrinfo-for-getaddrinfo-calls.patch | 116 + autofs-5.1.6-ldap-schema-fix.patch | 52 + ...-mounts-propagation-slave-by-default.patch | 262 ++ ..._c-fix-local-rdma-share-not-mounting.patch | 54 + ...6-remove-intr-hosts-map-mount-option.patch | 125 + ...-ldap-READMEs-and-schema-definitions.patch | 885 +++++++ ...efile-targets-directory-dependencies.patch | 94 + autofs.spec | 2202 +++++++++++++++++ sources | 1 + 21 files changed, 5142 insertions(+) create mode 100644 autofs-5.1.6-correct-fsf-address.patch create mode 100644 autofs-5.1.6-fix-a-regression-with-map-instance-lookup.patch create mode 100644 autofs-5.1.6-fix-autofs-mount-options-construction.patch create mode 100644 autofs-5.1.6-fix-browse-dir-not-re-created-on-symlink-expire.patch create mode 100644 autofs-5.1.6-fix-configure-force-shutdown-check.patch create mode 100644 autofs-5.1.6-fix-double-quoting-in-auto.smb.patch create mode 100644 autofs-5.1.6-fix-double-quoting-of-ampersand-in-auto.smb-as-well.patch create mode 100644 autofs-5.1.6-fix-ldap-sasl-reconnect-problem.patch create mode 100644 autofs-5.1.6-fix-program-map-multi-mount-lookup-after-mount-fail.patch create mode 100644 autofs-5.1.6-fix-quoted-string-length-calc-in-expandsunent.patch create mode 100644 autofs-5.1.6-fix-trailing-dollar-sun-entry-expansion.patch create mode 100644 autofs-5.1.6-initialize-struct-addrinfo-for-getaddrinfo-calls.patch create mode 100644 autofs-5.1.6-ldap-schema-fix.patch create mode 100644 autofs-5.1.6-make-bind-mounts-propagation-slave-by-default.patch create mode 100644 autofs-5.1.6-mount_nfs_c-fix-local-rdma-share-not-mounting.patch create mode 100644 autofs-5.1.6-remove-intr-hosts-map-mount-option.patch create mode 100644 autofs-5.1.6-update-ldap-READMEs-and-schema-definitions.patch create mode 100644 autofs-samples-fix-Makefile-targets-directory-dependencies.patch create mode 100644 autofs.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..9be4bd9 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,13 @@ +autofs-5.0.5.tar.bz2 +/autofs-5.0.6.tar.gz +/autofs-5.0.6.tar.bz2 +/autofs-5.0.7.tar.bz2 +/autofs-5.0.8.tar.bz2 +/autofs-5.1.0-beta1.tar.gz +/autofs-5.1.0.tar.gz +/autofs-5.1.1.tar.gz +/autofs-5.1.2.tar.gz +/autofs-5.1.3.tar.gz +/autofs-5.1.4.tar.gz +/autofs-5.1.5.tar.gz +/autofs-5.1.6.tar.gz diff --git a/autofs-5.1.6-correct-fsf-address.patch b/autofs-5.1.6-correct-fsf-address.patch new file mode 100644 index 0000000..fcecbad --- /dev/null +++ b/autofs-5.1.6-correct-fsf-address.patch @@ -0,0 +1,62 @@ +autofs-5.1.6 - correct fsf address + +From: Ian Kent + + +--- + CHANGELOG | 1 + + COPYING | 4 ++-- + COPYRIGHT | 6 +++--- + 3 files changed, 6 insertions(+), 5 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index 3eb34097..f53f9adf 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -4,6 +4,7 @@ xx/xx/2020 autofs-5.1.7 + - fix program map multi-mount lookup after mount fail. + - fix browse dir not re-created on symlink expire. + - fix a regression with map instance lookup. ++- correct fsf address. + + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. +diff --git a/COPYING b/COPYING +index 60549be5..66885ff6 100644 +--- a/COPYING ++++ b/COPYING +@@ -2,7 +2,7 @@ + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. +- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +@@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software +- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + + Also add information on how to contact you by electronic and paper mail. +diff --git a/COPYRIGHT b/COPYRIGHT +index 37bd5d8b..b0dc1066 100644 +--- a/COPYRIGHT ++++ b/COPYRIGHT +@@ -4,9 +4,9 @@ For all software in this distribution unless otherwise indicated: + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +- the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, +- USA; either version 2 of the License, or (at your option) any later +- version. ++ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++ Boston, MA 02110-1301, USA; either version 2 of the License, or ++ (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/autofs-5.1.6-fix-a-regression-with-map-instance-lookup.patch b/autofs-5.1.6-fix-a-regression-with-map-instance-lookup.patch new file mode 100644 index 0000000..d6974dd --- /dev/null +++ b/autofs-5.1.6-fix-a-regression-with-map-instance-lookup.patch @@ -0,0 +1,329 @@ +autofs-5.1.6 - fix a regression with map instance lookup + +From: Ian Kent + +Commit b66deff4241d ("autofs-5.1.3 - fix possible map instance memory +leak") introduced a regression. + +The change didn't fix the memory leak and also failed to fix the race +updating the map instance list that caused it. + +To fix this get rid of the horible temporary map usage and update the +instance list in place. Doing this causes some additional allocations +and frees but is somewhat simpler overall and avoids the race. + +Fixes: b66deff4241d ("autofs-5.1.3 - fix possible map instance memory leak") +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + daemon/lookup.c | 188 ++++++++++++++++++++++--------------------------------- + 2 files changed, 76 insertions(+), 113 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index 214ee8bb..3eb34097 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -3,6 +3,7 @@ xx/xx/2020 autofs-5.1.7 + - update ldap READMEs and schema definitions. + - fix program map multi-mount lookup after mount fail. + - fix browse dir not re-created on symlink expire. ++- fix a regression with map instance lookup. + + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. +diff --git a/daemon/lookup.c b/daemon/lookup.c +index 60a48f3f..8d54c465 100644 +--- a/daemon/lookup.c ++++ b/daemon/lookup.c +@@ -64,6 +64,10 @@ static char *find_map_path(struct autofs_point *ap, struct map_source *map) + char *search_path; + struct stat st; + ++ /* Absolute path, just return a copy */ ++ if (mname[0] == '/') ++ return strdup(mname); ++ + /* + * This is different to the way it is in amd. + * autofs will always try to locate maps in AUTOFS_MAP_DIR +@@ -373,14 +377,27 @@ static int read_file_source_instance(struct autofs_point *ap, struct map_source + char src_prog[] = "program"; + struct stat st; + char *type, *format; ++ char *path; ++ ++ if (map->argc < 1) { ++ error(ap->logopt, "invalid arguments for autofs_point"); ++ return NSS_STATUS_UNKNOWN; ++ } + +- if (stat(map->argv[0], &st) == -1) { +- warn(ap->logopt, "file map %s not found", map->argv[0]); ++ path = find_map_path(ap, map); ++ if (!path) ++ return NSS_STATUS_UNKNOWN; ++ ++ if (stat(path, &st) == -1) { ++ warn(ap->logopt, "file map %s not found", path); ++ free(path); + return NSS_STATUS_NOTFOUND; + } + +- if (!S_ISREG(st.st_mode)) ++ if (!S_ISREG(st.st_mode)) { ++ free(path); + return NSS_STATUS_NOTFOUND; ++ } + + if (st.st_mode & __S_IEXEC) + type = src_prog; +@@ -391,9 +408,23 @@ static int read_file_source_instance(struct autofs_point *ap, struct map_source + + instance = master_find_source_instance(map, type, format, 0, NULL); + if (!instance) { +- int argc = map->argc; +- const char **argv = map->argv; ++ const char **argv; ++ int argc; ++ ++ argc = map->argc; ++ argv = copy_argv(map->argc, map->argv); ++ if (!argv) { ++ error(ap->logopt, "failed to copy args"); ++ free(path); ++ return NSS_STATUS_UNKNOWN; ++ } ++ if (argv[0]) ++ free((char *) argv[0]); ++ argv[0] = path; ++ path = NULL; ++ + instance = master_add_source_instance(map, type, format, age, argc, argv); ++ free_argv(argc, argv); + if (!instance) + return NSS_STATUS_UNAVAIL; + instance->recurse = map->recurse; +@@ -401,6 +432,9 @@ static int read_file_source_instance(struct autofs_point *ap, struct map_source + } + instance->stale = map->stale; + ++ if (path) ++ free(path); ++ + return do_read_map(ap, instance, age); + } + +@@ -426,14 +460,6 @@ static int read_source_instance(struct autofs_point *ap, struct map_source *map, + return do_read_map(ap, instance, age); + } + +-static void argv_cleanup(void *arg) +-{ +- struct map_source *tmap = (struct map_source *) arg; +- /* path is freed in free_argv */ +- free_argv(tmap->argc, tmap->argv); +- return; +-} +- + static int lookup_map_read_map(struct autofs_point *ap, + struct map_source *map, time_t age) + { +@@ -476,16 +502,11 @@ static int lookup_map_read_map(struct autofs_point *ap, + static enum nsswitch_status read_map_source(struct nss_source *this, + struct autofs_point *ap, struct map_source *map, time_t age) + { +- enum nsswitch_status result; +- struct map_source tmap; +- char *path; +- + if (strcasecmp(this->source, "files")) { + return read_source_instance(ap, map, this->source, age); + } + + /* +- * autofs built-in map for nsswitch "files" is "file". + * This is a special case as we need to append the + * normal location to the map name. + * note: It's invalid to specify a relative path. +@@ -496,50 +517,7 @@ static enum nsswitch_status read_map_source(struct nss_source *this, + return NSS_STATUS_NOTFOUND; + } + +- this->source[4] = '\0'; +- tmap.flags = map->flags; +- tmap.type = this->source; +- tmap.format = map->format; +- tmap.name = map->name; +- tmap.lookup = map->lookup; +- tmap.mc = map->mc; +- tmap.instance = map->instance; +- tmap.exp_timeout = map->exp_timeout; +- tmap.recurse = map->recurse; +- tmap.depth = map->depth; +- tmap.stale = map->stale; +- tmap.argc = 0; +- tmap.argv = NULL; +- +- path = find_map_path(ap, map); +- if (!path) +- return NSS_STATUS_UNKNOWN; +- +- if (map->argc >= 1) { +- tmap.argc = map->argc; +- tmap.argv = copy_argv(map->argc, map->argv); +- if (!tmap.argv) { +- error(ap->logopt, "failed to copy args"); +- free(path); +- return NSS_STATUS_UNKNOWN; +- } +- if (tmap.argv[0]) +- free((char *) tmap.argv[0]); +- tmap.argv[0] = path; +- } else { +- error(ap->logopt, "invalid arguments for autofs_point"); +- free(path); +- return NSS_STATUS_UNKNOWN; +- } +- +- pthread_cleanup_push(argv_cleanup, &tmap); +- result = read_file_source_instance(ap, &tmap, age); +- pthread_cleanup_pop(1); +- +- if (!map->instance) +- map->instance = tmap.instance; +- +- return result; ++ return read_file_source_instance(ap, map, age); + } + + int lookup_nss_read_map(struct autofs_point *ap, struct map_source *source, time_t age) +@@ -925,17 +903,30 @@ static int lookup_name_file_source_instance(struct autofs_point *ap, struct map_ + time_t age = monotonic_time(NULL); + struct stat st; + char *type, *format; ++ char *path; + + if (*name == '/' && map->flags & MAP_FLAG_FORMAT_AMD) + return lookup_amd_instance(ap, map, name, name_len); + +- if (stat(map->argv[0], &st) == -1) { ++ if (map->argc < 1) { ++ error(ap->logopt, "invalid arguments for autofs_point"); ++ return NSS_STATUS_UNKNOWN; ++ } ++ ++ path = find_map_path(ap, map); ++ if (!path) ++ return NSS_STATUS_UNKNOWN; ++ ++ if (stat(path, &st) == -1) { + debug(ap->logopt, "file map not found"); ++ free(path); + return NSS_STATUS_NOTFOUND; + } + +- if (!S_ISREG(st.st_mode)) ++ if (!S_ISREG(st.st_mode)) { ++ free(path); + return NSS_STATUS_NOTFOUND; ++ } + + if (st.st_mode & __S_IEXEC) + type = src_prog; +@@ -946,15 +937,32 @@ static int lookup_name_file_source_instance(struct autofs_point *ap, struct map_ + + instance = master_find_source_instance(map, type, format, 0, NULL); + if (!instance) { +- int argc = map->argc; +- const char **argv = map->argv; ++ const char **argv; ++ int argc; ++ ++ argc = map->argc; ++ argv = copy_argv(map->argc, map->argv); ++ if (!argv) { ++ error(ap->logopt, "failed to copy args"); ++ free(path); ++ return NSS_STATUS_UNKNOWN; ++ } ++ if (argv[0]) ++ free((char *) argv[0]); ++ argv[0] = path; ++ path = NULL; ++ + instance = master_add_source_instance(map, type, format, age, argc, argv); ++ free_argv(argc, argv); + if (!instance) + return NSS_STATUS_NOTFOUND; + instance->recurse = map->recurse; + instance->depth = map->depth; + } + ++ if (path) ++ free(path); ++ + return do_lookup_mount(ap, instance, name, name_len); + } + +@@ -1030,10 +1038,6 @@ static enum nsswitch_status lookup_map_name(struct nss_source *this, + struct autofs_point *ap, struct map_source *map, + const char *name, int name_len) + { +- enum nsswitch_status result; +- struct map_source tmap; +- char *path; +- + if (strcasecmp(this->source, "files")) + return lookup_name_source_instance(ap, map, + this->source, name, name_len); +@@ -1050,49 +1054,7 @@ static enum nsswitch_status lookup_map_name(struct nss_source *this, + return NSS_STATUS_NOTFOUND; + } + +- this->source[4] = '\0'; +- tmap.flags = map->flags; +- tmap.type = this->source; +- tmap.format = map->format; +- tmap.name = map->name; +- tmap.mc = map->mc; +- tmap.instance = map->instance; +- tmap.exp_timeout = map->exp_timeout; +- tmap.recurse = map->recurse; +- tmap.depth = map->depth; +- tmap.argc = 0; +- tmap.argv = NULL; +- +- path = find_map_path(ap, map); +- if (!path) +- return NSS_STATUS_UNKNOWN; +- +- if (map->argc >= 1) { +- tmap.argc = map->argc; +- tmap.argv = copy_argv(map->argc, map->argv); +- if (!tmap.argv) { +- error(ap->logopt, "failed to copy args"); +- free(path); +- return NSS_STATUS_UNKNOWN; +- } +- if (tmap.argv[0]) +- free((char *) tmap.argv[0]); +- tmap.argv[0] = path; +- } else { +- error(ap->logopt, "invalid arguments for autofs_point"); +- free(path); +- return NSS_STATUS_UNKNOWN; +- } +- +- result = lookup_name_file_source_instance(ap, &tmap, name, name_len); +- +- if (!map->instance) +- map->instance = tmap.instance; +- +- /* path is freed in free_argv */ +- free_argv(tmap.argc, tmap.argv); +- +- return result; ++ return lookup_name_file_source_instance(ap, map, name, name_len); + } + + static struct map_source *lookup_get_map_source(struct master_mapent *entry) diff --git a/autofs-5.1.6-fix-autofs-mount-options-construction.patch b/autofs-5.1.6-fix-autofs-mount-options-construction.patch new file mode 100644 index 0000000..a0c56e6 --- /dev/null +++ b/autofs-5.1.6-fix-autofs-mount-options-construction.patch @@ -0,0 +1,283 @@ +autofs-5.1.6 - fix autofs mount options construction + +From: Ian Kent + +There's an off by one length error in the autofs mount options +construction. + +Consolidate the options construction into make_options_string() and +use snprintf() to verify the options length calculation is correct. + +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + + daemon/direct.c | 46 ++----------------------- + daemon/indirect.c | 23 +----------- + include/mounts.h | 3 +- + lib/mounts.c | 98 +++++++++++++++++++++++++++++++++++++++++++++-------- + 5 files changed, 92 insertions(+), 79 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index 90f67336..2565b04d 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -10,6 +10,7 @@ xx/xx/2020 autofs-5.1.7 + - fix trailing dollar sun entry expansion. + - initialize struct addrinfo for getaddrinfo() calls. + - fix quoted string length calc in expandsunent(). ++- fix autofs mount options construction. + + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. +diff --git a/daemon/direct.c b/daemon/direct.c +index b82d6e95..c4948729 100644 +--- a/daemon/direct.c ++++ b/daemon/direct.c +@@ -348,29 +348,10 @@ int do_mount_autofs_direct(struct autofs_point *ap, + } + + if (!mp->options) { +- mp->options = make_options_string(ap->path, ap->kpipefd, str_direct); ++ mp->options = make_options_string(ap->path, ++ ap->kpipefd, str_direct, ap->flags); + if (!mp->options) + return 0; +- +- if ((ap->flags & MOUNT_FLAG_STRICTEXPIRE) && +- ((get_kver_major() == 5 && get_kver_minor() > 3) || +- (get_kver_major() > 5))) { +- char *tmp = realloc(mp->options, strlen(mp->options) + 12); +- if (tmp) { +- strcat(tmp, ",strictexpire"); +- mp->options = tmp; +- } +- } +- +- if ((ap->flags & MOUNT_FLAG_IGNORE) && +- ((get_kver_major() == 5 && get_kver_minor() > 4) || +- (get_kver_major() > 5))) { +- char *tmp = realloc(mp->options, strlen(mp->options) + 7); +- if (tmp) { +- strcat(tmp, ",ignore"); +- mp->options = tmp; +- } +- } + } + + /* In case the directory doesn't exist, try to mkdir it */ +@@ -676,29 +657,10 @@ int mount_autofs_offset(struct autofs_point *ap, struct mapent *me, const char * + } + + if (!mp->options) { +- mp->options = make_options_string(ap->path, ap->kpipefd, str_offset); ++ mp->options = make_options_string(ap->path, ++ ap->kpipefd, str_offset, ap->flags); + if (!mp->options) + return MOUNT_OFFSET_OK; +- +- if ((ap->flags & MOUNT_FLAG_STRICTEXPIRE) && +- ((get_kver_major() == 5 && get_kver_minor() > 3) || +- (get_kver_major() > 5))) { +- char *tmp = realloc(mp->options, strlen(mp->options) + 12); +- if (tmp) { +- strcat(tmp, ",strictexpire"); +- mp->options = tmp; +- } +- } +- +- if ((ap->flags & MOUNT_FLAG_IGNORE) && +- ((get_kver_major() == 5 && get_kver_minor() > 4) || +- (get_kver_major() > 5))) { +- char *tmp = realloc(mp->options, strlen(mp->options) + 7); +- if (tmp) { +- strcat(tmp, ",ignore"); +- mp->options = tmp; +- } +- } + } + + strcpy(mountpoint, root); +diff --git a/daemon/indirect.c b/daemon/indirect.c +index 32257323..43bcb346 100644 +--- a/daemon/indirect.c ++++ b/daemon/indirect.c +@@ -78,32 +78,13 @@ static int do_mount_autofs_indirect(struct autofs_point *ap, const char *root) + } + } + +- options = make_options_string(ap->path, ap->kpipefd, str_indirect); ++ options = make_options_string(ap->path, ++ ap->kpipefd, str_indirect, ap->flags); + if (!options) { + error(ap->logopt, "options string error"); + goto out_err; + } + +- if ((ap->flags & MOUNT_FLAG_STRICTEXPIRE) && +- ((get_kver_major() == 5 && get_kver_minor() > 3) || +- (get_kver_major() > 5))) { +- char *tmp = realloc(options, strlen(options) + 12); +- if (tmp) { +- strcat(tmp, ",strictexpire"); +- options = tmp; +- } +- } +- +- if ((ap->flags & MOUNT_FLAG_IGNORE) && +- ((get_kver_major() == 5 && get_kver_minor() > 4) || +- (get_kver_major() > 5))) { +- char *tmp = realloc(options, strlen(options) + 7); +- if (tmp) { +- strcat(tmp, ",ignore"); +- options = tmp; +- } +- } +- + /* In case the directory doesn't exist, try to mkdir it */ + if (mkdir_path(root, mp_mode) < 0) { + if (errno != EEXIST && errno != EROFS) { +diff --git a/include/mounts.h b/include/mounts.h +index 1214aed9..c8fddf00 100644 +--- a/include/mounts.h ++++ b/include/mounts.h +@@ -94,7 +94,8 @@ void free_amd_entry_list(struct list_head *entries); + unsigned int query_kproto_ver(void); + unsigned int get_kver_major(void); + unsigned int get_kver_minor(void); +-char *make_options_string(char *path, int kernel_pipefd, const char *extra); ++char *make_options_string(char *path, int pipefd, ++ const char *type, unsigned int flags); + char *make_mnt_name_string(char *path); + int ext_mount_add(struct list_head *, const char *, unsigned int); + int ext_mount_remove(struct list_head *, const char *); +diff --git a/lib/mounts.c b/lib/mounts.c +index 83d053c8..a2d1f149 100644 +--- a/lib/mounts.c ++++ b/lib/mounts.c +@@ -599,43 +599,111 @@ void free_amd_entry_list(struct list_head *entries) + } + } + ++static int cacl_max_options_len(unsigned int flags) ++{ ++ unsigned int kver_major = get_kver_major(); ++ unsigned int kver_minor = get_kver_minor(); ++ int max_len; ++ ++ /* %d and %u are maximum lenght of 10 and mount type is maximum ++ * length of 9 (e. ",indirect"). ++ * The base temaplate is "fd=%d,pgrp=%u,minproto=5,maxproto=%d" ++ * plus the length of mount type plus 1 for the NULL. ++ */ ++ max_len = 79 + 1; ++ ++ if (kver_major < 5 || (kver_major == 5 && kver_minor < 4)) ++ goto out; ++ ++ /* maybe add ",strictexpire" */ ++ if (flags & MOUNT_FLAG_STRICTEXPIRE) ++ max_len += 13; ++ ++ if (kver_major == 5 && kver_minor < 5) ++ goto out; ++ ++ /* maybe add ",ignore" */ ++ if (flags & MOUNT_FLAG_IGNORE) ++ max_len += 7; ++out: ++ return max_len; ++} ++ + /* + * Make common autofs mount options string + */ +-char *make_options_string(char *path, int pipefd, const char *extra) ++char *make_options_string(char *path, int pipefd, ++ const char *type, unsigned int flags) + { ++ unsigned int kver_major = get_kver_major(); ++ unsigned int kver_minor = get_kver_minor(); + char *options; +- int len; ++ int max_len, len, new; ++ ++ max_len = cacl_max_options_len(flags); + +- options = malloc(MAX_OPTIONS_LEN + 1); ++ options = malloc(max_len); + if (!options) { + logerr("can't malloc options string"); + return NULL; + } + +- if (extra) +- len = snprintf(options, MAX_OPTIONS_LEN, ++ if (type) ++ len = snprintf(options, max_len, + options_template_extra, + pipefd, (unsigned) getpgrp(), +- AUTOFS_MAX_PROTO_VERSION, extra); ++ AUTOFS_MAX_PROTO_VERSION, type); + else +- len = snprintf(options, MAX_OPTIONS_LEN, options_template, ++ len = snprintf(options, max_len, options_template, + pipefd, (unsigned) getpgrp(), + AUTOFS_MAX_PROTO_VERSION); + +- if (len >= MAX_OPTIONS_LEN) { +- logerr("buffer to small for options - truncated"); +- len = MAX_OPTIONS_LEN - 1; ++ if (len < 0) ++ goto error_out; ++ ++ if (len >= max_len) ++ goto truncated; ++ ++ if (kver_major < 5 || (kver_major == 5 && kver_minor < 4)) ++ goto out; ++ ++ /* maybe add ",strictexpire" */ ++ if (flags & MOUNT_FLAG_STRICTEXPIRE) { ++ new = snprintf(options + len, ++ max_len, "%s", ",strictexpire"); ++ if (new < 0) ++ goto error_out; ++ len += new; ++ if (len >= max_len) ++ goto truncated; + } + +- if (len < 0) { +- logerr("failed to malloc autofs mount options for %s", path); +- free(options); +- return NULL; ++ if (kver_major == 5 && kver_minor < 5) ++ goto out; ++ ++ /* maybe add ",ignore" */ ++ if (flags & MOUNT_FLAG_IGNORE) { ++ new = snprintf(options + len, ++ max_len, "%s", ",ignore"); ++ if (new < 0) ++ goto error_out; ++ len += new; ++ if (len >= max_len) ++ goto truncated; + } ++out: + options[len] = '\0'; +- + return options; ++ ++truncated: ++ logerr("buffer to small for options - truncated"); ++ len = max_len -1; ++ goto out; ++ ++error_out: ++ logerr("error constructing mount options string for %s", path); ++ free(options); ++ return NULL; + } + + char *make_mnt_name_string(char *path) diff --git a/autofs-5.1.6-fix-browse-dir-not-re-created-on-symlink-expire.patch b/autofs-5.1.6-fix-browse-dir-not-re-created-on-symlink-expire.patch new file mode 100644 index 0000000..794720d --- /dev/null +++ b/autofs-5.1.6-fix-browse-dir-not-re-created-on-symlink-expire.patch @@ -0,0 +1,56 @@ +autofs-5.1.6 - fix browse dir not re-created on symlink expire + +From: Ian Kent + +If symlinks are being used for mounts and the autofs mount has browse mode +enabled when a symlink is removed at expire the browse mode directory needs +to be re-created. + +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + + daemon/automount.c | 19 +++++++++++++++++++ + 2 files changed, 20 insertions(+) + +diff --git a/CHANGELOG b/CHANGELOG +index 3c784d34..214ee8bb 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -2,6 +2,7 @@ xx/xx/2020 autofs-5.1.7 + - make bind mounts propagation slave by default. + - update ldap READMEs and schema definitions. + - fix program map multi-mount lookup after mount fail. ++- fix browse dir not re-created on symlink expire. + + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. +diff --git a/daemon/automount.c b/daemon/automount.c +index 8ec4ac5e..0391bfb5 100644 +--- a/daemon/automount.c ++++ b/daemon/automount.c +@@ -650,6 +650,25 @@ int umount_multi(struct autofs_point *ap, const char *path, int incl) + "failed to remove symlink %s", path); + return 1; + } ++ /* Check if the autofs mount has browse mode enabled. ++ * If so re-create the directory entry. ++ */ ++ if (ap->flags | MOUNT_FLAG_GHOST) { ++ int ret; ++ ++ /* If the browse directory create fails log an ++ * error and continue anyway since the expire ++ * has succeeded. ++ */ ++ ret = mkdir_path(path, mp_mode); ++ if (ret && errno != EEXIST) { ++ char buf[MAX_ERR_BUF]; ++ char *estr; ++ estr = strerror_r(errno, buf, MAX_ERR_BUF); ++ warn(ap->logopt, ++ "mkdir_path %s failed: %s", path, estr); ++ } ++ } + /* Check for an external mount and attempt umount if needed */ + mounts_mutex_lock(ap); + entry = __master_find_amdmount(ap, path); diff --git a/autofs-5.1.6-fix-configure-force-shutdown-check.patch b/autofs-5.1.6-fix-configure-force-shutdown-check.patch new file mode 100644 index 0000000..1380e72 --- /dev/null +++ b/autofs-5.1.6-fix-configure-force-shutdown-check.patch @@ -0,0 +1,46 @@ +autofs-5.1.6 - fix configure force shutdown check + +From: Ian Kent + +Not strickly broken but there is a mis-match between the --enable-force-shutdown +and the configure variable naming. + +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + + configure | 2 +- + configure.in | 2 +- + 3 files changed, 3 insertions(+), 2 deletions(-) + +--- autofs-5.1.6.orig/CHANGELOG ++++ autofs-5.1.6/CHANGELOG +@@ -14,6 +14,7 @@ xx/xx/2020 autofs-5.1.7 + - mount_nfs.c fix local rdma share not mounting. + - fix ldap sasl reconnect problem. + - samples/ldap.schema fix. ++- fix configure force shutdown check. + + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. +--- autofs-5.1.6.orig/configure ++++ autofs-5.1.6/configure +@@ -6379,7 +6379,7 @@ else + enableval=no + fi + +-if test x$enable_forced_shutdown = xyes -o x$enableval = xyes; then ++if test x$enable_force_shutdown = xyes -o x$enableval = xyes; then + + $as_echo "#define ENABLE_FORCED_SHUTDOWN 1" >>confdefs.h + +--- autofs-5.1.6.orig/configure.in ++++ autofs-5.1.6/configure.in +@@ -404,7 +404,7 @@ AC_ARG_ENABLE(force-shutdown, + [ --enable-force-shutdown enable USR1 signal to force unlink umount of any + busy mounts during shutdown],, + enableval=no) +-if test x$enable_forced_shutdown = xyes -o x$enableval = xyes; then ++if test x$enable_force_shutdown = xyes -o x$enableval = xyes; then + AC_DEFINE(ENABLE_FORCED_SHUTDOWN, 1, [Enable forced shutdown on USR1 signal]) + fi + diff --git a/autofs-5.1.6-fix-double-quoting-in-auto.smb.patch b/autofs-5.1.6-fix-double-quoting-in-auto.smb.patch new file mode 100644 index 0000000..7a8bd3d --- /dev/null +++ b/autofs-5.1.6-fix-double-quoting-in-auto.smb.patch @@ -0,0 +1,27 @@ +autofs-5.1.6 - fix double quoting in auto.smb + +From: Ian Kent + +The example program mount script installed to /etc/auto.smb incorrectly +adds a quote for the trailing dollar of special Windows mounts. But they +are already surrounded by double quotes. This may have been handled by +mount.cifs at some point but it's failing now. + +Signed-off-by: Ian Kent +--- + samples/auto.smb | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/samples/auto.smb b/samples/auto.smb +index 6af5d856..4842b689 100755 +--- a/samples/auto.smb ++++ b/samples/auto.smb +@@ -75,8 +75,6 @@ $SMBCLIENT $smbopts -gL "$key" 2>/dev/null| awk -v "key=$key" -v "opts=$opts" -F + dir = $2 + loc = $2 + # Enclose mount dir and location in quotes +- # Double quote "$" in location as it is special +- gsub(/\$$/, "\\$", loc); + gsub(/\&/,"\\\\&",loc) + print " \\\n\t \"/" dir "\"", "\"://" key "/" loc "\"" + } diff --git a/autofs-5.1.6-fix-double-quoting-of-ampersand-in-auto.smb-as-well.patch b/autofs-5.1.6-fix-double-quoting-of-ampersand-in-auto.smb-as-well.patch new file mode 100644 index 0000000..ce941ea --- /dev/null +++ b/autofs-5.1.6-fix-double-quoting-of-ampersand-in-auto.smb-as-well.patch @@ -0,0 +1,26 @@ +autofs-5.1.6 - fix double quoting of ampersand in auto.smb as well + +From: Ian Kent + +The example program mount script installed to /etc/auto.smb incorrectly +adds a quote for the & character that causes mount failures. But the +produced map entry is already surrounded by double quotes. This may have +been handled by mount.cifs at some point but it's failing now. + +Signed-off-by: Ian Kent +--- + samples/auto.smb | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/samples/auto.smb b/samples/auto.smb +index 4842b689..f6d41d35 100755 +--- a/samples/auto.smb ++++ b/samples/auto.smb +@@ -75,7 +75,6 @@ $SMBCLIENT $smbopts -gL "$key" 2>/dev/null| awk -v "key=$key" -v "opts=$opts" -F + dir = $2 + loc = $2 + # Enclose mount dir and location in quotes +- gsub(/\&/,"\\\\&",loc) + print " \\\n\t \"/" dir "\"", "\"://" key "/" loc "\"" + } + END { if (!first) print "\n"; else exit 1 } diff --git a/autofs-5.1.6-fix-ldap-sasl-reconnect-problem.patch b/autofs-5.1.6-fix-ldap-sasl-reconnect-problem.patch new file mode 100644 index 0000000..96a88fa --- /dev/null +++ b/autofs-5.1.6-fix-ldap-sasl-reconnect-problem.patch @@ -0,0 +1,347 @@ +autofs-5.1.6 - fix ldap sasl reconnect problem + +From: Ian Kent + +When performing an ldap sasl connection a two step initialisation +was being done in an attempt to partially reuse existing connection +setup. + +But if a network connectivity problem occurs the connection can end +up only half initialized and recovery after connectivity is restored +fails. + +So get rid of the two step initialization, as it's benefit was at best +questionable, so that connection attempts either succeed or completely +fail. This leaves the connection completely uninitialized if there's a +network conectivity problem, ready for a new connection attempt. + +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + include/lookup_ldap.h | 1 + modules/cyrus-sasl.c | 131 +++++++++++++++++++++++++------------------------- + 3 files changed, 68 insertions(+), 65 deletions(-) + +--- autofs-5.1.6.orig/CHANGELOG ++++ autofs-5.1.6/CHANGELOG +@@ -12,6 +12,7 @@ xx/xx/2020 autofs-5.1.7 + - fix quoted string length calc in expandsunent(). + - fix autofs mount options construction. + - mount_nfs.c fix local rdma share not mounting. ++- fix ldap sasl reconnect problem. + + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. +--- autofs-5.1.6.orig/include/lookup_ldap.h ++++ autofs-5.1.6/include/lookup_ldap.h +@@ -87,7 +87,6 @@ struct lookup_context { + char *secret; + char *client_princ; + char *client_cc; +- int kinit_done; + int kinit_successful; + #ifdef WITH_SASL + /* Kerberos */ +--- autofs-5.1.6.orig/modules/cyrus-sasl.c ++++ autofs-5.1.6/modules/cyrus-sasl.c +@@ -396,9 +396,9 @@ do_sasl_bind(unsigned logopt, LDAP *ld, + * cache, add the TGT to that cache, and set the environment variable so + * that the sasl/krb5 libraries can find our credentials. + * +- * Returns 0 upon success. ctxt->kinit_done and ctxt->kinit_successful +- * are set for cleanup purposes. The krb5 context and ccache entries in +- * the lookup_context are also filled in. ++ * Returns 0 upon success. ctxt->kinit_successful is set for cleanup ++ * purposes. The krb5 context and ccache entries in the lookup_context ++ * are also filled in. + * + * Upon failure, -1 is returned. + */ +@@ -412,9 +412,16 @@ sasl_do_kinit(unsigned logopt, struct lo + const char *realm_name; + int status, realm_length; + +- if (ctxt->kinit_done) ++ status = pthread_mutex_lock(&krb5cc_mutex); ++ if (status) ++ fatal(status); ++ ++ if (ctxt->kinit_successful) { ++ status = pthread_mutex_unlock(&krb5cc_mutex); ++ if (status) ++ fatal(status); + return 0; +- ctxt->kinit_done = 1; ++ } + + debug(logopt, + "initializing kerberos ticket: client principal %s", +@@ -423,15 +430,14 @@ sasl_do_kinit(unsigned logopt, struct lo + ret = krb5_init_context(&ctxt->krb5ctxt); + if (ret) { + error(logopt, "krb5_init_context failed with %d", ret); +- return -1; ++ goto out_unlock; + } + + ret = krb5_cc_resolve(ctxt->krb5ctxt, krb5ccval, &ctxt->krb5_ccache); + if (ret) { + error(logopt, "krb5_cc_resolve failed with error %d", + ret); +- krb5_free_context(ctxt->krb5ctxt); +- return -1; ++ goto out_free_context; + } + + if (ctxt->client_princ) { +@@ -515,19 +521,11 @@ sasl_do_kinit(unsigned logopt, struct lo + goto out_cleanup_unparse; + } + +- status = pthread_mutex_lock(&krb5cc_mutex); +- if (status) +- fatal(status); +- + if (krb5cc_in_use++ == 0) + /* tell the cache what the default principal is */ + ret = krb5_cc_initialize(ctxt->krb5ctxt, + ctxt->krb5_ccache, krb5_client_princ); + +- status = pthread_mutex_unlock(&krb5cc_mutex); +- if (status) +- fatal(status); +- + if (ret) { + error(logopt, + "krb5_cc_initialize failed with error %d", ret); +@@ -550,6 +548,10 @@ sasl_do_kinit(unsigned logopt, struct lo + } + ctxt->kinit_successful = 1; + ++ status = pthread_mutex_unlock(&krb5cc_mutex); ++ if (status) ++ fatal(status); ++ + debug(logopt, "Kerberos authentication was successful!"); + + krb5_free_unparsed_name(ctxt->krb5ctxt, tgs_name); +@@ -568,10 +570,6 @@ out_cleanup_unparse: + out_cleanup_client_princ: + krb5_free_principal(ctxt->krb5ctxt, krb5_client_princ); + out_cleanup_cc: +- status = pthread_mutex_lock(&krb5cc_mutex); +- if (status) +- fatal(status); +- + if (krb5cc_in_use) + ret = krb5_cc_close(ctxt->krb5ctxt, ctxt->krb5_ccache); + else +@@ -579,22 +577,21 @@ out_cleanup_cc: + if (ret) + warn(logopt, + "krb5_cc_destroy failed with non-fatal error %d", ret); +- ++out_free_context: ++ krb5_free_context(ctxt->krb5ctxt); ++out_unlock: + status = pthread_mutex_unlock(&krb5cc_mutex); + if (status) + fatal(status); +- +- krb5_free_context(ctxt->krb5ctxt); +- + return -1; + } + + /* + * Check a client given external credential cache. + * +- * Returns 0 upon success. ctxt->kinit_done and ctxt->kinit_successful +- * are set for cleanup purposes. The krb5 context and ccache entries in +- * the lookup_context are also filled in. ++ * Returns 0 upon success. ctxt->kinit_successful is set for cleanup ++ * purposes. The krb5 context and ccache entries in the lookup_context ++ * are also filled in. + * + * Upon failure, -1 is returned. + */ +@@ -605,10 +602,18 @@ sasl_do_kinit_ext_cc(unsigned logopt, st + krb5_principal krb5_client_princ; + krb5_error_code ret; + char *cc_princ, *client_princ; ++ int status; ++ ++ status = pthread_mutex_lock(&krb5cc_mutex); ++ if (status) ++ fatal(status); + +- if (ctxt->kinit_done) ++ if (ctxt->kinit_successful) { ++ status = pthread_mutex_unlock(&krb5cc_mutex); ++ if (status) ++ fatal(status); + return 0; +- ctxt->kinit_done = 1; ++ } + + debug(logopt, + "using external credential cache for auth: client principal %s", +@@ -617,33 +622,26 @@ sasl_do_kinit_ext_cc(unsigned logopt, st + ret = krb5_init_context(&ctxt->krb5ctxt); + if (ret) { + error(logopt, "krb5_init_context failed with %d", ret); +- return -1; ++ goto out_unlock; + } + + ret = krb5_cc_resolve(ctxt->krb5ctxt, ctxt->client_cc, &ctxt->krb5_ccache); + if (ret) { + error(logopt, "krb5_cc_resolve failed with error %d", + ret); +- krb5_cc_close(ctxt->krb5ctxt, ctxt->krb5_ccache); +- krb5_free_context(ctxt->krb5ctxt); +- return -1; ++ goto out_cleanup_cc; + } + + ret = krb5_cc_get_principal(ctxt->krb5ctxt, ctxt->krb5_ccache, &def_princ); + if (ret) { + error(logopt, "krb5_cc_get_principal failed with error %d", ret); +- krb5_cc_close(ctxt->krb5ctxt, ctxt->krb5_ccache); +- krb5_free_context(ctxt->krb5ctxt); +- return -1; ++ goto out_cleanup_cc; + } + + ret = krb5_unparse_name(ctxt->krb5ctxt, def_princ, &cc_princ); + if (ret) { + error(logopt, "krb5_unparse_name failed with error %d", ret); +- krb5_free_principal(ctxt->krb5ctxt, def_princ); +- krb5_cc_close(ctxt->krb5ctxt, ctxt->krb5_ccache); +- krb5_free_context(ctxt->krb5ctxt); +- return -1; ++ goto out_cleanup_def_princ; + } + + debug(logopt, "external credential cache default principal %s", cc_princ); +@@ -666,10 +664,8 @@ sasl_do_kinit_ext_cc(unsigned logopt, st + error(logopt, + "krb5_sname_to_principal failed for " + "%s with error %d", default_client, ret); +- krb5_free_principal(ctxt->krb5ctxt, def_princ); +- krb5_cc_close(ctxt->krb5ctxt, ctxt->krb5_ccache); +- krb5_free_context(ctxt->krb5ctxt); +- return -1; ++ krb5_free_unparsed_name(ctxt->krb5ctxt, cc_princ); ++ goto out_cleanup_def_princ; + } + + +@@ -680,10 +676,8 @@ sasl_do_kinit_ext_cc(unsigned logopt, st + "krb5_unparse_name failed with error %d", + ret); + krb5_free_principal(ctxt->krb5ctxt, krb5_client_princ); +- krb5_free_principal(ctxt->krb5ctxt, def_princ); +- krb5_cc_close(ctxt->krb5ctxt, ctxt->krb5_ccache); +- krb5_free_context(ctxt->krb5ctxt); +- return -1; ++ krb5_free_unparsed_name(ctxt->krb5ctxt, cc_princ); ++ goto out_cleanup_def_princ; + } + + debug(logopt, +@@ -710,10 +704,7 @@ sasl_do_kinit_ext_cc(unsigned logopt, st + if (!ctxt->client_princ) + krb5_free_unparsed_name(ctxt->krb5ctxt, client_princ); + krb5_free_unparsed_name(ctxt->krb5ctxt, cc_princ); +- krb5_free_principal(ctxt->krb5ctxt, def_princ); +- krb5_cc_close(ctxt->krb5ctxt, ctxt->krb5_ccache); +- krb5_free_context(ctxt->krb5ctxt); +- return -1; ++ goto out_cleanup_def_princ; + } + + if (!ctxt->client_princ) +@@ -724,15 +715,24 @@ sasl_do_kinit_ext_cc(unsigned logopt, st + /* Set the environment variable to point to the external cred cache */ + if (setenv(krb5ccenv, ctxt->client_cc, 1) != 0) { + error(logopt, "setenv failed with %d", errno); +- krb5_cc_close(ctxt->krb5ctxt, ctxt->krb5_ccache); +- krb5_free_context(ctxt->krb5ctxt); +- return -1; ++ goto out_cleanup_cc; + } + ctxt->kinit_successful = 1; + + debug(logopt, "Kerberos authentication was successful!"); + + return 0; ++ ++out_cleanup_def_princ: ++ krb5_free_principal(ctxt->krb5ctxt, def_princ); ++out_cleanup_cc: ++ krb5_cc_close(ctxt->krb5ctxt, ctxt->krb5_ccache); ++ krb5_free_context(ctxt->krb5ctxt); ++out_unlock: ++ status = pthread_mutex_unlock(&krb5cc_mutex); ++ if (status) ++ fatal(status); ++ return -1; + } + + /* +@@ -974,11 +974,19 @@ void autofs_sasl_dispose(struct ldap_con + { + int status, ret; + ++ status = pthread_mutex_lock(&krb5cc_mutex); ++ if (status) ++ fatal(status); ++ + if (ctxt->sasl_mech && !strncmp(ctxt->sasl_mech, "EXTERNAL", 8)) { + if (conn && conn->ldap) { + ldap_unbind_s(conn->ldap); + conn->ldap = NULL; ++ ctxt->kinit_successful = 0; + } ++ status = pthread_mutex_unlock(&krb5cc_mutex); ++ if (status) ++ fatal(status); + return; + } + +@@ -988,10 +996,6 @@ void autofs_sasl_dispose(struct ldap_con + } + + if (ctxt->kinit_successful) { +- status = pthread_mutex_lock(&krb5cc_mutex); +- if (status) +- fatal(status); +- + if (--krb5cc_in_use || ctxt->client_cc) + ret = krb5_cc_close(ctxt->krb5ctxt, ctxt->krb5_ccache); + else +@@ -1000,19 +1004,18 @@ void autofs_sasl_dispose(struct ldap_con + logmsg("krb5_cc_destroy failed with non-fatal error %d", + ret); + +- status = pthread_mutex_unlock(&krb5cc_mutex); +- if (status) +- fatal(status); +- + krb5_free_context(ctxt->krb5ctxt); + if (unsetenv(krb5ccenv) != 0) + logerr("unsetenv failed with error %d", errno); + + ctxt->krb5ctxt = NULL; + ctxt->krb5_ccache = NULL; +- ctxt->kinit_done = 0; + ctxt->kinit_successful = 0; + } ++ ++ status = pthread_mutex_unlock(&krb5cc_mutex); ++ if (status) ++ fatal(status); + } + + static void *sasl_mutex_new(void) diff --git a/autofs-5.1.6-fix-program-map-multi-mount-lookup-after-mount-fail.patch b/autofs-5.1.6-fix-program-map-multi-mount-lookup-after-mount-fail.patch new file mode 100644 index 0000000..5fafd95 --- /dev/null +++ b/autofs-5.1.6-fix-program-map-multi-mount-lookup-after-mount-fail.patch @@ -0,0 +1,64 @@ +autofs-5.1.6 - fix program map multi-mount lookup after mount fail + +From: Ian Kent + +For the case of a singleton multi-mount program map lookup following +a mount fail (and the negative timeout has passed) the lookup key is +what's expected for an indirect map key but the the root offset map +entry already exists. This causes autofs to think it has an incorrect +lookup key and it fails the lookup when it should take the opptunity +to delete and update the cache entry since it's not actually in use +yet. + +If a check is done to see if the lookup is for the root offset, +deleting the entry fails because it contains an offset. Later when +parsing is done the offset will get updated and can get out of sync +with the entry of the multi-mount owner. That's not a problem as the +offsets would be deleted on eventual expire but it's best to clean +out the entry and start a fresh so the most up to date map entry +is being used. + +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + + modules/lookup_program.c | 7 +++++-- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index 981a0333..3c784d34 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -1,6 +1,7 @@ + xx/xx/2020 autofs-5.1.7 + - make bind mounts propagation slave by default. + - update ldap READMEs and schema definitions. ++- fix program map multi-mount lookup after mount fail. + + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. +diff --git a/modules/lookup_program.c b/modules/lookup_program.c +index fcb1af74..ca209488 100644 +--- a/modules/lookup_program.c ++++ b/modules/lookup_program.c +@@ -646,7 +646,7 @@ int lookup_mount(struct autofs_point *ap, const char *name, int name_len, void * + name_len, ent, ctxt->parse->context); + goto out_free; + } else { +- if (me->multi) { ++ if (me->multi && me->multi != me) { + cache_unlock(mc); + warn(ap->logopt, MODPREFIX + "unexpected lookup for active multi-mount" +@@ -656,8 +656,11 @@ int lookup_mount(struct autofs_point *ap, const char *name, int name_len, void * + cache_unlock(mc); + cache_writelock(mc); + me = cache_lookup_distinct(mc, name); +- if (me) ++ if (me) { ++ if (me->multi) ++ cache_delete_offset_list(mc, name); + cache_delete(mc, name); ++ } + cache_unlock(mc); + } + } diff --git a/autofs-5.1.6-fix-quoted-string-length-calc-in-expandsunent.patch b/autofs-5.1.6-fix-quoted-string-length-calc-in-expandsunent.patch new file mode 100644 index 0000000..3025201 --- /dev/null +++ b/autofs-5.1.6-fix-quoted-string-length-calc-in-expandsunent.patch @@ -0,0 +1,48 @@ +autofs-5.1.6 - fix quoted string length calc in expandsunent() + +From: Ian Kent + +The expandsunent() function in modules/parse_sun.c fails to properly +handle the ending " in a quoted string causing the length calculation +to not account for the ending quote and also doesn't properly account +for the remainder of the string being expanded. + +Also, when called again (after being called to get the length) the +allocated buffer is too small leading to out of bounds accesses. + +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + + modules/parse_sun.c | 6 ++++-- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index 2c500a48..90f67336 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -9,6 +9,7 @@ xx/xx/2020 autofs-5.1.7 + - remove intr hosts map mount option. + - fix trailing dollar sun entry expansion. + - initialize struct addrinfo for getaddrinfo() calls. ++- fix quoted string length calc in expandsunent(). + + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. +diff --git a/modules/parse_sun.c b/modules/parse_sun.c +index f6c22d15..80fdf476 100644 +--- a/modules/parse_sun.c ++++ b/modules/parse_sun.c +@@ -213,9 +213,11 @@ int expandsunent(const char *src, char *dst, const char *key, + *dst++ = *src; + src++; + } +- if (*src && dst) { ++ if (*src) { + len++; +- *dst++ = *src++; ++ if (dst) ++ *dst++ = *src; ++ src++; + } + break; + diff --git a/autofs-5.1.6-fix-trailing-dollar-sun-entry-expansion.patch b/autofs-5.1.6-fix-trailing-dollar-sun-entry-expansion.patch new file mode 100644 index 0000000..715c3c5 --- /dev/null +++ b/autofs-5.1.6-fix-trailing-dollar-sun-entry-expansion.patch @@ -0,0 +1,50 @@ +autofs-5.1.6 - fix trailing dollar sun entry expansion + +From: Ian Kent + +In modules/parse_sun.c:expandsunent() if we see "$ " or "$" in +the entry it can't be a macro, and the value can't be quoted since '\' +and '"' cases are handled seperately in the swicth, so treat the +character as a valid entry character. + +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + + modules/parse_sun.c | 12 ++++++++++++ + 2 files changed, 13 insertions(+) + +diff --git a/CHANGELOG b/CHANGELOG +index fa5992aa..07a85cde 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -7,6 +7,7 @@ xx/xx/2020 autofs-5.1.7 + - correct fsf address. + - samples: fix Makefile targets' directory dependencies + - remove intr hosts map mount option. ++- fix trailing dollar sun entry expansion. + + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. +diff --git a/modules/parse_sun.c b/modules/parse_sun.c +index 71867ef1..f6c22d15 100644 +--- a/modules/parse_sun.c ++++ b/modules/parse_sun.c +@@ -161,6 +161,18 @@ int expandsunent(const char *src, char *dst, const char *key, + } + src = p + 1; + } else { ++ /* If the '$' is folloed by a space or NULL it ++ * can't be a macro, and the value can't be ++ * quoted since '\' and '"' cases are handled ++ * in other cases, so treat the $ as a valid ++ * map entry character. ++ */ ++ if (isblank(*src) || !*src) { ++ if (dst) ++ *dst++ = ch; ++ len++; ++ break; ++ } + p = src; + while (isalnum(*p) || *p == '_') + p++; diff --git a/autofs-5.1.6-initialize-struct-addrinfo-for-getaddrinfo-calls.patch b/autofs-5.1.6-initialize-struct-addrinfo-for-getaddrinfo-calls.patch new file mode 100644 index 0000000..7ae9cab --- /dev/null +++ b/autofs-5.1.6-initialize-struct-addrinfo-for-getaddrinfo-calls.patch @@ -0,0 +1,116 @@ +autofs-5.1.6 - initialize struct addrinfo for getaddrinfo() calls + +From: Ian Kent + +The getaddrinfo() call may have become more fussy about initialization +of the passed in struct addrinfo that receives the results. + +It's good practice to initialize it prior to the gataddrinfo() call just +in case. + +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + + lib/parse_subs.c | 1 + + lib/rpc_subs.c | 1 + + modules/dclist.c | 1 + + modules/parse_amd.c | 3 +++ + modules/replicated.c | 2 ++ + 6 files changed, 9 insertions(+) + +diff --git a/CHANGELOG b/CHANGELOG +index 07a85cde..2c500a48 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -8,6 +8,7 @@ xx/xx/2020 autofs-5.1.7 + - samples: fix Makefile targets' directory dependencies + - remove intr hosts map mount option. + - fix trailing dollar sun entry expansion. ++- initialize struct addrinfo for getaddrinfo() calls. + + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. +diff --git a/lib/parse_subs.c b/lib/parse_subs.c +index cdda2e1a..0ee00d51 100644 +--- a/lib/parse_subs.c ++++ b/lib/parse_subs.c +@@ -475,6 +475,7 @@ unsigned int get_network_proximity(const char *name) + hints.ai_socktype = SOCK_DGRAM; + hints.ai_flags = AI_V4MAPPED | AI_ADDRCONFIG | AI_CANONNAME; + ++ ni = NULL; + ret = getaddrinfo(name_or_num, NULL, &hints, &ni); + if (ret) { + logerr("hostname lookup for %s failed: %s", +diff --git a/lib/rpc_subs.c b/lib/rpc_subs.c +index 8b23627a..643b7687 100644 +--- a/lib/rpc_subs.c ++++ b/lib/rpc_subs.c +@@ -691,6 +691,7 @@ static int create_client(struct conn_info *info, CLIENT **client) + else + hints.ai_socktype = SOCK_STREAM; + ++ ai = NULL; + ret = getaddrinfo(info->host, NULL, &hints, &ai); + if (ret) { + error(LOGOPT_ANY, +diff --git a/modules/dclist.c b/modules/dclist.c +index ba32134d..c34c3a91 100644 +--- a/modules/dclist.c ++++ b/modules/dclist.c +@@ -355,6 +355,7 @@ static char *getdnsdomainname(unsigned int logopt) + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_DGRAM; + ++ ni = NULL; + ret = getaddrinfo(name, NULL, &hints, &ni); + if (ret) { + error(logopt, +diff --git a/modules/parse_amd.c b/modules/parse_amd.c +index d8b9ea24..943a48b6 100644 +--- a/modules/parse_amd.c ++++ b/modules/parse_amd.c +@@ -269,6 +269,7 @@ static int match_my_name(struct autofs_point *ap, const char *name, struct subst + hints.ai_socktype = SOCK_DGRAM; + + /* Get host canonical name */ ++ cni = NULL; + ret = getaddrinfo(v->val, NULL, &hints, &cni); + if (ret) { + error(logopt, MODPREFIX +@@ -280,6 +281,7 @@ static int match_my_name(struct autofs_point *ap, const char *name, struct subst + hints.ai_flags = AI_V4MAPPED | AI_ADDRCONFIG | AI_CANONNAME; + + /* Resolve comparison name to its names and compare */ ++ ni = NULL; + ret = getaddrinfo(exp_name, NULL, &hints, &ni); + if (ret) { + error(logopt, MODPREFIX +@@ -775,6 +777,7 @@ static char *normalize_hostname(unsigned int logopt, const char *host, + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_DGRAM; + ++ ni = NULL; + ret = getaddrinfo(host, NULL, &hints, &ni); + if (ret) { + error(logopt, MODPREFIX +diff --git a/modules/replicated.c b/modules/replicated.c +index 91fce882..03d4ba1e 100644 +--- a/modules/replicated.c ++++ b/modules/replicated.c +@@ -982,6 +982,7 @@ static int add_host_addrs(struct host **list, const char *host, int ent_num, + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_DGRAM; + ++ ni = NULL; + ret = getaddrinfo(name, NULL, &hints, &ni); + if (ret) + goto try_name; +@@ -1002,6 +1003,7 @@ try_name: + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_DGRAM; + ++ ni = NULL; + ret = getaddrinfo(name, NULL, &hints, &ni); + if (ret) { + error(LOGOPT_ANY, diff --git a/autofs-5.1.6-ldap-schema-fix.patch b/autofs-5.1.6-ldap-schema-fix.patch new file mode 100644 index 0000000..a46e6c3 --- /dev/null +++ b/autofs-5.1.6-ldap-schema-fix.patch @@ -0,0 +1,52 @@ +autofs-5.1.6 - samples/ldap.schema fix + +From: Michael Peek + +This bug starts with version 5.1.3, and continues up to and including +the latest 5.1.6. Version 5.1.2 was fine. + +When slapd is invoked while including the sample LDAP schema file +autofs.schema, slapd will crash with the following error: + +5f359370 //autofs.schema: line 14 attributetype: +AttributeType inappropriate matching rule: "caseExactMatch" + +The problem is on line 13, which reads: + + EQUALITY caseExactMatch + +It should read: + + EQUALITY caseExactIA5Match + +Attached is a patch that will make the necessary change to +samples/autofs.schema that works for all versions 5.1.3 to 5.1.6. + +Signed-off-by: Michael Peek +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + + samples/autofs.schema | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +--- autofs-5.1.6.orig/CHANGELOG ++++ autofs-5.1.6/CHANGELOG +@@ -13,6 +13,7 @@ xx/xx/2020 autofs-5.1.7 + - fix autofs mount options construction. + - mount_nfs.c fix local rdma share not mounting. + - fix ldap sasl reconnect problem. ++- samples/ldap.schema fix. + + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. +--- autofs-5.1.6.orig/samples/autofs.schema ++++ autofs-5.1.6/samples/autofs.schema +@@ -10,7 +10,7 @@ + + attributetype ( 1.3.6.1.4.1.2312.4.1.2 NAME 'automountInformation' + DESC 'Information used by the autofs automounter' +- EQUALITY caseExactMatch ++ EQUALITY caseExactIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + + objectclass ( 1.3.6.1.4.1.2312.4.2.3 NAME 'automount' SUP top STRUCTURAL diff --git a/autofs-5.1.6-make-bind-mounts-propagation-slave-by-default.patch b/autofs-5.1.6-make-bind-mounts-propagation-slave-by-default.patch new file mode 100644 index 0000000..f427f6e --- /dev/null +++ b/autofs-5.1.6-make-bind-mounts-propagation-slave-by-default.patch @@ -0,0 +1,262 @@ +autofs-5.1.6 - make bind mounts propagation slave by default + +From: Ian Kent + +Make setting mount propagation on bind mounts mandatory with a default +of propagation slave. + +When using multi-mounts that have bind mounts the bind mount will have +the same properties as its parent which is commonly propagation shared. +And if the mount target is also propagation shared this can lead to a +deadlock when attempting to access the offset mounts. When this happens +an unwanted offset mount is propagated back to the target file system +resulting in a deadlock since the automount target is itself an +(unwanted) automount trigger. + +This problem has been present much longer than I originally thought, +perhaps since mount propagation was introduced into the kernel, so +explicitly setting bind mount propagation is the sensible thing to do. + +Signed-off-by: Ian Kent +--- + CHANGELOG | 3 +++ + include/automount.h | 9 +++++---- + lib/master_parse.y | 29 +++++++++++++++++------------ + lib/master_tok.l | 1 + + man/auto.master.5.in | 19 ++++++++++--------- + modules/mount_bind.c | 40 ++++++++++++++++++++++------------------ + 6 files changed, 58 insertions(+), 43 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index 847a9b01..f5a1a0e3 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -1,3 +1,6 @@ ++xx/xx/2020 autofs-5.1.7 ++- make bind mounts propagation slave by default. ++ + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. + - fix hesiod string check in master_parse(). +diff --git a/include/automount.h b/include/automount.h +index 4fd0ba96..fe9c7fee 100644 +--- a/include/automount.h ++++ b/include/automount.h +@@ -551,14 +551,15 @@ struct kernel_mod_version { + #define MOUNT_FLAG_AMD_CACHE_ALL 0x0080 + + /* Set mount propagation for bind mounts */ +-#define MOUNT_FLAG_SLAVE 0x0100 +-#define MOUNT_FLAG_PRIVATE 0x0200 ++#define MOUNT_FLAG_SHARED 0x0100 ++#define MOUNT_FLAG_SLAVE 0x0200 ++#define MOUNT_FLAG_PRIVATE 0x0400 + + /* Use strict expire semantics if requested and kernel supports it */ +-#define MOUNT_FLAG_STRICTEXPIRE 0x0400 ++#define MOUNT_FLAG_STRICTEXPIRE 0x0800 + + /* Indicator for applications to ignore the mount entry */ +-#define MOUNT_FLAG_IGNORE 0x0800 ++#define MOUNT_FLAG_IGNORE 0x1000 + + struct autofs_point { + pthread_t thid; +diff --git a/lib/master_parse.y b/lib/master_parse.y +index f817f739..08e44b57 100644 +--- a/lib/master_parse.y ++++ b/lib/master_parse.y +@@ -59,8 +59,6 @@ static long timeout; + static long negative_timeout; + static unsigned symlnk; + static unsigned strictexpire; +-static unsigned slave; +-static unsigned private; + static unsigned nobind; + static unsigned ghost; + extern unsigned global_selection_options; +@@ -72,6 +70,14 @@ static int tmp_argc; + static char **local_argv; + static int local_argc; + ++#define PROPAGATION_SHARED MOUNT_FLAG_SHARED ++#define PROPAGATION_SLAVE MOUNT_FLAG_SLAVE ++#define PROPAGATION_PRIVATE MOUNT_FLAG_PRIVATE ++#define PROPAGATION_MASK (MOUNT_FLAG_SHARED | \ ++ MOUNT_FLAG_SLAVE | \ ++ MOUNT_FLAG_PRIVATE) ++static unsigned int propagation; ++ + static char errstr[MAX_ERR_LEN]; + + static unsigned int verbose; +@@ -106,7 +112,7 @@ static int master_fprintf(FILE *, char *, ...); + %token MAP + %token OPT_TIMEOUT OPT_NTIMEOUT OPT_NOBIND OPT_NOGHOST OPT_GHOST OPT_VERBOSE + %token OPT_DEBUG OPT_RANDOM OPT_USE_WEIGHT OPT_SYMLINK OPT_MODE +-%token OPT_STRICTEXPIRE OPT_SLAVE OPT_PRIVATE ++%token OPT_STRICTEXPIRE OPT_SHARED OPT_SLAVE OPT_PRIVATE + %token COLON COMMA NL DDASH + %type map + %type options +@@ -208,6 +214,7 @@ line: + | PATH OPT_TIMEOUT { master_notify($1); YYABORT; } + | PATH OPT_SYMLINK { master_notify($1); YYABORT; } + | PATH OPT_STRICTEXPIRE { master_notify($1); YYABORT; } ++ | PATH OPT_SHARED { master_notify($1); YYABORT; } + | PATH OPT_SLAVE { master_notify($1); YYABORT; } + | PATH OPT_PRIVATE { master_notify($1); YYABORT; } + | PATH OPT_NOBIND { master_notify($1); YYABORT; } +@@ -622,8 +629,9 @@ daemon_option: OPT_TIMEOUT NUMBER { timeout = $2; } + | OPT_NTIMEOUT NUMBER { negative_timeout = $2; } + | OPT_SYMLINK { symlnk = 1; } + | OPT_STRICTEXPIRE { strictexpire = 1; } +- | OPT_SLAVE { slave = 1; } +- | OPT_PRIVATE { private = 1; } ++ | OPT_SHARED { propagation = PROPAGATION_SHARED; } ++ | OPT_SLAVE { propagation = PROPAGATION_SLAVE; } ++ | OPT_PRIVATE { propagation = PROPAGATION_PRIVATE; } + | OPT_NOBIND { nobind = 1; } + | OPT_NOGHOST { ghost = 0; } + | OPT_GHOST { ghost = 1; } +@@ -697,8 +705,7 @@ static void local_init_vars(void) + negative_timeout = 0; + symlnk = 0; + strictexpire = 0; +- slave = 0; +- private = 0; ++ propagation = PROPAGATION_SLAVE; + nobind = 0; + ghost = defaults_get_browse_mode(); + random_selection = global_selection_options & MOUNT_FLAG_RANDOM_SELECT; +@@ -888,7 +895,6 @@ int master_parse_entry(const char *buffer, unsigned int default_timeout, unsigne + ghost = 1; + } + +- + if (!entry->ap) { + ret = master_add_autofs_point(entry, logopt, nobind, ghost, 0); + if (!ret) { +@@ -899,6 +905,9 @@ int master_parse_entry(const char *buffer, unsigned int default_timeout, unsigne + return 0; + } + } ++ entry->ap->flags &= ~(PROPAGATION_MASK); ++ entry->ap->flags |= propagation; ++ + if (random_selection) + entry->ap->flags |= MOUNT_FLAG_RANDOM_SELECT; + if (use_weight) +@@ -907,10 +916,6 @@ int master_parse_entry(const char *buffer, unsigned int default_timeout, unsigne + entry->ap->flags |= MOUNT_FLAG_SYMLINK; + if (strictexpire) + entry->ap->flags |= MOUNT_FLAG_STRICTEXPIRE; +- if (slave) +- entry->ap->flags |= MOUNT_FLAG_SLAVE; +- if (private) +- entry->ap->flags |= MOUNT_FLAG_PRIVATE; + if (negative_timeout) + entry->ap->negative_timeout = negative_timeout; + if (mode && mode < LONG_MAX) +diff --git a/lib/master_tok.l b/lib/master_tok.l +index 7486710b..87a6b958 100644 +--- a/lib/master_tok.l ++++ b/lib/master_tok.l +@@ -389,6 +389,7 @@ MODE (--mode{OPTWS}|--mode{OPTWS}={OPTWS}) + -?symlink { return(OPT_SYMLINK); } + -?nobind { return(OPT_NOBIND); } + -?nobrowse { return(OPT_NOGHOST); } ++ -?shared { return(OPT_SHARED); } + -?slave { return(OPT_SLAVE); } + -?private { return(OPT_PRIVATE); } + -?strictexpire { return(OPT_STRICTEXPIRE); } +diff --git a/man/auto.master.5.in b/man/auto.master.5.in +index 6e510a59..2a0b672a 100644 +--- a/man/auto.master.5.in ++++ b/man/auto.master.5.in +@@ -208,17 +208,18 @@ applications scanning the mount tree. Note that this doesn't completely + resolve the problem of expired automounts being immediately re-mounted + due to application accesses triggered by the expire itself. + .TP +-.I slave \fPor\fI private ++.I slave\fP, \fIprivate\fP or \fIshared\fP + This option allows mount propagation of bind mounts to be set to +-either \fIslave\fP or \fIprivate\fP. This option may be needed when using +-multi-mounts that have bind mounts that bind to a file system that is +-propagation shared. This is because the bind mount will have the same +-properties as its target which causes problems for offset mounts. When +-this happens an unwanted offset mount is propagated back to the target +-file system resulting in a deadlock when attempting to access the offset. ++\fIslave\fP, \fIprivate\fP or \fIshared\fP. This option defaults to ++\fIslave\fP if no option is given. When using multi-mounts that have ++bind mounts the bind mount will have the same properties as its parent ++which is commonly propagation \fIshared\fP. And if the mount target is ++also propagation \fIshared\fP this can lead to a deadlock when attempting ++to access the offset mounts. When this happens an unwanted offset mount ++is propagated back to the target file system resulting in a deadlock ++since the automount target is itself an (unwanted) automount trigger. + This option is an autofs pseudo mount option that can be used in the +-master map only. By default, bind mounts will inherit the mount propagation +-of the target file system. ++master map only. + .TP + .I "\-r, \-\-random-multimount-selection" + Enables the use of random selection when choosing a host from a +diff --git a/modules/mount_bind.c b/modules/mount_bind.c +index 9cba0d7a..5253501c 100644 +--- a/modules/mount_bind.c ++++ b/modules/mount_bind.c +@@ -153,6 +153,7 @@ int mount_mount(struct autofs_point *ap, const char *root, const char *name, int + + if (!symlnk && bind_works) { + int status, existed = 1; ++ int flags; + + debug(ap->logopt, MODPREFIX "calling mkdir_path %s", fullpath); + +@@ -190,24 +191,27 @@ int mount_mount(struct autofs_point *ap, const char *root, const char *name, int + what, fstype, fullpath); + } + +- if (ap->flags & (MOUNT_FLAG_SLAVE | MOUNT_FLAG_PRIVATE)) { +- int flags = MS_SLAVE; +- +- if (ap->flags & MOUNT_FLAG_PRIVATE) +- flags = MS_PRIVATE; +- +- /* The bind mount has succeeded but if the target +- * mount is propagation shared propagation of child +- * mounts (autofs offset mounts for example) back to +- * the target of the bind mount must be avoided or +- * autofs trigger mounts will deadlock. +- */ +- err = mount(NULL, fullpath, NULL, flags, NULL); +- if (err) { +- warn(ap->logopt, +- "failed to set propagation for %s", +- fullpath, root); +- } ++ /* The bind mount has succeeded, now set the mount propagation. ++ * ++ * The default is propagation shared, change it if the master ++ * map entry has a different option specified. ++ */ ++ flags = MS_SLAVE; ++ if (ap->flags & MOUNT_FLAG_PRIVATE) ++ flags = MS_PRIVATE; ++ else if (ap->flags & MOUNT_FLAG_SHARED) ++ flags = MS_SHARED; ++ ++ /* Note: If the parent mount is propagation shared propagation ++ * of child mounts (autofs offset mounts for example) back to ++ * the target of the bind mount can happen in some cases and ++ * must be avoided or autofs trigger mounts will deadlock. ++ */ ++ err = mount(NULL, fullpath, NULL, flags, NULL); ++ if (err) { ++ warn(ap->logopt, ++ "failed to set propagation for %s", ++ fullpath, root); + } + + return 0; diff --git a/autofs-5.1.6-mount_nfs_c-fix-local-rdma-share-not-mounting.patch b/autofs-5.1.6-mount_nfs_c-fix-local-rdma-share-not-mounting.patch new file mode 100644 index 0000000..bb9752a --- /dev/null +++ b/autofs-5.1.6-mount_nfs_c-fix-local-rdma-share-not-mounting.patch @@ -0,0 +1,54 @@ +autofs-5.1.6 - mount_nfs.c fix local rdma share not mounting + +From: Achilles Gaikwad + +When using the same system as nfs-server and nfs-client, and +using `nobind` option for autofs we would fall to the code where +we let `mount.nfs(8)` to handle the mount. However, when the +nfs-server and the nfs-client is the same system we end up calling +`rpc_ping` which gives negative return code. Due to this we fall to +the label next: and never attempt a mount of nfs share. +This patch fixes this BUG by not probing rpc_ping if we're +using rdma. + +Signed-off-by: Achilles Gaikwad +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + + modules/mount_nfs.c | 11 ++++++++--- + 2 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index 2565b04d..4dc1b179 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -11,6 +11,7 @@ xx/xx/2020 autofs-5.1.7 + - initialize struct addrinfo for getaddrinfo() calls. + - fix quoted string length calc in expandsunent(). + - fix autofs mount options construction. ++- mount_nfs.c fix local rdma share not mounting. + + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. +diff --git a/modules/mount_nfs.c b/modules/mount_nfs.c +index 4e3e703f..f1b3fb3a 100644 +--- a/modules/mount_nfs.c ++++ b/modules/mount_nfs.c +@@ -375,9 +375,14 @@ dont_probe: + */ + if (this->proximity == PROXIMITY_LOCAL) { + char *host = this->name ? this->name : "localhost"; +- int ret; +- +- ret = rpc_ping(host, port, vers, 2, 0, RPC_CLOSE_DEFAULT); ++ int ret = 1; ++ ++ /* If we're using RDMA, rpc_ping will fail when ++ * nfs-server is local. Therefore, don't probe ++ * when we're using RDMA. ++ */ ++ if(!rdma) ++ ret = rpc_ping(host, port, vers, 2, 0, RPC_CLOSE_DEFAULT); + if (ret <= 0) + goto next; + } diff --git a/autofs-5.1.6-remove-intr-hosts-map-mount-option.patch b/autofs-5.1.6-remove-intr-hosts-map-mount-option.patch new file mode 100644 index 0000000..cb41133 --- /dev/null +++ b/autofs-5.1.6-remove-intr-hosts-map-mount-option.patch @@ -0,0 +1,125 @@ +autofs-5.1.6 - remove intr hosts map mount option + +From: Ian Kent + +Don't use the intr option on NFS mounts by default, it's been ignored +by the kernel for a long time now. + +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + + man/auto.master.5.in | 4 ++-- + man/autofs.5 | 4 ++-- + modules/parse_sun.c | 9 +++------ + samples/auto.misc | 2 +- + samples/auto.net | 2 +- + 6 files changed, 10 insertions(+), 12 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index 106b811c..fa5992aa 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -6,6 +6,7 @@ xx/xx/2020 autofs-5.1.7 + - fix a regression with map instance lookup. + - correct fsf address. + - samples: fix Makefile targets' directory dependencies ++- remove intr hosts map mount option. + + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. +diff --git a/man/auto.master.5.in b/man/auto.master.5.in +index 2a0b672a..72fbfd23 100644 +--- a/man/auto.master.5.in ++++ b/man/auto.master.5.in +@@ -262,8 +262,8 @@ For example, with an entry in the master map of + accessing /net/myserver will mount exports from myserver on directories below + /net/myserver. + .P +-NOTE: mounts done from a hosts map will be mounted with the "nosuid,nodev,intr" options +-unless overridden by explicitly specifying the "suid", "dev" or "nointr" options in the ++NOTE: mounts done from a hosts map will be mounted with the "nosuid,nodev" options ++unless overridden by explicitly specifying the "suid", "dev" options in the + master map entry. + .SH LDAP MAPS + If the map type \fBldap\fP is specified the mapname is of the form +diff --git a/man/autofs.5 b/man/autofs.5 +index d32e772e..569a2683 100644 +--- a/man/autofs.5 ++++ b/man/autofs.5 +@@ -86,13 +86,13 @@ Indirect map: + .RS +.2i + .ta 1.0i 3.0i + .nf +-kernel \-ro,soft,intr ftp.kernel.org:/pub/linux ++kernel \-ro,soft ftp.kernel.org:/pub/linux + boot \-fstype=ext2 :/dev/hda1 + windoze \-fstype=smbfs ://windoze/c + removable \-fstype=ext2 :/dev/hdd + cd \-fstype=iso9660,ro :/dev/hdc + floppy \-fstype=auto :/dev/fd0 +-server \-rw,hard,intr / \-ro myserver.me.org:/ \\ ++server \-rw,hard / \-ro myserver.me.org:/ \\ + /usr myserver.me.org:/usr \\ + /home myserver.me.org:/home + .fi +diff --git a/modules/parse_sun.c b/modules/parse_sun.c +index 88dde0b2..71867ef1 100644 +--- a/modules/parse_sun.c ++++ b/modules/parse_sun.c +@@ -618,10 +618,9 @@ static int sun_mount(struct autofs_point *ap, const char *root, + int len = strlen(options); + int suid = strstr(options, "suid") ? 0 : 7; + int dev = strstr(options, "dev") ? 0 : 6; +- int nointr = strstr(options, "nointr") ? 0 : 5; + +- if (suid || dev || nointr) { +- char *tmp = alloca(len + suid + dev + nointr + 1); ++ if (suid || dev) { ++ char *tmp = alloca(len + suid + dev + 1); + if (!tmp) { + error(ap->logopt, MODPREFIX + "alloca failed for options"); +@@ -635,8 +634,6 @@ static int sun_mount(struct autofs_point *ap, const char *root, + strcat(tmp, ",nosuid"); + if (dev) + strcat(tmp, ",nodev"); +- if (nointr) +- strcat(tmp, ",intr"); + options = tmp; + } + } else { +@@ -648,7 +645,7 @@ static int sun_mount(struct autofs_point *ap, const char *root, + return -1; + return 1; + } +- strcpy(tmp, "nosuid,nodev,intr"); ++ strcpy(tmp, "nosuid,nodev"); + options = tmp; + } + } +diff --git a/samples/auto.misc b/samples/auto.misc +index 0ee5e75f..fdda0e73 100644 +--- a/samples/auto.misc ++++ b/samples/auto.misc +@@ -6,7 +6,7 @@ + cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom + + # the following entries are samples to pique your imagination +-#linux -ro,soft,intr ftp.example.org:/pub/linux ++#linux -ro,soft ftp.example.org:/pub/linux + #boot -fstype=ext2 :/dev/hda1 + #floppy -fstype=auto :/dev/fd0 + #floppy -fstype=ext2 :/dev/fd0 +diff --git a/samples/auto.net b/samples/auto.net +index 0384f611..c5b145d5 100755 +--- a/samples/auto.net ++++ b/samples/auto.net +@@ -9,7 +9,7 @@ key="$1" + + # add "nosymlink" here if you want to suppress symlinking local filesystems + # add "nonstrict" to make it OK for some filesystems to not mount +-opts="-fstype=nfs,hard,intr,nodev,nosuid" ++opts="-fstype=nfs,hard,nodev,nosuid" + + for P in /bin /sbin /usr/bin /usr/sbin + do diff --git a/autofs-5.1.6-update-ldap-READMEs-and-schema-definitions.patch b/autofs-5.1.6-update-ldap-READMEs-and-schema-definitions.patch new file mode 100644 index 0000000..109182f --- /dev/null +++ b/autofs-5.1.6-update-ldap-READMEs-and-schema-definitions.patch @@ -0,0 +1,885 @@ +autofs-5.1.6 - update ldap READMEs and schema definitions + +From: Ian Kent + +The autofs schema in samples/autofs.schema should not be used for +autofs map information, it's very old and may be inaccurate or may +conflict with other schema definitions included in LDAP server +distributions. + +The README.autofs-schema has been updated to alert people to this +but the schema file has not yet been removed. + +A new README.ldap-schema has been added which recommends using either +of rfc2307 or rfc2307bis schema for autofs Sun format map information +stored in LDAP and at least one of these schema should be included in +LDAP server distributions. Additionally the README notes the schema +that needs to be used for autofs amd format maps is present in the +file samples/am-utils-ldap.schema. + +Ian + +Signed-off-by: Ian Kent +--- + CHANGELOG | 1 + README.autofs-schema | 8 - + README.ldap-schema | 14 ++ + autofs.spec | 3 + samples/am-utils-ldap-id.txt | 360 ++++++++++++++++++++++++++++++++++++++++++ + samples/am-utils-ldap.schema | 52 ++++++ + samples/rfc2307.schema | 37 ++++ + samples/rfc2307bis.schema | 310 ++++++++++++++++++++++++++++++++++++ + 8 files changed, 780 insertions(+), 5 deletions(-) + create mode 100644 README.ldap-schema + create mode 100644 samples/am-utils-ldap-id.txt + create mode 100644 samples/am-utils-ldap.schema + create mode 100644 samples/rfc2307.schema + create mode 100644 samples/rfc2307bis.schema + +diff --git a/CHANGELOG b/CHANGELOG +index f5a1a0e3..981a0333 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -1,5 +1,6 @@ + xx/xx/2020 autofs-5.1.7 + - make bind mounts propagation slave by default. ++- update ldap READMEs and schema definitions. + + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. +diff --git a/README.autofs-schema b/README.autofs-schema +index c121e1c3..b8c6d6a5 100644 +--- a/README.autofs-schema ++++ b/README.autofs-schema +@@ -9,10 +9,10 @@ not clear what schema to use for Linux autofs information. + + The schema was corrected somewhere along the line but the autofs + distribution copy was never updated. The schema has now been +-updated but it is not recommended for use as the schema for autofs +-map information. ++updated but may not be accurate and may conflict with other LDAP ++schemas so it is not recommended for use for autofs map information. + +-The rfc2307 or, preferably the, rfc2307bis schema is the recommened +-schema to use. ++The rfc2307 or the rfc2307bis schema is the recommened schema to ++use, based on requirements. + + Ian +diff --git a/README.ldap-schema b/README.ldap-schema +new file mode 100644 +index 00000000..6cb0ba1c +--- /dev/null ++++ b/README.ldap-schema +@@ -0,0 +1,14 @@ ++LDAP Schema ++=========== ++ ++LDAP Schema definitions may be found in the samples sub-directory. ++ ++The ldap schema rfc2307.schema and rfc2307bis.schema may be used by ++autofs for Sun format automount maps, the choice of which is used is ++dependent on user needs. They are included for reference only as at ++least one of these should be included in LDAP server distributions. ++ ++The ldap schema am-utils-ldap.schema and am-utils-ldap-id.txt describe ++the schema used by autofs for amd format maps. ++ ++Ian +diff --git a/autofs.spec b/autofs.spec +index 18e93a8d..22e7adf4 100644 +--- a/autofs.spec ++++ b/autofs.spec +@@ -194,7 +194,8 @@ fi + + %files + %defattr(-,root,root) +-%doc CREDITS CHANGELOG INSTALL COPY* README* samples/ldap* samples/autofs.schema samples/autofs_ldap_auth.conf ++%doc CREDITS CHANGELOG INSTALL COPY* README* samples/ldap* samples/*.schema ++%doc samples/am-utils-ldap-id.txt samples/autofs_ldap_auth.conf + %config %{init_file_name} + %config(noreplace) /etc/auto.master + %config(noreplace) /etc/autofs.conf +diff --git a/samples/am-utils-ldap-id.txt b/samples/am-utils-ldap-id.txt +new file mode 100644 +index 00000000..33a9187b +--- /dev/null ++++ b/samples/am-utils-ldap-id.txt +@@ -0,0 +1,360 @@ ++ ++ ++ ++ ++ ++ ++INTERNET-DRAFT Leif Johansson ++Intented Category: Experimental Stockholm University ++ ++ ++ ++ A directory (X.500 and LDAPv3) schema for Berkely automounter ++ ++ ++1. Status of this Memo ++ ++ This memo describes a directory (LDAP or X.500) schema for storing amd (Berkely- ++ style automounter) mount info maps. The schema is currently beeing supported by ++ the (beta version of the) am-utils version 6 package [AMUTILS]. ++ ++2. Overview and Rationale ++ ++ Directory services such as X.500 [X500] or LDAP [RFC2251] are a natural choice of ++ repository for amd mount map databases. All Object Identifiers in this document ++ are prefixed by amdSchema-id to be assigned later. The relation between this ++ schema and the automount schema elements in [HOWARD] are mostly superficial. The ++ model for the elements in [HOWARD] was the SUN automounter which has quite a ++ different syntax for mount maps. Furthermore the intended usage of this schema ++ differs from that of [HOWARD] in many respects. ++ ++3. DSA requirements ++ ++ Directory servers implementing this schema SHOULD maintain the modifyTimestamp ++ operational attribute. If not the amdMapCacheTtl attribute SHOULD be set to 0 ++ indicating to clients that caching of map entries SHOULD be turned off. Clients ++ wishing to use the amdMap schema MAY use the modifyTimestamp information to set ++ the ttl for internal caching schemes. A value of 0 for the amdMapCacheTtl must ++ result in clients turning off any local caching. ++ ++4. Syntax definitions ++ ++ The following attribute syntax is defined in this document: ++ ++ amdlocationlist ++ ++ This syntax represents a amd map value. This is the syntax expressed in BNF using ++ definitions from [RFC2252]: ++ ++ amdlocationlist = amdlocationselection | ++ amdlocationlist whsp "||" whsp amdlocationselection ++ ++ amdlocationselection = amdlocation | ++ amdlocationselection whsp amdlocation ++ ++ ++ ++ ++Johansson [Page 1] ++ ++ ++ ++ ++ ++Internet draft Berkeley AMD LDAP Schema 30 March 1998 ++ ++ ++ amdlocation = amdlocationinfo | ++ "-" amdlocationinfo | ++ "-" ++ ++ amdlocationinfo = seloropt | ++ amdlocationinfo ";" seloropt | ++ ";" ++ ++ seloropt = seletion | ++ optass ++ ++ selection = keystring "==" printablestring ++ keystring "!=" printablestring ++ ++ optass = keystring ++ ++ X.500 servers or LDAPv3 servers (supporting the binary attribute option) may use ++ the following syntax definition: ++ ++ AmdLocationList ::= SEQUENCE OF { ++ SEQUENCE OF { ++ location AmdLocation ++ } ++ } ++ ++ AmdLocation ::= SET OF { ++ CHOICE { ++ location [0] AmdLocationInfo ++ notlocation [1] AmdLocationInfo ++ not [2] NULL ++ } ++ } ++ ++ AmdLocationInfo ::= SET OF { ++ CHOICE { ++ selection [0] AmdSelection ++ option [1] AmdOption ++ } ++ } ++ ++ AmdSelection ::= CHOICE { ++ eq [0] AttributeAndValue ++ ne [1] AttributeAndValue ++ } ++ ++ AmdOption ::= AttributeAndValue ++ AttributeAndValue ::= SEQUENCE { ++ attribute IA5String ++ ++ ++ ++Johansson [Page 2] ++ ++ ++ ++ ++ ++Internet draft Berkeley AMD LDAP Schema 30 March 1998 ++ ++ ++ value IA5String ++ } ++ ++5. Attribute types ++ ++ The following attribute types are defined in this document: ++ ++ amdMapName ++ amdMapCacheTtl ++ amdMapEntry ++ amdMapEntryKey ++ amdMapEntryValue ++ ++ amdSchema-a OBJECT IDENTIFIER ::= { amdSchema-id 1 } ++ ++ amdMapName ATTRIBUTE ::= { ++ WITH SYNTAX IA5String ++ EQUALITY MATCHING RULE caseIgoreExactMatch ++ --ID { amdSchema-a 1 } ++ DESCRIPTION ++ "This attribute is the symbolic and in the naming ++ context unique name of an amd map. This corresponds ++ in the case of a flat file database to the name of ++ the file or the mount-point of the map." ++ } ++ ++ ++ amdMapCacheTtl ++ ATTRIBUTE ::= { ++ WITH SYNTAX Integer ++ EQUALITY MATCHING RULE integerExactMatch ++ --ID { amdSchema-a 2 } ++ SINGLE VALUED ++ DESCRIPTION ++ "The maximum time-to-live for the entries in this ++ map. After this many milliseconds the map has to ++ be cleared from local caches and reloaded. A value ++ of 0 disables caching." ++ } ++ ++ amdMapEntry ++ ATTRIBUTE ::= { ++ WITH SYNTAX DistinguishedName ++ EQUALITY MATHCING RULE dNCaseIgnoreExactMatch ++ --ID { amdSchema-a 3 } ++ DESCRIPTION ++ "A multivalued attribute listing the distinguished ++ names of the amdMapEntries making up this amdMap ++ ++ ++ ++Johansson [Page 3] ++ ++ ++ ++ ++ ++Internet draft Berkeley AMD LDAP Schema 30 March 1998 ++ ++ ++ object." ++ } ++ ++ amdMapEntryKey ::= { ++ ATTRIBUTE ::= { ++ WITH SYNTAX IA5String ++ EQUALITY MATCHING RULE stringExactMatch ++ --ID { amdSchema-a 4 } ++ SINGLE VALUED ++ DESCRIPTION ++ "The value of this attribute is usually the name of ++ a mountpoint for this amdMapEntry." ++ } ++ ++ amdMapEntryValue ::= { ++ ATTRIBUTE ::= { ++ WITH SYNTAX AmdLocationList ++ --ID { amdSchema-a 5 } ++ DESCRIPTION ++ "This is the actual mount information for the amdMapEntry ++ using the syntax described above." ++ } ++ ++ amdMapEntryKey ::= { ++ ATTRIBUTE ::= { ++ WITH SYNTAX IA5String ++ EQUALITY MATCHING RULE stringExactMatch ++ --ID { amdSchema-a 4 } ++ SINGLE VALUED ++ DESCRIPTION ++ "The value of this attribute is usually the name of ++ a mountpoint for this amdMapEntry." ++ } ++ ++ amdMapEntryValue ::= { ++ ATTRIBUTE ::= { ++ WITH SYNTAX AmdLocationList ++ --ID { amdSchema-a 5 } ++ DESCRIPTION ++ "This is the actual mount information for the amdMapEntry ++ using the syntax described above." ++ } ++ ++6. Object classes ++ ++ The following object classes are defined in this document: ++ ++ amdMap ++ ++ ++ ++Johansson [Page 4] ++ ++ ++ ++ ++ ++Internet draft Berkeley AMD LDAP Schema 30 March 1998 ++ ++ ++ amdMapEntry ++ ++ defined as follows: ++ ++ amdSchema-oc ::= { amdSchema-id 2 } ++ ++ amdMap OBJECT-CLASS ::= { ++ SUBCLASS OF { top } ++ KIND auxiliary ++ --ID { amdSchema-oc 1 } ++ MAY CONTAIN { amdMapCacheTtl , cn } ++ MUST CONTAIN { amdMapName , amdMapEntry } ++ } ++ ++ amdMapEntry OBJECT-CLASS ::= { ++ SUBCLASS OF { top } ++ KIND structural ++ --ID { amdSchema-oc 2 } ++ MUST CONTAIN { ++ amdMapName , ++ amdEntryKey , ++ amdEntryValue , ++ } MAY CONTAIN ++ { cn } DESCRIPTION "An entry of this ++ object class describes mount information relative to a ++ certain amdMap entry" ++ } ++ ++7. Examples ++ ++ ++ ++8. Security Considerations ++ ++ Due to the security problems posed by NFS care should be taken not to advertise ++ exported filesystems. Therefore it is often desirable to limit access to entries ++ carrying amd mount map information to those systems to which the corresponding ++ filesystems have been exported. ++ ++9. References ++ ++ [AMUTILS] ++ am-utils homepage: http://shekel.cs.columbia.edu/~erez/am-utils.html ++ ++ [RFC2251] ++ M. Wahl, T. Howes, S. Kille, "Lightweight Directory Access ++ Protocol (v3)", RFC 2251, December 1997. ++ ++ ++ ++ ++Johansson [Page 5] ++ ++ ++ ++ ++ ++Internet draft Berkeley AMD LDAP Schema 30 March 1998 ++ ++ ++ [RFC2252] ++ M. Wahl, A. Coulbeck, T. Howes, S. Kille, "Lightweight Directory ++ Access Protocol (v3): Attribute Syntax Definitions", RFC 2252, ++ December 1997. ++ ++ [RFC2253] ++ M. Wahl, S. Kille, T. Howes, "Lightweight Directory Access ++ Protocol (v3): UTF-8 String Representation of Distinguished ++ Names", RFC 2253, December 1997. ++ ++ [HOWARD] ++ Luke Howard, "An Approach for Using LDAP as a Network ++ Information Service", draft-howard-nis-schema-??.txt, Internet ++ draft. ++ ++ [X500] ++ ITU something or other. ++ ++ ++ ++Author's Address ++ ++ ++ Leif Johansson ++ Department of Mathematics ++ Stockholm University ++ S-106 91 Stockholm ++ SWEDEN ++ ++ Email: leifj AT matematik.su.se ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Johansson [Page 6] ++ ++ +diff --git a/samples/am-utils-ldap.schema b/samples/am-utils-ldap.schema +new file mode 100644 +index 00000000..9594d2fe +--- /dev/null ++++ b/samples/am-utils-ldap.schema +@@ -0,0 +1,52 @@ ++# A schema for the Berkeley automounter (AMD) ++# Authored by Erez Zadok and/or source maintainers ++# Definition by Tim Colles ++# Revised by Adam Morley ++ ++# OID Base is 1.3.6.1.4.1.10180 ++# ++# Syntaxes are under 1.3.6.1.4.1.10180.3.175-199 ++# Attribute types are under 1.3.6.1.4.1.10180.2.175-199 ++# Object classes are under 1.3.6.1.4.1.10180.1.175-199 ++ ++# Attribute Type Definitions ++ ++attributetype ( 1.3.6.1.4.1.10180.2.175 ++ NAME 'amdmapTimestamp' ++ DESC 'Probably the time the map was last modified' ++ EQUALITY integerMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ++ SINGLE-VALUE ) ++ ++attributetype ( 1.3.6.1.4.1.10180.2.176 ++ NAME 'amdmapName' ++ DESC 'The symbolic name of the map, ie. map_name' ++ EQUALITY caseIgnoreMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ++ SINGLE-VALUE ) ++ ++attributetype ( 1.3.6.1.4.1.10180.2.177 ++ NAME 'amdmapKey' ++ DESC 'The key value for this entry' ++ EQUALITY caseIgnoreMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ++ SINGLE-VALUE ) ++ ++attributetype ( 1.3.6.1.4.1.10180.2.178 ++ NAME 'amdmapValue' ++ DESC 'The mount information for this entry' ++ EQUALITY caseIgnoreMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ++ SINGLE-VALUE ) ++ ++# Object Class Definitions ++ ++objectclass ( 1.3.6.1.4.1.10180.1.175 NAME 'amdmapTimestamp' ++ SUP top STRUCTURAL ++ DESC 'Timestamp for an AMD map' ++ MUST ( cn $ amdmapName $ amdmapTimestamp ) ) ++ ++objectclass ( 1.3.6.1.4.1.10180.1.176 NAME 'amdmap' ++ SUP top STRUCTURAL ++ DESC 'Defines an AMD map entry' ++ MUST ( cn $ amdmapName $ amdmapKey $ amdmapValue ) ) +diff --git a/samples/rfc2307.schema b/samples/rfc2307.schema +new file mode 100644 +index 00000000..e8b15edf +--- /dev/null ++++ b/samples/rfc2307.schema +@@ -0,0 +1,37 @@ ++attributeType ( 1.3.6.1.1.1.1.31 ++ NAME 'automountMapName' ++ DESC 'automount Map Name' ++ EQUALITY caseExactIA5Match ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ++ X-ORIGIN 'user defined' ) ++ ++attributeType ( 1.3.6.1.1.1.1.32 ++ NAME 'automountKey' ++ DESC 'Automount Key value' ++ EQUALITY caseExactIA5Match ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ++ X-ORIGIN 'user defined' ) ++ ++attributeType ( 1.3.6.1.1.1.1.33 ++ NAME 'automountInformation' ++ DESC 'Automount information' ++ EQUALITY caseExactIA5Match ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ++ X-ORIGIN 'user defined' ) ++ ++objectClass ( 1.3.6.1.1.1.2.16 ++ NAME 'automountMap' ++ DESC 'Automount Map information' ++ SUP top STRUCTURAL ++ MUST automountMapName ++ MAY description ++ X-ORIGIN 'user defined' ) ++ ++objectClass ( 1.3.6.1.1.1.2.17 ++ NAME 'automount' ++ DESC 'Automount information' ++ SUP top STRUCTURAL ++ MUST ( automountKey $ automountInformation ) ++ MAY description ++ X-ORIGIN 'user defined' ) ++ +diff --git a/samples/rfc2307bis.schema b/samples/rfc2307bis.schema +new file mode 100644 +index 00000000..a626b3fe +--- /dev/null ++++ b/samples/rfc2307bis.schema +@@ -0,0 +1,310 @@ ++### ++# Extracted from: http://tools.ietf.org/html/draft-howard-rfc2307bis-02 ++### ++ ++# Builtin ++#attributeType ( 1.3.6.1.1.1.1.0 NAME 'uidNumber' ++# DESC 'An integer uniquely identifying a user in an ++# administrative domain' ++# EQUALITY integerMatch ++# ORDERING integerOrderingMatch ++# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ++# SINGLE-VALUE ) ++ ++# Builtin ++#attributeType ( 1.3.6.1.1.1.1.1 NAME 'gidNumber' ++# DESC 'An integer uniquely identifying a group in an ++# administrative domain' ++# EQUALITY integerMatch ++# ORDERING integerOrderingMatch ++# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ++# SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.2 NAME 'gecos' ++ DESC 'The GECOS field; the common name' ++ EQUALITY caseIgnoreMatch ++ SUBSTR caseIgnoreSubstringsMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.3 NAME 'homeDirectory' ++ DESC 'The absolute path to the home directory' ++ EQUALITY caseExactIA5Match ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.4 NAME 'loginShell' ++ DESC 'The path to the login shell' ++ EQUALITY caseExactIA5Match ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.5 NAME 'shadowLastChange' ++ EQUALITY integerMatch ++ ORDERING integerOrderingMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.6 NAME 'shadowMin' ++ EQUALITY integerMatch ++ ORDERING integerOrderingMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.7 NAME 'shadowMax' ++ EQUALITY integerMatch ++ ORDERING integerOrderingMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.8 NAME 'shadowWarning' ++ EQUALITY integerMatch ++ ORDERING integerOrderingMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.9 NAME 'shadowInactive' ++ EQUALITY integerMatch ++ ORDERING integerOrderingMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.10 NAME 'shadowExpire' ++ EQUALITY integerMatch ++ ORDERING integerOrderingMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.11 NAME 'shadowFlag' ++ EQUALITY integerMatch ++ ORDERING integerOrderingMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.12 NAME 'memberUid' ++ EQUALITY caseExactMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) ++ ++attributeType ( 1.3.6.1.1.1.1.13 NAME 'memberNisNetgroup' ++ EQUALITY caseExactMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) ++ ++attributeType ( 1.3.6.1.1.1.1.14 NAME 'nisNetgroupTriple' ++ DESC 'Netgroup triple' ++ EQUALITY caseIgnoreMatch ++ SUBSTR caseIgnoreSubstringsMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) ++ ++attributeType ( 1.3.6.1.1.1.1.15 NAME 'ipServicePort' ++ DESC 'Service port number' ++ EQUALITY integerMatch ++ ORDERING integerOrderingMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.16 NAME 'ipServiceProtocol' ++ DESC 'Service protocol name' ++ EQUALITY caseIgnoreMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) ++ ++attributeType ( 1.3.6.1.1.1.1.17 NAME 'ipProtocolNumber' ++ DESC 'IP protocol number' ++ EQUALITY integerMatch ++ ORDERING integerOrderingMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.18 NAME 'oncRpcNumber' ++ DESC 'ONC RPC number' ++ EQUALITY integerMatch ++ ORDERING integerOrderingMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.19 NAME 'ipHostNumber' ++ DESC 'IPv4 addresses as a dotted decimal omitting leading ++ zeros or IPv6 addresses as defined in RFC2373' ++ EQUALITY caseIgnoreIA5Match ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) ++ ++attributeType ( 1.3.6.1.1.1.1.20 NAME 'ipNetworkNumber' ++ DESC 'IP network omitting leading zeros, eg. 192.168' ++ EQUALITY caseIgnoreIA5Match ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.21 NAME 'ipNetmaskNumber' ++ DESC 'IP netmask omitting leading zeros, eg. 255.255.255.0' ++ EQUALITY caseIgnoreIA5Match ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.22 NAME 'macAddress' ++ DESC 'MAC address in maximal, colon separated hex ++ notation, eg. 00:00:92:90:ee:e2' ++ EQUALITY caseIgnoreIA5Match ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) ++ ++attributeType ( 1.3.6.1.1.1.1.23 NAME 'bootParameter' ++ DESC 'rpc.bootparamd parameter' ++ EQUALITY caseExactIA5Match ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) ++ ++attributeType ( 1.3.6.1.1.1.1.24 NAME 'bootFile' ++ DESC 'Boot image name' ++ EQUALITY caseExactIA5Match ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) ++ ++attributeType ( 1.3.6.1.1.1.1.26 NAME 'nisMapName' ++ DESC 'Name of a generic NIS map' ++ EQUALITY caseIgnoreMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} ) ++ ++attributeType ( 1.3.6.1.1.1.1.27 NAME 'nisMapEntry' ++ DESC 'A generic NIS entry' ++ EQUALITY caseExactMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.28 NAME 'nisPublicKey' ++ DESC 'NIS public key' ++ EQUALITY octetStringMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.29 NAME 'nisSecretKey' ++ DESC 'NIS secret key' ++ EQUALITY octetStringMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.30 NAME 'nisDomain' ++ DESC 'NIS domain' ++ EQUALITY caseIgnoreIA5Match ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) ++ ++attributeType ( 1.3.6.1.1.1.1.31 NAME 'automountMapName' ++ DESC 'automount Map Name' ++ EQUALITY caseExactMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.32 NAME 'automountKey' ++ DESC 'Automount Key value' ++ EQUALITY caseExactMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ++ SINGLE-VALUE ) ++ ++attributeType ( 1.3.6.1.1.1.1.33 NAME 'automountInformation' ++ DESC 'Automount information' ++ EQUALITY caseExactMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ++ SINGLE-VALUE ) ++ ++objectClass ( 1.3.6.1.1.1.2.0 NAME 'posixAccount' SUP top AUXILIARY ++ DESC 'Abstraction of an account with POSIX attributes' ++ MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory ) ++ MAY ( userPassword $ loginShell $ gecos $ ++ description ) ) ++ ++objectClass ( 1.3.6.1.1.1.2.1 NAME 'shadowAccount' SUP top AUXILIARY ++ DESC 'Additional attributes for shadow passwords' ++ MUST uid ++ MAY ( userPassword $ description $ ++ shadowLastChange $ shadowMin $ shadowMax $ ++ shadowWarning $ shadowInactive $ ++ shadowExpire $ shadowFlag ) ) ++ ++objectClass ( 1.3.6.1.1.1.2.2 NAME 'posixGroup' SUP top AUXILIARY ++ DESC 'Abstraction of a group of accounts' ++ MUST gidNumber ++ MAY ( userPassword $ memberUid $ ++ description ) ) ++ ++objectClass ( 1.3.6.1.1.1.2.3 NAME 'ipService' SUP top STRUCTURAL ++ DESC 'Abstraction an Internet Protocol service. ++ Maps an IP port and protocol (such as tcp or udp) ++ to one or more names; the distinguished value of ++ the cn attribute denotes the services canonical ++ name' ++ MUST ( cn $ ipServicePort $ ipServiceProtocol ) ++ MAY description ) ++ ++objectClass ( 1.3.6.1.1.1.2.4 NAME 'ipProtocol' SUP top STRUCTURAL ++ DESC 'Abstraction of an IP protocol. Maps a protocol number ++ to one or more names. The distinguished value of the cn ++ attribute denotes the protocol canonical name' ++ MUST ( cn $ ipProtocolNumber ) ++ MAY description ) ++ ++objectClass ( 1.3.6.1.1.1.2.5 NAME 'oncRpc' SUP top STRUCTURAL ++ DESC 'Abstraction of an Open Network Computing (ONC) ++ [RFC1057] Remote Procedure Call (RPC) binding. ++ This class maps an ONC RPC number to a name. ++ The distinguished value of the cn attribute denotes ++ the RPC service canonical name' ++ MUST ( cn $ oncRpcNumber ) ++ MAY description ) ++ ++objectClass ( 1.3.6.1.1.1.2.6 NAME 'ipHost' SUP top AUXILIARY ++ DESC 'Abstraction of a host, an IP device. The distinguished ++ value of the cn attribute denotes the hosts canonical ++ name. Device SHOULD be used as a structural class' ++ MUST ( cn $ ipHostNumber ) ++ MAY ( userPassword $ l $ description $ ++ manager ) ) ++ ++objectClass ( 1.3.6.1.1.1.2.7 NAME 'ipNetwork' SUP top STRUCTURAL ++ DESC 'Abstraction of a network. The distinguished value of ++ the cn attribute denotes the network canonical name' ++ MUST ipNetworkNumber ++ MAY ( cn $ ipNetmaskNumber $ l $ description $ manager ) ) ++ ++objectClass ( 1.3.6.1.1.1.2.8 NAME 'nisNetgroup' SUP top STRUCTURAL ++ DESC 'Abstraction of a netgroup. May refer to other ++ netgroups' ++ MUST cn ++ MAY ( nisNetgroupTriple $ memberNisNetgroup $ description ) ) ++ ++objectClass ( 1.3.6.1.1.1.2.9 NAME 'nisMap' SUP top STRUCTURAL ++ DESC 'A generic abstraction of a NIS map' ++ MUST nisMapName ++ MAY description ) ++ ++objectClass ( 1.3.6.1.1.1.2.10 NAME 'nisObject' SUP top STRUCTURAL ++ DESC 'An entry in a NIS map' ++ MUST ( cn $ nisMapEntry $ nisMapName ) ) ++ ++objectClass ( 1.3.6.1.1.1.2.11 NAME 'ieee802Device' SUP top AUXILIARY ++ DESC 'A device with a MAC address; device SHOULD be ++ used as a structural class' ++ MAY macAddress ) ++ ++objectClass ( 1.3.6.1.1.1.2.12 NAME 'bootableDevice' SUP top AUXILIARY ++ DESC 'A device with boot parameters; device SHOULD be ++ used as a structural class' ++ MAY ( bootFile $ bootParameter ) ) ++ ++objectClass ( 1.3.6.1.1.1.2.14 NAME 'nisKeyObject' SUP top AUXILIARY ++ DESC 'An object with a public and secret key' ++ MUST ( cn $ nisPublicKey $ nisSecretKey ) ++ MAY ( uidNumber $ description ) ) ++ ++objectClass ( 1.3.6.1.1.1.2.15 NAME 'nisDomainObject' SUP top AUXILIARY ++ DESC 'Associates a NIS domain with a naming context' ++ MUST nisDomain ) ++ ++objectClass ( 1.3.6.1.1.1.2.16 NAME 'automountMap' SUP top STRUCTURAL ++ MUST ( automountMapName ) ++ MAY description ) ++ ++objectClass ( 1.3.6.1.1.1.2.17 NAME 'automount' SUP top STRUCTURAL ++ DESC 'Automount information' ++ MUST ( automountKey $ automountInformation ) ++ MAY description ) ++ ++objectClass ( 1.3.6.1.1.1.2.18 NAME 'groupOfMembers' SUP top STRUCTURAL ++ DESC 'A group with members (DNs)' ++ MUST cn ++ MAY ( businessCategory $ seeAlso $ owner $ ou $ o $ ++ description $ member ) ) diff --git a/autofs-samples-fix-Makefile-targets-directory-dependencies.patch b/autofs-samples-fix-Makefile-targets-directory-dependencies.patch new file mode 100644 index 0000000..3d29645 --- /dev/null +++ b/autofs-samples-fix-Makefile-targets-directory-dependencies.patch @@ -0,0 +1,94 @@ +samples: fix Makefile targets' directory dependencies + +From: Kyle Russell + +Introduce an order-only prerequisite on dirs for targets that actually +use these directories to guarantee they exist at install time; otherwise, +the sample install commands can result in ENOENT in a parallelized make +invocation. + +Signed-off-by: Kyle Russell +--- + CHANGELOG | 1 + + samples/Makefile | 14 +++++++------- + 2 files changed, 8 insertions(+), 7 deletions(-) + +diff --git a/CHANGELOG b/CHANGELOG +index f53f9adf..106b811c 100644 +--- a/CHANGELOG ++++ b/CHANGELOG +@@ -5,6 +5,7 @@ xx/xx/2020 autofs-5.1.7 + - fix browse dir not re-created on symlink expire. + - fix a regression with map instance lookup. + - correct fsf address. ++- samples: fix Makefile targets' directory dependencies + + 07/10/2019 autofs-5.1.6 + - support strictexpire mount option. +diff --git a/samples/Makefile b/samples/Makefile +index e7f242a7..a505b1f9 100644 +--- a/samples/Makefile ++++ b/samples/Makefile +@@ -53,7 +53,7 @@ CONFIG = $(shell test -e $(INSTALLROOT)$(autofsmapdir)/autofs.conf.orig || echo + CEXISTS = $(shell test -e $(INSTALLROOT)$(autofsmapdir)/autofs || echo "no") + + .PHONY: autofs.conf +-autofs.conf: autofs.conf.default ++autofs.conf: autofs.conf.default | dirs + @echo + @echo "Installing autofs default configuation in $(autofsmapdir)" + @if test -z "$(CONFIG)" ; \ +@@ -76,7 +76,7 @@ CINIT = $(shell test -e $(INSTALLROOT)$(autofsconfdir)/autofs.orig || echo "-b - + CIEXISTS = $(shell test -e $(INSTALLROOT)$(autofsconfdir)/autofs || echo "no") + + .PHONY: autofs.sysinit +-autofs.sysinit: autofs.init.conf ++autofs.sysinit: autofs.init.conf | dirs + @echo + @echo "Installing autofs init configuation in $(autofsconfdir)" + @if test -z "$(CINIT)" ; \ +@@ -99,7 +99,7 @@ AUTH = $(shell test -e $(INSTALLROOT)$(autofsmapdir)/autofs_ldap_auth.conf.orig + AEXISTS = $(shell test -e $(INSTALLROOT)$(autofsmapdir)/autofs_ldap_auth.conf || echo "no") + + .PHONY: autofs_ldap_auth.conf +-autofs_ldap_auth.conf: ++autofs_ldap_auth.conf: | dirs + @echo + @echo "Installing autofs ldap auth config \"autofs_ldap_auth.conf\" in $(autofsmapdir)" + @if test -z "$(AUTH)" ; \ +@@ -122,7 +122,7 @@ MASTER = $(shell test -e $(INSTALLROOT)$(autofsmapdir)/auto.master.orig || echo + MEXISTS = $(shell test -e $(INSTALLROOT)$(autofsmapdir)/auto.master || echo "no") + + .PHONY: auto.master +-auto.master: ++auto.master: | dirs + @echo + @echo "Installing autofs default master map in $(autofsmapdir)" + @if test -z "$(MASTER)" ; \ +@@ -145,7 +145,7 @@ MISC = $(shell test -e $(INSTALLROOT)$(autofsmapdir)/auto.misc.orig || echo "-b + IEXISTS = $(shell test -e $(INSTALLROOT)$(autofsmapdir)/auto.misc || echo "no") + + .PHONY: auto.misc +-auto.misc: ++auto.misc: | dirs + @echo + @echo "Installing autofs sample map \"auto.misc\" in $(autofsmapdir)" + @if test -z "$(MISC)" ; \ +@@ -168,7 +168,7 @@ NET = $(shell test -e $(INSTALLROOT)$(autofsmapdir)/auto.net.orig || echo "-b -- + NEXISTS = $(shell test -e $(INSTALLROOT)$(autofsmapdir)/auto.net || echo "no") + + .PHONY: auto.net +-auto.net: ++auto.net: | dirs + @echo + @echo "Installing autofs sample map \"auto.net\" in $(autofsmapdir)" + @if test -z "$(NET)" ; \ +@@ -191,7 +191,7 @@ SMB = $(shell test -e $(INSTALLROOT)$(autofsmapdir)/auto.smb.orig || echo "-b -- + SEXISTS = $(shell test -e $(INSTALLROOT)$(autofsmapdir)/auto.smb || echo "no") + + .PHONY: auto.smb +-auto.smb: ++auto.smb: | dirs + @echo + @echo "Installing autofs sample map \"auto.smb\" in $(autofsmapdir)" + @if test -z "$(SMB)" ; \ diff --git a/autofs.spec b/autofs.spec new file mode 100644 index 0000000..5ff808f --- /dev/null +++ b/autofs.spec @@ -0,0 +1,2202 @@ +# +# $Id: autofs.spec,v 1.11 2003/12/04 15:41:32 raven Exp $ +# +# Use --without systemd in your rpmbuild command or force values to 0 to +# disable them. +%define with_systemd %{?_without_systemd: 0} %{?!_without_systemd: 1} + +Summary: A tool for automatically mounting and unmounting filesystems +Name: autofs +Version: 5.1.6 +Release: 11%{?dist} +Epoch: 1 +License: GPLv2+ +Source: https://www.kernel.org/pub/linux/daemons/autofs/v5/autofs-%{version}.tar.gz +Patch001: autofs-5.1.6-make-bind-mounts-propagation-slave-by-default.patch +Patch002: autofs-5.1.6-update-ldap-READMEs-and-schema-definitions.patch +Patch003: autofs-5.1.6-fix-program-map-multi-mount-lookup-after-mount-fail.patch +Patch004: autofs-5.1.6-fix-browse-dir-not-re-created-on-symlink-expire.patch +Patch005: autofs-5.1.6-fix-a-regression-with-map-instance-lookup.patch +Patch006: autofs-5.1.6-correct-fsf-address.patch +Patch007: autofs-samples-fix-Makefile-targets-directory-dependencies.patch +Patch008: autofs-5.1.6-remove-intr-hosts-map-mount-option.patch +Patch009: autofs-5.1.6-fix-trailing-dollar-sun-entry-expansion.patch +Patch010: autofs-5.1.6-fix-double-quoting-in-auto.smb.patch +Patch011: autofs-5.1.6-initialize-struct-addrinfo-for-getaddrinfo-calls.patch +Patch012: autofs-5.1.6-fix-quoted-string-length-calc-in-expandsunent.patch +Patch013: autofs-5.1.6-fix-double-quoting-of-ampersand-in-auto.smb-as-well.patch +Patch014: autofs-5.1.6-fix-autofs-mount-options-construction.patch +Patch015: autofs-5.1.6-mount_nfs_c-fix-local-rdma-share-not-mounting.patch +Patch016: autofs-5.1.6-fix-ldap-sasl-reconnect-problem.patch +Patch017: autofs-5.1.6-ldap-schema-fix.patch +Patch018: autofs-5.1.6-fix-configure-force-shutdown-check.patch + +%if %{with_systemd} +BuildRequires: systemd-units +BuildRequires: systemd-devel +%endif +BuildRequires: gcc +BuildRequires: autoconf, openldap-devel, bison, flex, libxml2-devel +BuildRequires: cyrus-sasl-devel, openssl-devel module-init-tools util-linux +BuildRequires: e2fsprogs libtirpc-devel libsss_autofs libnsl2-devel +BuildRequires: rpcgen pkgconfig krb5-devel +Conflicts: cyrus-sasl-lib < 2.1.23-9 +Requires: bash coreutils sed gawk grep module-init-tools /bin/ps +%if %{with_systemd} +Requires(post): systemd-sysv +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +%else +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/service +Requires(postun): /sbin/service +Requires(postun): /sbin/chkconfig +%endif +Summary(de): autofs daemon +Summary(fr): démon autofs +Summary(tr): autofs sunucu süreci +Summary(sv): autofs-daemon + +%description +autofs is a daemon which automatically mounts filesystems when you use +them, and unmounts them later when you are not using them. This can +include network filesystems, CD-ROMs, floppies, and so forth. + +%description -l de +autofs ist ein Dämon, der Dateisysteme automatisch montiert, wenn sie +benutzt werden, und sie später bei Nichtbenutzung wieder demontiert. +Dies kann Netz-Dateisysteme, CD-ROMs, Disketten und ähnliches einschließen. + +%description -l fr +autofs est un démon qui monte automatiquement les systèmes de fichiers +lorsqu'on les utilise et les démonte lorsqu'on ne les utilise plus. Cela +inclus les systèmes de fichiers réseau, les CD-ROMs, les disquettes, etc. + +%description -l tr +autofs, kullanýlan dosya sistemlerini gerek olunca kendiliðinden baðlar +ve kullanýmlarý sona erince yine kendiliðinden çözer. Bu iþlem, að dosya +sistemleri, CD-ROM'lar ve disketler üzerinde yapýlabilir. + +%description -l sv +autofs är en daemon som mountar filsystem när de använda, och senare +unmountar dem när de har varit oanvända en bestämd tid. Detta kan +inkludera nätfilsystem, CD-ROM, floppydiskar, och så vidare. + +%prep +%setup -q -n %{name}-%{version} +echo %{version}-%{release} > .version +%if %{with_systemd} + %define unitdir %{?_unitdir:/usr/lib/systemd/system} + %define systemd_configure_arg --with-systemd +%endif +%patch001 -p1 +%patch002 -p1 +%patch003 -p1 +%patch004 -p1 +%patch005 -p1 +%patch006 -p1 +%patch007 -p1 +%patch008 -p1 +%patch009 -p1 +%patch010 -p1 +%patch011 -p1 +%patch012 -p1 +%patch013 -p1 +%patch014 -p1 +%patch015 -p1 +%patch016 -p1 +%patch017 -p1 +%patch018 -p1 + +%build +LDFLAGS=-Wl,-z,now +%configure \ + --disable-mount-locking \ + --enable-ignore-busy \ + --enable-force-shutdown \ + --without-hesiod \ + --with-libtirpc %{?systemd_configure_arg:} +make initdir=%{_initrddir} DONTSTRIP=1 + +%install +%if %{with_systemd} +install -d -m 755 $RPM_BUILD_ROOT%{unitdir} +%else +mkdir -p -m755 $RPM_BUILD_ROOT%{_initrddir} +%endif +mkdir -p -m755 $RPM_BUILD_ROOT%{_sbindir} +mkdir -p -m755 $RPM_BUILD_ROOT%{_libdir}/autofs +mkdir -p -m755 $RPM_BUILD_ROOT%{_mandir}/{man5,man8} +mkdir -p -m755 $RPM_BUILD_ROOT/etc/sysconfig +mkdir -p -m755 $RPM_BUILD_ROOT/etc/auto.master.d + +make install mandir=%{_mandir} initdir=%{_initrddir} systemddir=%{unitdir} INSTALLROOT=$RPM_BUILD_ROOT +echo make -C redhat +make -C redhat +install -m 755 -d $RPM_BUILD_ROOT/misc +%if %{with_systemd} +# Configure can get this wrong when the unit files appear under /lib and /usr/lib +find $RPM_BUILD_ROOT -type f -name autofs.service -exec rm -f {} \; +install -m 644 redhat/autofs.service $RPM_BUILD_ROOT%{unitdir}/autofs.service +%define init_file_name %{unitdir}/autofs.service +%else +install -m 755 redhat/autofs.init $RPM_BUILD_ROOT%{_initrddir}/autofs +%define init_file_name /etc/rc.d/init.d/autofs +%endif +install -m 644 redhat/autofs.conf $RPM_BUILD_ROOT/etc/autofs.conf +install -m 644 redhat/autofs.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/autofs + +install -m 644 samples/auto.master $RPM_BUILD_ROOT/etc/auto.master +install -m 644 samples/auto.misc $RPM_BUILD_ROOT/etc/auto.misc +install -m 755 samples/auto.net $RPM_BUILD_ROOT/etc/auto.net +install -m 755 samples/auto.smb $RPM_BUILD_ROOT/etc/auto.smb +install -m 600 samples/autofs_ldap_auth.conf $RPM_BUILD_ROOT/etc/autofs_ldap_auth.conf + +%post +%if %{with_systemd} +%systemd_post %{name}.service +%else +if [ $1 -eq 1 ]; then + %{_sbindir}/sbin/chkconfig --add autofs +fi +%endif + +%preun +%if %{with_systemd} +%systemd_preun %{name}.service +%else +if [ $1 -eq 0 ] ; then + %{_sbindir}/service autofs stop > /dev/null 2>&1 || : + %{_sbindir}/chkconfig --del autofs +fi +%endif + +%postun +%if %{with_systemd} +%systemd_postun_with_restart %{name}.service +%else +if [ $1 -ge 1 ] ; then + %{_sbindir}/sbin/service autofs condrestart > /dev/null 2>&1 || : +fi +%endif + +%triggerun -- %{name} < 5.0.6-5 +# Save the current service runlevel info +# User must manually run systemd-sysv-convert --apply %{name} +# to migrate them to systemd targets +%{_bindir}/systemd-sysv-convert --save %{name} >/dev/null 2>&1 ||: + +# Run these because the SysV package being removed won't do them +%{_sbindir}/chkconfig --del %{name} >/dev/null 2>&1 || : +%{_bindir}/systemctl try-restart %{name}.service >/dev/null 2>&1 || : + +%files +%doc CREDITS INSTALL COPY* README* samples/ldap* samples/autofs.schema +%config %{init_file_name} +%config(noreplace,missingok) /etc/auto.master +%config(noreplace) /etc/autofs.conf +%config(noreplace,missingok) /etc/auto.misc +%config(noreplace,missingok) /etc/auto.net +%config(noreplace,missingok) /etc/auto.smb +%config(noreplace) /etc/sysconfig/autofs +%config(noreplace) /etc/autofs_ldap_auth.conf +%{_sbindir}/automount +%{_mandir}/*/* +%{_libdir}/autofs/ +%dir /etc/auto.master.d + +%changelog +* Mon Aug 31 2020 Ian Kent - 1:5.1.6-11 +- fix configure force shutdown check. + +* Tue Aug 25 2020 Ian Kent - 1:5.1.6-10 +- fix incorrect configure option. + +* Tue Aug 25 2020 Ian Kent - 1:5.1.6-9 +- mount_nfs.c fix local rdma share not mounting. +- fix ldap sasl reconnect problem. +- samples/ldap.schema fix. + +* Mon Jul 27 2020 Fedora Release Engineering - 1:5.1.6-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jun 17 2020 Ian Kent - 1:5.1.6-7 +- initialize struct addrinfo for getaddrinfo() calls. +- fix quoted string length calc in expandsunent(). +- fix double quoting of ampersand in auto.smb as well. +- fix autofs mount options construction. + +* Mon Jun 01 2020 Ian Kent - 1:5.1.6-4 +- fix changelog message. +- actually commit the patches referred to in the commit. +- adjust revision to allow fixing f32 revision on update. + +* Mon Jun 01 2020 Ian Kent - 1:5.1.6-3 +- make bind mounts propagation slave by default. +- update ldap READMEs and schema definitions. +- fix program map multi-mount lookup after mount fail. +- fix browse dir not re-created on symlink expire. +- fix a regression with map instance lookup. +- correct fsf address. +- fix Makefile targets' directory dependencies. +- remove intr hosts map mount option. +- fix trailing dollar sun entry expansion. +- fix double quoting in auto.smb. + +* Tue Jan 28 2020 Fedora Release Engineering - 1:5.1.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Oct 07 2019 Fedora Release Engineering - 1:5.1.6-1 +- update to upstream 5.1.6 release. + +* Wed Jul 24 2019 Fedora Release Engineering - 1:5.1.5-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue May 14 2019 Ian Kent - 1:5.1.5-4 +- add BuildRequires: krb5-devel. + +* Tue May 14 2019 Ian Kent - 1:5.1.5-4 +- support strictexpire mount option. +- fix hesiod string check in master_parse(). + +* Thu Jan 31 2019 Fedora Release Engineering - 1:5.1.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Nov 05 2018 Ian Kent - 1:5.1.5-2 +- update spec file to build without hesiod. + +* Mon Nov 05 2018 Ian Kent - 1:5.1.5-1 +- update to upstream 5.1.5 release. + +* Fri Aug 17 2018 Ian Kent - 1:5.1.4-21 +- fix use after free in parse_ldap_config(). + +* Mon Aug 06 2018 Ian Kent - 1:5.1.4-20 +- fix update_negative_cache() map source usage. +- fix program usage message. + +* Thu Jul 12 2018 Fedora Release Engineering - 1:5.1.4-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jul 03 2018 Ian Kent - 1:5.1.4-18 +- add man page note about extra slashes in paths. +- add a number of covarity identified fixes. +- change expire type naming to better reflect usage. +- use defines for expire type. +- make umount_ent() recognise forced umount. +- enable SIGUSR2 handling in rpm spec file. +- fix age setting at startup. + +* Thu May 17 2018 Ian Kent - 1:5.1.4-17 +- fix fd leak in rpc_do_create_client(). + +* Mon Mar 26 2018 Ian Kent - 1:5.1.4-16 +- also add missing "BuildRequires: systemd-devel". + +* Mon Mar 26 2018 Ian Kent - 1:5.1.4-15 +- 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. +- fix incorrect date in changelog. + +* Tue Mar 06 2018 Ian Kent - 1:5.1.4-14 +- improve hostname lookup error logging. + +* Tue Mar 06 2018 Ian Kent - 1:5.1.4-13 +- fix install permissions of auto.net and auto.smb. +- update change log. + +* Mon Feb 19 2018 Ian Kent - 1:5.1.4-12 +- dont allow trailing slash in master map mount points. +- fix libresolv configure check. +- add fedfs-getsrvinfo.c. +- add mount.fedfs.c. +- add fedfs-map-nfs4.c +- add conditional inclusion of fedfs binaries. +- add an example fedfs master map entry to the installed master map. + +* Fri Feb 09 2018 Igor Gnatenko - 1:5.1.4-11 +- Escape macros in %%changelog + +* Fri Feb 9 2018 Ian Kent - 1:5.1.4-10 +- clean up obsolete spec file directives. + +* 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 +- add missing BuildRequires. + +* Mon Feb 5 2018 Ian Kent - 1:5.1.4-7 +- add error handling for ext_mount_add(). +- account for recent libnsl changes. +- use_hostname_for_mounts shouldn't prevent selection among replicas. +- fix monotonic_elapse. +- Makefiles.rules: remove 'samples' from SUBDIRS. + +* Thu Feb 1 2018 Ian Kent - 1:5.1.4-6 +- dont use array for path when not necessary. +- fix prefix option handling in expand_entry(). +- fix sublink option not set from defaults. +- fix error return in do_nfs_mount(). + +* Wed Jan 10 2018 Ian Kent - 1:5.1.4-5 +- actually apply fix use after free in do_master_list_reset(). +- fix deadlock in dumpmaps. +- fix rpcgen dependency problem. + +* Fri Dec 22 2017 Ian Kent - 1:5.1.4-4 +- fix use after free in do_master_list_reset(). + +* Wed Dec 20 2017 Ian Kent - 1:5.1.4-3 +- fix email in last two changelog entries. + +* Tue Dec 19 2017 Ian Kent - 1:5.1.4-2 +- fix flag file permission. +- fix directory create permission. + +* Tue Dec 19 2017 Ian Kent - 1:5.1.4-1 +- Update to upstream 5.1.4 release. + +* Tue Nov 07 2017 Igor Gnatenko - 1:5.1.3-5 +- Remove old crufty coreutils requires + +* Wed Aug 02 2017 Fedora Release Engineering - 1:5.1.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1:5.1.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon May 29 2017 Ian Kent - 1:5.1.3-2 +- Fix "Source:" URL and changelog anotations. + +* Mon May 29 2017 Ian Kent - 1:5.1.3-1 +- update to upstream 5.1.3 release. + +* Fri Feb 10 2017 Fedora Release Engineering - 1:5.1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Jun 15 2016 Fedora Release Engineering - 1:5.1.2-1 +- update to upstream 5.1.2 release. + +* Wed Feb 03 2016 Fedora Release Engineering - 1:5.1.1-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jan 20 2016 Ian Kent - 1:5.1.1-21 +- add some new upstream memory leak and use after free bug fixes. + +* Wed Jan 20 2016 Ian Kent - 1:5.1.1-20 +- fix incorrect committer changelog entries. +- add current released upstream patches. + +* Wed Nov 04 2015 Ian Kent - 1:5.1.1-7 +- revert fix libtirpc name clash patch (an old 5.0.6 patch). + +* Wed Nov 04 2015 Ian Kent - 1:5.1.1-6 +- remove unnecessary nfs-utils BuildRequires (bz1277669). + +* Mon Nov 02 2015 Ian Kent - 1:5.1.1-5 +- fix fix gcc5 complaints. +- update libtirpc workaround for new soname. + +* Sun Nov 01 2015 Kalev Lember - 1:5.1.1-4 +- Rebuilt for libtirpc soname bump + +* Wed Jun 17 2015 Fedora Release Engineering - 1:5.1.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Fri Jun 12 2015 Ian Kent - 1:5.1.1-2 +- add build requires for gcc. + +* Thu Apr 23 2015 Ian Kent - 1:5.1.1-1 +- Update to autofs-5.1.1. + +* Mon Mar 23 2015 Ian Kent - 1:5.1.0-12 +- fix gcc5 complaints (bz1204685). + +* Mon Mar 23 2015 Peter Robinson 1:5.1.0-11 +- Drop ancient 2.6 kernel patches from docs + +* Wed Jan 21 2015 Ian Kent - 1:5.1.0-10 +- make negative cache update consistent for all lookup modules. +- ensure negative cache isn't updated on remount. +- dont add wildcard to negative cache. +- make service want network-online (bz1071591). + +* Tue Nov 18 2014 Ian Kent - 1:5.1.0-9 +- fix custom autofs.conf not being installed. +- init qdn before use in get_query_dn(). +- fix typo in update_hosts_mounts(). +- fix hosts map update on reload. + + +* Fri Oct 17 2014 Ian Kent - 1:5.1.0-8 +- fix fix master map type check. + +* Wed Oct 15 2014 Ian Kent - 1:5.1.0-7 +- force disable browse mode for amd format maps. +- fix hosts map options check in lookup_amd_instance(). +- fix memory leak in create_client(). +- fix memory leak in get_exports(). +- fix memory leak in get_defaults_entry(). +- fix out of order clearing of options buffer. +- fix reset amd lexer scan buffer. +- ignore multiple commas in options strings. +- fix typo in flagdir configure option. +- clarify multiple mounts description. +- gaurd against incorrect umount return. +- update man page autofs(8) for systemd. +- remove ancient kernel Requires. + +* Fri Aug 15 2014 Fedora Release Engineering - 1:5.1.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Jul 8 2014 Ian Kent - 1:5.1.0-5 +- rename two incorrectly named patches. +- add missing change entry to another patch. + +* Mon Jul 7 2014 Ian Kent - 1:5.1.0-4 +- add mutex call return check in defaults.c. + +* Mon Jul 7 2014 Ian Kent - 1:5.1.0-3 +- fix compile error in defaults.c. +- add serialization to sasl init. +- dont allocate dev_ctl_ops too early. +- fix incorrect round robin host detection. +- fix race accessing qdn in get_query_dn(). +- fix leak in cache_push_mapent(). +- fix config entry read buffer not checked. +- fix FILE pointer check in defaults_read_config(). +- fix memory leak in conf_amd_get_log_options(). +- fix signed comparison in inet_fill_net(). +- fix buffer size checks in get_network_proximity(). +- fix leak in get_network_proximity(). +- fix buffer size checks in merge_options(). +- check amd lex buffer len before copy. +- add return check in ldap check_map_indirect(). +- check host macro is set before use. +- check options length before use in parse_amd.c. +- fix some out of order evaluations in parse_amd.c. +- fix copy and paste error in dup_defaults_entry(). + +* Sat Jun 07 2014 Fedora Release Engineering - 1:5.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Thu Jun 5 2014 Ian Kent - 1:5.1.0-1 +- update to upstream release, 5.1.0. + - fix reset flex scan buffer on init. + - fix fix negative status being reset on map read. + - fix out of order amd timestamp lookup. + - fix ldap default schema config. + - fix ldap default master map name config. + - fix map format init in lookup_init(). + - fix incorrect max key length in defaults get_hash(). + - fix xfn sets incorrect lexer state. + - fix old style key lookup. + - fix expire when server not responding. + - fix ldap_uri config update. + - fix typo in conf_load_autofs_defaults(). + - fix hash on confg option add and delete. + - add plus to path match pattern. + - fix multi entry ldap option handling. + - cleanup options in amd_parse.c. + - allow empty value for some map options. + - allow empty value in macro selectors. + +* Sun Apr 13 2014 Ian Kent - 1:5.1.0-0.beta1.1 +- amd lookup update lookup ldap to handle amd keys + - inadvertantly drop from initial series. +- amd lookup update lookup hesiod to handle amd keys + - inadvertantly drop from initial series. +- fix wildcard key lookup. +- check for non existent negative entries in lookup_ghost(). + +* Wed Apr 2 2014 Ian Kent - 1:5.1.0-0.beta1 +- Update to autofs-5.0.1-beta1. + +* Wed Feb 19 2014 Ian Kent - 1:5.0.8-6 +- fix portmap not trying proto v2. + +* Tue Dec 24 2013 Ian Kent - 1:5.0.8-5 +- fix ipv6 link local address handling. +- fix fix ipv6 libtirpc getport. +- get_nfs_info() should query portmapper if port is not given. +- fix rpc_portmap_getport() proto not set. + +* Mon Nov 25 2013 Ian Kent - 1:5.0.8-4 +- allow --with-systemd to take a path arg. +- fix WITH_LIBTIRPC function name. +- fix ipv6 libtirpc getport (bz1033918). + +* Thu Nov 7 2013 Ian Kent - 1:5.0.8-3 +- fix undefined authtype_requires_creds err if ldap enabled but without sasl. +- fix master map type check. +- fix task manager not getting signaled. + +* Mon Oct 21 2013 Ian Kent - 1:5.0.8-2 +- remove now unused patch files (bz1020242). + +* Mon Oct 21 2013 Ian Kent - 1:5.0.8-1 +- update to upstream version 5.0.8 (bz1020242). + +* Sat Aug 03 2013 Fedora Release Engineering - 1:5.0.7-29 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Sat Jul 13 2013 Ian Kent - 1:5.0.7-28 +- add after sssd dependency to unit file (bz984089). + +* Sat Jul 13 2013 Ian Kent - 1:5.0.7-27 +- fix a couple of compiler warnings. + +* Fri Jul 12 2013 Ian Kent - 1:5.0.7-26 +- link with full reloc options. + +* Fri Jul 12 2013 Ian Kent - 1:5.0.7-25 +- fix default path used for unitdir. +- fix changelog inconsistent dates. + +* Wed Jul 10 2013 Ian Kent - 1:5.0.7-24 +- check for protocol option. +- use ulimit max open files if greater than internal maximum. + +* Fri Jun 28 2013 Ian Kent - 1:5.0.7-23 +- fix add null check in parse_server_string() (bz979155). + +* Wed Jun 19 2013 Ian Kent - 1:5.0.7-22 +- misc man page fixes (bz948517). + +* Wed Jun 12 2013 Ian Kent - 1:5.0.7-21 +- fix probe each nfs version in turn for singleton mounts (bz973537). + +* Tue Jun 11 2013 Ian Kent - 1:5.0.7-20 +- fix master map mount options matching. +- fix master map bogus keywork match. +- fix fix map entry duplicate offset detection. +- add a number of fixes based on a Covarity report. + +* Mon May 27 2013 Ian Kent - 1:5.0.7-19 +- dont probe rdma mounts. + +* Fri May 24 2013 Ian Kent - 1:5.0.7-17 +- fix interface address null check. + +* Mon May 13 2013 Ian Kent - 1:5.0.7-16 +- make dump maps check for duplicate indirect mounts (bz961312). +- document allowed map sources in auto.master(5) (bz961312). +- add enable sloppy mount option to configure. + +* Sun Apr 28 2013 Ian Kent - 1:5.0.7-14 +- fix syncronize of handle_mounts() shutdown. +- fix submount tree not all expiring. + +* Tue Mar 26 2013 Ian Kent - 1:5.0.7-13 +- fix some automount(8) typos (bz664178). + +* Tue Mar 12 2013 Ian Kent - 1:5.0.7-12 +- dont fail on master map self include. +- fix wildcard multi map regression. +- fix file descriptor leak when reloading the daemon. +- depricate nosymlink pseudo option. +- add symlink pseudo option. +- update kernel include files. +- fix requires in spec file. +- fix libtirpc build option. +- fix systemd unidir in spec file. +- document browse option in man page. +- fix automounter support on parisc. + +* Wed Feb 13 2013 Fedora Release Engineering - 1:5.0.7-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Jan 21 2013 Ian Kent - 1:5.0.7-10 +- fix submount offset delete. +- fix init script status return. +- fix use get_proximity() without libtirpc. +- don't use dirent d_type to filter out files in scandir(). +- don't schedule new alarms after readmap. +- use numeric protocol ids instead of protoent structs. +- lib/defaults.c: use WITH_LDAP conditional around LDAP types. +- make yellow pages support optional. +- modules/replicated.c: use sin6_addr.s6_addr32. +- workaround missing GNU versionsort extension. + +* Tue Nov 20 2012 Ian Kent - 1:5.0.7-9 +- fix nobind man page description. + +* Tue Nov 20 2012 Ian Kent - 1:5.0.7-8 +- fix map entry duplicate offset detection. +- Allow nsswitch.conf to not contain "automount:" lines. + +* Thu Oct 18 2012 Ian Kent - 1:5.0.7-7 +- use spec file systemd unit file location. + +* Thu Oct 18 2012 Ian Kent - 1:5.0.7-6 +- fix recursive mount deadlock. +- increase file map read buffer size. +- handle new location of systemd. + +* Tue Oct 16 2012 Ian Kent - 1:5.0.7-5 +- configure: allow cross compilation update. +- fix date in changelog entry. + +* Mon Oct 15 2012 Ian Kent - 1:5.0.7-4 +- include usage in usage message. +- dont wait forever to restart. +- add option description to man page. +- fix null map entry order handling. +- make description of default MOUNT_WAIT setting clear. +- configure.in: allow cross compilation. +- README: update mailing list subscription info. +- allow non root user to check status. + +* Mon Sep 10 2012 Ian Kent - 1:5.0.7-3 +- fix nobind sun escaped map entries. +- fix use cache entry after free mistake. +- fix ipv6 proximity calculation. +- fix parse buffer initialization. +- fix typo in automount(8). + +* Mon Aug 27 2012 Ian Kent - 1:5.0.7-2 +- update systemd scriplet macros (bz850040). + +* Wed Jul 25 2012 Ian Kent - 1:5.0.7-1 +- Update to upstream version 5.0.7. + +* Wed Jul 25 2012 Ian Kent - 1:5.0.6-24 +- fix changelog message commit dates. + +* Wed Jul 18 2012 Fedora Release Engineering - 1:5.0.6-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Jul 16 2012 Ian Kent - 1:5.0.6-21 +- fix systemd argument passing. +- fix get_nfs_info() can incorrectly fail. +- fix offset directory removal. + +* Tue Jul 3 2012 Ian Kent - 1:5.0.6-21 +- fix fix LDAP result leaks on error paths. +- report map not read when debug logging. +- duplicate parent options for included maps. +- update ->timeout() function to not return timeout. +- move timeout to map_source. +- fix kernel verion check of version components. +- dont retry ldap connect if not required. +- check if /etc/mtab is a link to /proc/self/mounts. +- fix nfs4 contacts portmap. +- make autofs wait longer for shutdown. +- fix sss map age not updated. +- fix remount deadlock. +- fix umount recovery of busy direct mount. +- fix offset mount point directory removal. +- remove move mount code and configure option. +- fix remount of multi mount. +- fix devce ioctl alloc path check. +- refactor hosts lookup module. +- remove cache update from parse_mount(). +- add function to delete offset cache entry. +- allow update of multi mount offset entries. +- add hup signal handling to hosts map. + +* Tue May 22 2012 Ian Kent - 1:5.0.6-19 +- fix libtirpc name clash (bz821847). + +* Tue May 22 2012 Ian Kent - 1:5.0.6-18 +- update patch fix initialization in rpc create_client() (bz821847). + +* Wed May 16 2012 Ian Kent - 1:5.0.6-17 +- fix initialization in rpc create_client() (bz821847). + +* Tue May 1 2012 Ian Kent - 1:5.0.6-16 +- add libsss_autofs as a build dependency. + +* Tue May 1 2012 Ian Kent - 1:5.0.6-15 +- fix typo in libtirpc file name. +- fix rework error return handling in rpc code. +- allow MOUNT_WAIT to override probe. +- improve UDP RPC timeout handling. +- fix segfault in get_query_dn(). +- use strtok_r() in linux_version_code(). +- fix sss wildcard match. +- fix dlopen() error handling in sss module. +- fix configure string length tests for sss library. + +* Wed Feb 29 2012 Ian Kent - 1:5.0.6-14 +- fix function to check mount.nfs version. + +* Sun Feb 26 2012 Ian Kent - 1:5.0.6-13 +- fix error in %%post scriplet. + +* Fri Feb 24 2012 Ian Kent - 1:5.0.6-12 +- ignore duplicate exports in auto.net. +- add kernel verion check function. +- add function to check mount.nfs version. +- reinstate singleton mount probe. +- rework error return handling in rpc code. +- catch EHOSTUNREACH and bail out early. +- systemd support fixes. +- fix segmentation fault in do_remount_indirect(). + +* Thu Feb 9 2012 Ian Kent - 1:5.0.6-11 +- fix fuzz in CHANGELOG hunk when applying patch26. + +* Tue Feb 7 2012 Ian Kent - 1:5.0.6-10 +- fix rpc build error. +- add sss lookup module. +- teach automount about sss source. + +* Mon Jan 23 2012 Ian Kent - 1:5.0.6-9 +- add correct patch for "fix improve mount location error reporting". +- add correct patch for "fix fix wait for master source mutex". + +* Mon Jan 23 2012 Ian Kent - 1:5.0.6-8 +- fix fix wait for master source mutex. +- fix improve mount location error reporting (bz783496). + +* Thu Jan 12 2012 Fedora Release Engineering - 1:5.0.6-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Dec 9 2011 Ian Kent - 1:5.0.6-6 +- remove empty command line arguments (passed by systemd). + +* Mon Dec 5 2011 Ian Kent - 1:5.0.6-5 +- fix ipv6 name lookup check. +- fix ipv6 rpc calls. +- fix ipv6 configure check. +- add piddir to configure. +- add systemd unit support. +- fix MNT_DETACH define. + +* Mon Dec 5 2011 Ian Kent - 1:5.0.6-4 +- fix lsb service name in init script 2 (bz712504). + +* Tue Nov 8 2011 Ian Kent - 1:5.0.6-3 +- improve mount location error reporting. +- fix paged query more results check. +- fix dumpmaps not reading maps. +- fix result null check in read_one_map(). +- Fix LDAP result leaks on error paths. +- code analysis fixes 1. +- fix not bind mounting local filesystem. +- update dir map-type patch for changed patch order. +- fix wait for master source mutex. +- fix submount shutdown race +- fix fix map source check in file lookup. +- add disable move mount configure option. + +* Wed Jul 6 2011 Ian Kent - 1:5.0.6-2 +- add missing spec file entries for dir-type change (bz719208). + +* Mon Jul 4 2011 Ian Kent - 1:5.0.6-1 +- update source to 5.0.6. +- fix ipv6 name for lookup fix. +- add dir map-type patch. + +* Tue Jun 14 2011 Ian Kent - 1:5.0.5-38 +- fix lsb service name in init script (bz692963). + +* Fri Mar 18 2011 Ian Kent - 1:5.0.5-37 +- replace GPLv3 code with GPLv2 equivalent. + +* Thu Mar 03 2011 Ian Kent - 1:5.0.5-36 +- use weight only for server selection. +- fix isspace() wild card substition. +- auto adjust ldap page size. +- fix prune cache valid check. +- fix mountd vers retry. +- fix expire race. +- add lsb force-reload and try-restart. + +* Mon Feb 07 2011 Fedora Release Engineering - 1:5.0.5-35 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Nov 23 2010 Ian Kent - 1:5.0.5-34.fc15 +- revert wait for master map to be available at start. + +* Mon Nov 22 2010 Ian Kent - 1:5.0.5-33.fc15 +- fix wait for master map to be available at start. + +* Mon Nov 8 2010 Ian Kent - 1:5.0.5-32.fc15 +- always read file maps mount lookup map read fix. +- fix direct map not updating on reread. +- add external bind method. +- fix add simple bind auth. +- add option to dump configured automount maps. +- wait for master map to be available at start. + +* Fri Aug 27 2010 Ian Kent - 1:5.0.5-31.fc15 +- fix status privilege error (bz627605). + +* Wed Aug 18 2010 Ian Kent - 1:5.0.5-30.fc15 +- fix restart not working (bz624694). + +* Wed Aug 11 2010 Ian Kent - 1:5.0.5-29 +- remove ERR_remove_state() openssl call. + +* Tue Aug 10 2010 Ian Kent - 1:5.0.5-28 +- remove extra read master map call. +- remove extra cache create call in master_add_map_source(). +- fix error handing in do_mount_indirect(). +- expire thread use pending mutex. +- explicity link against the Kerberos library. +- remove some log message duplication for verbose logging. + +* Mon May 24 2010 Ian Kent - 1:5.0.5-27.fc14 +- fix master map source server unavailable handling. +- add autofs_ldap_auth.conf man page. +- fix random selection for host on different network. +- make redhat init script more lsb compliant. +- don't hold lock for simple mounts. +- fix remount locking. +- fix wildcard map entry match. +- fix parse_sun() module init. +- dont check null cache on expire. +- fix null cache race. +- fix cache_init() on source re-read. +- fix mapent becomes negative during lookup. +- check each dc server individually. +- fix negative cache included map lookup. +- remove state machine timed wait. + +* Fri Apr 30 2010 Ian Kent - 1:5.0.5-26.fc14 +- remove URL tag as there is not official autofs wiki (bz529804). + +* Wed Apr 7 2010 Ian Kent - 1:5.0.5-25.fc14 +- make nfs4 default for replicated selection configuration (bz579949). +- add simple bind authentication option (bz579951). + +* Fri Mar 26 2010 Ian Kent - 1:5.0.5-24.fc14 +- fix add locality as valid ldap master map attribute (bz575863). + +* Wed Mar 17 2010 Ian Kent - 1:5.0.5-22 +- fix get query dn failure. +- fix ampersand escape in auto.smb. +- add locality as valid ldap master map attribute. + +* Wed Mar 17 2010 Ian Kent - 1:5.0.5-22 +- add Conflicts to ensure we get fixed cyrus-sasl-lib for rev 21 change. + +* Tue Feb 23 2010 Ian Kent - 1:5.0.5-21 +- add missing sasl mutex callbacks. + +* Thu Feb 11 2010 Ian Kent - 1:5.0.5-19 +- fix segfault upon reconnect cannot find valid base dn. + +* Mon Feb 1 2010 Ian Kent - 1:5.0.5-17 +- dont connect at ldap lookup module init. +- fix random selection option. +- fix disable timeout. +- fix strdup() return value check. + +* Tue Dec 8 2009 Ian Kent - 1:5.0.5-16 +- fix memory leak on reload (bz545137). + +* Fri Dec 4 2009 Ian Kent - 1:5.0.5-14 +- fix rpc fail on large export list (bz543023). + +* Mon Nov 30 2009 Ian Kent - 1:5.0.5-12 +- check for path mount location in generic module. +- dont fail mount on access fail. + +* Tue Nov 24 2009 Ian Kent - 1:5.0.5-10 +- fix pidof init script usage. + +* Mon Nov 23 2009 Ian Kent - 1:5.0.5-8 +- fix timeout in connect_nb(). + +* Mon Nov 16 2009 Ian Kent - 1:5.0.5-6 +- don't use master_lex_destroy() to clear parse buffer. +- make documentation for set-log-priority clearer. + +* Tue Nov 10 2009 Ian Kent - 1:5.0.5-5 +- fix ext4 "preen" fsck at mount. + +* Mon Nov 9 2009 Ian Kent - 1:5.0.5-4 +- fix stale initialization for file map instance patch was not applied. + +* Tue Nov 3 2009 Ian Kent - 1:5.0.5-3 +- fix stale initialization for file map instance. + +* Tue Oct 6 2009 Ian Kent - 1:5.0.5-2 +- fix included map read fail handling. +- refactor ldap sasl authentication bind to eliminate extra connect + causing some servers to reject the request. +- add mount wait parameter to allow timeout of mount requests to + unresponsive servers. +- special case cifs escape handling. +- fix libxml2 workaround configure. +- more code analysis corrections (and fix a typo in an init script). +- fix backwards #ifndef INET6. + +* Fri Sep 4 2009 Ian Kent - 1:5.0.5-1 +- update source to latest upstream version. + - this is essentially a consolidation of the patches already in this rpm. +- add dist tag to match latest RHEL-5 package tag format. + +* Thu Sep 3 2009 Ian Kent - 1:5.0.4-39 +- fix libxml2 non-thread-safe calls. +- fix direct map cache locking. +- fix patch "dont umount existing direct mount on reread" deadlock. + +* Fri Jul 24 2009 Fedora Release Engineering - 1:5.0.4-37 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Fri Jul 17 2009 Ian Kent - 1:5.0.4-34 +- fix typo in patch to allow dumping core. + +* Wed Jul 15 2009 Ian Kent - 1:5.0.4-32 +- fix an RPC fd leak. +- don't block signals we expect to dump core. +- fix pthread push order in expire_proc_direct(). + +* Fri Jun 12 2009 Ian Kent - 1:5.0.4-30 +- fix incorrect dclist free. +- srv lookup handle endianness. +- fix bug introduced by library reload changes which causes autofs to + not release mount thread resources when using submounts. +- fix notify mount message path. +- try harder to work out if we created mount point at remount. +- fix double free in do_sasl_bind(). +- manual umount recovery fixes. +- fix map type info parse error. + +* Mon May 18 2009 Ian Kent - 1:5.0.4-28 +- use intr option as hosts mount default. +- sync kernel includes with upstream kernel. +- dont umount existing direct mount on master re-read. +- fix incorrect shutdown introduced by library relaod fixes. +- improve manual umount recovery. +- dont fail on ipv6 address when adding host. +- always read file maps multi map fix. +- always read file maps key lookup fixes. +- add support for LDAP_URI="ldap:///" SRV RR lookup. + +* Thu Apr 16 2009 Ian Kent - 1:5.0.4-26 +- fix lsb init script header. +- fix memory leak reading ldap master map. +- fix st_remove_tasks() locking. +- reset flex scanner when setting buffer. +- zero s_magic is valid. + +* Mon Mar 30 2009 Ian Kent - 1:5.0.4-24 +- clear rpc client on lookup fail. + +* Fri Mar 20 2009 Ian Kent - 1:5.0.4-23 +- fix call restorecon when misc device file doesn't exist. + +* Wed Mar 18 2009 Ian Kent - 1:5.0.4-22 +- use misc device ioctl interface by default, if available. + +* Tue Mar 17 2009 Ian Kent - 1:5.0.4-21 +- fix file map lookup when reading included or nsswitch sources. + - a regression introduced by file map lookup optimisation in rev 9. + +* Fri Mar 13 2009 Ian Kent - 1:5.0.4-20 +- add LSB init script parameter block. + +* Fri Mar 13 2009 Ian Kent - 1:5.0.4-19 +- another easy alloca replacements fix. + +* Thu Mar 12 2009 Ian Kent - 1:5.0.4-18 +- fix return start status on fail. +- fix double free in expire_proc(). + +* Wed Feb 25 2009 Ian Kent - 1:5.0.4-17 +- fix bad token declaration in master map parser. + +* Wed Feb 25 2009 Ian Kent - 1:5.0.4-16 +- correct mkdir command in %%install section, bz481132. + +* Tue Feb 24 2009 Ian Kent - 1:5.0.4-15 +- fix array out of bounds accesses and cleanup couple of other alloca() calls. +- Undo mistake in copy order for submount path introduced by rev 11 patch. +- add check for alternate libxml2 library for libxml2 tsd workaround. +- add check for alternate libtirpc library for libtirpc tsd workaround. +- cleanup configure defines for libtirpc. +- add WITH_LIBTIRPC to -V status report. +- add libtirpc-devel to BuildRequires. +- add nfs mount protocol default configuration option. + +* Mon Feb 23 2009 Fedora Release Engineering - 1:5.0.4-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Thu Feb 19 2009 Ian Kent - 5.0.4-10 +- fix mntent.h not included before use of setmntent_r(). + +* Mon Feb 16 2009 Ian Kent - 5.0.4-9 +- fix hosts map use after free. +- fix uri list locking (again). +- check for stale SASL credentials upon connect fail. +- add "forcestart" and "forcerestart" init script options to allow + use of 5.0.3 strartup behavior if required. +- always read entire file map into cache to speed lookups. +- make MAX_ERR_BUF and PARSE_MAX_BUF use easier to audit. +- make some easy alloca replacements. +- update to configure libtirpc if present. +- update to provide ipv6 name and address support. +- update to provide ipv6 address parsing. + +* Thu Feb 5 2009 Ian Kent - 5.0.4-8 +- rename program map parsing bug fix patch. +- use CLOEXEC flag functionality for setmntent also, if present. + +* Wed Jan 21 2009 Jeff Moyer - 5.0.4-6 +- fix a bug in the program map parsing routine + +* Thu Jan 15 2009 Ian Kent - 5.0.4-5 +- fix negative caching of non-existent keys. +- fix ldap library detection in configure. +- use CLOEXEC flag functionality if present. +- fix select(2) fd limit. +- make hash table scale to thousands of entries. + +* Wed Dec 3 2008 Ian Kent - 5.0.4-4 +- fix nested submount expire deadlock. + +* Wed Nov 19 2008 Ian Kent - 5.0.4-3 +- fix libxml2 version check for deciding whether to use workaround. + +* Tue Nov 11 2008 Ian Kent - 5.0.4-2 +- Fix tag confusion. + +* Tue Nov 11 2008 Ian Kent - 5.0.4-1 +- Upstream source version 5.0.4. + +* Tue Nov 11 2008 Ian Kent - 5.0.3-32 +- correct buffer length setting in autofs-5.0.3-fix-ifc-buff-size-fix.patch. + +* Sun Nov 2 2008 Ian Kent - 5.0.3-30 +- fix segv during library re-open. +- fix incorrect pthreads condition handling for expire requests. +- fix master map lexer eval order. +- fix bad alloca usage. + +* Thu Oct 23 2008 Ian Kent - 5.0.3-28 +- don't close file handle for rootless direct mounti-mount at mount. +- wait submount expire thread completion when expire successful. +- add inadvertantly ommitted server list locking in LDAP module. + +* Fri Oct 10 2008 Ian Kent - 5.0.3-26 +- add map-type-in-map-name fix patch to sync with upstream and RHEL. +- don't readmap on HUP for new mount. +- add NIS_PARTIAL to map entry not found check and fix use after free bug. + +* Fri Sep 26 2008 Ian Kent - 5.0.3-25 +- fix fd leak at multi-mount non-fatal mount fail. +- fix incorrect multi-mount mountpoint calcualtion. + +* Fri Sep 19 2008 Ian Kent - 5.0.3-23 +- add upstream bug fixes + - bug fix for mtab check. + - bug fix for zero length nis key. + - update for ifc buffer handling. + - bug fix for kernel automount handling. +- warning: I found a bunch of patches that were present but not + being applied. + +* Mon Aug 25 2008 Ian Kent - 5.0.3-21 +- add upstream bug fix patches + - add command line option to override is running check. + - don't use proc fs for is running check. + - fix fail on included browse map not found. + - fix incorrect multi source messages. + - clear stale flag on map read. + - fix proximity other rpc ping timeout. + - refactor mount request vars code. + - make handle_mounts startup condition distinct. + - fix submount shutdown handling. + - try not to block on expire. + - add configuration paramter UMOUNT_WAIT. + - fix multi mount race. + - fix nfs4 colon escape handling. + - check replicated list after probe. + - add replicated server selection debug logging. + - update replicated server selection documentation. + - use /dev/urandom instead of /dev/random. + - check for mtab pointing to /proc/mounts. + - fix interface config buffer size. + - fix percent hack heap corruption. + +* Mon Jul 14 2008 Tom "spot" Callaway - 5.0.3-19 +- change conflicts to requires +- fix license tag + +* Mon Jun 30 2008 Ian Kent - 5.0.3-18 +- don't abuse the ap->ghost field on NFS mount. +- multi-map doesn't pickup NIS updates automatically. +- eliminate redundant DNS name lookups. +- mount thread create condition handling fix. +- allow directory create on NFS root. +- check direct mount path length. +- fix incorrect in check in get user info. +- fix a couple of memory leaks. + +* Wed May 14 2008 Ian Kent - 5.0.3-16 +- update patches, documentation and comments only change. +- rename patch and add to CVS. + +* Mon May 12 2008 Ian Kent - 5.0.3-14 +- check for nohide mounts (bz 442618). +- ignore nsswitch sources that aren't supported (bz 445880). + +* Thu Apr 17 2008 Ian Kent - 5.0.3-13 +- fix typo in patch for incorrect pthreads condition handling patch. + +* Mon Apr 14 2008 Ian Kent - 5.0.3-12 +- fix incorrect pthreads condition handling for mount requests. + +* Tue Apr 1 2008 Ian Kent - 5.0.3-11 +- and another try at fixing lexer matching map type in map name. + +* Sun Mar 30 2008 Ian Kent - 5.0.3-10 +- another try a fixing lexer matching map type in map name. + +* Wed Mar 26 2008 Ian Kent - 5.0.3-9 +- fix lexer ambiguity in match when map type name is included in map name. + +* Mon Mar 24 2008 Ian Kent - 5.0.3-8 +- revert miscellaneous device node related patches. +- add missing check for zero length NIS key. +- fix incorrect match of map type name when included in map name. +- update rev 7 sasl callbacks patch. + +* Thu Mar 20 2008 Ian Kent - 5.0.3-7 +- add patch to initialize sasl callbacks unconditionally on autofs + LDAP lookup library load. + +* Mon Feb 25 2008 Ian Kent - 5.0.3-6 +- fix expire calling kernel more often than needed. +- fix unlink of mount tree incorrectly causing autofs mount fail. +- add miscellaneous device node interface library. +- use miscellaneous device node, if available, for active restart. +- device node and active restart fixes. +- update is_mounted to use device node ioctl, if available. + +* Fri Feb 1 2008 Ian Kent - 5.0.3-5 +- another fix for don't fail on empty master map. + +* Fri Jan 25 2008 Ian Kent - 5.0.3-4 +- correction to the correction for handling of LDAP base dns with spaces. +- avoid using UDP for probing NFSv4 mount requests. +- use libldap instead of libldap_r. + +* Mon Jan 21 2008 Ian Kent - 5.0.3-3 +- catch "-xfn" map type and issue "no supported" message. +- another correction for handling of LDAP base dns with spaces. + +* Mon Jan 14 2008 Ian Kent - 5.0.3-2 +- correct configure test for ldap page control functions. + +* Mon Jan 14 2008 Ian Kent - 5.0.3-1 +- update source to version 5.0.3. + +* Fri Dec 21 2007 Ian Kent - 5.0.2-25 +- Bug 426401: CVE-2007-6285 autofs default doesn't set nodev in /net [rawhide] + - use mount option "nodev" for "-hosts" map unless "dev" is explicily specified. + +* Tue Dec 18 2007 Ian Kent - 5.0.2-23 +- Bug 397591 SELinux is preventing /sbin/rpc.statd (rpcd_t) "search" to (sysctl_fs_t). + - prevent fork between fd open and setting of FD_CLOEXEC. + +* Thu Dec 13 2007 Ian Kent - 5.0.2-21 +- Bug 421371: CVE-2007-5964 autofs defaults don't restrict suid in /net [rawhide] + - use mount option "nosuid" for "-hosts" map unless "suid" is explicily specified. + +* Thu Dec 6 2007 Jeremy Katz - 1:5.0.2-19 +- rebuild for new ldap + +* Tue Nov 20 2007 Ian Kent - 5.0.2-18 +- fix schema selection in LDAP schema discovery. +- check for "*" when looking up wildcard in LDAP. +- fix couple of edge case parse fails of timeout option. +- add SEARCH_BASE configuration option. +- add random selection as a master map entry option. +- re-read config on HUP signal. +- add LDAP_URI, LDAP_TIMEOUT and LDAP_NETWORK_TIMEOUT configuration options. +- fix deadlock in submount mount module. +- fix lack of ferror() checking when reading files. +- fix typo in autofs(5) man page. +- fix map entry expansion when undefined macro is present. +- remove unused export validation code. +- add dynamic logging (adapted from v4 patch from Jeff Moyer). +- fix recursive loopback mounts (Matthias Koenig). +- add map re-load to verbose logging. +- fix handling of LDAP base dns with spaces. +- handle MTAB_NOTUPDATED status return from mount. +- when default master map, auto.master, is used also check for auto_master. +- update negative mount timeout handling. +- fix large group handling (Ryan Thomas). +- fix for dynamic logging breaking non-sasl build (Guillaume Rousse). +- eliminate NULL proc ping for singleton host or local mounts. + +* Mon Sep 24 2007 Ian Kent - 5.0.2-16 +- add descriptive comments to config about LDAP schema discovery. +- work around segfault at exit caused by libxml2. +- fix foreground logging (also fixes shutdown needing extra signal bug). + +* Wed Sep 5 2007 Ian Kent - 5.0.2-15 +- fix LDAP schema discovery. + +* Tue Aug 28 2007 Ian Kent - 5.0.2-14 +- update patch to prevent failure on empty master map. +- if there's no "automount" entry in nsswitch.conf use "files" source. +- add LDAP schema discovery if no schema is configured. + +* Wed Aug 22 2007 Ian Kent - 5.0.2-13 +- fix "nosymlink" option handling and add desription to man page. + +* Tue Aug 21 2007 Ian Kent - 5.0.2-12 +- change random multiple server selection option name to be consistent + with upstream naming. + +* Tue Aug 21 2007 Ian Kent - 5.0.2-11 +- don't fail on empty master map. +- add support for the "%%" hack for case insensitive attribute schemas. + +* Mon Jul 30 2007 Ian Kent - 5.0.2-10 +- mark map instances stale so they aren't "cleaned" during updates. +- fix large file compile time option. + +* Fri Jul 27 2007 Ian Kent - 5.0.2-9 +- fix version passed to get_supported_ver_and_cost (bz 249574). + +* Tue Jul 24 2007 Ian Kent - 5.0.2-8 +- fix parse confusion between attribute and attribute value. + +* Fri Jul 20 2007 Ian Kent - 5.0.2-7 +- fix handling of quoted slash alone (bz 248943). + +* Wed Jul 18 2007 Ian Kent - 5.0.2-6 +- fix wait time resolution in alarm and state queue handlers (bz 247711). + +* Mon Jul 16 2007 Ian Kent - 5.0.2-5 +- fix mount point directory creation for bind mounts. +- add quoting for exports gathered by hosts map. + +* Mon Jun 25 2007 Ian Kent - 5.0.2-4 +- update multi map nsswitch patch. + +* Mon Jun 25 2007 Ian Kent - 5.0.2-3 +- add missing "multi" map support. +- add multi map nsswitch lookup. + +* Wed Jun 20 2007 Ian Kent - 5.0.2-2 +- include krb5.h in lookup_ldap.h (some openssl doesn't implicitly include it). +- correct initialization of local var in parse_server_string. + +* Mon Jun 18 2007 Ian Kent - 5.0.2-1 +- Update to upstream release 5.0.2. + +* Tue Jun 12 2007 Ian Kent - 5.0.1-16 +- add ldaps support. + - note: it's no longer possible to have multiple hosts in an ldap map spec. + - note: to do this you need to rely on the ldap client config. + +* Thu Jun 7 2007 Ian Kent - 5.0.1-14 +- fix deadlock in alarm manager module. + +* Sun Jun 3 2007 Ian Kent - 5.0.1-12 +- correct mistake in logic test in wildcard lookup. + +* Mon May 7 2007 Ian Kent - 5.0.1-10 +- fix master map lexer to admit "." in macro values. + +* Tue Apr 17 2007 Ian Kent - 5.0.1-9 +- upstream fix for filesystem is local check. +- disable exports access control check (bz 203277). +- fix patch to add command option for set a global mount options (bz 214684). + +* Mon Apr 16 2007 Ian Kent - 5.0.1-8 +- add configuration variable to control appending of global options (bz 214684). +- add command option to set a global mount options string (bz 214684). + +* Tue Apr 3 2007 Ian Kent - 5.0.1-7 +- fix "null" domain netgroup match for "-hosts" map. + +* Thu Mar 29 2007 Ian Kent - 5.0.1-6 +- fix directory creation for browse mounts. +- fix wildcard map handling and improve nsswitch source map update. + +* Fri Mar 16 2007 Ian Kent - 5.0.1-5 +- drop "DEFAULT_" prefix from configuration names. +- add option to select replicated server at random (instead of + ping response time) (bz 227604). +- fix incorrect cast in directory cleanup routines (bz 231864). + +* Thu Mar 8 2007 Ian Kent - 5.0.1-4 +- fixed numeric export match (bz 231188). + +* Thu Mar 1 2007 Ian Kent - 5.0.1-3 +- change file map lexer to allow white-space only blank lines (bz 229434). + +* Fri Feb 23 2007 Ian Kent - 5.0.1-2 +- update "@network" matching patch. + +* Thu Feb 22 2007 Ian Kent - 5.0.1-1 +- update to release tar. +- fix return check for getpwuid_r and getgrgid_r. +- patch to give up trying to update exports list while host is mounted. +- fix to "@network" matching. +- patch to check for fstab update and retry if not updated. + +* Tue Feb 20 2007 Ian Kent - 5.0.1-0.rc3.24 +- add "condrestart" to init script (bz 228860). +- add "@network" and .domain.name export check. +- fix display map name in mount entry for "-hosts" map. + +* Fri Feb 16 2007 Ian Kent - 5.0.1-0.rc3.22 +- fix localhost replicated mounts not working (bz 208757). + +* Wed Feb 14 2007 Ian Kent - 5.0.1-0.rc3.20 +- correct return status from do_mkdir (bz 223480). + +* Sat Feb 10 2007 Ian Kent - 5.0.1-0.rc3.18 +- update the "task done race" patch to fix a deadlock. +- added URL tag. +- removed obsoletes autofs-ldap. +- replaced init directory paths with %%{_initrddir} macro. + +* Fri Feb 9 2007 Ian Kent - 5.0.1-0.rc3.17 +- make use of spaces and tabs in spec file consistent. +- escape embedded macro text in %%changelog. +- eliminate redundant %%version and %%release. +- remove redundant conditional check from %%clean. +- remove redundant exit from %%preun. +- correct %%defattr spec. +- remove empty %%doc and redundant %%dir misc lines. +- combine program module spec lines into simpler one line form. + +* Tue Feb 6 2007 Ian Kent - 5.0.1-0.rc3.15 +- fix race when setting task done (bz 227268). + +* Mon Jan 29 2007 Ian Kent - 5.0.1-0.rc3.13 +- make double quote handing consistent (at least as much as we can). +- fix handling of trailing white space in wildcard lookup (forward port bz 199720). +- check fqdn of each interface when matching export access list (bz 213700). + +* Thu Jan 18 2007 Ian Kent - 5.0.1-0.rc3.11 +- correct check for busy offset mounts before offset umount (bz 222872). + +* Wed Jan 17 2007 Ian Kent - 5.0.1-0.rc3.9 +- fix another expire regression introduced in the "mitigate manual umount" + patch (bz 222872). + +* Mon Jan 15 2007 Ian Kent - 5.0.1-0.rc3.7 +- ignore "winbind" if it appears in "automount" nsswitch.conf (bz 214632). + +* Wed Jan 10 2007 Ian Kent - 5.0.1-0.rc3.5 +- remove fullstop from Summary tag. +- change Buildroot to recommended form. +- replace Prereq with Requires. + +* Tue Jan 9 2007 Ian Kent - 5.0.1-0.rc3.3 +- remove redundant rpath link option (prep for move to Extras). + +* Tue Jan 9 2007 Ian Kent - 5.0.1-0.rc3.1 +- consolidate to rc3. +- fix typo in Fix typo in var when removing temp directory (bz 221847). + +* Wed Dec 27 2006 Ian Kent - 5.0.1-0.rc2.41 +- fix nonstrict multi-mount handling (bz 219383). +- correct detection of duplicate indirect mount entries (bz 220799). + +* Thu Dec 14 2006 Ian Kent - 5.0.1-0.rc2.38 +- update master map tokenizer to admit "slasify-colons" option. +- update location validation to accept "_" (bz 219445). +- set close-on-exec flag on open sockets (bz 215757). + +* Mon Dec 11 2006 Ian Kent - 5.0.1-0.rc2.35 +- update "replace-tempnam" patch to create temp files in sane location. + +* Mon Dec 11 2006 Ian Kent - 5.0.1-0.rc2.34 +- change mount "device" from "automount" to the map name. +- check for buffer overflow in mount_afs.c. +- replace tempnam with mkdtemp. + +* Sun Dec 10 2006 Ian Kent - 5.0.1-0.rc2.33 +- expand export access checks to include missing syntax options. +- make "-hosts" module try to be sensitive to exports list changes. + +* Thu Dec 7 2006 Ian Kent - 5.0.1-0.rc2.32 +- remove ability to use multiple indirect mount entries in master + map (bz 218616). + +* Wed Dec 6 2006 Ian Kent - 5.0.1-0.rc2.29 +- alter nfs4 host probing to not use portmap lookup and add options + check for "port=" parameter (bz 208757). +- correct semantics of "-null" map handling (bzs 214800, 208091). + +* Sat Nov 25 2006 Ian Kent - 5.0.1-0.rc2.26 +- fix parsing of bad mount mount point in master map (bz 215620). +- fix use after free memory access in cache.c and lookup_yp.c (bz 208091). +- eliminate use of pthread_kill to detect task completion (bz 208091). + +* Sun Nov 12 2006 Ian Kent - 5.0.1-0.rc2.23 +- fix tokenizer to distinguish between global option and dn string (bz 214684). +- fix incorrect return from spawn. + +* Wed Nov 8 2006 Ian Kent - 5.0.1-0.rc2.21 +- mitigate manual umount of automounts where possible. +- fix multiply recursive bind mounts. +- check kernel module version and require 5.00 or above. +- fix expire regression introduced in the "mitigate manual umount" patch. +- still more on multiply recursive bind mounts. + +* Mon Oct 30 2006 Ian Kent - 5.0.1-0.rc2.20 +- Update patch for changed semantics of mkdir in recent kernels. +- fix macro table locking (bz 208091). +- fix nsswitch parser locking (bz 208091). +- allow only one master map read task at a time. +- fix misc memory leaks. + +* Wed Oct 25 2006 Ian Kent - 5.0.1-0.rc2.19 +- deal with changed semantics of mkdir in recent kernels. + +* Fri Oct 20 2006 Ian Kent - 5.0.1-0.rc2.16 +- fix get_query_dn not looking in subtree for LDAP search (missed + econd occurance). +- allow additional common LDAP attributes in map dn. +- Resolves: rhbz#205997 + +* Mon Oct 16 2006 Ian Kent - 5.0.1-0.rc2.13 +- fix parsing of numeric host names in LDAP map specs (bz 205997). + +* Mon Oct 16 2006 Ian Kent - 5.0.1-0.rc2.12 +- fix "-fstype=nfs4" server probing (part 2 of bz 208757). +- set close-on-exec flag on open files where possible (bz 207678). + +* Fri Oct 13 2006 Ian Kent - 5.0.1-0.rc2.11 +- fix file handle leak in nsswitch parser (bz 207678). +- fix memory leak in mount and expire request processing (bz 207678). +- add additional check to prevent running of cancelled tasks. +- fix potential file handle leakage in rpc_subs.c for some failure + cases (bz 207678). +- fix file handle leak in included map lookup (bz 207678). + +* Sat Oct 7 2006 Ian Kent - 5.0.1-0.rc2.10 +- fix get_query_dn not looking in subtree for LDAP search. +- allow syntax "--timeout " for backward compatibility + (bz 193948). +- make masked_match independent of hostname for exports comparison + (bz 209638). + +* Thu Oct 5 2006 Ian Kent - 5.0.1-0.rc2.9 +- fix "-fstype=nfs4" handling (bz 208757). + +* Wed Sep 27 2006 Ian Kent - 5.0.1-0.rc2.8 +- review and fix master map options update for map reload. + +* Wed Sep 27 2006 Ian Kent - 5.0.1-0.rc2.7 +- make default installed master map for /net use "-hosts" instead + of auto.net. +- fix included map recursive map key lookup. + +* Mon Sep 25 2006 Ian Kent - 5.0.1-0.rc2.6 +- remove unused option UNDERSCORETODOT from default config files. + +* Mon Sep 25 2006 Ian Kent - 5.0.1-0.rc2.5 +- fix LDAP lookup delete cache entry only if entry doesn't exist. +- add missing socket close in replicated host check (Jeff Moyer). + +* Wed Sep 20 2006 Ian Kent - 5.0.1-0.rc2.4 +- fix cache entrys not being cleaned up on submount expire. + +* Sun Sep 17 2006 Ian Kent - 5.0.1-0.rc2.3 +- fix include check full patch for file map of same name. + +* Wed Sep 13 2006 Ian Kent - 5.0.1-0.rc2.2 +- fix handling of autofs specific mount options (bz 199777). + +* Fri Sep 1 2006 Ian Kent - 5.0.1-0.rc2.1 +- consolidate to rc2. +- fix colon escape handling. +- fix recusively referenced bind automounts. +- update kernel patches. + +* Fri Aug 25 2006 Ian Kent - 5.0.1-0.rc1.17 +- fix task cancelation at shutdown (more) +- fix concurrent mount and expire race with nested submounts. + +* Sun Aug 20 2006 Ian Kent - 5.0.1-0.rc1.16 +- fix included map lookup. +- fix directory cleanup on expire. +- fix task cancelation at shutdown. +- fix included map wild card key lookup. + +* Wed Aug 16 2006 Ian Kent - 5.0.1-0.rc1.15 +- expire individual submounts. +- add ino_index locking. +- fix nested submount expiring away when pwd is base of submount. +- more expire re-work to cope better with shutdown following cthon tests. +- allow hostname to start with numeric when validating. + +* Mon Aug 7 2006 Ian Kent - 5.0.1-0.rc1.14 +- remove SIGCHLD handler because it is no longer needed and was + causing expire problems. +- alter expire locking of multi-mounts to lock sub-tree instead of + entire tree. +- review verbose message feedback and update. +- correction for expire of multi-mounts. +- spelling corrections to release notes (Jeff Moyer). +- add back sloppy mount option, removed for Connectathon testing. +- disable mtab locking again. + +* Fri Aug 4 2006 Ian Kent - 5.0.1-0.rc1.13 +- tidy up directory cleanup and add validation check to rmdir_path. + +* Fri Aug 4 2006 Ian Kent - 5.0.1-0.rc1.12 +- enable mtab locking until I can resolve the race with it. + +* Fri Aug 4 2006 Ian Kent - 5.0.1-0.rc1.11 +- cthon fix expire of wildcard and program mounts broken by recent + patches. + +* Thu Aug 3 2006 Ian Kent - 5.0.1-0.rc1.10 +- cthon corrections for shutdown patch below and fix shutdown expire. + +* Wed Aug 2 2006 Ian Kent - 5.0.1-0.rc1.9 +- cthon fix some shutdown races. + +* Thu Jul 27 2006 Ian Kent - 5.0.1-0.rc1.8 +- Fix compile error. + +* Thu Jul 27 2006 Ian Kent - 5.0.1-0.rc1.7 +- cthon fix expire of various forms of nested mounts. + +* Mon Jul 24 2006 Ian Kent - 5.0.1-0.rc1.6 +- cthon more parser corrections and attempt to fix multi-mounts + with various combinations of submounts (still not right). + +* Wed Jul 19 2006 Ian Kent - 5.0.1-0.rc1.5 +- Add conflicts kernel < 2.6.17. +- Fix submount operation broken by connectathon updates. + +* Wed Jul 19 2006 Ian Kent - 5.0.1-0.rc1.4 +- Correction to host name validation test for connectathon tests. + +* Wed Jul 19 2006 Ian Kent - 5.0.1-0.rc1.3 +- More code cleanup and corrections for connectathon tests. + +* Wed Jul 19 2006 Ian Kent - 5.0.1-0.rc1.2 +- Code cleanup and fixes for connectathon tests. + +* Thu Jul 13 2006 Ian Kent - 5.0.1-0.rc1.1 +- Update version label to avoid package update problems. + +* Thu Jul 13 2006 Ian Kent - 5.0.0_beta6-8 +- add cacheing of negative lookups to reduce unneeded map + lookups (bz 197746 part 2). + +* Wed Jul 12 2006 Jesse Keating - 1:5.0.0_beta6-7.1 +- rebuild + +* Tue Jul 11 2006 Ian Kent - 5.0.0_beta6-7 +- correct directory cleanup in mount modules. +- merge key and wildcard LDAP query for lookups (bz 197746). + +* Sat Jul 8 2006 Ian Kent - 5.0.0_beta6-6 +- correct test for libhesiod. + +* Fri Jul 7 2006 Ian Kent - 5.0.0_beta6-5 +- correct auto.net installed as auto.smb. +- update LDAP auth - add autodectect option. + +* Wed Jul 5 2006 Ian Kent - 5.0.0_beta6-4 +- correct shutdown log message print. +- correct auth init test when no credentials required. + +* Tue Jul 4 2006 Ian Kent - 5.0.0_beta6-3 +- correct test for existence of auth config file. + +* Mon Jul 3 2006 Ian Kent - 5.0.0_beta6-2 +- merge LDAP authentication update for GSSAPI (Jeff Moyer). +- update default auth config to add options documenetation (Jeff Moyer). +- workaround segfaults at exit after using GSSAPI library. +- fix not checking return in init_ldap_connection (jeff Moyer). + +* Thu Jun 29 2006 Ian Kent - 5.0.0_beta6-1 +- consolidate to beta6, including: + - mode change update for config file. + - correction to get_query_dn fix from beta5-4. + +* Wed Jun 28 2006 Ian Kent - 5.0.0_beta5-6 +- cleanup defaults_read_config (Jeff Moyer). + +* Tue Jun 27 2006 Ian Kent - 5.0.0_beta5-5 +- allow global macro defines to override system macros. +- correct spelling error in default config files missed by + previous update. +- misc correctness and a memory leak fix. + +* Mon Jun 26 2006 Ian Kent - 5.0.0_beta5-4 +- correct spelling error in default config. +- fix default auth config not being installed. +- change LDAP query method as my test db was incorrect. +- change ldap defaults code to handle missing auth config. +- fix mistake in parsing old style LDAP specs. +- update LDAP so that new query method also works for old syntax. + +* Fri Jun 23 2006 Ian Kent - 5.0.0_beta5-3 +- lookup_init cleanup and fix missed memory leak. +- use nis map order to check if update is needed. +- fix couple of memory leaks in lookup_yp.c. +- fix pasre error in replicated server module. + +* Wed Jun 21 2006 Ian Kent - 5.0.0_beta5-2 +- Add openssl-devel to the BuildRequires, as it is needed for the LDAP + authentication bitsi also. + +* Tue Jun 20 2006 Ian Kent - 5.0.0_beta5-1 +- promote to beta5. + +* Tue Jun 20 2006 Ian Kent - 5.0.0_beta4-14 +- fix directory cleanup at exit. + +* Mon Jun 19 2006 Ian Kent - 5.0.0_beta4-13 +- Change LDAP message severity from crit to degug (bz# 183893). +- Corrections to INSTALL and README.v5.release. +- Add patch to fix segv on overlength map keys in file maps (Jeff Moter). +- Add patch to restrict scanning of /proc to pid directories only (Jeff Moyer). + +* Thu Jun 15 2006 Jeff Moyer - 5.0.0_beta4-12 +- Change BuildPrereq to BuildRequires as per the package guidelines. +- Add libxml2-devel to the BuildRequires, as it is needed for the LDAP + authentication bits. + +* Wed Jun 14 2006 Ian Kent - 5.0.0_beta4-11 +- add export access list matching to "hosts" lookup module (bz # 193585). + +* Tue Jun 13 2006 Jeff Moyer - 5.0.0_beta4-10 +- Add a BuildPrereq for cyrus-sasl-devel + +* Tue Jun 13 2006 Ian Kent - 5.0.0_beta4-9 +- move autofs4 module loading back to init script (part bz # 194061). + +* Mon Jun 12 2006 Ian Kent - 5.0.0_beta4-8 +- fix handling of master map entry update (bz # 193718). +- fix program map handling of invalid multi-mount offsets. + +* Sat Jun 10 2006 Ian Kent - 5.0.0_beta4-7 +- fix context init error (introduced by memory leak patch). + +* Fri Jun 9 2006 Ian Kent - 5.0.0_beta4-6 +- add free for working var in get_default_logging. +- add inialisation for kver in autofs_point struct. +- fix sources list corruption in check_update_map_sources. +- fix memory leak in walk_tree. +- fix memory leak in rpc_portmap_getport and rpc_ping_proto. +- fix memory leak in initialisation of lookup modules. + +* Thu Jun 8 2006 Ian Kent - 5.0.0_beta4-5 +- misc fixes for things found while investigating map re-read problem. + +* Wed Jun 7 2006 Ian Kent - 5.0.0_beta4-4 +- check base of offset mount tree is not a mount before umounting + its offsets. +- fix replicated mount parse for case where last name in list + fails lookup. +- correct indirect mount expire broken by the wildcard lookup fix. +- fix up multi-mount handling when wildcard map entry present. + +* Mon Jun 5 2006 Ian Kent - 5.0.0_beta4-3 +- correct config names in default.c (jpro@bas.ac.uk). + +* Mon Jun 5 2006 Ian Kent - 5.0.0_beta4-2 +- re-instate v4 directory cleanup (bz# 193832 again). +- backout master map lookup changes made to beta3. +- change default master map from /etc/auto.master to auto.master + so that we always use nsswitch to locate master map. +- change default installed master map to include "+auto.master" + to pickup NIS master map (all bz# 193831 again). + +* Fri Jun 2 2006 Ian Kent - 5.0.0_beta4-1 +- update to beta4. +- should address at least bzs 193798, 193770, 193831 and + possibly 193832. + +* Mon May 29 2006 Ian Kent - 5.0.0_beta3-6 +- add back test for nested mount in program map lookup. + - I must have commented this out for a reason. I guess we'll + find out soon enough. + +* Mon May 29 2006 Ian Kent - 5.0.0_beta3-5 +- fix handling of autofs filesystem mount fail on init. + +* Sat May 27 2006 Ian Kent - 5.0.0_beta3-4 +- updated hesiod patch. + +* Sat May 27 2006 Ian Kent - 5.0.0_beta3-3 +- update hesiod module (Jeff Moyer). + - add mutex to protect against overlapping mount requests. + - update return from mount request to give more sensible NSS_* + values. + +* Fri May 26 2006 Jeff Moyer - 1:5.0.0_beta3-2 +- Fix the install permissions for auto.master and auto.misc. + +* Thu May 25 2006 Ian Kent - 5.0.0_beta3-1 +- update source to version 5.0.0_beta3. +- add patch to remove extra debug print. +- add patch to + - fix memory alloc error in nis lookup module. + - add "_" to "." mapname translation to nis lookup module. +- add patch to add owner pid to mount list struct. +- add patch to disable NFSv4 when probing hosts (at least foe now). +- add patch to fix white space handling in replicated server selection code. +- add patch to prevent striping of debug info macro patch (Jeff Moyer). +- add patch to add sanity checks on rmdir_path and unlink (Jeff Moyer). +- add patch to fix e2fsck error code check (Jeff Moyer). + +* Tue May 16 2006 Ian Kent - 1:4.1.4-23 +- add patch to ignore the "bg" and "fg" mount options as they + aren't relevant for autofs mounts (bz #184386). + +* Tue May 2 2006 Ian Kent - 1:4.1.4-20 +- add patch to use "cifs" instead of smbfs and escape speces + in share names (bz #163999, #187732). + +* Tue Apr 11 2006 Ian Kent - 1:4.1.4-18 +- Add patch to allow customization of arguments to the + autofs-ldap-auto-master program (bz #187525). +- Add patch to escap "#" characters in exports from auto.net + program mount (bz#178304). + +* Fri Feb 10 2006 Jesse Keating - 1:4.1.4-16.2.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 1:4.1.4-16.2.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Wed Feb 1 2006 Ian Kent - 1:4.1.4-16.2 +- Add more general patch to translate "_" to "." in map names. (bz #147765) + +* Wed Jan 25 2006 Ian Kent - 1:4.1.4-16.1 +- Add patch to use LDAP_DEPRICATED compile option. (bz #173833) + +* Tue Jan 17 2006 Ian Kent - 1:4.1.4-16 +- Replace check-is-multi with more general multi-parse-fix. +- Add fix for premature return when waiting for lock file. +- Update copyright declaration for reentrant-syslog source. +- Add patch for configure option to disable locking during mount. + But don't disable locking by default. +- Add ability to handle automount schema used in Sun directory server. +- Quell compiler warning about getsockopt parameter. +- Quell compiler warning about yp_order parameter. + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Thu Nov 17 2005 Jeff Moyer - 1:4.1.4-14 +- Removed the /misc entry from the default auto.master. auto.misc has + an entry for the cdrom device, and the preferred method of mounting the + cd is via udev/hal. + +* Mon Nov 7 2005 Jeff Moyer - 1:4.1.4-13 +- Changed to sort -k 1, since that should be the same as +0. + +* Thu Nov 3 2005 Jeff Moyer - 1:4.1.4-12 +- The sort command no longer accepts options of the form "+0". This broke + auto.net, so the option was removed. Fixes bz #172111. + +* Wed Oct 26 2005 - 1:4.1.4-11 +- Check the return code of is_local_addr in get_best_mount. (bz #169523) + +* Wed Oct 26 2005 - 1:4.1.4-10 +- Fix some bugs in the parser +- allow -net instead of /etc/auto.net +- Fix a buffer overflow with large key lengths +- Don't allow autofs to unlink files, only to remove directories +- change to the upstream reentrant syslog patch from the band-aid deferred + syslog patch. +- Get rid of the init script patch that hard-coded the release to redhat. + This should be handled properly by all red hat distros. + +* Wed May 4 2005 Jeff Moyer - 1:4.1.4-8 +- Add in the deferred syslog patch. This fixes a hung automounter issue + related to unsafe calls to syslog in signal handler context. + +* Tue May 3 2005 Jeff Moyer - 1:4.1.4-7 +- I reversed the checking for multimount entries, breaking those configs! + This update puts the code back the way it was before I broke it. + +* Tue Apr 26 2005 Jeff Moyer - 1:4.1.4-6 +- Fix a race between mounting a share and updating the cache in the parent + process. If the mount completed first, the parent would not expire the + stale entry, leaving it first on the list. This causes map updates to not + be recognized (well, worse, they are recognized after the first expire, but + not subsequent ones). Fixes a regression, bug #137026 (rhel3 bug). + +* Fri Apr 15 2005 Chris Feist - 1:4.1.4-5 +- Fixed regression with -browse not taking effect. + +* Wed Apr 13 2005 Jeff Moyer - 1:4.1.4-4 +- Finish up with the merge breakage. +- Temporary fix for the multimount detection code. It seems half-baked. + +* Wed Apr 13 2005 Jeff Moyer - 1:4.1.4-3 +- Fix up the one-auto-master patch. My "improvements" had side-effects. + +* Wed Apr 13 2005 Jeff Moyer - 1:4.1.4-2 +- Import 4.1.4 and merge. + +* Mon Apr 4 2005 Jeff Moyer - 1:4.1.3-123 +- Add in an error case that was omitted in the multi-over patch. +- Update our auto.net to reflect the changes that went into 4.1.4_beta2. + This fixes a problem seen by at least one customer where a malformed entry + appeared first in the multimount list, thus causing the entire multimount + to be ignored. This new auto.net places that entry at the end, purely by + luck, but it fixes the problem in this one case. + +* Thu Mar 31 2005 Jeff Moyer - 1:4.1.3-119 +- Merge in the multi-over patch. This resolves an issue whereby multimounts + (such as those used for /net) could be processed in the wrong order, + resulting in directories not showing up in a multimount tree. The fix + is to process these directories in order, shortest to longer path. + +* Wed Mar 23 2005 Chris Feist - 1:4.1.3-115 +- Fixed regression causing any entries after a wildcard in an + indirect map to be ignored. (bz #151668). +- Fixed regression which caused local hosts to be mount instead + of --bind local directories. (bz #146887) + +* Thu Mar 17 2005 Chris Feist - 1:4.1.3-111 +- Fixed one off bug in the submount-variable-propagation patch. + (bz #143074) +- Fixed a bug in the init script which wouldn't find the -browse + option if it was preceded by another option. (fz #113494) + +* Mon Feb 28 2005 Chris Feist - 1:4.1.3-100 +- When using ldap if auto.master doesn't exist we now check for auto_master. + Addresses bz #130079 +- When using an auto.smb map we now remove the leading ':' from the path which + caused mount to fail in the past. Addresses bz #147492 +- Autofs now checks /etc/nsswitch.conf to determine in what order files & nis + are checked when looking up autofs submount maps which don't specify a + maptype. Addresses IT #57612. + +* Mon Feb 14 2005 Jeff Moyer - 1:4.1.3-99 +- Change Copyright to License in the spec file so it will build. + +* Fri Feb 11 2005 Jeff Moyer - 1:4.1.3-98 +- Program maps can repeat the last character of output. Fix this. + Addresses bz #138606 +- Return first entry when there are duplicate keys in a map. Addresses + bz #140108. +- Propagate custom map variables to submounts. Fixes bz #143074. +- Create a sysconfig variable to control whether we source only one master + map (the way sun does), or source all maps found (which is the default for + backwards compatibility). Addresses bz #143126. +- Revised version of the get_best_mount patch. (#146887) cfeist@redhat.com + The previous patch introduced a regression. Non-replicated mounts would + not have the white space stripped from the entry and the mount would fail. +- Handle comment characters in the middle of the automount line in + /etc/nsswitch.conf. Addresses bz #127457. + +* Wed Feb 2 2005 Chris Feist - 1:4.1.3-94 +- Stop automount from pinging hosts if there is only one host (#146887) + +* Wed Feb 2 2005 Jeff Moyer - 1:4.1.3-90 +- Fix potential double free in cache_release. This bug showed up in a + multi-map setup. Two calls to cache_release would result in a SIGSEGV, + and the automount process would never exit. + +* Mon Jan 24 2005 Chris Feist - 1:4.3-82 +- Fixed documentation so users know that any local mounts override + any other weighted mount. + +* Mon Jan 24 2005 Chris Feist - 1:4.3-80 +- Added a variable to determine if we created the directory or not + so we don't accidently remove a directory that we didn't create when + we stop autofs. (bz #134399) + +* Tue Jan 11 2005 Jeff Moyer - 1:4.1.3-76 +- Fix the large program map patch. + +* Tue Jan 11 2005 Jeff Moyer - 1:4.1.3-75 +- Fix some merging breakages that caused the package not to build. + +* Thu Jan 6 2005 - 1:4.1.3-74 +- Add in the map expiry patch +- Bring in other patches that have been committed to other branches. This + version should now contain all fixes we have to date +- Merge conflicts due to map expiry changes + +* Fri Nov 19 2004 Jeff Moyer - 1:4.1.3-57 +- Pass a socket into clntudp_bufcreate so that we don't use up additional + reserved ports. This patch, along with the socket leak fix, addresses + bz #128966. + +* Wed Nov 17 2004 - 1:4.1.3-56 +- Somehow the -browse patch either didn't get committed or got reverted. + Fixed. + +* Tue Nov 16 2004 Jeff Moyer - 1:4.1.3-55 +- Fix program maps so that they can have gt 4k characters. (Neil Horman) + Addresses bz #138994. +- Add a space after the colon here "Starting automounter:" in init script. + Fixes bz #138513. + +* Mon Nov 15 2004 Jeff Moyer - 1:4.1.3-53 +- Make autofs understand -[no]browse. Addresses fz #113494. + +* Thu Nov 11 2004 Jeff Moyer - 1:4.1.3-48 +- Fix the umount loop device function in the init script. + +* Wed Oct 27 2004 Chris Feist - 1:4.1.3-34 +- Added a patch to fix the automounter failing on ldap maps + when it couldn't get the whole map. (ie. when the search + limit was lower than the number of results) + +* Thu Oct 21 2004 Chris Feist - 1:4.1.3-32 +- Fixed the use of +ypmapname so the maps included with +ypmapname + are used in the correct order. (In the past the '+' entries + were always processed after local entries.) + +* Thu Oct 21 2004 Chris Feist - 1:4.1.3-31 +- Fixed the duplicate map detection code to detect if maps try + to mount on top of existing maps. + +* Wed Oct 20 2004 Chris Feist - 1:4.1.3-29 +- Fixed a problem with backwards compatability. Specifying local + maps without '/etc/' prepended to them now works. (bz #136038) + +* Fri Oct 15 2004 Chris Feist - 1:4.1.3-28 +- Fixed a bug which caused directories to never be unmounted. (bz #134403) + +* Thu Oct 14 2004 Chris Feist - 1:4.1.3-27 +- Fixed an error in the init script which caused duplicate entries to be + displayed when asking for autofs status. + +* Fri Oct 1 2004 Jeff Moyer - 1:4.1.3-22 +- Comment out map expiry (and related) patch for an FC3 build. + +* Thu Sep 23 2004 Jeff Moyer - 1:4.1.3-21 +- Make local options apply to all maps in a multi-map entry. + +* Tue Sep 21 2004 Jeff Moyer - 1:4.1.3-20 +- Merged my and Ian's socket leak fixes into one, smaller patch. Only + partially addresses bz #128966. +- Fix some more echo lines for internationalization. bz #77820 +- Revert the only one auto.master patch until we implement the +auto_master + syntax. Temporarily addresses bz #133055. + +* Thu Sep 2 2004 Jeff Moyer - 1:4.1.3-18 +- Umount loopback filesystems under automount points when stopping the + automounter. +- Uncomment the map expiry patch. +- change a close to an fclose in lookup_file.c + +* Tue Aug 31 2004 Jeff Moyer - 1:4.1.3-17 +- Add patch to support parsing nsswitch.conf to determine map sources. +- Disable this patch, and Ian's map expiry patch for a FC build. + +* Tue Aug 24 2004 Jeff Moyer - 1:4.1.3-16 +- Version 3 of Ian's map expiry changes. + +* Wed Aug 18 2004 Jeff Moyer - 1:4.1.3-15 +- Fix a socket leak in the rpc_subs, causing mounts to fail since we are + running out of port space fairly quickly. + +* Wed Aug 18 2004 Jeff Moyer - 1:4.1.3-14 +- New map expiry patch from Ian. +- Fix a couple signal races. No known problem reports of these, but they + are holes, none-the-less. + +* Tue Aug 10 2004 Jeff Moyer - 1:4.1.3-13 +- Only read one auto.master map (instead of concatenating all found sources). +- Uncomment Ian's experimental mount expiry patch. + +* Fri Aug 6 2004 Jeff Moyer - 1:4.1.3-12 +- Add a sysconfig entry to disable direct map support, and set this to + 1 by default. +- Disable the beta map expiry logic so I can build into a stable distro. +- Add defaults for all of the sysconfig variables to the init script so + we don't trip over user errors (i.e. deleting /etc/sysconfig/autofs). + +* Wed Aug 4 2004 Jeff Moyer - 1:4.1.3-11 +- Add beta map expiry code for wider testing. (Ian Kent) +- Fix check for ghosting option. I forgot to check for it in DAEMONOPTIONS. +- Remove STRIPDASH from /etc/sysconfig/autofs + +* Mon Jul 12 2004 Jeff Moyer - 1:4.1.3-10 +- Add bad chdir patch from Ian Kent. +- Add a typo fix for the mtab lock file. +- Nuke the stripdash patch. It didn't solve a problem. + +* Tue Jun 22 2004 Jeff Moyer - 1:4.1.3-9 +- Bump revison for inclusion in RHEL 3. + +* Mon Jun 21 2004 Jeff Moyer - 1:4.1.3-8 +- Change icmp ping to an rpc ping. (Ian Kent) +- Fix i18n patch + o Remove the extra \" from one echo line. + o Use echo -e if we are going to do a \n in the echo string. + +* Mon Jun 21 2004 Alan Cox +- Fixed i18n bug #107463 + +* Mon Jun 21 2004 Alan Cox +- Fixed i18n bug #107461 + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Sat Jun 5 2004 Jeff Moyer - 1:4.1.3-4 +- Perform an icmp ping request before rpc_pings, since the rpc clnt_create + function has a builtin default timeout of 60 seconds. This could result + in a long delay when a server in a replicated mount setup is down. +- For non-replicated server entries, ping a host before attempting to mount. + (Ian Kent) +- Change to %%configure. +- Put version-release into .version to allow for automount --version to + print exact info. +- Nuke my get-best-mount patch which always uses the long timeout. This + should no longer be needed. +- Put name into changelog entries to make them consistent. Add e:n-v-r + into Florian's entry. +- Stop autofs before uninstalling + +* Sat Jun 05 2004 Florian La Roche - 1:4.1.3-3 +- add a preun script to remove autofs + +* Tue Jun 1 2004 Jeff Moyer - 1:4.1.3-2 +- Incorporate patch from Ian which fixes an infinite loop seen by those + running older versions of the kernel patches (triggered by non-strict mounts + being the default). + +* Tue Jun 1 2004 Jeff Moyer - 1:4.1.3-1 +- Update to upstream 4.1.3. + +* Thu May 6 2004 Jeff Moyer - 1:4.1.2-6 +- The lookup_yp module only dealt with YPERR_KEY, all other errors were + treated as success. As a result, if the ypdomain was not bound, the + subprocess that starts mounts would SIGSEGV. This is now fixed. +- Option parsing in the init script was not precise enough, sometimes matching + filesystem options to one of --ghost, --timeout, --verbose, or --debug. + The option-parsing patch addresses this issue by making the regexp's much + more precise. +- Ian has rolled a third version of the replicated mount fixes. + +* Tue May 4 2004 Jeff Moyer - 1:4.1.2-5 +- Ian has a new fix for replicated server and multi-mounts. Updated the + patch for testing. Still beta. (Ian Kent) + +* Mon May 3 2004 Jeff Moyer - 1:4.1.2-4 +- Fix broken multi-mounts. test patch. (Ian Kent) + +* Tue Apr 20 2004 Jeff Moyer - 1:4.1.2-3 +- Fix a call to spawnl which forgot to specify a lock file. (nphilipp) + +* Wed Apr 14 2004 - 1:4.1.2-2 +- Pass --libdir= to ./configure so we get this right on 64 bit platforms that + support backwards compat. + +* Wed Apr 14 2004 Jeff Moyer - 1:4.1.2-1 +- Change hard-coded paths in the spec file to the %%{_xxx} variety. +- Update to upstream 4.1.2. +- Add a STRIPDASH option to /etc/sysconfig/autofs which allows for + compatibility with the Sun automounter options specification syntax in + auto.master. See /etc/sysconfig/autofs for more information. Addresses + bug 113950. + +* Tue Apr 6 2004 Jeff Moyer - 1:4.1.1-6 +- Add the /etc/sysconfig/autofs file, and supporting infrastructure in + the init script. +- Add support for UNDERSCORE_TO_DOT for those who want it. +- We no longer own /net. Move it to the filesystem package. + +* Tue Mar 30 2004 Jeff Moyer - 1:4.1.1-5 +- Clarify documentation on direct maps. +- Send automount daemons a HUP signal during reload. This tells them to + re-read maps (otherwise they use a cached version. Patch from the autofs + maintainer. + +* Mon Mar 22 2004 Jeff Moyer - 1:4.1.1-4 +- Fix init script to print out failures where appropriate. +- Build the automount daemon as a PIE. + +* Thu Mar 18 2004 Jeff Moyer - 1:4.1.1-3 +- Fix bug in get_best_mount, whereby if there is only one option, we + choose nothing. This is primarily due to the fact that we pass 0 in to + the get_best_mount function for the long timeout parameter. So, we + timeout trying to contact our first and only server, and never retry. + +* Thu Mar 18 2004 Jeff Moyer - 1:4.1.1-2 +- Prevent startup if a mountpoint is already mounted. + +* Thu Mar 18 2004 Jeff Moyer - 1:4.1.1-1 +- Update to 4.1.1, as it fixes problems with wildcards that people are + seeing quite a bit. + +* Wed Mar 17 2004 Jeff Moyer - 1:4.1.0-8 +- Fix ldap init code to parse server name and options correctly. + +* Tue Mar 16 2004 Jeff Moyer - 1:4.1.0-7 +- Moved the freeing of ap.path to cleanup_exit, as we would otherwise + reference an already-freed variable. + +* Mon Mar 15 2004 Jeff Moyer - 1:4.1.0-6 +- add %%config(noreplace) for auto.* config files. + +* Wed Mar 10 2004 Jeff Moyer 1:4.1.0-5 +- make the init script only recognize redhat systems. Nalin seems to remember + some arcane build system error that can be caused if we don't do this. + +* Wed Mar 10 2004 Jeff Moyer 1:4.1.0-4 +- comment out /net and /misc from the default auto.master. /net is important + since in a default shipping install, we can neatly co-exist with amd. + +* Wed Mar 10 2004 Jeff Moyer 1:4.1.0-3 +- Ported forward Red Hat's patches from 3.1.7 that were not already present + in 4.1.0. +- Moving autofs from version 3.1.7 to 4.1.0 + +* Mon Sep 29 2003 Ian Kent +- Added work around for O(1) patch oddity. + +* Sat Aug 16 2003 Ian Kent +- Fixed tree mounts. +- Corrected transciption error in autofs4-2.4.18 kernel module + +* Sun Aug 10 2003 Ian Kent +- Checked and merged most of the RedHat v3 patches +- Fixed kernel module handling wu-ftpd login problem (again) + +* Thu Aug 7 2003 Ian Kent +- Removed ineffective lock stuff +- Added -n to bind mount to prevent mtab update error +- Added retry to autofs umount to clean matb after fail +- Redirected messages from above to debug log and added info message +- Fixed autofs4 module reentrancy, pwd and chroot handling + +* Wed Jul 30 2003 Ian Kent +- Fixed autofs4 ghosting patch for 2.4.19 and above (again) +- Fixed autofs directory removal on failure of autofs mount +- Fixed lock file wait function overlapping calls to (u)mount + +* Sun Jul 27 2003 Ian Kent +- Implemented LDAP direct map handling for nisMap and automountMap schema +- Fixed autofs4 ghosting patch for 2.4.19 and above (again) +- Added locking to fix overlapping internal calls to (u)mount +- Added wait for mtab~ to improve tolerance of overlapping external calls to (u)mount +- Fixed ghosted directory removal after failed mount attempt + +* Wed May 28 2003 Ian Kent +- Cleaned up an restructured my added code +- Corrected ghosting problem with 2.4.19 and above +- Added autofs4 ghosting patch for 2.4.19 and above +- Implemented HUP signal to force update of ghosted maps + +* Sat Mar 23 2002 Ian Kent +- Add patch to implement directory ghosting and direct mounts +- Add patch to for autofs4 module to support ghosting + +* Wed Jan 17 2001 Nalin Dahyabhai +- use -fPIC instead of -fpic for modules and honor other RPM_OPT_FLAGS + +* Tue Feb 29 2000 Nalin Dahyabhai +- enable hesiod support over libbind + +* Fri Aug 13 1999 Cristian Gafton +- add patch from rth to avoid an infinite loop diff --git a/sources b/sources new file mode 100644 index 0000000..3ccfa8e --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (autofs-5.1.6.tar.gz) = e08ae85c65c21918640096caa1fa489937cd84c181dbe8a233d3fabc958d8d500820b73756ba3e343429199fa6bfe05c703005ec8fd013cc6839e69477d0ea0e