diff options
| -rw-r--r-- | abs/extra-testing/autofs/PKGBUILD | 67 | ||||
| -rw-r--r-- | abs/extra-testing/autofs/auto.master | 3 | ||||
| -rw-r--r-- | abs/extra-testing/autofs/auto.misc | 8 | ||||
| -rw-r--r-- | abs/extra-testing/autofs/auto.net | 29 | ||||
| -rw-r--r-- | abs/extra-testing/autofs/autofs | 364 | ||||
| -rw-r--r-- | abs/extra-testing/autofs/autofs.conf.d | 3 | ||||
| -rw-r--r-- | abs/extra-testing/autofs/autofs.install | 5 | ||||
| -rw-r--r-- | abs/extra-testing/autofs/heimdal.patch | 34 | 
8 files changed, 87 insertions, 426 deletions
| diff --git a/abs/extra-testing/autofs/PKGBUILD b/abs/extra-testing/autofs/PKGBUILD index 1bc5435..ca6abea 100644 --- a/abs/extra-testing/autofs/PKGBUILD +++ b/abs/extra-testing/autofs/PKGBUILD @@ -1,48 +1,49 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ -# Maintainer: Dale Blount <dale@archlinux.org> +# $Id: PKGBUILD 36638 2009-04-26 19:00:46Z andrea $ +# Maintainer: Andrea Scarpino <andrea@archlinux.org> +# Contributor: Dale Blount <dale@archlinux.org>  # Contributor: Manolis Tzanidakis  pkgname=autofs -pkgver=4.1.4 +pkgver=5.0.4  pkgrel=4  pkgdesc="A kernel-based automounter for Linux." -arch=(i686 x86_64) -url="ftp://ftp.kernel.org/pub/linux/daemons/autofs" -depends=('libldap') -backup=(etc/autofs/auto.master etc/conf.d/autofs) -source=($url/v4/${pkgname}-${pkgver}.tar.bz2 -        ${pkgname} -        ${pkgname}.conf.d -        auto.master -        auto.misc -        auto.net) -md5sums=('7e3949114c00665b4636f0c318179657' '80b77182aa957646a2074433d3890518'\ -         'ddd69346754419faee15fc4c7edeb8b8' '0543a0d172eaec300e8d08708440dd4b'\ -         '0be409ef0cdf0255ce701ed4ba9e46b5' 'e4d945d63abc0488a47a5e2a750e8c3b') +arch=('i686' 'x86_64') +url="http://wiki.autofs.net/FrontPage" +license=('GPL2') +depends=('libldap' 'libxml2' 'heimdal') +backup=(etc/autofs/auto.master etc/autofs/auto.misc etc/conf.d/autofs) +install=autofs.install +source=("http://www.kernel.org/pub/linux/daemons/${pkgname}/v5/${pkgname}-${pkgver}.tar.bz2" +  'autofs' 'autofs.conf.d' 'auto.master' 'auto.misc' +  'heimdal.patch') +md5sums=('2646dde61edd08dd952255558c733c08' +         'b4984b3161f50cba3d189b0ec594d014' +         '47f597c870410055e0fdb66103daf928' +         'a6cefb591e77b31b79dbb7243646c96b' +         'd8a15ec9186c5c0b36e5cea1e2739e8a' +         '1ee4825e26ad72bfe86acec3d3da5d2a')  build() {    export MAKEFLAGS="-j1" -  cd ${startdir}/src/${pkgname}-${pkgver} -  /bin/sed -i "s:-O3 -fomit-frame-pointer -Wall:${CFLAGS}:" \ -      Makefile.rules -  /bin/sed -i "s:SUBDIRS = lib daemon modules man samples:SUBDIRS = lib daemon modules man:" \ -      Makefile.rules -  ./configure --prefix=/usr --sysconfdir=/etc/autofs -  /usr/bin/make || return 1 -  /usr/bin/make INSTALLROOT=${startdir}/pkg install +  cd ${srcdir}/${pkgname}-${pkgver} + +  sed -i "s:SUBDIRS = lib daemon modules man samples:SUBDIRS = lib daemon modules man:" Makefile.rules +  patch -Np1 -i ${srcdir}/heimdal.patch + +  ./configure --prefix=/usr \ +    --sysconfdir=/etc/autofs \ +    --with-mapdir=/etc/autofs \ +    --without-hesiod +  make || return 1 +  make INSTALLROOT=${pkgdir} install    local conf_file    for conf_file in auto.{master,misc}; do -    /bin/install -D -m 644 ${startdir}/$conf_file \ -        ${startdir}/pkg/etc/autofs/$conf_file +    install -D -m 644 ${srcdir}/$conf_file ${pkgdir}/etc/autofs/$conf_file    done -  /bin/install -m 755 ${startdir}/auto.net \ -      ${startdir}/pkg/etc/autofs/auto.net -  /bin/sed -i "s:/etc:/etc/autofs:g" \ -      ${startdir}/pkg/usr/man/man5/auto.master.5 -  /bin/install -D -m 755 ${startdir}/autofs ${startdir}/pkg/etc/rc.d/autofs -  /bin/install -D -m 644 ${startdir}/autofs.conf.d \ -      ${startdir}/pkg/etc/conf.d/autofs +  sed -i "s:/etc:/etc/autofs:g" ${pkgdir}/usr/share/man/man5/auto.master.5 +  install -D -m 755 ${srcdir}/autofs ${pkgdir}/etc/rc.d/autofs +  install -D -m 644 ${srcdir}/autofs.conf.d ${pkgdir}/etc/conf.d/autofs  }  # vim: ts=2 sw=2 et ft=sh diff --git a/abs/extra-testing/autofs/auto.master b/abs/extra-testing/autofs/auto.master index faa42c9..be4ea73 100644 --- a/abs/extra-testing/autofs/auto.master +++ b/abs/extra-testing/autofs/auto.master @@ -3,5 +3,4 @@  # mountpoint map options  # For details of the format look at autofs(5). -/var/autofs/misc	/etc/autofs/auto.misc -/var/autofs/net	  /etc/autofs/auto.net +#/media /etc/autofs/auto.media diff --git a/abs/extra-testing/autofs/auto.misc b/abs/extra-testing/autofs/auto.misc index e7714bd..5691566 100644 --- a/abs/extra-testing/autofs/auto.misc +++ b/abs/extra-testing/autofs/auto.misc @@ -2,8 +2,6 @@  # key [ -mount-options-separated-by-comma ] location  # Details may be found in the autofs(5) manpage -kernel		  -ro			        ftp.kernel.org:/pub/linux -boot		    -fstype=ext2		              :/dev/hda1 -removable	  -fstype=ext2		              :/dev/hdd -cd		      -fstype=iso9660,ro	          :/dev/hdc -floppy		  -fstype=auto		              :/dev/fd0 +cdrom -fstype=iso9660,ro,nodev,nosuid :/dev/cdrom +floppy -fstype=auto,async,nodev,nosuid,umask=000 :/dev/fl +usbstick -fstype=auto,async,nodev,nosuid,umask=000 :/dev/sda1 diff --git a/abs/extra-testing/autofs/auto.net b/abs/extra-testing/autofs/auto.net deleted file mode 100644 index 20861d1..0000000 --- a/abs/extra-testing/autofs/auto.net +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# $Id: auto.net,v 1.1 2003/11/15 15:40:14 manolis Exp $ - -# Look at what a host is exporting to determine what we can mount. -# This is very simple, but it appears to work surprisingly well - -key="$1" - -# add "nosymlink" here if you want to suppress symlinking local filesystems -# Note: "nonstrict" is now set by default, remove it if you don't want it. -opts="-fstype=nfs,hard,intr,nodev,nosuid,nonstrict" - -# Showmount comes in a number of names and varieties.  "showmount" is -# typically an older version which accepts the '--no-headers' flag -# but ignores it.  "kshowmount" is the newer version installed with knfsd, -# which both accepts and acts on the '--no-headers' flag. -#SHOWMOUNT="kshowmount --no-headers -e $key" -#SHOWMOUNT="showmount -e $key | tail +2" - -# Newer distributions get this right -SHOWMOUNT="/usr/sbin/showmount --no-headers -e $key" - -$SHOWMOUNT | LC_ALL=C sort +0 | \ -	awk -v key="$key" -v opts="$opts" -- ' -	BEGIN		{ ORS=""; first=1 } -			{ if (first) { print opts; first=0 }; print " \\\n\t" $1, key ":" $1 } -	END		{ if (!first) print "\n"; else exit 1 } -	' diff --git a/abs/extra-testing/autofs/autofs b/abs/extra-testing/autofs/autofs index 83b0303..59ea4f5 100644 --- a/abs/extra-testing/autofs/autofs +++ b/abs/extra-testing/autofs/autofs @@ -6,384 +6,38 @@  # source application-specific settings  [ -f /etc/conf.d/autofs ] && . /etc/conf.d/autofs -DAEMON=/usr/sbin/automount -  if [ ! -z "$TIMEOUT" ]; then    daemonoptions="--timeout=$TIMEOUT $daemonoptions"  fi -# Extract the schemes from /etc/nsswitch.conf -# (function derived from RedHat) -function getschemes() -{ -  grep ^automount: /etc/nsswitch.conf | sed -e 's/^.*://' -e 's/\[.*\]/ /g' -} - -# Process the schemes found in /etc/nsswitch.conf -# (function derived from RedHat, with some modifications) -function getrawmounts() -{ -  for scheme in `getschemes` ; do -    case "$scheme" in -      files) -        if [ -z "$filescheme" ] ; then -          if getmounts_file /etc/autofs/auto.master; then -            filescheme=1  # success -          else -            filescheme=0  # failure -          fi -          export filescheme -        fi -      ;; -      nis) -        if [ -z "$nisscheme" ] ; then -          if getnismounts auto.master; then -            nisscheme=1  # success -          else -            nisscheme=0  # failure -          fi -          export nisscheme -        fi -      ;; -      ldap*) -        if [ -z "$ldapscheme" ] ; then -          if getldapmounts; then -            ldapscheme=1  # success -          else -            ldapscheme=0  # failure -          fi -        export ldapscheme -        fi -      ;; -    esac -  done - -  if [ -z "$filescheme" -a -z "$nisscheme" -a -z "$ldapscheme" ]; then -    # nothing configured in /etc/nsswitch.conf, fall back to old behaviour -    if ! getmounts_file /etc/autofs/auto.master; then -      if ! getnismounts auto.master; then -        if ! getldapmounts; then -          echo "no autofs mounts configured!" 1>&2 -	fi -      fi -    fi -  else -    if [ ! \( "$filescheme" == "1" -o "$nisscheme" == "1" -o "$ldapscheme" == "1" \) ]; then -      # all schemes found in /etc/nsswitch.conf have failed -      echo "no autofs mounts configured!" 1>&2 -    fi -  fi -} - -# 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() -{ -  getrawmounts -} - -function getmounts_file() -{ -  # Check for local maps to be loaded -  local map="$1" -  shift -  if [ -f "$map" ]; then -    cat "$map" | sed -e '/^#/d' -e '/^$/d' | process_master_file -  else -    return 1 -  fi -} - -function process_master_file() -{ -  local line_options -  local daemon_options -  line_options="$@"  # from `+auto.master <line_options>' in /etc/autofs/auto.master - -  while read dir map first_option options; do -    all_options="$first_option $options" - -  case "$dir" in -    +*) -      # note: $map contains options instead of a map -      getnismounts "${dir/+/}" "$line_options" "$map" "$all_options" -      continue; -    ;; -    '/-') -      # ignore (not supported) direct maps -      continue; -    ;; -  esac - -  if [ ! -z "$dir" -a ! -z "$map" -a x`echo "$map" | cut -c1` != 'x-' ]; then -    type="" -    # Break up the maptype and map, if the map type is specified -    maptype=`echo $map | cut -f1 -d:` -    if [ "$maptype" != "$map" ]; then -      # map has form <maptype>:<map> -      type=$maptype -      map=`echo $map | cut -f2- -d:` -    else -    # special handling of maps -    case "$map" in -      hesiod|userhome) -	type=$map -	map="" -      ;; -      ldap) -        # /<mountpoint> ldap <ldap data> <options> -        type=ldap -       -        # extract LDAP data -        map="$first_option" -        all_options=$options -      ;; -      /*) -        # map is absolute path -	if [ -x $map ]; then -          type=program -	elif [ -f $map ]; then -          type=file -	else -        # invalid absolute path, ignoring -          type="" -	fi -      ;; -      !*) -	# map is executable file - 	type=program -	map="${map/!/}" -      ;; -      *) -        # map is relative path or empty -        if [ ! -z "$map" ]; then -	  # map is relative path -          if [ -x /etc/autofs/$map ]; then -            type=program -	    map=/etc/autofs/$map -	  elif [ -f /etc/autofs/$map ]; then -	    type=file -	    map=/etc/autofs/$map -	  else -	    type=yp -	  fi -	else -	  # map is empty, ignoring -	  type="" -	fi -      ;; -    esac -    fi - -    if [ "$type" ]; then -      options="$line_options $all_options" - -      daemon_options=`munge_options daemon $daemonoptions $options` -      options=`munge_options mount $options` - -      echo "$DAEMON $daemon_options -- $dir $type $map $localoptions $options" | sed -e 's/  */ /g' -    fi -  fi -  done -} - -function getnismounts() -{ -  # Check for YellowPage maps to be loaded -  local map="$1" -  shift -  if [ -e /usr/bin/ypcat ] && [ `ypcat -k "$map" 2>/dev/null | wc -l` -gt 0 ]; then -    # exclude references to other nis maps (avoid self-references -> inf. loop) -    # - e.g. a map may look like: -    #   $ ypcat -k auto.master -    #   +auto_master             # <- = auto.master = erk! -    #   /net -hosts             -nosuid,nobrowse -    #   /home auto_home -nobrowse -    ypcat -k "$map" | grep -v '^+' | process_master_file "$@" -  else -    return 1 -  fi -} - -function getldapmounts() { -  if [ ! -x /usr/bin/ldapsearch -o -z "$LDAPURI" -o -z "$LDAPBASE" ]; then -    return 1 -  fi     - -  # TODO: Doesn't yet work for LDIF output where lines are continued on the -  #       next line (starting with space or tab). (See ldif(5)) - -  ldapsearch -LLL -H $LDAPURI -b $LDAPBASE -x \ -    '(objectClass=automount)' cn automountInformation 2>/dev/null \ -    | while read attr val; do -  case "$attr" in -    dn:)  -      node="" -      args="" -    ;; -    cn:) -      node=$val -    ;; -      automountInformation:) -      args=$val -    ;; -    *) -    ;; -  esac -  if [ -n "$node" -a -n "$args" ]; then -    echo "$node $args" | process_master_file "$@" -    node="" -    args="" -  fi -  done -} - -# List active mounts -function active() -{ -  ps ax|grep "[0-9]:[0-9][0-9] $DAEMON " | -    while read pid tt stat time command; do -      echo $command -    done -} - -# Status lister. -function status() -{ -  echo "Configured Mount Points:" -  echo "------------------------" -  getmounts | sed 's/ -- / /' -  echo "" -  echo "Active Mount Points:" -  echo "--------------------" -  active -} - -function munge_options() -{ -  local which="$1" -  shift - -  o="$@" -  # bring `timeout' option in suitable format -  o=`echo "$o" | sed -e 's/\(\(-\|, *\)t\(imeout\)\?\) \+/\1=/g'` -  # remove dashes in front of options -  o=`echo "$o" | sed -e 's/^-\+//' -e 's/ -\+/ /' -e 's/,-\+/,/g'` - -  echo "$o" | awk -v which="$which" ' -BEGIN { -  RS="[, \n]" -  FS="=" -  daemon_opts[ "timeout" ] = "timeout" -  daemon_opts[ "t" ] = "timeout" -} -{ -  if ( $0 ~ /^$/ ) -    next -  if ( $1 in daemon_opts ) { -    daemon[ daemon_opts[ $1 ] ] = $2 -    } else if ($1 ~ /^D.+/) { -      defines[ $1 ] = $2 -    } else { -  mount[NR] = $0 -  } -} -END { -  if ( which ~ "^daemon$" ) { -    if ( "timeout" in daemon ) { -      printf "--timeout=%s\n", daemon["timeout"] -    } -  } else { -    for ( a in defines ) { -      printf "-%s=%s ", a, defines[a] -    } -    for ( a in mount ) { -      if ( length( out ) ) -        out=out "," mount[a] -      else -	out=mount[a] -    } -    printf "%s\n", out -  } -} -' -} - -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 -} - -# Start the fun :) -PID=`pidof -o %PPID /usr/sbin/automount` +PID=`cat /var/run/autofs-running 2> /dev/null`  case "$1" in    start) -    stat_busy "Starting automounter" -    getmounts | while read cmd args; do -      opt=${args%%-- *} -      rest=${args#*-- } -      mnt=${rest%% *} -      rest=${rest#* } -      echo -n " $mnt" -      if [ ! -d /var/run/autofs ]; then -        mkdir /var/run/autofs -      fi -      pidfile=/var/run/autofs/`echo $mnt | sed 's,_,__,g;s,/,_:,g'`.pid -      $DAEMON $daemonoptions --pid-file=$pidfile $opt $mnt $rest -    done +    stat_busy "Starting Automounter" +    [ -z "$PID" ] && /usr/sbin/automount $daemonoptions &> /dev/null      if [ $? -gt 0 ]; then        stat_fail      else        add_daemon autofs        stat_done      fi -  ;; +    ;;    stop) -    stat_busy "Stopping automounter" -    [ ! -z "$PID" ]  && kill $PID &> /dev/null +    stat_busy "Stopping Automounter" +    [ ! -z "$PID" ] && kill $PID &> /dev/null      if [ $? -gt 0 ]; then        stat_fail      else        rm_daemon autofs        stat_done      fi -  ;; +    ;;    restart)      $0 stop      sleep 1      $0 start -  ;; -  status) -    status -  ;; +    ;;    *)      echo "usage: $0 {start|stop|restart}"   -  ;;  esac - -exit 0   +exit 0 diff --git a/abs/extra-testing/autofs/autofs.conf.d b/abs/extra-testing/autofs/autofs.conf.d index 435665d..bc82491 100644 --- a/abs/extra-testing/autofs/autofs.conf.d +++ b/abs/extra-testing/autofs/autofs.conf.d @@ -1,5 +1,4 @@ -# e.g. localoptions='rsize=8192,wsize=8192' -localoptions='' +#localoptions='rsize=8192,wsize=8192'  # e.g. --timeout=60  daemonoptions='' diff --git a/abs/extra-testing/autofs/autofs.install b/abs/extra-testing/autofs/autofs.install new file mode 100644 index 0000000..61120bb --- /dev/null +++ b/abs/extra-testing/autofs/autofs.install @@ -0,0 +1,5 @@ +post_install(){ +	echo "########################################################" +	echo "In autofs5 --ghost option isn't valid. In order to start" +	echo "autofs you must remove it from your /etc/conf.d/autofs. " +} diff --git a/abs/extra-testing/autofs/heimdal.patch b/abs/extra-testing/autofs/heimdal.patch new file mode 100644 index 0000000..c49b1fd --- /dev/null +++ b/abs/extra-testing/autofs/heimdal.patch @@ -0,0 +1,34 @@ +--- autofs-5.0.4/modules/cyrus-sasl.c~	2009-01-11 17:18:55.000000000 +0100 ++++ autofs-5.0.4/modules/cyrus-sasl.c	2009-01-11 17:18:55.000000000 +0100 +@@ -66,6 +66,15 @@ + #endif + #endif +  ++/** ++ * The type of a principal is different for MIT Krb5 and Heimdal. ++ * These macros are provided by Heimdal, and introduced here for MIT. ++ */ ++#ifndef krb5_realm_length ++#define krb5_realm_length(r) ((r).length) ++#define krb5_realm_data(r) ((r).data) ++#endif ++ + /* +  *  Once a krb5 credentials cache is setup, we need to set the KRB5CCNAME +  *  environment variable so that the library knows where to find it. +@@ -451,11 +460,11 @@ +  + 	/* setup a principal for the ticket granting service */ + 	ret = krb5_build_principal_ext(ctxt->krb5ctxt, &tgs_princ, +-		krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)->length, +-		krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)->data, ++		krb5_realm_length(*krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)), ++		krb5_realm_data(*krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)), + 		strlen(KRB5_TGS_NAME), KRB5_TGS_NAME, +-		krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)->length, +-		krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)->data, ++		krb5_realm_length(*krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)), ++		krb5_realm_data(*krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)), + 		0); + 	if (ret) { + 		error(logopt, | 
