diff -Naur autofs-4.1.4/config.log autofs-modificat/config.log --- autofs-4.1.4/config.log 1970-01-01 01:00:00.000000000 +0100 +++ autofs-modificat/config.log 2007-02-28 10:46:55.000000000 +0100 @@ -0,0 +1,537 @@ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by configure, which was +generated by GNU Autoconf 2.59. Invocation command line was + + $ ./configure + +## --------- ## +## Platform. ## +## --------- ## + +hostname = inf12 +uname -m = i686 +uname -r = 2.6.19-1.2911.fc6xen +uname -s = Linux +uname -v = #1 SMP Sat Feb 10 16:09:50 EST 2007 + +/usr/bin/uname -p = unknown +/bin/uname -X = unknown + +/bin/arch = i686 +/usr/bin/arch -k = unknown +/usr/convex/getsysinfo = unknown +hostinfo = unknown +/bin/machine = unknown +/usr/bin/oslevel = unknown +/bin/universe = unknown + +PATH: /usr/kerberos/sbin +PATH: /usr/kerberos/bin +PATH: /usr/local/sbin +PATH: /usr/local/bin +PATH: /sbin +PATH: /bin +PATH: /usr/sbin +PATH: /usr/bin +PATH: /root/bin + + +## ----------- ## +## Core tests. ## +## ----------- ## + +configure:1307: checking for binaries in +configure:1309: result: /usr/bin:/bin:/usr/sbin:/sbin +configure:1319: checking for mount +configure:1337: found /bin/mount +configure:1349: result: /bin/mount +configure:1378: checking for umount +configure:1396: found /bin/umount +configure:1408: result: /bin/umount +configure:1437: checking for fsck.ext2 +configure:1455: found /sbin/fsck.ext2 +configure:1467: result: /sbin/fsck.ext2 +configure:1495: checking for fsck.ext3 +configure:1513: found /sbin/fsck.ext3 +configure:1525: result: /sbin/fsck.ext3 +configure:1555: checking if mount accepts the -s option +configure:1562: result: yes +configure:1619: checking for gcc +configure:1635: found /usr/bin/gcc +configure:1645: result: gcc +configure:1889: checking for C compiler version +configure:1892: gcc --version &5 +gcc (GCC) 4.1.1 20070105 (Red Hat 4.1.1-51) +Copyright (C) 2006 Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +configure:1895: $? = 0 +configure:1897: gcc -v &5 +Using built-in specs. +Target: i386-redhat-linux +Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux +Thread model: posix +gcc version 4.1.1 20070105 (Red Hat 4.1.1-51) +configure:1900: $? = 0 +configure:1902: gcc -V &5 +gcc: '-V' option must have argument +configure:1905: $? = 1 +configure:1928: checking for C compiler default output file name +configure:1931: gcc conftest.c >&5 +configure:1934: $? = 0 +configure:1980: result: a.out +configure:1985: checking whether the C compiler works +configure:1991: ./a.out +configure:1994: $? = 0 +configure:2011: result: yes +configure:2018: checking whether we are cross compiling +configure:2020: result: no +configure:2023: checking for suffix of executables +configure:2025: gcc -o conftest conftest.c >&5 +configure:2028: $? = 0 +configure:2053: result: +configure:2059: checking for suffix of object files +configure:2080: gcc -c conftest.c >&5 +configure:2083: $? = 0 +configure:2105: result: o +configure:2109: checking whether we are using the GNU C compiler +configure:2133: gcc -c conftest.c >&5 +configure:2139: $? = 0 +configure:2143: test -z + || test ! -s conftest.err +configure:2146: $? = 0 +configure:2149: test -s conftest.o +configure:2152: $? = 0 +configure:2165: result: yes +configure:2171: checking whether gcc accepts -g +configure:2192: gcc -c -g conftest.c >&5 +configure:2198: $? = 0 +configure:2202: test -z + || test ! -s conftest.err +configure:2205: $? = 0 +configure:2208: test -s conftest.o +configure:2211: $? = 0 +configure:2222: result: yes +configure:2239: checking for gcc option to accept ANSI C +configure:2309: gcc -c -g -O2 conftest.c >&5 +configure:2315: $? = 0 +configure:2319: test -z + || test ! -s conftest.err +configure:2322: $? = 0 +configure:2325: test -s conftest.o +configure:2328: $? = 0 +configure:2346: result: none needed +configure:2364: gcc -c -g -O2 conftest.c >&5 +conftest.c:2: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'me' +configure:2370: $? = 1 +configure: failed program was: +| #ifndef __cplusplus +| choke me +| #endif +configure:2504: checking for yp_match in -lnsl +configure:2534: gcc -o conftest -g -O2 conftest.c -lnsl >&5 +configure:2540: $? = 0 +configure:2544: test -z + || test ! -s conftest.err +configure:2547: $? = 0 +configure:2550: test -s conftest +configure:2553: $? = 0 +configure:2566: result: yes +configure:2574: checking for res_query in -lresolv +configure:2604: gcc -o conftest -g -O2 conftest.c -lresolv >&5 +configure:2610: $? = 0 +configure:2614: test -z + || test ! -s conftest.err +configure:2617: $? = 0 +configure:2620: test -s conftest +configure:2623: $? = 0 +configure:2636: result: yes +configure:2672: checking for hes_resolve in -lhesiod +configure:2702: gcc -o conftest -g -O2 conftest.c -lhesiod -lresolv >&5 +configure:2708: $? = 0 +configure:2712: test -z + || test ! -s conftest.err +configure:2715: $? = 0 +configure:2718: test -s conftest +configure:2721: $? = 0 +configure:2734: result: yes +configure:2753: checking how to run the C preprocessor +configure:2788: gcc -E conftest.c +configure:2794: $? = 0 +configure:2826: gcc -E conftest.c +conftest.c:18:28: error: ac_nonexistent.h: No such file or directory +configure:2832: $? = 1 +configure: failed program was: +| /* confdefs.h. */ +| +| #define PACKAGE_NAME "" +| #define PACKAGE_TARNAME "" +| #define PACKAGE_VERSION "" +| #define PACKAGE_STRING "" +| #define PACKAGE_BUGREPORT "" +| #define HAVE_MOUNT 1 +| #define PATH_MOUNT "/bin/mount" +| #define HAVE_UMOUNT 1 +| #define PATH_UMOUNT "/bin/umount" +| #define HAVE_E2FSCK 1 +| #define PATH_E2FSCK "/sbin/fsck.ext2" +| #define HAVE_E3FSCK 1 +| #define PATH_E3FSCK "/sbin/fsck.ext3" +| #define HAVE_SLOPPY_MOUNT 1 +| /* end confdefs.h. */ +| #include +configure:2871: result: gcc -E +configure:2895: gcc -E conftest.c +configure:2901: $? = 0 +configure:2933: gcc -E conftest.c +conftest.c:18:28: error: ac_nonexistent.h: No such file or directory +configure:2939: $? = 1 +configure: failed program was: +| /* confdefs.h. */ +| +| #define PACKAGE_NAME "" +| #define PACKAGE_TARNAME "" +| #define PACKAGE_VERSION "" +| #define PACKAGE_STRING "" +| #define PACKAGE_BUGREPORT "" +| #define HAVE_MOUNT 1 +| #define PATH_MOUNT "/bin/mount" +| #define HAVE_UMOUNT 1 +| #define PATH_UMOUNT "/bin/umount" +| #define HAVE_E2FSCK 1 +| #define PATH_E2FSCK "/sbin/fsck.ext2" +| #define HAVE_E3FSCK 1 +| #define PATH_E3FSCK "/sbin/fsck.ext3" +| #define HAVE_SLOPPY_MOUNT 1 +| /* end confdefs.h. */ +| #include +configure:2983: checking for egrep +configure:2993: result: grep -E +configure:2998: checking for ANSI C header files +configure:3023: gcc -c -g -O2 conftest.c >&5 +configure:3029: $? = 0 +configure:3033: test -z + || test ! -s conftest.err +configure:3036: $? = 0 +configure:3039: test -s conftest.o +configure:3042: $? = 0 +configure:3131: gcc -o conftest -g -O2 conftest.c >&5 +conftest.c: In function 'main': +conftest.c:35: warning: incompatible implicit declaration of built-in function 'exit' +configure:3134: $? = 0 +configure:3136: ./conftest +configure:3139: $? = 0 +configure:3154: result: yes +configure:3178: checking for sys/types.h +configure:3194: gcc -c -g -O2 conftest.c >&5 +configure:3200: $? = 0 +configure:3204: test -z + || test ! -s conftest.err +configure:3207: $? = 0 +configure:3210: test -s conftest.o +configure:3213: $? = 0 +configure:3224: result: yes +configure:3178: checking for sys/stat.h +configure:3194: gcc -c -g -O2 conftest.c >&5 +configure:3200: $? = 0 +configure:3204: test -z + || test ! -s conftest.err +configure:3207: $? = 0 +configure:3210: test -s conftest.o +configure:3213: $? = 0 +configure:3224: result: yes +configure:3178: checking for stdlib.h +configure:3194: gcc -c -g -O2 conftest.c >&5 +configure:3200: $? = 0 +configure:3204: test -z + || test ! -s conftest.err +configure:3207: $? = 0 +configure:3210: test -s conftest.o +configure:3213: $? = 0 +configure:3224: result: yes +configure:3178: checking for string.h +configure:3194: gcc -c -g -O2 conftest.c >&5 +configure:3200: $? = 0 +configure:3204: test -z + || test ! -s conftest.err +configure:3207: $? = 0 +configure:3210: test -s conftest.o +configure:3213: $? = 0 +configure:3224: result: yes +configure:3178: checking for memory.h +configure:3194: gcc -c -g -O2 conftest.c >&5 +configure:3200: $? = 0 +configure:3204: test -z + || test ! -s conftest.err +configure:3207: $? = 0 +configure:3210: test -s conftest.o +configure:3213: $? = 0 +configure:3224: result: yes +configure:3178: checking for strings.h +configure:3194: gcc -c -g -O2 conftest.c >&5 +configure:3200: $? = 0 +configure:3204: test -z + || test ! -s conftest.err +configure:3207: $? = 0 +configure:3210: test -s conftest.o +configure:3213: $? = 0 +configure:3224: result: yes +configure:3178: checking for inttypes.h +configure:3194: gcc -c -g -O2 conftest.c >&5 +configure:3200: $? = 0 +configure:3204: test -z + || test ! -s conftest.err +configure:3207: $? = 0 +configure:3210: test -s conftest.o +configure:3213: $? = 0 +configure:3224: result: yes +configure:3178: checking for stdint.h +configure:3194: gcc -c -g -O2 conftest.c >&5 +configure:3200: $? = 0 +configure:3204: test -z + || test ! -s conftest.err +configure:3207: $? = 0 +configure:3210: test -s conftest.o +configure:3213: $? = 0 +configure:3224: result: yes +configure:3178: checking for unistd.h +configure:3194: gcc -c -g -O2 conftest.c >&5 +configure:3200: $? = 0 +configure:3204: test -z + || test ! -s conftest.err +configure:3207: $? = 0 +configure:3210: test -s conftest.o +configure:3213: $? = 0 +configure:3224: result: yes +configure:3246: checking rpcsvc/nis.h usability +configure:3258: gcc -c -g -O2 conftest.c >&5 +configure:3264: $? = 0 +configure:3268: test -z + || test ! -s conftest.err +configure:3271: $? = 0 +configure:3274: test -s conftest.o +configure:3277: $? = 0 +configure:3287: result: yes +configure:3291: checking rpcsvc/nis.h presence +configure:3301: gcc -E conftest.c +configure:3307: $? = 0 +configure:3327: result: yes +configure:3362: checking for rpcsvc/nis.h +configure:3369: result: yes +configure:3405: checking for ldap_init in -lldap +configure:3435: gcc -o conftest -g -O2 conftest.c -lldap -llber -lresolv >&5 +configure:3441: $? = 0 +configure:3445: test -z + || test ! -s conftest.err +configure:3448: $? = 0 +configure:3451: test -s conftest +configure:3454: $? = 0 +configure:3467: result: yes +configure:3529: checking for gcc +configure:3555: result: gcc +configure:3799: checking for C compiler version +configure:3802: gcc --version &5 +gcc (GCC) 4.1.1 20070105 (Red Hat 4.1.1-51) +Copyright (C) 2006 Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +configure:3805: $? = 0 +configure:3807: gcc -v &5 +Using built-in specs. +Target: i386-redhat-linux +Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux +Thread model: posix +gcc version 4.1.1 20070105 (Red Hat 4.1.1-51) +configure:3810: $? = 0 +configure:3812: gcc -V &5 +gcc: '-V' option must have argument +configure:3815: $? = 1 +configure:3818: checking whether we are using the GNU C compiler +configure:3874: result: yes +configure:3880: checking whether gcc accepts -g +configure:3931: result: yes +configure:3948: checking for gcc option to accept ANSI C +configure:4055: result: none needed +configure:4073: gcc -c -g -O2 conftest.c >&5 +conftest.c:2: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'me' +configure:4079: $? = 1 +configure: failed program was: +| #ifndef __cplusplus +| choke me +| #endif +configure:4219: checking whether gcc -fPIE works +configure:4244: gcc -o conftest -fPIE -pie conftest.c >&5 +configure:4247: $? = 0 +configure:4249: ./conftest +configure:4252: $? = 0 +configure:4265: result: yes +configure:4279: checking location of the init.d directory +configure:4285: result: /etc/init.d +configure:4358: creating ./config.status + +## ---------------------- ## +## Running config.status. ## +## ---------------------- ## + +This file was extended by config.status, which was +generated by GNU Autoconf 2.59. Invocation command line was + + CONFIG_FILES = + CONFIG_HEADERS = + CONFIG_LINKS = + CONFIG_COMMANDS = + $ ./config.status + +on inf12 + +config.status:661: creating Makefile.conf +config.status:764: creating include/config.h + +## ---------------- ## +## Cache variables. ## +## ---------------- ## + +ac_cv_c_compiler_gnu=yes +ac_cv_env_CC_set= +ac_cv_env_CC_value= +ac_cv_env_CFLAGS_set= +ac_cv_env_CFLAGS_value= +ac_cv_env_CPPFLAGS_set= +ac_cv_env_CPPFLAGS_value= +ac_cv_env_CPP_set= +ac_cv_env_CPP_value= +ac_cv_env_LDFLAGS_set= +ac_cv_env_LDFLAGS_value= +ac_cv_env_build_alias_set= +ac_cv_env_build_alias_value= +ac_cv_env_host_alias_set= +ac_cv_env_host_alias_value= +ac_cv_env_target_alias_set= +ac_cv_env_target_alias_value= +ac_cv_exeext= +ac_cv_header_inttypes_h=yes +ac_cv_header_memory_h=yes +ac_cv_header_rpcsvc_nis_h=yes +ac_cv_header_stdc=yes +ac_cv_header_stdint_h=yes +ac_cv_header_stdlib_h=yes +ac_cv_header_string_h=yes +ac_cv_header_strings_h=yes +ac_cv_header_sys_stat_h=yes +ac_cv_header_sys_types_h=yes +ac_cv_header_unistd_h=yes +ac_cv_lib_hesiod_hes_resolve=yes +ac_cv_lib_ldap_ldap_init=yes +ac_cv_lib_nsl_yp_match=yes +ac_cv_lib_resolv_res_query=yes +ac_cv_objext=o +ac_cv_path_E2FSCK=/sbin/fsck.ext2 +ac_cv_path_E3FSCK=/sbin/fsck.ext3 +ac_cv_path_MOUNT=/bin/mount +ac_cv_path_UMOUNT=/bin/umount +ac_cv_prog_CPP='gcc -E' +ac_cv_prog_ac_ct_CC=gcc +ac_cv_prog_cc_g=yes +ac_cv_prog_cc_stdc= +ac_cv_prog_egrep='grep -E' + +## ----------------- ## +## Output variables. ## +## ----------------- ## + +CC='gcc' +CFLAGS='-fPIE' +CPP='gcc -E' +CPPFLAGS='' +DAEMON_CFLAGS='-fPIE' +DAEMON_LDFLAGS='-pie' +DEFS='-DHAVE_CONFIG_H' +E2FSCK='/sbin/fsck.ext2' +E3FSCK='/sbin/fsck.ext3' +ECHO_C='' +ECHO_N='-n' +ECHO_T='' +EGREP='grep -E' +EXEEXT='' +HAVE_E2FSCK='1' +HAVE_E3FSCK='1' +HAVE_HESIOD='1' +HAVE_LDAP='1' +HAVE_MOUNT='1' +HAVE_NISPLUS='1' +HAVE_UMOUNT='1' +HESIOD_FLAGS='' +LDAP_FLAGS='' +LDFLAGS='-pie' +LIBHESIOD=' -lhesiod' +LIBLDAP=' -lldap -llber -lresolv' +LIBNSL='-lnsl' +LIBOBJS='' +LIBRESOLV='-lresolv' +LIBS='' +LTLIBOBJS='' +MOUNT='/bin/mount' +OBJEXT='o' +PACKAGE_BUGREPORT='' +PACKAGE_NAME='' +PACKAGE_STRING='' +PACKAGE_TARNAME='' +PACKAGE_VERSION='' +PATH_SEPARATOR=':' +SHELL='/bin/sh' +UMOUNT='/bin/umount' +ac_ct_CC='gcc' +bindir='${exec_prefix}/bin' +build_alias='' +datadir='${prefix}/share' +exec_prefix='${prefix}' +host_alias='' +includedir='${prefix}/include' +infodir='${prefix}/info' +initdir='/etc/init.d' +libdir='${exec_prefix}/lib' +libexecdir='${exec_prefix}/libexec' +localstatedir='${prefix}/var' +mandir='${prefix}/man' +oldincludedir='/usr/include' +prefix='/usr' +program_transform_name='s,x,x,' +sbindir='${exec_prefix}/sbin' +sharedstatedir='${prefix}/com' +sysconfdir='${prefix}/etc' +target_alias='' + +## ----------- ## +## confdefs.h. ## +## ----------- ## + +#define HAVE_E2FSCK 1 +#define HAVE_E3FSCK 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_MOUNT 1 +#define HAVE_SLOPPY_MOUNT 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_STRING_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_UMOUNT 1 +#define HAVE_UNISTD_H 1 +#define PACKAGE_BUGREPORT "" +#define PACKAGE_NAME "" +#define PACKAGE_STRING "" +#define PACKAGE_TARNAME "" +#define PACKAGE_VERSION "" +#define PATH_E2FSCK "/sbin/fsck.ext2" +#define PATH_E3FSCK "/sbin/fsck.ext3" +#define PATH_MOUNT "/bin/mount" +#define PATH_UMOUNT "/bin/umount" +#define STDC_HEADERS 1 + +configure: exit 0 diff -Naur autofs-4.1.4/config.status autofs-modificat/config.status --- autofs-4.1.4/config.status 1970-01-01 01:00:00.000000000 +0100 +++ autofs-modificat/config.status 2007-02-28 10:46:55.000000000 +0100 @@ -0,0 +1,933 @@ +#! /bin/sh +# Generated by configure. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=${CONFIG_SHELL-/bin/sh} +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi +DUALCASE=1; export DUALCASE # for MKS sh + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 +echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 +echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + +exec 6>&1 + +# Open the log real soon, to keep \$[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. Logging --version etc. is OK. +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX +} >&5 +cat >&5 <<_CSEOF + +This file was extended by $as_me, which was +generated by GNU Autoconf 2.59. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +_CSEOF +echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 +echo >&5 +config_files=" Makefile.conf" +config_headers=" include/config.h" + +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Report bugs to ." +ac_cs_version="\ +config.status +configured by ./configure, generated by GNU Autoconf 2.59, + with options \"\" + +Copyright (C) 2003 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." +srcdir=. +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "x$1" : 'x\([^=]*\)='` + ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` + ac_shift=: + ;; + -*) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + *) # This is not an option, so the user has probably given explicit + # arguments. + ac_option=$1 + ac_need_defaults=false;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --vers* | -V ) + echo "$ac_cs_version"; exit 0 ;; + --he | --h) + # Conflict between --help and --header + { { echo "$as_me:$LINENO: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +if $ac_cs_recheck; then + echo "running /bin/sh ./configure " $ac_configure_extra_args " --no-create --no-recursion" >&6 + exec /bin/sh ./configure $ac_configure_extra_args --no-create --no-recursion +fi + +for ac_config_target in $ac_config_targets +do + case "$ac_config_target" in + # Handling of arguments. + "Makefile.conf" ) CONFIG_FILES="$CONFIG_FILES Makefile.conf" ;; + "include/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/config.h" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason to put it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Create a temporary directory, and hook for its removal unless debugging. +$debug || +{ + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} + +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./confstat$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + + +# +# CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "$CONFIG_FILES"; then + # Protect against being on the right side of a sed subst in config.status. + sed 's/,@/@@/; s/@,/@@/; s/,;t t$/@;t t/; /@;t t$/s/[\\&,]/\\&/g; + s/@@/,@/; s/@@/@,/; s/@;t t$/,;t t/' >$tmp/subs.sed <<\CEOF +s,@SHELL@,/bin/sh,;t t +s,@PATH_SEPARATOR@,:,;t t +s,@PACKAGE_NAME@,,;t t +s,@PACKAGE_TARNAME@,,;t t +s,@PACKAGE_VERSION@,,;t t +s,@PACKAGE_STRING@,,;t t +s,@PACKAGE_BUGREPORT@,,;t t +s,@exec_prefix@,${prefix},;t t +s,@prefix@,/usr,;t t +s,@program_transform_name@,s,x,x,,;t t +s,@bindir@,${exec_prefix}/bin,;t t +s,@sbindir@,${exec_prefix}/sbin,;t t +s,@libexecdir@,${exec_prefix}/libexec,;t t +s,@datadir@,${prefix}/share,;t t +s,@sysconfdir@,${prefix}/etc,;t t +s,@sharedstatedir@,${prefix}/com,;t t +s,@localstatedir@,${prefix}/var,;t t +s,@libdir@,${exec_prefix}/lib,;t t +s,@includedir@,${prefix}/include,;t t +s,@oldincludedir@,/usr/include,;t t +s,@infodir@,${prefix}/info,;t t +s,@mandir@,${prefix}/man,;t t +s,@build_alias@,,;t t +s,@host_alias@,,;t t +s,@target_alias@,,;t t +s,@DEFS@,-DHAVE_CONFIG_H,;t t +s,@ECHO_C@,,;t t +s,@ECHO_N@,-n,;t t +s,@ECHO_T@,,;t t +s,@LIBS@,,;t t +s,@MOUNT@,/bin/mount,;t t +s,@HAVE_MOUNT@,1,;t t +s,@UMOUNT@,/bin/umount,;t t +s,@HAVE_UMOUNT@,1,;t t +s,@E2FSCK@,/sbin/fsck.ext2,;t t +s,@HAVE_E2FSCK@,1,;t t +s,@E3FSCK@,/sbin/fsck.ext3,;t t +s,@HAVE_E3FSCK@,1,;t t +s,@CC@,gcc,;t t +s,@CFLAGS@,-fPIE,;t t +s,@LDFLAGS@,-pie,;t t +s,@CPPFLAGS@,,;t t +s,@ac_ct_CC@,gcc,;t t +s,@EXEEXT@,,;t t +s,@OBJEXT@,o,;t t +s,@LIBNSL@,-lnsl,;t t +s,@LIBRESOLV@,-lresolv,;t t +s,@HAVE_HESIOD@,1,;t t +s,@LIBHESIOD@, -lhesiod,;t t +s,@HESIOD_FLAGS@,,;t t +s,@CPP@,gcc -E,;t t +s,@EGREP@,grep -E,;t t +s,@HAVE_NISPLUS@,1,;t t +s,@LDAP_FLAGS@,,;t t +s,@HAVE_LDAP@,1,;t t +s,@LIBLDAP@, -lldap -llber -lresolv,;t t +s,@DAEMON_CFLAGS@,-fPIE,;t t +s,@DAEMON_LDFLAGS@,-pie,;t t +s,@initdir@,/etc/init.d,;t t +s,@LIBOBJS@,,;t t +s,@LTLIBOBJS@,,;t t +CEOF + + # Split the substitutions into bite-sized pieces for seds with + # small command number limits, like on Digital OSF/1 and HP-UX. + ac_max_sed_lines=48 + ac_sed_frag=1 # Number of current file. + ac_beg=1 # First line for current file. + ac_end=$ac_max_sed_lines # Line after last line for current file. + ac_more_lines=: + ac_sed_cmds= + while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + else + sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + fi + if test ! -s $tmp/subs.frag; then + ac_more_lines=false + else + # The purpose of the label and of the branching condition is to + # speed up the sed processing (if there are no `@' at all, there + # is no need to browse any of the substitutions). + # These are the two extra sed commands mentioned above. + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_lines` + fi + done + if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat + fi +fi # test -n "$CONFIG_FILES" + +for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac + + + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + if test x"$ac_file" = x-; then + configure_input= + else + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | + sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo "$f";; + *) # Relative + if test -f "$f"; then + # Build tree + echo "$f" + elif test -f "$srcdir/$f"; then + # Source tree + echo "$srcdir/$f" + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } + sed "/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/; +s/:*\${srcdir}:*/:/; +s/:*@srcdir@:*/:/; +s/^\([^=]*=[ ]*\):*/\1/; +s/:*$//; +s/^[^=]*=[ ]*$//; +} + +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s,@configure_input@,$configure_input,;t t +s,@srcdir@,$ac_srcdir,;t t +s,@abs_srcdir@,$ac_abs_srcdir,;t t +s,@top_srcdir@,$ac_top_srcdir,;t t +s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t +s,@builddir@,$ac_builddir,;t t +s,@abs_builddir@,$ac_abs_builddir,;t t +s,@top_builddir@,$ac_top_builddir,;t t +s,@abs_top_builddir@,$ac_abs_top_builddir,;t t +" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then + mv $tmp/out $ac_file + else + cat $tmp/out + rm -f $tmp/out + fi + +done + +# +# CONFIG_HEADER section. +# + +# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where +# NAME is the cpp macro being defined and VALUE is the value it is being given. +# +# ac_d sets the value in "#define NAME VALUE" lines. +ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' +ac_dB='[ ].*$,\1#\2' +ac_dC=' ' +ac_dD=',;t' +# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uB='$,\1#\2define\3' +ac_uC=' ' +ac_uD=',;t' + +for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + # Do quote $f, to prevent DOS paths from being IFS'd. + echo "$f";; + *) # Relative + if test -f "$f"; then + # Build tree + echo "$f" + elif test -f "$srcdir/$f"; then + # Source tree + echo "$srcdir/$f" + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } + # Remove the trailing spaces. + sed 's/[ ]*$//' $ac_file_inputs >$tmp/in + + # Handle all the #define templates only if necessary. + if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then + # If there are no defines, we may have an empty if/fi + : + cat >$tmp/defines.sed <$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in + + fi # grep + + # Handle all the #undef templates + cat >$tmp/undefs.sed <$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + if test x"$ac_file" = x-; then + echo "/* Generated by configure. */" >$tmp/config.h + else + echo "/* $ac_file. Generated by configure. */" >$tmp/config.h + fi + cat $tmp/in >>$tmp/config.h + rm -f $tmp/in + if test x"$ac_file" != x-; then + if diff $ac_file $tmp/config.h >/dev/null 2>&1; then + { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +echo "$as_me: $ac_file is unchanged" >&6;} + else + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + rm -f $ac_file + mv $tmp/config.h $ac_file + fi + else + cat $tmp/config.h + rm -f $tmp/config.h + fi +done + +{ (exit 0); exit 0; } diff -Naur autofs-4.1.4/daemon/automount.c autofs-modificat/daemon/automount.c --- autofs-4.1.4/daemon/automount.c 2005-03-06 10:43:55.000000000 +0100 +++ autofs-modificat/daemon/automount.c 2007-02-28 11:55:00.000000000 +0100 @@ -139,31 +139,7 @@ static int umount_ent(const char *root, const char *name, const char *type) { - char path_buf[PATH_MAX]; - struct stat st; - int sav_errno; - int is_smbfs = (strcmp(type, "smbfs") == 0); - int status; - int rv = 0; - - sprintf(path_buf, "%s/%s", root, name); - status = lstat(path_buf, &st); - sav_errno = errno; - - /* EIO appears to correspond to an smb mount that has gone away */ - if (!status || - (is_smbfs && (sav_errno == EIO || sav_errno == EBADSLT))) { - int umount_ok = 0; - - if (!status && (S_ISDIR(st.st_mode) && (st.st_dev != ap.dev))) - umount_ok = 1; - - if (umount_ok || is_smbfs) { - rv = spawnll(LOG_DEBUG, - PATH_UMOUNT, PATH_UMOUNT, path_buf, NULL); - } - } - return rv; + return do_umount(root, name, type); } /* Like ftw, except fn gets called twice: before a directory is diff -Naur autofs-4.1.4/daemon/Makefile autofs-modificat/daemon/Makefile --- autofs-4.1.4/daemon/Makefile 2004-04-03 09:14:33.000000000 +0200 +++ autofs-modificat/daemon/Makefile 2007-02-28 11:03:47.000000000 +0100 @@ -6,8 +6,8 @@ -include ../Makefile.conf include ../Makefile.rules -SRCS = automount.c spawn.c module.c mount.c -OBJS = automount.o spawn.o module.o mount.o +SRCS = automount.c spawn.c module.c mount.c umount.c +OBJS = automount.o spawn.o module.o mount.o umount.o version := $(shell cat ../.version) diff -Naur autofs-4.1.4/daemon/module.c autofs-modificat/daemon/module.c --- autofs-4.1.4/daemon/module.c 2004-01-29 17:01:22.000000000 +0100 +++ autofs-modificat/daemon/module.c 2007-02-28 13:27:28.000000000 +0100 @@ -240,6 +240,75 @@ return mod; } + +struct mount_mod *open_umount(const char *name, const char *err_prefix) +{ + struct mount_mod *mod; + char *fnbuf; + size_t size_name; + size_t size_fnbuf; + void *dh; + int *ver; + + size_name = _strlen(name, PATH_MAX + 1); + if (!size_name) + return NULL; + + mod = malloc(sizeof(struct mount_mod)); + if (!mod) { + if (err_prefix) + crit("%s%m", err_prefix); + return NULL; + } + + size_fnbuf = size_name + strlen(AUTOFS_LIB_DIR) + 13; + fnbuf = alloca(size_fnbuf); + if (!fnbuf) { + free(mod); + if (err_prefix) + crit("%s%m", err_prefix); + return NULL; + } + snprintf(fnbuf, size_fnbuf, "%s/umount_%s.so", AUTOFS_LIB_DIR, name); + + if (!(dh = dlopen(fnbuf, RTLD_NOW))) { + if (err_prefix) + crit("%scannot open umount module %s (%s)", + err_prefix, name, dlerror()); + free(mod); + return NULL; + } + + if (!(ver = (int *) dlsym(dh, "mount_version")) + || *ver != AUTOFS_MOUNT_VERSION) { + if (err_prefix) + crit("%smount module %s version mismatch", + err_prefix, name); + dlclose(dh); + free(mod); + return NULL; + } + + if (!(mod->mount_init = (mount_init_t) dlsym(dh, "mount_init")) || + !(mod->mount_umount = (mount_umount_t) dlsym(dh, "mount_umount")) || + !(mod->mount_done = (mount_done_t) dlsym(dh, "mount_done"))) { + if (err_prefix) + crit("%smount module %s corrupt", err_prefix, name); + dlclose(dh); + free(mod); + return NULL; + } + + if (mod->mount_init(&mod->context)) { + dlclose(dh); + free(mod); + return NULL; + } + mod->dlhandle = dh; + return mod; +} + + int close_mount(struct mount_mod *mod) { int rv = mod->mount_done(mod->context); diff -Naur autofs-4.1.4/daemon/umount.c autofs-modificat/daemon/umount.c --- autofs-4.1.4/daemon/umount.c 1970-01-01 01:00:00.000000000 +0100 +++ autofs-modificat/daemon/umount.c 2007-02-28 15:05:30.000000000 +0100 @@ -0,0 +1,63 @@ +/* ----------------------------------------------------------------------- * + * + * umount.c - Abstract umount code used by modules for an unexpected + * filesystem type + * + * Copyright 2007 Jordi Prats - CESCA - All Rights Reserved + * + * 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. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * ----------------------------------------------------------------------- */ + +#include +#include +#include +#include "automount.h" + +/* These filesystems are known not to work with the "generic" module */ +static char *not_generic[] = { "ext3lvm", + NULL +}; + +// (const char *root, const char *name, int name_len, +// const char *what, const char *fstype, const char *options) + +int do_umount(const char *root, const char *name, const char *type) +{ + struct mount_mod *mod; + const char *modstr; + char **ngp; + int rv; + + mod = open_umount(modstr = type, NULL); + if (!mod) { + for (ngp = not_generic; *ngp; ngp++) { + if (!strcmp(type, *ngp)) + break; + } + if (!*ngp) + mod = open_umount(modstr = "generic", NULL); + if (!mod) { + error("cannot find umount method for filesystem %s", + type); + return -1; + } + } + + debug("do_umount root %s name type %s", + root, name, type); + + rv = mod->mount_umount(root, name, strlen(name), type, mod->context); + close_mount(mod); + + return rv; +} diff -Naur autofs-4.1.4/daemon/umount.c~ autofs-modificat/daemon/umount.c~ --- autofs-4.1.4/daemon/umount.c~ 1970-01-01 01:00:00.000000000 +0100 +++ autofs-modificat/daemon/umount.c~ 2007-02-28 13:27:10.000000000 +0100 @@ -0,0 +1,64 @@ +#ident "$Id: mount.c,v 1.5 2004/11/17 14:38:27 raven Exp $" +/* ----------------------------------------------------------------------- * + * + * umount.c - Abstract mount code used by modules for an unexpected + * filesystem type + * + * Copyright 2007 CESCA - All Rights Reserved + * + * 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. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * ----------------------------------------------------------------------- */ + +#include +#include +#include +#include "automount.h" + +/* These filesystems are known not to work with the "generic" module */ +static char *not_generic[] = { "ext3lvm", + NULL +}; + +// (const char *root, const char *name, int name_len, +// const char *what, const char *fstype, const char *options) + +int do_umount(const char *root, const char *name, const char *type) +{ + struct mount_mod *mod; + const char *modstr; + char **ngp; + int rv; + + mod = open_umount(modstr = type, NULL); + if (!mod) { + for (ngp = not_generic; *ngp; ngp++) { + if (!strcmp(type, *ngp)) + break; + } + if (!*ngp) + mod = open_umount(modstr = "generic", NULL); + if (!mod) { + error("cannot find umount method for filesystem %s", + type); + return -1; + } + } + + debug("do_umount root %s name type %s", + root, name, type); + + rv = mod->mount_umount(root, name, strlen(name), type, mod->context); + close_mount(mod); + + return rv; +} diff -Naur autofs-4.1.4/include/automount.h autofs-modificat/include/automount.h --- autofs-4.1.4/include/automount.h 2005-01-26 14:03:02.000000000 +0100 +++ autofs-modificat/include/automount.h 2007-02-28 11:54:07.000000000 +0100 @@ -130,6 +130,9 @@ int signal_children(int sig); int do_mount(const char *root, const char *name, int name_len, const char *what, const char *fstype, const char *options); + +int do_umount(const char *root, const char *name, const char *type); + int mkdir_path(const char *path, mode_t mode); int rmdir_path(const char *path); @@ -200,22 +203,32 @@ int mount_init(void **context); int mount_mount(const char *root, const char *name, int name_len, const char *what, const char *fstype, const char *options, void *context); + +int mount_umount(const char *root, const char *name, int name_len, + const char *fstype, void *context); + int mount_done(void *context); #endif typedef int (*mount_init_t) (void **); typedef int (*mount_mount_t) (const char *, const char *, int, const char *, const char *, const char *, void *); + +typedef int (*mount_umount_t) (const char *, const char *, int, const char *, + void *); + typedef int (*mount_done_t) (void *); struct mount_mod { mount_init_t mount_init; mount_mount_t mount_mount; + mount_umount_t mount_umount; mount_done_t mount_done; void *dlhandle; void *context; }; struct mount_mod *open_mount(const char *name, const char *err_prefix); +struct mount_mod *open_umount(const char *name, const char *err_prefix); int close_mount(struct mount_mod *); /* mapent cache definition */ diff -Naur autofs-4.1.4/include/config.h autofs-modificat/include/config.h --- autofs-4.1.4/include/config.h 1970-01-01 01:00:00.000000000 +0100 +++ autofs-modificat/include/config.h 2007-02-28 10:46:55.000000000 +0100 @@ -0,0 +1,28 @@ +/* include/config.h. Generated by configure. */ +#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 + * + */ + +/* Program paths */ +#define HAVE_MOUNT 1 +#define PATH_MOUNT "/bin/mount" + +#define HAVE_UMOUNT 1 +#define PATH_UMOUNT "/bin/umount" + +/* #undef HAVE_SMBMOUNT */ +/* #undef PATH_SMBMOUNT */ + +#define HAVE_E2FSCK 1 +#define PATH_E2FSCK "/sbin/fsck.ext2" + +#define HAVE_E3FSCK 1 +#define PATH_E3FSCK "/sbin/fsck.ext3" + +/* Define this option if mount(8) supports the -s (sloppy) option */ +#define HAVE_SLOPPY_MOUNT 1 + +/* #undef ENABLE_EXT_ENV */ diff -Naur autofs-4.1.4/Makefile.conf autofs-modificat/Makefile.conf --- autofs-4.1.4/Makefile.conf 1970-01-01 01:00:00.000000000 +0100 +++ autofs-modificat/Makefile.conf 2007-02-28 10:46:55.000000000 +0100 @@ -0,0 +1,60 @@ +# +# $id$ +# +# Makefile.conf.in +# +# Pattern file to be filled in by configure; contains specific options to +# build autofs. +# + +# Do we build with -fpie? +DAEMON_CFLAGS = -fPIE +DAEMON_LDFLAGS = -pie + +# Special parameters for glibc (libc 6) +LIBNSL = -lnsl +LIBRESOLV = -lresolv + +# Hesiod support: yes (1) no (0) +HESIOD = 1 +LIBHESIOD = -lhesiod +HESIOD_FLAGS = + +# LDAP support: yes (1) no (0) +LDAP = 1 +LIBLDAP= -lldap -llber -lresolv +LDAP_FLAGS = + +# NIS+ support: yes (1) no (0) +NISPLUS = 1 + +# SMBFS support: yes (1) no (0) +SMBFS = @HAVE_SMBMOUNT@ + +# Support for calling e2fsck when mounting ext2 filesystems +EXT2FS = 1 + +# Support for calling e3fsck when mounting ext3 filesystems +EXT3FS = 1 + +# +# Note: the DESTDIR define is so you can build autofs into a temporary +# directory and still have all the compiled-in paths point to the right +# place. +# + +# Common install prefix +prefix = /usr +exec_prefix = ${prefix} + +# Directory for autofs modules +autofslibdir = ${exec_prefix}/lib/autofs + +# Where to install the automount program +sbindir = ${exec_prefix}/sbin + +# Where to install man pages +mandir = ${prefix}/man + +# Location for init.d files +initdir = /etc/init.d diff -Naur autofs-4.1.4/modules/Makefile autofs-modificat/modules/Makefile --- autofs-4.1.4/modules/Makefile 2004-08-29 14:46:23.000000000 +0200 +++ autofs-modificat/modules/Makefile 2007-02-28 13:03:49.000000000 +0100 @@ -10,13 +10,13 @@ lookup_multi.c \ parse_sun.c \ mount_generic.c mount_nfs.c mount_afs.c mount_autofs.c \ - mount_changer.c mount_bind.c + mount_changer.c mount_bind.c umount_generic.c MODS := lookup_yp.so lookup_file.so lookup_program.so lookup_userhome.so \ lookup_multi.so \ parse_sun.so \ mount_generic.so mount_nfs.so mount_afs.so mount_autofs.so \ - mount_changer.so mount_bind.so + mount_changer.so mount_bind.so umount_generic.so ifeq ($(EXT2FS), 1) SRCS += mount_ext2.c diff -Naur autofs-4.1.4/modules/#umount_generic.# autofs-modificat/modules/#umount_generic.# --- autofs-4.1.4/modules/#umount_generic.# 1970-01-01 01:00:00.000000000 +0100 +++ autofs-modificat/modules/#umount_generic.# 2007-02-28 11:55:41.000000000 +0100 @@ -0,0 +1 @@ +-cn \ No newline at end of file diff -Naur autofs-4.1.4/modules/umount_generic.c autofs-modificat/modules/umount_generic.c --- autofs-4.1.4/modules/umount_generic.c 1970-01-01 01:00:00.000000000 +0100 +++ autofs-modificat/modules/umount_generic.c 2007-02-28 15:06:18.000000000 +0100 @@ -0,0 +1,73 @@ +/* ----------------------------------------------------------------------- * + * + * umount_generic.c - module for Linux automountd to umount filesystems + * for which no special magic is required + * + * Copyright 2007 Jordi Prats - CESCA - All Rights Reserved + * + * 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; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MODULE_MOUNT +#include "automount.h" + +#define MODPREFIX "umount(generic): " + +int mount_version = AUTOFS_MOUNT_VERSION; /* Required by protocol */ + +int mount_init(void **context) +{ + return 0; +} + +int mount_umount(const char *root, const char *name, int name_len, + const char *fstype, void *context) +{ + char path_buf[PATH_MAX]; + struct stat st; + int sav_errno; + int is_smbfs = (strcmp(fstype, "smbfs") == 0); + int status; + int rv = 0; + + sprintf(path_buf, "%s/%s", root, name); + status = lstat(path_buf, &st); + sav_errno = errno; + + /* EIO appears to correspond to an smb mount that has gone away */ + if (!status || + (is_smbfs && (sav_errno == EIO || sav_errno == EBADSLT))) { + int umount_ok = 0; + + if (!status && (S_ISDIR(st.st_mode) && (st.st_dev != ap.dev))) + umount_ok = 1; + + if (umount_ok || is_smbfs) { + rv = spawnll(LOG_DEBUG, + PATH_UMOUNT, PATH_UMOUNT, path_buf, NULL); + } + } + return rv; +} + +int mount_done(void *context) +{ + return 0; +} diff -Naur autofs-4.1.4/modules/umount_generic.c~ autofs-modificat/modules/umount_generic.c~ --- autofs-4.1.4/modules/umount_generic.c~ 1970-01-01 01:00:00.000000000 +0100 +++ autofs-modificat/modules/umount_generic.c~ 2007-02-28 13:27:42.000000000 +0100 @@ -0,0 +1,74 @@ +#ident "$Id: mount_generic.c,v 1.15 2005/01/10 13:28:29 raven Exp $" +/* ----------------------------------------------------------------------- * + * + * mount_generic.c - module for Linux automountd to mount filesystems + * for which no special magic is required + * + * Copyright 1997-1999 Transmeta Corporation - All Rights Reserved + * + * 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; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MODULE_MOUNT +#include "automount.h" + +#define MODPREFIX "umount(generic): " + +int mount_version = AUTOFS_MOUNT_VERSION; /* Required by protocol */ + +int mount_init(void **context) +{ + return 0; +} + +int mount_umount(const char *root, const char *name, int name_len, + const char *fstype, void *context) +{ + char path_buf[PATH_MAX]; + struct stat st; + int sav_errno; + int is_smbfs = (strcmp(fstype, "smbfs") == 0); + int status; + int rv = 0; + + sprintf(path_buf, "%s/%s", root, name); + status = lstat(path_buf, &st); + sav_errno = errno; + + /* EIO appears to correspond to an smb mount that has gone away */ + if (!status || + (is_smbfs && (sav_errno == EIO || sav_errno == EBADSLT))) { + int umount_ok = 0; + + if (!status && (S_ISDIR(st.st_mode) && (st.st_dev != ap.dev))) + umount_ok = 1; + + if (umount_ok || is_smbfs) { + rv = spawnll(LOG_DEBUG, + PATH_UMOUNT, PATH_UMOUNT, path_buf, NULL); + } + } + return rv; +} + +int mount_done(void *context) +{ + return 0; +} diff -Naur autofs-4.1.4/samples/autofs-ldap-auto-master autofs-modificat/samples/autofs-ldap-auto-master --- autofs-4.1.4/samples/autofs-ldap-auto-master 1970-01-01 01:00:00.000000000 +0100 +++ autofs-modificat/samples/autofs-ldap-auto-master 2007-02-28 11:02:14.000000000 +0100 @@ -0,0 +1,17 @@ +ELF44 (444ȫȫpܫܫ((( Qtd/lib/ld-linux.so.2GNU  M #|CEK8qX2N+ ! ~g[CJsuaebI9^95w_+$B}b;RWH8*ȑp<8  + C8i@libldap-2.3.so.0__gmon_start___Jv_RegisterClassesldap_msgfreeldap_get_dnldap_simple_bind_sldap_control_freeldap_next_entryldap_value_freeldap_search_ext_sldap_err2stringldap_memfreeldap_first_entry_finildap_initldap_get_valuesldap_unbindldap_set_optionliblber-2.3.so.0libc.so.6_IO_stdin_usedsetlocaleoptindstrrchr__strdupmemsetgetoptoptargstderrfwritestrchrfprintf__libc_start_mainsnprintf_edata__bss_start_endGLIBC_2.0 ii 8$< @%ĬȬ̬ЬԬجܬ  +     $(,UPK +5%%Ĭh%Ȭh%̬h%Ьh%Ԭh %جh(%ܬh0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h% h%h%h%h%h% hp%$h`%(hP%,h@1^PTRhhQVhUS[È#t2X[ÐU=Dt 4ҡ4uDÐUثtt $ثÐUWVS\$tDŽ$XDŽ$TD$DD$EDŽ$PD$D$$$$D$|$\$\$Dt$$D|$ $XDŽ$LD$Б$HD$$c$PD$($TD$$D$ D$|$D$t$\$ D$D$,$tD$8D$8\[^_]Ë$P,$D$3t҉D$,$D$4t8t$pD$D$$D$ $D$$H$$Xt$DŽ$X$Tt$DŽ$T$Pt$DŽ$P$x$,$D$|$DŽ$LD$$D$ |$D$$H$PD$($TD$D$4t$\$ D$D$,$2$P,$D$D$8ut$,$xt$xt$,$D$;t$,$Ë$|D$"ۉt4t&t"tD$T$$D$8$t<$t&oD$4$W$D$$H$$Xt$DŽ$X$Tt$DŽ$T$Pi$\'L$q\l$X$L$H\$Lt$P|$TqD$]$yD$(D$,D$0D$$D$:t$$%D$Dew$6D$/4$ft4$D$/pT$0D$(|$,D$ .T$T$$D$|$l$T$ t$D$ؚ<$1L$H\$Lt$P|$Tl$X\aË-@9@D$0+@T$(@D$$=@|$,8D$4.t :D$$7ÍD$DD$DD$D$$]D$D$$$=D$ D$D$<$$f<D$D$$ED$ T$4)$D$$XLT$(D$,|$0L$$T$T$4D$؉|$ ,$t$1Kt$$^ u^k +uNT$(u:u?v:Bu3w:Bu'|$,:u:Gu :Gt4T$4^D$ xD$D$u$kIt$0x3봐U]Ít&'UWVS^ÝE)E}Ut+1ƍED$E D$E$9}u߃[^_]Ë$ÐUSȫȫt Ћu[]US[Y[(&(objectclass=%s)(%s=%s))(objectclass=%s)%s %s +nisMapNamecnnisMapEntrynisMapnisObjectauto.masterm:e:n:k:v:error initializing LDAP +automountMapautomountouautomountInformationюÎsyntax: %s + [-m %s] (map object class) + [-e %s] (entry object class) + [-n %s] (attribute used as map key) + [-k %s] (attribute used as entry key) + [-v %s] (attribute used as value) + [%s] (map name) +%s: error binding to server: %s +   oH + H( oooܫN^n~·އ.>N^n~ΈވԫGCC: (GNU) 4.1.1 20061011 (Red Hat 4.1.1-30)GCC: (GNU) 4.1.1 20061011 (Red Hat 4.1.1-30)GCC: (GNU) 4.1.1 20070105 (Red Hat 4.1.1-51)GCC: (GNU) 4.1.1 20070105 (Red Hat 4.1.1-51)GCC: (GNU) 4.1.1 20070105 (Red Hat 4.1.1-51)GCC: (GNU) 4.1.1 20061011 (Red Hat 4.1.1-30).shstrtab.interp.note.ABI-tag.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment (( !oHHH+ `3;oLHo W (( ` HH i  d88o u{đ +ěȫЫثܫx00888L \ No newline at end of file diff -Naur autofs-4.1.4/samples/autofs-ldap-auto-master.o autofs-modificat/samples/autofs-ldap-auto-master.o --- autofs-4.1.4/samples/autofs-ldap-auto-master.o 1970-01-01 01:00:00.000000000 +0100 +++ autofs-modificat/samples/autofs-ldap-auto-master.o 2007-02-28 11:02:14.000000000 +0100 @@ -0,0 +1,15 @@ +ELF4( UWVS\$tDŽ$XDŽ$TD$DD$EDŽ$PD$D$$$$D$|$\$\$Dt$$D|$ $XDŽ$LD$$HD$$$PD$($TD$$D$ D$|$D$t$\$ D$D$,$tD$8D$8\[^_]Ë$P,$D$t҉D$,$D$4t8t$pD$D$$D$ $D$$H$$Xt$DŽ$X$Tt$DŽ$T$Pt$DŽ$P$x$$D$|$DŽ$LD$$D$ |$D$$H$PD$($TD$D$4t$\$ D$D$,$$P,$D$D$8ut$,$t$xt$,$D$t$,$Ë$|D$ۉt4t&t"tD$T$$,D$8$t<$t&oD$4$$D$$H$$Xt$DŽ$X$Tt$DŽ$T$Pi$\'L$q\l$XUL$H\$Lt$P|$TqD$3$D$(4D$,?D$0BD$$ND$kt$$D$Dew$6D$/4$t4$D$/pT$0D$(|$,D$ _T$T$$D$|$l$T$ t$D$$1L$H\$Lt$P|$Tl$X\aË-9D$0+T$(D$$=|$,D$4_t :D$$ÍD$DD$DD$D$$D$D$$$D$ D$D$$$D$D$$vD$ T$4)$D$$LT$(D$,|$0L$$T$T$4D$؉|$ ,$t$1Kt$$ u^ +uNT$(:u?:Bu3:Bu'|$,?:u:Gu :Gt4T$4D$ D$?D$$It$03(&(objectclass=%s)(%s=%s))(objectclass=%s)%s %s +nisMapNamecnnisMapEntrynisMapnisObjectauto.masterm:e:n:k:v:error initializing LDAP +automountMapautomountouautomountInformation`````!````````syntax: %s + [-m %s] (map object class) + [-e %s] (entry object class) + [-n %s] (attribute used as map key) + [-k %s] (attribute used as entry key) + [-v %s] (attribute used as value) + [%s] (map name) +%s: error binding to server: %s +GCC: (GNU) 4.1.1 20070105 (Red Hat 4.1.1-51).symtab.strtab.shstrtab.rel.text.data.bss.rodata.str1.1.rel.rodata.rodata.str1.4.comment.note.GNU-stack@D \ %+02CDH?  K2Zu.csH  q +$*? /6?HZkw|t !+;N^jautofs-ldap-auto-master.cdump_map.LC17.LC6memset__strdupsnprintfldap_search_ext_sldap_first_entryldap_get_dnfreeldap_control_freeldap_msgfreeldap_next_entryldap_get_valuesprintfldap_value_freeldap_memfreemainsetlocalegetoptstrchrstrrchrstderrfprintfoptargoptindldap_initldap_set_optionldap_simple_bind_sldap_err2stringldap_unbindfwrite[ cyAQm,8M\k~ #+3?[n !""""#"1#9]$%&' !(  )((<$y( + +  1  $(,048<@D \ No newline at end of file diff -Naur autofs-4.1.4/samples/Makefile autofs-modificat/samples/Makefile --- autofs-4.1.4/samples/Makefile 2005-01-04 15:36:54.000000000 +0100 +++ autofs-modificat/samples/Makefile 2007-02-28 10:46:48.000000000 +0100 @@ -26,14 +26,14 @@ 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 - -mv -f $(INSTALLROOT)/etc/auto.misc $(INSTALLROOT)/etc/auto.misc.old - install -c auto.misc -m 644 $(INSTALLROOT)/etc - -mv -f $(INSTALLROOT)/etc/auto.net $(INSTALLROOT)/etc/auto.net.old - install -c auto.net -m 755 $(INSTALLROOT)/etc - -mv -f $(INSTALLROOT)/etc/auto.smb $(INSTALLROOT)/etc/auto.smb.old - install -c auto.smb -m 755 $(INSTALLROOT)/etc + #-mv -f $(INSTALLROOT)/etc/auto.master $(INSTALLROOT)/etc/auto.master.old + #install -c auto.master -m 644 $(INSTALLROOT)/etc + #-mv -f $(INSTALLROOT)/etc/auto.misc $(INSTALLROOT)/etc/auto.misc.old + #install -c auto.misc -m 644 $(INSTALLROOT)/etc + #-mv -f $(INSTALLROOT)/etc/auto.net $(INSTALLROOT)/etc/auto.net.old + #install -c auto.net -m 755 $(INSTALLROOT)/etc + #-mv -f $(INSTALLROOT)/etc/auto.smb $(INSTALLROOT)/etc/auto.smb.old + #install -c auto.smb -m 755 $(INSTALLROOT)/etc install -d -m 755 $(INSTALLROOT)$(initdir) install -c rc.autofs -m 755 $(INSTALLROOT)$(initdir)/autofs install -d -m 755 $(INSTALLROOT)$(autofslibdir) diff -Naur autofs-4.1.4/samples/rc.autofs autofs-modificat/samples/rc.autofs --- autofs-4.1.4/samples/rc.autofs 1970-01-01 01:00:00.000000000 +0100 +++ autofs-modificat/samples/rc.autofs 2007-02-28 11:02:14.000000000 +0100 @@ -0,0 +1,776 @@ +#!/bin/bash +# +# $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 +# + +# 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=unknown +if [ -f /etc/debian_version ]; then + system=debian +elif [ -f /etc/redhat-release ]; then + system=redhat +else + echo "$0: Unknown system, please port and contact autofs@linux.kernel.org" 1>&2 + exit 1 +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 +# +function 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 +} + +function catnismap() +{ + if [ -z "$1" ] ; then + map="auto_master" + else + map="$1" + fi + /usr/bin/ypcat -k "$map" 2> /dev/null | sed -e '/^#/d' -e '/^$/d' +} + +function 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 + for nismap in `cat /etc/auto.master | grep '^\+' | + sed -e '/^#/d' -e '/^$/d'`; do + catnismap `echo "$nismap" | sed -e 's/^\+//'` + done + fi + done + ) + fi +} + +function getnismounts() +{ + YPMAP=`catnismap auto.master` + if [ -z "$YPMAP" ]; then + catnismap + else + catnismap auto.master + fi +} + +function getldapmounts() +{ + if [ -x /usr/lib/autofs/autofs-ldap-auto-master ]; then + /usr/lib/autofs/autofs-ldap-auto-master 2> /dev/null + fi +} + +function 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 +# +function 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 + + # 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" ] ; 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. +# +function 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 + ) +} + +function 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 +function 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 +# +function 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 +# +function 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 "`/sbin/pidof $DAEMON`" ] ; then + RETVAL=1 + fi + + return $RETVAL +} + +function 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. +# +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. +# +function 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