+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 020_auto_net_path_sortlocale_mountoptions.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/samples/auto.net .A/samples/auto.net
---- .B/samples/auto.net 2005-04-05 13:02:09.000000000 +0000
-+++ .A/samples/auto.net 2007-01-07 21:36:35.000000000 +0000
-@@ -11,7 +11,7 @@
-
- # 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,intr,nodev,nosuid,nonstrict,async"
-
- # Showmount comes in a number of names and varieties. "showmount" is
- # typically an older version which accepts the '--no-headers' flag
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 037_let_debian_rules_decide_on_CFLAGS.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/Makefile.rules .A/Makefile.rules
---- .B/Makefile.rules 2004-01-29 16:01:22.000000000 +0000
-+++ .A/Makefile.rules 2007-01-07 21:36:35.000000000 +0000
-@@ -17,15 +17,15 @@
- # Compilers, linkers and flags
- # The STRIP defined here *must not* remove any dynamic-loading symbols
-
--ifdef DEBUG
--CFLAGS = -O2 -g -DDEBUG
--LDFLAGS = -g
-+#ifdef DEBUG
-+#CFLAGS = -O2 -g -DDEBUG
-+#LDFLAGS = -g
- STRIP = :
--else
--CFLAGS = -O3 -fomit-frame-pointer -Wall
--LDFLAGS = -s
--STRIP = strip --strip-debug
--endif
-+#else
-+#CFLAGS = -O3 -fomit-frame-pointer -Wall
-+#LDFLAGS = -s
-+#STRIP = strip --strip-debug
-+#endif
-
- CC = gcc
- CXX = g++
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 042_default_auto_master_all_commented_out.dpatch by
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/samples/auto.master .A/samples/auto.master
---- .B/samples/auto.master 2005-01-04 14:36:54.000000000 +0000
-+++ .A/samples/auto.master 2007-01-07 21:36:35.000000000 +0000
-@@ -7,5 +7,5 @@
- # For details of the format look at autofs(5).
- #/misc /etc/auto.misc --timeout=60
- #/smb /etc/auto.smb
--/misc /etc/auto.misc
--/net /etc/auto.net
-+#/misc /etc/auto.misc
-+#/net /etc/auto.net
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 060_non_replicated_ping.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/modules/mount_nfs.c .A/modules/mount_nfs.c
---- .B/modules/mount_nfs.c 2005-04-05 12:42:42.000000000 +0000
-+++ .A/modules/mount_nfs.c 2007-01-07 21:36:35.000000000 +0000
-@@ -31,6 +31,7 @@
- #include <netinet/in.h>
- #include <linux/nfs.h>
- #include <linux/nfs2.h>
-+#include <ctype.h>
-
- #define MODULE_MOUNT
- #include "automount.h"
-@@ -105,28 +106,117 @@
-
- return 1;
- }
-+
-+/*
-+ * If the entry doesn't contain a ',' or doesn't contain more than
-+ * one ':' then @what is not a replicated server entry.
-+ */
-+static int inline is_replicated_entry(char *what)
-+{
-+ return strchr(what, ',') ||
-+ (strchr(what, ':') != strrchr(what, ':'));
-+}
-+
-+/*
-+ * Check to see if the 'host:path' or 'host' is on the local machine
-+ * Returns < 0 if there is a host lookup problem, otherwise returns 0
-+ * if it's not a local mount, and returns > 0 if it is a local mount.
-+ */
-+int is_local_mount(const char *hostpath)
-+{
-+ struct hostent *he;
-+ char **haddr;
-+ char *delim;
-+ char *hostname;
-+ int hostnamelen;
-+ int local = 0;
-+
-+ debug(MODPREFIX "is_local_mount: %s", hostpath);
-+ delim = strpbrk(hostpath,":");
-+
-+ if (delim)
-+ hostnamelen = delim - hostpath;
-+ else
-+ hostnamelen = strlen(hostpath);
-+
-+ hostname = malloc(hostnamelen+1);
-+ strncpy(hostname, hostpath, hostnamelen);
-+ hostname[hostnamelen] = '\0';
-+ he = gethostbyname(hostname);
-+ if (!he) {
-+ error(MODPREFIX "host %s: lookup failure", hostname);
-+ return -1;
-+ }
-+
-+ for (haddr = he->h_addr_list; *haddr; haddr++) {
-+ local = is_local_addr(hostname, *haddr, he->h_length);
-+ if (local < 0)
-+ return local;
-+ if (local) {
-+ debug(MODPREFIX "host %s: is localhost",
-+ hostname);
-+ return local;
-+ }
-+ }
-+ return 0;
-+}
-+
- /*
- * Given a mount string, return (in the same string) the
-- * best mount to use based on weight/locality/rpctime
-+ * best mount to use based on locality/weight/rpctime.
-+ *
-+ * If longtimeout is set to 0 then we only do 100 ms pings to hosts. In
-+ * the event that this fails, we call ourself recursively with the
-+ * longtimeout option set to 1. In this case we ping for up to 10s and
-+ * skip logic for detecting if a localhost has been passed. (if a local
-+ * host had been passed, we would have returned that mount as the best
-+ * mount. The skipping of local maps in this case is an optimization).
-+ *
- * - return -1 and what = '\0' on error,
- * 1 and what = local mount path if local bind,
- * else 0 and what = remote mount path
- */
--int get_best_mount(char *what, const char *original, int longtimeout, int skiplocal)
-+int get_best_mount(char *what, const char *original, int longtimeout)
- {
- char *p = what;
- char *winner = NULL;
- int winner_weight = INT_MAX, local = 0;
- double winner_time = 0;
-- char *delim;
-+ char *delim, *pstrip;
- int sec = (longtimeout) ? 10 : 0;
- int micros = (longtimeout) ? 0 : 100000;
-+ int skiplocal = longtimeout; /* clearly local is not available */
-
- if (!p) {
- *what = '\0';
- return -1;
- }
-
-+ /*
-+ * If only one mountpoint has been passed in, we don't need to
-+ * do anything except strip whitespace from the end of the string.
-+ */
-+ if (!is_replicated_entry(p)) {
-+ for (pstrip = p+strlen(p) - 1; pstrip >= p; pstrip--)
-+ if (isspace(*pstrip))
-+ *pstrip = '\0';
-+
-+ /* Check if the host is the localhost */
-+ if (is_local_mount(p) > 0) {
-+ debug(MODPREFIX "host %s: is localhost", p);
-+
-+ /* Strip off hostname and ':' */
-+ delim = strchr(p,':');
-+ while (delim && *delim != '\0') {
-+ delim++;
-+ *what = *delim;
-+ what++;
-+ }
-+ return 1;
-+ }
-+ return 0;
-+ }
-+
- while (p && *p) {
- char *next;
- unsigned int ping_stat = 0;
-@@ -171,37 +261,17 @@
- /* p points to a server, "next is our next parse point */
- if (!skiplocal) {
- /* Check if it's localhost */
-- struct hostent *he;
-- char **haddr;
--
-- he = gethostbyname(p);
-- if (!he) {
-- error(MODPREFIX "host %s: lookup failure", p);
-- p = next;
-- continue;
-- }
--
-- /* Check each host in round robin list */
-- for (haddr = he->h_addr_list; *haddr; haddr++) {
-- local = is_local_addr(p, *haddr, he->h_length);
--
-- if (local < 0)
-- continue;
--
-- if (local) {
-- winner = p;
-- break;
-- }
-- }
--
-+ local = is_local_mount(p);
- if (local < 0) {
- local = 0;
- p = next;
- continue;
- }
-
-- if (local)
-+ if (local) {
-+ winner = p;
- break;
-+ }
- }
-
- /* ping each (or the) entry to see if it's alive. */
-@@ -214,6 +284,7 @@
- /* First unweighted or only host is alive so set winner */
- if (!winner) {
- winner = p;
-+ winner_time = 1;
- /* No more to check, return it */
- if (!next || !*next)
- break;
-@@ -256,7 +327,7 @@
- */
- if (!local && winner_weight == INT_MAX) {
- /* We had more than one contender and none responded in time */
-- if (winner_time != 0 && winner_time > 500) {
-+ if (winner_time == 0 || winner_time > 500) {
- /* We've already tried a longer timeout */
- if (!longtimeout) {
- /* Reset string and try again */
-@@ -267,16 +338,14 @@
- "retrying with longer timeout",
- original);
-
-- return get_best_mount(what, original, 1, 1);
-+ return get_best_mount(what, original, 1);
- }
- }
- }
-
-- /* No winner found so bail */
-- if (!winner) {
-- *what = '\0';
-- return 0;
-- }
-+ /* No winner found so return first */
-+ if (!winner)
-+ winner = what;
-
- /*
- * We now have our winner, copy it to the front of the string,
-@@ -395,7 +464,7 @@
- /* No colon, take this as a bind (local) entry */
- local = 1;
- } else if (!nosymlink) {
-- local = get_best_mount(whatstr, what, 0, 0);
-+ local = get_best_mount(whatstr, what, 0);
- if (!*whatstr) {
- warn(MODPREFIX "no host elected");
- return 1;
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 061_multi_parse_fix.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/modules/parse_sun.c .A/modules/parse_sun.c
---- .B/modules/parse_sun.c 2005-04-05 12:42:42.000000000 +0000
-+++ .A/modules/parse_sun.c 2007-01-07 21:36:35.000000000 +0000
-@@ -766,7 +766,16 @@
- {
- const char *p = (char *) mapent;
- int multi = 0;
-- int first_chunk = 0;
-+ int not_first_chunk = 0;
-+
-+ if (!p) {
-+ crit("check_is_multi: unexpected NULL map entry pointer");
-+ return 0;
-+ }
-+
-+ /* If first character is "/" it's a multi-mount */
-+ if (*p == '/')
-+ return 1;
-
- while (*p) {
- p = skipspace(p);
-@@ -779,7 +788,7 @@
- * path that begins with '/' indicates a mutil-mount
- * entry.
- */
-- if (first_chunk) {
-+ if (not_first_chunk) {
- if (*p == '/' || *p == '-') {
- multi = 1;
- break;
-@@ -796,7 +805,7 @@
- * after which it's a multi mount.
- */
- p += chunklen(p, check_colon(p));
-- first_chunk++;
-+ not_first_chunk++;
- }
-
- return multi;
-@@ -883,7 +892,12 @@
- return 1;
- }
-
-- path = dequote(p, l = chunklen(p, 0));
-+ if (*p != '/') {
-+ l = 0;
-+ path = dequote("/", 1);
-+ } else
-+ path = dequote(p, l = chunklen(p, 0));
-+
- if (!path) {
- error(MODPREFIX "out of memory");
- free(myoptions);
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 062_fix_memory_leak.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/modules/mount_nfs.c .A/modules/mount_nfs.c
---- .B/modules/mount_nfs.c 2007-01-07 21:36:35.000000000 +0000
-+++ .A/modules/mount_nfs.c 2007-01-07 21:36:35.000000000 +0000
-@@ -145,16 +145,20 @@
- he = gethostbyname(hostname);
- if (!he) {
- error(MODPREFIX "host %s: lookup failure", hostname);
-+ free(hostname);
- return -1;
- }
-
- for (haddr = he->h_addr_list; *haddr; haddr++) {
- local = is_local_addr(hostname, *haddr, he->h_length);
-- if (local < 0)
-+ if (local < 0) {
-+ free(hostname);
- return local;
-+ }
- if (local) {
- debug(MODPREFIX "host %s: is localhost",
- hostname);
-+ free(hostname);
- return local;
- }
- }
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 063_misc_fixes.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/lib/cache.c .A/lib/cache.c
---- .B/lib/cache.c 2005-02-06 06:00:53.000000000 +0000
-+++ .A/lib/cache.c 2007-01-07 21:36:35.000000000 +0000
-@@ -337,8 +337,10 @@
- if (!path)
- return;
-
-- if (is_mounted(_PATH_MOUNTED, path))
-+ if (is_mounted(_PATH_MOUNTED, path)) {
-+ free(path);
- continue;
-+ }
-
- if (me->age < age) {
- mapent_hash[i] = me->next;
-diff -Naur .B/modules/lookup_file.c .A/modules/lookup_file.c
---- .B/modules/lookup_file.c 2005-04-06 15:14:23.000000000 +0000
-+++ .A/modules/lookup_file.c 2007-01-07 21:36:35.000000000 +0000
-@@ -157,6 +157,10 @@
- break;
-
- case st_compare:
-+ if (kptr - key > KEY_MAX_LEN) {
-+ state = st_badent;
-+ break;
-+ }
- if (ch == '\n')
- state = st_begin;
- else if (isspace(ch) && !escape) {
-diff -Naur .B/modules/parse_sun.c .A/modules/parse_sun.c
---- .B/modules/parse_sun.c 2007-01-07 21:36:35.000000000 +0000
-+++ .A/modules/parse_sun.c 2007-01-07 21:36:35.000000000 +0000
-@@ -680,6 +680,10 @@
- "mounting root %s, mountpoint %s, what %s, fstype %s, options %s\n",
- root, mountpoint, what, fstype, options);
-
-+ /* A malformed entry of the form key /xyz will trigger this case */
-+ if (!what || *what == '\0')
-+ return 1;
-+
- if (!strcmp(fstype, "nfs")) {
- rv = mount_nfs->mount_mount(root, mountpoint, strlen(mountpoint),
- what, fstype, options, mount_nfs->context);
-@@ -695,6 +699,18 @@
- return rv;
- }
-
-+static int key_exists(struct multi_mnt *list, char *path, int pathlen)
-+{
-+ struct multi_mnt *mmptr = list;
-+
-+ while (mmptr && pathlen == strlen(mmptr->path)) {
-+ if (!strncmp(mmptr->path, path, pathlen))
-+ return 1;
-+ mmptr = mmptr->next;
-+ }
-+ return 0;
-+}
-+
- /*
- * Build list of mounts in shortest -> longest order.
- * Pass in list head and return list head.
-@@ -725,6 +741,12 @@
- mmptr = mmptr->next;
- }
-
-+ /* if a multimount entry has duplicate keys, it is invalid */
-+ if (key_exists(mmptr, path, plen)) {
-+ free(new);
-+ return NULL;
-+ }
-+
- if (old)
- old->next = new;
- new->next = mmptr;
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 064_support_options_on_nis_maps.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/samples/rc.autofs.in .A/samples/rc.autofs.in
---- .B/samples/rc.autofs.in 2005-04-11 11:30:54.000000000 +0000
-+++ .A/samples/rc.autofs.in 2007-01-07 21:36:35.000000000 +0000
-@@ -129,7 +129,17 @@
- else
- map="$1"
- fi
-- /usr/bin/ypcat -k "$map" 2> /dev/null | sed -e '/^#/d' -e '/^$/d'
-+
-+ # Append the map's options at the _start_ if there are any options already
-+ # (ie. myopt -> $2,myopt), otherwise just append them at the end.
-+ if [ -z "$2" ]; then
-+ /usr/bin/ypcat -k "$map" 2> /dev/null | sed -e '/^#/d' -e '/^$/d'
-+ else
-+ /usr/bin/ypcat -k "$map" 2> /dev/null |
-+ sed -e '/^#/d' -e '/^$/d' \
-+ -e "s/^[ \t]*\([^ \t]\+\)[ \t]\+\([^ \t]\+\)[ \t]\+-\([^ \t]\+\)/\1 \2 $2,\3/" \
-+ -e "s/^[ \t]*\([^ \t]\+\)[ \t]\+\([^ \t]\+\)[ \t]*$/\1 \2 $2/"
-+ fi
- }
-
- function getfilemounts()
-@@ -141,10 +151,11 @@
- if [ "`echo $auto_master_in | grep '^+'`" = "" ]; then
- echo $auto_master_in
- else
-- for nismap in `cat /etc/auto.master | grep '^\+' |
-- sed -e '/^#/d' -e '/^$/d'`; do
-- catnismap `echo "$nismap" | sed -e 's/^\+//'`
-- done
-+ cat /etc/auto.master | grep '^\+' | sed -e '/^#/d' -e '/^$/d' | (
-+ while read map options; do
-+ catnismap `echo "$map" | sed -e 's/^\+//'` $options
-+ done
-+ )
- fi
- done
- )
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 065_fix_master_map_in_ldap.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/samples/rc.autofs.in .A/samples/rc.autofs.in
---- .B/samples/rc.autofs.in 2007-01-07 21:36:35.000000000 +0000
-+++ .A/samples/rc.autofs.in 2007-01-07 21:36:35.000000000 +0000
-@@ -175,7 +175,11 @@
- function getldapmounts()
- {
- if [ -x @@autofslibdir@@/autofs-ldap-auto-master ]; then
-+ [ ! -z $LDAPURI ] && export LDAPURI="$LDAPURI"
-+ [ ! -z $LDAPBASE ] && export LDAPBASE="$LDAPBASE"
- @@autofslibdir@@/autofs-ldap-auto-master 2> /dev/null
-+ @@autofslibdir@@/autofs-ldap-auto-master -m automountMap \
-+ -e automount -n ou -k cn -v automountInformation 2> /dev/null
- fi
- }
-
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 066_canonicalise_mount_points.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/samples/rc.autofs.in .A/samples/rc.autofs.in
---- .B/samples/rc.autofs.in 2007-01-07 21:36:35.000000000 +0000
-+++ .A/samples/rc.autofs.in 2007-01-07 21:36:35.000000000 +0000
-@@ -244,6 +244,13 @@
- continue
- fi
-
-+ # If possible, canonicalise the path so it will always unmount
-+ # cleanly.
-+ link=`readlink -f "$dir"`
-+ if [ ! -z "$link" ]; then
-+ dir="$link"
-+ fi
-+
- # Do not include a map if it is a duplicate, maps on top of
- # another map or another map, maps on top of it.
- for knownmap in $knownmaps
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 067_allow_disabling_bind_mounts.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/modules/mount_bind.c .A/modules/mount_bind.c
---- .B/modules/mount_bind.c 2005-01-10 13:28:29.000000000 +0000
-+++ .A/modules/mount_bind.c 2007-01-07 21:36:35.000000000 +0000
-@@ -107,7 +107,7 @@
- if (options == NULL || *options == '\0')
- options = "defaults";
-
-- if (bind_works) {
-+ if (bind_works && strcmp(options, "symlink") != 0) {
- int status, existed = 1;
-
- debug(MODPREFIX "calling mkdir_path %s", fullpath);
-diff -Naur .B/modules/mount_nfs.c .A/modules/mount_nfs.c
---- .B/modules/mount_nfs.c 2007-01-07 21:36:35.000000000 +0000
-+++ .A/modules/mount_nfs.c 2007-01-07 21:36:35.000000000 +0000
-@@ -391,7 +391,8 @@
- char *whatstr;
- char *nfsoptions = NULL;
- int local, err;
-- int nosymlink = 0;
-+ int nosymlink = 0; /* Actually misnamed, should be "nobind" now */
-+ int symlink = 0; /* Prefer symlinks to bind mounts? */
- int ro = 0; /* Set if mount bind should be read-only */
-
- debug(MODPREFIX "root=%s name=%s what=%s, fstype=%s, options=%s",
-@@ -405,7 +406,10 @@
- strcpy(whatstr, what);
-
- /* Extract "nosymlink" pseudo-option which stops local filesystems
-- from being symlinked */
-+ from being bind mounted, and "symlink" pseudo-option which does not
-+ do the exact opposite, but rather makes any bind mount into a
-+ symlink instead. (Both nosymlink and symlink at the same time
-+ make no sense, of course.) */
- if (options) {
- const char *comma;
- char *nfsp;
-@@ -446,6 +450,8 @@
- #endif
- if (strncmp("nosymlink", cp, end - cp + 1) == 0)
- nosymlink = 1;
-+ else if (strncmp("symlink", cp, end - cp + 1) == 0)
-+ symlink = 1;
- else {
- /* Check for options that also make sense
- with bind mounts */
-@@ -457,8 +463,8 @@
- }
- }
-
-- debug(MODPREFIX "nfs options=\"%s\", nosymlink=%d, ro=%d",
-- nfsoptions, nosymlink, ro);
-+ debug(MODPREFIX "nfs options=\"%s\", nosymlink=%d, symlink=%d, ro=%d",
-+ nfsoptions, nosymlink, symlink, ro);
- }
-
- local = 0;
-@@ -490,7 +496,11 @@
- if (local) {
- /* Local host -- do a "bind" */
-
-- const char *bind_options = ro ? "ro" : "";
-+ const char *bind_options;
-+ if (symlink)
-+ bind_options = "symlink";
-+ else
-+ bind_options = ro ? "ro" : "";
-
- debug(MODPREFIX "%s is local, doing bind", name);
-
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 067_ldap_no_first_message.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/modules/lookup_ldap.c .A/modules/lookup_ldap.c
---- .B/modules/lookup_ldap.c 2005-02-27 05:37:14.000000000 +0000
-+++ .A/modules/lookup_ldap.c 2007-01-07 21:36:35.000000000 +0000
-@@ -437,7 +437,7 @@
-
- e = ldap_first_entry(ldap, result);
- if (!e) {
-- crit(MODPREFIX "got answer, but no first entry for %s", query);
-+ debug(MODPREFIX "got answer, but no first entry for %s", query);
- ldap_msgfree(result);
- ldap_unbind(ldap);
- return CHE_MISSING;
-@@ -545,7 +545,7 @@
-
- e = ldap_first_entry(ldap, result);
- if (!e) {
-- crit(MODPREFIX "got answer, but no first entry for %s", query);
-+ debug(MODPREFIX "got answer, but no first entry for %s", query);
- ldap_msgfree(result);
- ldap_unbind(ldap);
- return CHE_MISSING;
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 068_fix_invalid_rpcgen_code.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/lib/Makefile .A/lib/Makefile
---- .B/lib/Makefile 2005-01-09 09:16:43.000000000 +0000
-+++ .A/lib/Makefile 2007-01-07 21:36:36.000000000 +0000
-@@ -39,6 +39,10 @@
-
- mount_xdr.c: mount.h
- $(RPCGEN) -c -o mount_xdr.c mount.x
-+ sed -i -e 's/IXDR_GET_LONG(\([^)]*\))/((long)IXDR_GET_U_INT32(\1))/' mount_xdr.c
-+ sed -i -e 's/IXDR_PUT_LONG(\([^)]*\),\([^)]*\))/((long)IXDR_PUT_INT32(\1,(long)(\2)))/' mount_xdr.c
-+ sed -i -e 's/IXDR_GET_SHORT(\([^)]*\))/((short)IXDR_GET_U_INT32(\1))/' mount_xdr.c
-+ sed -i -e 's/IXDR_PUT_SHORT(\([^)]*\),\([^)]*\))/((long)IXDR_PUT_INT32(\1,(long)(\2)))/' mount_xdr.c
-
- mount_xdr.o: mount_xdr.c
- $(CC) $(CFLAGS) -Wno-unused-variable -o mount_xdr.o -c mount_xdr.c
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 069_support_spaces_in_smb_share_names.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/samples/auto.smb .A/samples/auto.smb
---- .B/samples/auto.smb 2005-04-05 13:02:09.000000000 +0000
-+++ .A/samples/auto.smb 2007-01-07 21:36:36.000000000 +0000
-@@ -20,7 +20,7 @@
-
- $SMBCLIENT -gNL $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'|' -- '
- BEGIN { ORS=""; first=1 }
-- /Disk/ { if (first) { print opts; first=0 }; print " \\\n\t /" $2, "://" key "/" $2 }
-+ /Disk/ { if (first) { print opts; first=0 }; sub(/ /, "\\ ", $2); print " \\\n\t /" $2, "://" key "/" $2 }
- END { if (!first) print "\n"; else exit 1 }
- '
-
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 070_fix_regex_typo.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/samples/rc.autofs.in .A/samples/rc.autofs.in
---- .B/samples/rc.autofs.in 2007-01-07 21:36:35.000000000 +0000
-+++ .A/samples/rc.autofs.in 2007-01-07 21:36:36.000000000 +0000
-@@ -148,7 +148,7 @@
- cat /etc/auto.master | awk '{print $0}' | sed -e '/^#/d' -e '/^$/d' | (
- while read auto_master_in
- do
-- if [ "`echo $auto_master_in | grep '^+'`" = "" ]; then
-+ if [ "`echo $auto_master_in | grep '^\+'`" = "" ]; then
- echo $auto_master_in
- else
- cat /etc/auto.master | grep '^\+' | sed -e '/^#/d' -e '/^$/d' | (
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 071_fix_ldap_mounts.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/samples/rc.autofs.in .A/samples/rc.autofs.in
---- .B/samples/rc.autofs.in 2007-01-07 21:36:36.000000000 +0000
-+++ .A/samples/rc.autofs.in 2007-01-07 21:36:36.000000000 +0000
-@@ -319,7 +319,7 @@
- maptype=`echo $map | cut -f1 -d:`
- # Handle degenerate map specifiers
- if [ "$maptype" = "$map" ] ; then
-- if [ "$map" = "hesiod" -o "$map" = "userhome" ] ; then
-+ if [ "$map" = "hesiod" -o "$map" = "userhome" -o "$map" = "ldap" ] ; then
- maptype=$map
- map=
- elif [ "$map" = "multi" ] ; then
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 072_fix_auto_net_sort.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/samples/auto.net .A/samples/auto.net
---- .B/samples/auto.net 2007-01-07 21:36:35.000000000 +0000
-+++ .A/samples/auto.net 2007-01-07 21:36:36.000000000 +0000
-@@ -37,7 +37,7 @@
- # Newer distributions get this right
- SHOWMOUNT="$SMNT --no-headers -e $key"
-
--$SHOWMOUNT | LC_ALL=C sort +0 | \
-+$SHOWMOUNT | LC_ALL=C sort -k 1 | \
- awk -v key="$key" -v opts="$opts" -- '
- BEGIN { ORS=""; first=1 }
- { if (first) { print opts; first=0 }; print " \\\n\t" $1, key ":" $1 }
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 073_configurable_locking.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/configure .A/configure
---- .B/configure 2005-04-06 15:24:37.000000000 +0000
-+++ .A/configure 2007-01-07 21:36:36.000000000 +0000
-@@ -842,6 +842,7 @@
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --disable-ext-env disable search in environment for substitution variable
-+--disable-mount-locking disable use of locking when spawning mount command
-
- Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
-@@ -4308,6 +4309,23 @@
- fi
-
- #
-+# Disable use of locking when spawning mount command
-+#
-+# Check whether --enable-mount-locking or --disable-mount-locking was given.
-+if test "${enable_mount_locking+set}" = set; then
-+ enableval="$enable_mount_locking"
-+
-+else
-+ enableval=yes
-+fi;
-+if test x$enable_mount_locking = xyes -o x$enableval = xyes; then
-+ cat >>confdefs.h <<\_ACEOF
-+#define ENABLE_MOUNT_LOCKING 1
-+_ACEOF
-+
-+fi
-+
-+#
- # Write Makefile.conf and include/config.h
- #
- ac_config_headers="$ac_config_headers include/config.h"
-diff -Naur .B/configure.in .A/configure.in
---- .B/configure.in 2005-04-06 15:24:37.000000000 +0000
-+++ .A/configure.in 2007-01-07 21:36:36.000000000 +0000
-@@ -167,6 +167,16 @@
- fi
-
- #
-+# Disable use of locking when spawning mount command
-+#
-+AC_ARG_ENABLE(mount-locking,
-+--disable-mount-locking disable use of locking when spawning mount command,,
-+ enableval=yes)
-+if test x$enable_mount_locking = xyes -o x$enableval = xyes; then
-+ AC_DEFINE(ENABLE_MOUNT_LOCKING, 1)
-+fi
-+
-+#
- # Write Makefile.conf and include/config.h
- #
- AC_CONFIG_HEADER(include/config.h)
-diff -Naur .B/daemon/spawn.c .A/daemon/spawn.c
---- .B/daemon/spawn.c 2005-02-10 12:56:53.000000000 +0000
-+++ .A/daemon/spawn.c 2007-01-07 21:36:36.000000000 +0000
-@@ -322,6 +322,7 @@
- return do_spawn(logpri, 0, prog, (const char **) argv);
- }
-
-+#ifdef ENABLE_MOUNT_LOCKING
- int spawnll(int logpri, const char *prog, ...)
- {
- va_list arg;
-@@ -342,3 +343,4 @@
-
- return do_spawn(logpri, 1, prog, (const char **) argv);
- }
-+#endif
-diff -Naur .B/include/automount.h .A/include/automount.h
---- .B/include/automount.h 2005-01-26 13:03:02.000000000 +0000
-+++ .A/include/automount.h 2007-01-07 21:36:36.000000000 +0000
-@@ -121,9 +121,13 @@
-
- int aquire_lock(void);
- void release_lock(void);
--int spawnll(int logpri, const char *prog, ...);
- int spawnl(int logpri, const char *prog, ...);
--int spawnv(int logpri, const char *prog, const char *const *argv);
-+#ifdef ENABLE_MOUNT_LOCKING
-+int spawnll(int logpri, const char *prog, ...);
-+#else
-+#define spawnll spawnl
-+#endif
-+int spawnv(int ogpri, const char *prog, const char *const *argv);
- void reset_signals(void);
- void ignore_signals(void);
- void discard_pending(int sig);
-diff -Naur .B/include/config.h.in .A/include/config.h.in
---- .B/include/config.h.in 2004-02-03 15:23:21.000000000 +0000
-+++ .A/include/config.h.in 2007-01-07 21:36:36.000000000 +0000
-@@ -25,3 +25,5 @@
- #undef HAVE_SLOPPY_MOUNT
-
- #undef ENABLE_EXT_ENV
-+
-+#undef ENABLE_MOUNT_LOCKING
-diff -Naur .B/patches/util-linux-2.12a-flock.patch .A/patches/util-linux-2.12a-flock.patch
---- .B/patches/util-linux-2.12a-flock.patch 1970-01-01 00:00:00.000000000 +0000
-+++ .A/patches/util-linux-2.12a-flock.patch 2007-01-07 21:36:36.000000000 +0000
-@@ -0,0 +1,30 @@
-+--- util-linux-2.12a/mount/fstab.c.flock 2005-09-17 01:36:03.000000000 +0800
-++++ util-linux-2.12a/mount/fstab.c 2005-09-17 01:41:12.000000000 +0800
-+@@ -488,7 +488,7 @@ lock_mtab (void) {
-+ }
-+ /* proceed anyway */
-+ }
-+- we_created_lockfile = 1;
-++ we_created_lockfile = fd;
-+ } else {
-+ static int tries = 0;
-+
-+@@ -510,9 +510,8 @@ lock_mtab (void) {
-+ MOUNTED_LOCK);
-+ sleep(1);
-+ }
-++ close(fd);
-+ }
-+-
-+- close(fd);
-+ }
-+ }
-+
-+@@ -520,6 +519,7 @@ lock_mtab (void) {
-+ void
-+ unlock_mtab (void) {
-+ if (we_created_lockfile) {
-++ close(we_created_lockfile);
-+ unlink (MOUNTED_LOCK);
-+ we_created_lockfile = 0;
-+ }
-diff -Naur .B/patches/util-linux-2.12q-flock.patch .A/patches/util-linux-2.12q-flock.patch
---- .B/patches/util-linux-2.12q-flock.patch 1970-01-01 00:00:00.000000000 +0000
-+++ .A/patches/util-linux-2.12q-flock.patch 2007-01-07 21:36:36.000000000 +0000
-@@ -0,0 +1,29 @@
-+--- util-linux-2.12q/mount/fstab.c.flock 2005-09-17 01:10:37.000000000 +0800
-++++ util-linux-2.12q/mount/fstab.c 2005-09-17 01:16:51.000000000 +0800
-+@@ -417,6 +417,7 @@
-+ unlock_mtab (void) {
-+ if (we_created_lockfile) {
-+ unlink (MOUNTED_LOCK);
-++ close(we_created_lock_file);
-+ we_created_lockfile = 0;
-+ }
-+ }
-+@@ -528,6 +529,7 @@
-+ }
-+ /* proceed anyway */
-+ }
-++ we_created_lock_file = fd;
-+ } else {
-+ static int tries = 0;
-+
-+@@ -549,9 +551,8 @@
-+ MOUNTED_LOCK);
-+ sleep(1);
-+ }
-++ close(fd);
-+ }
-+-
-+- close(fd);
-+ }
-+ }
-+
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 074_auto_smb_cifs.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/samples/auto.smb .A/samples/auto.smb
---- .B/samples/auto.smb 2007-01-07 21:36:36.000000000 +0000
-+++ .A/samples/auto.smb 2007-01-07 21:36:36.000000000 +0000
-@@ -5,7 +5,7 @@
- # This file must be executable to work! chmod 755!
-
- key="$1"
--opts="-fstype=smbfs"
-+opts="-fstype=cifs"
-
- for P in /bin /sbin /usr/bin /usr/sbin
- do
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 075_auto_net_escape_hash.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/samples/auto.net .A/samples/auto.net
---- .B/samples/auto.net 2007-01-07 21:36:36.000000000 +0000
-+++ .A/samples/auto.net 2007-01-07 21:36:36.000000000 +0000
-@@ -42,4 +42,4 @@
- BEGIN { ORS=""; first=1 }
- { if (first) { print opts; first=0 }; print " \\\n\t" $1, key ":" $1 }
- END { if (!first) print "\n"; else exit 1 }
-- '
-+ ' | sed 's/#/\\#/g'
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 076_ldap_deprecated.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/aclocal.m4 .A/aclocal.m4
---- .B/aclocal.m4 2003-09-29 08:22:35.000000000 +0000
-+++ .A/aclocal.m4 2007-01-07 21:36:36.000000000 +0000
-@@ -9,8 +9,8 @@
- AC_DEFUN(AF_PATH_INCLUDE,
- [AC_PATH_PROGS($1,$2,$3,$4)
- if test -n "$$1"; then
-- AC_DEFINE(HAVE_$1)
-- AC_DEFINE_UNQUOTED(PATH_$1, "$$1")
-+ AC_DEFINE(HAVE_$1,1,[define if you have $1])
-+ AC_DEFINE_UNQUOTED(PATH_$1, "$$1", [define if you have $1])
- HAVE_$1=1
- else
- HAVE_$1=0
-@@ -28,7 +28,7 @@
- [if test -n "$MOUNT" ; then
- AC_MSG_CHECKING([if mount accepts the -s option])
- if "$MOUNT" -s > /dev/null 2>&1 ; then
-- AC_DEFINE(HAVE_SLOPPY_MOUNT)
-+ AC_DEFINE(HAVE_SLOPPY_MOUNT, 1, [define if the mount command supports the -s option])
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
-diff -Naur .B/configure .A/configure
---- .B/configure 2007-01-07 21:36:36.000000000 +0000
-+++ .A/configure 2007-01-07 21:36:36.000000000 +0000
-@@ -1359,11 +1359,13 @@
- test -n "$MOUNT" || MOUNT="/bin/mount"
-
- if test -n "$MOUNT"; then
-- cat >>confdefs.h <<\_ACEOF
-+
-+cat >>confdefs.h <<\_ACEOF
- #define HAVE_MOUNT 1
- _ACEOF
-
-- cat >>confdefs.h <<_ACEOF
-+
-+cat >>confdefs.h <<_ACEOF
- #define PATH_MOUNT "$MOUNT"
- _ACEOF
-
-@@ -1418,11 +1420,13 @@
- test -n "$UMOUNT" || UMOUNT="/bin/umount"
-
- if test -n "$UMOUNT"; then
-- cat >>confdefs.h <<\_ACEOF
-+
-+cat >>confdefs.h <<\_ACEOF
- #define HAVE_UMOUNT 1
- _ACEOF
-
-- cat >>confdefs.h <<_ACEOF
-+
-+cat >>confdefs.h <<_ACEOF
- #define PATH_UMOUNT "$UMOUNT"
- _ACEOF
-
-@@ -1476,11 +1480,13 @@
- done
-
- if test -n "$E2FSCK"; then
-- cat >>confdefs.h <<\_ACEOF
-+
-+cat >>confdefs.h <<\_ACEOF
- #define HAVE_E2FSCK 1
- _ACEOF
-
-- cat >>confdefs.h <<_ACEOF
-+
-+cat >>confdefs.h <<_ACEOF
- #define PATH_E2FSCK "$E2FSCK"
- _ACEOF
-
-@@ -1534,11 +1540,13 @@
- done
-
- if test -n "$E3FSCK"; then
-- cat >>confdefs.h <<\_ACEOF
-+
-+cat >>confdefs.h <<\_ACEOF
- #define HAVE_E3FSCK 1
- _ACEOF
-
-- cat >>confdefs.h <<_ACEOF
-+
-+cat >>confdefs.h <<_ACEOF
- #define PATH_E3FSCK "$E3FSCK"
- _ACEOF
-
-@@ -1556,7 +1564,8 @@
- echo "$as_me:$LINENO: checking if mount accepts the -s option" >&5
- echo $ECHO_N "checking if mount accepts the -s option... $ECHO_C" >&6
- if "$MOUNT" -s > /dev/null 2>&1 ; then
-- cat >>confdefs.h <<\_ACEOF
-+
-+cat >>confdefs.h <<\_ACEOF
- #define HAVE_SLOPPY_MOUNT 1
- _ACEOF
-
-@@ -3403,6 +3412,7 @@
- fi;
- if test -z "$HAVE_LDAP"; then
- HAVE_LDAP=0
-+ LDAP_FLAGS="$LDAP_FLAGS -DLDAP_DEPRECATED=1"
- echo "$as_me:$LINENO: checking for ldap_init in -lldap" >&5
- echo $ECHO_N "checking for ldap_init in -lldap... $ECHO_C" >&6
- if test "${ac_cv_lib_ldap_ldap_init+set}" = set; then
-@@ -4302,7 +4312,8 @@
- enableval=yes
- fi;
- if test x$enable_ext_env = xyes; then
-- cat >>confdefs.h <<\_ACEOF
-+
-+cat >>confdefs.h <<\_ACEOF
- #define ENABLE_EXT_ENV 1
- _ACEOF
-
-@@ -4319,7 +4330,8 @@
- enableval=yes
- fi;
- if test x$enable_mount_locking = xyes -o x$enableval = xyes; then
-- cat >>confdefs.h <<\_ACEOF
-+
-+cat >>confdefs.h <<\_ACEOF
- #define ENABLE_MOUNT_LOCKING 1
- _ACEOF
-
-diff -Naur .B/configure.in .A/configure.in
---- .B/configure.in 2007-01-07 21:36:36.000000000 +0000
-+++ .A/configure.in 2007-01-07 21:36:36.000000000 +0000
-@@ -118,6 +118,7 @@
- )
- if test -z "$HAVE_LDAP"; then
- HAVE_LDAP=0
-+ LDAP_FLAGS="$LDAP_FLAGS -DLDAP_DEPRECATED=1"
- AC_CHECK_LIB(ldap, ldap_init, HAVE_LDAP=1 LIBLDAP="$LIBLDAP -lldap -llber -lresolv", ,
- -llber -lresolv $LIBS)
- fi
-@@ -163,7 +164,7 @@
- --disable-ext-env disable search in environment for substitution variable,,
- enableval=yes)
- if test x$enable_ext_env = xyes; then
-- AC_DEFINE(ENABLE_EXT_ENV, 1)
-+ AC_DEFINE(ENABLE_EXT_ENV, 1, [leave this alone])
- fi
-
- #
-@@ -173,7 +174,7 @@
- --disable-mount-locking disable use of locking when spawning mount command,,
- enableval=yes)
- if test x$enable_mount_locking = xyes -o x$enableval = xyes; then
-- AC_DEFINE(ENABLE_MOUNT_LOCKING, 1)
-+ AC_DEFINE(ENABLE_MOUNT_LOCKING, 1, [disable mount table locking -- use this if your maps contain recursive mounts -- EXPERIMENTAL])
- fi
-
- #
-diff -Naur .B/include/config.h.in .A/include/config.h.in
---- .B/include/config.h.in 2007-01-07 21:36:36.000000000 +0000
-+++ .A/include/config.h.in 2007-01-07 21:36:36.000000000 +0000
-@@ -1,29 +1,80 @@
--#ident "$Id: config.h.in,v 1.4 2004/02/03 15:23:21 raven Exp $"
--/* -*- c -*-
-- *
-- * config.h.in: Pattern file for autofs to be filled in by configure
-- *
-- */
-+/* include/config.h.in. Generated from configure.in by autoheader. */
-
--/* Program paths */
-+/* leave this alone */
-+#undef ENABLE_EXT_ENV
-+
-+/* disable mount table locking -- use this if your maps contain recursive
-+ mounts -- EXPERIMENTAL */
-+#undef ENABLE_MOUNT_LOCKING
-+
-+/* define if you have E2FSCK */
-+#undef HAVE_E2FSCK
-+
-+/* define if you have E3FSCK */
-+#undef HAVE_E3FSCK
-+
-+/* Define to 1 if you have the <inttypes.h> header file. */
-+#undef HAVE_INTTYPES_H
-+
-+/* Define to 1 if you have the <memory.h> header file. */
-+#undef HAVE_MEMORY_H
-+
-+/* define if you have MOUNT */
- #undef HAVE_MOUNT
--#undef PATH_MOUNT
-
-+/* define if the mount command supports the -s option */
-+#undef HAVE_SLOPPY_MOUNT
-+
-+/* Define to 1 if you have the <stdint.h> header file. */
-+#undef HAVE_STDINT_H
-+
-+/* Define to 1 if you have the <stdlib.h> header file. */
-+#undef HAVE_STDLIB_H
-+
-+/* Define to 1 if you have the <strings.h> header file. */
-+#undef HAVE_STRINGS_H
-+
-+/* Define to 1 if you have the <string.h> header file. */
-+#undef HAVE_STRING_H
-+
-+/* Define to 1 if you have the <sys/stat.h> header file. */
-+#undef HAVE_SYS_STAT_H
-+
-+/* Define to 1 if you have the <sys/types.h> header file. */
-+#undef HAVE_SYS_TYPES_H
-+
-+/* define if you have UMOUNT */
- #undef HAVE_UMOUNT
--#undef PATH_UMOUNT
-
--#undef HAVE_SMBMOUNT
--#undef PATH_SMBMOUNT
-+/* Define to 1 if you have the <unistd.h> header file. */
-+#undef HAVE_UNISTD_H
-
--#undef HAVE_E2FSCK
-+/* Define to the address where bug reports for this package should be sent. */
-+#undef PACKAGE_BUGREPORT
-+
-+/* Define to the full name of this package. */
-+#undef PACKAGE_NAME
-+
-+/* Define to the full name and version of this package. */
-+#undef PACKAGE_STRING
-+
-+/* Define to the one symbol short name of this package. */
-+#undef PACKAGE_TARNAME
-+
-+/* Define to the version of this package. */
-+#undef PACKAGE_VERSION
-+
-+/* define if you have E2FSCK */
- #undef PATH_E2FSCK
-
--#undef HAVE_E3FSCK
-+/* define if you have E3FSCK */
- #undef PATH_E3FSCK
-
--/* Define this option if mount(8) supports the -s (sloppy) option */
--#undef HAVE_SLOPPY_MOUNT
-+/* define if you have MOUNT */
-+#undef PATH_MOUNT
-
--#undef ENABLE_EXT_ENV
-+/* define if you have UMOUNT */
-+#undef PATH_UMOUNT
-
--#undef ENABLE_MOUNT_LOCKING
-+/* Define to 1 if you have the ANSI C header files. */
-+#undef STDC_HEADERS
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 078_locking_fix_1.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/daemon/spawn.c .A/daemon/spawn.c
---- .B/daemon/spawn.c 2007-01-07 21:36:36.000000000 +0000
-+++ .A/daemon/spawn.c 2007-01-07 21:36:36.000000000 +0000
-@@ -214,14 +214,15 @@
- sigfillset(&allsignals);
- sigprocmask(SIG_BLOCK, &allsignals, &oldsig);
-
-- if (pipe(pipefd))
-+ if (pipe(pipefd)) {
-+ if (use_lock)
-+ release_lock();
-+ sigprocmask(SIG_SETMASK, &oldsig, NULL);
- return -1;
-+ }
-
- f = fork();
-- if (f < 0) {
-- sigprocmask(SIG_SETMASK, &oldsig, NULL);
-- return -1;
-- } else if (f == 0) {
-+ if (f == 0) {
- reset_signals();
- close(pipefd[0]);
- dup2(pipefd[1], STDOUT_FILENO);
-@@ -243,6 +244,8 @@
-
- if (f < 0) {
- close(pipefd[0]);
-+ if (use_lock)
-+ release_lock();
- sigprocmask(SIG_SETMASK, &oldsig, NULL);
- return -1;
- }
-@@ -287,11 +290,11 @@
- if (waitpid(f, &status, 0) != f)
- status = -1; /* waitpid() failed */
-
-- sigprocmask(SIG_SETMASK, &oldsig, NULL);
--
- if (use_lock)
- release_lock();
-
-+ sigprocmask(SIG_SETMASK, &oldsig, NULL);
-+
- return status;
- }
- }
-diff -Naur .B/lib/lock.c .A/lib/lock.c
---- .B/lib/lock.c 2005-01-17 15:09:28.000000000 +0000
-+++ .A/lib/lock.c 2007-01-07 21:36:36.000000000 +0000
-@@ -208,9 +208,6 @@
- */
- static int wait_for_lockf(const char *lockf)
- {
-- struct timespec t = { 0, WAIT_INTERVAL };
-- struct timespec r;
-- int ts_size = sizeof(struct timespec);
- int tries = WAIT_TRIES;
- int status = 0;
- struct stat st;
-@@ -218,10 +215,13 @@
- while (tries-- && !status) {
- status = stat(lockf, &st);
- if (!status) {
-+ struct timespec t = { 0, WAIT_INTERVAL };
-+ struct timespec r;
-+
- while (nanosleep(&t, &r) == -1 && errno == EINTR) {
- if (got_term)
- return 0;
-- memcpy(&t, &r, ts_size);
-+ memcpy(&t, &r, sizeof(struct timespec));
- }
- }
- }
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 079_no_unlink_upstream.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/daemon/automount.c .A/daemon/automount.c
---- .B/daemon/automount.c 2007-01-07 21:36:36.000000000 +0000
-+++ .A/daemon/automount.c 2007-01-07 21:36:37.000000000 +0000
-@@ -232,16 +232,38 @@
- static int rm_unwanted_fn(const char *file, const struct stat *st, int when, void *arg)
- {
- int rmsymlink = *(int *) arg;
-+ struct stat newst;
-
- if (when == 0) {
- if (st->st_dev != ap.dev)
- return 0;
-- } else {
-- info("rm_unwanted: %s\n", file);
-- if (S_ISDIR(st->st_mode))
-- rmdir(file);
-- else if (!S_ISLNK(st->st_mode) || rmsymlink)
-- unlink(file);
-+ return 1;
-+ }
-+
-+ if (lstat(file, &newst)) {
-+ crit ("rm_unwanted: unable to stat file, possible race "
-+ "condition.");
-+ return 0;
-+ }
-+
-+ if (newst.st_dev != ap.dev) {
-+ crit ("rm_unwanted: file %s has the wrong device, possible "
-+ "race condition.",file);
-+ return 0;
-+ }
-+
-+ if (S_ISDIR(newst.st_mode)) {
-+ if (rmdir(file)) {
-+ info ("rm_unwanted: unable to remove directory"
-+ " %s", file);
-+ return 0;
-+ }
-+ } else if (S_ISREG(newst.st_mode)) {
-+ crit ("rm_unwanted: attempting to remove files from a mounted "
-+ "directory.");
-+ return 0;
-+ } else if (S_ISLNK(newst.st_mode) && rmsymlink) {
-+ unlink(file);
- }
-
- return 1;
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 080_auto_smb_probe_credentials.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/samples/auto.smb .A/samples/auto.smb
---- .B/samples/auto.smb 2007-01-07 21:36:36.000000000 +0000
-+++ .A/samples/auto.smb 2007-01-07 21:36:37.000000000 +0000
-@@ -5,7 +5,9 @@
- # This file must be executable to work! chmod 755!
-
- key="$1"
--opts="-fstype=cifs"
-+mountopts="-fstype=cifs"
-+smbopts=""
-+credfile="/etc/auto.smb.$key"
-
- for P in /bin /sbin /usr/bin /usr/sbin
- do
-@@ -18,7 +20,14 @@
-
- [ -x $SMBCLIENT ] || exit 1
-
--$SMBCLIENT -gNL $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'|' -- '
-+if [ -e $credfile ]; then
-+ mountopts="$mountopts,credentials=$credfile"
-+ smbopts="-A $credfile"
-+else
-+ smbopts="-N"
-+fi
-+
-+$SMBCLIENT $smbopts -gL $key 2>/dev/null| awk -v key="$key" -v opts="$mountopts" -F'|' -- '
- BEGIN { ORS=""; first=1 }
- /Disk/ { if (first) { print opts; first=0 }; sub(/ /, "\\ ", $2); print " \\\n\t /" $2, "://" key "/" $2 }
- END { if (!first) print "\n"; else exit 1 }
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 081_auto_net_showmount_quotes.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/samples/auto.net .A/samples/auto.net
---- .B/samples/auto.net 2007-01-07 21:36:36.000000000 +0000
-+++ .A/samples/auto.net 2007-01-07 21:36:37.000000000 +0000
-@@ -32,7 +32,7 @@
- done
- done
-
--[ -x $SMNT ] || exit 1
-+[ -x "$SMNT" ] || exit 1
-
- # Newer distributions get this right
- SHOWMOUNT="$SMNT --no-headers -e $key"
+++ /dev/null
-#!/bin/sh /usr/share/dpatch/dpatch-run
-## 082_samples_makefile_typo.dpatch
-##
-## DP: No description.
-
-@DPATCH@
-
-diff -Naur .B/samples/Makefile .A/samples/Makefile
---- .B/samples/Makefile 2005-01-04 14:36:54.000000000 +0000
-+++ .A/samples/Makefile 2007-01-07 21:36:37.000000000 +0000
-@@ -42,6 +42,6 @@
- install -c autofs-ldap-auto-master -m 755 $(INSTALLROOT)$(autofslibdir)
- endif
-
--clean):
-+clean:
- rm -f *.o *.s autofs-ldap-auto-master rc.autofs
-
+++ /dev/null
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 083_clarify_program_map_outputsyntax.dpatch <hesso@pool.math.tu-berlin.de>
-##
-## DP: Explicitly mention that the queried key has to be omitted in the output of
-## DP: program maps.
-
-@DPATCH@
---- autofs-4.1.4+debian.orig/man/autofs.5 2007-06-30 00:29:12.000000000 +0200
-+++ autofs-4.1.4+debian/man/autofs.5 2007-06-30 00:30:27.000000000 +0200
-@@ -153,7 +153,8 @@
- .B program
- map will be called as a script with the key as an argument. It may
- return no lines of output if there's an error, or one or more lines
--containing a map (with \\ quoting line breaks).
-+containing a map (starting with the second column, i.e. omitting the
-+key, and quoting line breaks with \\).
- .P
- To use a
- .B program
+++ /dev/null
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 84_init_lsb_header.dpatch by <hesso@pool.math.tu-berlin.de>
-##
-## DP: Add an LSB-conformant header to the initscript.
-
-@DPATCH@
-
---- autofs-4.1.4+debian/samples/rc.autofs.in.orig 2007-07-05 16:43:32.000000000 +0200
-+++ autofs-4.1.4+debian/samples/rc.autofs.in 2007-07-05 16:43:42.000000000 +0200
-@@ -9,6 +9,16 @@
- # On most distributions, this file should be called:
- # /etc/rc.d/init.d/autofs or /etc/init.d/autofs
- #
-+### BEGIN INIT INFO
-+# Provides: autofs
-+# Required-Start: $local_fs
-+# Required-Stop: $local_fs
-+# Default-Start: 2 3 4 5
-+# Default-Stop: 0 1 6
-+# Short-Description: automount daemon
-+# Description: daemon to mount (possibly remote) filesystems
-+# automatically upon entering the mountpoint
-+### END INIT INFO
-
- # For Redhat-ish systems
- #
+++ /dev/null
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 085-auto.net-lp111612 by Morten Kjeldgaard <mok@bioxray.au.dk>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Fix problem with directories exported multiple times to different
-## DP: hosts (LP: #111612).
-
-@DPATCH@
-
---- samples/auto.net 2008-04-09 16:32:59.000000000 +0200
-+++ foo/samples/auto.net 2008-04-09 16:34:29.000000000 +0200
-@@ -37,7 +37,7 @@
- # Newer distributions get this right
- SHOWMOUNT="$SMNT --no-headers -e $key"
-
--$SHOWMOUNT | LC_ALL=C sort -k 1 | \
-+$SHOWMOUNT | LC_ALL=C cut -d' ' -f1 | LC_ALL=C sort -k 1 | \
- awk -v key="$key" -v opts="$opts" -- '
- BEGIN { ORS=""; first=1 }
- { if (first) { print opts; first=0 }; print " \\\n\t" $1, key ":" $1 }
+++ /dev/null
-Index: autofs-4.1.4/Makefile.rules
-===================================================================
---- autofs-4.1.4.orig/Makefile.rules
-+++ autofs-4.1.4/Makefile.rules
-@@ -27,10 +27,10 @@ STRIP = :
- #STRIP = strip --strip-debug
- #endif
-
--CC = gcc
--CXX = g++
--CXXFLAGS = $(CFLAGS)
--LD = ld
-+CC ?= gcc
-+CXX ?= g++
-+CXXFLAGS ?= $(CFLAGS)
-+LD ?= ld
- SOLDFLAGS = -shared -Xlinker -rpath -Xlinker $(autofslibdir)
-
- # Standard rules
+++ /dev/null
-* -fstype=auto,rw,sync :/dev/&
+++ /dev/null
-#
-# $Id: auto.master,v 1.4 2005/01/04 14:36:54 raven Exp $
-#
-# Sample auto.master file
-# This is an automounter map and it has the following format
-# key [ -mount-options-separated-by-comma ] location
-# For details of the format look at autofs(5).
-#/smb /etc/auto.smb
-#/net /etc/auto.net
-/autofs /etc/auto.hotplug
-/media/net /etc/auto.network
+++ /dev/null
-# automatically generated by enigma 2
-# do NOT change manually!
+++ /dev/null
-daemonoptions='--ghost'
-TIMEOUT=5
+++ /dev/null
-#!/bin/sh
-#
-# $Id: rc.autofs.in,v 1.58 2005/04/11 11:30:54 raven Exp $
-#
-# rc file for automount using a Sun-style "master map".
-# We first look for a local /etc/auto.master, then a YP
-# map with that name
-#
-# On most distributions, this file should be called:
-# /etc/rc.d/init.d/autofs or /etc/init.d/autofs
-#
-### BEGIN INIT INFO
-# Provides: autofs
-# Required-Start: $local_fs
-# Required-Stop: $local_fs
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: automount daemon
-# Description: daemon to mount (possibly remote) filesystems
-# automatically upon entering the mountpoint
-### END INIT INFO
-
-# For Redhat-ish systems
-#
-# chkconfig: 345 28 72
-# processname: /usr/sbin/automount
-# config: /etc/auto.master
-# description: Automounts filesystems on demand
-
-# This is used in the Debian distribution to determine the proper
-# location for the S- and K-links to this init file.
-# The following value is extracted by debstd to figure out how to
-# generate the postinst script. Edit the field to change the way the
-# script is registered through update-rc.d (see the manpage for
-# update-rc.d!)
-#
-FLAGS="defaults 21"
-
-#
-# Location of the automount daemon and the init directory
-#
-DAEMON=/usr/sbin/automount
-prog=`basename $DAEMON`
-initdir=/etc/init.d
-
-test -e $DAEMON || exit 0
-
-#
-# Determine which kind of configuration we're using
-#
-system=debian
-if [ -f /etc/redhat-release ]; then
- system=redhat
-fi
-
-if [ $system = redhat ]; then
- . $initdir/functions
-fi
-
-if [ $system = debian ]; then
- thisscript="$0"
- if [ ! -f "$thisscript" ]; then
- echo "$0: Cannot find myself" 1>&2
- exit 1
- fi
-fi
-
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-export PATH
-
-#
-# We can add local options here
-# e.g. localoptions='rsize=8192,wsize=8192'
-#
-localoptions=''
-
-#
-# Daemon options
-# e.g. --timeout=60
-#
-daemonoptions=''
-
-#
-# load custom settings
-#
-if [ "$system" = "redhat" ]; then
- LOCALOPTIONS=""
- DAEMONOPTIONS=""
- UNDERSCORETODOT=1
- DISABLE_DIRECT=1
- DAEMON_EXIT_WAIT=20
-
- [ -f /etc/sysconfig/autofs ] && . /etc/sysconfig/autofs
-
- # Over-ride localoptions if set
- if [ -n "$LOCALOPTIONS" ]; then
- localoptions=$LOCALOPTIONS
- fi
-
- # Over-ride daemonoptions if set
- if [ -n "$DAEMONOPTIONS" ]; then
- daemonoptions=$DAEMONOPTIONS
- fi
-elif [ "$system" = "debian" ]; then
- TIMEOUT=300
- DISABLE_DIRECT=1
- DAEMON_EXIT_WAIT=20
-
- [ -f /etc/default/autofs ] && . /etc/default/autofs
-
- daemonoptions="$daemonoptions --timeout=$TIMEOUT"
-fi
-
-#
-# Check for all maps that are to be loaded
-#
-getschemes()
-{
- SOURCES=`grep ^automount: /etc/nsswitch.conf | \
- sed -e 's/^.*://' -e 's/\[.*\]/ /g'`
-
- if [ `echo $SOURCES | awk '{print NF}'` -gt 0 ]
- then
- echo ${SOURCES}
- else
- echo files
- fi
-}
-
-catnismap()
-{
- if [ -z "$1" ] ; then
- map="auto_master"
- else
- map="$1"
- fi
-
- # Append the map's options at the _start_ if there are any options already
- # (ie. myopt -> $2,myopt), otherwise just append them at the end.
- if [ -z "$2" ]; then
- /usr/bin/ypcat -k "$map" 2> /dev/null | sed -e '/^#/d' -e '/^$/d'
- else
- /usr/bin/ypcat -k "$map" 2> /dev/null |
- sed -e '/^#/d' -e '/^$/d' \
- -e "s/^[ \t]*\([^ \t]\+\)[ \t]\+\([^ \t]\+\)[ \t]\+-\([^ \t]\+\)/\1 \2 $2,\3/" \
- -e "s/^[ \t]*\([^ \t]\+\)[ \t]\+\([^ \t]\+\)[ \t]*$/\1 \2 $2/"
- fi
-}
-
-getfilemounts()
-{
- if [ -f /etc/auto.master ] ; then
- cat /etc/auto.master | awk '{print $0}' | sed -e '/^#/d' -e '/^$/d' | (
- while read auto_master_in
- do
- if [ "`echo $auto_master_in | grep '^\+'`" = "" ]; then
- echo $auto_master_in
- else
- cat /etc/auto.master | grep '^\+' | sed -e '/^#/d' -e '/^$/d' | (
- while read map options; do
- catnismap `echo "$map" | sed -e 's/^\+//'` $options
- done
- )
- fi
- done
- )
- fi
-}
-
-getnismounts()
-{
- YPMAP=`catnismap auto.master`
- if [ -z "$YPMAP" ]; then
- catnismap
- else
- catnismap auto.master
- fi
-}
-
-getldapmounts()
-{
- if [ -x /usr/lib/autofs/autofs-ldap-auto-master ]; then
- [ ! -z $LDAPURI ] && export LDAPURI="$LDAPURI"
- [ ! -z $LDAPBASE ] && export LDAPBASE="$LDAPBASE"
- /usr/lib/autofs/autofs-ldap-auto-master 2> /dev/null
- /usr/lib/autofs/autofs-ldap-auto-master -m automountMap \
- -e automount -n ou -k cn -v automountInformation 2> /dev/null
- fi
-}
-
-getrawmounts()
-{
- for scheme in `getschemes` ; do
- case "$scheme" in
- files)
- if [ -z "$filescheme" ] ; then
- getfilemounts
- filescheme=1
- export filescheme
- fi
- ;;
- nis)
- if [ -z "$nisscheme" ] ; then
- getnismounts
- nisscheme=1
- export nisscheme
- fi
- ;;
- ldap*)
- if [ -z "$ldapscheme" ] ; then
- getldapmounts
- ldapscheme=1
- export ldapscheme
- fi
- ;;
- esac
- done
-}
-
-
-#
-# This function will build a list of automount commands to execute in
-# order to activate all the mount points. It is used to figure out
-# the difference of automount points in case of a reload
-#
-getmounts()
-{
- local LC_ALL=C
- export LC_ALL
- knownmaps=" "
- getrawmounts | (
- while read dir map options
- do
- # These checks screen out duplicates and skip over directories
- # where the map is '-'.
- # We can't do empty or direct host maps, so don't bother trying.
-
- # Strip trailing slashes from the dir line if it exists to aid
- # in checking for duplicate maps
- dir=`echo "$dir" | sed -e "s/\/*$//"`
-
- if [ ! -z "$map" -a "$map" = "-hosts" ] ; then
- continue
- fi
-
- if [ $DISABLE_DIRECT -eq 1 \
- -a x`echo $dir | grep -E "^/-"` != 'x' ]
- then
- continue
- fi
-
- # If possible, canonicalise the path so it will always unmount
- # cleanly.
- link=`readlink -f "$dir"`
- if [ ! -z "$link" ]; then
- dir="$link"
- fi
-
- # Do not include a map if it is a duplicate, maps on top of
- # another map or another map, maps on top of it.
- for knownmap in $knownmaps
- do
- if [ "`echo $dir/ | grep ^$knownmap`" != "" \
- -o "`echo $knownmap | grep ^$dir/`" != "" \]
- then
- continue 2
- fi
- done
-
- if [ ! -z "$dir" -a ! -z "$map" \
- -a x`echo "$map" | cut -c1` != 'x-' ]
- then
- # If the options include a -t or --timeout, a -g or --ghost,
- # a -v or --verbose or a -d or --debug paramter, then pull
- # those particular options out.
- : echo DAEMONOPTIONS OPTIONS $daemonoptions $options
- startupoptions=
- if echo "$options" | grep -qE -- '\B-(t\b|-timeout\b=)' ;
- then
- startupoptions="--timeout=$(echo $options |\
- sed 's/.*-\(t[^0-9]*\|-timeout\)[ \t=]*\([0-9][0-9]*\).*$/\2/g')"
- elif echo "$daemonoptions" | grep -q -- '-t' ;
- then
- # It's okay to be sloppy with DAEMONOPTIONS as there is no
- # possibility of conflicting with mount or map options.
- startupoptions="--timeout=$(echo $daemonoptions | \
- sed 's/.*--*t\(imeout\)*[ \t=]*\([0-9][0-9]*\).*$/\2/g')"
- fi
-
- # Check for the ghost option
- if echo "$daemonoptions $options" | grep -qE -- '\B-(g\b|-ghost\b)' ;
- then
- startupoptions="$startupoptions --ghost"
- fi
- # Dont even deal with conflicts between --ghost and [no]browse
- # Its just insane to configure things like that.
- if echo "$options" | grep -qE -- '\B-browse\b' ;
- then
- startupoptions="$startupoptions --ghost"
- fi
- # Check for verbose
- if echo "$daemonoptions $options" | \
- grep -qE -- '\B-(v\b|-verbose\b)' ;
- then
- startupoptions="$startupoptions --verbose"
- fi
-
- # Check for debug
- if echo "$daemonoptions $options" | \
- grep -qE -- '\B-(d\b|-debug\b)' ;
- then
- startupoptions="$startupoptions --debug"
- fi
-
- # Other option flags are intended for maps.
- mapoptions="$(echo "$daemonoptions $options" |\
- sed 's/-\(t[^0-9]*\|-timeout\)[ \t=]*\([0-9][0-9]*\)//g' |
- sed 's/-\(g\b\|-ghost\b\)//g' |
- sed 's/-\(v\b\|-verbose\b\)//g' |
- sed 's/-\(d\b\|-debug\b\)//g' |
- sed 's/-\b\(no\)\?browse\b//g')"
-
- # Break up the maptype and map, if the map type is specified
- maptype=`echo $map | cut -f1 -d:`
- # Handle degenerate map specifiers
- if [ "$maptype" = "$map" ] ; then
- if [ "$map" = "hesiod" -o "$map" = "userhome" -o "$map" = "ldap" ] ; then
- maptype=$map
- map=
- elif [ "$map" = "multi" ] ; then
- maptype=$map
- map=
-# elif echo "$map" | grep -q '^!'; then
-# map=`echo "$map"| sed -e 's/^!//g'`
- elif `echo $map | grep -q "^/"` && [ -x "$map" ]; then
- maptype=program
- elif [ -x "/etc/$map" ]; then
- maptype=program
- map=`echo /etc/$map | sed 's^//^/^g'`
- elif `echo $map | grep -q "^/"` && [ -f "$map" ]; then
- maptype=file
- elif [ -f "/etc/$map" ]; then
- maptype=file
- map=`echo /etc/$map | sed 's^//^/^g'`
- else
- maptype=yp
- if [ "$UNDERSCORETODOT" = "1" ] ; then
- map=`basename $map | sed -e s/^auto_home/auto.home/ -e s/^auto_mnt/auto.mnt/`
- else
- map=`basename $map | sed 's^//^/^g'`
- fi
- fi
- fi
- map=`echo $map | cut -f2- -d:`
-
- : echo STARTUPOPTIONS $startupoptions
- : echo DIR $dir
- : echo MAPTYPE $maptype
- : echo MAP $map
- : echo MAPOPTIONS $mapoptions
- : echo LOCALOPTIONS $localoptions
-
- NEWOPTIONS=""
- for m in $mapoptions
- do
- if [ x"$m" = x"--" ]; then
- NEWOPTIONS="$NEWOPTIONS $localoptions --"
- else
- NEWOPTIONS="$NEWOPTIONS $m"
- fi
- done
- mapoptions=$NEWOPTIONS
-
- echo "$DAEMON $startupoptions $dir $maptype $map $mapoptions $localoptions" | sed -e 's/ / /g' -e 's/ */ /g'
-
- : echo ------------------------
- knownmaps=" $dir/ $knownmaps"
- fi
- done
- )
-}
-
-#
-# Status lister.
-#
-status()
-{
- echo -e $"Configured Mount Points:\n------------------------"
- getmounts
- echo ""
- echo -e $"Active Mount Points:\n--------------------"
- ps axwww|grep "[0-9]:[0-9][0-9] $DAEMON " | (
- while read pid tt stat time command; do echo $command; done
- )
-}
-
-get_command_from_pid()
-{
- ps ax | grep "[0-9]:[0-9][0-9] $DAEMON " | (
- while read pid tt stat time command; do
- if [ "$pid" = "$1" ] ; then
- echo `echo "$command" | \
- sed 's/--pid-file.*\.pid/ /'`
- return 0
- fi
- done
- )
- return 0
-}
-
-# return true if at least one pid is alive
-alive()
-{
- if [ -z "$*" ]; then
- return 1
- fi
- for i in $*; do
- if kill -0 $i 2> /dev/null; then
- return 0
- fi
- done
-
- return 1
-}
-
-#
-# Find pids of process group leaders
-#
-get_pgrp_pids()
-{
- ps -eo pid,pgrp,cmd|grep $DAEMON|\
- awk '{print $1,$2}'|\
- while read pid pgrp
- do
- if [ $pid -eq $pgrp ]
- then
- echo $pid
- fi
- done
-}
-
-#
-# Signal each automount process group leader
-#
-signal_automounts()
-{
- RETVAL=0
- pgrp_pids=`get_pgrp_pids`
- for pid in $pgrp_pids
- do
- kill -USR2 $pid 2 > /dev/null
- count=0
- while ps ax|grep -v grep|grep $pid >/dev/null
- do
- sleep 1
- count=$(expr $count + 1)
- if [ $count -gt $DAEMON_EXIT_WAIT ]; then
- break;
- fi
- done
- done
-
- if [ -n "`pidof $DAEMON`" ] ; then
- RETVAL=1
- fi
-
- return $RETVAL
-}
-
-umount_loopback()
-{
- loops=`LC_ALL=C awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts`
- automounts=`LC_ALL=C awk '!/^#/ && $1 ~ /^automount/ {print $2}' /proc/mounts`
-
- for l in $loops
- do
- # If a loop device is mounted into a subdir of the automount point,
- # umount it here.
- for a in $automounts
- do
- match=`echo $l | grep -E "^$a[\$|/]" || true`
- if [ -n "$match" ]; then
- echo ""
- echo -n $"Unmounting loopback filesystem $match: "
- loopdev=`LC_ALL=C grep $l /proc/mounts | awk '{print $1}'`
- umount -d $match
- if [ $? -eq 0 ]; then
- echo "done"
- else
- echo "failed ($?)"
- fi
- fi
- done
- done
-
- # If the loop device file exists under the automount point, umount
- # it here.
- loopmnts=`LC_ALL=C awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $1}' /proc/mounts`
- for l in $loopmnts
- do
- loopmnt=`losetup $l | awk -F\( '{print $2}' | awk -F\) '{print $1}'`
- for a in $automounts
- do
- match=`echo $loopmnt | grep -E "^$a[\$|/]" || true`
- if [ -n "$match" ]; then
- echo ""
- echo -n $"Unmounting loopback filesystem $match: "
- umount -d $match
- if [ $? -eq 0 ]; then
- echo "done"
- else
- echo "failed ($?)"
- fi
- fi
- done
- done
-}
-
-#
-# Redhat start/stop function.
-#
-redhat()
-{
-
-#
-# See how we were called.
-#
-case "$1" in
- start)
- # Make sure the autofs filesystem type is available.
- (grep -q autofs /proc/filesystems || /sbin/modprobe -k autofs4 || /sbin/modprobe -k autofs) 2> /dev/null
- echo -n $"Starting $prog: "
- TMP=`mktemp /tmp/autofs.XXXXXX` || { echo $"could not make temp file" >& 2; exit 1; }
- getmounts | tee $TMP | sh
- RETVAL=$?
- if [ -s $TMP ] ; then
- if [ $RETVAL -eq 0 ] ; then
- success "$prog startup"
- else
- failure "$prog startup"
- fi
- [ $RETVAL = 0 ] && touch /var/lock/subsys/autofs
- else
- echo -n $"No Mountpoints Defined"
- success "$prog startup"
- fi
- rm -f $TMP
- echo
- ;;
- stop)
- echo -n $"Stopping $prog:"
- if [ -z "`pidofproc $prog`" -a -z "`getmounts`" ]; then
- RETVAL=0
- else
- umount_loopback
- signal_automounts
- RETVAL=$?
- fi
- count=0
- while [ -n "`/sbin/pidof $DAEMON`" -a $count -lt 10 ] ; do
- killproc $DAEMON -USR2 >& /dev/null
- RETVAL=$?
- [ $RETVAL = 0 -a -z "`/sbin/pidof $DAEMON`" ] || sleep 3
- count=`expr $count + 1`
- done
- umount -a -f -t autofs
- rm -f /var/lock/subsys/autofs
- if [ -n "`/sbin/pidof $DAEMON`" ] ; then
- failure "$prog shutdown"
- else
- success "$prog shutdown"
- fi
- echo
- ;;
- restart)
- redhat stop
- redhat start
- ;;
- reload)
- if [ ! -f /var/lock/subsys/autofs ]; then
- echo $"$prog not running"
- RETVAL=1
- return
- fi
- echo $"Checking for changes to /etc/auto.master ...."
- TMP1=`mktemp /tmp/autofs.XXXXXX` || { echo $"could not make temp file" >& 2; exit 1; }
- TMP2=`mktemp /tmp/autofs.XXXXXX` || { echo $"could not make temp file" >& 2; exit 1; }
- getmounts >$TMP1
- ps axwww|grep "[0-9]:[0-9][0-9] $DAEMON " | (
- while read pid tt stat time command; do
- echo "$command" >>$TMP2
- if ! grep -q "^$command" $TMP1; then
- if ! echo "$command" | grep -q -e --submount; then
- kill -USR2 $pid 2> /dev/null
- echo $"Stop $command"
- fi
- else
- kill -HUP $pid 2> /dev/null
- echo $"Reload map $command"
- fi
- done
- )
- cat $TMP1 | ( while read x; do
- if ! grep -q "^$x" $TMP2; then
- $x
- echo $"Start $x"
- fi
- done )
- rm -f $TMP1 $TMP2
- ;;
- status)
- status
- ;;
- condrestart)
- [ -f /var/lock/subsys/autofs ] && redhat restart
- RETVAL=0
- ;;
- *)
- echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
- RETVAL=0
-esac
-}
-
-#
-# Debian start/stop functions.
-#
-debian()
-{
-
-case "$1" in
-start)
- echo -n 'Starting automounter:'
-
- # make sure autofs4 is loaded
- if ! grep -q autofs /proc/filesystems
- then
- # autofs filesystem support not loaded
- echo -n ' loading autofs4 kernel module,'
- modprobe autofs4 || true
- elif ([ -f /proc/modules ] && lsmod) | grep -q autofs[^4]; then
- # wrong autofs filesystem module loaded
- echo
- echo "WARNING: autofs kernel module is loaded, autofs4 needed"
- echo " for correct behaviour. You might experience mount failures."
- fi
-
- # Check that maps exist
- if [ -z "$(getrawmounts)" ]
- then
- echo " no automount maps defined."
- exit 0
- fi
-
- # ensure pid file directory exists
- if [ ! -e /var/run/autofs ]
- then
- mkdir /var/run/autofs
- fi
-
- getmounts | while read cmd rest
- do
- mnt=`echo $rest | sed 's/^.* \(\/[^ ]*\) [A-Za-z].*$/\1/'`
- pidfile=/var/run/autofs/`echo $mnt | sed 's,/,_,g'`.pid
-
- start-stop-daemon --start --pidfile $pidfile --quiet \
- --exec $DAEMON -- --pid-file=$pidfile $rest
-
- ret=$?
-
- if [ $ret -ne 0 ]
- then
- echo
- echo " failed to start automount point $mnt"
- fi
- done
-
- echo " done."
- ;;
-stop)
- echo -n 'Stopping automounter:'
-
- umount_loopback
-
- any=0
- for file in `ls /var/run/autofs/*.pid 2>/dev/null`
- do
- if [ -e "$file" ]
- then
- any=1
- pid=`head -n 1 $file`
- mnt=`ps -wwo 'cmd=' $pid | sed -e \
- 's,.* --pid-file=/var/run/autofs/\([^ ]*\)\.pid.*,\1,; s,_,/,g'`
- dname=`basename $DAEMON`
-
- start-stop-daemon --stop --quiet \
- --retry USR2/$DAEMON_EXIT_WAIT \
- --pidfile $file --name $dname
-
- ret=$?
-
- case $ret in
- 0)
-# echo -n " $mnt"
- rm -f $file
- ;;
- 1)
- echo -n -e "\n No process for automount $mnt"
- rm -f $file
- ;;
- 2)
- echo -n -e "\n Couldn't stop automount for $mnt"
- ;;
- *)
- echo -n -e \
- "\n Strange start-stop-daemon exit status: $ret"
- ;;
- esac
- fi
- done
-
- echo " done."
- ;;
-reload)
- echo "Reloading automounter: checking for changes ... "
-
- TMP1=`mktemp -t autofs.XXXXXX`
- TMP2=`mktemp -t autofs.XXXXXX`
-
- getmounts >$TMP1
-
- for i in `ls /var/run/autofs/*.pid 2>/dev/null`
- do
- pid=`head -n 1 $i 2>/dev/null`
- [ "$pid" = "" ] && continue
-
- cmd=`get_command_from_pid $pid`
- echo $cmd >>$TMP2
-
- mnt=`ps -wwo 'cmd=' $pid | sed -e \
- 's,.* --pid-file=/var/run/autofs/\([^ ]*\)\.pid.*,\1,; s,_,/,g'`
-
- if ! grep -q "$cmd" $TMP1; then
- echo "Stopping automounter for: $mnt"
- kill -USR2 $pid 2> /dev/null
- else
- echo "Reloading automounter map for: $mnt"
- kill -HUP $pid 2> /dev/null
- fi
- done
-
- cat $TMP1 | (while read x; do
- if ! grep -q "^$x" $TMP2; then
- echo $x | while read cmd rest; do
-
- mnt=`echo $rest | sed 's/^.* \(\/[^ ]*\) [A-Za-z].*$/\1/'`
- pidfile=/var/run/autofs/`echo $mnt | sed 's,/,_,g'`.pid
-
- start-stop-daemon --start --pidfile $pidfile --quiet \
- --exec $DAEMON -- --pid-file=$pidfile $rest
-
- ret=$?
-
- if [ $ret -ne 0 ]
- then
- echo
- echo " failed to start automount point $mnt"
- else
- echo "Started automounter: $mnt"
- fi
- done
- fi
- done)
-
- rm -f $TMP1 $TMP2
- ;;
-force-reload|restart)
- debian stop
- debian start
- ;;
-status)
- status
- ;;
-getmounts)
- getmounts
- ;;
-active)
- alive
- ;;
-*)
- echo "Usage: $initdir/autofs {start|stop|restart|reload|status|getmounts|active}" >&2
- exit 1
- ;;
-esac
-}
-
-RETVAL=0
-if [ $system = debian ]; then
- debian "$@"
-elif [ $system = redhat ]; then
- redhat "$@"
-fi
-
-exit $RETVAL
+++ /dev/null
-Index: autofs-4.1.4/aclocal.m4
-===================================================================
---- autofs-4.1.4.orig/aclocal.m4
-+++ autofs-4.1.4/aclocal.m4
-@@ -9,6 +9,8 @@ dnl ------------------------------------
- AC_DEFUN(AF_PATH_INCLUDE,
- [AC_PATH_PROGS($1,$2,$3,$4)
- if test -n "$$1"; then
-+ AH_TEMPLATE([HAVE_$1], [Have $2])
-+ AH_TEMPLATE([PATH_$1], [Have $2])
- AC_DEFINE(HAVE_$1,1,[define if you have $1])
- AC_DEFINE_UNQUOTED(PATH_$1, "$$1", [define if you have $1])
- HAVE_$1=1
-Index: autofs-4.1.4/configure.in
-===================================================================
---- autofs-4.1.4.orig/configure.in
-+++ autofs-4.1.4/configure.in
-@@ -135,12 +135,14 @@ AC_PROG_CC
- cat > pietest.c <<EOF
- int main(void) { return 0; }
- EOF
-+AF_tmp_ldflags="$LDFLAGS"
-+AF_tmp_cflags="$CFLAGS"
- CFLAGS=-fPIE
- LDFLAGS=-pie
- DAEMON_CFLAGS=
- DAEMON_LDFLAGS=
- AC_MSG_CHECKING([whether gcc -fPIE works])
--AC_RUN_IFELSE([AC_LANG_PROGRAM([[]], [[int main(void) {return 0;}]])],
-+AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int main(void) {return 0;}]])],
- [gcc_supports_pie=yes], [gcc_supports_pie=no])
- AC_MSG_RESULT([$gcc_supports_pie])
- if test $gcc_supports_pie = yes ; then
-@@ -150,6 +152,8 @@ fi
- rm -f pietest.c
- AC_SUBST(DAEMON_CFLAGS)
- AC_SUBST(DAEMON_LDFLAGS)
-+CFLAGS="${AF_tmp_cflags}"
-+LDFLAGS="${AF_tmp_ldflags}"
-
- #
- # Location of init.d directory?
+++ /dev/null
-Index: autofs-4.1.4/man/Makefile
-===================================================================
---- autofs-4.1.4.orig/man/Makefile 2003-09-29 10:22:35.000000000 +0200
-+++ autofs-4.1.4/man/Makefile 2006-06-19 15:09:33.124583912 +0200
-@@ -14,9 +14,9 @@
-
- install: all
- install -d -m 755 $(INSTALLROOT)$(mandir)/man5
-- install -c *.5 -m 644 $(INSTALLROOT)$(mandir)/man5
-+ install -c -m 644 *.5 $(INSTALLROOT)$(mandir)/man5
- install -d -m 755 $(INSTALLROOT)$(mandir)/man8
-- install -c *.8 -m 644 $(INSTALLROOT)$(mandir)/man8
-+ install -c -m 644 *.8 $(INSTALLROOT)$(mandir)/man8
-
- clean:
- rm -f $(GENFILES)
-Index: autofs-4.1.4/modules/Makefile
-===================================================================
---- autofs-4.1.4.orig/modules/Makefile 2004-08-29 14:46:23.000000000 +0200
-+++ autofs-4.1.4/modules/Makefile 2006-06-19 15:09:33.125583760 +0200
-@@ -53,7 +53,7 @@
- # mount_smbfs.so is an obsolete module which must be removed
- install: all
- install -d -m 755 $(INSTALLROOT)$(autofslibdir)
-- install -c $(MODS) -m 755 $(INSTALLROOT)$(autofslibdir)
-+ install -c -m 755 $(MODS) $(INSTALLROOT)$(autofslibdir)
- -rm -f $(INSTALLROOT)$(autofslibdir)/mount_smbfs.so
- ifeq ($(EXT2FS), 1)
- ifeq ($(EXT3FS), 1)
-Index: autofs-4.1.4/samples/Makefile
-===================================================================
---- autofs-4.1.4.orig/samples/Makefile 2005-01-04 15:36:54.000000000 +0100
-+++ autofs-4.1.4/samples/Makefile 2006-06-19 15:09:33.125583760 +0200
-@@ -27,19 +27,19 @@
- install: all
- install -d -m 755 $(INSTALLROOT)/etc
- -mv -f $(INSTALLROOT)/etc/auto.master $(INSTALLROOT)/etc/auto.master.old
-- install -c auto.master -m 644 $(INSTALLROOT)/etc
-+ install -c -m 644 auto.master $(INSTALLROOT)/etc
- -mv -f $(INSTALLROOT)/etc/auto.misc $(INSTALLROOT)/etc/auto.misc.old
-- install -c auto.misc -m 644 $(INSTALLROOT)/etc
-+ install -c -m 644 auto.misc $(INSTALLROOT)/etc
- -mv -f $(INSTALLROOT)/etc/auto.net $(INSTALLROOT)/etc/auto.net.old
-- install -c auto.net -m 755 $(INSTALLROOT)/etc
-+ install -c -m 755 auto.net $(INSTALLROOT)/etc
- -mv -f $(INSTALLROOT)/etc/auto.smb $(INSTALLROOT)/etc/auto.smb.old
-- install -c auto.smb -m 755 $(INSTALLROOT)/etc
-+ install -c -m 755 auto.smb $(INSTALLROOT)/etc
- install -d -m 755 $(INSTALLROOT)$(initdir)
-- install -c rc.autofs -m 755 $(INSTALLROOT)$(initdir)/autofs
-+ install -c -m 755 rc.autofs $(INSTALLROOT)$(initdir)/autofs
- install -d -m 755 $(INSTALLROOT)$(autofslibdir)
- install -d -m 755 $(INSTALLROOT)/var/run/autofs
- ifeq ($(LDAP), 1)
-- install -c autofs-ldap-auto-master -m 755 $(INSTALLROOT)$(autofslibdir)
-+ install -c -m 755 autofs-ldap-auto-master $(INSTALLROOT)$(autofslibdir)
- endif
-
- clean):
-Index: autofs-4.1.4/daemon/Makefile
-===================================================================
---- autofs-4.1.4.orig/daemon/Makefile 2006-06-19 15:10:47.526273136 +0200
-+++ autofs-4.1.4/daemon/Makefile 2006-06-19 15:10:58.661580312 +0200
-@@ -26,6 +26,6 @@
-
- install: all
- install -d -m 755 $(INSTALLROOT)$(sbindir)
-- install -c automount -m 755 $(INSTALLROOT)$(sbindir)
-+ install -c -m 755 automount $(INSTALLROOT)$(sbindir)
-
-
+++ /dev/null
-diff -Naur autofs-4.1.4/samples.orig/auto.net autofs-4.1.4/samples/auto.net
---- autofs-4.1.4/samples.orig/auto.net 2007-11-21 11:29:57.000000000 -0600
-+++ autofs-4.1.4/samples/auto.net 2007-11-21 11:30:27.000000000 -0600
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
-
- # $Id: auto.net,v 1.8 2005/04/05 13:02:09 raven Exp $
-
-diff -Naur autofs-4.1.4/samples.orig/auto.smb autofs-4.1.4/samples/auto.smb
---- autofs-4.1.4/samples.orig/auto.smb 2007-11-21 11:29:57.000000000 -0600
-+++ autofs-4.1.4/samples/auto.smb 2007-11-21 11:30:34.000000000 -0600
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
-
- # $Id: auto.smb,v 1.3 2005/04/05 13:02:09 raven Exp $
-
+++ /dev/null
-# <type> <owner> <group> <mode> <path> <linksource>
-d root root 0700 /var/run/autofs none
+++ /dev/null
-SUMMARY = "kernel-based automounter for Linux"
-SECTION = "base"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-PR = "r10"
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v4/${BP}.tar.bz2 \
- file://020_auto_net_path_sortlocale_mountoptions.patch \
- file://037_let_debian_rules_decide_on_CFLAGS.patch \
- file://042_default_auto_master_all_commented_out.patch \
- file://060_non_replicated_ping.patch \
- file://061_multi_parse_fix.patch \
- file://062_fix_memory_leak.patch \
- file://063_misc_fixes.patch \
- file://064_support_options_on_nis_maps.patch \
- file://065_fix_master_map_in_ldap.patch \
- file://066_canonicalise_mount_points.patch \
- file://067_allow_disabling_bind_mounts.patch \
- file://067_ldap_no_first_message.patch \
- file://068_fix_invalid_rpcgen_code.patch \
- file://069_support_spaces_in_smb_share_names.patch \
- file://070_fix_regex_typo.patch \
- file://071_fix_ldap_mounts.patch \
- file://072_fix_auto_net_sort.patch \
- file://073_configurable_locking.patch \
- file://074_auto_smb_cifs.patch \
- file://075_auto_net_escape_hash.patch \
- file://076_ldap_deprecated.patch \
- file://078_locking_fix_1.patch \
- file://079_no_unlink_upstream.patch \
- file://080_auto_smb_probe_credentials.patch \
- file://081_auto_net_showmount_quotes.patch \
- file://082_samples_makefile_typo.patch \
- file://083_clarify_program_map_outputsyntax.patch \
- file://084_init_lsb_header.patch \
- file://085_auto_net_lp111612.patch \
- file://cross.patch \
- file://Makefile.rules-cross.patch \
- file://install.patch \
- file://no-bash.patch \
- file://auto.hotplug \
- file://auto.master \
- file://auto.network \
- file://autofs.default \
- file://autofs.init \
- file://volatiles.99_autofs \
-"
-SRC_URI[md5sum] = "7e3949114c00665b4636f0c318179657"
-SRC_URI[sha256sum] = "e25caa0e9639ea54dd7c4f21e8146ac9859a61fa126f397edf874b5fdc147430"
-
-S = "${WORKDIR}/${BP}"
-
-inherit autotools-brokensep update-rc.d
-
-do_configure_prepend () {
- if [ ! -e acinclude.m4 ]; then
- cp aclocal.m4 acinclude.m4
- fi
-}
-do_install () {
- oe_runmake 'INSTALLROOT=${D}' install
- install -d ${D}${sysconfdir}/default
- install -m 644 ${WORKDIR}/autofs.default ${D}${sysconfdir}/default/autofs
- install -d ${D}${sysconfdir}/init.d
- install -m 755 ${WORKDIR}/autofs.init ${D}${sysconfdir}/init.d/autofs
- install -m 644 ${WORKDIR}/auto.hotplug ${D}${sysconfdir}/auto.hotplug
- install -m 644 ${WORKDIR}/auto.master ${D}${sysconfdir}/auto.master
- install -m 644 ${WORKDIR}/auto.network ${D}${sysconfdir}/auto.network
- install -d ${D}${sysconfdir}/default/volatiles
- install -m 644 ${WORKDIR}/volatiles.99_autofs ${D}${sysconfdir}/default/volatiles/99_autofs
-}
-
-RDEPENDS_${PN} = "procps"
-
-INITSCRIPT_NAME = "autofs"
-INITSCRIPT_PARAMS = "defaults"
-
-PARALLEL_MAKE = ""
-
-INSANE_SKIP_${PN} = "dev-so"
--- /dev/null
+# automounter configuration
--- /dev/null
+#
+# Define default options for autofs.
+#
+# MASTER_MAP_NAME - default map name for the master map.
+#
+#MASTER_MAP_NAME="auto.master"
+#
+# TIMEOUT - set the default mount timeout (default 600).
+#
+TIMEOUT=5
+#
+# NEGATIVE_TIMEOUT - set the default negative timeout for
+# failed mount attempts (default 60).
+#
+NEGATIVE_TIMEOUT=5
+#
+# MOUNT_WAIT - time to wait for a response from mount(8).
+# Setting this timeout can cause problems when
+# mount would otherwise wait for a server that
+# is temporarily unavailable, such as when it's
+# restarting. The default setting (-1) of waiting
+# for mount(8) usually results in a wait of around
+# 3 minutes.
+#
+MOUNT_WAIT=5
+#
+# UMOUNT_WAIT - time to wait for a response from umount(8).
+#
+#UMOUNT_WAIT=12
+#
+# BROWSE_MODE - maps are browsable by default.
+#
+BROWSE_MODE="no"
+#
+# MOUNT_NFS_DEFAULT_PROTOCOL - specify the default protocol used by
+# mount.nfs(8). Since we can't identify
+# the default automatically we need to
+# set it in our configuration.
+#
+#MOUNT_NFS_DEFAULT_PROTOCOL=3
+#
+# APPEND_OPTIONS - append to global options instead of replace.
+#
+#APPEND_OPTIONS="yes"
+#
+# LOGGING - set default log level "none", "verbose" or "debug"
+#
+#LOGGING="none"
+#
+# Define server URIs
+#
+# LDAP_URI - space seperated list of server uris of the form
+# <proto>://<server>[/] where <proto> can be ldap
+# or ldaps. The option can be given multiple times.
+# Map entries that include a server name override
+# this option.
+#
+# This configuration option can also be used to
+# request autofs lookup SRV RRs for a domain of
+# the form <proto>:///[<domain dn>]. Note that a
+# trailing "/" is not allowed when using this form.
+# If the domain dn is not specified the dns domain
+# name (if any) is used to construct the domain dn
+# for the SRV RR lookup. The server list returned
+# from an SRV RR lookup is refreshed according to
+# the minimum ttl found in the SRV RR records or
+# after one hour, whichever is less.
+#
+#LDAP_URI=""
+#
+# LDAP__TIMEOUT - timeout value for the synchronous API calls
+# (default is LDAP library default).
+#
+#LDAP_TIMEOUT=-1
+#
+# LDAP_NETWORK_TIMEOUT - set the network response timeout (default 8).
+#
+#LDAP_NETWORK_TIMEOUT=8
+#
+# Define base dn for map dn lookup.
+#
+# SEARCH_BASE - base dn to use for searching for map search dn.
+# Multiple entries can be given and they are checked
+# in the order they occur here.
+#
+#SEARCH_BASE=""
+#
+# Define the LDAP schema to used for lookups
+#
+# If no schema is set autofs will check each of the schemas
+# below in the order given to try and locate an appropriate
+# basdn for lookups. If you want to minimize the number of
+# queries to the server set the values here.
+#
+#MAP_OBJECT_CLASS="nisMap"
+#ENTRY_OBJECT_CLASS="nisObject"
+#MAP_ATTRIBUTE="nisMapName"
+#ENTRY_ATTRIBUTE="cn"
+#VALUE_ATTRIBUTE="nisMapEntry"
+#
+# Other common LDAP nameing
+#
+#MAP_OBJECT_CLASS="automountMap"
+#ENTRY_OBJECT_CLASS="automount"
+#MAP_ATTRIBUTE="ou"
+#ENTRY_ATTRIBUTE="cn"
+#VALUE_ATTRIBUTE="automountInformation"
+#
+#MAP_OBJECT_CLASS="automountMap"
+#ENTRY_OBJECT_CLASS="automount"
+#MAP_ATTRIBUTE="automountMapName"
+#ENTRY_ATTRIBUTE="automountKey"
+#VALUE_ATTRIBUTE="automountInformation"
+#
+# AUTH_CONF_FILE - set the default location for the SASL
+# authentication configuration file.
+#
+#AUTH_CONF_FILE="/etc/autofs_ldap_auth.conf"
+#
+# MAP_HASH_TABLE_SIZE - set the map cache hash table size.
+# Should be a power of 2 with a ratio roughly
+# between 1:10 and 1:20 for each map.
+#
+#MAP_HASH_TABLE_SIZE=1024
+#
+# General global options
+#
+# If the kernel supports using the autofs miscellanous device
+# and you wish to use it you must set this configuration option
+# to "yes" otherwise it will not be used.
+USE_MISC_DEVICE="yes"
+#
+#OPTIONS=""
+#
--- /dev/null
+# <type> <owner> <group> <mode> <path> <linksource>
+d root root 0700 /var/run/autofs none
+d root root 0755 /media/autofs none
--- /dev/null
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += " \
+ file://volatiles.99_autofs \
+ file://auto.network \
+ file://autofs.default \
+"
+
+EXTRA_OECONF += "--with-confdir=/etc/default --with-mapdir=/etc"
+
+do_install_append() {
+ echo "/media/autofs /etc/auto.network --ghost" > ${D}/etc/auto.master
+ sed -i 's/count -lt 15/count -lt 60/' ${D}/etc/init.d/autofs
+ sed -i 's/sleep 20/sleep 1/' ${D}/etc/init.d/autofs
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 644 ${WORKDIR}/volatiles.99_autofs ${D}${sysconfdir}/default/volatiles/99_autofs
+ install -m 644 ${WORKDIR}/auto.network ${D}/etc/auto.network
+ install -m 644 ${WORKDIR}/autofs.default ${D}/etc/default/autofs
+}
+
+CONFFILES_${PN} = "/etc/auto.network"