vol: cmd comerr dir afs sgiefs
${COMPILE_PART1} vol ${COMPILE_PART2}
+tsalvaged: vol libafsrpc libafsauthent cmd util
+ set -x; \
+ if test "@DEMAND_ATTACH@" = "yes" ; then \
+ case ${SYS_NAME} in \
+ alpha_dux*|sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*|*fbsd*|*nbsd2*) \
+ ${COMPILE_PART1} tsalvaged ${COMPILE_PART2} ;; \
+ *_darwin_[1-6][0-9]) \
+ echo Not building MT tsalvaged for ${SYS_NAME} ;; \
+ *_darwin_*) \
+ ${COMPILE_PART1} tsalvaged ${COMPILE_PART2} ;; \
+ *) \
+ echo Not building MT tsalvaged for ${SYS_NAME} ;; \
+ esac \
+ else \
+ echo skipping tsalvaged ; \
+ fi
+
+
vlserver: cmd comerr vol audit vlserver_depinstall
${COMPILE_PART1} vlserver ${COMPILE_PART2}
tvolser: project tviced usd libafsrpc libafsauthent volser
case ${SYS_NAME} in \
- alpha_dux*|sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*|*[fo]bsd*|*nbsd[234]*) \
+ alpha_dux*|sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*|*obsd*) \
${COMPILE_PART1} tvolser ${COMPILE_PART2} ;; \
*_darwin_[1-6][0-9]) \
echo Not building MT volser for ${SYS_NAME} ;; \
jafsadm: libjafsadm
finale: project cmd comerr afsd butc tbutc @ENABLE_KERNEL_MODULE@ libuafs audit kauth log package \
- ptserver scout bu_utils ubik uss bozo vfsck volser tvolser \
+ ptserver scout bu_utils ubik uss bozo vfsck volser tvolser tsalvaged \
venus update xstat afsmonitor dauth rxdebug libafsrpc \
libafsauthent shlibafsrpc shlibafsauthent libadmin login man-pages
${COMPILE_PART1} finale ${COMPILE_PART2}
finale_nolibafs: project cmd comerr afsd butc tbutc libuafs audit kauth log package \
- ptserver scout bu_utils ubik uss bozo vfsck volser tvolser \
+ ptserver scout bu_utils ubik uss bozo vfsck volser tvolser tsalvaged \
venus update xstat afsmonitor dauth rxdebug libafsrpc \
libafsauthent shlibafsrpc shlibafsauthent libadmin login man-pages
${COMPILE_PART1} finale ${COMPILE_PART2}
-${COMPILE_PART1} tviced ${COMPILE_CLEAN}
-${COMPILE_PART1} volser ${COMPILE_CLEAN}
-${COMPILE_PART1} tvolser ${COMPILE_CLEAN}
+ -${COMPILE_PART1} tsalvaged ${COMPILE_CLEAN}
-${COMPILE_PART1} venus ${COMPILE_CLEAN}
-${COMPILE_PART1} venus/test ${COMPILE_CLEAN}
-${COMPILE_PART1} afsd ${COMPILE_CLEAN}
src/tests/Makefile \
src/tests/run-tests \
src/tests/OpenAFS/Dirpath.pm \
+ src/tsalvaged/Makefile \
src/tsm41/Makefile \
src/tviced/Makefile \
src/tvolser/Makefile \
i?86-*-linux*)
AFS_SYSNAME="i386_linuxXX"
;;
- parisc-*-linux-gnu)
+ parisc-*-linux-gnu|hppa-*-linux-gnu)
AFS_SYSNAME="parisc_linuxXX"
enable_pam="no"
;;
i?86-*-linux*)
AFS_SYSNAME="i386_linuxXX"
;;
- parisc-*-linux-gnu)
+ parisc-*-linux-gnu|hppa-*-linux-gnu)
AFS_SYSNAME="parisc_linuxXX"
enable_pam="no"
;;
])
dnl
-dnl $Id: kerberos.m4,v 1.1.2.7 2005/07/11 19:16:42 shadow Exp $
+dnl $Id: kerberos.m4,v 1.1.2.8 2006/04/03 19:45:27 shadow Exp $
dnl
dnl Kerberos autoconf glue
dnl
LIBS="$LIBS $KRB5LIBS"
AC_CHECK_FUNCS([add_to_error_table add_error_table krb5_princ_size krb5_principal_get_comp_string krb5_524_convert_creds krb524_convert_creds_kdc])
AC_CHECK_HEADERS([kerberosIV/krb.h])
+ AC_CHECK_HEADERS([kerberosV/heim_err.h])
AC_MSG_CHECKING(for krb5_creds.keyblock existence)
AC_CACHE_VAL(ac_cv_krb5_creds_keyblock_exists,
CPPFLAGS="$save_CPPFLAGS"
LIBS="$save_LIBS"
fi
+
+if test "$ac_cv_header_kerberosV_heim_err_h" = "yes"; then
+ ASETKEY=
+else
+ ASETKEY=asetkey
+fi
+
AC_SUBST(BUILD_KRB5)
AC_SUBST(KRB5CFLAGS)
AC_SUBST(KRB5LIBS)
+AC_SUBST(ASETKEY)
+
])dnl
# Do all the work for Automake. This macro actually does too much --
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
-# Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+# Inc.
-version='2004-08-19'
+timestamp='2006-03-13'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
-# Written by Per Bothner <bothner@cygnus.com>.
-# Please send patches to <config-patches@gnu.org>.
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
# exits with 0. Otherwise, it exits with 1.
#
# The plan is that this can be called by configure scripts if you
-# don't specify an explicit system type (host/target name).
-#
-# Only a few systems have been added to this list; please add others
-# (but try to keep the structure clean).
-#
+# don't specify an explicit build system type.
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION]
-Output the configuration name of this system.
+Output the configuration name of the system \`$me' is run on.
Operation modes:
- -h, --help print this help, then exit
- -V, --version print version number, then exit"
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+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."
help="
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
- case "$1" in
- --version | --vers* | -V )
- echo "$version" ; exit 0 ;;
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
--help | --h* | -h )
- echo "$usage"; exit 0 ;;
+ echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
- exec >&2
- echo "$me: invalid option $1"
- echo "$help"
+ echo "$me: invalid option $1$help" >&2
exit 1 ;;
* )
break ;;
exit 1
fi
-# Use $HOST_CC if defined. $CC may point to a cross-compiler
-if test x"$CC_FOR_BUILD" = x; then
- if test x"$HOST_CC" != x; then
- CC_FOR_BUILD="$HOST_CC"
- else
- if test x"$CC" != x; then
- CC_FOR_BUILD="$CC"
- else
- CC_FOR_BUILD=cc
- fi
- fi
-fi
+trap 'exit 1' 1 2 15
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 8/24/94.)
+# (ghazi@noc.rutgers.edu 1994-08-24)
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-dummy=dummy-$$
-trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
-
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:NetBSD:*:*)
- # Netbsd (nbsd) targets should (where applicable) match one or
+ # NetBSD (nbsd) targets should (where applicable) match one or
# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
# switched to ELF, *-*-netbsd* would select the old
# object file format. This provides both forward
# compatibility and a consistent mechanism for selecting the
# object file format.
- # Determine the machine/vendor (is the vendor relevant).
- case "${UNAME_MACHINE}" in
- amiga) machine=m68k-unknown ;;
- arm32) machine=arm-unknown ;;
- atari*) machine=m68k-atari ;;
- sun3*) machine=m68k-sun ;;
- mac68k) machine=m68k-apple ;;
- macppc) machine=powerpc-apple ;;
- hp3[0-9][05]) machine=m68k-hp ;;
- ibmrt|romp-ibm) machine=romp-ibm ;;
- *) machine=${UNAME_MACHINE}-unknown ;;
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep __ELF__ >/dev/null
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
esac
- # The Operating System including object format.
- if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep __ELF__ >/dev/null
- then
- # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
- # Return netbsd for either. FIX?
- os=netbsd
- else
- os=netbsdelf
- fi
# The OS release
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
- exit 0 ;;
+ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit ;;
+ *:SolidBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ exit ;;
+ macppc:MirBSD:*:*)
+ echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
alpha:OSF1:*:*)
- if test $UNAME_RELEASE = "V4.0"; then
+ case $UNAME_RELEASE in
+ *4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- fi
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
+ # A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- cat <<EOF >$dummy.s
- .data
-\$Lformat:
- .byte 37,100,45,37,120,10,0 # "%d-%x\n"
-
- .text
- .globl main
- .align 4
- .ent main
-main:
- .frame \$30,16,\$26,0
- ldgp \$29,0(\$27)
- .prologue 1
- .long 0x47e03d80 # implver \$0
- lda \$2,-1
- .long 0x47e20c21 # amask \$2,\$1
- lda \$16,\$Lformat
- mov \$0,\$17
- not \$1,\$18
- jsr \$26,printf
- ldgp \$29,0(\$26)
- mov 0,\$16
- jsr \$26,exit
- .end main
-EOF
- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
- if test "$?" = 0 ; then
- case `./$dummy` in
- 0-0)
- UNAME_MACHINE="alpha"
- ;;
- 1-0)
- UNAME_MACHINE="alphaev5"
- ;;
- 1-1)
- UNAME_MACHINE="alphaev56"
- ;;
- 1-101)
- UNAME_MACHINE="alphapca56"
- ;;
- 2-303)
- UNAME_MACHINE="alphaev6"
- ;;
- 2-307)
- UNAME_MACHINE="alphaev67"
- ;;
- esac
- fi
- rm -f $dummy.s $dummy
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit 0 ;;
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
# of the specific Alpha model?
echo alpha-pc-interix
- exit 0 ;;
+ exit ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
- exit 0 ;;
+ exit ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-unknown-sysv4
- exit 0;;
- amiga:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-amigaos
- exit 0 ;;
- arc64:OpenBSD:*:*)
- echo mips64el-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- arc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- hkmips:OpenBSD:*:*)
- echo mips-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- pmax:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sgi:OpenBSD:*:*)
- echo mips-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- wgrisc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
- exit 0 ;;
+ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
- SR2?01:HI-UX/MPP:*:*)
+ exit ;;
+ arm:riscos:*:*|arm:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
- exit 0;;
+ exit ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
else
echo pyramid-pyramid-bsd
fi
- exit 0 ;;
+ exit ;;
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
- exit 0 ;;
+ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
i86pc:SunOS:5.*:*)
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
+ exit ;;
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
- exit 0 ;;
+ exit ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
- exit 0 ;;
- atari*:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
- # "atarist" or "atariste" at least should have a processor
+ # "atarist" or "atariste" at least should have a processor
# > m68000). The system name ranges from "MiNT" over "FreeMiNT"
# to the lowercase version "mint" (or "freemint"). Finally
# the system name "TOS" denotes a system which is actually not
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE}
- exit 0 ;;
- sun3*:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme88k:OpenBSD:*:*)
- echo m88k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
- exit 0 ;;
+ exit ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
exit (-1);
}
EOF
- $CC_FOR_BUILD $dummy.c -o $dummy \
- && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
- && rm $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`$dummy $dummyarg` &&
+ { echo "$SYSTEM_NAME"; exit; }
echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
- exit 0 ;;
+ exit ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
- exit 0 ;;
+ exit ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
- exit 0 ;;
+ exit ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
- exit 0 ;;
+ exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110]
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
[ ${TARGET_BINARY_INTERFACE}x = x ]
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
- exit 0 ;;
+ exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
- exit 0 ;;
+ exit ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
- exit 0 ;;
+ exit ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
- exit 0 ;;
+ exit ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
- exit 0 ;;
+ exit ;;
*:IRIX*:*:*)
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit 0 ;;
+ exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i?86:AIX:*:*)
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
echo i386-ibm-aix
- exit 0 ;;
+ exit ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include <sys/systemcfg.h>
exit(0);
}
EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo rs6000-ibm-aix3.2.5
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ then
+ echo "$SYSTEM_NAME"
+ else
+ echo rs6000-ibm-aix3.2.5
+ fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
- exit 0 ;;
+ exit ;;
*:AIX:*:[45])
- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
- if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep -i PowerPC >/dev/null 2>&1; then
- IBM_ARCH=powerpc
- else
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
- fi
+ else
+ IBM_ARCH=powerpc
+ fi
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
- IBM_REV=4.${UNAME_RELEASE}
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
+ exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
- exit 0 ;;
+ exit ;;
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
- exit 0 ;;
+ exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
+ exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
- exit 0 ;;
+ exit ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
- exit 0 ;;
+ exit ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
- exit 0 ;;
+ exit ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
- exit 0 ;;
+ exit ;;
9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
case "${UNAME_MACHINE}" in
9000/31? ) HP_ARCH=m68000 ;;
9000/[34]?? ) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
- sed 's/^ //' << EOF >$dummy.c
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
#define _HPUX_SOURCE
#include <stdlib.h>
exit (0);
}
EOF
- (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
- rm -f $dummy.c $dummy
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
esac
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+ eval $set_cc_for_build
+
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
+ # generating 64-bit code. GNU and HP use different nomenclature:
+ #
+ # $ CC_FOR_BUILD=cc ./config.guess
+ # => hppa2.0w-hp-hpux11.23
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep __LP64__ >/dev/null
+ then
+ HP_ARCH="hppa2.0w"
+ else
+ HP_ARCH="hppa64"
+ fi
+ fi
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit 0 ;;
+ exit ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit ;;
3050*:HI-UX:*:*)
+ eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include <unistd.h>
int
exit (0);
}
EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
- exit 0 ;;
+ exit ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
echo hppa1.1-hp-bsd
- exit 0 ;;
+ exit ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
- exit 0 ;;
- *9??*:MPE/iX:*:*)
+ exit ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
- exit 0 ;;
+ exit ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
- exit 0 ;;
+ exit ;;
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
- exit 0 ;;
- i?86:OSF1:*:*)
+ exit ;;
+ i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
echo ${UNAME_MACHINE}-unknown-osf1mk
else
echo ${UNAME_MACHINE}-unknown-osf1
fi
- exit 0 ;;
+ exit ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
- exit 0 ;;
- hppa*:OpenBSD:*:*)
- echo hppa-unknown-openbsd
- exit 0 ;;
+ exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
- exit 0 ;;
+ exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit 0 ;;
+ exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
- exit 0 ;;
+ exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
- exit 0 ;;
+ exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
- exit 0 ;;
- CRAY*X-MP:*:*:*)
- echo xmp-cray-unicos
- exit 0 ;;
+ exit ;;
CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE}
- exit 0 ;;
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
CRAY*[A-Z]90:*:*:*)
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
- exit 0 ;;
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit ;;
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*T3E:*:*:*)
- echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY-2:*:*:*)
- echo cray2-cray-unicos
- exit 0 ;;
- F300:UNIX_System_V:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
- F301:UNIX_System_V:*:*)
- echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
- exit 0 ;;
- hp300:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- i?86:BSD/386:*:* | i?86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit 0 ;;
- *:OpenBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- exit 0 ;;
+ case ${UNAME_MACHINE} in
+ pc98)
+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ esac
+ exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
- exit 0 ;;
+ exit ;;
i*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
- exit 0 ;;
+ exit ;;
+ i*:windows32*:*)
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
+ exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
- exit 0 ;;
+ exit ;;
+ x86:Interix*:[345]*)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+ EM64T:Interix*:[345]*)
+ echo x86_64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+ exit ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
- echo i386-pc-interix
- exit 0 ;;
+ echo i586-pc-interix
+ exit ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
- exit 0 ;;
+ exit ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin
- exit 0 ;;
+ exit ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
*:GNU:*:*)
+ # the GNU system
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
+ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ exit ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
- exit 0 ;;
- *:Linux:*:*)
-
+ exit ;;
+ arm*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ cris:Linux:*:*)
+ echo cris-axis-linux-gnu
+ exit ;;
+ crisv32:Linux:*:*)
+ echo crisv32-axis-linux-gnu
+ exit ;;
+ frv:Linux:*:*)
+ echo frv-unknown-linux-gnu
+ exit ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ mips:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips
+ #undef mipsel
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mipsel
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+ /^CPU/{
+ s: ::g
+ p
+ }'`"
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ ;;
+ mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips64
+ #undef mips64el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mips64el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips64
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+ /^CPU/{
+ s: ::g
+ p
+ }'`"
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ ;;
+ or32:Linux:*:*)
+ echo or32-unknown-linux-gnu
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
+ exit ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ exit ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
+ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ vax:Linux:*:*)
+ echo ${UNAME_MACHINE}-dec-linux-gnu
+ exit ;;
+ x86_64:Linux:*:*)
+ echo x86_64-unknown-linux-gnu
+ exit ;;
+ i*86:Linux:*:*)
# The BFD linker knows what the default object file format is, so
# first see if it will tell us. cd to the root directory to prevent
# problems with other programs or directories called `ld' in the path.
- ld_help_string=`cd /; ld --help 2>&1`
- ld_supported_emulations=`echo $ld_help_string \
- | sed -ne '/supported emulations:/!d
+ # Set LC_ALL=C to ensure ld outputs messages in English.
+ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+ | sed -ne '/supported targets:/!d
s/[ ][ ]*/ /g
- s/.*supported emulations: *//
+ s/.*supported targets: *//
s/ .*//
p'`
- case "$ld_supported_emulations" in
- *ia64)
- echo "${UNAME_MACHINE}-unknown-linux"
- exit 0
- ;;
- i?86linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit 0
- ;;
- elf_i?86)
+ case "$ld_supported_targets" in
+ elf32-i386)
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
;;
- i?86coff)
+ a.out-i386-linux)
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+ exit ;;
+ coff-i386)
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- exit 0
- ;;
- sparclinux)
- echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
- exit 0
- ;;
- armlinux)
- echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
- exit 0
- ;;
- elf32arm*)
- echo "${UNAME_MACHINE}-unknown-linux-gnuoldld"
- exit 0
- ;;
- armelf_linux*)
- echo "${UNAME_MACHINE}-unknown-linux-gnu"
- exit 0
- ;;
- m68klinux)
- echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
- exit 0
- ;;
- elf32ppc | elf32ppclinux)
- # Determine Lib Version
- cat >$dummy.c <<EOF
-#include <features.h>
-#if defined(__GLIBC__)
-extern char __libc_version[];
-extern char __libc_release[];
-#endif
-main(argc, argv)
- int argc;
- char *argv[];
-{
-#if defined(__GLIBC__)
- printf("%s %s\n", __libc_version, __libc_release);
-#else
- printf("unkown\n");
-#endif
- return 0;
-}
-EOF
- LIBC=""
- $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
- if test "$?" = 0 ; then
- ./$dummy | grep 1\.99 > /dev/null
- if test "$?" = 0 ; then
- LIBC="libc1"
- fi
- fi
- rm -f $dummy.c $dummy
- echo powerpc-unknown-linux-gnu${LIBC}
- exit 0
- ;;
- shelf_linux)
- echo "${UNAME_MACHINE}-unknown-linux-gnu"
- exit 0
- ;;
+ exit ;;
+ "")
+ # Either a pre-BFD a.out linker (linux-gnuoldld) or
+ # one that does not give us useful --help.
+ echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+ exit ;;
esac
-
- if test "${UNAME_MACHINE}" = "alpha" ; then
- cat <<EOF >$dummy.s
- .data
- \$Lformat:
- .byte 37,100,45,37,120,10,0 # "%d-%x\n"
-
- .text
- .globl main
- .align 4
- .ent main
- main:
- .frame \$30,16,\$26,0
- ldgp \$29,0(\$27)
- .prologue 1
- .long 0x47e03d80 # implver \$0
- lda \$2,-1
- .long 0x47e20c21 # amask \$2,\$1
- lda \$16,\$Lformat
- mov \$0,\$17
- not \$1,\$18
- jsr \$26,printf
- ldgp \$29,0(\$26)
- mov 0,\$16
- jsr \$26,exit
- .end main
-EOF
- LIBC=""
- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
- if test "$?" = 0 ; then
- case `./$dummy` in
- 0-0)
- UNAME_MACHINE="alpha"
- ;;
- 1-0)
- UNAME_MACHINE="alphaev5"
- ;;
- 1-1)
- UNAME_MACHINE="alphaev56"
- ;;
- 1-101)
- UNAME_MACHINE="alphapca56"
- ;;
- 2-303)
- UNAME_MACHINE="alphaev6"
- ;;
- 2-307)
- UNAME_MACHINE="alphaev67"
- ;;
- esac
-
- objdump --private-headers $dummy | \
- grep ld.so.1 > /dev/null
- if test "$?" = 0 ; then
- LIBC="libc1"
- fi
- fi
- rm -f $dummy.s $dummy
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
- elif test "${UNAME_MACHINE}" = "mips" ; then
- cat >$dummy.c <<EOF
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
-#ifdef __MIPSEB__
- printf ("%s-unknown-linux-gnu\n", argv[1]);
-#endif
-#ifdef __MIPSEL__
- printf ("%sel-unknown-linux-gnu\n", argv[1]);
-#endif
- return 0;
-}
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- elif test "${UNAME_MACHINE}" = "s390x"; then
- echo s390x-ibm-linux && exit 0
- elif test "${UNAME_MACHINE}" = "s390"; then
- echo s390-ibm-linux && exit 0
- elif test "${UNAME_MACHINE}" = "x86_64"; then
- echo x86_64-unknown-linux-gnu && exit 0
- else
- # Either a pre-BFD a.out linker (linux-gnuoldld)
- # or one that does not give us useful --help.
- # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
- # If ld does not provide *any* "supported emulations:"
- # that means it is gnuoldld.
- echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
- test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
-
- case "${UNAME_MACHINE}" in
- i?86)
- VENDOR=pc;
- ;;
- *)
- VENDOR=unknown;
- ;;
- esac
- # Determine whether the default compiler is a.out or elf
- cat >$dummy.c <<EOF
-#include <features.h>
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
-#ifdef __ELF__
-# ifdef __GLIBC__
-# if __GLIBC__ >= 2
- printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
-# else
- printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
-# endif
-# else
- printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
-# endif
-#else
- printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
-#endif
- return 0;
-}
+ # Determine whether the default compiler is a.out or elf
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <features.h>
+ #ifdef __ELF__
+ # ifdef __GLIBC__
+ # if __GLIBC__ >= 2
+ LIBC=gnu
+ # else
+ LIBC=gnulibc1
+ # endif
+ # else
+ LIBC=gnulibc1
+ # endif
+ #else
+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__sun)
+ LIBC=gnu
+ #else
+ LIBC=gnuaout
+ #endif
+ #endif
+ #ifdef __dietlibc__
+ LIBC=dietlibc
+ #endif
EOF
- $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
- fi ;;
-# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
-# are messed up and put the nodename in both sysname and nodename.
- i?86:DYNIX/ptx:4*:*)
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+ /^LIBC/{
+ s: ::g
+ p
+ }'`"
+ test x"${LIBC}" != x && {
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+ exit
+ }
+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
+ ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
echo i386-sequent-sysv4
- exit 0 ;;
- i?86:UNIX_SV:4.2MP:2.*)
+ exit ;;
+ i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit 0 ;;
- i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
+ exit ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit ;;
+ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+ exit ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
fi
- exit 0 ;;
- i?86:*:5:7*)
- # Fixed at (any) Pentium or better
- UNAME_MACHINE=i586
- if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
- echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
- fi
- exit 0 ;;
- i?86:*:3.2:*)
+ exit ;;
+ i*86:*:5:[678]*)
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit ;;
+ i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
- (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
- (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
&& UNAME_MACHINE=i686
- (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
echo ${UNAME_MACHINE}-pc-sysv32
fi
- exit 0 ;;
- i?86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit 0 ;;
+ exit ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i386.
echo i386-pc-msdosdjgpp
- exit 0 ;;
+ exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
- exit 0 ;;
+ exit ;;
paragon:*:*:*)
echo i860-intel-osf1
- exit 0 ;;
+ exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
fi
- exit 0 ;;
+ exit ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
echo m68010-convergent-sysv
- exit 0 ;;
- M68*:*:R3V[567]*:*)
- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
+ exit ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4 && exit 0 ;;
- m68*:LynxOS:2.*:*)
+ && { echo i486-ncr-sysv4; exit; } ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
- exit 0 ;;
- i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
+ exit ;;
+ rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
- exit 0 ;;
+ exit ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
- exit 0 ;;
+ exit ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
else
echo ns32k-sni-sysv
fi
- exit 0 ;;
- PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel@ccMail.Census.GOV>
+ exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
echo i586-unisys-sysv4
- exit 0 ;;
+ exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
echo hppa1.1-stratus-sysv4
- exit 0 ;;
+ exit ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
echo i860-stratus-sysv4
- exit 0 ;;
+ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+ exit ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+ exit ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
- exit 0 ;;
+ exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-unknown-sysv${UNAME_RELEASE}
fi
- exit 0 ;;
+ exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
- exit 0 ;;
+ exit ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
echo powerpc-apple-beos
- exit 0 ;;
+ exit ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
- exit 0 ;;
+ exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
SX-5:SUPER-UX:*:*)
echo sx5-nec-superux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:Rhapsody:*:*)
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:Darwin:*:*)
- echo `uname -p`-apple-darwin${UNAME_RELEASE}
- exit 0 ;;
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ case $UNAME_PROCESSOR in
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
- if test "${UNAME_MACHINE}" = "x86pc"; then
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
- echo `uname -p`-${UNAME_MACHINE}-nto-qnx
- exit 0 ;;
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit ;;
*:QNX:*:4*)
echo i386-pc-qnx
- exit 0 ;;
- NSR-[KW]:NONSTOP_KERNEL:*:*)
+ exit ;;
+ NSE-?:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit ;;
BS2000:POSIX*:*:*)
echo bs2000-siemens-sysv
- exit 0 ;;
+ exit ;;
DS/*:UNIX_System_V:*:*)
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
UNAME_MACHINE="$cputype"
fi
echo ${UNAME_MACHINE}-unknown-plan9
- exit 0 ;;
- *:OS/2:*:*)
- echo ${UNAME_MACHINE}-pc-os2_emx
+ exit ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+ V*) echo vax-dec-vms ; exit ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit ;;
+ i*86:skyos:*:*)
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+ exit ;;
+ i*86:rdos:*:*)
+ echo ${UNAME_MACHINE}-pc-rdos
+ exit ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+eval $set_cc_for_build
cat >$dummy.c <<EOF
#ifdef _SEQUENT_
# include <sys/types.h>
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
+ printf ("arm-acorn-riscix\n"); exit (0);
#endif
#if defined (hp300) && !defined (hpux)
#endif
#if defined (vax)
-#if !defined (ultrix)
- printf ("vax-dec-bsd\n"); exit (0);
-#else
- printf ("vax-dec-ultrix\n"); exit (0);
-#endif
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
#endif
#if defined (alliant) && defined (i860)
}
EOF
-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
-rm -f $dummy.c $dummy
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
# Convex versions that predate uname can use getsysinfo(1)
case `getsysinfo -f cpu_type` in
c1*)
echo c1-convex-bsd
- exit 0 ;;
+ exit ;;
c2*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit 0 ;;
+ exit ;;
c34*)
echo c34-convex-bsd
- exit 0 ;;
+ exit ;;
c38*)
echo c38-convex-bsd
- exit 0 ;;
+ exit ;;
c4*)
echo c4-convex-bsd
- exit 0 ;;
+ exit ;;
esac
fi
cat >&2 <<EOF
$0: unable to guess system type
-The $version version of this script cannot recognize your system type.
-Please download the most up to date version of the config scripts:
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
- ftp://ftp.gnu.org/pub/gnu/config/
+ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+and
+ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
If the version you run ($0) is already up to date, please
send the following data and any information you think might be
pertinent to <config-patches@gnu.org> in order to provide the needed
information to handle your system.
-config.guess version = $version
+config.guess timestamp = $timestamp
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "version='"
+# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+# Inc.
-timestamp='2001-10-05'
+timestamp='2006-03-07'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
+
# Please send patches to <config-patches@gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
#
version="\
GNU config.sub ($timestamp)
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
+ echo "$timestamp" ; exit ;;
--version | -v )
- echo "$version" ; exit 0 ;;
+ echo "$version" ; exit ;;
--help | --h* | -h )
- echo "$usage"; exit 0 ;;
+ echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
*local*)
# First pass through any local machine types.
echo $1
- exit 0;;
+ exit ;;
* )
break ;;
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
- nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-*)
+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis)
+ -apple | -axis | -knuth | -cray)
os=
basic_machine=$1
;;
-hiux*)
os=-hiuxwe2
;;
+ -sco6)
+ os=-sco5v6
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
-sco5)
os=-sco3.2v5
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
# Don't forget version if it is 3.2v4 or newer.
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
+ -sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
-sco*)
os=-sco3.2v2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
1750a | 580 \
| a29k \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+ | bfin \
| c4x | clipper \
- | d10v | d30v | dsp16xx \
- | fr30 \
+ | d10v | d30v | dlx | dsp16xx \
+ | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
- | m32r | m68000 | m68k | m88k | mcore \
- | mips16 | mips64 | mips64el | mips64orion | mips64orionel \
- | mips64vr4100 | mips64vr4100el | mips64vr4300 \
- | mips64vr4300el | mips64vr5000 | mips64vr5000el \
- | mipsbe | mipseb | mipsel | mipsle | mipstx39 | mipstx39el \
- | mipsisa32 \
+ | ip2k | iq2000 \
+ | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64vr | mips64vrel \
+ | mips64orion | mips64orionel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
| mn10200 | mn10300 \
+ | mt \
+ | msp430 \
+ | nios | nios2 \
| ns16k | ns32k \
- | openrisc \
+ | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
- | s390 | s390x \
- | sh | sh[34] | sh[34]eb | shbe | shle \
- | sparc | sparc64 | sparclet | sparclite | sparcv9 | sparcv9b \
- | stormy16 | strongarm \
- | tahoe | thumb | tic80 | tron \
- | v850 \
+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+ | strongarm \
+ | tahoe | thumb | tic4x | tic80 | tron \
+ | v850 | v850e \
| we32k \
- | x86 | xscale \
+ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
| z8k)
basic_machine=$basic_machine-unknown
;;
+ m32c)
+ basic_machine=$basic_machine-unknown
+ ;;
m6811 | m68hc11 | m6812 | m68hc12)
# Motorola 68HC11/12.
basic_machine=$basic_machine-unknown
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
;;
+ ms1)
+ basic_machine=mt-unknown
+ ;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
580-* \
| a29k-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alphapca5[67]-* | arc-* \
- | arm-* | armbe-* | armle-* | armv*-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* \
- | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c54x-* \
- | clipper-* | cray2-* | cydra-* \
- | d10v-* | d30v-* \
+ | bfin-* | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+ | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
| elxsi-* \
- | f30[01]-* | f700-* | fr30-* | fx80-* \
+ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
- | m32r-* \
- | m68000-* | m680[01234]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | mcore-* \
- | mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \
- | mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* | mipsbe-* | mipseb-* \
- | mipsle-* | mipsel-* | mipstx39-* | mipstx39el-* \
+ | ip2k-* | iq2000-* \
+ | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+ | mips64vr-* | mips64vrel-* \
+ | mips64orion-* | mips64orionel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mips64vr5900-* | mips64vr5900el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | mt-* \
+ | msp430-* \
+ | nios-* | nios2-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
- | s390-* | s390x-* \
- | sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* \
- | sparc-* | sparc64-* | sparc86x-* | sparclite-* \
- | sparcv9-* | sparcv9b-* | stormy16-* | strongarm-* | sv1-* \
- | t3e-* | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
- | v850-* | vax-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+ | tahoe-* | thumb-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tron-* \
+ | v850-* | v850e-* | vax-* \
| we32k-* \
- | x86-* | x86_64-* | xmp-* | xps100-* | xscale-* \
+ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | xstormy16-* | xtensa-* \
| ymp-* \
| z8k-*)
;;
+ m32c-*)
+ ;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
386bsd)
basic_machine=a29k-amd
os=-udi
;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
adobe68k)
basic_machine=m68010-adobe
os=-scout
basic_machine=a29k-none
os=-bsd
;;
+ amd64)
+ basic_machine=x86_64-pc
+ ;;
+ amd64-*)
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
amdahl)
basic_machine=580-amdahl
os=-sysv
basic_machine=ns32k-sequent
os=-dynix
;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
convex-c1)
basic_machine=c1-convex
os=-bsd
basic_machine=c38-convex
os=-bsd
;;
- cray | ymp)
- basic_machine=ymp-cray
+ cray | j90)
+ basic_machine=j90-cray
os=-unicos
;;
- cray2)
- basic_machine=cray2-cray
- os=-unicos
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
;;
- [cjt]90)
- basic_machine=${basic_machine}-cray
- os=-unicos
+ cr16c)
+ basic_machine=cr16c-unknown
+ os=-elf
;;
crds | unos)
basic_machine=m68k-crds
;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
cris | cris-* | etrax*)
basic_machine=cris-axis
;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
da30 | da30-*)
basic_machine=m68k-da30
;;
decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
basic_machine=mips-dec
;;
+ decsystem10* | dec10*)
+ basic_machine=pdp10-dec
+ os=-tops10
+ ;;
+ decsystem20* | dec20*)
+ basic_machine=pdp10-dec
+ os=-tops20
+ ;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
basic_machine=m68k-motorola
basic_machine=m88k-motorola
os=-sysv3
;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
dpx20 | dpx20-*)
basic_machine=rs6000-bull
os=-bosx
basic_machine=m68k-atari
os=-mint
;;
- mipsel*-linux*)
- basic_machine=mipsel-unknown
- os=-linux-gnu
- ;;
- mips*-linux*)
- basic_machine=mips-unknown
- os=-linux-gnu
- ;;
mips3*-*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
;;
mips3*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
;;
- mmix*)
- basic_machine=mmix-knuth
- os=-mmixware
- ;;
monitor)
basic_machine=m68k-rom68k
os=-coff
;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
msdos)
basic_machine=i386-pc
os=-msdos
;;
+ ms1-*)
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ ;;
mvs)
basic_machine=i370-ibm
os=-mvs
basic_machine=hppa1.1-oki
os=-proelf
;;
+ openrisc | openrisc-*)
+ basic_machine=or32-unknown
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=-os400
+ ;;
OSE68000 | ose68000)
basic_machine=m68000-ericsson
os=-ose
pbb)
basic_machine=m68k-tti
;;
- pc532 | pc532-*)
+ pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
+ pc98)
+ basic_machine=i386-pc
+ ;;
+ pc98-*)
+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
pentium | p5 | k5 | k6 | nexgen | viac3)
basic_machine=i586-pc
;;
- pentiumpro | p6 | 6x86 | athlon)
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
basic_machine=i686-pc
;;
- pentiumii | pentium2)
+ pentiumii | pentium2 | pentiumiii | pentium3)
basic_machine=i686-pc
;;
+ pentium4)
+ basic_machine=i786-pc
+ ;;
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumpro-* | p6-* | 6x86-* | athlon-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- pentiumii-* | pentium2-*)
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
+ pentium4-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
pn)
basic_machine=pn-gould
;;
power) basic_machine=power-ibm
;;
ppc) basic_machine=powerpc-unknown
- ;;
+ ;;
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
- ;;
+ ;;
ppcle-* | powerpclittle-*)
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64) basic_machine=powerpc64-unknown
- ;;
+ ;;
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64le | powerpc64little | ppc64-le | powerpc64-little)
basic_machine=powerpc64le-unknown
- ;;
+ ;;
ppc64le-* | powerpc64little-*)
basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
basic_machine=i586-unknown
os=-pw32
;;
+ rdos)
+ basic_machine=i386-pc
+ os=-rdos
+ ;;
rom68k)
basic_machine=m68k-rom68k
os=-coff
rtpc | rtpc-*)
basic_machine=romp-ibm
;;
+ s390 | s390-*)
+ basic_machine=s390-ibm
+ ;;
+ s390x | s390x-*)
+ basic_machine=s390x-ibm
+ ;;
sa29200)
basic_machine=a29k-amd
os=-udi
;;
+ sb1)
+ basic_machine=mipsisa64sb1-unknown
+ ;;
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+ ;;
sequent)
basic_machine=i386-sequent
;;
basic_machine=sh-hitachi
os=-hms
;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
sparclite-wrs | simso-wrs)
basic_machine=sparclite-wrs
os=-vxworks
os=-dynix
;;
t3e)
- basic_machine=t3e-cray
+ basic_machine=alphaev5-cray
+ os=-unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
os=-unicos
;;
tic54x | c54x*)
basic_machine=tic54x-unknown
os=-coff
;;
+ tic55x | c55x*)
+ basic_machine=tic55x-unknown
+ os=-coff
+ ;;
+ tic6x | c6x*)
+ basic_machine=tic6x-unknown
+ os=-coff
+ ;;
tx39)
basic_machine=mipstx39-unknown
;;
tx39el)
basic_machine=mipstx39el-unknown
;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=-tops20
+ ;;
tower | tower-32)
basic_machine=m68k-ncr
;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=-tpf
+ ;;
udi29k)
basic_machine=a29k-amd
os=-udi
os=-vms
;;
vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
+ basic_machine=f301-fujitsu
+ ;;
vxworks960)
basic_machine=i960-wrs
os=-vxworks
basic_machine=hppa1.1-winbond
os=-proelf
;;
- windows32)
- basic_machine=i386-pc
- os=-windows32-msvcrt
- ;;
- xmp)
- basic_machine=xmp-cray
- os=-unicos
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
;;
- xps | xps100)
+ xps | xps100)
basic_machine=xps100-honeywell
;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
z8k-*-coff)
basic_machine=z8k-unknown
os=-sim
op60c)
basic_machine=hppa1.1-oki
;;
- mips)
- if [ x$os = x-linux-gnu ]; then
- basic_machine=mips-unknown
- else
- basic_machine=mips-mips
- fi
- ;;
romp)
basic_machine=romp-ibm
;;
+ mmix)
+ basic_machine=mmix-knuth
+ ;;
rs6000)
basic_machine=rs6000-ibm
;;
we32k)
basic_machine=we32k-att
;;
- sh3 | sh4 | sh3eb | sh4eb)
+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
- sparc | sparcv9 | sparcv9b)
+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
basic_machine=sparc-sun
;;
- cydra)
+ cydra)
basic_machine=cydra-cydrome
;;
orion)
pmac | pmac-mpw)
basic_machine=powerpc-apple
;;
- c4x*)
- basic_machine=c4x-none
- os=-coff
- ;;
*-unknown)
# Make sure to match an already-canonicalized machine name.
;;
| -aos* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+ | -openbsd* | -solidbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos*)
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+ | -skyos* | -haiku* | -rdos*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
;;
esac
;;
+ -nto-qnx*)
+ ;;
-nto*)
- os=-nto-qnx
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
;;
-mac*)
os=`echo $os | sed -e 's|mac|macos|'`
;;
+ -linux-dietlibc)
+ os=-linux-dietlibc
+ ;;
-linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
-opened*)
os=-openedition
;;
+ -os400*)
+ os=-os400
+ ;;
-wince*)
os=-wince
;;
-acis*)
os=-aos
;;
+ -atheos*)
+ os=-atheos
+ ;;
+ -syllable*)
+ os=-syllable
+ ;;
-386bsd)
os=-bsd
;;
-ctix* | -uts*)
os=-sysv
;;
+ -nova*)
+ os=-rtmk-nova
+ ;;
-ns2 )
- os=-nextstep2
+ os=-nextstep2
;;
-nsk*)
os=-nsk
-sinix*)
os=-sysv4
;;
+ -tpf*)
+ os=-tpf
+ ;;
-triton*)
os=-sysv3
;;
-xenix)
os=-xenix
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
+ -aros*)
+ os=-aros
+ ;;
+ -kaos*)
+ os=-kaos
+ ;;
+ -zvmoe)
+ os=-zvmoe
;;
-none)
;;
arm*-semi)
os=-aout
;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ # This must come before the *-dec entry.
pdp10-*)
os=-tops20
;;
- pdp11-*)
+ pdp11-*)
os=-none
;;
*-dec | vax-*)
mips*-*)
os=-elf
;;
+ or32-*)
+ os=-coff
+ ;;
*-tti) # must be before sparc entry or we get the wrong os.
os=-sysv3
;;
*-be)
os=-beos
;;
+ *-haiku)
+ os=-haiku
+ ;;
*-ibm)
os=-aix
;;
+ *-knuth)
+ os=-mmixware
+ ;;
*-wec)
os=-proelf
;;
*-next)
os=-nextstep3
;;
- *-gould)
+ *-gould)
os=-sysv
;;
- *-highlevel)
+ *-highlevel)
os=-bsd
;;
*-encore)
os=-bsd
;;
- *-sgi)
+ *-sgi)
os=-irix
;;
- *-siemens)
+ *-siemens)
os=-sysv4
;;
*-masscomp)
-mvs* | -opened*)
vendor=ibm
;;
+ -os400*)
+ vendor=ibm
+ ;;
-ptx*)
vendor=sequent
;;
- -vxsim* | -vxworks*)
+ -tpf*)
+ vendor=ibm
+ ;;
+ -vxsim* | -vxworks* | -windiss*)
vendor=wrs
;;
-aux*)
esac
echo $basic_machine$os
-exit 0
+exit
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
PACKAGE=openafs
-VERSION=1.4.1-rc10
+VERSION=1.4.1
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
{ echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
i?86-*-linux*)
AFS_SYSNAME="i386_linuxXX"
;;
- parisc-*-linux-gnu)
+ parisc-*-linux-gnu|hppa-*-linux-gnu)
AFS_SYSNAME="parisc_linuxXX"
enable_pam="no"
;;
#define $ac_tr_hdr 1
EOF
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ for ac_hdr in kerberosV/heim_err.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:8204: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 8209 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:8214: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
else
echo "$ac_t""no" 1>&6
fi
echo $ac_n "checking for krb5_creds.keyblock existence""... $ac_c" 1>&6
-echo "configure:8202: checking for krb5_creds.keyblock existence" >&5
+echo "configure:8242: checking for krb5_creds.keyblock existence" >&5
if eval "test \"`echo '$''{'ac_cv_krb5_creds_keyblock_exists'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8208 "configure"
+#line 8248 "configure"
#include "confdefs.h"
#include <krb5.h>
int main() {
printf("%x\n", _c.keyblock);
; return 0; }
EOF
-if { (eval echo configure:8216: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8256: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_krb5_creds_keyblock_exists=yes
else
echo "$ac_t""$ac_cv_krb5_creds_keyblock_exists" 1>&6
echo $ac_n "checking for krb5_creds.session existence""... $ac_c" 1>&6
-echo "configure:8231: checking for krb5_creds.session existence" >&5
+echo "configure:8271: checking for krb5_creds.session existence" >&5
if eval "test \"`echo '$''{'ac_cv_krb5_creds_session_exists'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8237 "configure"
+#line 8277 "configure"
#include "confdefs.h"
#include <krb5.h>
int main() {
printf("%x\n", _c.session);
; return 0; }
EOF
-if { (eval echo configure:8245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8285: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_krb5_creds_session_exists=yes
else
LIBS="$save_LIBS"
fi
+if test "$ac_cv_header_kerberosV_heim_err_h" = "yes"; then
+ ASETKEY=
+else
+ ASETKEY=asetkey
+fi
+
+
+
+
s%@BUILD_KRB5@%$BUILD_KRB5%g
s%@KRB5CFLAGS@%$KRB5CFLAGS%g
s%@KRB5LIBS@%$KRB5LIBS%g
+s%@ASETKEY@%$ASETKEY%g
s%@HELPER_SPLINT@%$HELPER_SPLINT%g
s%@HELPER_SPLINTCFG@%$HELPER_SPLINTCFG%g
PACKAGE=openafs-libafs
-VERSION=1.4.1-rc10
+VERSION=1.4.1
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
{ echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
i?86-*-linux*)
AFS_SYSNAME="i386_linuxXX"
;;
- parisc-*-linux-gnu)
+ parisc-*-linux-gnu|hppa-*-linux-gnu)
AFS_SYSNAME="parisc_linuxXX"
enable_pam="no"
;;
#define $ac_tr_hdr 1
EOF
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ for ac_hdr in kerberosV/heim_err.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:8204: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 8209 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:8214: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
else
echo "$ac_t""no" 1>&6
fi
echo $ac_n "checking for krb5_creds.keyblock existence""... $ac_c" 1>&6
-echo "configure:8202: checking for krb5_creds.keyblock existence" >&5
+echo "configure:8242: checking for krb5_creds.keyblock existence" >&5
if eval "test \"`echo '$''{'ac_cv_krb5_creds_keyblock_exists'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8208 "configure"
+#line 8248 "configure"
#include "confdefs.h"
#include <krb5.h>
int main() {
printf("%x\n", _c.keyblock);
; return 0; }
EOF
-if { (eval echo configure:8216: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8256: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_krb5_creds_keyblock_exists=yes
else
echo "$ac_t""$ac_cv_krb5_creds_keyblock_exists" 1>&6
echo $ac_n "checking for krb5_creds.session existence""... $ac_c" 1>&6
-echo "configure:8231: checking for krb5_creds.session existence" >&5
+echo "configure:8271: checking for krb5_creds.session existence" >&5
if eval "test \"`echo '$''{'ac_cv_krb5_creds_session_exists'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8237 "configure"
+#line 8277 "configure"
#include "confdefs.h"
#include <krb5.h>
int main() {
printf("%x\n", _c.session);
; return 0; }
EOF
-if { (eval echo configure:8245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8285: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_krb5_creds_session_exists=yes
else
LIBS="$save_LIBS"
fi
+if test "$ac_cv_header_kerberosV_heim_err_h" = "yes"; then
+ ASETKEY=
+else
+ ASETKEY=asetkey
+fi
+
+
+
+
s%@BUILD_KRB5@%$BUILD_KRB5%g
s%@KRB5CFLAGS@%$KRB5CFLAGS%g
s%@KRB5LIBS@%$KRB5LIBS%g
+s%@ASETKEY@%$ASETKEY%g
s%@HELPER_SPLINT@%$HELPER_SPLINT%g
s%@HELPER_SPLINTCFG@%$HELPER_SPLINTCFG%g
AC_INIT(src/libafs/Makefile.common.in)
-AM_INIT_AUTOMAKE(openafs-libafs,1.4.1-rc10)
+AM_INIT_AUTOMAKE(openafs-libafs,1.4.1)
AC_CONFIG_HEADER(src/config/afsconfig.h)
define(OPENAFS_CONFIGURE_LIBAFS)
AC_INIT(src/config/stds.h)
-AM_INIT_AUTOMAKE(openafs,1.4.1-rc10)
+AM_INIT_AUTOMAKE(openafs,1.4.1)
AC_CONFIG_HEADER(src/config/afsconfig.h)
AC_PROG_CC
* Provide a way to substitute the correct paths into the HTML output
from Autoconf results.
+ * Currently, the man pages are built by regen.sh, which is somewhat
+ annoying since it takes a long time. Figure out how better to do this
+ during the release process so that end users don't have to have
+ pod2man.
+
+ * Review the sections used for all man pages against what directories
+ the commands are installed into. (In some cases, it may be better to
+ change the directory than the section of the man page.)
+
If you notice other problems, please send them to the openafs-doc list
even if you don't have time to fix them. Someone else might, and we
want to track all of the issues.
--- /dev/null
+.rn '' }`
+''' $RCSfile$$Revision$$Date$
+'''
+''' $Log$
+'''
+.de Sh
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp
+.if t .sp .5v
+.if n .sp
+..
+.de Ip
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.de Vb
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve
+.ft R
+
+.fi
+..
+'''
+'''
+''' Set up \*(-- to give an unbreakable dash;
+''' string Tr holds user defined translation string.
+''' Bell System Logo is used as a dummy character.
+'''
+.tr \(*W-|\(bv\*(Tr
+.ie n \{\
+.ds -- \(*W-
+.ds PI pi
+.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+.ds L" ""
+.ds R" ""
+''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of
+''' \*(L" and \*(R", except that they are used on ".xx" lines,
+''' such as .IP and .SH, which do another additional levels of
+''' double-quote interpretation
+.ds M" """
+.ds S" """
+.ds N" """""
+.ds T" """""
+.ds L' '
+.ds R' '
+.ds M' '
+.ds S' '
+.ds N' '
+.ds T' '
+'br\}
+.el\{\
+.ds -- \(em\|
+.tr \*(Tr
+.ds L" ``
+.ds R" ''
+.ds M" ``
+.ds S" ''
+.ds N" ``
+.ds T" ''
+.ds L' `
+.ds R' '
+.ds M' `
+.ds S' '
+.ds N' `
+.ds T' '
+.ds PI \(*p
+'br\}
+.\" If the F register is turned on, we'll generate
+.\" index entries out stderr for the following things:
+.\" TH Title
+.\" SH Header
+.\" Sh Subsection
+.\" Ip Item
+.\" X<> Xref (embedded
+.\" Of course, you have to process the output yourself
+.\" in some meaninful fashion.
+.if \nF \{
+.de IX
+.tm Index:\\$1\t\\n%\t"\\$2"
+..
+.nr % 0
+.rr F
+.\}
+.TH asetkey 8 "OpenAFS" "3/Apr/2006" "AFS Command Reference"
+.UC
+.if n .hy 0
+.if n .na
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.de CQ \" put $1 in typewriter font
+.ft CW
+'if n "\c
+'if t \\&\\$1\c
+'if n \\&\\$1\c
+'if n \&"
+\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
+'.ft R
+..
+.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
+. \" AM - accent mark definitions
+.bd B 3
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds ? ?
+. ds ! !
+. ds /
+. ds q
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
+. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
+.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
+.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
+.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.ds oe o\h'-(\w'o'u*4/10)'e
+.ds Oe O\h'-(\w'O'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds v \h'-1'\o'\(aa\(ga'
+. ds _ \h'-1'^
+. ds . \h'-1'.
+. ds 3 3
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+. ds oe oe
+. ds Oe OE
+.\}
+.rm #[ #] #H #V #F C
+.SH "NAME"
+asetkey \- Add a key from a keytab to an AFS KeyFile
+.SH "SYNOPSIS"
+\fBasetkey\fR add <\fIkvno\fR> <\fIkeyfile\fR> <\fIprincipal\fR>
+.PP
+\fBasetkey\fR delete <\fIkvno\fR>
+.PP
+\fBasetkey\fR list
+.SH "DESCRIPTION"
+The \fBasetkey\fR command is used to add a key to an AFS KeyFile from a
+Kerberos keytab. It is similar to \fBbos addkey\fR except that it must be
+run locally on the system where the KeyFile is located and it takes the
+new key from a Kerberos 5 keytab rather than prompting for the password.
+.PP
+\fBasetkey delete\fR can be used to delete a key (similar to \fBbos
+removekeys\fR), and \fBasetkey list\fR will list the keys in a KeyFile (similar
+to \fBbos listkeys\fR).
+.PP
+\fBasetkey\fR is used when authentication for an AFS cell is provided by a
+Kerberos 5 KDC rather than \fBkaserver\fR. The key for the \f(CWafs\fR or
+\f(CWafs/\fIcell name\fR\fR principal in the Kerberos 5 KDC must match the key
+stored in the AFS KeyFile on all AFS database servers and file servers.
+This is done by creating a keytab containing that key using the standard
+Kerberos commands (generally the \f(CWktadd\fR function of the \fBkadmin\fR
+command) and then, on each AFS database server and file server, adding
+that key to the KeyFile with \fBasetkey add\fR. The \fIkvno\fR chosen should
+match the kvno in the Kerberos KDC (checked with \fBkvno\fR or the
+\f(CWgetprinc\fR function of \fBkadmin\fR). \fIprincipal\fR should be the name of
+the AFS principal in the keytab, which must be either \f(CWafs\fR or
+\f(CWafs/\fIcell name\fR\fR.
+.PP
+In cells that use the Update Server to distribute the contents of the
+\fI/usr/afs/etc\fR directory, it is conventional to run \fBasetkey add\fR only
+on the control machine and then let the Update Server propagate the new
+KeyFile to all other systems.
+.SH "CAUTIONS"
+AFS currently only supports des-cbc-crc:v4 Kerberos keys. Make sure, when
+creating the keytab with \f(CWktadd\fR, you pass \f(CW-e des-cbc-crc:v4\fR to force
+the encryption type. Otherwise, AFS authentication may not work.
+.PP
+As soon as a new keytab is created with \f(CWktadd\fR, new AFS service tickets
+will use the new key. However, tokens formed from those service tickets
+will only work if the new key is present in the KeyFile on the AFS file
+server. There is therefore an outage window between when the new keytab
+is created and when the key had been added to the KeyFile of all AFS
+servers with \fBasetkey\fR, during which newly obtained AFS tokens will not
+work properly.
+.PP
+All of the KeyFile entries must match the key in the Kerberos KDC, but
+each time \f(CWktadd\fR is run, it creates a new key. Either the Update Server
+must be used to distribute the KeyFile to all servers or the same keytab
+must be used with \fBasetkey\fR on each server.
+.SH "EXAMPLES"
+The following commands create a new keytab for the principal \f(CWafs\fR and
+then import the key into the KeyFile. Note the kvno in the output from
+\f(CWktadd\fR.
+.PP
+.Vb 8
+\& % kadmin
+\& Authenticating as principal rra/admin@stanford.edu with password.
+\& Password for rra/admin@stanford.edu:
+\& kadmin: ktadd -k /tmp/afs.keytab -e des-cbc-crc:v4 afs
+\& Entry for principal afs with kvno 3, encryption type DES cbc mode
+\& with CRC-32 added to keytab WRFILE:/tmp/afs.keytab.
+\& kadmin: exit
+\& % asetkey 3 /tmp/afs.keytab afs
+.Ve
+You may want to use \f(CWafs/\fIcell name\fR\fR instead of \f(CWafs\fR, particularly if
+you may have multiple AFS cells for a single Kerberos realm.
+.SH "PRIVILEGE REQUIRED"
+The issuer must be able to read (for \fBasetkey list\fR) and write (for
+\fBasetkey add\fR and \fBasetkey delete\fR) the KeyFile, normally
+\fI/usr/afs/etc/KeyFile\fR. In practice, this means that the issuer must be
+the local superuser \f(CWroot\fR on the AFS file server or database server.
+For \fBasetkey add\fR, the issuer must also be able to read the specified
+keytab file.
+.SH "SEE ALSO"
+the \fIKeyFile(5)\fR manpage,
+the \fIbos_addkey(8)\fR manpage,
+the \fIbos_listkeys(8)\fR manpage,
+the \fIbos_removekey(8)\fR manpage,
+\fIkadmin\fR\|(8),
+\fIkvno\fR\|(1)
+.SH "COPYRIGHT"
+Copyright 2006 Russ Allbery <rra@stanford.edu>
+.PP
+This documentation is covered by the IBM Public License Version 1.0. This
+man page was written by Russ Allbery for OpenAFS.
+
+.rn }` ''
+.IX Title "asetkey 8"
+.IX Name "asetkey - Add a key from a keytab to an AFS KeyFile"
+
+.IX Header "NAME"
+
+.IX Header "SYNOPSIS"
+
+.IX Header "DESCRIPTION"
+
+.IX Header "CAUTIONS"
+
+.IX Header "EXAMPLES"
+
+.IX Header "PRIVILEGE REQUIRED"
+
+.IX Header "SEE ALSO"
+
+.IX Header "COPYRIGHT"
+
.nr % 0
.rr F
.\}
-.TH kaserver 8 "OpenAFS" "5/Jan/2006" "AFS Command Reference"
+.TH kaserver 8 "OpenAFS" "29/Mar/2006" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.rm #[ #] #H #V #F C
.SH "NAME"
kaserver \- Initializes the Authentication Server
-.SH "DESCRIPTION"
+.SH "SYNOPSIS"
\fBkaserver\fR [\fB\-noAuth\fR] [\fB\-fastKeys\fR] [\fB\-database\fR <\fIdbpath\fR>]
- [\fB\-localfiles\fR <\fIlclpath\fR>] [\fB\-minhours\fR <\fIn\fR>]
- [\fB\-servers\fR <\fIserverlist\fR>] [\fB\-enable_peer_stats\fR]
+ <<\ [\fB\-localfiles\fR\ <\fIlclpath\fR] >>> <<\ [\fB\-minhours\fR\ <\fIn\fR] >>>
+ <<\ [\fB\-servers\fR\ <\fIserverlist\fR] >>> [\fB\-enable_peer_stats\fR]
[\fB\-enable_process_stats\fR] [\fB\-help\fR]
.SH "DESCRIPTION"
The \fBkaserver\fR command initializes the Authentication Server, which runs
.IX Header "NAME"
-.IX Header "DESCRIPTION"
+.IX Header "SYNOPSIS"
.IX Header "DESCRIPTION"
--- /dev/null
+=head1 NAME
+
+asetkey - Add a key from a keytab to an AFS KeyFile
+
+=head1 SYNOPSIS
+
+=for html
+<div class="synopsis">
+
+B<asetkey> add <I<kvno>> <I<keyfile>> <I<principal>>
+
+B<asetkey> delete <I<kvno>>
+
+B<asetkey> list
+
+=for html
+</div>
+
+=head1 DESCRIPTION
+
+The B<asetkey> command is used to add a key to an AFS KeyFile from a
+Kerberos keytab. It is similar to B<bos addkey> except that it must be
+run locally on the system where the KeyFile is located and it takes the
+new key from a Kerberos 5 keytab rather than prompting for the password.
+
+B<asetkey delete> can be used to delete a key (similar to B<bos
+removekeys>), and B<asetkey list> will list the keys in a KeyFile (similar
+to B<bos listkeys>).
+
+B<asetkey> is used when authentication for an AFS cell is provided by a
+Kerberos 5 KDC rather than B<kaserver>. The key for the C<afs> or
+C<afs/I<cell name>> principal in the Kerberos 5 KDC must match the key
+stored in the AFS KeyFile on all AFS database servers and file servers.
+This is done by creating a keytab containing that key using the standard
+Kerberos commands (generally the C<ktadd> function of the B<kadmin>
+command) and then, on each AFS database server and file server, adding
+that key to the KeyFile with B<asetkey add>. The I<kvno> chosen should
+match the kvno in the Kerberos KDC (checked with B<kvno> or the
+C<getprinc> function of B<kadmin>). I<principal> should be the name of
+the AFS principal in the keytab, which must be either C<afs> or
+C<afs/I<cell name>>.
+
+In cells that use the Update Server to distribute the contents of the
+F</usr/afs/etc> directory, it is conventional to run B<asetkey add> only
+on the control machine and then let the Update Server propagate the new
+KeyFile to all other systems.
+
+=head1 CAUTIONS
+
+AFS currently only supports des-cbc-crc:v4 Kerberos keys. Make sure, when
+creating the keytab with C<ktadd>, you pass C<-e des-cbc-crc:v4> to force
+the encryption type. Otherwise, AFS authentication may not work.
+
+As soon as a new keytab is created with C<ktadd>, new AFS service tickets
+will use the new key. However, tokens formed from those service tickets
+will only work if the new key is present in the KeyFile on the AFS file
+server. There is therefore an outage window between when the new keytab
+is created and when the key had been added to the KeyFile of all AFS
+servers with B<asetkey>, during which newly obtained AFS tokens will not
+work properly.
+
+All of the KeyFile entries must match the key in the Kerberos KDC, but
+each time C<ktadd> is run, it creates a new key. Either the Update Server
+must be used to distribute the KeyFile to all servers or the same keytab
+must be used with B<asetkey> on each server.
+
+=head1 EXAMPLES
+
+The following commands create a new keytab for the principal C<afs> and
+then import the key into the KeyFile. Note the kvno in the output from
+C<ktadd>.
+
+ % kadmin
+ Authenticating as principal rra/admin@stanford.edu with password.
+ Password for rra/admin@stanford.edu:
+ kadmin: ktadd -k /tmp/afs.keytab -e des-cbc-crc:v4 afs
+ Entry for principal afs with kvno 3, encryption type DES cbc mode
+ with CRC-32 added to keytab WRFILE:/tmp/afs.keytab.
+ kadmin: exit
+ % asetkey 3 /tmp/afs.keytab afs
+
+You may want to use C<afs/I<cell name>> instead of C<afs>, particularly if
+you may have multiple AFS cells for a single Kerberos realm.
+
+=head1 PRIVILEGE REQUIRED
+
+The issuer must be able to read (for B<asetkey list>) and write (for
+B<asetkey add> and B<asetkey delete>) the KeyFile, normally
+F</usr/afs/etc/KeyFile>. In practice, this means that the issuer must be
+the local superuser C<root> on the AFS file server or database server.
+For B<asetkey add>, the issuer must also be able to read the specified
+keytab file.
+
+=head1 SEE ALSO
+
+L<KeyFile(5)>,
+L<bos_addkey(8)>,
+L<bos_listkeys(8)>,
+L<bos_removekey(8)>,
+kadmin(8),
+kvno(1)
+
+=head1 COPYRIGHT
+
+Copyright 2006 Russ Allbery <rra@stanford.edu>
+
+This documentation is covered by the IBM Public License Version 1.0. This
+man page was written by Russ Allbery for OpenAFS.
kaserver - Initializes the Authentication Server
-=head1 DESCRIPTION
+=head1 SYNOPSIS
+
+=for html
+<div class="synopsis">
B<kaserver> [B<-noAuth>] [B<-fastKeys>] [B<-database> <I<dbpath>>]
- [B<-localfiles> <I<lclpath>>] [B<-minhours> <I<n>>]
- [B<-servers> <I<serverlist>>] [B<-enable_peer_stats>]
+ S<<< [B<-localfiles> <I<lclpath>>] >>> S<<< [B<-minhours> <I<n>>] >>>
+ S<<< [B<-servers> <I<serverlist>>] >>> [B<-enable_peer_stats>]
[B<-enable_process_stats>] [B<-help>]
+=for html
+</div>
+
=head1 DESCRIPTION
The B<kaserver> command initializes the Authentication Server, which runs
+Since 1.4.1 rc10: 1.4.1 rc11 released (9 April 2006)
+
+ * Add code to protect against an undercount of smb_vc_t
+ references in the smb_allVCsp list. This is a temporary
+ workaround until the cause of the undercount can be
+ identified.
+
+ * Change default minidump output to include data segments
+
+ * restore access to cm_IoctlGetVolumeStatus and
+ cm_IoctlSetVolumeStatus calls for AFS pioctl operations.
+ Still need to figure out why they are being called
+ for SMB/CIFS IOCTL operations instead of Trans2GetFileInfo.
+
Since 1.4.1 rc9: 1.4.1 rc10 released (10 March 2006)
* Fix the rx-lwp implementation to randomly generate rx call
Since 1.4.1 rc8:
- * Nothing
+ * Fix data written to registry as part of BackConnectionHostnames
+ data value
+
+ * Fix initialization bug when allocating cm_server_t objects that
+ would cause servers to appear to be down after each allocation
+ or renewal. Server would appear up after the next check servers
+ cycle.
Since 1.4.1 rc7:
#define vfs_data vfs_bh.bh_first->bd_pdata
#endif /* AFS_SGI64_ENV */
+#define ifnet_flags(x) (x?(x)->if_flags:0)
/*
* Global lock, semaphore, mutex and state vector support.
#include <linux/init.h>
#include <linux/unistd.h>
#include <linux/mm.h>
+#ifdef AFS_LINUX26_ENV
+#include <scsi/scsi.h> /* for scsi_command_size */
+#endif
#if defined(AFS_PPC64_LINUX26_ENV)
#include <asm/abs_addr.h>
/* Allow the user to specify sys_call_table addresses */
static unsigned long sys_call_table_addr[4] = { 0,0,0,0 };
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+#ifdef module_param_array
module_param_array(sys_call_table_addr, long, NULL, 0);
#else
MODULE_PARM(sys_call_table_addr, "1-4l");
/* If this is set, we are more careful about avoiding duplicate matches */
static int probe_carefully = 1;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+#ifdef module_param
module_param(probe_carefully, int, 0);
#else
MODULE_PARM(probe_carefully, "i");
MODULE_PARM_DESC(probe_carefully, "Probe for system call tables carefully");
static int probe_ignore_syscalls[8] = { -1, -1, -1, -1, -1, -1, -1, -1 };
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+#ifdef module_param_array
module_param_array(probe_ignore_syscalls, int, NULL, 0);
#else
MODULE_PARM(probe_ignore_syscalls, "1-8i");
* 0x0040 - automatically ignore setgroups and afs_syscall
*/
static int probe_debug = 0x41;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+#ifdef module_param
module_param(probe_debug, int, 0);
#else
MODULE_PARM(probe_debug, "i");
MODULE_PARM_DESC(probe_debug, "Debugging level");
static unsigned long probe_debug_addr[4] = { 0,0,0,0 };
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+#ifdef module_param_array
module_param_array(probe_debug_addr, long, NULL, 0);
#else
MODULE_PARM(probe_debug_addr, "1-4l");
MODULE_PARM_DESC(probe_debug_addr, "Debug range starting locations");
static unsigned long probe_debug_range = 0;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+#ifdef module_param
module_param(probe_debug_range, long, 0);
#else
MODULE_PARM(probe_debug_range, "l");
MODULE_PARM_DESC(probe_debug_range, "Debug range length");
static unsigned long probe_debug_tag = 0;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+#ifdef module_param
module_param(probe_debug_tag, long, 0);
#else
MODULE_PARM(probe_debug_tag, "l");
unsigned long try_base_mask; /* base address bits to force to zero */
unsigned long try_length; /* default length for scan */
+ unsigned long alt_try_sect_sym; /* symbol in section to try scanning */
+ unsigned long alt_try_base; /* default base address for scan */
+ unsigned long alt_try_base_mask; /* base address bits to force to zero */
+ unsigned long alt_try_length; /* default length for scan */
+
int n_zapped_syscalls; /* number of unimplemented system calls */
int *zapped_syscalls; /* list of unimplemented system calls */
16384,
#endif
+#ifdef AFS_LINUX26_ENV
+ (unsigned long)scsi_command_size,
+ (unsigned long)scsi_command_size,
+ 0x3ffff,
+ 0x30000,
+#else
+ 0, 0, 0, 0,
+#endif
+
/* number and list of unimplemented system calls */
((sizeof(main_zapped_syscalls)/sizeof(main_zapped_syscalls[0])) - 1),
main_zapped_syscalls,
0,
(0x180000 / sizeof(unsigned long *)),
+#ifdef AFS_LINUX26_ENV
+ (unsigned long)scsi_command_size,
+ (unsigned long)scsi_command_size,
+ 0x3ffff,
+ 0x30000,
+#else
+ 0, 0, 0, 0
+#endif
+
+
/* number and list of unimplemented system calls */
((sizeof(ia32_zapped_syscalls)/sizeof(ia32_zapped_syscalls[0])) - 1),
ia32_zapped_syscalls,
16384,
#endif
+#ifdef AFS_LINUX26_ENV
+ (unsigned long)scsi_command_size,
+ (unsigned long)scsi_command_size,
+ 0x3ffff,
+ 0x30000,
+#else
+ 0, 0, 0, 0
+#endif
+
/* number and list of unimplemented system calls */
((sizeof(sct32_zapped_syscalls)/sizeof(sct32_zapped_syscalls[0])) - 1),
sct32_zapped_syscalls,
0xfffff,
0x20000,
+#ifdef AFS_LINUX26_ENV
+ (unsigned long)scsi_command_size,
+ (unsigned long)scsi_command_size,
+ 0x3ffff,
+ 0x30000,
+#else
+ 0, 0, 0, 0
+#endif
+
/* number and list of unimplemented system calls */
((sizeof(emu_zapped_syscalls)/sizeof(emu_zapped_syscalls[0])) - 1),
emu_zapped_syscalls,
} \
} while (0)
#endif
+static void *scan_for_syscall_table(probectl *P, PROBETYPE *B, unsigned long L)
+{
+ tryctl *T;
+ void *answer;
+#if defined(AFS_S390_LINUX20_ENV) || defined(AFS_S390X_LINUX20_ENV)
+ void *answer2;
+#endif
+#ifdef OSI_PROBE_DEBUG
+ void *final_answer = 0;
+#endif
+#ifdef OSI_PROBE_DEBUG
+ if (probe_debug & 0x0007)
+ printk("<7>osi_probe: %s base=0x%lx, len=0x%lx\n",
+ P->symbol, (unsigned long)B, L);
+ if (probe_debug & 0x0009) {
+ printk("<7>osi_probe: %s ktxt_lower_bound=0x%lx\n",
+ P->symbol, ktxt_lower_bound);
+ printk("<7>osi_probe: %s NR_syscalls=%d\n",
+ P->symbol, NR_syscalls);
+ }
+#endif
+
+ for (T = P->trylist; T->name; T++) {
+ answer = try(P, T, B, L);
+#if defined(AFS_S390_LINUX20_ENV) || defined(AFS_S390X_LINUX20_ENV)
+ answer2 = try(P, T, (PROBETYPE *)(2 + (void *)B), L);
+#ifdef OSI_PROBE_DEBUG
+ if (probe_debug & 0x0003) {
+ printk("<7>osi_probe: %s = 0x%016lx %s (even)\n",
+ P->symbol, (unsigned long)(answer), T->name);
+ printk("<7>osi_probe: %s = 0x%016lx %s (odd)\n",
+ P->symbol, (unsigned long)(answer2), T->name);
+ }
+#endif
+ if (answer && answer2) answer = 0;
+ else if (answer2) answer = answer2;
+#endif
+ if (answer)
+ return answer;
+ }
+
+ /* XXX more checks here */
+
+ answer = try_harder(P, B, L);
+#if defined(AFS_S390_LINUX20_ENV) || defined(AFS_S390X_LINUX20_ENV)
+ answer2 = try_harder(P, (PROBETYPE *)(2 + (void *)B), L);
+#ifdef OSI_PROBE_DEBUG
+ if (probe_debug & 0x0005) {
+ printk("<7>osi_probe: %s = 0x%016lx pattern scan (even)\n",
+ P->symbol, (unsigned long)(answer));
+ printk("<7>osi_probe: %s = 0x%016lx pattern scan (odd)\n",
+ P->symbol, (unsigned long)(answer2));
+ }
+#endif
+ if (answer && answer2) answer = 0;
+ else if (answer2) answer = answer2;
+#endif
+ return answer;
+}
+
static void *do_find_syscall_table(probectl *P, char **method)
{
#ifdef OSI_PROBE_KALLSYMS
#endif
PROBETYPE *B;
unsigned long L;
- tryctl *T;
void *answer;
-#if defined(AFS_S390_LINUX20_ENV) || defined(AFS_S390X_LINUX20_ENV)
- void *answer2;
-#endif
#ifdef OSI_PROBE_DEBUG
void *final_answer = 0;
#endif
}
}
#endif
-
-#ifdef OSI_PROBE_DEBUG
- if (probe_debug & 0x0007)
- printk("<7>osi_probe: %s base=0x%lx, len=0x%lx\n",
- P->symbol, (unsigned long)B, L);
- if (probe_debug & 0x0009) {
- printk("<7>osi_probe: %s ktxt_lower_bound=0x%lx\n",
- P->symbol, ktxt_lower_bound);
- printk("<7>osi_probe: %s NR_syscalls=%d\n",
- P->symbol, NR_syscalls);
- }
-#endif
-
- for (T = P->trylist; T->name; T++) {
- answer = try(P, T, B, L);
-#if defined(AFS_S390_LINUX20_ENV) || defined(AFS_S390X_LINUX20_ENV)
- answer2 = try(P, T, (PROBETYPE *)(2 + (void *)B), L);
-#ifdef OSI_PROBE_DEBUG
- if (probe_debug & 0x0003) {
- printk("<7>osi_probe: %s = 0x%016lx %s (even)\n",
- P->symbol, (unsigned long)(answer), T->name);
- printk("<7>osi_probe: %s = 0x%016lx %s (odd)\n",
- P->symbol, (unsigned long)(answer2), T->name);
+
+ answer = scan_for_syscall_table(P, B, L);
+ check_result(answer, "pattern scan");
+ B = (PROBETYPE *)((P->alt_try_base) & ~(P->alt_try_base_mask));
+ L = P->alt_try_length;
+ /* Now, see if the kernel will tell us something better than the default */
+#ifdef OSI_PROBE_KALLSYMS
+ if (kallsyms_address_to_symbol && P->alt_try_sect_sym) {
+ ret = kallsyms_address_to_symbol(P->alt_try_sect_sym,
+ &mod_name, &mod_start, &mod_end,
+ &sec_name, &sec_start, &sec_end,
+ &sym_name, &sym_start, &sym_end);
+ if (ret) {
+ B = (PROBETYPE *)sec_start;
+ L = (sec_end - sec_start) / sizeof(unsigned long);
}
+ }
#endif
- if (answer && answer2) answer = 0;
- else if (answer2) answer = answer2;
-#endif
- check_result(answer, T->name);
+ if (B && L) {
+ answer = scan_for_syscall_table(P, B, L);
+ check_result(answer, "pattern scan");
}
-
- /* XXX more checks here */
-
- answer = try_harder(P, B, L);
-#if defined(AFS_S390_LINUX20_ENV) || defined(AFS_S390X_LINUX20_ENV)
- answer2 = try_harder(P, (PROBETYPE *)(2 + (void *)B), L);
#ifdef OSI_PROBE_DEBUG
- if (probe_debug & 0x0005) {
- printk("<7>osi_probe: %s = 0x%016lx pattern scan (even)\n",
- P->symbol, (unsigned long)(answer));
- printk("<7>osi_probe: %s = 0x%016lx pattern scan (odd)\n",
- P->symbol, (unsigned long)(answer2));
- }
+ return final_answer;
+#else
+ return 0;
#endif
- if (answer && answer2) answer = 0;
- else if (answer2) answer = answer2;
+}
+
+#if defined(AFS_I386_LINUX26_ENV) || defined(AFS_AMD64_LINUX26_ENV)
+static int check_writable(unsigned long address)
+{
+ pgd_t *pgd = pgd_offset_k(address);
+#ifdef PUD_SIZE
+ pud_t *pud;
#endif
- check_result(answer, "pattern scan");
+ pmd_t *pmd;
+ pte_t *pte;
-#ifdef OSI_PROBE_DEBUG
- return final_answer;
+ if (pgd_none(*pgd))
+ return 0;
+#ifdef PUD_SIZE
+ pud = pud_offset(pgd, address);
+ if (pud_none(*pud))
+ return 0;
+ pmd = pmd_offset(pud, address);
#else
- return 0;
+ pmd = pmd_offset(pgd, address);
#endif
+ if (pmd_none(*pmd))
+ return 0;
+ if (pmd_large(*pmd))
+ pte = (pte_t *)pmd;
+ else
+ pte = pte_offset_kernel(pmd, address);
+ if (pte_none(*pte) || !pte_present(*pte) || !pte_write(*pte))
+ return 0;
+ return 1;
}
+#endif
void *osi_find_syscall_table(int which)
{
return 0;
}
printk("Found %s at 0x%lx (%s)\n", P->desc, (unsigned long)answer, method);
+#if defined(AFS_I386_LINUX26_ENV) || defined(AFS_AMD64_LINUX26_ENV)
+ if (!check_writable((unsigned long)answer)) {
+ printk("Address 0x%lx is not writable.\n", (unsigned long)answer);
+ printk("System call hooks will not be installed; proceeding anyway\n");
+ return 0;
+ }
+#endif
return answer;
}
-#error kernel code not supported on SunOS 4
+#error kernel code not supported on SunOS 4
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/afsd/afsd.c,v 1.43.2.16 2005/12/01 04:03:30 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afsd/afsd.c,v 1.43.2.17 2006/03/23 15:40:10 shadow Exp $");
#define VFS 1
return "cannot use reiserfs as cache partition";
} else if (statfsbuf.f_type == 0x58465342) { /* XFS_SUPER_MAGIC */
return "cannot use xfs as cache partition";
+ } else if (statfsbuf.f_type == 0x01021994) { /* TMPFS_SUPER_MAGIC */
+ return "cannot use tmpfs as cache partition";
+ } else if (statfsbuf.f_type != 0xEF53) {
+ return "must use ext2 or ext3 for cache partition";
}
}
#endif
vFilePtr = fullpn_VFile + strlen(fullpn_VFile);
if (!(cacheFlags & AFSCALL_INIT_MEMCACHE) && (fsTypeMsg = CheckCacheBaseDir(cacheBaseDir))) {
- printf("%s: WARNING: Cache dir check failed (%s)\n", rn, fsTypeMsg);
+#ifdef AFS_SUN5_ENV
+ printf("%s: WARNING: Cache dir check failed (%s)\n", rn, fsTypeMsg);
+#else
+ printf("%s: ERROR: Cache dir check failed (%s)\n", rn, fsTypeMsg);
+ exit(1);
+#endif
}
#if 0
fputs(AFS_GOVERNMENT_MESSAGE, stdout);
srcdir=@srcdir@
include @TOP_OBJDIR@/src/config/Makefile.config
-OPTMZ += @KRB5CFLAGS@ -DALLOW_REGISTER
-LIBS += @KRB5LIBS@
+OPTMZ = @KRB5CFLAGS@ -DALLOW_REGISTER
+AKLIBS = ${LIBS} @KRB5LIBS@
AFSLIBS = ${TOP_LIBDIR}/libprot.a ${TOP_LIBDIR}/libubik.a \
${TOP_LIBDIR}/libauth.a ${TOP_LIBDIR}/librxkad.a \
${TOP_LIBDIR}/librx.a ${TOP_LIBDIR}/liblwp.a \
SRCS= aklog.c aklog_main.c krb_util.c linked_list.c
OBJS= aklog.o aklog_main.o krb_util.o linked_list.o
-all: aklog
+all: aklog @ASETKEY@
aklog: ${OBJS} ${AFSLIBS}
- ${CC} -o $@ ${CFLAGS} ${OBJS} ${LIBS} ${AFSLIBS} ${XLIBS}
+ ${CC} -o $@ ${CFLAGS} ${OBJS} ${AKLIBS} ${AFSLIBS} ${XLIBS}
+asetkey: asetkey.o ${AFSLIBS}
+ ${CC} -o $@ ${CFLAGS} asetkey.o ${AKLIBS} ${AFSLIBS} ${XLIBS}
#
# Installation targets
#
install: \
- ${DESTDIR}${bindir}/aklog
+ ${DESTDIR}${bindir}/aklog ${DESTDIR}${afssrvbindir}/asetkey
${DESTDIR}${bindir}/aklog: aklog
${INSTALL} $? $@
+${DESTDIR}${afssrvbindir}/asetkey: @ASETKEY@
+ if test "x@ASETKEY@" != "x"; then ${INSTALL} $? $@; fi
+
dest: \
- ${DEST}/bin/aklog
+ ${DEST}/bin/aklog ${DEST}/root.server/usr/afs/bin/asetkey
${DEST}/bin/aklog: aklog
${INSTALL} $? $@
+${DEST}/root.server/usr/afs/bin/asetkey: @ASETKEY@
+ if test "x@ASETKEY@" != "x"; then ${INSTALL} $? $@; fi
+
#
# Misc. targets
#
clean:
- $(RM) -f *.o ${OBJS} aklog
+ $(RM) -f *.o ${OBJS} aklog asetkey
include ../config/Makefile.version
/*
- * $Id: aklog.h,v 1.1.2.4 2005/07/11 19:07:00 shadow Exp $
+ * $Id: aklog.h,v 1.1.2.5 2006/04/05 15:42:13 shadow Exp $
*
* Copyright 1990,1991 by the Massachusetts Institute of Technology
* For distribution and copying rights, see the file "mit-copyright.h"
#define __AKLOG_H__
#if !defined(lint) && !defined(SABER)
-static char *rcsid_aklog_h = "$Id: aklog.h,v 1.1.2.4 2005/07/11 19:07:00 shadow Exp $";
+static char *rcsid_aklog_h = "$Id: aklog.h,v 1.1.2.5 2006/04/05 15:42:13 shadow Exp $";
#endif /* lint || SABER */
#include <krb5.h>
struct ktext {
unsigned int length;
unsigned char dat[MAX_KTXT_LEN];
- u_int32_t mbz;
+ afs_uint32 mbz;
};
struct credentials {
/*
- * $Id: aklog_main.c,v 1.1.2.10 2005/07/19 02:51:53 jaltman Exp $
+ * $Id: aklog_main.c,v 1.1.2.12 2006/04/05 15:42:13 shadow Exp $
*
* Copyright 1990,1991 by the Massachusetts Institute of Technology
* For distribution and copying rights, see the file "mit-copyright.h"
#if !defined(lint) && !defined(SABER)
static char *rcsid =
- "$Id: aklog_main.c,v 1.1.2.10 2005/07/19 02:51:53 jaltman Exp $";
+ "$Id: aklog_main.c,v 1.1.2.12 2006/04/05 15:42:13 shadow Exp $";
#endif /* lint || SABER */
+#include <afsconfig.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#else /* !WINDOWS */
#include <afs/stds.h>
+#ifndef HAVE_KERBEROSV_HEIM_ERR_H
#include <afs/com_err.h>
+#endif
#include <afs/param.h>
#ifdef AFS_SUN5_ENV
--- /dev/null
+/*
+ * $Id: asetkey.c,v 1.4.2.4 2006/04/03 19:45:26 shadow Exp $
+ *
+ * asetkey - Manipulates an AFS KeyFile
+ *
+ * Updated for Kerberos 5
+ */
+
+#include <afsconfig.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <netdb.h>
+#ifdef HAVE_MEMORY_H
+#include <memory.h>
+#endif /* HAVE_MEMORY_H */
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else /* HAVE_STRING_H */
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif /* HAVE_STRINGS_H */
+#endif /* HAVE_STRING_H */
+
+#include <krb5.h>
+
+#include <afs/stds.h>
+#include <afs/com_err.h>
+#include <afs/cellconfig.h>
+#include <afs/keys.h>
+#include <afs/dirpath.h>
+
+int
+main(int argc, char *argv[])
+{
+ struct afsconf_dir *tdir;
+ register long code;
+ const char *confdir;
+
+ if (argc == 1) {
+ fprintf(stderr, "%s: usage is '%s <opcode> options, e.g.\n",
+ argv[0], argv[0]);
+ fprintf(stderr, "\t%s add <kvno> <keyfile> <princ>\n", argv[0]);
+ fprintf(stderr, "\t%s delete <kvno>\n", argv[0]);
+ fprintf(stderr, "\t%s list\n", argv[0]);
+ exit(1);
+ }
+
+ confdir = AFSDIR_SERVER_ETC_DIRPATH;
+
+ tdir = afsconf_Open(confdir);
+ if (!tdir) {
+ fprintf(stderr, "%s: can't initialize conf dir '%s'\n", argv[0],
+ confdir);
+ exit(1);
+ }
+ if (strcmp(argv[1], "add")==0) {
+ krb5_context context;
+ krb5_principal principal;
+ krb5_keyblock *key;
+ krb5_error_code retval;
+ int kvno;
+
+ if (argc != 5) {
+ fprintf(stderr, "%s add: usage is '%s add <kvno> <keyfile> "
+ "<princ>\n", argv[0], argv[0]);
+ exit(1);
+ }
+
+ krb5_init_context(&context);
+
+ kvno = atoi(argv[2]);
+ retval = krb5_parse_name(context, argv[4], &principal);
+ if (retval != 0) {
+ com_err(argv[0], retval, "while parsing AFS principal");
+ exit(1);
+ }
+ retval = krb5_kt_read_service_key(context, argv[3], principal, kvno,
+ ENCTYPE_DES_CBC_CRC, &key);
+ if (retval != 0) {
+ com_err(argv[0], retval, "while extracting AFS service key");
+ exit(1);
+ }
+
+ if (key->length != 8) {
+ fprintf(stderr, "Key length should be 8, but is really %d!\n",
+ key->length);
+ exit(1);
+ }
+
+ code = afsconf_AddKey(tdir, kvno, (char *) key->contents, 1);
+ if (code) {
+ fprintf(stderr, "%s: failed to set key, code %d.\n", argv[0], code);
+ exit(1);
+ }
+ krb5_free_principal(context, principal);
+ krb5_free_keyblock(context, key);
+ }
+ else if (strcmp(argv[1], "delete")==0) {
+ long kvno;
+ if (argc != 3) {
+ fprintf(stderr, "%s delete: usage is '%s delete <kvno>\n",
+ argv[0], argv[0]);
+ exit(1);
+ }
+ kvno = atoi(argv[2]);
+ code = afsconf_DeleteKey(tdir, kvno);
+ if (code) {
+ fprintf(stderr, "%s: failed to delete key %d, (code %d)\n",
+ argv[0], kvno, code);
+ exit(1);
+ }
+ }
+ else if (strcmp(argv[1], "list") == 0) {
+ struct afsconf_keys tkeys;
+ register int i, j;
+
+ code = afsconf_GetKeys(tdir, &tkeys);
+ if (code) {
+ fprintf(stderr, "%s: failed to get keys, code %d\n", argv[0], code);
+ exit(1);
+ }
+ for(i=0;i<tkeys.nkeys;i++) {
+ if (tkeys.key[i].kvno != -1) {
+ printf("kvno %4d: key is: ", tkeys.key[i].kvno);
+ for (j = 0; j < 8; j++)
+ printf("%02x", (unsigned char) tkeys.key[i].key[j]);
+ printf("\n");
+ }
+ }
+ printf("All done.\n");
+ }
+ else {
+ fprintf(stderr, "%s: unknown operation '%s', type '%s' for "
+ "assistance\n", argv[0], argv[1], argv[0]);
+ exit(1);
+ }
+ exit(0);
+}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/auth/cellconfig.c,v 1.40.2.5 2005/11/07 19:54:10 shadow Exp $");
+ ("$Header: /cvs/openafs/src/auth/cellconfig.c,v 1.40.2.6 2006/03/28 18:42:57 shadow Exp $");
#include <afs/stds.h>
#include <afs/pthread_glock.h>
struct afsconf_cell *acellInfo)
{
afs_int32 code;
- int tservice, i;
- size_t len;
+ int tservice, i, len;
unsigned char answer[1024];
unsigned char *p;
char *dotcellname;
dnl
-dnl $Id: kerberos.m4,v 1.1.2.7 2005/07/11 19:16:42 shadow Exp $
+dnl $Id: kerberos.m4,v 1.1.2.8 2006/04/03 19:45:27 shadow Exp $
dnl
dnl Kerberos autoconf glue
dnl
LIBS="$LIBS $KRB5LIBS"
AC_CHECK_FUNCS([add_to_error_table add_error_table krb5_princ_size krb5_principal_get_comp_string krb5_524_convert_creds krb524_convert_creds_kdc])
AC_CHECK_HEADERS([kerberosIV/krb.h])
+ AC_CHECK_HEADERS([kerberosV/heim_err.h])
AC_MSG_CHECKING(for krb5_creds.keyblock existence)
AC_CACHE_VAL(ac_cv_krb5_creds_keyblock_exists,
CPPFLAGS="$save_CPPFLAGS"
LIBS="$save_LIBS"
fi
+
+if test "$ac_cv_header_kerberosV_heim_err_h" = "yes"; then
+ ASETKEY=
+else
+ ASETKEY=asetkey
+fi
+
AC_SUBST(BUILD_KRB5)
AC_SUBST(KRB5CFLAGS)
AC_SUBST(KRB5LIBS)
+AC_SUBST(ASETKEY)
+
])dnl
#define used in WinNT/2000 installation and program version display
AFSPRODUCT_VER_MAJOR=1
AFSPRODUCT_VER_MINOR=4
-AFSPRODUCT_VER_PATCH=0100
+AFSPRODUCT_VER_PATCH=0101
AFSPRODUCT_VER_BUILD=0
AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
#define used in WinNT/2000 installation and program version display
AFSPRODUCT_VER_MAJOR=1
AFSPRODUCT_VER_MINOR=4
-AFSPRODUCT_VER_PATCH=0100
+AFSPRODUCT_VER_PATCH=0101
AFSPRODUCT_VER_BUILD=0
AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
#define used in WinNT/2000 installation and program version display
AFSPRODUCT_VER_MAJOR=1
AFSPRODUCT_VER_MINOR=4
-AFSPRODUCT_VER_PATCH=0100
+AFSPRODUCT_VER_PATCH=0101
AFSPRODUCT_VER_BUILD=0
AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
/* Define if you have the <kerberosIV/krb.h> header file. */
#undef HAVE_KERBEROSIV_KRB_H
+/* Define if you have the <kerberosV/heim_err.h> header file. */
+#undef HAVE_KERBEROSV_HEIM_ERR_H
+
/* Define if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H
for VERS in $LINUX_VERS ; do
dir=$LINUX_SRCDIR$VERS
if [ ! -d $dir ] ; then
+ dir=$LINUX_SRCDIR
+ if [ ! -d $dir ] ; then
echo "ERROR: Cannot build for Linux kernel $VERS: $dir does not exist."
errors=true
continue
+ fi
fi
header=$LINUX_SRCDIR$VERS/include/linux/version.h
if [ ! -f $header ] ; then
- echo "ERROR: Cannot build for Linux kernel $VERS: $header does not exist."
- errors=true
- continue
+ header=$LINUX_SRCDIR/include/linux/version.h
+ if [ ! -f $header ] ; then
+ echo "ERROR: Cannot build for Linux kernel $VERS: $header does not exist."
+ errors=true
+ continue
+ fi
fi
vers=`fgrep UTS_RELEASE $LINUX_SRCDIR$VERS/include/linux/version.h |
#define SYS_NAME "i386_linux26"
#define SYS_NAME_ID SYS_NAME_ID_i386_linux26
+#ifdef __GLIBC__
+#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 3)
+#define USE_UCONTEXT
+#endif
+#endif
#endif /* AFS_PARAM_H */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/rebuild.c,v 1.11 2003/07/15 23:15:17 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/rebuild.c,v 1.11.2.1 2006/03/20 13:39:11 jaltman Exp $");
#include <sys/types.h>
#include <sys/stat.h>
int i;
char Time[100];
struct tm *tm_p;
+ time_t tt;
printf("\n");
if (entry->flags & KAFOLDKEYS)
return;
- tm_p = localtime((time_t *) & entry->user_expiration);
+ tt = entry->user_expiration;
+ tm_p = localtime(&tt);
if (tm_p)
strftime(Time, 100, "%m/%d/%Y %H:%M", tm_p);
if (strcmp(flags, "") != 0)
fprintf(out, " -flags %s", &flags[1]);
if (entryp->user_expiration != 0xffffffff) {
- strftime(Time, 50, "%m/%d/%Y %H:%M",
- localtime((time_t *) & entryp->user_expiration));
+ time_t tt = entryp->user_expiration;
+ strftime(Time, 50, "%m/%d/%Y %H:%M",localtime(&tt));
fprintf(out, " -expiration '%s'", Time);
}
fprintf(out, " -lifetime %u", entryp->max_ticket_lifetime);
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
- <string>1.4.0</string>
+ <string>1.4.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.4.0</string>
+ <string>1.4.1</string>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kernel.bsd</key>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
- <string>1.4.0</string>
+ <string>1.4.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.4.0</string>
+ <string>1.4.1</string>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kpi.bsd</key>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
- <string>1.4.0</string>
+ <string>1.4.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.4.0</string>
+ <string>1.4.1</string>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kpi.bsd</key>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
- <string>1.3.82</string>
+ <string>1.4.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.3.82</string>
+ <string>1.4.1</string>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kpi.bsd</key>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
- <string>1.3.82</string>
+ <string>1.4.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.3.82</string>
+ <string>1.4.1</string>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kpi.bsd</key>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/lwp/process.c,v 1.21 2004/02/03 06:23:38 shadow Exp $");
+ ("$Header: /cvs/openafs/src/lwp/process.c,v 1.21.2.2 2006/03/31 05:53:01 shadow Exp $");
#include <stdio.h>
#include <assert.h>
afs_int32
savecontext(char (*ep) (), struct lwp_context *savearea, char *newsp)
{
-#if defined(AFS_IA64_LINUX20_ENV)
- register unsigned long sp __asm__("r12");
-#elif defined(AFS_AMD64_LINUX24_ENV)
- register unsigned long sp __asm__("sp");
-#elif defined(AFS_HPUX1122_ENV)
-/* don't need anything special, will use
- * ucontext.uc_stack.ss_sp as it matches r12.
- * This should also work for Linux,
- * but dont have system to test DEE
- */
-#else
-#error "You need to update stack pointer register for this platform"
+#if defined(AFS_LINUX20_ENV)
+ /* getcontext does not export stack info */
+ int stackvar;
#endif
PRE_Block = 1;
savearea->state = 0;
getcontext(&savearea->ucontext);
-#if defined(AFS_HPUX1122_ENV)
- savearea->topstack = savearea->ucontext.uc_stack.ss_sp;
+#if defined(AFS_LINUX20_ENV)
+ savearea->topstack = &stackvar;
#else
- savearea->topstack = sp;
+ savearea->topstack = savearea->ucontext.uc_stack.ss_sp;
#endif
switch (savearea->state) {
case 0:
# else
# define LWP_SP JB_SP
# endif
-#elif defined(AFS_HPUX_ENV)
+#elif defined(AFS_HPUX_ENV) || defined(AFS_PARISC_LINUX24_ENV)
#define LWP_SP 1
#elif defined(AFS_LINUX20_ENV)
#if defined(AFS_PPC_LINUX20_ENV) || defined(AFS_PPC64_LINUX20_ENV)
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/lwp/test/selsubs.c,v 1.8 2003/07/15 23:15:47 shadow Exp $");
+ ("$Header: /cvs/openafs/src/lwp/test/selsubs.c,v 1.8.2.1 2006/03/20 13:41:32 jaltman Exp $");
#include "lwp.h"
struct timeval now;
struct timezone tz;
struct tm *ltime;
+ time_t tt;
int code;
PROCESS pid;
extern char *program;
code = gettimeofday(&now, &tz);
assert(code == 0);
- ltime = localtime((time_t *) & now.tv_sec);
+ tt = now.tv_sec;
+ ltime = localtime(&tt);
LWP_CurrentProcess(&pid);
fprintf(stderr, "%s 0x%x %02d:%02d:%02d.%d: ", program ? program : "",
--- /dev/null
+>grand.central.org #GCO Public CellServDB 15 Oct 2005
+18.7.14.88 #grand-opening.mit.edu
+128.2.191.224 #penn.central.org
+130.237.48.87 #andrew.e.kth.se
+>wu-wien.ac.at #University of Economics, Vienna, Austria
+137.208.3.33 #afsdb1.wu-wien.ac.at
+137.208.8.12 #caesar.wu-wien.ac.at
+137.208.127.33 #buddy.wu-wien.ac.at
+>hephy.at #hephy-vienna
+193.170.243.10 #mowgli.oeaw.ac.at
+193.170.243.12 #baloo.oeaw.ac.at
+193.170.243.14 #akela.oeaw.ac.at
+>itp.tugraz.at #Institute for Theoretical Physics, TU Graz, Austria
+129.27.157.6 #fubphsv2.tu-graz.ac.at
+129.27.161.7 #faepsv01.tu-graz.ac.at
+129.27.161.15 #faepsv02.tu-graz.ac.at
+>cern.ch #European Laboratory for Particle Physics, Geneva
+137.138.128.148 #afsdb1.cern.ch
+137.138.246.50 #afsdb3.cern.ch
+137.138.246.51 #afsdb2.cern.ch
+>ams.cern.ch #AMS Experiment
+137.138.206.77 #pcamsf2.cern.ch
+137.138.206.123 #pcamsf4.cern.ch
+>epfl.ch #Swiss Federal Institute of Technology at Lausanne
+128.178.2.6 #kd1.epfl.ch
+128.178.2.7 #kd2.epfl.ch
+128.178.2.8 #kd3.epfl.ch
+>ethz.ch #Swiss Federal Inst. of Tech. - Zurich, Switzerland
+129.132.97.19 #amalthea.ethz.ch
+129.132.97.27 #nethzafs-001.ethz.ch
+129.132.115.3 #himalia.ethz.ch
+129.132.115.37 #nethzafs-005.ethz.ch
+129.132.115.38 #nethzafs-006.ethz.ch
+>psi.ch #Paul Scherrer Institut - Villigen, Switzerland
+129.129.190.140 #afs00.psi.ch
+129.129.190.141 #afs01.psi.ch
+129.129.190.142 #afs02.psi.ch
+>extundo.com #Simon Josefsson's cell
+195.42.214.241 #slipsten.extundo.com
+>mekinok.com #Mekinok, Inc.
+4.36.43.98 #loggerhead.mekinok.com
+>membrain.com #membrain.com
+66.93.118.125 #stormy
+130.85.24.11 #weasel
+130.85.24.13 #straykitten
+>midnightlinux.com #Midnight Linux, Pittsburgh PA
+208.10.142.82 #outpost.midnightlinux.com
+>setfilepointer.com #SetFilePointer.com
+63.224.10.2 #hamlet.SetFilePointer.com
+63.224.10.4 #troilus.SetFilePointer.com
+>sodre.cx #Sodre.cx
+128.8.140.165 #greed.sodre.cx
+>desy.de #Deutsches Elektronen-Synchrotron
+131.169.40.62 #vayu.desy.de
+131.169.244.60 #solar00.desy.de
+>gppc.de #GPP Chemnitz mbH
+213.187.92.33 #gpp1.gppc.de
+213.187.92.34 #paulchen.gppc.de
+213.187.92.35 #lotus.gppc.de
+>ifh.de #DESY Zeuthen
+141.34.22.10 #romulus.ifh.de
+141.34.22.11 #remus.ifh.de
+141.34.22.29 #hekate.ifh.de
+>lrz-muenchen.de #Leibniz Computing Centre, Germany
+129.187.10.36 #afs1.lrz-muenchen.de
+129.187.10.56 #afs3.lrz-muenchen.de
+129.187.10.57 #afs2.lrz-muenchen.de
+>ipp-garching.mpg.de #Institut fuer Plasmaphysik
+130.183.9.5 #afs-db1.rzg.mpg.de
+130.183.100.10 #afs-db2.aug.ipp-garching.mpg.de
+130.183.100.23 #afs-db3.aug.ipp-garching.mpg.de
+>mpe.mpg.de #MPE cell
+130.183.130.7 #irafs1.mpe-garching.mpg.de
+130.183.134.20 #irafs2.mpe-garching.mpg.de
+>i1.informatik.rwth-aachen.de #Informatik I, RWTH Aachen
+137.226.244.79 #remus.informatik.rwth-aachen.de
+>tu-bs.de #Technical University of Braunschweig, Germany
+134.169.1.1 #rzafs1.rz.tu-bs.de
+134.169.1.5 #rzafs2.rz.tu-bs.de
+134.169.1.6 #rzafs3.rz.tu-bs.de
+>tu-chemnitz.de #Technische Universitaet Chemnitz, Germany
+134.109.2.1 #zuse.hrz.tu-chemnitz.de
+134.109.2.15 #phoenix.hrz.tu-chemnitz.de
+134.109.200.7 #aetius.hrz.tu-chemnitz.de
+>e18.ph.tum.de #Experimental Physics, TU Munich, Germany
+129.187.154.223 #hamlet.e18.physik.tu-muenchen.de
+>uni-bonn.de #University of Bonn, Computing Center
+131.220.14.198 #work15-eth.rhrz.uni-bonn.de
+131.220.14.205 #node05.rhrz.uni-bonn.de
+131.220.15.197 #afs-db1.rhrz.uni-bonn.de
+>atlass01.physik.uni-bonn.de #Bonn ATLAS
+131.220.165.43 #atlass01.physik.uni-bonn.de
+>uni-freiburg.de #Albert-Ludwigs-Universitat Freiburg
+132.230.6.235 #sv6.ruf.uni-freiburg.de
+132.230.6.236 #sv7.ruf.uni-freiburg.de
+132.230.6.237 #sv8.ruf.uni-freiburg.de
+>physik.uni-freiburg.de #institute of physics, university Freiburg, Germany
+132.230.77.16 #hepafs.physik.uni-freiburg.de
+>urz.uni-heidelberg.de #Uni Heidelberg (Rechenzentrum)
+129.206.119.10 #afsdb.urz.uni-heidelberg.de
+129.206.119.16 #afsdb1.urz.uni-heidelberg.de
+129.206.119.17 #afsdb2.urz.uni-heidelberg.de
+>uni-hohenheim.de #University of Hohenheim
+144.41.2.2 #rs13.serv.uni-hohenheim.de
+144.41.2.3 #rs14.serv.uni-hohenheim.de
+144.41.2.4 #rs15.serv.uni-hohenheim.de
+>rz.uni-jena.de #Rechenzentrum University of Jena, Germany
+141.35.2.160 #lc00.rz.uni-jena.de
+141.35.7.9 #fsuj01.rz.uni-jena.de
+141.35.7.10 #zaphod.rz.uni-jena
+>meteo.uni-koeln.de #Univ. of Cologne - Inst. for Geophysics & Meteorology
+134.95.144.22 #afs1.meteo.uni-koeln.de
+134.95.144.24 #afs2.meteo.uni-koeln.de
+>rrz.uni-koeln.de #University of Cologne - Reg Comp Center
+134.95.19.3 #afsdb1.rrz.uni-koeln.de
+134.95.19.30 #fileserv3.rrz.uni-koeln.de
+134.95.67.97 #afs.thp.uni-koeln.de
+134.95.140.190 #rzkbserv.rrz.uni-koeln.de
+>physik.uni-mainz.de #institute of physics, university Mainz, Germany
+134.93.130.93 #hardy.physik.uni-mainz.de
+>uni-mannheim.de #Uni Mannheim (Rechenzentrum)
+134.155.97.204 #afsdb1.uni-mannheim.de
+134.155.97.205 #afsdb2.uni-mannheim.de
+134.155.97.206 #afsdb3.uni-mannheim.de
+>uni-paderborn.de #University of Paderborn, Germany
+131.234.137.10 #afsdb1.uni-paderborn.de
+131.234.137.11 #afsdb2.uni-paderborn.de
+131.234.137.12 #afsdb3.uni-paderborn.de
+>physik.uni-wuppertal.de #Physics department of Bergische Universität Wuppertal
+132.195.104.3 #afs1.physik.uni-wuppertal.de
+132.195.104.230 #afs2.physik.uni-wuppertal.de
+>s-et.aau.dk #Aalborg Univ., The Student Society, Denmark
+130.225.196.22 #afs.s-et.aau.dk
+>ies.auc.dk #Aalborg Univ., Inst. of Electronic Systems, Denmark
+130.225.51.73 #afsdb1.kom.auc.dk
+130.225.51.74 #afsdb2.kom.auc.dk
+130.225.51.85 #afsdb3.kom.auc.dk
+>asu.edu #Arizona State University
+129.219.10.69 #authen2.asu.edu
+129.219.10.70 #authen1.asu.edu
+129.219.10.72 #authen3.asu.edu
+129.219.100.16 #authen4.asu.edu
+>hep.caltech.edu #CalTech High Energy Physics
+131.215.126.150 #afs.hep.caltech.edu
+>clarkson.edu #Clarkson University, Potsdam, New York USA
+128.153.1.111 #arthur.clarkson.edu
+128.153.9.111 #lancelot.clarkson.edu
+128.153.17.111 #uther.clarkson.edu
+>andrew.cmu.edu #Carnegie Mellon University - Computing Services Cell
+128.2.10.2 #vice2.fs.andrew.cmu.edu
+128.2.10.7 #vice7.fs.andrew.cmu.edu
+128.2.10.11 #vice11.fs.andrew.cmu.edu
+128.2.10.28 #vice28.fs.andrew.cmu.edu
+128.2.32.44 #new-vice12.fs.andrew.cmu.edu
+>club.cc.cmu.edu #Carnegie Mellon University Computer Club
+128.237.157.11 #sodium.club.cc.cmu.edu
+128.237.157.13 #potassium.club.cc.cmu.edu
+>chem.cmu.edu #Carnegie Mellon University - Chemistry Dept.
+128.2.40.134 #afs.chem.cmu.edu
+128.2.40.140 #afs2.chem.cmu.edu
+>cs.cmu.edu #Carnegie Mellon University - School of Comp. Sci.
+128.2.194.178 #cherry.srv.cs.cmu.edu
+128.2.194.179 #pumpkin.srv.cs.cmu.edu
+128.2.194.180 #strawberry.srv.cs.cmu.edu
+>ece.cmu.edu #Carnegie Mellon University - Elec. Comp. Eng. Dept.
+128.2.129.7 #porok.ece.cmu.edu
+128.2.129.8 #vicio.ece.cmu.edu
+128.2.129.9 #e-xing.ece.cmu.edu
+>scotch.ece.cmu.edu #CMU ECE CALCM research group
+128.2.134.82 #lagavulin.ece.cmu.edu
+>qatar.cmu.edu #Carnegie Mellon University - Qatar Campus Cell
+204.194.25.7 #afs1.qatar.cmu.edu
+204.194.25.8 #afs2.qatar.cmu.edu
+>sbp.ri.cmu.edu #Carnegie Mellon University - Sensor Based Planning Lab
+128.2.56.129 #nihao.sbp.ri.cmu.edu
+128.2.56.136 #youtheman.sbp.ri.cmu.edu
+>msc.cornell.edu #Cornell University Materials Science Center
+128.84.231.242 #miranda.ccmr.cornell.edu
+128.84.241.35 #co.ccmr.cornell.edu
+128.84.249.78 #dax.ccmr.cornell.edu
+>dbic.dartmouth.edu #Dartmouth Brain Imaging Center
+129.170.30.143 #dbicafs1.dartmouth.edu
+129.170.30.144 #dbicafs2.dartmouth.edu
+129.170.30.145 #dbicafs3.dartmouth.edu
+>northstar.dartmouth.edu #Dartmouth College Research Computing
+129.170.16.22 #halley.dartmouth.edu
+129.170.16.42 #oort.dartmouth.edu
+129.170.16.43 #cygnusx1.dartmouth.edu
+>eecs.harvard.edu #Harvard - EECS
+140.247.60.61 #zermelo.eecs.harvard.edu
+140.247.60.83 #corfu.eecs.harvard.edu
+>iastate.edu #Iowa State University
+129.186.1.243 #afsdb-1.iastate.edu
+129.186.6.243 #afsdb-2.iastate.edu
+129.186.142.243 #afsdb-3.iastate.edu
+>athena.mit.edu #MIT/Athena cell
+18.7.1.66 #paris.mit.edu.
+18.7.1.74 #chimera.mit.edu.
+18.158.0.37 #prill.mit.edu.
+>dev.mit.edu #MIT/IS Development cell
+18.7.1.70 #wham.mit.edu.
+18.7.15.89 #rattle.mit.edu.
+18.7.15.93 #hum.mit.edu.
+>net.mit.edu #MIT/Network Group cell
+18.7.7.73 #gracie.mit.edu
+18.7.21.95 #george.mit.edu
+>sipb.mit.edu #MIT/SIPB cell
+18.181.0.19 #reynelda.mit.edu.
+18.181.0.22 #rosebud.mit.edu.
+18.181.0.23 #ronald-ann.mit.edu.
+>soap.mit.edu #MIT School Of Architecture & Planning
+18.89.1.204 #crypt.mit.edu
+18.89.1.209 #grotto.mit.edu
+18.89.2.156 #ac.mit.edu
+>msu.edu #Michigan State University Main Cell
+35.9.7.10 #afsdb0.cl.msu.edu
+>nd.edu #University of Notre Dame
+129.74.223.17 #john.helios.nd.edu
+129.74.223.33 #lizardo.helios.nd.edu
+129.74.223.65 #buckaroo.helios.nd.edu
+>pitt.edu #University of Pittsburgh
+136.142.8.15 #afs09.srv.cis.pitt.edu
+136.142.8.20 #afs10.srv.cis.pitt.edu
+136.142.8.21 #afs11.srv.cis.pitt.edu
+>cs.pitt.edu #University of Pittsburgh - Computer Science
+130.49.220.11 #afs01.cs.pitt.edu
+130.49.220.12 #afs02.cs.pitt.edu
+130.49.220.13 #afs03.cs.pitt.edu
+>psc.edu #PSC (Pittsburgh Supercomputing Center)
+128.182.59.182 #shaggy.psc.edu
+128.182.66.184 #velma.psc.edu
+128.182.66.185 #daphne.psc.edu
+>scoobydoo.psc.edu #PSC Test Cell
+128.182.59.181 #scooby.psc.edu
+>cede.psu.edu #Penn State - Center for Engr. Design & Entrepeneurship
+146.186.218.10 #greenly.cede.psu.edu
+146.186.218.60 #b50.cede.psu.edu
+146.186.218.246 #stalin.cede.psu.edu
+>rose-hulman.edu #Rose-Hulman Institute of Technology
+137.112.7.11 #afs1.rose-hulman.edu
+137.112.7.12 #afs2.rose-hulman.edu
+137.112.7.13 #afs3.rose-hulman.edu
+>cs.rose-hulman.edu #Rose-Hulman CS Department
+137.112.40.10 #galaxy.cs.rose-hulman.edu
+>rpi.edu #Rensselaer Polytechnic Institute
+128.113.22.11 #saul.server.rpi.edu
+128.113.22.12 #joab.server.rpi.edu
+128.113.22.13 #korah.server.rpi.edu
+128.113.22.14 #achan.server.rpi.edu
+>hep.sc.edu #University of South Carolina, Dept. of Physics
+129.252.78.77 #cpeven.physics.sc.edu
+>cs.stanford.edu #Stanford University Computer Science Department
+171.64.64.10 #cs-afs-1.Stanford.EDU
+171.64.64.66 #cs-afs-2.stanford.edu
+171.64.64.69 #cs-afs-3.stanford.edu
+>ir.stanford.edu #Stanford University
+171.64.7.222 #afsdb1.stanford.edu
+171.64.7.234 #afsdb2.stanford.edu
+171.64.7.246 #afsdb3.stanford.edu
+>slac.stanford.edu #Stanford Linear Accelerator Center
+134.79.18.25 #afsdb1.slac.stanford.edu
+134.79.18.26 #afsdb2.slac.stanford.edu
+134.79.18.27 #afsdb3.slac.stanford.edu
+>cats.ucsc.edu #UC Santa Cruz, Comm. and Tech. Services, California U.S.A
+128.114.129.14 #elan.ucsc.edu
+128.114.129.15 #ichabod.ucsc.edu
+128.114.129.18 #maneki.ucsc.edu
+>acm.uiuc.edu #ACM at the University of Illinois
+128.174.251.8 #alnitak.acm.uiuc.edu
+128.174.251.9 #alnilam.acm.uiuc.edu
+128.174.251.10 #mintaka.acm.uiuc.edu
+>ncsa.uiuc.edu #University of Illinois
+141.142.3.5 #congo.ncsa.uiuc.edu
+141.142.3.8 #nile.ncsa.uiuc.edu
+141.142.3.9 #kaskaskia.ncsa.uiuc.edu
+>umbc.edu #University of Maryland, Baltimore County
+130.85.24.23 #db2.afs.umbc.edu
+130.85.24.87 #db3.afs.umbc.edu
+130.85.24.101 #db1.afs.umbc.edu
+>glue.umd.edu #University of Maryland - Project Glue
+128.8.70.11 #olmec.umd.edu
+128.8.236.4 #egypt.umd.edu
+128.8.236.230 #babylon.umd.edu
+>wam.umd.edu #University of Maryland Network WAM Project
+128.8.70.9 #csc-srv.wam.umd.edu
+128.8.236.5 #avw-srv.wam.umd.edu
+128.8.236.231 #ptx-srv.wam.umd.edu
+>umich.edu #University of Michigan - Campus
+141.211.1.32 #fear.ifs.umich.edu
+141.211.1.33 #surprise.ifs.umich.edu
+141.211.1.34 #ruthless.ifs.umich.edu
+>atlas.umich.edu #ATLAS group cell in physics at University of Michigan
+141.211.43.102 #linat02.grid.umich.edu
+141.211.43.106 #linat06.grid.umich.edu
+141.211.43.109 #atgrid.grid.umich.edu
+>citi.umich.edu #Center for Information Technology Integration
+141.211.133.5 #babylon.citi.umich.edu
+>lsa.umich.edu #University of Michigan - College of LS&A
+141.211.211.53 #gerow.lsa.umich.edu
+141.211.211.72 #collines.lsa.umich.edu
+141.211.211.153 #hodges.lsa.umich.edu
+>umr.edu #University of Missouri - Rolla
+131.151.1.59 #afsdb1.umr.edu
+131.151.1.70 #afsdb3.umr.edu
+131.151.1.146 #afsdb2.umr.edu
+>physics.unc.edu #Univ. of NC at Chapel Hill, Dept. of Physics
+152.2.4.1 #who.physics.unc.edu
+152.2.4.3 #what.physics.unc.edu
+152.2.4.5 #when.physics.unc.edu
+>uncc.edu #University of NC at Charlotte Mosaic AFS Cell
+152.15.10.70 #as-sm1.uncc.edu
+152.15.13.7 #as-sm2.uncc.edu
+152.15.30.27 #fs-kenn3.uncc.edu
+>eng.utah.edu #University of Utah - Engineering
+155.99.222.9 #lenny.eng.utah.edu
+155.99.222.10 #carl.eng.utah.edu
+>cs.uwm.edu #University of Wisconsin--Milwaukee
+129.89.38.124 #solomons.cs.uwm.edu
+>cs.wisc.edu #Univ. of Wisconsin-Madison, Computer Sciences Dept.
+128.105.132.14 #timon.cs.wisc.edu
+128.105.132.15 #pumbaa.cs.wisc.edu
+128.105.132.16 #zazu.cs.wisc.edu
+>engr.wisc.edu #University of Wisconsin-Madison, College of Engineering
+144.92.13.14 #larry.cae.wisc.edu
+144.92.13.15 #curly.cae.wisc.edu
+144.92.13.16 #moe.cae.wisc.edu
+>hep.wisc.edu #University of Wisconsin -- High Energy Physics
+128.104.28.219 #anise.hep.wisc.edu
+>physics.wisc.edu #Univ. of Wisconsin-Madison, Physics Department
+128.104.160.13 #kendra.physics.wisc.edu
+128.104.160.14 #fray.physics.wisc.edu
+128.104.160.15 #buffy.physics.wisc.edu
+>ciemat.es #Ciemat, Madrid, Spain
+130.206.11.42 #afsdb1.ciemat.es
+130.206.11.217 #afsdb2.ciemat.es
+130.206.11.247 #afsdb3.ciemat.es
+>ifca.unican.es #Instituto de Fisica de Cantabria (IFCA), Santander, Spain
+193.144.209.20 #gridwall.ifca.unican.es
+>ific.uv.es #Instituto de Fisica Corpuscular, Valencia, Spain
+147.156.163.11 #alpha.ific.uv.es
+>biocenter.helsinki.fi #University of Helsinki, Institute of Biotechnology
+128.214.58.174 #afsdb1.biocenter.helsinki.fi
+128.214.88.114 #afsdb2.biocenter.helsinki.fi
+>dapnia.saclay.cea.fr #CEA DAPNIA
+132.166.32.7 #dphrsg.saclay.cea.fr
+132.166.32.12 #dphrsl.saclay.cea.fr
+>in2p3.fr #IN2P3 production cell
+134.158.232.11 #ccafsdb1.in2p3.fr
+134.158.232.12 #ccafsdb2.in2p3.fr
+134.158.232.13 #ccafsdb3.in2p3.fr
+>anl.gov #Argonne National Laboratory
+146.137.96.33 #arteus.ctd.anl.gov
+146.137.162.88 #agamemnon.ctd.anl.gov
+146.137.194.80 #antenor.ctd.anl.gov
+>rhic.bnl.gov #Relativistic Heavy Ion Collider
+130.199.6.51 #rafs03.rcf.bnl.gov
+130.199.6.52 #rafs02.rcf.bnl.gov
+130.199.6.69 #rafs01.rcf.bnl.gov
+>usatlas.bnl.gov #US Atlas Tier 1 Facility at BNL
+130.199.48.32 #aafs01.usatlas.bnl.gov
+130.199.48.33 #aafs02.usatlas.bnl.gov
+130.199.48.34 #aafs03.usatlas.bnl.gov
+>fnal.gov #Fermi National Acclerator Laboratory
+131.225.68.1 #fsus01.fnal.gov
+131.225.68.4 #fsus03.fnal.gov
+131.225.68.14 #fsus04.fnal.gov
+>ic-afs.arc.nasa.gov #Code IC, Ames Research Center
+128.102.105.62 #udanax.arc.nasa.gov
+>jpl.nasa.gov #Jet Propulsion Laboratory
+137.78.160.21 #afsdb08.jpl.nasa.gov
+137.78.160.22 #afsdb09.jpl.nasa.gov
+137.78.160.23 #afsdb10.jpl.nasa.gov
+>nersc.gov #National Energy Research Supercomputer Center
+128.55.128.250 #mars.nersc.gov
+128.55.128.252 #alfred.nersc.gov
+128.55.128.254 #lurch.nersc.gov
+>bme.hu #Budapest University of Technology and Economics
+152.66.241.6 #afs.iit.bme.hu
+>kfki.hu #Research Institute for Nuclear and Particle Physics - Budapest,H
+148.6.8.14 #afs.kfki.hu
+>caspur.it #CASPUR Inter-University Computing Consortium, Rome
+193.204.5.45 #pomodoro.caspur.it
+193.204.5.46 #banana.caspur.it
+193.204.5.50 #maslo.caspur.it
+>enea.it #ENEA New Tech. Energy & Environment Agency, Italy
+192.107.54.5 #aixfs.frascati.enea.it
+192.107.54.11 #rs2ced.frascati.enea.it
+192.107.54.12 #43p.frascati.enea.it
+192.107.61.235 #serverinfo02.bologna.enea.it
+192.107.71.6 #glauco.casaccia.enea.it
+192.107.96.233 #riscdb.trisaia.enea.it
+>fusione.it #Assoz. FUSIONE/Euratom, ENEA, Frascati-Italy
+192.107.90.2 #fusafs1.frascati.enea.it
+192.107.90.3 #fusafs2.frascati.enea.it
+192.107.90.4 #fusafs3.frascati.enea.it
+>icemb.it #ICEMB, Universita' La Sapienza - Rome - Italy
+193.204.6.130 #icembfs.caspur.it
+>infn.it #Istituto Nazionale di Fisica Nucleare (INFN), Italia
+131.154.1.7 #afscnaf.infn.it
+141.108.26.75 #afsrm1.roma1.infn.it
+192.84.134.75 #afsna.na.infn.it
+>ba.infn.it #INFN, Sezione di Bari
+193.206.185.235 #baafsserver.ba.infn.it
+>kloe.infn.it #INFN, KLOE experiment at Laboratori di Frascati
+192.135.25.111 #kloeafs1.lnf.infn.it
+192.135.25.112 #kloeafs2.lnf.infn.it
+>le.infn.it #INFN, Sezione di Lecce
+192.84.152.40 #afs01.le.infn.it
+192.84.152.148 #afs02.le.infn.it
+>lnf.infn.it #INFN, Laboratori Nazionali di Frascati
+193.206.84.121 #afs1.lnf.infn.it
+193.206.84.122 #afs2.lnf.infn.it
+193.206.84.123 #afs3.lnf.infn.it
+>lngs.infn.it #INFN, Laboratori Nazionali di Gran Sasso
+192.84.135.21 #rsgs05.lngs.infn.it
+>pi.infn.it #INFN, Sezione di Pisa
+131.114.134.26 #unknownhost.pi.infn.it
+192.84.133.50 #aix1.pi.infn.it
+>psm.it #Progetto San Marco, Universita' di Roma-1
+151.100.1.65 #atlante.psm.uniroma1.it
+>tgrid.it #CASPUR-CILEA-CINECA Grid Cell
+193.204.5.33 #cccgrid.caspur.it
+>ictp.trieste.it #The Abdus Salam International Centre for Theoretical Physics (IC
+140.105.16.8 #fs1.ictp.trieste.it
+140.105.16.9 #fs2.ictp.trieste.it
+>math.unifi.it #math.unifi.it
+150.217.34.182 #xeno.math.unifi.it
+>ing.uniroma1.it #Universita' La Sapienza, Fac. Ingeneria
+151.100.85.253 #alfa.ing.uniroma1.it
+>dia.uniroma3.it #University Roma Tre - DIA
+193.204.161.79 #plm.dia.uniroma3.it
+193.204.161.118 #afs.dia.uniroma3.it
+>vn.uniroma3.it #University of Rome 3, Area Vasca Navale
+193.204.161.136 #alfa.dia.uniroma3.it
+193.204.161.137 #beta.dia.uniroma3.it
+193.204.161.138 #gamma.dia.uniroma3.it
+>italia #Italian public AFS cell
+193.204.5.9 #afs.caspur.it
+>cmf.nrl.navy.mil #Naval Research Lab - CCS
+134.207.10.68 #picard.cmf.nrl.navy.mil
+134.207.10.69 #riker.cmf.nrl.navy.mil
+134.207.10.70 #kirk.cmf.nrl.navy.mil
+>lcp.nrl.navy.mil #Naval Research Lab - Lab for Computational Physics
+132.250.114.2 #afs1.lcp.nrl.navy.mil
+132.250.114.4 #afs2.lcp.nrl.navy.mil
+132.250.114.6 #afs3.lcp.nrl.navy.mil
+>es.net #Energy Sciences Net
+198.128.3.21 #fs1.es.net
+198.128.3.22 #fs2.es.net
+198.128.3.23 #fs3.es.net
+>laroia.net #Laroia Networks
+66.66.102.254 #supercore.laroia.net
+>sinenomine.net #Sine Nomine Associates
+66.92.236.139 #afs.sinenomine.net
+>slackers.net #The Slackers' Network
+63.201.48.27 #alexandria.slackers.net
+>tproa.net #The People's Republic of Ames
+209.234.76.70 #service-3.tproa.net
+>nikhef.nl #The Dutch National Institute for High Energy Physics
+192.16.185.26 #afs1.nikhef.nl
+192.16.185.27 #afs2.nikhef.nl
+>1ts.org #1TS.ORG, Cambridge, MA
+4.36.43.102 #dol-guldur.1ts.org
+69.25.196.51 #pancake.1ts.org
+>bazquux.org #Baz Quux Organization
+66.207.142.196 #baxquux.org
+>coed.org #Adam Pennington's Cell
+66.93.61.184 #vice1.coed.org
+128.237.157.35 #vice3.coed.org
+>dementia.org #Dementia Unlimited
+128.2.12.45 #alycia.dementia.org
+128.2.120.216 #meredith.dementia.org
+>hackish.org #Hackish.org
+24.167.65.213 #avatar.sys.hackish.org
+128.2.120.138 #kurma.sys.hackish.org
+>idahofuturetruck.org #University of Idaho hybrid vehicle development
+12.18.238.210 #dsle210.fsr.net
+>nimlabs.org #Nimlabs, Ink. Cell.
+18.238.1.103 #olfin.nimlabs.org
+18.238.1.105 #caerbanog.nimlabs.org
+>nomh.org #nomh.org
+204.29.154.12 #iota.nomh.org
+204.29.154.32 #adversity.xi.nomh.org
+>oc7.org #The OC7 Project
+128.2.122.140 #knife.oc7.org
+207.22.77.170 #spoon.oc7.org
+>openafs.org #OpenAFS Project
+18.7.14.88 #grand-opening.mit.edu
+128.2.191.224 #penn.central.org
+130.237.48.87 #andrew.e.kth.se
+>e.kth.se #Royal Institute of Technology, Elektro
+130.237.32.145 #sonen.e.kth.se
+130.237.48.7 #anden.e.kth.se
+130.237.48.244 #fadern.e.kth.se
+>hallf.kth.se #Royal Institute of Technology, HALLF
+130.237.24.141 #rasmus13.hallf.kth.se
+130.237.24.152 #rasmus3.hallf.kth.se
+130.237.24.177 #rasmus29.hallf.kth.se
+>isk.kth.se #Royal Institute of Technology, ISK
+130.237.202.12 #afsdb2.isk.kth.se
+130.237.206.13 #afsdb1.isk.kth.se
+130.237.209.141 #afsdb3.isk.kth.se
+>it.kth.se #Royal Institute of Technology, IT
+130.237.212.15 #ptah.it.kth.se
+130.237.212.16 #toth.it.kth.se
+130.237.215.7 #isis.it.kth.se
+>md.kth.se #Royal Institute of Technology, MMK
+130.237.57.68 #trinity.md.kth.se
+130.237.57.72 #morpheus.md.kth.se
+130.237.67.230 #neo.speech.kth.se
+>mech.kth.se #Royal Institute of Technology, MECH
+130.237.233.142 #matterhorn.mech.kth.se
+130.237.233.143 #castor.mech.kth.se
+130.237.233.144 #pollux.mech.kth.se
+>nada.kth.se #Royal Institute of Technology, NADA
+130.237.222.20 #kosmos.nada.kth.se
+130.237.223.12 #sputnik.nada.kth.se
+130.237.224.78 #mir.nada.kth.se
+130.237.227.23 #gagarin.nada.kth.se
+130.237.228.28 #laika.nada.kth.se
+>pdc.kth.se #Royal Institute of Technology, PDC
+130.237.232.29 #crab.pdc.kth.se
+130.237.232.112 #anna.pdc.kth.se
+130.237.232.114 #hokkigai.pdc.kth.se
+>stacken.kth.se #Stacken Computer Club
+130.237.234.3 #milko.stacken.kth.se
+130.237.234.43 #hot.stacken.kth.se
+130.237.237.230 #fishburger.stacken.kth.se
+>syd.kth.se #Royal Institute of Technology, KTH-Syd
+130.237.83.23 #afs.haninge.kth.se
+>physto.se #Physics department Stockholm University
+130.237.205.36 #sysafs1.physto.se
+130.237.205.72 #sysafs2.physto.se
+>sanchin.se #Sanchin Consulting AB, Sweden
+192.195.148.10 #sesan.sanchin.se
+>su.se #Stockholm University
+130.237.162.81 #afsdb1.su.se
+130.237.162.82 #afsdb2.su.se
+130.237.162.230 #afsdb3.su.se
+>f9.ijs.si #F9, Jozef Stefan Institue
+194.249.156.1 #brenta.ijs.si
+>p-ng.si #Nova Gorica Polytechnic
+193.2.120.2 #solkan.p-ng.si
+>phy.bris.ac.uk #Bristol University - phyics
+137.222.58.9 #afs1.phy.bris.ac.uk
+>hep.man.ac.uk #Manchester HEP
+194.36.2.3 #afs1.hep.man.ac.uk
+194.36.2.4 #afs2.hep.man.ac.uk
+194.36.2.5 #afs3.hep.man.ac.uk
+>rl.ac.uk #Rutherford Appleton Lab, England
+130.246.183.164 #wallace.cc.rl.ac.uk
+openafs-fileserver: non-standard-dir-perm
+openafs-fileserver: non-standard-dir-perm
+openafs-fileserver: non-standard-dir-perm
+openafs-fileserver: non-standard-dir-perm
+openafs-fileserver: non-standard-dir-perm
+openafs-fileserver: non-standard-dir-perm
+openafs-fileserver: non-standard-dir-perm
+openafs-fileserver: non-standard-dir-perm
}
1;
+openafs-dbserver: non-standard-dir-perm
+openafs-dbserver: non-standard-dir-perm
+openafs-dbserver: non-standard-dir-perm
+openafs-dbserver: non-standard-dir-perm
+openafs-dbserver: non-standard-dir-perm
+openafs-dbserver: non-standard-dir-perm
+openafs-dbserver: non-standard-dir-perm
+openafs-dbserver: non-standard-dir-perm
-openafs for Debian
-----------------------
+ OpenAFS for Debian
-* No manual pages are included. I need to find out if versions exist
- that are OK for copyright reasons.
+Introduction
-* Documentation can be found at http://www.openafs.org. If want to
-set up a new cell, read the docs there and then look at the example
-session in configuration-transcript.txt.gz in this directory. You
-should also read README.servers. The procedure outlined in these two
-files is much simpler and more secure than the one in the Openafs
-documentation, but the Openafs documentation provides useful
-background.
+ For an OpenAFS client system, install openafs-client and a kernel
+ module. See README.modules for information on how to build the kernel
+ module for your system. Then, read /etc/openafs/afs.conf to understand
+ the client configuration options. The openafs-client package will
+ attempt to guess at a good cache configuration based on the size of your
+ cache, but you may want to tune it further. There are also other
+ options configured in that file you may want to consider.
-* AFS users may be confused by the directory layout. The files that
- normally go in /usr/vice/etc go in /etc/openafs. The cache should
- be mounted on /var/cache/openafs.
+ The AFS client cache must be on an ext2 or ext3 partition. Other file
+ systems often do not support the semantics required by the AFS kernel
+ module and will cause afsd to abort (to avoid kernel panics). In
+ particular, XFS, ReiserFS, and tmpfs will NOT work. If you are using
+ one of those file systems and don't have a spare partition for a
+ separate file system for the cache, you need to use the -memcache option
+ to afsd (although this is not always stable) or create a large file with
+ dd, create an ext2 file system in it with mkfs, and then mount it with
+ mount -o loop for use as a cache partition.
-* The libopenafs-dev package only includes static libraries because
- AFS does not build shared libs.
+ FAM does not work correctly with AFS except for directories that are
+ world-readable since it does not run in the user's security context and
+ therefore doesn't have the user's AFS tokens. If you are using FAM,
+ you'll encounter errors from file managers such as Nautilus that use it
+ if you browse restricted AFS directories. Instead of FAM, install
+ gamin, which runs in the user's security context and works correctly
+ with AFS.
+ For information on how to set up an OpenAFS server, read README.servers.
+ You will want the openafs-fileserver package for a file server and,
+ additionally, the openafs-dbserver package for a database server.
+Documentation
+ For the complete OpenAFS manual, install openafs-doc. This is the same
+ documentation as found at <http://www.openafs.org/>, and is
+ unfortunately outdated in several respects, but it's the best that we
+ have at present.
- -- Sam Hartman <hartmans@mit.edu>, Fri, 3 Nov 2000 23:41:41 -0500
+ If want to set up a new cell, read README.servers and then look at the
+ example session in configuration-transcript.txt.gz in this directory.
+ The procedure outlined in these two files is much simpler and more
+ secure than the one in the OpenAFS documentation, but the OpenAFS
+ documentation provides useful background.
+
+Changes Relative to Stock OpenAFS
+
+ Long-time AFS users may be confused by the directory layout. The files
+ that normally go in /usr/vice/etc go in /etc/openafs. The cache should
+ be mounted on /var/cache/openafs. The server files have been moved
+ around even more; see README.servers for the details.
+
+ The OpenAFS kernel module is named openafs, not libafs, to better match
+ normal Linux kernel module naming standards. The Debian source package
+ only builds one kernel module that matches the kernel source tree it is
+ built against and does not attempt to build separate SMP and non-SMP
+ modules against the same tree. Doing so does not work on all platforms.
+ To distinguish between an SMP and a non-SMP kernel module package, use
+ --append_to_version; see README.modules for more information.
+
+ The AFS up utility is installed as afs-up, since the standard name is
+ rather generic.
+
+ The libopenafs-dev package only includes static libraries and there are
+ no shared library packages. The shared libraries built by AFS are not
+ compatible with Debian policy. They do not have a stable ABI or an
+ appropriate SONAME.
+
+ kaserver is not included. New AFS cells should use Kerberos v5 rather
+ than the old K4-based kaserver KDC.
+
+ The OpenAFS PAM modules have been built with pthreads rather than the
+ standard LWP AFS libraries for compatibility with a threaded sshd.
+
+PAM Authentication
+
+ Any new OpenAFS cell is strongly encouraged to use Kerberos v5 for
+ authentication. If you want PAM to automatically obtain AFS credentials
+ and you are using Kerberos v5, you will want to install the libpam-krb5
+ and libpam-openafs-session packages and then put something like the
+ following in /etc/pam.d/common-auth:
+
+ auth [success=ok default=1] pam_krb5.so ignore_root
+ auth [default=done] pam_openafs_session.so
+ auth required pam_unix.so nullok_secure try_first_pass
+
+ and something like the following in /etc/pam.d/common-session:
+
+ session optional pam_krb5.so ignore_root
+ session optional pam_openafs_session.so
+ session required pam_unix.so
+
+ You'll probably also want the following in /etc/pam.d/common-account:
+
+ account required pam_krb5.so ignore_root
+ account required pam_unix.so
+
+ There are, of course, many variations depending on what different
+ mechanism you want to use and how you want to handle fallbacks.
+
+ If you are still using Kerberos v4 and the OpenAFS kaserver (or a KDC
+ that understands the same protocol) for authentication, you can instead
+ use the libpam-openafs-kaserver package and a configuration like:
+
+ auth sufficient pam_afs.so ignore_root
+ auth required pam_unix.so nullok_secure try_first_pass
+
+ in /etc/pam.d/common-auth and:
+
+ session optional pam_afs.so
+ session required pam_unix.so
+
+ in /etc/pam.d/common-session. Use pam_afs.krb.so instead of pam_afs.so
+ if you also want the PAM module to acquire a ticket cache for you. If
+ using this configuration with sshd, you may need to disable privilege
+ separation to get everything working properly. I've had mixed results
+ with that. Obviously, converting to Kerberos v5 authentication is
+ strongly preferred.
+
+ If you are using the kaserver as your KDC, you may also want to install
+ the openafs-kpasswd package to get the administrative utilities for
+ managing those Kerberos accounts.
+
+ -- Russ Allbery <rra@debian.org>, Tue Dec 27 15:53:28 2005
- Building Kernel Modules
-----------------------------------------
+ Building Kernel Modules
+Introduction
- The easiest way to get AFS modules is to install prebuilt modules.
-Fore example if you are running kernel 2.2.18 you might try
+ The easiest way to get AFS modules is to install prebuilt modules. For
+ example, if you are running kernel 2.4.27-2-686-smp, you might try:
-apt-get install openafs-modules-2.2.18
+ apt-get install openafs-modules-2.4.27-2-686-smp
-If this doesn't work, then you will need to build your own modules.
-This means having kernel sources available. You should install a
-kernel sources package and untar it in /usr/src. Then, install
-openafs-modules-source.
+ Pre-built modules are not provided with Debian (building and maintaining
+ them in Debian proper poses too many problems), but many organizations
+ that use OpenAFS build their own and provide them locally.
-apt-get install openafs-modules-source
+ If this doesn't work, you will need to build your own modules. There
+ are two methods for doing this.
-Next, unpack openafs-modules-source
+ When following either method, be aware that the Debian package creates a
+ module named openafs, not libafs as is used by upstream. It also
+ prefers not to add the .mp extension for modules built for SMP kernels;
+ the indication of whether the module is for an SMP kernel should go into
+ the package name via something like --append_to_version, not into the
+ file name of the module.
-cd /usr/src
-tar xzf openafs.tar.gz
+module-assistant
-Now, change into your kernel source tree. You should then create a
-.config file; the easiest way to do this is to run make menuconfig or
-to copy in a kernel configuration from the same version of the kernel.
-Debian kernel packages store a copy of their kernel configuration in
-/boot/config.version_number. Finally build the modules
+ This method is the best one to use when using the kernels that come with
+ Debian, since module-assistant knows how to get the right header files
+ to build modules for your currently running kernel.
-make-kpkg configure
-make-kpkg modules_image
+ First, install module-assistant and then prepare the kernel headers and
+ install openafs-modules-source:
-You may need to use the --append_to_version switch to add version suffixes
-like -686 if your modules install into /lib/modules/version-686.
-Ignore any errors about genchanges.sh failing. An openafs-modules deb
-should be created. Use dpkg -i to install this version.
+ apt-get install module-assistant
+ module-assistant prepare openafs-modules
+ (If you want to build modules for a different kernel than your currently
+ running one, pass the -l flag to module-assistant. See the man page.)
+ module-assistant may be able to find the right packages itself or it may
+ tell you to install particular packages. Once you've finished with
+ that, build the module with:
+
+ module-assistant auto-build openafs-modules
+
+ You may prefer to pass module-assistant the -t flag to get more
+ conventional output. If everything works correctly, the openafs-modules
+ deb should be created in /usr/src. You can use dpkg -i to install it.
+
+ module-assistant will take care of naming the openafs-modules package
+ correctly so that it matches the name of the kernel-image package and
+ installs its modules into the correct directory.
+
+make-kpkg
+
+ This method works well when you're also building your own kernel, rather
+ than using the pre-packaged Debian one.
+
+ Install a kernel source package and untar it in /usr/src. Then, install
+ openafs-modules-source.
+
+ apt-get install openafs-modules-source
+
+ Next, unpack openafs-modules-source:
+
+ cd /usr/src
+ tar xzf openafs.tar.gz
+
+ Now, change into your kernel source tree. You should then create a
+ .config file; the easiest way to do this is to run make menuconfig or to
+ copy in a kernel configuration from the same version of the kernel.
+ Debian kernel packages store a copy of their kernel configuration in
+ /boot/config.version_number.
+
+ The kernel configuration needs to be identical to the configuration that
+ produced the kernel that you're using. Ideally, you would build the
+ kernel image you're going to use with make-kpkg kernel_image and install
+ that along with the module image, although as long as the configuration
+ is identical, you may be able to get away with using a pre-built kernel.
+ (A better approach, if you're using pre-built kernels, may be to use
+ module-assistant as described above.)
+
+ Finally, build the modules:
+
+ make-kpkg modules_image
+
+ You may need to use the --append_to_version switch to add version
+ suffixes like -686 or -smp to match your kernel and install the OpenAFS
+ module into a directory like /lib/modules/version-686. Be aware that
+ the Debian OpenAFS packages build either a regular module or an SMP
+ module, not both, so the generated package will only work with a kernel
+ with the same SMP configuration.
+
+ An openafs-modules deb should be created in /usr/src. Use dpkg -i to
+ install this package.
- Setting up a Debian OpenAFS Server
+ Setting up a Debian OpenAFS Server
-These packages include binaries with FHS-compatible path names. Here
-is a map from AFS paths to FHS paths:
+Introduction
-/usr/afs/etc /etc/openafs/server
-/usr/afs/local /etc/openafs/server-local
-/usr/afs/db /var/lib/openafs/db
-/usr/afs/logs /var/log/openafs
-/usr/afs/bin /usr/lib/openafs
+ This document describes how to set up an OpenAFS server using the Debian
+ packages. If you are not already familiar with the basic concepts of
+ OpenAFS, you should review the documentation at:
+ <http://www.openafs.org/doc/index.htm>
-Scripts are provided to configure a single database/file server. The
-afs-newcell script sets up the initial databases and configures
-bosserver. After running this script, get tokens in the cell and run
-the afs-rootvol script to populate the root volume and root.cell. A
-sample transcript of configuring an AFS cell can be found in
-/usr/share/doc/openafs-dbserver/configuration-transcript.txt.gz. This
-transcript assumes you are using MIT Kerberos and the openafs-krb5
-package. Similar steps could be taken with Heimdal.
+ particularly the AFS Administrator's Guide. This documentation is
+ somewhat out of date (it doesn't talk about how to use a Kerberos v5 KDC
+ instead of the AFS kaserver, for example), but it's a good introduction
+ to the basic concepts and servers you will need to run.
-Another issue is upgrades. It is likely that future versions of this
-package will install for example /usr/lib/openafs/fileserver.package
-instead of /usr/lib/openafs/fileserver. The postinst script will
-create links the actual binaries. Upgrades will not replace the old
-binaries, but a script will be provided to roll the links forward to
-the new versions. The intent is that people could install the new
-package on all their servers and then quickly move the links before
-restarting the bosserver.
+ The Debian OpenAFS packages follow the FHS and therefore use different
+ paths than the standard AFS documentation or the paths that experienced
+ AFS administrators may be used to. In the first column below are the
+ traditional paths, and in the second column, the Debian paths:
- Adding Additional Servers
+ /usr/afs/etc /etc/openafs/server
+ /usr/afs/local /etc/openafs/server-local
+ /usr/afs/db /var/lib/openafs/db
+ /usr/afs/logs /var/log/openafs
+ /usr/afs/bin /usr/lib/openafs
+ /usr/vice/etc /etc/openafs
-If you decide one server is not enough, here is roughly what needs to
-happen:
+ The AFS kaserver (a Kerberos v4 KDC) is not packaged for Debian. Any
+ new OpenAFS installation should use Kerberos v5 for authentication in
+ conjunction with either the tools packaged in the openafs-krb5 package
+ or the Heimdal KDC. When setting up a new cell, you should therefore
+ not set up a kaserver as described in the AFS Administrator's Guide, and
+ you will need to follow a slightly different method of setting the cell
+ key.
-1) Copy securely (using scp , encrypted Kerberized rcp or some other
- secure method) /etc/openafs/server to the new server.
+Creating a New Cell
-2) Start a bosserver.
+ For documentation on adding a server to an existing cell, see below.
-3) If the machine is to be a file server, create an fs instance using
- bos create. For file servers this is all you need to do.
+ These instructions assume that you are using MIT Kerberos and the
+ openafs-krb5 package. If you are using Heimdal instead, some of the
+ steps will be slightly different (Heimdal can write the AFS KeyFile
+ directly, for example, so you don't have to use asetkey). The
+ afs-newcell and afs-rootvol scripts are the same, however.
-4) For database servers, you also need to do a bos addhost on all
- servers (including the new server) to add the new server to
- /etc/openafs/server/CellServDB. Then create ptserver and vlserver
- instances.
+ /usr/share/doc/openafs-dbserver/configuration-transcript.txt.gz has a
+ transcript of the results of these directions, which you may want to
+ follow along with as you do this.
+
+ 1. If you do not already have a Kerberos KDC (Key Distribution Center,
+ the daemon that handles Kerberos authentication) configured, do so.
+ You can run the KDC on the same system as your OpenAFS db server,
+ although if you plan on using Kerberos for other things, you may
+ eventually want to use separate systems. If you do not have a
+ Kerberos realm set up already, you can do so in Debian with:
+
+ apt-get install krb5-admin-server
+ krb5_newrealm
+
+ This will install a KDC and kadmind server (the server that handles
+ password changes and account creations) on the local system. Please
+ be aware that the security of everything that uses Kerberos for
+ authentication, including AFS, depends on the security of the KDC.
+
+ The name of your Kerberos realm should, for various reasons, be in
+ all uppercase and be a domain name that you control, although
+ neither is technically required.
+
+ Right now, for the aklog from openafs-krb5 to work, you need to
+ enable krb4 support (either full or nopreauth) and run krb524d.
+ Eventually this will no longer be necessary.
+
+ 2. It is traditional (and recommended) in AFS (and for Kerberos) to
+ give administrators two separate Kerberos principals, one regular
+ principal to use for regular purposes and a separate admin principal
+ to use for privileged actions. This is similar to the distinction
+ between a regular user and the root user in Unix, except that
+ everyone can have their own separate root identity. Kerberos
+ recommends username/admin as the admin principal for username, and
+ this will work for AFS as well.
+
+ If you have not already created such an admin principal for yourself
+ in your Kerberos realm, do so now (using kadmin.local on your KDC,
+ unless you have a local method that you prefer). Also create a
+ regular (non-admin) principal for yourself if you have not already;
+ this is the identity that you'll use for regular operations, like
+ storing files or reading mail. To do this with kadmin.local, run
+ that program and then run the commands:
+
+ addprinc username/admin
+ addprinc username
+
+ at the kadmin prompt. You'll be prompted for passwords for both
+ accounts.
+
+ If the KDC is not on the same system that the OpenAFS db server will
+ be on, you will also need to give your admin principal the rights to
+ download the afs keytab in /etc/krb5kdc/kadm5.acl by adding a lines
+ like:
+
+ username/admin@REALM *
+
+ where REALM is your Kerberos realm and username/admin is the admin
+ principal that you created. That line gives you full admin access
+ to the Kerberos v5 realm. You can be more restrictive if you want;
+ see the kadmind man page for the syntax.
+
+ 3. Install the OpenAFS db server package on an appropriate system with:
+
+ apt-get install openafs-dbserver openafs-krb5
+
+ The openafs-krb5 package will be used to create the AFS KeyFile.
+
+ As part of this installation, you will need to configure
+ openafs-client with the cell you are creating as the local cell name
+ and the server on which you're working as the db server. This name
+ is technically arbitrary but should, for various reasons, be a valid
+ domain name that you control; unlike Kerberos realms, it should be
+ in all lowercase. Enter the name of the local system when prompted
+ for the names of your OpenAFS db servers. Don't start the client;
+ that will happen below. For right now, say that you don't want it
+ to start at boot. You can change that later with dpkg-reconfigure
+ openafs-client.
+
+ If you have already installed openafs-client and configured it for
+ some other cell, you do need to configure it to point to your new
+ cell for these instructions to work. Stop the AFS client on the
+ system with /etc/init.d/openafs-client stop and then run:
+
+ dpkg-reconfigure openafs-client
+
+ pointing it to the new cell you're about to create instead.
+ Remember, your cell name should be in lowercase. If you have had to
+ do this several times, double-check /etc/openafs/CellServDB when
+ you're done and make sure that there is only one entry for your new
+ cell at the top of that file and that it lists the correct IP
+ address for your new db server.
+
+ In order to complete the AFS installation, you will also need a
+ working AFS client installed on that system, which means that you
+ need to install an OpenAFS kernel module. Please see:
+
+ /usr/share/doc/openafs-client/README.modules
+
+ for information on how to do that.
+
+ 4. Create an AFS principal in Kerberos. This is the AFS service
+ principal, used by clients to authenticate to AFS and for AFS
+ servers to authenticate to each other. It *must* be a DES key; AFS
+ does not support any other encryption type. Run kadmin.local on
+ your KDC and then, at the kadmin.local prompt, run:
+
+ addprinc -randkey -e des-cbc-crc:v4 afs
+
+ If your Kerberos realm name does not match your AFS cell name (if,
+ for instance, you have one Kerberos realm with multiple AFS cells),
+ use "afs/cell.name" as the name of the principal above instead of
+ just "afs", where cell.name is the name of your new AFS cell.
+
+ 5. On the db server, download this key into a keytab. If this is the
+ same system as the KDC, you can use kadmin.local again. If not, you
+ should use kadmin (make sure that krb5-user is installed), and you
+ may need to pass -p username/admin to kadmin to tell it what
+ principal to authenticate as. Whichever way you get into kadmin,
+ run:
+
+ ktadd -k /tmp/afs.keytab -e des-cbc-crc:v4 afs
+
+ (or afs/cell.name if you used that instead). In the message that
+ results, note the kvno number reported, since you'll need it later
+ (it will normally be 3).
+
+ Don't forget the -e des-cbc-crc:v4 to force the afs key to be DES.
+ You can verify this with:
+
+ getprinc afs
+
+ and checking to be sure that the only key listed is a DES key. If
+ there are multiple keys listed, delprinc the afs principal, delete
+ the /tmp/afs.keytab file, and then start over with addprinc, making
+ sure not to forget the -e option.
+
+ 6. Create the AFS KeyFile with:
+
+ asetkey add <kvno> /tmp/afs.keytab afs
+
+ (or afs/cell.name if you used that instead). <kvno> should be
+ replaced by the kvno number reported by kadmin. This tells AFS the
+ Kerberos key that it should use, making it match the key in the
+ Kerberos KDC.
+
+ 7. If the name of your Kerberos realm does not match the name of your
+ AFS cell, tell AFS what Kerberos realm to use with:
+
+ echo REALM > /etc/openafs/server/krb.conf
+
+ where REALM is the name of your Kerberos realm. If your AFS cell
+ and Kerberos realm have the same name, this is unnecessary.
+
+ 8. Create some space to use for AFS volumes. You can set up a separate
+ AFS file server on a different system from the Kerberos KDC and AFS
+ db server, and for a larger cell you will want to do so, but when
+ getting started you can make the db server a file server as well.
+ For a production cell, you will want to create a separate partition
+ devoted to AFS and mount it as /vicepa (and may want to make
+ multiple partitions mounted as /vicepb, /vicepc, etc.), but for
+ testing purposes, you can use the commands below to create a
+ zero-filled file, create a file system in it, and then mount it:
+
+ dd if=/dev/zero of=/var/lib/openafs/vicepa bs=1024k count=32
+ mke2fs /var/lib/openafs/vicepa
+ mkdir /vicepa
+ mount -oloop /var/lib/openafs/vicepa /vicepa
+
+ mke2fs will ask you if you're sure you want to create a file system
+ on a non-block device; say yes.
+
+ 9. Run afs-newcell. This will prompt you to be sure that the above
+ steps have been complete and will ask you for the Kerberos principal
+ to use for AFS administrative access. You should use the
+ username/admin principal discussed above. afs-newcell sets up the
+ initial protection database (which stores users and groups),
+ configures the AFS database and file server daemons, and creates the
+ root volume for AFS clients.
+
+ At the completion of this step, you should see bosserver and several
+ other AFS server processes running, and you should be able to see
+ the status of those processes with:
+
+ bos status localhost -local
+
+ bosserver is a master server that starts and monitors all the
+ individual AFS servers, and bos is the program used to send it
+ commands.
+
+ Now, you should be able to run:
+
+ kinit username/admin@REALM
+ aklog cell.name -k REALM
+
+ where username/admin is the admin principal discussed above, REALM
+ is the name of your Kerberos realm, and cell.name is the name of
+ your AFS cell. This will obtain Kerberos tickets and AFS tokens in
+ your Kerberos realm and new AFS cell. You should be able to see
+ your AFS tokens by running:
+
+ tokens
+
+ Finally, you should be able to see the status of the AFS server
+ processes with:
+
+ bos status <hostname>
+
+ where <hostname> is the hostname of the local system, once you've
+ done the above. This tests authenticated bos access as your admin
+ principal (rather than using the local KeyFile to authenticate).
+
+ 10. Run afs-rootvol. This creates the basic AFS volume structure for
+ your new cell, including the top-level volume, the mount point for
+ your cell in the AFS root volume, and the mount points for all known
+ public cells. It will prompt you to be sure that the above steps
+ are complete and then will ask you what file server and partition to
+ create the volume on. If you were following the above instructions,
+ use the local hostname and "a" as the partition (without the
+ quotes), which will use /vicepa.
+
+ After this command completes, you should be able to /bin/ls /afs and
+ see your local cell (and, if you aren't using dynroot, mount points
+ for several other cells). Note that if you're not using fakestat,
+ run /bin/ls rather than just ls to be sure that ls isn't aliased to
+ ls -F, ls --color, or some other option that would stat each file in
+ /afs, since this would require contacting lots of foreign cells and
+ could take a very long time.
+
+ You should now be able to cd to /afs/cell.name where cell.name is
+ the AFS cell name that you used. Currently, there isn't anything in
+ your cell except two volumes, user and service, created by
+ afs-rootvol. To make modifications, cd to /afs/.cell.name (note the
+ leading period) and make changes there. To make those changes show
+ up at /afs/cell.name, run vos release root.cell. For more details
+ on what you can do now, see the AFS Administrator's Reference.
+
+ 11. While this is optional, you probably want to add AFSDB records to
+ DNS for your new AFS cell. These special DNS records let AFS
+ clients find the db servers for your cell without requiring local
+ configuration. To do this, create a DNS record like:
+
+ <cell>. 3600 IN AFSDB 1 <server>.
+
+ where <cell> is the name of your AFS cell and <server> is the name
+ of your db server. Note the trailing periods to prevent the DNS
+ server from appending the origin. You can, of course, choose what
+ you prefer for the lifetime. The 1 is not a priority; it's a
+ special indicator saying that this record is for an AFS database
+ server.
+
+ If you have multiple db servers (see below for adding new ones), you
+ should create multiple records of this type, one per db server.
+
+ Congratulations! You now have an AFS cell. If any of the above steps
+ failed, please check the steps carefully and make sure that you've done
+ them all in order. If that doesn't reveal the cause of the problem,
+ please feel free to submit a bug report with reportbug. Include as many
+ details as possible on exactly what you typed and exactly what you saw
+ as a result, particularly any error messages.
+
+Adding Additional Servers
+
+ If you decide one server is not enough, or if you're adding a server to
+ an existing cell, here is roughly what you should do:
+
+ 1. Copy securely (using scp, encrypted Kerberos rcp, or some other
+ secure method) all of /etc/openafs/server to the new server.
+
+ 2. Install the openafs-fileserver package on the new server.
+
+ 3. If the machine is to be a file server, create an fs instance using
+ bos create:
+
+ bos create <host> fs fs -cmd /usr/lib/openafs/fileserver \
+ -cmd /usr/lib/openafs/volserver \
+ -cmd /usr/lib/openafs/salvager -localauth
+
+ For a file server, this is all you have to do.
+
+ 4. For database servers, also install openafs-dbserver and then use bos
+ addhost to add the new server to /etc/openafs/server/CellServDB:
+
+ bos addhost <server> <new-server>
+
+ for each db server <server> in your cell (including the new one).
+ Then, restart the ptserver and vlserver instances on each of your
+ existing servers with:
+
+ bos restart <server> ptserver
+ bos restart <server> vlserver
+
+ It's best to wait a few seconds after doing this for each server
+ before doing the next server so that voting finishes and you never
+ lose a quorum.
+
+ Only after ptserver and vlserver have been restarted on each of your
+ existing servers, create ptserver and vlserver instances on the new
+ server:
+
+ bos create <host> ptserver simple /usr/lib/openafs/ptserver \
+ -localauth
+ bos create <host> vlserver simple /usr/lib/openafs/vlserver \
+ -localauth
+
+ The existing servers should then propagate the database to the new
+ server. If you are using buserver, you will need to do the same
+ thing for it as with ptserver and vlserver.
+
+ Note that you do not need to run a file server on a db server if you
+ don't want to (and larger sites probably will not want to), but you
+ always need to have the openafs-fileserver package installed on db
+ servers. It contains the bosserver binary and some of the shared
+ infrastructure.
+
+ 5. If you added a new db server, configure your clients to use it. If
+ you are using AFSDB records in DNS, you can just add a new record
+ (see point 10 in the instructions for creating a new cell).
+ Otherwise, clients will need to have the new server IP address added
+ to their /etc/openafs/CellServDB file (or /usr/vice/etc/CellServDB
+ for non-Debian clients using the standard AFS paths), and the client
+ will have to be restarted before it will know about the new db
+ server.
+
+ The standard rule of thumb is that all of your database servers and file
+ servers should ideally be running the same version of OpenAFS. However,
+ in practice OpenAFS is fairly good at backward compatibility and you can
+ generally mix and match different versions. Be careful, though, to
+ ensure that all of your database servers are built the same when it
+ comes to options like --enable-supergroups (enabled in the Debian
+ packages).
+
+Upgrades
+
+ Currently, during an upgrade of the openafs-fileserver package, all
+ services will be stopped and restarted. If openafs-dbserver is upgraded
+ without upgrading openafs-fileserver, those server binaries will not be
+ stopped and restarted; that restart will have to be done by hand.
+
+ It is possible that future versions of this package will install for
+ example /usr/lib/openafs/fileserver.package instead of
+ /usr/lib/openafs/fileserver and then create links to the actual binaries
+ in postinst. Upgrades would then not replace the old binaries, but
+ instead a script will be provided to roll the links forward to the new
+ versions. The intent is that people could install the new package on
+ all their servers and then quickly move the links before restarting the
+ bosserver. This has not yet been implemented.
-* Get bos restrict working
+* Get bos restrict working.
+
+* The configuration transcript and the README.servers file would be best
+ read together, but preferrably with some nicer formatting (such as HTML
+ with a style sheet to set off the transcript in a different background
+ color).
+
+* Consider including the kdump executable in the kernel module package.
+ openafs-client would have to provide a wrapper script to run the
+ appropriate kdump and the kernel module package would need to install
+ the kdump executable, maybe in /usr/lib/openafs, named after the kernel
+ image installed.
+
#!/usr/bin/perl -w
# Copyright (C) 2000 by Sam Hartman
-# This file may be copied either under the terms of the GNU GPL or the IBM Public License
-# either version 2 or later of the GPL or version 1.0 or later of the IPL.
+# This file may be copied either under the terms of the GNU GPL or the IBM
+# Public License either version 2 or later of the GPL or version 1.0 or later
+# of the IPL.
use Term::ReadLine;
use strict;
use Debian::OpenAFS::ConfigUtils;
use Getopt::Long;
-use vars qw($admin $server
- $requirements_met $shutdown_needed);
+use Socket qw(inet_ntoa);
+use vars qw($admin $server $requirements_met $shutdown_needed);
my $rl = new Term::ReadLine('afs-newcell');
=head1 NAME
- afs-newcell - Set up initial database server for AFS cell.
+afs-newcell - Set up initial database server for AFS cell
=head1 SYNOPSIS
=head1 DESCRIPTION
-
This script sets up the initial AFS database and configures the first
database/file server.
-The B<requirements-met> option specifies that the initial requirements
-have been met and that the script can proceed without displaying the
-initial banner or asking for confirmation.
+The B<--requirements-met> option specifies that the initial requirements have
+been met and that the script can proceed without displaying the initial
+banner or asking for confirmation.
-The B<admin> option specifies the name of the administrative user.
-This user will be given system:administrators and susers permission in
-the cell.
+The B<--admin> option specifies the name of the administrative user. This
+user will be given system:administrators and susers permission in the cell.
=head1 AUTHOR
=cut
-# main script
+# Flush all output immediately.
+$| = 1;
-GetOptions (
- "requirements-met" => \$requirements_met,
- "admin=s" => \$admin);
+GetOptions ("requirements-met" => \$requirements_met, "admin=s" => \$admin);
unless ($requirements_met) {
- print <<eoreqs;
- Prerequisites
+ print <<eoreqs;
+ Prerequisites
In order to set up a new AFS cell, you must meet the following:
1) You need a working Kerberos realm with Kerberos4 support. You
- should install Heimdal with Kth-kerberos compatibility or MIT
- Kerberos5.
+ should install Heimdal with KTH Kerberos compatibility or MIT
+ Kerberos 5.
2) You need to create the single-DES AFS key and load it into
/etc/openafs/server/KeyFile. If your cell's name is the same as
3) This machine should have a filesystem mounted on /vicepa. If you
do not have a free partition, then create a large file by using dd
to extract bytes from /dev/zero. Create a filesystem on this file
- and mount it using -oloop.
+ and mount it using -oloop.
4) You will need an administrative principal created in a Kerberos
-realm. This principal will be added to susers and
-system:administrators and thus will be able to run administrative
-commands. Generally the user is a root instance of some administravie
-user. For example if jruser is an administrator then it would be
-reasonable to create jruser/root and specify jruser/root as the user
-to be added in this script.
+ realm. This principal will be added to susers and
+ system:administrators and thus will be able to run administrative
+ commands. Generally the user is a root or admin instance of some
+ administrative user. For example if jruser is an administrator then
+ it would be reasonable to create jruser/admin (or jruser/root) and
+ specify that as the user to be added in this script.
5) The AFS client must not be running on this workstation. It will be
-at the end of this script.
+ at the end of this script.
eoreqs
-
- $_ = $rl->readline("Do you meet these requirements? [y/n] ");
- unless (/^y/i ) {
- print "Run this script again when you meet the requirements\n";
- exit(1);
- }
-
- if ($> != 0) {
-die "This script should almost always be run as root. Use the --requirements-met option to run as non-root.\n";
-}
+#'# cperl-mode
+
+ $_ = $rl->readline("Do you meet these requirements? [y/n] ");
+ unless (/^y/i ) {
+ print "Run this script again when you meet the requirements\n";
+ exit(1);
+ }
+
+ if ($> != 0) {
+ die "This script should almost always be run as root. Use the\n"
+ . "--requirements-met option to run as non-root.\n";
+ }
}
+
+# Make sure the AFS client is not already running.
open(MOUNT, "mount |") or die "Failed to run mount: $!\n";
while(<MOUNT>) {
-if(m:^AFS:) {
-print "The AFS client is currently running on this workstation.\n";
-print "Please restart this script after running /etc/init.d/openafs-client stop\n";
-exit(1);
-}
+ if (m:^AFS:) {
+ print "The AFS client is currently running on this workstation.\n";
+ print "Please restart this script after running"
+ . " /etc/init.d/openafs-client stop\n";
+ exit(1);
+ }
}
close MOUNT;
+# Make sure there is a keyfile.
unless ( -f "/etc/openafs/server/KeyFile") {
- print "You do not have an AFS keyfile. Please create this using asetkey from openafs-krb5 or
-the bos addkey command";
- exit(1);
+ print "You do not have an AFS keyfile. Please create this using\n";
+ print "asetkey from openafs-krb5 or the bos addkey command\n";
+ exit(1);
}
+# Stop the file server.
print "If the fileserver is not running, this may hang for 30 seconds.\n";
run("/etc/init.d/openafs-fileserver stop");
-$server = `hostname`;
+
+# Get the local hostname. Use the fully-qualified hostname to be safer.
+$server = `hostname -f`;
chomp $server;
-$admin = $rl->readline("What administrative principal should be used? ") unless $admin;
- die "Please specify an administrative user\n" unless $admin;
-$admin =~ s:/:.:g;
-if($admin =~ /@/) {
-die "The administrative user must be in the same realm as the cell and no realm may be specified.\n";
+my $ip = gethostbyname $server;
+if (inet_ntoa($ip) eq '127.0.0.1') {
+ print "\n";
+ print "Your hostname $server resolves to 127.0.0.1, which AFS cannot\n";
+ print "cope with. Make sure your hostname resolves to a non-loopback\n";
+ print "IP address. (Check /etc/hosts and make sure that your hostname\n";
+ print "isn't listed on the 127.0.0.1 line. If it is, removing it from\n";
+ print "that line will probably solve this problem.)\n";
+ exit(1);
+}
+
+# Determine the admin principal.
+$admin = $rl->readline("What administrative principal should be used? ")
+ unless $admin;
+print "\n";
+die "Please specify an administrative user\n" unless $admin;
+my $afs_admin = $admin;
+$afs_admin =~ s:/:.:g;
+if ($afs_admin =~ /@/) {
+ die "The administrative user must be in the same realm as the cell and\n"
+ . "no realm may be specified.\n";
}
-open(CELL, "/etc/openafs/server/ThisCell")
- or die "Cannot open /etc/openafs/server/ThisCell: $!\n";
+
+# Determine the local cell. This should be configured via debconf, from the
+# openafs-client configuration, when openafs-fileserver is installed.
+open(CELL, "/etc/openafs/server/ThisCell")
+ or die "Cannot open /etc/openafs/server/ThisCell: $!\n";
my $cell = <CELL>;
chomp $cell;
-run( "echo \\>$cell >/etc/openafs/server/CellServDB");
+# Make sure the new cell is configured in the client CellServDB.
+open(CELLSERVDB, "/etc/openafs/CellServDB")
+ or die "Cannot open /etc/openafs/CellServDB: $!\n";
+my $found = 0;
+while (<CELLSERVDB>) {
+ next unless /^>\Q$cell\E\s/;
+ while (<CELLSERVDB>) {
+ last if /^>/;
+ my ($dbserver) = split ' ';
+ if ($dbserver eq inet_ntoa($ip)) {
+ $found = 1;
+ last;
+ }
+ }
+ last;
+}
+unless ($found) {
+ print "\n";
+ print "The new cell $cell is not configured in /etc/openafs/CellServDB\n";
+ print "Add configuration like:\n\n";
+ print ">$cell\n";
+ print inet_ntoa($ip), "\n\n";
+ print "to that file before continuing.\n";
+ exit(1);
+}
+
+# Write out a new CellServDB for the local cell containing only this server.
+if (-f "/etc/openafs/server/CellServDB") {
+ print "/etc/openafs/server/CellServDB already exists, renaming to .old\n";
+ rename("/etc/openafs/server/CellServDB",
+ "/etc/openafs/server/CellServDB.old")
+ or die "Cannot rename /etc/openafs/server/CellServDB: $!\n";
+}
+open(CELLSERVDB, "> /etc/openafs/server/CellServDB")
+ or die "Cannot create /etc/openafs/server/CellServDB: $!\n";
+print CELLSERVDB ">$cell\n";
+print CELLSERVDB inet_ntoa($ip), "\t\t\t#$server\n";
+close CELLSERVDB or die "Cannot write to /etc/openafs/server/CellServDB: $!\n";
+
+# Now, we should be able to start bos and add the admin user.
run("/etc/init.d/openafs-fileserver start");
$shutdown_needed = 1;
-run ("bos addhost $server $server -localauth ||true");
-run("bos adduser $server $admin -localauth");
-unwind("bos removeuser $server $admin -localauth");
-if ( -f "/var/lib/openafs/db/prdb.DB0" ) {
- die "Protection database already exists; cell already partially created\n";
- }
-open(PRDB, "|pt_util -p /var/lib/openafs/db/prdb.DB0 -w ")
-or die "Unable to start pt_util: $!\n";
-print PRDB "$admin 128/20 1 -204 -204\n";
+run("bos adduser $server $afs_admin -localauth");
+unwind("bos removeuser $server $afs_admin -localauth");
+
+# Create the initial protection database using pt_util. This is safer than
+# the standard mechanism of starting the cell in noauth mode until the first
+# user has been created.
+if (-f "/var/lib/openafs/db/prdb.DB0") {
+ warn "ERROR: Protection database already exists; cell already partially\n";
+ warn "ERROR: created. If you do not want the current database, remove\n";
+ warn "ERROR: all files in /var/lib/openafs/db and then run this program\n";
+ warn "ERROR: again.\n";
+ exit(1);
+}
+print "\nCreating initial protection database. This will print some errors\n";
+print "about an id already existing and a bad ubik magic. These errors can\n";
+print "be safely ignored.\n\n";
+open(PRDB, "| pt_util -p /var/lib/openafs/db/prdb.DB0 -w")
+ or die "Unable to start pt_util: $!\n";
+print PRDB "$afs_admin 128/20 1 -204 -204\n";
print PRDB "system:administrators 130/20 -204 -204 -204\n";
-print PRDB" $admin 1\n";
+print PRDB " $afs_admin 1\n";
close PRDB;
-unwind( "rm /var/lib/openafs/db/prdb* ");
-# Start up ptserver and vlserver
+unwind("rm /var/lib/openafs/db/prdb*");
+print "\n";
+
+# We should now be able to start ptserver and vlserver.
run("bos create $server ptserver simple /usr/lib/openafs/ptserver -localauth");
unwind("bos delete $server ptserver -localauth");
-
run("bos create $server vlserver simple /usr/lib/openafs/vlserver -localauth");
unwind("bos delete $server vlserver -localauth");
-run( "bos create $server fs fs ".
- "-cmd /usr/lib/openafs/fileserver ".
- "-cmd /usr/lib/openafs/volserver ".
- "-cmd /usr/lib/openafs/salvager -localauth");
-unwind( "bos delete $server fs -localauth ");
+# Create a file server as well.
+run("bos create $server fs fs"
+ . " -cmd /usr/lib/openafs/fileserver"
+ . " -cmd /usr/lib/openafs/volserver"
+ . " -cmd /usr/lib/openafs/salvager -localauth");
+unwind("bos delete $server fs -localauth");
+# Pause for a while for ubik to catch up.
print "Waiting for database elections: ";
sleep(30);
print "done.\n";
-# Past this point we want to control when bos shutdown happens
+
+# Past this point we want to control when bos shutdown happens.
$shutdown_needed = 0;
-unwind( "bos shutdown $server -localauth ");
+unwind("bos shutdown $server -localauth -wait");
run("vos create $server a root.afs -localauth");
-# bring up client
-run("echo $cell >/etc/openafs/ThisCell");
+unwind("vos remove $server a root.afs -localauth");
+
+# We should now be able to bring up the client (it may need root.afs to exist
+# if not using dynroot). We override whatever default cell was configured for
+# the client, just in case it was pointing to some other cell.
+open(THIS, "> /etc/openafs/ThisCell")
+ or die "ERROR: Cannot create /etc/openafs/ThisCell: $!\n";
+print THIS "$cell\n";
+close THIS or die "ERROR: Cannot write to /etc/openafs/ThisCell: $!\n";
run("/etc/init.d/openafs-client force-start");
+
+# Verify that AFS has managed to start.
my $afs_running = 0;
-open(MOUNT, "mount |") or die "Failed to run mount: $!\n";
+open(MOUNT, "mount |") or die "ERROR: Failed to run mount: $!\n";
while(<MOUNT>) {
-if(m:^AFS:) {
- $afs_running = 1;
+ if (m:^AFS:) {
+ $afs_running = 1;
+ }
}
- }
unless ($afs_running) {
-print "*** The AFS client failed to start.\n";
-print "Please fix whatever problem kept it from running.\n";
- exit(1);
+ print "ERROR: The AFS client failed to start.\n";
+ print "ERROR: Please fix whatever problem kept it from running.\n";
+ exit(1);
}
+print "\n";
+print "Now, get tokens as $admin in the $cell cell.\n";
+print "Then, run afs-rootvol.\n";
-print <<eomsg;
-Now, get tokens as $admin in the $cell cell. Then, run
-afs-rootvol.
-eomsg
-
-
-
-
+# Success, so clear the unwind commands.
@unwinds = ();
+
+# If we fail before all the instances are created, we need to back out of
+# everything we did as much as possible.
END {
-# If we fail before all the instances are created, we need to perform
-# our own bos shutdown
- system("bos shutdown $server -localauth") if $shutdown_needed;
- run(pop @unwinds) while @unwinds;
- }
+ if ($shutdown_needed || @unwinds) {
+ print "\nCell setup failed, ABORTING\n";
+ }
+ system("bos shutdown $server -localauth -wait") if $shutdown_needed;
+ run(pop @unwinds) while @unwinds;
+}
#!/usr/bin/perl -w
# Copyright (C) 2000 by Sam Hartman
-# This file may be copied either under the terms of the GNU GPL or the IBM Public License
-# either version 2 or later of the GPL or version 1.0 or later of the IPL.
+# This file may be copied either under the terms of the GNU GPL or the IBM
+# Public License either version 2 or later of the GPL or version 1.0 or later
+# of the IPL.
use strict;
+use Debian::OpenAFS::ConfigUtils;
use Term::ReadLine;
use Getopt::Long;
+use vars qw($rl $server $part $requirements_met);
-=head1 NAME
+=head1 NAME
- afs-rootvol - Generate and populate root volumes for new AFS cells.
+afs-rootvol - Generate and populate root volumes for new AFS cells.
=head1 SYNOPSIS
-B<afs-rootvol> [B<--requirements-met>] [B<--server> server-name] [B<--partition> partition-letter]
+B<afs-rootvol> [B<--requirements-met>] [B<--server> I<server-name>]
+[B<--partition> I<partition-letter>]
=head1 DESCRIPTION
-This script sets up an AFS cell's root volumes. It assumes that you
-already have a fileserver and database servers. The fileserver should
-have an empty root.afs.
- This script creates root.cell, user, service and populates root.afs.
+This script sets up an AFS cell's root volumes. It assumes that you already
+have a fileserver and database servers. The fileserver should have an empty
+root.afs. This script creates root.cell, user, and service and populates
+root.afs.
=head1 AUTHOR
Sam Hartman <hartmans@debian.org>
=cut
-
-use vars qw($rl $server $part $requirements_met);
-use vars qw( @unwinds);
-use Debian::OpenAFS::ConfigUtils;
-
+#'# cperl-mode
# This subroutine creates a volume, mounts it and then sets the access
# to allow read by anyuser. The volume is scheduled for deletion in
# case of error.
-# mkvol(volume, mount)
- sub mkvol($$) {
- my ($vol, $mnt) = @_;
- run("vos create $server $part $vol -localauth");
- unwind("vos remove $server $part $vol -localauth");
- run("fs mkm $mnt $vol ");
- run("fs sa $mnt system:anyuser rl");
- }
-
-# main script
-$rl = new Term::ReadLine('AFS');
-
+sub mkvol($$) {
+ my ($vol, $mnt) = @_;
+ run("vos create $server $part $vol -localauth");
+ unwind("vos remove $server $part $vol -localauth");
+ run("fs mkm $mnt $vol ");
+ run("fs sa $mnt system:anyuser rl");
+}
-GetOptions (
- "requirements-met" => \$requirements_met,
- "server=s" => \$server,
- "partition=s" => \$part
- );
+# Main script. Flush all output immediately.
+$| = 1;
+$rl = new Term::ReadLine('AFS');
+GetOptions ("requirements-met" => \$requirements_met,
+ "server=s" => \$server,
+ "partition=s" => \$part);
unless ($requirements_met) {
- print <<eotext;
- Prerequisites
+ print <<eotext;
+ Prerequisites
-In order to set up the root.afs volume, you must meet the following pre-conditions:
+In order to set up the root.afs volume, you must meet the following
+pre-conditions:
1) The cell must be configured, running a database server with a
volume location and protection server. The afs-newcell script will
set up these services.
-2) You must be logged into the cell with tokens in
- system:administrators and with a principal that is in the susers
+2) You must be logged into the cell with tokens in for a user in
+ system:administrators and with a principal that is in the UserList
file of the servers in the cell.
3) You need a fileserver in the cell with partitions mounted and a
- root.afs volume created. Presumably, it has no volumes on it,
+ root.afs volume created. Presumably, it has no volumes on it,
although the script will work so long as nothing besides root.afs
exists. The afs-newcell script will set up the file server.
4) The AFS client must be running pointed at the new cell.
eotext
+
$_ = $rl->readline("Do you meet these conditions? (y/n) ");
unless (/^y/i ) {
- print "Please restart the script when you meet these conditions.\n";
- exit(1);
+ print "Please restart the script when you meet these conditions.\n";
+ exit(1);
+ }
+ if ($> != 0) {
+ die "This script should almost always be run as root. Use the\n"
+ . "--requirements-met option to run as non-root.\n";
}
-
- if ($> != 0) {
-die "This script should almost always be run as root. Use the --requirements-met option to run as non-root.\n";
}
-}
-# Get configuration information we need
+# Get configuration information we need.
open(CELL, "/etc/openafs/server/ThisCell")
-or die "Unable to find out what cell this machine serves: $!\n";
+ or die "Unable to find out what cell this machine serves: $!\n";
my $cell = <CELL>;
close CELL;
chomp $cell;
unless ($server) {
- print <<eotext;
-You will need to select a server (hostname) and AFS
-partition on which to create the root volumes.
+ print <<eotext;
+
+You will need to select a server (hostname) and AFS partition on which to
+create the root volumes.
+
eotext
- $server = $rl->readline("What AFS Server should volumes be placed on? ");
- die "Please select a server.\n" unless $server;
+ $server = $rl->readline("What AFS Server should volumes be placed on? ");
+ die "Please select a server.\n" unless $server;
}
unless ($part) {
- $part = $rl ->readline("What partition? [a] ");
-$part = "a" unless $part;
+ $part = $rl->readline("What partition? [a] ");
+ $part = "a" unless $part;
}
+print "\n";
+# Make sure the user has tokens. Forgetting to do this is a common error.
+my $status = system("tokens | grep Expires > /dev/null");
+if ($status != 0) {
+ die "You appear to not have AFS tokens. Obtain tokens (with aklog,\n"
+ . "for example) and then run this script again.\n";
+}
-run("fs sa /afs system:anyuser rl");
-
+# Figure out where root.afs is. There are two possibilities: either we aren't
+# running with dynroot, and root.afs is therefore accessible as /afs, or we
+# are running with dynroot, in which case we have to create root.cell first
+# and then mount root.afs under it.
+#
+# Always create root.cell first; we may need it if running with dynroot, and
+# it doesn't hurt to do it now regardless.
+my $rootmnt = "/afs";
run("vos create $server $part root.cell -localauth");
unwind("vos remove $server $part root.cell -localauth");
-# We make root.cell s:anyuser readable after we mount in the next
-# loop.
-
+my $dynroot = (-d "$rootmnt/$cell/.");
+if ($dynroot) {
+ run("fs mkm /afs/$cell/.root.afs root.afs -rw");
+ unwind("fs rmm /afs/$cell/.root.afs");
+ $rootmnt = "/afs/$cell/.root.afs";
+}
+run("fs sa $rootmnt system:anyuser rl");
+# Scan CellServDB and create the cell mount points for every cell found there.
+# Force these commands to succeed, since it's possible to end up with
+# duplicate entries in CellServDB (and the second fs mkm will fail).
open(CELLSERVDB, "/etc/openafs/CellServDB")
or die "Unable to open /etc/openafs/CellServDB: $!\n";
-while(<CELLSERVDB>) {
+while (<CELLSERVDB>) {
chomp;
- if (/^>\s*([a-z0-9_\-.]+)/ ) {
- run("fs mkm /afs/$1 root.cell -cell $1 -fast");
- unwind ("fs rmm /afs/$1");
+ if (/^>\s*([a-z0-9_\-.]+)/) {
+ run("fs mkm $rootmnt/$1 root.cell -cell $1 -fast || true");
+ unwind("fs rmm $rootmnt/$1 || true");
}
}
+# Now, create the read/write mount points for root.cell and root.afs and set
+# root.cell system:anyuser read.
run("fs sa /afs/$cell system:anyuser rl");
-run ("fs mkm /afs/.$cell root.cell -cell $cell -rw");
-unwind ("fs rmm /afs/.$cell");
-run("fs mkm /afs/.root.afs root.afs -rw");
-unwind ("fs rmm /afs/.root.afs");
-
-mkvol( "user", "/afs/$cell/user" );
-mkvol( "service", "/afs/$cell/service" );
-
-$cell =~ /^([^.]*)/;
+run("fs mkm $rootmnt/.$cell root.cell -cell $cell -rw");
+unwind("fs rmm $rootmnt/.$cell");
+run("fs mkm $rootmnt/.root.afs root.afs -rw");
+unwind("fs rmm $rootmnt/.root.afs");
+
+# Create the user and service mount point volumes to fit the semi-standard AFS
+# cell layout.
+mkvol("user", "/afs/$cell/user");
+mkvol("service", "/afs/$cell/service");
+
+# Strip the domain off of the cell name and create the short symlinks.
+$cell =~ /^([^.]+)/;
my $cellpart = $1;
-run("ln -s /afs/$cell /afs/$cellpart");
-unwind ("rm /afs/$cellpart");
-run( "ln -s /afs/.$cell /afs/.$cellpart" );
-unwind ("rm /afs/.$cellpart");
-
-run( "vos addsite $server $part root.afs -localauth" );
-run( "vos addsite $server $part root.cell -localauth" );
-run( "vos release root.afs -localauth" );
-run( "vos release root.cell -localauth" );
-unwind( "vos remove $server $part root.cell.readonly -localauth ");
-unwind( "vos remove $server $part root.afs.readonly -localauth ");
+if ($cellpart && $cellpart ne $cell) {
+ run("ln -s $cell $rootmnt/$cellpart");
+ unwind("rm $rootmnt/$cellpart");
+ run("ln -s .$cell $rootmnt/.$cellpart");
+ unwind("rm $rootmnt/.$cellpart");
+}
+if ($dynroot) {
+ run("fs rmm /afs/$cell/.root.afs");
+ unwind("fs mkm /afs/$cell/.root.afs root.afs -rw");
+}
+
+# Now, replicate the infrastructure volumes.
+run("vos addsite $server $part root.afs -localauth");
+run("vos addsite $server $part root.cell -localauth");
+run("vos release root.afs -localauth");
+run("vos release root.cell -localauth");
+unwind("vos remove $server $part root.cell.readonly -localauth");
+unwind("vos remove $server $part root.afs.readonly -localauth");
+# Success, so clear the unwind commands.
@unwinds = ();
+# If we fail before all the instances are created, we need to back out of
+# everything we did as much as possible.
END {
- run(pop @unwinds) while @unwinds;
- }
-
+ if (@unwinds) {
+ print "\nRoot volume setup failed, ABORTING\n";
+ }
+ run(pop @unwinds) while @unwinds;
+}
--- /dev/null
+# -*- sh -*-
+# Copyright 2000, International Business Machines Corporation and others.
+# All Rights Reserved.
+#
+# This software has been released under the terms of the IBM Public
+# License. For details, see the LICENSE file in the top-level source
+# directory or online at http://www.openafs.org/dl/license10.html
+
+# Configuration information for AFS client.
+
+# The following options are maintained by debconf. To change them, run
+# dpkg-reconfigure openafs-client.
+#
+# AFS_CLIENT Whether to start the AFS client at boot
+# AFS_AFSDB Whether to use AFSDB DNS records to find VLDB servers
+# AFS_CRYPT Whether to enable fcrypt encryption
+# AFS_DYNROOT Whether to use a dynamic /afs directory
+# AFS_FAKESTAT Whether to fake stat data for mount points
+
+test -f /etc/openafs/afs.conf.client && . /etc/openafs/afs.conf.client
+
+# Set to "-verbose" for a lot of debugging information from afsd. Only useful
+# for debugging as it prints a LOT of information.
+VERBOSE=
+
+# AFS client configuration options.
+#
+# Here is a (mostly) complete list of flags that afsd accepts and that are
+# useful here:
+#
+# -blocks The number of blocks available in the workstation cache.
+# -files The target number of files in the workstation cache (Default:
+# 1000).
+# -rootvol The name of the root volume to use.
+# -stat The number of stat cache entries.
+# -hosts List of servers to check for volume location info FOR THE
+# HOME CELL.
+# -memcache Use an in-memory cache rather than disk.
+# -cachedir The base directory for the workstation cache.
+# -mountdir The directory on which the AFS is to be mounted.
+# -confdir The configuration directory.
+# -nosettime Don't keep checking the time to avoid drift (default).
+# -settime Keep checking the time to avoid drift.
+# -verbose Be chatty.
+# -debug Print out additional debugging info.
+# -daemons The number of background daemons to start (Default: 2).
+# -rmtsys Also fires up an afs remote sys call (e.g. pioctl, setpag)
+# support daemon
+# -chunksize 2^n is the chunksize to be used (Default: use a kernel
+# module default).
+# -dcache The number of data cache entries.
+# -prealloc Number of preallocated "small" memory blocks
+# -waitclose Make close calls always synchronous (slows them down, though)
+# -files_per_subdir Number of files per cache subdir (Default: 2048).
+#
+# Using the memory cache is not recommended. It's less stable than the disk
+# cache and doesn't improve performance as much as it might sound.
+#
+# The default behavior is to pick one of the following option sets based on
+# the size of the AFS cache, as follows:
+#
+# cache < 128MB $SMALL
+# 128MB < cache < 512MB $MEDIUM
+# 512MB < cache < 1GB $LARGE
+# 1GB < cache < 2GB $XLARGE
+# 2GB < cache $XXLARGE
+#
+# You can override that default behavior by setting OPTIONS below.
+XXLARGE="-chunksize 20 -files 80000 -dcache 10000 -stat 15000 -daemons 6 -volumes 500"
+XLARGE="-chunksize 20 -files 50000 -dcache 10000 -stat 15000 -daemons 5 -volumes 250"
+LARGE="-chunksize 18 -files 25000 -dcache 10000 -stat 15000 -daemons 5 -volumes 200"
+MEDIUM="-chunksize 18 -files 10000 -dcache 5000 -stat 7500 -daemons 3 -volumes 200"
+SMALL="-chunksize 18 -files 2500 -dcache 2000 -stat 3000 -daemons 2 -volumes 200"
+
+# The default behavior is to pick one of the above settings as described
+# above. You can override this by setting OPTIONS explicitly to either one of
+# the above variables or to any set of flags that you prefer.
+OPTIONS=AUTOMATIC
+
+# The default value for the client sysname (as returned by fs sysname) is
+# determined during the kernel module build and is taken from the architecture
+# and the major Linux kernel version. Accesses to directories named "@sys" in
+# AFS will be internally redirected to a directory by this name by the AFS
+# client, allowing a single path to resolve to different directories depending
+# on the client architecture.
+#
+# If you would like to override the client sysname, uncomment this line and
+# set the variable to a space-separated list of sysnames. The AFS client will
+# attempt to resolve @sys to each directory name in the order given.
+#AFS_SYSNAME=""
+
+# If you want to prefer particular servers for replicated volumes, you can
+# configure that by defining an afs_server_prefs function here and then
+# uncommenting the setting of AFS_POST_INIT below. For more information, see
+# fs help setserverprefs and fs getserverprefs (for the current values).
+
+#afs_server_prefs() {
+# fs setserverprefs <host> <rank>
+#}
+
+# If you want to always run some command after starting OpenAFS, you can put
+# it here. Note that you cannot run multiple commands, even combined with &&
+# or ; or similar shell meta-characters. If you want to run multiple
+# commands, define a shell function instead and put the name of the shell
+# function here.
+AFS_POST_INIT=
+
+# Uncomment this line if you defined an afs_server_prefs function. (If you
+# have other commands that you also want to run, you'll have to put them in
+# that function, as you can only run one function.)
+#AFS_POST_INIT=afs_server_prefs
+
+# If you want to always run some command before shutting down OpenAFS, you can
+# put it here. The same caveat applies about multiple commands.
+AFS_PRE_SHUTDOWN=
+
+# If you are having problems with AFS shutting down cleanly or the system not
+# rebooting because the partition the AFS cache was on could not be unmounted,
+# try installing lsof and uncommenting this. This will cause all processes
+# with open AFS files to be killed before unmounting AFS if the runlevel being
+# switched to is 0 or 6.
+#
+# Warning: This means /etc/init.d/openafs-client stop will kill all processes
+# with files open in AFS rather than returning an error saying the file system
+# is busy. This is probably what you want when the whole system is shutting
+# down, but often *not* what you want when just stopping and restarting the
+# client. The code doesn't run unless the runlevel is 0 or 6, but still, be
+# sure that this is what you want before enabling it.
+#AFS_PRE_SHUTDOWN=kill_all_afs
+openafs (1.4.0-4) unstable; urgency=low
+
+ * Hopefully fix sparc64 kernel support. Thanks, Troy Benjegerdes.
+ (Closes: #219429)
+ * Document the need to restart ptserver and vlserver on the existing
+ database servers when adding a new one. Thanks, Niklas Edmundsson.
+ (Closes: #349659)
+ * Include xstat_cm_test and xstat_fs_test in openafs-client, as they're
+ quite useful for debugging.
+
+ -- Russ Allbery <rra@debian.org> Tue, 14 Mar 2006 21:07:07 -0800
+
+openafs (1.4.0-3) unstable; urgency=low
+
+ * Apply upstream patch from Chas Williams to be more careful about what
+ dentry is used in renames, avoiding a kernel fault when renaming
+ dentries accessed through multiple paths (such as RO and RW).
+ * Apply patch to allow the module to build with the Ubuntu kernel.
+ Thanks, Björn Torkelsson. (Closes: #342607)
+ * Stop unconditionally forcing the compiler to cc or gcc in configure,
+ allowing, among other things, building the kernel module with a
+ compiler other than the default system compiler. (Closes: #338306)
+ * Call kernel-version correctly from prep-modules, which fixes build
+ issues with manually-built kernels. (Closes: #344851)
+ * Backport man pages from upstream CVS. (Closes: #79763)
+ * Include afsmonitor and livesys in openafs-client.
+ * Include volinfo in openafs-fileserver.
+ * Document FAM's lack of support for AFS's security model and recommend
+ gamin instead. (Closes: #343246)
+ * Add a hint to README.Debian on what to do about the cache partition if
+ running ReiserFS or XFS without a spare partition.
+ * Use make install into debian/tmp rather than make dest. make dest is
+ mostly for Transarc compatibility and make install looks more like a
+ typical package and makes it easier to evaluate differences in FHS
+ location between upstream and Debian. As a side effect, there's no
+ need to mess with the @sys link. (Closes: #165909)
+ * Install more files with dh_install rather than install commands in
+ debian/rules so that *.install shows a more complete picture of what
+ goes into each package.
+ * Don't ignore make distclean errors.
+
+ -- Russ Allbery <rra@debian.org> Tue, 27 Dec 2005 15:34:16 -0800
+
+openafs (1.4.0-2) unstable; urgency=low
+
+ * Install more of the standard OpenAFS utilities. (Closes: #138851)
+ - openafs-dbserver: Install prdb_check and vldb_check.
+ - openafs-fileserver: Install voldump.
+ - openafs-client: Install fstrace, scout, and up (as afs-up).
+ - Modify fstrace to load its catalog from /usr/share/openafs.
+ * Do not install kpwvalid. The default version does little useful and
+ the kpwvalid binary must be in AFS for it to take effect.
+ * Overhaul the way kernel modules are built.
+ - Recommend linux-image rather than kernel-image for newer kernels.
+ - Always recommend the kernel package; since it's only a recommends,
+ there's no need to special-case the hand-built kernel case.
+ - Be less fragile about how the kernel version is used in prep-modules
+ to support other ways kernel modules are built. (Closes: #341836)
+ - Add Build-Depends and Uploaders to the openafs-modules-source
+ control file.
+ - Remove unused parts of prep-modules and heavily comment it.
+ * openafs-client should only recommend the AFS kernel module. Many of
+ the client programs will work in unauthenticated mode without it, and
+ openafs-fileserver depends on it (but doesn't require the kernel
+ module). (Closes: #342095)
+ * openafs-modules-source no longer has to depend on as many libraries.
+ * Suggest the same PAM settings for pam_krb5 that libpam-krb5 does.
+ * Update uploader address.
+
+ -- Russ Allbery <rra@debian.org> Tue, 6 Dec 2005 23:34:18 -0800
+
+openafs (1.4.0-1) unstable; urgency=low
+
+ * New upstream version.
+ - Builds correctly with 2.6.13 kernels and software suspend.
+ - Builds correctly with 2.6.12-10. (Closes: #337883)
+ * Install afsd in /sbin rather than /usr/sbin. While putting /usr in
+ AFS isn't as common as it once was, no reason to make it harder than
+ it needs to be.
+ * Update CellServDB to the 2005-10-15 grand.central.org version.
+ * Install NEWS as an upstream changelog.
+ * Add a watch file.
+ * Remove the unused and uninstalled make-links script.
+
+ -- Russ Allbery <rra@stanford.edu> Sun, 6 Nov 2005 21:37:40 -0800
+
+openafs (1.4rc4-1) unstable; urgency=low
+
+ * New upstream version.
+ - Correctly handle root.afs becoming replicated after the client
+ starts. This should resolve the problems with AFS eventually
+ failing on the first system using a new cell. (Closes: #88906)
+ * When kill_all_afs is enabled in /etc/openafs/afs.conf, only kill AFS
+ processes if the runlevel is 0 or 6. You really only want this when
+ the system is shutting down. (Closes: #325347)
+ * Remove the init script check of the cache file system and instead
+ improve the check in afsd. The init script check used stat, which is
+ in /usr/bin and therefore not fair game for init scripts.
+ * Set PATH in the init script, just in case.
+ * libpam-openafs-kaserver must depend on openafs-client, not just
+ recommend it, since acquiring tokens requires that the client be
+ running.
+ * Expand README.Debian and include information about PAM configuration.
+ * Link libpam-openafs-kaserver's doc directory to openafs-client.
+ * Make the short descriptions shorter.
+ * Translation updates.
+ - Portuguese (Brazil), thanks André Luís Lopes.
+
+ -- Russ Allbery <rra@stanford.edu> Wed, 21 Sep 2005 13:36:34 -0700
+
+openafs (1.4rc1-1) unstable; urgency=low
+
+ * New upstream version.
+ * Install pam_afs.krb.so on hppa. I believe the new PAM module build
+ process fixes the issue that was being worked around before.
+ * Improve the documentation and scripts for setting up new servers or a
+ new cell. afs-rootvol can now be run from a client configured to use
+ dynroot. afs-newcell generates the server CellServDB directly to work
+ around oddities with bos addhost. There are many other, more minor
+ improvements as well. Thanks to Faheem Mitha and Sergio Gelato for
+ analysis and patches. (Closes: #322638)
+ * Update the configuration transcript to reflect the current packages,
+ messages, and instructions. Thanks, Faheem Mitha.
+ * Fill in the server CellServDB with information about the local cell,
+ if available in the client CellServDB, rather than always initializing
+ it to contain just the name of the cell.
+ * Detect AFS caches on non-ext2/ext3 file systems and abort AFS client
+ initialization. (Closes: #249315)
+ * Provide a way of setting sysname in afs.conf. (Closes: #324694)
+ * Don't create the unused /etc/openafs/AFSLog file. (Closes: #120097)
+ * Redo how library object files are found for the PAM module build to
+ avoid assuming C locale character set behavior. (Closes: #323582)
+ * Remove the openafs-client warning against dynroot for the first system
+ in a cell now that afs-rootvol can cope. Provide some basic
+ documentation of the CellAlias syntax in that message until we have a
+ real man page.
+ * Suggest openafs-doc.
+ * Update standards version to 3.6.2 for the kernel module packages (no
+ changes required).
+ * Translation updates.
+ - Czech, thanks Martin Sin.
+ - Vietnamese, thanks Clytie Siddall.
+ - French, thanks Christian Perrier.
+
+ -- Russ Allbery <rra@stanford.edu> Fri, 26 Aug 2005 01:30:21 -0700
+
+openafs (1.3.87-1) unstable; urgency=low
+
+ * New upstream version.
+ - Fixes build problems with 2.6.12.3 and later. (Closes: #320099)
+ * Add support for ppc64, thanks Andreas Jochens. (Closes: #322020)
+ * Improve the openafs-client init script.
+ - Update the default client options based on the cache tuning synopsis
+ by Jeffrey Hutzelman, including setting a larger chunksize for all
+ default option sets. (Closes: #303944)
+ - Choose the client options based on the cache size by default.
+ - Move the code to build the options string to the init script from
+ afs.conf so that afs.conf is pure configuration.
+ - Add an AFS_PRE_SHUTDOWN hook called before shutting down the client.
+ - Provide a shutdown hook, disabled by default, that kills all
+ processes with files open in /afs. Enabling this ensures a more
+ reliable clean shutdown and umounting of the cache partition, but
+ may not always be what the admin wants.
+ - Improve the readability of the output on start.
+ - Significantly improve the comments in afs.conf.
+ - Remove the code to set -nosettime as it's now the default.
+ * Move the openafs-client init script and afs.conf file we use into the
+ debian directory rather than patching the upstream version. We've
+ diverged so much that there's no point in continuing to merge changes.
+ * Diagnose unsupported architectures earlier and with a clearer error.
+ * Suppress error messages from a missing kernel version header since
+ they occur normally when doing the regular package build and are just
+ confusing. Instead, print an error in kern-sysname and abort if the
+ kernel version could not be determined.
+ * Rework how PAM modules are handled.
+ - Build against the pthread-aware libraries. (Closes: #297804)
+ - Use the shared library objects instead of building separate PIC
+ objects, eliminating the need for many Makefile modifications.
+ - Include pam_afs.krb.so as well. (Closes: #165972)
+ * Don't include the empty /usr/src/modules directory in
+ openafs-modules-source, only the tarball, to match how other kernel
+ module source packages behave. (Closes: #244685)
+ * Update config.guess and config.sub.
+ * Translation updates.
+ - French, thanks Christian Perrier. (Closes: #318807)
+ - Vietnamese, thanks Clytie Siddall. (Closes: #319705)
+ - Czech, thanks Martin Sin. (Closes: #319940)
+
+ -- Russ Allbery <rra@stanford.edu> Sun, 14 Aug 2005 14:41:48 -0700
+
+openafs (1.3.82-2) unstable; urgency=low
+
+ * Output error messages from heredocs in the init script with cat rather
+ than echo. Thanks, Reid Barton. (Closes: #311729)
+ * Make bosserver less picky about permissions and remove the attempt to
+ set /etc/openafs/server-local not-world-readable since dh_fixperms was
+ overridding it anyway. (Closes: #312921)
+ * Fix some spacing and capitalization errors in the debconf templates.
+ Thanks, Clytie Siddall. (Closes: #316597)
+ * Initial Czech translation, thanks Martin Sin. (Closes: #310699)
+ * New Vietnamese translation, thanks Clytie Siddall. (Closes: #316598)
+ * Update standards version to 3.6.2 (no changes required).
+
+ -- Russ Allbery <rra@stanford.edu> Mon, 11 Jul 2005 17:34:13 -0700
+
+openafs (1.3.82-1) unstable; urgency=medium
+
+ * New upstream version. (Closes: #307699)
+ - Proper locking for preempt kernels. This bug manifested as an
+ inability to shut down AFS cleanly. (Closes: #308399, #304040)
+ - Correctly handle the inotify semaphore. (Closes: #303495)
+ * Repackage upstream to remove MacOS-specific files covered by the APSL.
+ Remove the WINNT directory to save space since we have to repackage
+ anyway. Provide a get-orig-source target to do the repackaging.
+ * libpam-openafs-kaserver: Fix compilation so that the PAM module isn't
+ missing symbols and therefore unusable. (Closes: #308844)
+ * Apply patch from Chas Williams to fix stale cache data from deleted
+ files, a bug introduced in 1.3.82.
+ * In all cases, only build the module appropriate to the kernel we're
+ building against. Building an SMP module against a non-SMP kernel
+ fails due to missing defines. (Closes: #225907)
+ * README.modules: Add documentation for module-assistant and recommend
+ it when using Debian kernels. Mention divergences from upstream in
+ module naming. (Closes: #253168) Emphasize that the kernel source
+ tree used for make-kpkg must be identically configured to the kernel
+ the module will be used with.
+ * Update copyright with more complete information from upstream
+ src/LICENSE.
+ * Simplify clean target. Upstream make distclean is now better.
+
+ -- Russ Allbery <rra@stanford.edu> Tue, 10 May 2005 21:09:55 -0700
+
+openafs (1.3.81-5) unstable; urgency=low
+
+ * Handle modules named either with or without the .mp extension on SMP
+ hosts. (Closes: #305389, #307280, #307797)
+ * README.Debian: Document that the client cache partition must be ext2
+ or ext3 and that XFS and ReiserFS will not work. upserver and
+ upclient are now provided. Provide some information about why
+ kaserver is not provided. (Closes: #249315)
+ * Overhaul the module build rules.
+ - Use debhelper to build the module binary package.
+ - Let debhelper handle the module postinst and prerm control scripts.
+ - Properly support modules_config and modules_clean.
+ - Break the build process into configure, build, install, and binary
+ rules, paralleling the regular build rules and making it easier to
+ maintain the make-kpkg build targets.
+ - Include the kernel version in the long description.
+ - Update standards version of module packages to 3.6.1.
+ - Include the copyright and basic documentation in the module binary
+ package. Otherwise, policy requires an exact versioned dependency
+ on the package containing the copyright file.
+ * Update standards version to 3.6.1.
+ - Install Debian::OpenAFS::ConfigUtils in /usr/share, not /usr/lib.
+ - Always enable debugging symbols and disable optimization if noopt is
+ set in DEB_BUILD_OPTIONS. (Alas, this doesn't entirely work; the
+ upstream makefiles don't always honor the configure options.)
+ - /etc/init.d/openafs-fileserver restart starts bosserver if it's not
+ already running.
+ * Update debhelper compatibility level to V4.
+ - Remove all *.conffiles control files. They're no longer needed.
+ - Use misc:Depends to get debconf dependencies.
+ - Use dh_install rather than the movefiles script.
+ * openafs-dbserver doesn't need to depend on debconf.
+ * Use dh_perl to get the correct Perl dependency for openafs-dbserver.
+ * Remove unnecessary build dependencies.
+ * Depend on comerr-dev rather than e2fslibs-dev.
+ * Remove unnecessary preinst for openafs-fileserver.
+ * Clean up and reformat package build rules.
+ * Update lintian overrides.
+
+ -- Russ Allbery <rra@stanford.edu> Sat, 7 May 2005 20:57:12 -0700
+
+openafs (1.3.81-4) unstable; urgency=low
+
+ * make-kpkg doesn't run fakeroot for us but instead expects the module
+ rules file to use $(ROOT_CMD) appropriately. (Closes: #237861)
+ * Put the compiled modules into KPKG_DEST_DIR if set. This appears to
+ be preferred over DEB_DEST by the make-kpkg documentation. Thanks,
+ Jonas Smedegaard. (Closes: #206403)
+ * Add a check to afs-newcell to ensure the local hostname doesn't
+ resolve to 127.0.0.1. (Closes: #163751)
+ * Exclude .svn directories from the modules source tarball.
+ * Fix genchanges for module builds to not fail when trying to remove a
+ nonexistent file.
+ * New French translations from Christian Perrier, Closes: #305780
+
+ -- Russ Allbery <rra@stanford.edu> Sun, 17 Apr 2005 00:00:27 -0700
+
+openafs (1.3.81-3) unstable; urgency=low
+
+ * Patch from kcr to fix osconf.m4 so that sparc defines afs_pthread_env
+ and thus builds.
+
+ -- Sam Hartman <hartmans@debian.org> Wed, 6 Apr 2005 19:54:24 -0400
+
+openafs (1.3.81-2) unstable; urgency=low
+
+ * Oops, update debian/sysname because hppa is hppa not parisc-*-linux-*
+ since we now use dpkg --print-installation-architecture
+
+ -- Sam Hartman <hartmans@debian.org> Wed, 6 Apr 2005 11:10:14 -0400
+
+openafs (1.3.81-1) unstable; urgency=low
+
+ * New Upstream version
+ * Use Linux 2.4 as the claimed userspace OS for alpha; hopefully this
+ resolves the largefile issue and allows us to build again, Closes: #271923
+
+ -- Sam Hartman <hartmans@debian.org> Wed, 6 Apr 2005 08:08:29 -0400
+
+openafs (1.3.80-1) UNRELEASED; urgency=low
+
+ * New upstream version, Closes: #297781
+ * I think this works on sparc better and definitely works on 2.6.10, Closes: #283488
+ * Make thiscell a high debconf value, Closes: #302939
+ * New upstream version (1.3.79)
+ - Works with 2.6.10, Closes: #296835
+ * Use amd64 not x86_64 for sysname script, Closes: #296855
+ * Patches from kcr
+ - Loosen dependencies for client and modules
+ - Enable debugging
+ - Some callbacks later stuff and fix short bitfield
+ - Fix permissions on /etc/openafs/server-local, Closes: #271460
+
+ * Versions 1.3.79 an newer work on amd64, Closes: #262382
+
+ -- Sam Hartman <hartmans@debian.org> Mon, 4 Apr 2005 00:32:42 -0400
+
+openafs (1.3.77-1) unstable; urgency=low
+
+ * New upstream version
+ * Target for unstable not experimental
+ * New CellServDB
+ * OpenAFS seems not to have a changelog available, so stop shipping it.
+ * Build openafs.ko not libafs.ko so the right name appears in lsmod
+
+ -- Sam Hartman <hartmans@debian.org> Sat, 8 Jan 2005 20:02:23 -0500
+
+openafs (1.3.74-1) experimental; urgency=low
+
+ * New upstream version
+
+ -- Sam Hartman <hartmans@mit.edu> Mon, 15 Nov 2004 16:58:02 -0500
+
+openafs (1.3.73-1) experimental; urgency=low
+
+ * New upstream version
+ - Works with 2.6.8 and 2.6.9, Closes: #277521
+ * Remove call to dh_suidregister
+ * Update sysname to prefer 2.4 on more arches for largefile issues
+ * Patch from pnelson@ANDREW.CMU.EDU to add x86_64 support to sysname scripts
+ * debian/sysname: Use installation architecture
+
+ -- Sam Hartman <hartmans@debian.org> Wed, 27 Oct 2004 20:42:12 -0400
+
+openafs (1.3.71-1) experimental; urgency=low
+
+ * New upstream version
+
+ -- Sam Hartman <hartmans@mit.edu> Tue, 31 Aug 2004 09:45:59 -0400
+
+openafs (1.3.70-1) experimental; urgency=low
+
+ * New upstream version
+ * debian/kern-sysname: 2.6* not 2.6
+ * Enable supergroups and largefile-fileserver
+
+ -- Sam Hartman <hartmans@debian.org> Sun, 15 Aug 2004 18:56:48 -0400
+
+openafs (1.3.65-1) experimental; urgency=low
+
+ * New upstream Version, Closes: #256580
+
+ -- Sam Hartman <hartmans@debian.org> Mon, 28 Jun 2004 19:40:30 -0400
+
+openafs (1.3.64-2) experimental; urgency=low
+
+ * Allow loading of a .ko file not just .o
+
+ -- Sam Hartman <hartmans@debian.org> Mon, 31 May 2004 13:46:05 -0400
+
+openafs (1.3.64-1) experimental; urgency=low
+
+ * New upstream version
+ * Add 2.6 to kern-sysname for i386
+ * Apply patch from
+ /afs/cs.cmu.edu/user/jhutz/junk/openafs-patches/openafs-build-on-linux26 which correctly generates 2.6 modules, Closes: #234284
+ * use make only_libafs not dest_only_libafs
+ - AS a result, build times are much faster, Closes: #144781
+ * Correct module build scripts to install module package from new location
+ * Fix afslocaldir to be /etc/openafs/server-local, Closes: #237154
+
+ -- Sam Hartman <hartmans@debian.org> Sun, 30 May 2004 18:12:54 -0400
+
+openafs (1.2.12-1) unstable; urgency=medium
+
+ * New upstream version
+ * Medium urgency because this version fixes a significant server crash
+ bug. Windows clients, particularly greater than version 1.3.70 tend
+ to crash openafs servers.
+ * Cause openafs-kpasswd to conflict with kerberos4kth-clients, Closes:
+ #277844
+ * Conflict between libopenafs-dev and arla-dev, Closes: #274788
+
+ -- Sam Hartman <hartmans@debian.org> Fri, 22 Oct 2004 16:21:29 -0400
+
+openafs (1.2.11-3) unstable; urgency=high
+
+ * Now that libopenafs-dev contains binaries, it should have shared
+ library dependencies, Closes: #267509
+ * New fr.po from Christian Perrier, Closes: #237098
+
+ -- Sam Hartman <hartmans@debian.org> Tue, 24 Aug 2004 12:10:02 -0400
+
+openafs (1.2.11-2) unstable; urgency=low
+
+ * Install rxgen
+ * Install upserver and upclient
+ * Mark as version 1.2.11, Closes: #255883
+
+ -- Sam Hartman <hartmans@debian.org> Thu, 12 Aug 2004 14:27:39 -0400
+
+openafs (1.2.11-1) unstable; urgency=high
+
+ * Versions prior to 1.2.10 stopped working with multiple servers in a
+ cell because of a ubik bug prompting the 1.2.11 release.
+ * Fix afs startup script not to start afsd if already running; really
+ fixed in 1.2.10-3, but not documented, Closes: #219702
+
+ -- Sam Hartman <hartmans@debian.org> Sat, 10 Jan 2004 16:37:33 -0500
+
+openafs (1.2.10-3) unstable; urgency=low
+
+ * Fix Openafs not to include kernel headers from /usr/include,
+ Closes: #220600
+ * Fix typo in openafs templates, Closes: #215714
+ * New French translations, Closes: #216158
+ * Build-depend on e2fslibs-dev to get appropriate headers
+
+ -- Sam Hartman <hartmans@debian.org> Thu, 20 Nov 2003 16:02:45 -0500
+
+openafs (1.2.10-2) unstable; urgency=low
+
+ * New Brazilian Portuguese (pt_BR) translations, Closes: #208035
+ * Don't conflict with ircd, Closes: #204865
+ * Fix wording of question about using dynroot, Closes: #209332
+ * New French debconf translations, sorry about the delay in including these, Closes: #203608
+ * Avoid yes/no construction in openafs-client templates, Closes: #198476
+ * Fix libpam-openafs-kaserver to include the symbols it needs, patch
+ from Daniel Joseph Barnhart Clark , Closes: #194818
+
+ -- Sam Hartman <hartmans@debian.org> Mon, 13 Oct 2003 00:38:42 -0400
+
+openafs (1.2.10-1) unstable; urgency=low
+
+ * New upstream version
+ * net/*.h included properly by kernel module, Closes: #204642
+ * Don't build libafsrpc or libafsauthent, as we can't exactly use them
+ because they contain non-pic code, Closes: #203456
+ * I think I finally build the PAM module on hppa, Closes: #179679
+ * Decnet includes should work now because of the change of the net
+ symlink, Closes: #204486
+ * Escape $ in debian/rules, Closes: #204185
+
+ -- Sam Hartman <hartmans@debian.org> Sun, 24 Aug 2003 18:03:21 -0400
+
+openafs (1.2.9-3) unstable; urgency=low
+
+ * Add support for kernel headers, thanks to Patrick Sodre,
+ Closes: #173137
+ * Add patch to support the Debian 2.4.21 Kernel sources, thanks to amu,
+ Closes: #198774
+ * Add chronyd to list of programs we assume set the clock, thanks RISKO
+ Gergely, Closes: #201725
+ * Fix template formatting (extra leading spaces), Closes: #198477
+ * New French translations, thanks Christian Perrier, Closes: #198719
+ * Fix PAM problem on hppa, Closes: #179679
+ * Don't translate defaults: Closes: #198384
+ * Fix movefiles error handling and errors exposed by this change. The
+ contents of libopenafs-dev were somewhat wrong because of this.
+ * Make /usr/src/modules root.src 775, Closes: #201733
+
+ -- Sam Hartman <hartmans@debian.org> Sat, 26 Jul 2003 18:03:31 -0400
+
+openafs (1.2.9-2) unstable; urgency=low
+
+ * Fix to not build PAM krb since we don't install it and it breaks alpha, Closes: #189548
+ * Don't install pagsh man page symlink since we no longer link to
+ undocumented, Closes: #189860
+
+ -- Sam Hartman <hartmans@debian.org> Mon, 21 Apr 2003 21:05:51 -0400
+
+openafs (1.2.9-1) unstable; urgency=low
+
+ * Literal newline fixes, Closes: #175627
+ * Require new kernel modules per upstream change.
+ * New upstream version
+ * Fix section of libopenafs-dev to libdevel
+ * openafs-client stop should shut down afsd if it is running even if afs
+ not mounted, Closes: #188000
+ * Fix to build on alpha again; PAM patch was broken
+ * Report i386_linux24 not linux22 on i386, Closes: #187789
+ * Convert to po-debconf, patch from Andre Luis Lopes, CLoses: #187901
+ * Fix from Lamont to build on hppa, Closes: #179679
+
+ -- Sam Hartman <hartmans@debian.org> Sun, 13 Apr 2003 17:21:54 -0400
+
+openafs (1.2.8-4) unstable; urgency=low
+
+ * Fix from Eduard Bloch to compile on kernels with variable numbers of
+ CPUs; he is not sure it actually works yet though, Closes: #178505
+ * Patch that might possibly fix the fails to build on recent unstable;
+ definitely fixes a bug in include path handling, but I am not sure it
+ is a correct patch since I cannot reproduce the problem, Closes: #178154
+
+ -- Sam Hartman <hartmans@debian.org> Sun, 2 Feb 2003 14:08:14 -0500
+
+openafs (1.2.8-3) unstable; urgency=medium
+
+ * Patch from Eduard Bloch <blade@debian.org> to build the PAM module for
+ kaserver users; the main thing this patch does in create a bunch of
+ PIC object files so it is a policy-conformant shared library, Closes:
+ #174668
+ * Do not include -I/usr/include and especially -I/usr/include/sys in the
+ PAM Makefile so gcc 3.2 works; already fixed upstream, Closes: #176538
+
+ -- Sam Hartman <hartmans@debian.org> Sun, 19 Jan 2003 17:44:53 -0500
+
+openafs (1.2.8-2) unstable; urgency=low
+
+ * Convert v5 principal names to v4 style names in rxkad 2b. Especially
+ important for rcmd vs host
+ * Fix debian/rules clean to remove generated files, Closes: #174625
+ * Fix AFS not to declare errno, Closes: #174059
+
+ -- Sam Hartman <hartmans@debian.org> Fri, 3 Jan 2003 15:28:30 -0500
+
+openafs (1.2.8-1) unstable; urgency=low
+
+ * New upstream version
+
+ -- Sam Hartman <hartmans@debian.org> Tue, 10 Dec 2002 23:43:46 -0500
+
+openafs (1.2.7-3) unstable; urgency=low
+
+ * Apparently OpenAFS and ircd conflict on a UDP port, so you can't use
+ both at once, Closes: #150242
+ * Patch from seph to add -nosettime when ntp is installed, Closes: #155123
+ * Fix bosserver shutdown on restart after upgrade, Closes :#155586
+ * Install translate_et, Closes: #138672
+ * Allow byacc instead of bison
+
+ -- Sam Hartman <hartmans@debian.org> Tue, 3 Dec 2002 22:30:44 -0500
+
+openafs (1.2.7-2) unstable; urgency=low
+
+ * Fix uss to build with bison 1.50 and 1.75 so we can throw away the
+ resulting binaries, Closes: #164366
+ * Evaluate all limited range of comparison warnings; a warning in
+ rxkad_client.c remains but is harmless, other warnings pointed to
+ potential problems that were fixed, Closes: #162754
+ * Fix s390 modules to actually build, Closes: #162772
+
+ -- Sam Hartman <hartmans@debian.org> Sun, 20 Oct 2002 15:20:19 -0400
+
+openafs (1.2.7-1) unstable; urgency=low
+
+ * Fix typo in templates, Closes: #150356
+
+ * New upstream version
+
+ -- Sam Hartman <hartmans@debian.org> Thu, 26 Sep 2002 16:11:25 -0400
+
openafs (1.2.6-1) unstable; urgency=low
* Only run init script once; confusion with DH_OPTIONS
* Fix bosserver to look in /usr/openafs/lib so it restarts correctly every Sunday.
* Upload to Debian (Gloses: BUG#69336)
- -- Sam Hartman <hartmans@debian.org> Wed, 6 Dec 2000 11:21:53 -0500
-
-Do not generate .map file for module; depmod complains. *
+ * Do not generate .map file for module; depmod complains.
- --
+ -- Sam Hartman <hartmans@debian.org> Wed, 6 Dec 2000 11:21:53 -0500
openafs (1.0.1-1) unstable; urgency=low
-- unknown <hartmans@snorklewacker.mit.edu> Fri, 3 Nov 2000 23:41:41 -0500
-Local variables:
-mode: debian-changelog
-add-log-mailing-address "hartmans@snorklewacker.mit.edu"
-End:
Section: net
Priority: optional
Maintainer: Sam Hartman <hartmans@debian.org>
-Build-Depends: debhelper (>= 2.2.20), libncurses5-dev, libpam0g-dev, bison, docbook-to-man, flex, autoconf, automake, perl
-Standards-Version: 3.5.0
+Uploaders: Russ Allbery <rra@debian.org>
+Build-Depends: debhelper (>= 4.1.16), libncurses5-dev, libpam0g-dev, bison, docbook-to-man, flex, perl, comerr-dev
+Standards-Version: 3.6.2
Package: openafs-client
-Architecture: i386 powerpc sparc alpha s390 ia64
-Depends: ${shlibs:Depends}, debconf, openafs-modules-source|openafs-modules1
-Conflicts: arla, openafs-modules
-Description: The AFS distributed filesystem- client support
+Architecture: i386 powerpc sparc alpha s390 ia64 hppa amd64 ppc64
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Recommends: openafs-modules-source (>= 1.2.9) | openafs-modules2
+Suggests: openafs-doc
+Conflicts: arla, openafs-modules1
+Description: AFS distributed filesystem client support
AFS is a distributed filesystem allowing cross-platform sharing of
files among multiple computers. Facilities are provided for access
control, authentication, backup and administrative management.
Package: openafs-kpasswd
Priority: extra
-Architecture: i386 powerpc sparc alpha s390 ia64
-Depends: ${shlibs:Depends}, openafs-client (= ${Source-Version})
-Conflicts: krb5-user, heimdal-clients
-Description: The AFS distributed filesystem- old password changing
+Architecture: i386 powerpc sparc alpha s390 ia64 hppa amd64 ppc64
+Depends: ${shlibs:Depends}, openafs-client
+Conflicts: krb5-user, heimdal-clients, kerberos4kth-clients
+Description: AFS distributed filesystem old password changing
AFS is a distributed filesystem allowing cross-platform sharing of
files among multiple computers. Facilities are provided for access
control, authentication, backup and administrative management.
.
- This package provides kpasswd and kas, utilities needed by the
- Transarc kaserver to create users and change passwords. Only install
- this package if you are already using kaserver; generally you should
- not install this package for new cells or for cells using Kerberos5.
+ This package provides kpasswd and kas, utilities needed by the OpenAFS
+ kaserver to create users and change passwords. Only install this package
+ if you are already using kaserver; generally you should not install this
+ package for new cells or for cells using Kerberos v5.
Package: openafs-fileserver
-Architecture: i386 powerpc sparc alpha s390 ia64
-Depends: ${shlibs:Depends}, debconf, openafs-client (= ${Source-Version})
+Architecture: i386 powerpc sparc alpha s390 ia64 hppa amd64 ppc64
+Depends: ${shlibs:Depends}, ${misc:Depends}, openafs-client
Recommends: ntp
-Description: The AFS distributed filesystem- file server
+Suggests: openafs-doc
+Description: AFS distributed filesystem file server
AFS is a distributed filesystem allowing cross-platform sharing of
files among multiple computers. Facilities are provided for access
control, authentication, backup and administrative management.
installed on any machine that will export files into AFS.
Package: openafs-dbserver
-Architecture: i386 powerpc sparc alpha s390 ia64
-Depends: ${shlibs:Depends}, debconf, openafs-fileserver (= ${Source-Version}), openafs-client (= ${Source-Version}), perl5
+Architecture: i386 powerpc sparc alpha s390 ia64 hppa amd64 ppc64
+Depends: ${shlibs:Depends}, ${perl:Depends}, openafs-fileserver, openafs-client
+Suggests: openafs-doc
Conflicts: openafs-ptutil
Replaces: openafs-ptutil
Provides: openafs-ptutil
-Description: The AFS distributed filesystem- database server
+Description: AFS distributed filesystem database server
AFS is a distributed filesystem allowing cross-platform sharing of
files among multiple computers. Facilities are provided for access
control, authentication, backup and administrative management.
protection servers.
Package: libopenafs-dev
-Section: devel
-Architecture: i386 powerpc sparc alpha s390 ia64
+Section: libdevel
+Architecture: i386 powerpc sparc alpha s390 ia64 hppa amd64 ppc64
Priority: extra
-Description: The AFS distributed filesystem- development libraries
+Depends: ${shlibs:Depends}
+Suggests: openafs-doc
+Conflicts: arla-dev
+Description: AFS distributed filesystem development libraries
AFS is a distributed filesystem allowing cross-platform sharing of
files among multiple computers. Facilities are provided for access
control, authentication, backup and administrative management.
Package: openafs-modules-source
Priority: extra
-Depends: bison, flex, debhelper, libpam0g-dev, libncurses5-dev, kernel-package
+Depends: bison, flex, debhelper (>= 4.0.0), kernel-package | module-assistant
Architecture: all
-Description: The AFS distributed filesystem- Module Sources
+Description: AFS distributed filesystem kernel module source
AFS is a distributed filesystem allowing cross-platform sharing of
files among multiple computers. Facilities are provided for access
control, authentication, backup and administrative management.
.
This package provides source to the AFS kernel modules.
+Package: libpam-openafs-kaserver
+Priority: extra
+Depends: ${shlibs:Depends}, openafs-client
+Architecture: i386 powerpc sparc alpha s390 ia64 hppa amd64 ppc64
+Description: AFS distributed filesystem kaserver PAM module
+ AFS is a distributed filesystem allowing cross-platform sharing of
+ files among multiple computers. Facilities are provided for access
+ control, authentication, backup and administrative management.
+ .
+ This package provides a PAM module for existing sites using the AFS
+ kaserver for authentication. New sites should use a Kerberos v5
Section: net
Priority: optional
Maintainer: Sam Hartman <hartmans@debian.org>
-Standards-Version: 3.1.1
+Uploaders: Russ Allbery <rra@debian.org>
+Build-Depends: debhelper (>= 4.1.16), flex, bison
+Standards-Version: 3.6.2
Package: openafs-modules-=KVERS
-Conflicts: openafs-client (<< 1.2.2-0)
-Provides: openafs-modules1
+Conflicts: openafs-client (<< 1.2.9)
+Provides: openafs-modules2
Architecture: any
-Description: The AFS distributed filesystem- Kernel Module
+Recommends: =IMG-=KVERS
+Description: AFS distributed filesystem kernel module
AFS is a distributed filesystem allowing cross-platform sharing of
files among multiple computers. Facilities are provided for access
control, authentication, backup and administrative management.
.
- This package provides the kernel module for the filesystem
+ This package provides the compiled AFS kernel module for kernel
+ version =KVERS.
This package was debianized by Sam Hartman <hartmans@debian.org> on
Fri, 3 Nov 2000 23:41:41 -0500.
-It was downloaded from the Openafs CVS repository.
+It was downloaded from either:
-Upstream Maintainers(s):openafs-gatekeepers@openafs.org
+ http://www.openafs.org/release/
+ /afs/grand.central.org/software/openafs/
+
+Upstream Maintainers:
+
+ openafs-gatekeepers@openafs.org
+
+The upstream source has been repackaged to remove the src/packaging/MacOS
+directory, which contained a file (afssettings.m) that was covered under
+the Apple Public Source License 2.0. This license is not considered
+DFSG-free. Since the repackaging was needed anyway, the WINNT directory
+was also dropped, reducing the size of the upstream tarball by 8MB.
Copyright:
party to this Agreement will bring a legal action under this Agreement
more than one year after the cause of action arose. Each party waives
its rights to a jury trial in any resulting litigation.
+
+Kerberos 5 ticket support in rxkad is subject to the following copyright:
+/*
+ * Copyright (c) 1995, 1996, 1997, 2002 Kungliga Tekniska Högskolan
+ * (Royal Institute of Technology, Stockholm, Sweden).
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+Some code in rxkad/ticket5.c is subject to the following copyright:
+/*
+ * Copyright 1992, 2002 by the Massachusetts Institute of Technology.
+ * All Rights Reserved.
+ *
+ * Export of this software from the United States of America may
+ * require a specific license from the United States Government.
+ * It is the responsibility of any person or organization contemplating
+ * export to obtain such a license before exporting.
+ *
+ * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
+ * distribute this software and its documentation for any purpose and
+ * without fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright notice and
+ * this permission notice appear in supporting documentation, and that
+ * the name of M.I.T. not be used in advertising or publicity pertaining
+ * to distribution of the software without specific, written prior
+ * permission. Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is" without express
+ * or implied warranty.
+ */
+
+Some portions of Rx are subject to the following license:
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part. Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user or with the express written consent of
+ * Sun Microsystems, Inc.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California 94043
+ */
--- /dev/null
+#!/bin/sh
+#
+# Install man pages, but fixing up paths as we go. All of the man pages
+# are written to use the Transarc paths, and this script fixes those paths to
+# be correct for the chosen configure options as the man pages are installed.
+
+set -e
+
+manpage="$1"
+dest="$2"
+
+afsbackupdir=/var/lib/openafs/backup
+afsbosconfigdir=/etc/openafs
+afsconfdir=/etc/openafs/server
+afsdbdir=/var/lib/openafs/db
+afslocaldir=/etc/openafs/server-local
+afslogsdir=/var/log/openafs
+afssrvlibexecdir=/usr/lib/openafs
+viceetcdir=/etc/openafs
+
+# Build a particular man page. Takes the section title, the section number,
+# the filename of the POD page, and the output file.
+buildpage () {
+ pod2man -c "$1" -r OpenAFS -s "$2" "$3" | \
+ sed -e "s%/usr/afs/local/BosConfig%${afsbosconfigdir}/BosConfig%g" \
+ -e "s%/usr/afs/etc%${afsconfdir}%g" \
+ -e "s%/usr/afs/backup%${afsbackupdir}%g" \
+ -e "s%/usr/afs/bin%${afssrvlibexecdir}%g" \
+ -e "s%/usr/afs/db%${afsdbdir}%g" \
+ -e "s%/usr/afs/local%${afslocaldir}%g" \
+ -e "s%/usr/afs/logs%${afslogsdir}%g" \
+ -e "s%/usr/vice/etc%${viceetcdir}%g" > "$4"
+}
+
+# Create the output directories.
+mkdir -p man1 man5 man8
+
+# Do the work with lots of calls to buildpage.
+cd pod1
+for f in *.pod ; do
+ buildpage 'AFS Command Reference' 1 "$f" \
+ ../man1/`echo "$f" | sed 's/\.pod$//'`.1
+done
+cd ..
+cd pod5
+for f in *.pod ; do
+ buildpage 'AFS File Reference' 5 "$f" \
+ ../man5/`echo "$f" | sed 's/\.pod$//'`.5
+done
+cd ..
+cd pod8
+for f in *.pod ; do
+ buildpage 'AFS Command Reference' 8 "$f" \
+ ../man8/`echo "$f" | sed 's/\.pod$//'`.8
+done
+cd ..
# genchanges.sh - generate a changes file for a deb file generated via
# the make-kpkg utility
-# KSRC KMAINT and KEMAIL are expected to be passed through the environment
+# KSRC, KVERS, KMAINT, and KEMAIL are expected to be passed through the
+# environment.
set -e
umask 022
-#KVERS=`cat debian/KVERS`
MODVERS=`cat debian/VERSION | sed s/:/\+/`
ARCH=`dpkg --print-architecture`
mprefix=`grep Package: debian/control.module | cut -d' ' -f 2 | cut -d= -f 1`
-
-# the changes file's name
chfile="$KSRC/../$mprefix${KVERS}${INT_SUBARCH}_${MODVERS}_${ARCH}.changes"
dpkg-genchanges -b ${KMAINT:+-m"$KMAINT <$KEMAIL>"} -u"$KSRC/.." \
- -cdebian/control > "$chfile"
-#pgp -fast ${KMAINT:+-u"$KMAINT"} < "$chfile.pt" > "$chfile"
-rm "$chfile.pt"
+ -cdebian/control > "$chfile"
+#debsign "$chfile"
#!/bin/sh
+
+if [ x"$KVERS" = x ] ; then
+ echo "ERROR: no kernel version" >&2
+ echo " ($KSRC/include/linux/version.h not found?)" >&2
+ echo UNKNOWN
+ exit 1
+fi
+
case `arch` in
i[3456]86)
- case $KVERS in
- 2.2*)
- echo i386_linux22
- ;;
- 2.4*)
- echo i386_linux24
- ;;
- esac
-;;
- ia64)
- case $KVERS in
- 2.4*)
- echo ia64_linux24
- ;;
- 2.6*)
- echo ia64_linux26
- ;;
- esac
- ;;
- alpha)
- case $KVERS in
- 2.2*)
- echo alpha_linux_22
- ;;
- 2.4*)
- echo alpha_linux_24
- ;;
- esac
-;;
- sparc)
- case $KVERS in
- 2.2*)
- echo sparc_linux22
- ;;
- 2.4*)
- echo sparc_linux24
- ;;
- esac
- ;;
- sparc64)
- case $KVERS in
- 2.2*)
- echo sparc64_linux22
- ;;
- 2.4*)
- echo sparc64_linux24
- ;;
- esac
- ;;
-
- ppc)
- case $KVERS in
- 2.2*)
- echo ppc_linux22
- ;;
- 2.4*)
- echo ppc_linux24
- ;;
- esac
- ;;
- *)
- echo ERROr: sysname not yet known
- exit 1
-
+ case $KVERS in
+ 2.2*)
+ echo i386_linux22
+ ;;
+ 2.4*)
+ echo i386_linux24
+ ;;
+ 2.6*)
+ echo i386_linux26
+ ;;
+ esac
+ ;;
+x86_64)
+ case $KVERS in
+ 2.4*)
+ echo amd64_linux24
+ ;;
+ 2.6*)
+ echo amd64_linux26
+ ;;
+ esac
+ ;;
+ia64)
+ echo ia64_linux24
+ ;;
+alpha)
+ case $KVERS in
+ 2.2*)
+ echo alpha_linux_22
+ ;;
+ 2.4*)
+ echo alpha_linux_24
+ ;;
+ esac
+ ;;
+sparc)
+ case $KVERS in
+ 2.2*)
+ echo sparc_linux22
+ ;;
+ 2.4*)
+ echo sparc_linux24
+ ;;
+ esac
+ ;;
+sparc64)
+ case $KVERS in
+ 2.2*)
+ echo sparc64_linux22
+ ;;
+ 2.4*)
+ echo sparc64_linux24
+ ;;
+ esac
+ ;;
+ppc)
+ case $KVERS in
+ 2.2*)
+ echo ppc_linux22
+ ;;
+ 2.4*)
+ echo ppc_linux24
+ ;;
+ 2.6)
+ echo ppc_linux26
+ ;;
+ esac
+ ;;
+ppc64)
+ case $KVERS in
+ 2.4*)
+ echo ppc64_linux24
+ ;;
+ 2.6*)
+ echo ppc64_linux26
+ ;;
+ esac
+ ;;
+s390)
+ echo s390_linux24
+ ;;
+*)
+ echo "ERROR: unsupported architecture" >&2
+ echo UNKNOWN
+ exit 1
esac
--- /dev/null
+#!/usr/bin/perl
+#
+# Extract the kernel version from the kernel version header file. Takes the
+# kernel source path as its only argument. If the version header couldn't be
+# found, print nothing and exit quietly.
+
+my $ksrc = shift;
+unless ($ksrc && open (VERSION, "$ksrc/include/linux/version.h")) {
+ exit 0;
+}
+my $line = <VERSION>;
+if ($line =~ /"(.+)"/) {
+ print "$1\n";
+}
+exit 0;
--- /dev/null
+debian/tmp/usr/bin/rxgen usr/bin
+
+debian/tmp/usr/include usr
+
+debian/tmp/usr/lib/*.a usr/lib
+debian/tmp/usr/lib/afs usr/lib
+
+debian/doc/man1/rxgen.1 usr/share/man/man1
--- /dev/null
+lib/security
+usr/share/doc
#!/bin/sh -e
-. /usr/share/debconf/confmodule ||exit
+. /usr/share/debconf/confmodule || exit
db_version 2.0
if [ -r /etc/openafs/ThisCell ] ; then
IFS=: read mountpoint cachedir cachesize </etc/openafs/cacheinfo
db_set openafs-client/cachesize $cachesize
fi
-db_input medium openafs-client/thiscell ||true
+db_input high openafs-client/thiscell ||true
db_input critical openafs-client/cachesize ||true
db_go
test -f /etc/openafs/afs.conf &&. /etc/openafs/afs.conf
debian/README.servers
debian/configuration-transcript.txt
debian/README.modules
-NEWS
-RELNOTES-1.2.6
--- /dev/null
+debian/afs.conf etc/openafs
+
+debian/tmp/usr/bin/afsmonitor usr/bin
+debian/tmp/usr/bin/bos usr/bin
+debian/tmp/usr/bin/cmdebug usr/bin
+debian/tmp/usr/bin/fs usr/bin
+debian/tmp/usr/bin/klog usr/bin
+debian/tmp/usr/bin/livesys usr/bin
+debian/tmp/usr/bin/pagsh usr/bin
+debian/tmp/usr/bin/pts usr/bin
+debian/tmp/usr/bin/scout usr/bin
+debian/tmp/usr/bin/sys usr/bin
+debian/tmp/usr/bin/tokens usr/bin
+debian/tmp/usr/bin/translate_et usr/bin
+debian/tmp/usr/bin/udebug usr/bin
+debian/tmp/usr/bin/unlog usr/bin
+debian/tmp/usr/bin/up usr/bin
+debian/tmp/usr/bin/xstat_cm_test usr/bin
+debian/tmp/usr/bin/xstat_fs_test usr/bin
+
+debian/tmp/usr/sbin/rxdebug usr/bin
+debian/tmp/usr/sbin/vos usr/bin
+
+debian/tmp/usr/sbin/backup usr/sbin
+debian/tmp/usr/sbin/butc usr/sbin
+debian/tmp/usr/sbin/fms usr/sbin
+debian/tmp/usr/sbin/fstrace usr/sbin
+
+debian/tmp/usr/sbin/afsd sbin
+
+src/afs/afszcm.cat usr/share/openafs
+
+debian/CellServDB usr/share/openafs
+
+debian/doc/man1/afs.1 usr/share/man/man1
+debian/doc/man1/afsmonitor.1 usr/share/man/man1
+debian/doc/man1/bos.1 usr/share/man/man1
+debian/doc/man1/bos_addhost.1 usr/share/man/man1
+debian/doc/man1/bos_addkey.1 usr/share/man/man1
+debian/doc/man1/bos_adduser.1 usr/share/man/man1
+debian/doc/man1/bos_apropos.1 usr/share/man/man1
+debian/doc/man1/bos_create.1 usr/share/man/man1
+debian/doc/man1/bos_delete.1 usr/share/man/man1
+debian/doc/man1/bos_exec.1 usr/share/man/man1
+debian/doc/man1/bos_getdate.1 usr/share/man/man1
+debian/doc/man1/bos_getlog.1 usr/share/man/man1
+debian/doc/man1/bos_getrestart.1 usr/share/man/man1
+debian/doc/man1/bos_help.1 usr/share/man/man1
+debian/doc/man1/bos_install.1 usr/share/man/man1
+debian/doc/man1/bos_listhosts.1 usr/share/man/man1
+debian/doc/man1/bos_listkeys.1 usr/share/man/man1
+debian/doc/man1/bos_listusers.1 usr/share/man/man1
+debian/doc/man1/bos_prune.1 usr/share/man/man1
+debian/doc/man1/bos_removehost.1 usr/share/man/man1
+debian/doc/man1/bos_removekey.1 usr/share/man/man1
+debian/doc/man1/bos_removeuser.1 usr/share/man/man1
+debian/doc/man1/bos_restart.1 usr/share/man/man1
+debian/doc/man1/bos_salvage.1 usr/share/man/man1
+debian/doc/man1/bos_setauth.1 usr/share/man/man1
+debian/doc/man1/bos_setcellname.1 usr/share/man/man1
+debian/doc/man1/bos_setrestart.1 usr/share/man/man1
+debian/doc/man1/bos_shutdown.1 usr/share/man/man1
+debian/doc/man1/bos_start.1 usr/share/man/man1
+debian/doc/man1/bos_startup.1 usr/share/man/man1
+debian/doc/man1/bos_status.1 usr/share/man/man1
+debian/doc/man1/bos_stop.1 usr/share/man/man1
+debian/doc/man1/bos_uninstall.1 usr/share/man/man1
+debian/doc/man1/cmdebug.1 usr/share/man/man1
+debian/doc/man1/fs.1 usr/share/man/man1
+debian/doc/man1/fs_apropos.1 usr/share/man/man1
+debian/doc/man1/fs_checkservers.1 usr/share/man/man1
+debian/doc/man1/fs_checkvolumes.1 usr/share/man/man1
+debian/doc/man1/fs_cleanacl.1 usr/share/man/man1
+debian/doc/man1/fs_copyacl.1 usr/share/man/man1
+debian/doc/man1/fs_diskfree.1 usr/share/man/man1
+debian/doc/man1/fs_examine.1 usr/share/man/man1
+debian/doc/man1/fs_exportafs.1 usr/share/man/man1
+debian/doc/man1/fs_flush.1 usr/share/man/man1
+debian/doc/man1/fs_flushmount.1 usr/share/man/man1
+debian/doc/man1/fs_flushvolume.1 usr/share/man/man1
+debian/doc/man1/fs_getcacheparms.1 usr/share/man/man1
+debian/doc/man1/fs_getcellstatus.1 usr/share/man/man1
+debian/doc/man1/fs_getclientaddrs.1 usr/share/man/man1
+debian/doc/man1/fs_getserverprefs.1 usr/share/man/man1
+debian/doc/man1/fs_help.1 usr/share/man/man1
+debian/doc/man1/fs_listacl.1 usr/share/man/man1
+debian/doc/man1/fs_listcells.1 usr/share/man/man1
+debian/doc/man1/fs_listquota.1 usr/share/man/man1
+debian/doc/man1/fs_lsmount.1 usr/share/man/man1
+debian/doc/man1/fs_messages.1 usr/share/man/man1
+debian/doc/man1/fs_mkmount.1 usr/share/man/man1
+debian/doc/man1/fs_newcell.1 usr/share/man/man1
+debian/doc/man1/fs_quota.1 usr/share/man/man1
+debian/doc/man1/fs_rmmount.1 usr/share/man/man1
+debian/doc/man1/fs_setacl.1 usr/share/man/man1
+debian/doc/man1/fs_setcachesize.1 usr/share/man/man1
+debian/doc/man1/fs_setcell.1 usr/share/man/man1
+debian/doc/man1/fs_setclientaddrs.1 usr/share/man/man1
+debian/doc/man1/fs_setquota.1 usr/share/man/man1
+debian/doc/man1/fs_setserverprefs.1 usr/share/man/man1
+debian/doc/man1/fs_setvol.1 usr/share/man/man1
+debian/doc/man1/fs_storebehind.1 usr/share/man/man1
+debian/doc/man1/fs_sysname.1 usr/share/man/man1
+debian/doc/man1/fs_whereis.1 usr/share/man/man1
+debian/doc/man1/fs_whichcell.1 usr/share/man/man1
+debian/doc/man1/fs_wscell.1 usr/share/man/man1
+debian/doc/man1/klog.1 usr/share/man/man1
+debian/doc/man1/livesys.1 usr/share/man/man1
+debian/doc/man1/pagsh.1 usr/share/man/man1
+debian/doc/man1/pts.1 usr/share/man/man1
+debian/doc/man1/pts_adduser.1 usr/share/man/man1
+debian/doc/man1/pts_apropos.1 usr/share/man/man1
+debian/doc/man1/pts_chown.1 usr/share/man/man1
+debian/doc/man1/pts_creategroup.1 usr/share/man/man1
+debian/doc/man1/pts_createuser.1 usr/share/man/man1
+debian/doc/man1/pts_delete.1 usr/share/man/man1
+debian/doc/man1/pts_examine.1 usr/share/man/man1
+debian/doc/man1/pts_help.1 usr/share/man/man1
+debian/doc/man1/pts_listentries.1 usr/share/man/man1
+debian/doc/man1/pts_listmax.1 usr/share/man/man1
+debian/doc/man1/pts_listowned.1 usr/share/man/man1
+debian/doc/man1/pts_membership.1 usr/share/man/man1
+debian/doc/man1/pts_removeuser.1 usr/share/man/man1
+debian/doc/man1/pts_rename.1 usr/share/man/man1
+debian/doc/man1/pts_setfields.1 usr/share/man/man1
+debian/doc/man1/pts_setmax.1 usr/share/man/man1
+debian/doc/man1/rxdebug.1 usr/share/man/man1
+debian/doc/man1/scout.1 usr/share/man/man1
+debian/doc/man1/sys.1 usr/share/man/man1
+debian/doc/man1/tokens.1 usr/share/man/man1
+debian/doc/man1/translate_et.1 usr/share/man/man1
+debian/doc/man1/udebug.1 usr/share/man/man1
+debian/doc/man1/unlog.1 usr/share/man/man1
+debian/doc/man1/up.1 usr/share/man/man1
+debian/doc/man1/vos.1 usr/share/man/man1
+debian/doc/man1/vos_addsite.1 usr/share/man/man1
+debian/doc/man1/vos_apropos.1 usr/share/man/man1
+debian/doc/man1/vos_backup.1 usr/share/man/man1
+debian/doc/man1/vos_backupsys.1 usr/share/man/man1
+debian/doc/man1/vos_changeaddr.1 usr/share/man/man1
+debian/doc/man1/vos_create.1 usr/share/man/man1
+debian/doc/man1/vos_delentry.1 usr/share/man/man1
+debian/doc/man1/vos_dump.1 usr/share/man/man1
+debian/doc/man1/vos_examine.1 usr/share/man/man1
+debian/doc/man1/vos_help.1 usr/share/man/man1
+debian/doc/man1/vos_listaddrs.1 usr/share/man/man1
+debian/doc/man1/vos_listpart.1 usr/share/man/man1
+debian/doc/man1/vos_listvldb.1 usr/share/man/man1
+debian/doc/man1/vos_listvol.1 usr/share/man/man1
+debian/doc/man1/vos_lock.1 usr/share/man/man1
+debian/doc/man1/vos_move.1 usr/share/man/man1
+debian/doc/man1/vos_partinfo.1 usr/share/man/man1
+debian/doc/man1/vos_release.1 usr/share/man/man1
+debian/doc/man1/vos_remove.1 usr/share/man/man1
+debian/doc/man1/vos_remsite.1 usr/share/man/man1
+debian/doc/man1/vos_rename.1 usr/share/man/man1
+debian/doc/man1/vos_restore.1 usr/share/man/man1
+debian/doc/man1/vos_status.1 usr/share/man/man1
+debian/doc/man1/vos_syncserv.1 usr/share/man/man1
+debian/doc/man1/vos_syncvldb.1 usr/share/man/man1
+debian/doc/man1/vos_unlock.1 usr/share/man/man1
+debian/doc/man1/vos_unlockvldb.1 usr/share/man/man1
+debian/doc/man1/vos_zap.1 usr/share/man/man1
+debian/doc/man1/xstat_cm_test.1 usr/share/man/man1
+debian/doc/man1/xstat_fs_test.1 usr/share/man/man1
+
+debian/doc/man5/CellServDB.5 usr/share/man/man5
+debian/doc/man5/NetInfo.5 usr/share/man/man5
+debian/doc/man5/NetRestrict.5 usr/share/man/man5
+debian/doc/man5/ThisCell.5 usr/share/man/man5
+debian/doc/man5/afs.5 usr/share/man/man5
+debian/doc/man5/afs_cache.5 usr/share/man/man5
+debian/doc/man5/afsmonitor.5 usr/share/man/man5
+debian/doc/man5/afszcm.cat.5 usr/share/man/man5
+debian/doc/man5/butc.5 usr/share/man/man5
+debian/doc/man5/butc_logs.5 usr/share/man/man5
+debian/doc/man5/cacheinfo.5 usr/share/man/man5
+debian/doc/man5/tapeconfig.5 usr/share/man/man5
+
+debian/doc/man8/afsd.8 usr/share/man/man8
+debian/doc/man8/backup.8 usr/share/man/man8
+debian/doc/man8/backup_adddump.8 usr/share/man/man8
+debian/doc/man8/backup_addhost.8 usr/share/man/man8
+debian/doc/man8/backup_addvolentry.8 usr/share/man/man8
+debian/doc/man8/backup_addvolset.8 usr/share/man/man8
+debian/doc/man8/backup_apropos.8 usr/share/man/man8
+debian/doc/man8/backup_dbverify.8 usr/share/man/man8
+debian/doc/man8/backup_deldump.8 usr/share/man/man8
+debian/doc/man8/backup_deletedump.8 usr/share/man/man8
+debian/doc/man8/backup_delhost.8 usr/share/man/man8
+debian/doc/man8/backup_delvolentry.8 usr/share/man/man8
+debian/doc/man8/backup_delvolset.8 usr/share/man/man8
+debian/doc/man8/backup_diskrestore.8 usr/share/man/man8
+debian/doc/man8/backup_dump.8 usr/share/man/man8
+debian/doc/man8/backup_dumpinfo.8 usr/share/man/man8
+debian/doc/man8/backup_help.8 usr/share/man/man8
+debian/doc/man8/backup_interactive.8 usr/share/man/man8
+debian/doc/man8/backup_jobs.8 usr/share/man/man8
+debian/doc/man8/backup_kill.8 usr/share/man/man8
+debian/doc/man8/backup_labeltape.8 usr/share/man/man8
+debian/doc/man8/backup_listdumps.8 usr/share/man/man8
+debian/doc/man8/backup_listhosts.8 usr/share/man/man8
+debian/doc/man8/backup_listvolsets.8 usr/share/man/man8
+debian/doc/man8/backup_quit.8 usr/share/man/man8
+debian/doc/man8/backup_readlabel.8 usr/share/man/man8
+debian/doc/man8/backup_restoredb.8 usr/share/man/man8
+debian/doc/man8/backup_savedb.8 usr/share/man/man8
+debian/doc/man8/backup_scantape.8 usr/share/man/man8
+debian/doc/man8/backup_setexp.8 usr/share/man/man8
+debian/doc/man8/backup_status.8 usr/share/man/man8
+debian/doc/man8/backup_volinfo.8 usr/share/man/man8
+debian/doc/man8/backup_volrestore.8 usr/share/man/man8
+debian/doc/man8/backup_volsetrestore.8 usr/share/man/man8
+debian/doc/man8/butc.8 usr/share/man/man8
+debian/doc/man8/fms.8 usr/share/man/man8
+debian/doc/man8/fstrace.8 usr/share/man/man8
+debian/doc/man8/fstrace_apropos.8 usr/share/man/man8
+debian/doc/man8/fstrace_clear.8 usr/share/man/man8
+debian/doc/man8/fstrace_dump.8 usr/share/man/man8
+debian/doc/man8/fstrace_help.8 usr/share/man/man8
+debian/doc/man8/fstrace_lslog.8 usr/share/man/man8
+debian/doc/man8/fstrace_lsset.8 usr/share/man/man8
+debian/doc/man8/fstrace_setlog.8 usr/share/man/man8
+debian/doc/man8/fstrace_setset.8 usr/share/man/man8
-openafs-client: link-to-undocumented-manpage
openafs-client: non-standard-dir-perm
openafs-client: postinst-uses-db-input
#! /bin/sh
-# postinst script for openafs
+#
+# Summary of how this script can be called:
+#
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
set -e
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-
case "$1" in
- configure)
+configure)
+ update-alternatives --install /usr/bin/pagsh pagsh \
+ /usr/bin/pagsh.openafs 100 \
+ --slave /usr/share/man/man1/pagsh.1.gz pagsh.1.gz \
+ /usr/share/man/man1/pagsh.openafs.1.gz
- update-alternatives --install /usr/bin/pagsh pagsh /usr/bin/pagsh.openafs 100 \
- --slave /usr/share/man/man1/pagsh.1.gz pagsh.1.gz /usr/share/man/man1/pagsh.openafs.1.gz
+ test -d /afs || mkdir /afs
- test -d /afs || mkdir /afs
. /usr/share/debconf/confmodule
-
- db_version 2.0
-
- db_get openafs-client/thiscell
- echo $RET >/etc/openafs/ThisCell
- THISCELL=$RET
-
- if test -f /etc/openafs/CellServDB; then :
- else cp /usr/share/openafs/CellServDB \
- /etc/openafs
- fi
- if grep -q -F "$RET" /etc/openafs/CellServDB&& [ "x$RET" != "x" ] ; then :
- else db_input critical openafs-client/cell-info || true
- db_input high openafs-client/run-client ||true
- db_go
- db_get openafs-client/cell-info
- if [ "x$RET" != "x" ] ; then
- echo \>$THISCELL >/etc/openafs/CellServDB.new
- perl -MSocket -e 'foreach (@ARGV) {' \
- -e '@a=gethostbyname($_) and ' \
- -e 'printf("%s\t\t# %s\n",inet_ntoa($a[4]),$a[0]) }' $RET \
- >>/etc/openafs/CellServDB.new
- if [ `wc -l </etc/openafs/CellServDB.new` -eq 1 ] ; then
- echo None of the hostnames resolved to an address 2>&1
- db_reset openafs-client/cell-info ||true
- exit 1
- fi
- cat /etc/openafs/CellServDB.new \
- /etc/openafs/CellServDB >/etc/openafs/CellServDB.tmp
- mv /etc/openafs/CellServDB.tmp \
- /etc/openafs/CellServDB
- rm /etc/openafs/CellServDB.new
- fi
- fi
-
- db_get openafs-client/cachesize
- echo /afs:/var/cache/openafs:$RET >/etc/openafs/cacheinfo
-
- db_get openafs-client/run-client
- echo AFS_CLIENT=$RET >/etc/openafs/afs.conf.client
- db_get openafs-client/afsdb
- echo AFS_AFSDB=$RET >>/etc/openafs/afs.conf.client
- db_get openafs-client/crypt
- echo AFS_CRYPT=$RET >>/etc/openafs/afs.conf.client
-db_get openafs-client/dynroot
-echo AFS_DYNROOT=$RET >>/etc/openafs/afs.conf.client
-db_get openafs-client/fakestat
-echo AFS_FAKESTAT=$RET >>/etc/openafs/afs.conf.client
+ db_version 2.0
+
+ db_get openafs-client/thiscell
+ echo $RET >/etc/openafs/ThisCell
+ THISCELL=$RET
+
+ if test -f /etc/openafs/CellServDB ; then
+ :
+ else
+ cp /usr/share/openafs/CellServDB /etc/openafs
+ fi
+
+ # If ThisCell is not in CellServDB, we have to prompt the user for the
+ # VLDB servers. Unfortunately, we can't do this in config because we
+ # need the CellServDB file, which is part of the package. We have to
+ # override a lintian warning for this since prompts at installation time
+ # are frowned upon.
+ if grep -q -F "$RET" /etc/openafs/CellServDB && [ "x$RET" != "x" ] ; then
+ :
+ else
+ db_input critical openafs-client/cell-info || true
+ db_input high openafs-client/run-client || true
+ db_go
+ db_get openafs-client/cell-info
+ if [ "x$RET" != "x" ] ; then
+ echo \>$THISCELL > /etc/openafs/CellServDB.new
+ perl -MSocket -e 'foreach (@ARGV) {' \
+ -e '@a=gethostbyname($_) and ' \
+ -e 'printf("%s\t\t# %s\n",inet_ntoa($a[4]),$a[0]) }' $RET \
+ >>/etc/openafs/CellServDB.new
+ if [ `wc -l </etc/openafs/CellServDB.new` -eq 1 ] ; then
+ echo None of the hostnames resolved to an address 2>&1
+ db_reset openafs-client/cell-info || true
+ exit 1
+ fi
+ cat /etc/openafs/CellServDB.new /etc/openafs/CellServDB \
+ >/etc/openafs/CellServDB.tmp
+ mv /etc/openafs/CellServDB.tmp /etc/openafs/CellServDB
+ rm /etc/openafs/CellServDB.new
+ fi
+ fi
+
+ db_get openafs-client/cachesize
+ echo /afs:/var/cache/openafs:$RET >/etc/openafs/cacheinfo
+
+ db_get openafs-client/run-client
+ echo AFS_CLIENT=$RET >/etc/openafs/afs.conf.client
+ db_get openafs-client/afsdb
+ echo AFS_AFSDB=$RET >>/etc/openafs/afs.conf.client
+ db_get openafs-client/crypt
+ echo AFS_CRYPT=$RET >>/etc/openafs/afs.conf.client
+ db_get openafs-client/dynroot
+ echo AFS_DYNROOT=$RET >>/etc/openafs/afs.conf.client
+ db_get openafs-client/fakestat
+ echo AFS_FAKESTAT=$RET >>/etc/openafs/afs.conf.client
;;
- abort-upgrade|abort-remove|abort-deconfigure)
-
+abort-upgrade|abort-remove|abort-deconfigure)
;;
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
+*)
+ echo "postinst called with unknown argument '$1'" >&2
+ exit 0
;;
esac
#DEBHELPER#
exit 0
-
-
Template: openafs-client/cell-info
Type: string
-Description: What hosts are DB servers for your home cell?
- AFS uses the file /etc/openafs/CellServDB to hold the list of servers
- that should be contacted to find parts of a cell. The cell you claim
- this workstation belongs to is not in that file. Enter the host
- names of the database servers separated by spaces.
- IMPORTANT: If you are creating a new cell and this machine is to be
- a database server in that cell, only enter this machine's name; add
- the other servers later after they are functioning. Also, do not
- enable the AFS client to start at boot on this server until the cell
- is configured. When you are ready you can edit
+_Description: What hosts are DB servers for your home cell?
+ AFS uses the file /etc/openafs/CellServDB to hold the list of servers that
+ should be contacted to find parts of a cell. The cell you claim this
+ workstation belongs to is not in that file. Enter the host names of the
+ database servers separated by spaces. IMPORTANT: If you are creating a new
+ cell and this machine is to be a database server in that cell, only enter
+ this machine's name; add the other servers later after they are
+ functioning. Also, do not enable the AFS client to start at boot on this
+ server until the cell is configured. When you are ready you can edit
/etc/openafs/afs.conf.client to enable the client.
Template: openafs-client/thiscell
Type: string
-Description: What AFS cell does this workstation belong to?
- AFS filespace is organized into cells or administrative domains.
- Each workstation belongs to one cell. Usually the cell is the DNS
- domain name of the site.
+_Description: What AFS cell does this workstation belong to?
+ AFS filespace is organized into cells or administrative domains.
+ Each workstation belongs to one cell. Usually the cell is the DNS
+ domain name of the site.
Template: openafs-client/cachesize
Type: string
Default: 50000
-Description: How large is your AFS cache (kb)?
- AFS uses a area of the disk to cache remote files for faster
- access. This cache will be mounted on /var/cache/openafs. It is
- important that the cache not overfill the partition it is located
- on. Often, people find it useful to dedicate a partition to their
- AFS cache.
+_Description: How large is your AFS cache (kB)?
+ AFS uses an area of the disk to cache remote files for faster
+ access. This cache will be mounted on /var/cache/openafs. It is
+ important that the cache not overfill the partition it is located
+ on. Often, people find it useful to dedicate a partition to their
+ AFS cache.
Template: openafs-client/run-client
Type: boolean
Default: true
-Description: Run Openafs client now and at boot?
- Should the Openafs filesystem be started and mounted at boot?
- Normally, most users who install the openafs-client package expect to
- run it at boot. However, if you are planning on setting up a new
- cell or are on a laptop, you may not want it started at boot time.
- If you answer no to this question, run /etc/init.d/openafs-client
- force-start to run.
+_Description: Run Openafs client now and at boot?
+ Should the Openafs filesystem be started and mounted at boot? Normally,
+ most users who install the openafs-client package expect to run it at
+ boot. However, if you are planning on setting up a new cell or are on a
+ laptop, you may not want it started at boot time. If you choose not
+ to start AFS at boot, run /etc/init.d/openafs-client force-start to
+ start the client when you wish to run it.
Template: openafs-client/afsdb
Type: boolean
Default: true
-Description: Look up AFS cells in DNS?
- In order to contact an AFS cell, you need the IP addresses of the
- cell's database servers. Normally, this information is read from
- /etc/openafs/CellServDB. However, if Openafs cannot find a cell in
- that file it can use DNS to look for AFSDB records that contain the
+_Description: Look up AFS cells in DNS?
+ In order to contact an AFS cell, you need the IP addresses of the cell's
+ database servers. Normally, this information is read from
+ /etc/openafs/CellServDB. However, if Openafs cannot find a cell in that
+ file, it can use DNS to look for AFSDB records that contain the
information.
Template: openafs-client/crypt
Type: boolean
Default: true
-Description: ENcrypt authenticated traffic with AFS fileserver?
- AFS provides a weak form of encryption that can optionally be used
- between a client and the fileservers. While this encryption is weaker
- than DES and thus is not sufficient for highly confidential data, it
- does provide some confidentiality and is likely to make the job of a
- casual attacker significantly more difficult.
+_Description: Encrypt authenticated traffic with AFS fileserver?
+ AFS provides a weak form of encryption that can optionally be used between
+ a client and the fileservers. While this encryption is weaker than DES
+ and thus is not sufficient for highly confidential data, it does provide
+ some confidentiality and is likely to make the job of a casual attacker
+ significantly more difficult.
Template: openafs-client/dynroot
Type: boolean
Default: false
-Description: Dynamically generate the contents of /afs?
- /afs generally contains an entry for each cell that a client can talk to.
+_Description: Dynamically generate the contents of /afs?
+ /afs generally contains an entry for each cell that a client can talk to.
Traditionally, these entries were generated by servers in the client's
home cell. However, OpenAFS clients can generate the contents of /afs
dynamically based on the contents of /etc/openafs/CellServDB and DNS.
.
- If you generate /afs dynamically, you may need to create
- /etc/openafs/CellAliases to include aliases for common cells.
- DO NOT SELECT THIS OPTION IF YOU ARE CREATING A NEW CELL.
+ If you generate /afs dynamically, you may need to create
+ /etc/openafs/CellAlias to include aliases for common cells. (The syntax
+ of this file is one line per alias, with the cell name, a space, and then
+ the alias for that cell.)
Template: openafs-client/fakestat
-type: boolean
-default: true
-Description: Use fakestat to avoid hangs when listing /afs?
- Because AFS is a global file space, operations on the /afs directory
- can generate significant network traffic. If some AFS cells are
- unavailable then looking at /afs using ls or a graphical file browser
- may hang your machine for minutes. AFS has an option to simulate
- answers to these operations locally to avoid these hangs. You want
- this option under most circumstances.
+Type: boolean
+Default: true
+_Description: Use fakestat to avoid hangs when listing /afs?
+ Because AFS is a global file space, operations on the /afs directory can
+ generate significant network traffic. If some AFS cells are unavailable
+ then looking at /afs using ls or a graphical file browser may hang your
+ machine for minutes. AFS has an option to simulate answers to these
+ operations locally to avoid these hangs. You want this option under most
+ circumstances.
+4
+4
+4
+4
+4
+4
+4
+4
var/lib/openafs/db
usr/share/man/man8
usr/sbin
+usr/share/doc
+usr/share/doc
+usr/share/doc
+usr/share/doc
+usr/share/doc
+usr/share/doc
+usr/share/doc
+usr/share/doc
--- /dev/null
+debian/tmp/usr/sbin/prdb_check usr/sbin
+debian/tmp/usr/sbin/pt_util usr/sbin
+debian/tmp/usr/sbin/vldb_check usr/sbin
+
+debian/afs-rootvol usr/sbin
+debian/afs-newcell usr/sbin
+
+debian/tmp/usr/lib/openafs/buserver usr/lib/openafs
+debian/tmp/usr/lib/openafs/ptserver usr/lib/openafs
+debian/tmp/usr/lib/openafs/vlserver usr/lib/openafs
+
+debian/ConfigUtils.pm usr/share/perl5/Debian/OpenAFS
+
+debian/doc/man5/BackupLog.5 usr/share/man/man5
+debian/doc/man5/VLLog.5 usr/share/man/man5
+debian/doc/man5/bdb.DB0.5 usr/share/man/man5
+debian/doc/man5/prdb.DB0.5 usr/share/man/man5
+debian/doc/man5/vldb.DB0.5 usr/share/man/man5
+
+debian/doc/man8/buserver.8 usr/share/man/man8
+debian/doc/man8/prdb_check.8 usr/share/man/man8
+debian/doc/man8/ptserver.8 usr/share/man/man8
+debian/doc/man8/vldb_check.8 usr/share/man/man8
+debian/doc/man8/vlserver.8 usr/share/man/man8
--- /dev/null
+openafs-dbserver: non-standard-dir-perm
echo -n "Stopping $DESC: "
bos shutdown localhost -wait -localauth
start-stop-daemon --stop --quiet \
- --exec $DAEMON
+ --user root --name bosserver
echo "$NAME."
;;
#reload)
# just the same as "restart".
#
echo -n "Restarting $DESC: "
- bos restart localhost -localauth -bos
+ if pidof $DAEMON > /dev/null ; then
+ bos restart localhost -localauth -bos
+ else
+ start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
+ --exec $DAEMON
+ fi
sleep 1
echo "$NAME."
;;
--- /dev/null
+debian/tmp/usr/sbin/bosserver usr/sbin
+debian/tmp/usr/sbin/voldump usr/sbin
+debian/tmp/usr/sbin/volinfo usr/sbin
+
+debian/tmp/usr/lib/openafs/up* usr/sbin
+
+debian/tmp/usr/lib/openafs/fileserver usr/lib/openafs
+debian/tmp/usr/lib/openafs/salvager usr/lib/openafs
+debian/tmp/usr/lib/openafs/volserver usr/lib/openafs
+
+debian/doc/man5/BosConfig.5 usr/share/man/man5
+debian/doc/man5/BosLog.5 usr/share/man/man5
+debian/doc/man5/FORCESALVAGE.5 usr/share/man/man5
+debian/doc/man5/FileLog.5 usr/share/man/man5
+debian/doc/man5/KeyFile.5 usr/share/man/man5
+debian/doc/man5/NoAuth.5 usr/share/man/man5
+debian/doc/man5/SALVAGE.fs.5 usr/share/man/man5
+debian/doc/man5/SalvageLog.5 usr/share/man/man5
+debian/doc/man5/VolserLog.5 usr/share/man/man5
+debian/doc/man5/afs_volume_header.5 usr/share/man/man5
+debian/doc/man5/salvage.lock.5 usr/share/man/man5
+debian/doc/man5/sysid.5 usr/share/man/man5
+
+debian/doc/man8/bosserver.8 usr/share/man/man8
+debian/doc/man8/fileserver.8 usr/share/man/man8
+debian/doc/man8/salvager.8 usr/share/man/man8
+debian/doc/man8/upclient.8 usr/share/man/man8
+debian/doc/man8/upserver.8 usr/share/man/man8
+debian/doc/man8/voldump.8 usr/share/man/man8
+debian/doc/man8/volinfo.8 usr/share/man/man8
+debian/doc/man8/volserver.8 usr/share/man/man8
-openafs-fileserver: link-to-undocumented-manpage
openafs-fileserver: non-standard-dir-perm
#!/bin/sh -e
-
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
+#
+# Summary of how this script can be called:
+#
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+
+set -e
case "$1" in
- configure)
-
- . /usr/share/debconf/confmodule
-
- db_version 2.0
-
- db_get openafs-fileserver/thiscell
- echo $RET >/etc/openafs/server/ThisCell
- if [ -f /etc/openafs/server/CellServDB ] ; then :
- else echo \>$RET >/etc/openafs/server/CellServDB
- fi
- if [ "x$2" != "x" ] ; then
- if dpkg --compare-versions $2 lt 1.2.0-1 ; then
- mv /etc/openafs/server-local/BosConfig /etc/openafs/BosConfig ||true
- mv /etc/openafs/server-local/sysid /var/lib/openafs ||true
- fi
- fi
+configure)
+ . /usr/share/debconf/confmodule
+ db_version 2.0
+
+ db_get openafs-fileserver/thiscell
+ echo $RET >/etc/openafs/server/ThisCell
+
+ if [ -f /etc/openafs/server/CellServDB ] ; then
+ :
+ else
+ sed -n "/^>$RET/,/^>/p" /etc/openafs/CellServDB | sed '$d' \
+ >/etc/openafs/server/CellServDB
+ if [ ! -s /etc/openafs/server/CellServDB ] ; then
+ echo ">$RET" >/etc/openafs/server/CellServDB
+ fi
+ fi
+ if [ "x$2" != "x" ] ; then
+ if dpkg --compare-versions $2 lt 1.2.0-1 ; then
+ mv /etc/openafs/server-local/BosConfig \
+ /etc/openafs/BosConfig || true
+ mv /etc/openafs/server-local/sysid /var/lib/openafs || true
+ fi
+ fi
+ db_stop
;;
- abort-upgrade|abort-remove|abort-deconfigure)
-
+abort-upgrade|abort-remove|abort-deconfigure)
;;
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
+*)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 0
;;
esac
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
+# dh_installdeb will replace this with shell code automatically generated by
+# other debhelper scripts.
#DEBHELPER#
exit 0
Template: openafs-fileserver/thiscell
Type: string
-Description: What cell does this server serve files for?
+_Description: What cell does this server serve files for?
AFS fileservers belong to a cell. They have the key for that cell's
- Kerberos service and serve volumes into that cell. Normally, this
- cell is the same cell as the workstation's client belongs to.
-Description-de: Für welche Zelle liefert der Server Dateien?
- AFS-Dateiserver gehören zu einer Zelle. Die Server haben den Schlüssel
- für den Kerberos-Service der Zelle und stellen Volumes für die Zelle
- bereit. Normalerweise ist die Zelle identisch mit der des Clients
+ Kerberos service and serve volumes into that cell. Normally, this cell is
+ the same cell as the workstation's client belongs to.
-template: openafs-fileserver/bosconfig_moved
+Template: openafs-fileserver/bosconfig_moved
Type: boolean
-default: true
-Description: Upgrading will move files to new locations; continue?
- Between Openafs 1.1 and Openafs 1.2, several files moved. In
- particular, files in /etc/openafs/server-local have been distributed
- to other locations. The BosConfig file is now located in
- /etc/openafs and the other files are located in /var/lib/openafs. If
- you continue with this upgrade, these files will be moved. You should
- use the bos restart command to reload your servers. Any
- configuration changes made before you do so will be lost.
+Default: true
+_Description: Upgrading will move files to new locations; continue?
+ Between Openafs 1.1 and Openafs 1.2, several files moved. In particular,
+ files in /etc/openafs/server-local have been distributed to other
+ locations. The BosConfig file is now located in /etc/openafs and the
+ other files are located in /var/lib/openafs. If you continue with this
+ upgrade, these files will be moved. You should use the bos restart
+ command to reload your servers. Any configuration changes made before
+ you do so will be lost.
-template: openafs-fileserver/alpha-broken
+Template: openafs-fileserver/alpha-broken
Type: note
-Description: OpenAFS Fileserv Probably does not work!
+_Description: OpenAFS file server probably does not work!
You are running the OpenAFS file server package on an alpha. This
- probably doesn't work; the DES code is flaky on the alpha, along with
- the threaded file server. Likely, the fileserver will simply fail to
- start, but if it does load, data corruption may result. You have been
- warned.
+ probably doesn't work; the DES code is flaky on the alpha, along with the
+ threaded file server. Likely, the fileserver will simply fail to start,
+ but if it does load, data corruption may result. You have been warned.
--- /dev/null
+debian/tmp/usr/bin/kpasswd usr/bin
+
+debian/tmp/usr/sbin/kas usr/bin
+
+debian/doc/man1/kpasswd.1 usr/share/man/man1
+
+debian/doc/man8/kas.8 usr/share/man/man8
+debian/doc/man8/kas_apropos.8 usr/share/man/man8
+debian/doc/man8/kas_create.8 usr/share/man/man8
+debian/doc/man8/kas_delete.8 usr/share/man/man8
+debian/doc/man8/kas_examine.8 usr/share/man/man8
+debian/doc/man8/kas_forgetticket.8 usr/share/man/man8
+debian/doc/man8/kas_help.8 usr/share/man/man8
+debian/doc/man8/kas_interactive.8 usr/share/man/man8
+debian/doc/man8/kas_list.8 usr/share/man/man8
+debian/doc/man8/kas_listtickets.8 usr/share/man/man8
+debian/doc/man8/kas_noauthentication.8 usr/share/man/man8
+debian/doc/man8/kas_quit.8 usr/share/man/man8
+debian/doc/man8/kas_setfields.8 usr/share/man/man8
+debian/doc/man8/kas_setpassword.8 usr/share/man/man8
+debian/doc/man8/kas_statistics.8 usr/share/man/man8
+debian/doc/man8/kas_stringtokey.8 usr/share/man/man8
+debian/doc/man8/kas_unlock.8 usr/share/man/man8
debian/README.servers
debian/configuration-transcript.txt
debian/README.modules
-NEWS
--- /dev/null
+This directory contains patches relative to the upstream OpenAFS source.
+It is not used automatically as part of the build process and is not
+guaranteed to be completely up-to-date; it is intended as documentation of
+significant divergences, a place to store patches that should be sent
+upstream, and a place to document the current status of patches.
+
+Simple Debian-specific changes that aren't of interest to upstream will
+not be included here, such as updating config.{guess,sub} or changing
+paths to fit with the FHS.
--- /dev/null
+Upstream uses libafs as the module name, mostly for historic reasons. It
+also uses a different module name depending on whether the module is built
+for SMP systems, something that Debian deals with by creating separate
+packages. This patch changes the name of the module to openafs and
+removes the separate name for the SMP version.
+
+Probably not acceptable upstream.
+
+--- openafs-1.3.87.orig/src/libafs/MakefileProto.LINUX.in
++++ openafs-1.3.87/src/libafs/MakefileProto.LINUX.in
+@@ -216,8 +216,8 @@
+
+ # Below this line are targets when in the COMMON directory:
+ # For Linux there is no kernel NFS server.
+-LIBAFS = libafs-${CLIENT}.${LINUX_MODULE_EXT}
+-LIBAFS_MP = libafs-${CLIENT}.mp.${LINUX_MODULE_EXT}
++LIBAFS = openafs.${LINUX_MODULE_EXT}
++LIBAFS_MP = openafs.${LINUX_MODULE_EXT}
+ LIBAFS_EP = libafs-${CLIENT}.ep.${LINUX_MODULE_EXT}
+ LIBAFS_BM = libafs-${CLIENT}.bm.${LINUX_MODULE_EXT}
+
+@@ -226,10 +226,8 @@
+ INST_LIBAFS_EP = ${DESTDIR}${afskerneldir}/${LIBAFS_EP}
+ INST_LIBAFS_BM = ${DESTDIR}${afskerneldir}/${LIBAFS_BM}
+
+-DEST_LIBAFS = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFS}
+-DEST_LIBAFS_MP = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFS_MP}
+-DEST_LIBAFS_EP = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFS_EP}
+-DEST_LIBAFS_BM = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFS_BM}
++DEST_LIBAFS = ${DEST}/root.client/usr/vice/etc/modload/openafs.o
++DEST_LIBAFS_MP = ${DEST}/root.client/usr/vice/etc/modload/openafs.mp.o
+
+
+ libafs: $(LIBAFS)
+@@ -245,11 +243,11 @@
+ echo BM Build Complete
+
+ <linux26 linux_26 umlinux26>
+-${LIBAFS} ${LIBAFS_MP} ${LIBAFS_EP} ${LIBAFS_BM}: libafs.ko
+- cp libafs.ko $@
++${LIBAFS} ${LIBAFS_MP} ${LIBAFS_EP} ${LIBAFS_BM}: openafs.ko
++ cp openafs.ko $@
+
+ .FORCE:
+-libafs.ko: .FORCE
++openafs.ko: .FORCE
+ env EXTRA_CFLAGS="${EXTRA_CFLAGS}" @TOP_SRCDIR@/libafs/make_kbuild_makefile.pl ${KDIR} $@ @TOP_OBJDIR@/src/config/Makefile.config Makefile.afs Makefile.common
+ env EXTRA_CFLAGS="${EXTRA_CFLAGS}" $(MAKE) -C ${LINUX_KERNEL_PATH} M=@TOP_OBJDIR@/src/libafs/${KDIR} modules
+
--- /dev/null
+The standard upstream source builds the PAM modules against static
+libraries, which means they contain non-PIC code. This isn't allowed by
+Debian Policy and doesn't work on some supported platforms.
+
+Two approaches for fixing this have been tried. One is to rebuild the
+various object files that are part of the libraries PIC and then link with
+those object files. The other, which this implements, is to link with the
+object files used to create the libafsauthent and libafsrpc shared
+libraries (which can't be shipped since they don't have a stable API or
+correct SONAME). The latter means that the PAM modules must also be
+linked with libpthread, but that's a feature since that means they'll work
+with sshd built threaded.
+
+Not submitted upstream yet. The call to rx_Init should be submitted
+upstream and would probably be accepted. Upstream would probably rather
+link the PAM modules against the shared libraries rather than accepting
+this hack, which is unsuitable for Debian until the shared libraries are
+handled more consistently.
+
+--- openafs-1.3.87.orig/src/pam/Makefile.in
++++ openafs-1.3.87/src/pam/Makefile.in
+@@ -25,7 +25,17 @@
+ afs_pam_msg.o afs_message.o AFS_component_version_number.o
+ OBJS = $(SHOBJS) test_pam.o
+ INCLUDES=-I${TOP_OBJDIR}/src/config -I${TOP_INCDIR}
+-CFLAGS = ${DEBUG} ${INCLUDES} ${PAM_CFLAGS}
++CFLAGS = ${DEBUG} ${INCLUDES} ${PAM_CFLAGS} ${MT_CFLAGS}
++
++# For Debian, we link directly with the object files that would have gone
++# into the libafsrpc and libafsauthent shared libraries. The shared libraries
++# themselves cannot be used because the interface isn't stable and they have
++# no SONAME, but this is the easiest way of getting PIC objects built with the
++# pthread API.
++SHLIB_OBJS := `ls ../shlibafsauthent/*.o | grep -v version_num` \
++ `ls ../shlibafsrpc/*.o | grep -v version_num`
++KRB_SHLIB_OBJS := `ls ../shlibafsauthent/*.o | egrep -v 'version_num|ktc.o'` \
++ `ls ../shlibafsrpc/*.o | grep -v version_num`
+
+ all: test_pam ${TOP_LIBDIR}/pam_afs.so.1 ${TOP_LIBDIR}/pam_afs.krb.so.1
+
+@@ -39,14 +49,18 @@
+ ${CC} ${CFLAGS} -c ${srcdir}/afs_auth.c -o afs_auth.o
+
+ afs_auth_krb.o: afs_auth.c afs_pam_msg.h afs_message.h afs_util.h
+- ${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -c ${srcdir}/afs_auth.c -o afs_auth_krb.o
++ ${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -c ${srcdir}/afs_auth.c -o afs_auth_krb.o
+
+ afs_util.o: afs_util.c afs_pam_msg.h afs_message.h afs_util.h
+ ${CC} ${CFLAGS} -c ${srcdir}/afs_util.c -o afs_util.o
+
++
+ afs_util_krb.o: afs_util.c afs_pam_msg.h afs_message.h afs_util.h
+ ${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -c ${srcdir}/afs_util.c -o afs_util_krb.o
+
++ktc.o: ${srcdir}/../auth/ktc.c
++ ${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -c ${srcdir}/../auth/ktc.c
++
+ pam_afs.so.1: $(SHOBJS) afs_setcred.o afs_auth.o afs_util.o
+ set -x; \
+ case "$(SYS_NAME)" in \
+@@ -59,8 +73,9 @@
+ afs_setcred.o afs_auth.o afs_util.o \
+ $(SHOBJS) $(LIBS) ;; \
+ *linux*) \
+- $(CC) $(LDFLAGS) -o $@ afs_setcred.o \
+- afs_auth.o afs_util.o $(SHOBJS) $(LIBS) ;;\
++ $(CC) $(LDFLAGS) $(PAM_CFLAGS) -o $@ afs_setcred.o \
++ afs_auth.o afs_util.o $(SHOBJS) $(SHLIB_OBJS) \
++ $(MT_LIBS) -lpam -lresolv;;\
+ *fbsd*| *nbsd*) \
+ $(CC) $(LDFLAGS) -o $@ afs_setcred.o \
+ afs_auth.o afs_util.o $(SHOBJS) $(LIBS) ;;\
+@@ -68,7 +83,7 @@
+ echo No link line for system $(SYS_NAME). ;; \
+ esac
+
+-pam_afs.krb.so.1: $(SHOBJS) afs_setcred_krb.o afs_auth_krb.o afs_util_krb.o
++pam_afs.krb.so.1: $(SHOBJS) afs_setcred_krb.o afs_auth_krb.o afs_util_krb.o ktc.o
+ set -x; \
+ case "$(SYS_NAME)" in \
+ hp_ux* | ia64_hpux*) \
+@@ -81,7 +96,8 @@
+ $(SHOBJS) $(LDFLAGS) $(KLIBS) ;; \
+ *linux*) \
+ $(CC) $(LDFLAGS) -o $@ afs_setcred_krb.o \
+- afs_auth_krb.o afs_util_krb.o $(SHOBJS) $(KLIBS) ;;\
++ afs_auth_krb.o afs_util_krb.o ktc.o $(SHOBJS) \
++ $(KRB_SHLIB_OBJS) $(MT_LIBS) -lpam -lresolv;;\
+ *fbsd*| *nbsd*) \
+ $(CC) $(LDFLAGS) -o $@ afs_setcred_krb.o \
+ afs_auth_krb.o afs_util_krb.o $(SHOBJS) $(KLIBS) ;;\
+--- openafs-1.3.87.orig/src/pam/afs_setcred.c
++++ openafs-1.3.87/src/pam/afs_setcred.c
+@@ -52,7 +52,7 @@
+ int refresh_token = 0;
+ int set_expires = 0; /* the default is to not to set the env variable */
+ int use_klog = 0;
+- int i;
++ int i, code;
+ struct pam_conv *pam_convp = NULL;
+ char my_password_buf[256];
+ char *cell_ptr = NULL;
+@@ -281,6 +281,11 @@
+ #endif
+ }
+
++ if ((code = rx_Init(0)) != 0) {
++ pam_afs_syslog(LOG_ERR, PAMAFS_KAERROR, code);
++ RET(PAM_AUTH_ERR);
++ }
++
+ if (flags & PAM_REFRESH_CRED) {
+ if (use_klog) {
+ auth_ok = !do_klog(user, password, "00:00:01", cell_ptr);
+--- openafs-1.3.87.orig/src/pam/afs_auth.c
++++ openafs-1.3.87/src/pam/afs_auth.c
+@@ -314,6 +314,10 @@
+ if (cpid <= 0) { /* The child process */
+ if (logmask && LOG_MASK(LOG_DEBUG))
+ syslog(LOG_DEBUG, "in child");
++ if ((code = rx_Init(0)) != 0) {
++ pam_afs_syslog(LOG_ERR, PAMAFS_KAERROR, code);
++ exit(0);
++ }
+ if (refresh_token || set_token)
+ code = ka_UserAuthenticateGeneral(KA_USERAUTH_VERSION, user, /* kerberos name */
+ NULL, /* instance */
+@@ -363,6 +367,10 @@
+ pam_afs_syslog(LOG_ERR, PAMAFS_PAMERROR, errno);
+ }
+ } else { /* dont_fork, used by httpd */
++ if ((code = rx_Init(0)) != 0) {
++ pam_afs_syslog(LOG_ERR, PAMAFS_KAERROR, code);
++ RET(PAM_AUTH_ERR);
++ }
+ if (logmask && LOG_MASK(LOG_DEBUG))
+ syslog(LOG_DEBUG, "dont_fork");
+ if (refresh_token || set_token)
+--- openafs-1.3.87.orig/Makefile.in
++++ openafs-1.3.87/Makefile.in
+@@ -507,8 +507,6 @@
+ # pthread based user space RX library
+ shlibafsrpc: rx rxkad des
+ case ${SYS_NAME} in \
+- amd64_linux24) \
+- echo Skipping shlibafsrpc for amd64_linux24 ;; \
+ alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*) \
+ ${COMPILE_PART1} shlibafsrpc ${COMPILE_PART2} ;; \
+ *) \
+@@ -517,8 +515,6 @@
+
+ shlibafsauthent: ubik auth kauth shlibafsrpc
+ case ${SYS_NAME} in \
+- amd64_linux24) \
+- echo Skipping shlibafsauthent for amd64_linux24 ;; \
+ alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*) \
+ ${COMPILE_PART1} shlibafsauthent ${COMPILE_PART2} ;; \
+ *) \
--- /dev/null
+[type: gettext/rfc822deb] openafs-client.templates
+[type: gettext/rfc822deb] openafs-fileserver.templates
--- /dev/null
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openafs 1.4rc1-1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-08-18 12:47-0700\n"
+"PO-Revision-Date: 2005-08-19 08:01+0200\n"
+"Last-Translator: Martin Sin <martin.sin@seznam.cz>\n"
+"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid "What hosts are DB servers for your home cell?"
+msgstr "Které počítače jsou DB servery pro vaši domovskou buňku?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid ""
+"AFS uses the file /etc/openafs/CellServDB to hold the list of servers that "
+"should be contacted to find parts of a cell. The cell you claim this "
+"workstation belongs to is not in that file. Enter the host names of the "
+"database servers separated by spaces. IMPORTANT: If you are creating a new "
+"cell and this machine is to be a database server in that cell, only enter "
+"this machine's name; add the other servers later after they are functioning. "
+"Also, do not enable the AFS client to start at boot on this server until the "
+"cell is configured. When you are ready you can edit /etc/openafs/afs.conf."
+"client to enable the client."
+msgstr ""
+"AFS používá k uchovávání seznamu serverů, které mají být kontaktovány při "
+"hledání částí buňky, soubor /etc/openafs/CellServDB. Buňka, do které tato "
+"stanice patří, není ve zmíněném souboru uvedena. Zadejte mezerami oddělená "
+"jména databázových serverů. DŮLEŽITÉ: pokud vytváříte novou buňku a tento "
+"počítač bude databázovým serverem této buňky, pak stačí pouze zadat jméno "
+"počítače; ostatní servery přidejte později až po jejich zprovoznění. Dokud "
+"nebude buňka nastavena, tak na tomto serveru nepovolujte spuštění AFS "
+"klienta při startu serveru. Až budete připraveni, můžete klienta povolit "
+"úpravou souboru /etc/openafs/afs.conf.client."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid "What AFS cell does this workstation belong to?"
+msgstr "Ke které buňce AFS bude tento počítač náležet?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid ""
+"AFS filespace is organized into cells or administrative domains. Each "
+"workstation belongs to one cell. Usually the cell is the DNS domain name of "
+"the site."
+msgstr ""
+"Souborový prostor systému AFS je uspořádán do buněk nebo administrativních "
+"domén. Každá stanice patří jedné buňce. Obvykle je buňkou doménové jméno "
+"skupiny."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid "How large is your AFS cache (kB)?"
+msgstr "Jak velká je vaše cache AFS (v kB)?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid ""
+"AFS uses an area of the disk to cache remote files for faster access. This "
+"cache will be mounted on /var/cache/openafs. It is important that the cache "
+"not overfill the partition it is located on. Often, people find it useful "
+"to dedicate a partition to their AFS cache."
+msgstr ""
+"AFS používá určitý prostor na disku pro cachování vzdálených souborů, aby k "
+"nim měl rychlejší přístup. Tato cache bude připojena do /var/cache/openafs. "
+"Je důležité, aby cache nepřeplnila oblast na které je umístěna. Často je "
+"užitečné umístit cache AFS do své vlastní diskové oblasti."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid "Run Openafs client now and at boot?"
+msgstr "Spustit klienta Openafs nyní a při zavádění počítače?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid ""
+"Should the Openafs filesystem be started and mounted at boot? Normally, most "
+"users who install the openafs-client package expect to run it at boot. "
+"However, if you are planning on setting up a new cell or are on a laptop, "
+"you may not want it started at boot time. If you choose not to start AFS at "
+"boot, run /etc/init.d/openafs-client force-start to start the client when "
+"you wish to run it."
+msgstr ""
+"Má být souborový systém Openafs spuštěn a připojen při startu počítače? "
+"Většina uživatelů, kteří instalují balíček openafs-client, očekává, že se "
+"AFS spustí hned při startu počítače. Samozřejmě, pokud plánujete nastavení "
+"nové buňky, nebo pokud používáte laptop, pak byste zřejmě AFS při startu "
+"spouštět nechtěli. Zvolíte-li možnost nespouštět AFS při startu počítače, "
+"můžete klienta spustit ručně příkazem /etc/init.d/openafs-client force-start."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid "Look up AFS cells in DNS?"
+msgstr "Hledat buňky AFS v DNS?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid ""
+"In order to contact an AFS cell, you need the IP addresses of the cell's "
+"database servers. Normally, this information is read from /etc/openafs/"
+"CellServDB. However, if Openafs cannot find a cell in that file, it can use "
+"DNS to look for AFSDB records that contain the information."
+msgstr ""
+"Pro kontaktování buňky AFS potřebujete znát IP adresu databázového serveru "
+"buňky. Obvykle lze tuto informaci přečíst ze souboru /etc/openafs/"
+"CellServDB. Nicméně pokud Openafs nemůže najít buňku v tomto souboru, může "
+"použít DNS pro vyhledání AFSDB záznamů, které obsahují požadované informace."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid "Encrypt authenticated traffic with AFS fileserver?"
+msgstr "Šifrovat autentikovaný provoz se souborovým serverem AFS?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid ""
+"AFS provides a weak form of encryption that can optionally be used between a "
+"client and the fileservers. While this encryption is weaker than DES and "
+"thus is not sufficient for highly confidential data, it does provide some "
+"confidentiality and is likely to make the job of a casual attacker "
+"significantly more difficult."
+msgstr ""
+"AFS poskytuje slabou formu šifrování, která může být nepovinně použita mezi "
+"klientem a souborovým serverem. Přestože je toto šifrování slabší než DES a "
+"tedy není dostatečné pro velmi důvěrná data, poskytuje určitou formu utajení "
+"a určitě tak ztíží práci náhodnému útočníkovi."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid "Dynamically generate the contents of /afs?"
+msgstr "Vygenerovat obsah /afs dynamicky?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"/afs generally contains an entry for each cell that a client can talk to. "
+"Traditionally, these entries were generated by servers in the client's home "
+"cell. However, OpenAFS clients can generate the contents of /afs "
+"dynamically based on the contents of /etc/openafs/CellServDB and DNS."
+msgstr ""
+"/afs obvykle obsahuje záznam pro každou buňku, se kterou může klient "
+"hovořit. Tradičně jsou tyto záznamy vytvářeny servery v mateřské buňce "
+"klienta. Klienti OpenAFS však mohou generovat obsah adresáře /afs dynamicky "
+"na základě souboru /etc/openafs/CellServDB a systému DNS."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"If you generate /afs dynamically, you may need to create /etc/openafs/"
+"CellAlias to include aliases for common cells. (The syntax of this file is "
+"one line per alias, with the cell name, a space, and then the alias for that "
+"cell.)"
+msgstr ""
+"Pokud vytváříte /afs dynamicky, možná budete muset vytvořit /etc/openafs/"
+"CellAlias pro začlenění aliasů běžných buněk. (Syntaxe tohoto souboru je "
+"jeden řádek na alias, který se skládá ze jména buňky, mezery a pak následuje "
+"alias pro tuto buňku.)"
+
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid "Use fakestat to avoid hangs when listing /afs?"
+msgstr "Použít fakestat pro obejití zatuhnutí při výpisu /afs?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid ""
+"Because AFS is a global file space, operations on the /afs directory can "
+"generate significant network traffic. If some AFS cells are unavailable "
+"then looking at /afs using ls or a graphical file browser may hang your "
+"machine for minutes. AFS has an option to simulate answers to these "
+"operations locally to avoid these hangs. You want this option under most "
+"circumstances."
+msgstr ""
+"Protože je AFS globální souborový prostor, mohou operace na adresáři /afs "
+"výzrazně zvýšit provoz na síti. Pokud jsou některé buňky AFS nedosažitelné, "
+"pak může prohlížení /afs pomocí příkazu ls nebo grafického prohlížeče "
+"způsobit zatuhnutí počítače na dobu několika minut. AFS má volbu, která "
+"simuluje odpovědi pro tyto operace a tak se snaží vyhnout popsaným výpadkům. "
+"Tuto volbu budete chtít použít ve většině případů."
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid "What cell does this server serve files for?"
+msgstr "Kterým buňkám má tento server poskytovat soubory?"
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid ""
+"AFS fileservers belong to a cell. They have the key for that cell's "
+"Kerberos service and serve volumes into that cell. Normally, this cell is "
+"the same cell as the workstation's client belongs to."
+msgstr ""
+"Souborové servery AFS náleží buňce. Servery mají klíč ke službě Kerberos "
+"dané buňky a v rámci buňky nabízejí souborové svazky. Tato buňka je obvykle "
+"shodná s buňkou, ke které patří klient na pracovní stanici."
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid "Upgrading will move files to new locations; continue?"
+msgstr "Upgradování přesune soubory do nového umístění; pokračovat?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid ""
+"Between Openafs 1.1 and Openafs 1.2, several files moved. In particular, "
+"files in /etc/openafs/server-local have been distributed to other "
+"locations. The BosConfig file is now located in /etc/openafs and the other "
+"files are located in /var/lib/openafs. If you continue with this upgrade, "
+"these files will be moved. You should use the bos restart command to reload "
+"your servers. Any configuration changes made before you do so will be lost."
+msgstr ""
+"Verze Openafs 1.1 a Openafs 1.2 mají přesunuty některé soubory. Přesněji "
+"řečeno: soubory z /etc/openafs/server-local byly přesunuty jinam. "
+"Konfigurační soubor BosConfig je nyní umístěn v /etc/openafs, ostatní "
+"soubory jsou uloženy v adresáři /var/lib/openafs. Pokud budete pokračovat v "
+"aktualizaci, budou tyto soubory přesunuty. K opětovnému načtení vašich "
+"serverů můžete použít přikaz bos, který provede restart. Jakákoliv změna "
+"konfigurace provedená před tímto restartem bude ztracena."
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid "OpenAFS file server probably does not work!"
+msgstr "Souborový server OpenAFS pravděpodobně nepracuje!"
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid ""
+"You are running the OpenAFS file server package on an alpha. This probably "
+"doesn't work; the DES code is flaky on the alpha, along with the threaded "
+"file server. Likely, the fileserver will simply fail to start, but if it "
+"does load, data corruption may result. You have been warned."
+msgstr ""
+"Souborový server OpenAFS běží na Aplha systému, což pravděpodobně nebude "
+"fungovat; DES kód se ve spojení s vlákny na souborovém serveru chová "
+"podivně. Souborový server nejpravděpodobněji vůbec nespustí nespustí, ale "
+"pokud naběhne, může dojít ke ztrátě dat. Byli jste varováni."
--- /dev/null
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-08-18 12:47-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid "What hosts are DB servers for your home cell?"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid ""
+"AFS uses the file /etc/openafs/CellServDB to hold the list of servers that "
+"should be contacted to find parts of a cell. The cell you claim this "
+"workstation belongs to is not in that file. Enter the host names of the "
+"database servers separated by spaces. IMPORTANT: If you are creating a new "
+"cell and this machine is to be a database server in that cell, only enter "
+"this machine's name; add the other servers later after they are functioning. "
+"Also, do not enable the AFS client to start at boot on this server until the "
+"cell is configured. When you are ready you can edit /etc/openafs/afs.conf."
+"client to enable the client."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+#, fuzzy
+msgid "What AFS cell does this workstation belong to?"
+msgstr "Für welche Zelle liefert der Server Dateien?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid ""
+"AFS filespace is organized into cells or administrative domains. Each "
+"workstation belongs to one cell. Usually the cell is the DNS domain name of "
+"the site."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid "How large is your AFS cache (kB)?"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid ""
+"AFS uses an area of the disk to cache remote files for faster access. This "
+"cache will be mounted on /var/cache/openafs. It is important that the cache "
+"not overfill the partition it is located on. Often, people find it useful "
+"to dedicate a partition to their AFS cache."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid "Run Openafs client now and at boot?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid ""
+"Should the Openafs filesystem be started and mounted at boot? Normally, most "
+"users who install the openafs-client package expect to run it at boot. "
+"However, if you are planning on setting up a new cell or are on a laptop, "
+"you may not want it started at boot time. If you choose not to start AFS at "
+"boot, run /etc/init.d/openafs-client force-start to start the client when "
+"you wish to run it."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid "Look up AFS cells in DNS?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid ""
+"In order to contact an AFS cell, you need the IP addresses of the cell's "
+"database servers. Normally, this information is read from /etc/openafs/"
+"CellServDB. However, if Openafs cannot find a cell in that file, it can use "
+"DNS to look for AFSDB records that contain the information."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid "Encrypt authenticated traffic with AFS fileserver?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid ""
+"AFS provides a weak form of encryption that can optionally be used between a "
+"client and the fileservers. While this encryption is weaker than DES and "
+"thus is not sufficient for highly confidential data, it does provide some "
+"confidentiality and is likely to make the job of a casual attacker "
+"significantly more difficult."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid "Dynamically generate the contents of /afs?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"/afs generally contains an entry for each cell that a client can talk to. "
+"Traditionally, these entries were generated by servers in the client's home "
+"cell. However, OpenAFS clients can generate the contents of /afs "
+"dynamically based on the contents of /etc/openafs/CellServDB and DNS."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"If you generate /afs dynamically, you may need to create /etc/openafs/"
+"CellAlias to include aliases for common cells. (The syntax of this file is "
+"one line per alias, with the cell name, a space, and then the alias for that "
+"cell.)"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid "Use fakestat to avoid hangs when listing /afs?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid ""
+"Because AFS is a global file space, operations on the /afs directory can "
+"generate significant network traffic. If some AFS cells are unavailable "
+"then looking at /afs using ls or a graphical file browser may hang your "
+"machine for minutes. AFS has an option to simulate answers to these "
+"operations locally to avoid these hangs. You want this option under most "
+"circumstances."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid "What cell does this server serve files for?"
+msgstr "Für welche Zelle liefert der Server Dateien?"
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid ""
+"AFS fileservers belong to a cell. They have the key for that cell's "
+"Kerberos service and serve volumes into that cell. Normally, this cell is "
+"the same cell as the workstation's client belongs to."
+msgstr ""
+"AFS-Dateiserver gehören zu einer Zelle. Die Server haben den Schlüssel für "
+"den Kerberos-Service der Zelle und stellen Volumes für die Zelle bereit. "
+"Normalerweise ist die Zelle identisch mit der des Clients"
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid "Upgrading will move files to new locations; continue?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid ""
+"Between Openafs 1.1 and Openafs 1.2, several files moved. In particular, "
+"files in /etc/openafs/server-local have been distributed to other "
+"locations. The BosConfig file is now located in /etc/openafs and the other "
+"files are located in /var/lib/openafs. If you continue with this upgrade, "
+"these files will be moved. You should use the bos restart command to reload "
+"your servers. Any configuration changes made before you do so will be lost."
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid "OpenAFS file server probably does not work!"
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid ""
+"You are running the OpenAFS file server package on an alpha. This probably "
+"doesn't work; the DES code is flaky on the alpha, along with the threaded "
+"file server. Likely, the fileserver will simply fail to start, but if it "
+"does load, data corruption may result. You have been warned."
+msgstr ""
--- /dev/null
+# translation of fr.po to French
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openafs 1.4rc1-1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-08-18 12:47-0700\n"
+"PO-Revision-Date: 2005-08-22 15:11+0200\n"
+"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid "What hosts are DB servers for your home cell?"
+msgstr ""
+"Hôtes serveurs de bases de données pour votre cellule locale (« home "
+"cell ») :"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid ""
+"AFS uses the file /etc/openafs/CellServDB to hold the list of servers that "
+"should be contacted to find parts of a cell. The cell you claim this "
+"workstation belongs to is not in that file. Enter the host names of the "
+"database servers separated by spaces. IMPORTANT: If you are creating a new "
+"cell and this machine is to be a database server in that cell, only enter "
+"this machine's name; add the other servers later after they are functioning. "
+"Also, do not enable the AFS client to start at boot on this server until the "
+"cell is configured. When you are ready you can edit /etc/openafs/afs.conf."
+"client to enable the client."
+msgstr ""
+"AFS utilise le fichier /etc/openafs/CellServDB pour conserver la liste des "
+"serveurs à contacter pour trouver les constituants d'une cellule. La cellule "
+"dont ce poste de travail est censé faire partie n'est pas indiquée dans ce "
+"fichier. Veuillez indiquer les noms des serveurs de bases de données, "
+"séparés par des espaces. IMPORTANT : si vous créez une nouvelle cellule et "
+"que cette machine doit être un serveur de bases de données dans cette "
+"cellule, veuillez seulement indiquer le nom de cette machine. N'ajoutez les "
+"autres serveurs que plus tard, lorsqu'ils seront opérationnels. Enfin, "
+"n'activez pas le client AFS au démarrage tant que cette cellule n'est pas "
+"configurée. Quand vous serez prêt, vous pourrez modifier /etc/openafs/afs."
+"conf.client pour mettre en service le client."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid "What AFS cell does this workstation belong to?"
+msgstr "Cellule AFS dont ce poste de travail fait partie :"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid ""
+"AFS filespace is organized into cells or administrative domains. Each "
+"workstation belongs to one cell. Usually the cell is the DNS domain name of "
+"the site."
+msgstr ""
+"L'espace des fichiers AFS est organisé en cellules ou domaines "
+"administratifs. Chaque poste de travail appartient à une cellule. "
+"Habituellement, la cellule est le nom de domaine du site."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid "How large is your AFS cache (kB)?"
+msgstr "Taille de votre cache pour AFS (en kilo-octets) :"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid ""
+"AFS uses an area of the disk to cache remote files for faster access. This "
+"cache will be mounted on /var/cache/openafs. It is important that the cache "
+"not overfill the partition it is located on. Often, people find it useful "
+"to dedicate a partition to their AFS cache."
+msgstr ""
+"AFS utilise une partie du disque pour mettre en cache des fichiers distants "
+"et accélérer les accès. Ce cache sera monté sur /var/cache/openafs. Il est "
+"important que le cache ne remplisse pas la partition sur laquelle il est "
+"situé. De nombreux utilisateurs choisissent de dédier une partition pour le "
+"cache d'AFS."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid "Run Openafs client now and at boot?"
+msgstr "Lancer le client AFS maintenant, puis à chaque démarrage ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid ""
+"Should the Openafs filesystem be started and mounted at boot? Normally, most "
+"users who install the openafs-client package expect to run it at boot. "
+"However, if you are planning on setting up a new cell or are on a laptop, "
+"you may not want it started at boot time. If you choose not to start AFS at "
+"boot, run /etc/init.d/openafs-client force-start to start the client when "
+"you wish to run it."
+msgstr ""
+"Veuillez indiquer si le système de fichiers Openafs doit être mis en service "
+"et monté au démarrage. Normalement, la majorité des utilisateurs qui "
+"installent le paquet openafs-client s'attendent à ce qu'il soit lancé au "
+"démarrage. Cependant, si vous prévoyez de mettre en service une nouvelle "
+"cellule ou si vous utilisez un ordinateur portable, vous ne souhaitez peut-"
+"être pas le lancer au démarrage. Si vous préférez ne pas le lancer au "
+"démarrage, utilisez la commande « /etc/init.d/openafs-client force-start » "
+"pour le lancer quand vous en aurez besoin."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid "Look up AFS cells in DNS?"
+msgstr "Faut-il chercher les cellules AFS dans le DNS ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid ""
+"In order to contact an AFS cell, you need the IP addresses of the cell's "
+"database servers. Normally, this information is read from /etc/openafs/"
+"CellServDB. However, if Openafs cannot find a cell in that file, it can use "
+"DNS to look for AFSDB records that contain the information."
+msgstr ""
+"Afin de contacter une cellule AFS, vous avez besoin des adresses IP de ses "
+"serveurs de bases de données. Cette information est normalement extraite de /"
+"etc/openafs/CellServDB. Cependant, si Openafs ne peut pas trouver de cellule "
+"dans ce fichier, il peut utiliser le DNS pour rechercher des enregistrements "
+"AFSDB qui fourniront cette information."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid "Encrypt authenticated traffic with AFS fileserver?"
+msgstr "Faut-il chiffrer le trafic authentifié avec le serveur de fichiers AFS ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid ""
+"AFS provides a weak form of encryption that can optionally be used between a "
+"client and the fileservers. While this encryption is weaker than DES and "
+"thus is not sufficient for highly confidential data, it does provide some "
+"confidentiality and is likely to make the job of a casual attacker "
+"significantly more difficult."
+msgstr ""
+"AFS offre un mode de chiffrement faible qu'il est possible d'utiliser entre "
+"un client et les serveurs de fichiers. Bien que ce chiffrement soit plus "
+"faible que DES, et donc insuffisant pour des données hautement "
+"confidentielles, il fournit une certaine forme de confidentialité et peut "
+"rendre une attaque non préparée nettement plus difficile."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid "Dynamically generate the contents of /afs?"
+msgstr "Faut-il gérer le contenu de /afs dynamiquement ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"/afs generally contains an entry for each cell that a client can talk to. "
+"Traditionally, these entries were generated by servers in the client's home "
+"cell. However, OpenAFS clients can generate the contents of /afs "
+"dynamically based on the contents of /etc/openafs/CellServDB and DNS."
+msgstr ""
+"Le répertoire /afs contient généralement une entrée par cellule accessible à "
+"un client donné. Traditionnellement, ces entrées ont été créées par les "
+"serveurs dans la cellule locale de chaque client. Cependant, OpenAFS peut "
+"gérer dynamiquement le contenu de /afs en se servant de /etc/openafs/"
+"CellServDB et du DNS."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"If you generate /afs dynamically, you may need to create /etc/openafs/"
+"CellAlias to include aliases for common cells. (The syntax of this file is "
+"one line per alias, with the cell name, a space, and then the alias for that "
+"cell.)"
+msgstr ""
+"Si vous créez /afs de manière dynamique, vous aurez peut-être à créer /etc/"
+"openafs/CellAlias pour inclure les alias des cellules communes. Ce fichier comporte une ligne par alias, avec le nom de la cellule, un espace et l'alias utilisé pour la cellule."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid "Use fakestat to avoid hangs when listing /afs?"
+msgstr "Utiliser fakestat pour éviter les erreurs à l'affichage du contenu de /afs ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid ""
+"Because AFS is a global file space, operations on the /afs directory can "
+"generate significant network traffic. If some AFS cells are unavailable "
+"then looking at /afs using ls or a graphical file browser may hang your "
+"machine for minutes. AFS has an option to simulate answers to these "
+"operations locally to avoid these hangs. You want this option under most "
+"circumstances."
+msgstr ""
+"Comme AFS est un espace global de fichiers, les opérations sur /afs peuvent "
+"générer un trafic réseau non négligeable. Si certaines cellules sont "
+"indisponibles, l'affichage de /afs avec ls ou avec un gestionnaire de "
+"fichiers graphique peut stopper votre machine pour quelques minutes. AFS "
+"comporte une option permettant de simuler les réponses à ces requêtes pour "
+"éviter ces plantages. Cette option est utile dans la plupart des cas."
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid "What cell does this server serve files for?"
+msgstr "Cellule pour laquelle ce serveur est un serveur de fichiers :"
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid ""
+"AFS fileservers belong to a cell. They have the key for that cell's "
+"Kerberos service and serve volumes into that cell. Normally, this cell is "
+"the same cell as the workstation's client belongs to."
+msgstr ""
+"Les serveurs de fichiers AFS appartiennent à une cellule. Ils possèdent la "
+"clé pour le service Kerberos de cette cellule et y mettent à disposition des "
+"volumes. Normalement, cette cellule est la même que celle à laquelle "
+"appartient le client."
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid "Upgrading will move files to new locations; continue?"
+msgstr "Faut-il procéder au déplacement de fichiers requis pour la mise à jour ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid ""
+"Between Openafs 1.1 and Openafs 1.2, several files moved. In particular, "
+"files in /etc/openafs/server-local have been distributed to other "
+"locations. The BosConfig file is now located in /etc/openafs and the other "
+"files are located in /var/lib/openafs. If you continue with this upgrade, "
+"these files will be moved. You should use the bos restart command to reload "
+"your servers. Any configuration changes made before you do so will be lost."
+msgstr ""
+"Entre les versions 1.1 et 1.2 d'OpenAFS, de nombreux fichiers ont été "
+"déplacés. Les fichiers de /etc/openafs/server-local ont notamment été "
+"répartis sur d'autres emplacements. Le fichier BosConfig est désormais placé "
+"dans /etc/openafs et les autres fichiers sont dans /var/lib/openafs. Si vous "
+"poursuivez la mise à jour, ces fichiers seront déplacés. Vous devez utiliser "
+"la commande « bos restart » pour redémarrer vos serveurs. Toutes les "
+"modifications de configuration que vous ferez avant d'avoir effectué ces "
+"opérations seront perdues."
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid "OpenAFS file server probably does not work!"
+msgstr "Le serveur de fichiers OpenAFS ne fonctionne probablement pas"
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid ""
+"You are running the OpenAFS file server package on an alpha. This probably "
+"doesn't work; the DES code is flaky on the alpha, along with the threaded "
+"file server. Likely, the fileserver will simply fail to start, but if it "
+"does load, data corruption may result. You have been warned."
+msgstr ""
+"Vous utilisez le paquet du serveur de fichier OpenAFS sur une plateforme "
+"alpha. Cela ne fonctionne probablement pas ; le code DES est défectueux sur "
+"ces plateformes de même que le serveur de fichiers à processus légers. Il "
+"est probable que le serveur refusera tout simplement de démarrer. Cependant, "
+"s'il démarre quand même, des corruptions de données peuvent avoir lieu."
+
--- /dev/null
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openafs\n"
+"Report-Msgid-Bugs-To: debian-l10n-portuguese@lists.debian.org\n"
+"POT-Creation-Date: 2005-08-18 12:47-0700\n"
+"PO-Revision-Date: 2005-08-26 18:53-0300\n"
+"Last-Translator: André Luís Lopes <andrelop@debian.org>\n"
+"Language-Team: Debian-BR Project <debian-l10n-portuguese@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid "What hosts are DB servers for your home cell?"
+msgstr "Quais hosts são servidor DB para sua célula home ?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid ""
+"AFS uses the file /etc/openafs/CellServDB to hold the list of servers that "
+"should be contacted to find parts of a cell. The cell you claim this "
+"workstation belongs to is not in that file. Enter the host names of the "
+"database servers separated by spaces. IMPORTANT: If you are creating a new "
+"cell and this machine is to be a database server in that cell, only enter "
+"this machine's name; add the other servers later after they are functioning. "
+"Also, do not enable the AFS client to start at boot on this server until the "
+"cell is configured. When you are ready you can edit /etc/openafs/afs.conf."
+"client to enable the client."
+msgstr ""
+"O AFS usa o arquivo /etc/openafs/CellServDB para armazenar a lista de "
+"servidores que deverão ser contactados para se encontrar partes de uma "
+"célula. A célula que você diz que essa estação de trabalho pertence não está "
+"nesse arquivo. Informe os nomes de hosts dos servidore de base de dados "
+"separados por espaços. IMPORTANTE : Caso você esteja criando uma nova célula "
+"e esta máquina será um servidor de base de dados na célula, somente informe "
+"o nome desta máquina. Adicione os outros servidores posteriormente depois "
+"que os mesmos estejam funcionando. Adicionalmente, não habilite o cliente "
+"AFS para inicialização em tempo de inicialização neste servidor até que a "
+"célula esteja configurada. Quando você estiver terminado você poderá editar "
+"o arquivo /etc/openafs/afs.conf.client para habilitar este cliente."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid "What AFS cell does this workstation belong to?"
+msgstr "A qual célula AFS esta estação de trabalho pertence ?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid ""
+"AFS filespace is organized into cells or administrative domains. Each "
+"workstation belongs to one cell. Usually the cell is the DNS domain name of "
+"the site."
+msgstr ""
+"O espaço de arquivo AFS é organizado em células ou domínios administrativos. "
+"Cada estação de trabalho pertence a uma célula. Normalmente a célula é o "
+"nome de domínio DNS do site."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid "How large is your AFS cache (kB)?"
+msgstr "Qual o tamanho de seu cache AFS (KB) ?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid ""
+"AFS uses an area of the disk to cache remote files for faster access. This "
+"cache will be mounted on /var/cache/openafs. It is important that the cache "
+"not overfill the partition it is located on. Often, people find it useful "
+"to dedicate a partition to their AFS cache."
+msgstr ""
+"O AFS usa uma àrea do disco para fazer cache de arquivos remotos para acesso "
+"mais rápido. Esse cache será montando em /var/cache/openafs. É importante "
+"que o cache não ocupe toda a partrição na qual está localizado. Geralmente, "
+"os usuários AFS acham útil dedicar uma partição para seus caches AFS."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid "Run Openafs client now and at boot?"
+msgstr "Executar o cliente OpenAFS agora e em tempo de inicialização ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid ""
+"Should the Openafs filesystem be started and mounted at boot? Normally, most "
+"users who install the openafs-client package expect to run it at boot. "
+"However, if you are planning on setting up a new cell or are on a laptop, "
+"you may not want it started at boot time. If you choose not to start AFS at "
+"boot, run /etc/init.d/openafs-client force-start to start the client when "
+"you wish to run it."
+msgstr ""
+"O sistema de arquivos OpenAFS deverá ser iniciado e montando em tempo de "
+"inicialização ? Normalmente, a maioria dos usuários que instalam o pacote "
+"openafs-client esperam executá-lo em tempo de inicialização. Porém, caso "
+"você esteja planejando configurar uma nova célula ou esteja em um laptop, "
+"você pode não desejar iniciar o OpenAFS em tempo de inicialização. Caso você "
+"opte por não iniciar o AFS em tempo de inicialização, execute "
+"/etc/init.d/openafs-cliente force-start para iniciar o cliente quando "
+"desejar executá-lo."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid "Look up AFS cells in DNS?"
+msgstr "Procurar células AFS no DNS ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid ""
+"In order to contact an AFS cell, you need the IP addresses of the cell's "
+"database servers. Normally, this information is read from /etc/openafs/"
+"CellServDB. However, if Openafs cannot find a cell in that file, it can use "
+"DNS to look for AFSDB records that contain the information."
+msgstr ""
+"Para poder contactar uma célula AFS, você precisa dos endereços IP dos "
+"servidores de base de dados da célula. Normalmente, esta informação é lida "
+"de /etc/openafs/CellServDB. Porém, caso o OpenAFS não possa encontrar uma "
+"célula nesse arquivo, o DNS poderá ser usado para pesquisar registros AFSDB "
+"que contenham a informação."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid "Encrypt authenticated traffic with AFS fileserver?"
+msgstr "Encriptar o tráfego autenticado com o servidor de arquivos AFS ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid ""
+"AFS provides a weak form of encryption that can optionally be used between a "
+"client and the fileservers. While this encryption is weaker than DES and "
+"thus is not sufficient for highly confidential data, it does provide some "
+"confidentiality and is likely to make the job of a casual attacker "
+"significantly more difficult."
+msgstr ""
+"O AFS fornece uma forma fraca de encriptação que pode ser opcionalmente "
+"usada entre o cliente e os servidor de arquivos. Enquanto esta encriptação é "
+"mais fraca do que DES e portanto não é suficiente para dados altamente "
+"confidenciais, essa encriptação fornece alguma confidencialidade e "
+"provavelmente torna o trabalho de um atacante casual mais difícil."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid "Dynamically generate the contents of /afs?"
+msgstr "Gerar dinamicamente o conteúdo de /afs ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"/afs generally contains an entry for each cell that a client can talk to. "
+"Traditionally, these entries were generated by servers in the client's home "
+"cell. However, OpenAFS clients can generate the contents of /afs "
+"dynamically based on the contents of /etc/openafs/CellServDB and DNS."
+msgstr ""
+"O /afs geralmente contém uma entrada para cada célula com a qual o cliente "
+"pode conversar. Tradicionalmente, essas entradas eram geradas por servidores "
+"no célula home do cliente. Porém, clientes OpenAFS podem gerar o conteúdo "
+"de /afs dinamicamente baseando-se no conteúdo de /etc/openafs/CellServDB e "
+"do DNS."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"If you generate /afs dynamically, you may need to create /etc/openafs/"
+"CellAlias to include aliases for common cells. (The syntax of this file is "
+"one line per alias, with the cell name, a space, and then the alias for that "
+"cell.)"
+msgstr ""
+"Caso você gere o /afs dinamicamente, você pode precisar criar o /etc/openafs/"
+"CellAlias para incluir apelidos (aliases) para células comuns. (A "
+"sintaxe desse arquivo é uma linha por apelido, com o nome da célula, "
+"um espaço e depois o apelido para a célula.)"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid "Use fakestat to avoid hangs when listing /afs?"
+msgstr "Usar fakestat para evitar travadas na listagem do /afs ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid ""
+"Because AFS is a global file space, operations on the /afs directory can "
+"generate significant network traffic. If some AFS cells are unavailable "
+"then looking at /afs using ls or a graphical file browser may hang your "
+"machine for minutes. AFS has an option to simulate answers to these "
+"operations locally to avoid these hangs. You want this option under most "
+"circumstances."
+msgstr ""
+"Devido ao AFS ser um espaço de arquivos global, operações no diretório /afs "
+"podem gerar um tráfego de rede significativo. Caso algumas células AFS não "
+"estejam disponíveis, pesquisar o /afs usando o comando \"ls\" ou um "
+"gerenciador de arquivos gráfico pode travar sua máquina por alguns minutos. "
+"O AFS possui uma opção para simular respostas para essas operações "
+"localmente para evitar essas travadas. Você irá desejar usar esta opção na "
+"maioria dos casos."
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid "What cell does this server serve files for?"
+msgstr "Para qual célula este servidor serve arquivos ?"
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid ""
+"AFS fileservers belong to a cell. They have the key for that cell's "
+"Kerberos service and serve volumes into that cell. Normally, this cell is "
+"the same cell as the workstation's client belongs to."
+msgstr ""
+"Servidor de arquivos AFS pertencem a uma célula. Eles possuem uma chave para "
+"cada serviço Kerberos da célula e servem volumes dentro da célula. "
+"Normalmente, essa célula é a mesma célula da qual a estação de trabalho faz "
+"parte."
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid "Upgrading will move files to new locations; continue?"
+msgstr "Atualizar irá mover arquivo para novos locais. Continuar ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid ""
+"Between Openafs 1.1 and Openafs 1.2, several files moved. In particular, "
+"files in /etc/openafs/server-local have been distributed to other "
+"locations. The BosConfig file is now located in /etc/openafs and the other "
+"files are located in /var/lib/openafs. If you continue with this upgrade, "
+"these files will be moved. You should use the bos restart command to reload "
+"your servers. Any configuration changes made before you do so will be lost."
+msgstr ""
+"Entre as versões do OpenAFS 1.1 e do OpenAFS 1.2, diversos arquivos foram "
+"movidos. Em particular, aruivos em /etc/openafs/server-local foram "
+"distribuídos para outros locais. O arquivo BosConfig está agora localizado "
+"em /etc/openafs e os outros arquivos estão localizados em /var/lib/openafs. "
+"Caso você continue com esta atualização, esses arquivos serão movidos. Você "
+"deverá usar o comando \"bos restart\" para recarregar seus servidores. "
+"Quaisquer mudanças em configurações feitas antes que você tenha feito isso "
+"serão perdidas."
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid "OpenAFS file server probably does not work!"
+msgstr "Servidor de Arquivos OpenAFS provavelmente não funciona !"
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid ""
+"You are running the OpenAFS file server package on an alpha. This probably "
+"doesn't work; the DES code is flaky on the alpha, along with the threaded "
+"file server. Likely, the fileserver will simply fail to start, but if it "
+"does load, data corruption may result. You have been warned."
+msgstr ""
+"Você está executando o pacote do servidor de arquivos OpenAFS em uma máquina "
+"Alpha. Isso provavelmente não funcionará. O código DES é em conjunto com o "
+"servidor de arquivos com suporte a threads é problemático em máquinas Alpha. "
+"Provavelmente, o servidor de arquivos irá simplesmente falhar ao iniciar. "
+"Caso consiga ser iniciado, poderá causar corrupção de dados. Você foi "
+"avisado."
+
+#~ msgid "50000"
+#~ msgstr "50000"
--- /dev/null
+# Vietnamese translation for openafs.
+# Copyright © 2005 Free Software Foundation, Inc.
+# Clytie Siddall <clytie@riverland.net.au>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openafs 1.4rc1-1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-08-18 12:47-0700\n"
+"PO-Revision-Date: 2005-08-19 16:26+0930\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"X-Generator: LocFactoryEditor 1.2.2\n"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid "What hosts are DB servers for your home cell?"
+msgstr "Máy nào chạy trình phục vụ cơ sở dữ liệu cho ô chính bạn?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid ""
+"AFS uses the file /etc/openafs/CellServDB to hold the list of servers that "
+"should be contacted to find parts of a cell. The cell you claim this "
+"workstation belongs to is not in that file. Enter the host names of the "
+"database servers separated by spaces. IMPORTANT: If you are creating a new "
+"cell and this machine is to be a database server in that cell, only enter "
+"this machine's name; add the other servers later after they are functioning. "
+"Also, do not enable the AFS client to start at boot on this server until the "
+"cell is configured. When you are ready you can edit /etc/openafs/afs.conf."
+"client to enable the client."
+msgstr ""
+"AFS dùng tập tin « /etc/openafs/CellServDB » để chứa danh sách các máy phục vụ "
+"nên được liên hệ để tìm phần ô. Bạn đã tuyên bố máy trạm này thuộc một ô "
+"không phải trong tập tin ấy. Hãy nhập tên máy của những máy phục vụ cơ sở dữ "
+"liệu, định giới bằng dấu cách. QUAN TRỌNG: nếu bạn đang tạo một ô mới, và "
+"máy này sẽ là một máy phục vụ cơ sở dữ liệu trong ô ấy, thì bạn hãy nhập chỉ "
+"tên máy này thôi. Hãy thêm những máy phục vụ khác lần sau, sau khi chúng "
+"hoạt động. Hơn nữa, có thể hiệu lực trình khách AFS khởi chạy khi khởi động "
+"máy, chỉ sau khi cấu hình ô ấy. Khi bạn sẵn sàng thì có thể hiệu chỉnh tập "
+"tin « /etc/openafs/afs.conf.client » để hiệu lực trình khách ấy."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid "What AFS cell does this workstation belong to?"
+msgstr "Máy trạm này thuộc ô AFS nào?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid ""
+"AFS filespace is organized into cells or administrative domains. Each "
+"workstation belongs to one cell. Usually the cell is the DNS domain name of "
+"the site."
+msgstr ""
+"Khoảng cách tập tin loại AFS được tổ chức ra nhiều ô hay miền quản lý. Mỗi "
+"máy trạm thuộc một ô riêng lẻ. Thường ô ấy là tên miền DNS của nơi Mạng ấy."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid "How large is your AFS cache (kB)?"
+msgstr "Bạn có bộ nhớ tạm AFS lớn bao nhiêu (theo kB)?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid ""
+"AFS uses an area of the disk to cache remote files for faster access. This "
+"cache will be mounted on /var/cache/openafs. It is important that the cache "
+"not overfill the partition it is located on. Often, people find it useful "
+"to dedicate a partition to their AFS cache."
+msgstr ""
+"AFS dùng một vùng trên đĩa để lưu tạm tập tin từ xa, mà cho phép truy cập "
+"nhanh hơn. Bộ nhớ tạm này sẽ được gắn vào « /var/cache/openafs ». Quan trọng "
+"là bộ nhớ tạm ấy không vượt quá phân vùng ở. Thường có ích khi dùng một phân "
+"vùng chỉ cho bộ nhớ tạm AFS thôi."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid "Run Openafs client now and at boot?"
+msgstr "Chạy trình khách Openafs ngay bây giờ và cũng khi khởi động máy không?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid ""
+"Should the Openafs filesystem be started and mounted at boot? Normally, most "
+"users who install the openafs-client package expect to run it at boot. "
+"However, if you are planning on setting up a new cell or are on a laptop, "
+"you may not want it started at boot time. If you choose not to start AFS at "
+"boot, run /etc/init.d/openafs-client force-start to start the client when "
+"you wish to run it."
+msgstr ""
+"Có nên khởi chạy và gắn hệ thống tập tin Openafs khi khởi động máy không? "
+"Bình thường, phần lớn người dùng cài đặt gói « openafs-client » thì định "
+"chạy nó khi khởi động máy. Tuy nhiên, nếu bạn định thiết lập một ô mới, hoặc "
+"có dùng một máy tính xách tay, trong trường hợp ấy có lẽ bạn không muốn hệ "
+"thống tập tin ấy khởi chạy khi khởi động máy. Nếu bạn chọn không khởi chạy "
+"AFS khi khởi động máy thì hãy chạy lệnh « /etc/init.d/openafs-client force-"
+"start » (buộc khởi chạy trình khách AFS) để khởi chạy trình khách khi mà bạn "
+"muốn chạy nó."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid "Look up AFS cells in DNS?"
+msgstr "Tra cứu ô AFS trong DNS không?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid ""
+"In order to contact an AFS cell, you need the IP addresses of the cell's "
+"database servers. Normally, this information is read from /etc/openafs/"
+"CellServDB. However, if Openafs cannot find a cell in that file, it can use "
+"DNS to look for AFSDB records that contain the information."
+msgstr ""
+"Để liên hệ một ô AFS, bạn cần có địa chỉ IP của mọi máy phục vụ cơ sở dữ "
+"liệu của nó. Bình thường, thông tin này được đọc từ tập tin « /etc/openafs/"
+"CellServDB ». Tuy nhiên, nếu trình Openafs không tìm thấy một ô nào đó trong "
+"tập tin ấy thì nó có thể dùng DNS (hệ thống tên miền) để tìm mục ghi AFSDB "
+"chứa thông tin ấy."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid "Encrypt authenticated traffic with AFS fileserver?"
+msgstr ""
+"Mật mã hóa các dữ liệu xác thực truyền với trình phục vụ tập tin AFS không?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid ""
+"AFS provides a weak form of encryption that can optionally be used between a "
+"client and the fileservers. While this encryption is weaker than DES and "
+"thus is not sufficient for highly confidential data, it does provide some "
+"confidentiality and is likely to make the job of a casual attacker "
+"significantly more difficult."
+msgstr ""
+"AFS cung cấp một cách mật mã yếu mà tùy chọn có thể được dùng giữa một trình "
+"khách nào đó và những trình phục vụ tập tin khác. Dù cách mặt mã này yếu hơn "
+"DES, vì vậy không đủ cho dữ liệu quan trọng, nó có cung cấp một mức độ riêng "
+"tư, thì sẽ làm cho người tấn công gặp khó khăn một phần."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid "Dynamically generate the contents of /afs?"
+msgstr "Tạo ra nội dung « /afs » một cách động không?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"/afs generally contains an entry for each cell that a client can talk to. "
+"Traditionally, these entries were generated by servers in the client's home "
+"cell. However, OpenAFS clients can generate the contents of /afs "
+"dynamically based on the contents of /etc/openafs/CellServDB and DNS."
+msgstr ""
+"Thư mục « /afs » thường chứa một mục ghi cho mỗi ô mà trình khách có thể liên "
+"hệ. Trước này, trình phục vụ trong ô chính của trình khác đã tạo ra mục ghi "
+"này. Tuy nhiên, trình khách loại OpenAFS có thể tạo ra nội dung « /afs » một "
+"cách động, đựa vào nội dung « /etc/openafs/CellServDB » và vào DNS."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"If you generate /afs dynamically, you may need to create /etc/openafs/"
+"CellAlias to include aliases for common cells. (The syntax of this file is "
+"one line per alias, with the cell name, a space, and then the alias for that "
+"cell.)"
+msgstr ""
+"Nếu bạn chọn tạo ra « /afs » một cách động, có lẽ bạn sẽ cần phải tạo « etc/"
+"openafs/CellAlias » (bí danh ô) để gồm bí danh cho các ô chung. (Cú pháp của tập tin này là một dòng cho mỗi bí danh, mà chứa tên ô, rồi một dấu cách, rồi bí danh cho ô đó.)"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid "Use fakestat to avoid hangs when listing /afs?"
+msgstr ""
+"Dùng « fakestat » (thống kê giả) để tránh hệ thống treo cứng khi liệt kê « /"
+"afs » không?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid ""
+"Because AFS is a global file space, operations on the /afs directory can "
+"generate significant network traffic. If some AFS cells are unavailable "
+"then looking at /afs using ls or a graphical file browser may hang your "
+"machine for minutes. AFS has an option to simulate answers to these "
+"operations locally to avoid these hangs. You want this option under most "
+"circumstances."
+msgstr ""
+"Vì AFS là một khoảng cách toàn cục, thao tác trên thư mục « /afs » có thể tạo "
+"ra nhiều tải cho mạng. Nếu một số ô AFS không sẵn sàng thì việc xem « /afs » "
+"dùng lệnh « ls » (liệt kê) hoặc dùng một trình đồ họa duyệt tập tin thì có thể "
+"treo cứng máy bạn trong vòng nhiều phút. AFS tùy chọn có thể mô phỏng trả "
+"lời cho thao tác loại này một cách địa phương, để tránh treo cứng hệ thống "
+"như thế. Đệ nghi bạn sử dụng tùy chọn này: nó cần thiết trong phần lớn "
+"trường hợp."
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid "What cell does this server serve files for?"
+msgstr "Trình phục vụ này phục vụ tập tin cho ô nào?"
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid ""
+"AFS fileservers belong to a cell. They have the key for that cell's "
+"Kerberos service and serve volumes into that cell. Normally, this cell is "
+"the same cell as the workstation's client belongs to."
+msgstr ""
+"Mọi trình phục vụ tập tin AFS thuộc một ô nào đó. Trình ấy có khóa của dịch "
+"vụ Kerberos của ô này, và phục vụ khối đĩa vào ô này. Bình thường, ô này là "
+"cùng một ô với ô sở hữu trình khách của máy trạm này."
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid "Upgrading will move files to new locations; continue?"
+msgstr ""
+"Nâng cấp sẽ di chuyển tập tin sang vị trí mới: bạn có muốn tiếp tục không?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid ""
+"Between Openafs 1.1 and Openafs 1.2, several files moved. In particular, "
+"files in /etc/openafs/server-local have been distributed to other "
+"locations. The BosConfig file is now located in /etc/openafs and the other "
+"files are located in /var/lib/openafs. If you continue with this upgrade, "
+"these files will be moved. You should use the bos restart command to reload "
+"your servers. Any configuration changes made before you do so will be lost."
+msgstr ""
+"Giữa Openafs phiên bản 1.1 và 1.2, vài tập tin đã được di chuyển. Đặc biệt, "
+"những tập tin trong « /etc/openafs/server-local » (trình phục vụ địa phương) "
+"đã được chia ra nhiều vị trí khác. Tập tin « BosConfig » lúc này trong « /etc/"
+"openafs », và những tập tin khác có trong « /var/lib/openafs ». Nếu bạn chọn "
+"tiếp tục nâng cấp, các tập tin ấy sẽ được di chuyển như thế. Bạn hãy sử dụng "
+"lệnh « bos restart » (khởi chạy lại) để khởi chạy lại các trình phục vụ của "
+"bạn. Mọi thay đổi cấu hình được tạo trước khi bạn khởi chạy lại thì sẽ bị "
+"mất."
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid "OpenAFS file server probably does not work!"
+msgstr "Rất có thể là trình phục vụ tập tin OpenAFS không hoạt động."
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid ""
+"You are running the OpenAFS file server package on an alpha. This probably "
+"doesn't work; the DES code is flaky on the alpha, along with the threaded "
+"file server. Likely, the fileserver will simply fail to start, but if it "
+"does load, data corruption may result. You have been warned."
+msgstr ""
+"Bạn có chạy gói tin trình phục vụ tập tin OpenAFS trên một anfa. Rất có thể "
+"là nó không hoạt động vì mã DES bị lỗi trên anfa, cũng với trình phục vụ tập "
+"tin theo mạch. Rất có thể là trình phục vụ tập tin sẽ không khởi chạy, nhưng "
+"mà nếu nó có phải khởi chạy thì dữ liệu có thể bị hỏng. Bạn đã nhận một cảnh "
+"báo rồi."
#! /bin/sh
+#
+# Prepares to build kernel modules. This script figures out and munges
+# version strings. The goal is:
+#
+# * Set the package name to openafs-modules-$(KVERS) where $(KVERS) is the
+# major kernel revision plus the debian subrevision and whatever
+# architecture string is appropriate if building against the stock Debian
+# kernels. $(KVERS) should be identical to the version component contained
+# in the Debian kernel package names.
+#
+# * Make the package recommend either kernel-image-$(KVERS) or
+# linux-image-$(KVERS) as appropriate for the kernel version that we're
+# building against. Use recommend rather than depends since the user may
+# have built their own kernel outside of the Debian package infrastructure.
+#
+# * Save the version number of the binary package in debian/VERSION for later
+# use by dh_gencontrol. This will be the version number of the source
+# package followed by a + and the version number of the kernel package that
+# we're building against. If the kernel package version contains an epoch,
+# try to hack our way into doing the right thing by using that epoch number
+# as our own. This isn't quite the right thing, but seems reasonably good.
+#
+# This script generates debian/control from debian/control.module using sed.
+# Unfortunately, substvars cannot be used since the name of the package is
+# modified and substvars happens too late. It also outputs debian/VERSION,
+# containing the version of the binary package.
set -e
-if [ $# -ne 2 ]; then
- echo Usage: $0 kernelsource-location control-template
- exit 1
+if [ "$#" -ne 1 ]; then
+ echo Usage: $0 kernelsource-location
+ exit 1
fi
+# We can get the kernel version from one of three places. If KVERS and KDREV
+# are both already set in the environment (which will be the case when invoked
+# by make-kpkg or module-assistant), use them. Otherwise, if we have a kernel
+# source directory that contains debian/changelog (generated by make-kpkg),
+# parse that file to find the version information. Finally, if neither works,
+# extract the kernel version from the kernel headers, append INT_SUBARCH to
+# that version if it's available, and assume a kernel package revision of -0
+# if none is provided.
+#
+# Set the variables $afs_kvers, which will hold the revision of the kernel,
+# and $afs_kdrev, which will hold the version of the kernel package that we're
+# building against.
changelog="$1/debian/changelog"
if [ -n "$KVERS" ] && [ -n "$KDREV" ]; then
- linuxversion=$KVERS${INT_SUBARCH}
- kernversion=$KDREV
-
-elif [ ! -f $changelog ]; then
- linuxversion=`awk '{ if (NR==1) v=$3; else if (NR==2) p=$3; else if (NR==3) s=$3; \
- else if (NR==4) { e=$3; exit; } } \
- END { printf("%s.%s.%s%s\n",v,p,s,e); }' $1/Makefile`
-
- if [ -z "$KDREV" ]; then
- kernversion=$linuxversion-0
- else
- linuxversion=${linuxversion}${INT_SUBARCH}
- kernversion=$KDREV
- fi
-
+ afs_kvers="${KVERS}${INT_SUBARCH}"
+ afs_kdrev="${KDREV}"
+elif [ ! -f "$changelog" ] ; then
+ if [ -n "$KVERS" ] ; then
+ afs_kvers="$KVERS"
+ else
+ afs_kvers=`perl debian/kernel-version "$1"`
+ fi
+ if [ -z "$KDREV" ] ; then
+ afs_kdrev="${afs_kvers}-0"
+ else
+ afs_kvers="${afs_kvers}${INT_SUBARCH}"
+ afs_kdrev="${KDREV}"
+ fi
else
- linuxversion=`head -1 $changelog | \
- sed -e 's/.*source-\([^ ]*\) (\([^)]*\)).*/\1/'`
- kernversion=`head -1 $changelog | \
- sed -e 's/.*source-\([^ ]*\) (\([^)]*\)).*/\2/'`
+ if [ -n "$KVERS" ] ; then
+ afs_kvers="$KVERS"
+ else
+ afs_kvers=`head -1 "$changelog" \
+ | sed -e 's/.*source-\([^ ]*\) (\([^)]*\)).*/\1/'`
+ fi
+ afs_kdrev=`head -1 "$changelog" \
+ | sed -e 's/.*source-\([^ ]*\) (\([^)]*\)).*/\2/'`
fi
-pkgversion=`head -1 debian/changelog | \
- sed -e 's/.*(\([^)]*\)).*/\1/'`
-
-pkgupversion=`echo $pkgversion | cut -d- -f 1`
-pkgupversion2=`perl -e "\"$pkgupversion\" =~ /(.*?)(\d+)\D*$/;"'printf $1 . ($2+1);'`
+# Determine the kernel package name. For right now, assume linux-image for
+# 2.6.12 and later, and kernel-image for anything earlier. If this doesn't
+# work for someone, please submit a bug with the details.
-sed -e s/=KVERS/$linuxversion/g -e s/=KREVS/$kernversion/g -e s/=AVERS/$pkgupversion/g -e s/=2AVERS/$pkgupversion2/g $2
-
-mprefix=`grep Package: $2 | cut -d' ' -f 2 | cut -d= -f 1`
+if dpkg --compare-versions "$afs_kvers" ge "2.6.12" ; then
+ afs_image=linux-image
+else
+ afs_image=kernel-image
+fi
-rm -f debian/tmp/usr/share/doc/$mprefix$linuxversion
+# Generate the control file from the template.
+sed -e "s/=KVERS/${afs_kvers}/g" -e "s/=IMG/${afs_image}/g" \
+ debian/control.module > debian/control
-epochversion=`echo $kernversion | sed -n -e 's/^\([0-9]*\):.*/\1/p' -e 's/.*//'`
-kernversion="$pkgversion+`echo $kernversion | sed -e 's/^[0-9]*://'`"
+# Now, calcuate the binary package version. Extract the epoch from the kernel
+# package revision and add it to the beginning of the binary package version
+# if present. Then, concatenate the source version, '+', and the kernel
+# package revision without the epoch.
-if [ -n "$epochversion" ]; then
- kernversion=$epochversion:$kernversion
+afs_version=`head -1 debian/changelog | sed -e 's/.*(\([^)]*\)).*/\1/'`
+afs_epoch=`echo ${afs_kdrev} | sed -n -e 's/^\([0-9]*\):.*/\1/p'`
+afs_version="${afs_version}+`echo ${afs_kdrev} | sed -e 's/^[0-9]*://'`"
+if [ -n "$afs_epoch" ] ; then
+ afs_version="${afs_epoch}:${afs_version}"
fi
-echo "$kernversion" > debian/VERSION
-echo "$linuxversion" > debian/KVERS
+
+echo "$afs_version" > debian/VERSION
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
--->
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
-# This is the debhelper compatability version to use.
-export DH_COMPAT=2
-
# This has to be exported to make some magic below work.
export DH_OPTIONS
-# The AFS sysname is determined by a script
-KVERS=`awk '{ if (NR==1) v=$$3; else if (NR==2) p=$$3; else if (NR==3) s=$$3; \
- else if (NR==4) { e=$$3; exit; } } \
- END { printf("%s.%s.%s%s\n",v,p,s,e); }' $(KSRC)/Makefile`
-SYS_NAME=$(shell KVERS=$(KVERS) sh debian/sysname)
-package=openafs
-srcpkg = openafs-modules-source
-modulepkg=$(shell echo openafs-modules-$(KVERS)${INT_SUBARCH})
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ DEBIAN_OPT_FLAGS = --disable-optimize --disable-lwp-optimize
+ DEBIAN_KERN_FLAGS = --disable-kernel-optimize
+else
+ DEBIAN_OPT_FLAGS =
+ DEBIAN_KERN_FLAGS =
+endif
+
ifndef KSRC
-KSRC=/usr/src/linux
+ KSRC = /usr/src/linux
+endif
+ifndef KPKG_DEST_DIR
+ KPKG_DEST_DIR = ..
endif
-MODDIR=..
-LINTIAN_PACKAGES= openafs-client openafs-fileserver
+KVERS := $(shell perl debian/kernel-version $(KSRC))
export KSRC
export KVERS
-
+export KPKG_DEST_DIR
+
+SYS_NAME := $(shell KSRC="$(KSRC)" KVERS="$(KVERS)" sh debian/sysname)
+
+package = openafs
+srcpkg = openafs-modules-source
+modulepkg := openafs-modules-$(KVERS)${INT_SUBARCH}
+moduledir := debian/$(modulepkg)/lib/modules/$(KVERS)/fs
+
+# These packages have lintian overrides.
+LINTIAN_PACKAGES = openafs-dbserver openafs-client openafs-fileserver
+
+# The /usr/share/doc directory for these packages should be a symlink to
+# /usr/share/doc/openafs-client. Any package on this list must depend on
+# openafs-client.
+DOC_PACKAGES = libpam-openafs-kaserver openafs-dbserver openafs-fileserver \
+ openafs-kpasswd
+
+# These variable is used only by get-orig-source, which will normally only be
+# run by maintainers.
+VERSION = 1.4.0
+UPSTREAM = /afs/grand.central.org/software/openafs/$(VERSION)
+
+# Download the upstream source and do the repackaging that we have to do for
+# DFSG reasons. This assumes AFS is mounted, as it's generally only used by
+# the package maintainers.
+get-orig-source:
+ cp $(UPSTREAM)/openafs-$(VERSION)-src.tar.bz2 .
+ tar xjf openafs-$(VERSION)-src.tar.bz2
+ rm openafs-$(VERSION)-src.tar.bz2
+ rm -r openafs-$(VERSION)/src/packaging/MacOS
+ rm -r openafs-$(VERSION)/src/WINNT
+ tar cf openafs_$(VERSION).orig.tar openafs-$(VERSION)
+ rm -r openafs-$(VERSION)
+ gzip -9 openafs_$(VERSION).orig.tar
configure: configure-stamp
configure-stamp:
+ @if test x"$(SYS_NAME)" = x"UNKNOWN" ; then exit 1 ; fi
dh_testdir
- -ln -s @sys/dest dest
- -ln -s $(SYS_NAME) @sys
-# sh regen.sh
- afslogsdir=/var/log/openafs sh configure --with-afs-sysname=$(SYS_NAME) --disable-kernel-module \
- --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
- --localstatedir=/var/lib
- install -d $(SYS_NAME)/dest/root.client/usr/vice/etc
- install -d dest/root.server/usr/afs/bin
-
+ afslogsdir=/var/log/openafs afslocaldir=/etc/openafs/server-local \
+ sh configure \
+ --with-afs-sysname=$(SYS_NAME) --disable-kernel-module \
+ --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
+ --localstatedir=/var/lib --enable-supergroups \
+ --enable-largefile-fileserver --enable-debug --enable-lwp-debug \
+ $(DEBIAN_OPT_FLAGS)
+ chmod a+x src/libafs/make_kbuild_makefile.pl
touch configure-stamp
build: configure-stamp build-stamp
build-stamp:
dh_testdir
-
- $(MAKE) dest
- -rm $(SYS_NAME)/dest/include/crypt.h
+ mkdir -p $(CURDIR)/debian/tmp
+ $(MAKE) install_nolibafs DESTDIR=$(CURDIR)/debian/tmp
+ chmod +x debian/afs-rootvol debian/afs-newcell debian/doc/build-man
+ cd debian/doc && ./build-man
touch build-stamp
clean:
dh_testdir
dh_testroot
- rm -f build-stamp configure-stamp build-modules-stamp
- # Add here commands to clean up after the build process.
- -$(MAKE) -ki distclean
- -rm -rf obj dest $(SYS_NAME) @sys Makefile debian/openafs-client.init
- -rm -rf config.status config.cache lib include
+ rm -f build-stamp configure-stamp
+ rm -f build-modules-stamp configure-modules-stamp
+ifeq (Makefile,$(wildcard Makefile))
+ $(MAKE) distclean
+endif
+ rm -rf debian/doc/man1 debian/doc/man5 debian/doc/man8
dh_clean
install: DH_OPTIONS=
install: build
dh_testdir
dh_testroot
- dh_clean -k
dh_installdirs
- mkdir -p debian/openafs-dbserver/usr/share/man/man8
- /usr/bin/docbook-to-man debian/pt_util.sgml >debian/openafs-dbserver/usr/share/man/man8/pt_util.8
- for foo in $(LINTIAN_PACKAGES) ; do \
- install -d debian/$$foo/usr/share/lintian/overrides; \
- cp debian/$$foo.lintian debian/$$foo/usr/share/lintian/overrides/$$foo; \
- done
- for pkg in openafs-dbserver openafs-fileserver openafs-kpasswd; do \
- ln -s openafs-client debian/$$pkg/usr/share/doc/$$pkg; \
- done
- # Add here commands to install the package into debian/tmp.
- cat debian/filelist |sh debian/movefiles
- mv debian/openafs-client/usr/bin/pagsh \
- debian/openafs-client/usr/bin/pagsh.openafs
-
- cp debian/CellServDB debian/openafs-client/usr/share/openafs
- cp dest/root.client/usr/vice/etc/afs.rc debian/openafs-client.init
- cp dest/root.client/usr/vice/etc/afs.conf debian/openafs-client/etc/openafs/afs.conf
- install -m 755 -o root -g root debian/afs-rootvol debian/openafs-dbserver/usr/sbin
- install -g root -o root -m 755 debian/afs-newcell \
- debian/openafs-dbserver/usr/sbin
- install -D -m 644 debian/ConfigUtils.pm \
- debian/openafs-dbserver/usr/lib/perl5/Debian/OpenAFS/ConfigUtils.pm
- (cd debian&&pod2man --section 8 --center "Debian GNU/Linux" \
- afs-rootvol ) >debian/openafs-dbserver/usr/share/man/man8/afs-rootvol.8
- (cd debian&&pod2man --section 8 --center "Debian GNU/Linux" \
- afs-newcell ) >debian/openafs-dbserver/usr/share/man/man8/afs-newcell.8
- # No, includes should not have the x bit set
- find debian/libopenafs-dev/usr/include -type f -print | \
- xargs chmod a-x
- # And drop the pam modules
- rm debian/libopenafs-dev/usr/lib/*pam*
-
-# Build architecture-independent files here.
-# Pass -i to all debhelper commands in this target to reduce clutter.
+ dh_install
+
+ set -e; for pkg in $(LINTIAN_PACKAGES) ; do \
+ install -d debian/$$pkg/usr/share/lintian/overrides; \
+ install -m 644 -c debian/$$pkg.lintian \
+ debian/$$pkg/usr/share/lintian/overrides/$$pkg; \
+ done
+ set -e; for pkg in $(DOC_PACKAGES) ; do \
+ ln -s openafs-client debian/$$pkg/usr/share/doc/$$pkg; \
+ done
+
+ mv debian/openafs-client/usr/bin/pagsh \
+ debian/openafs-client/usr/bin/pagsh.openafs
+ mv debian/openafs-client/usr/share/man/man1/pagsh.1 \
+ debian/openafs-client/usr/share/man/man1/pagsh.openafs.1
+ mv debian/openafs-client/usr/bin/up \
+ debian/openafs-client/usr/bin/afs-up
+ mv debian/openafs-client/usr/share/man/man1/up.1 \
+ debian/openafs-client/usr/share/man/man1/afs-up.1
+
+ install -m 644 -c debian/tmp/usr/lib/pam_afs.so.1 \
+ debian/libpam-openafs-kaserver/lib/security/pam_afs.so
+ install -m 644 -c debian/tmp/usr/lib/pam_afs.krb.so.1 \
+ debian/libpam-openafs-kaserver/lib/security/pam_afs.krb.so
+
+ install -d debian/openafs-dbserver/usr/share/man/man8
+ /usr/bin/docbook-to-man debian/pt_util.sgml \
+ >debian/openafs-dbserver/usr/share/man/man8/pt_util.8
+ ( cd debian && pod2man --section 8 --center "Debian GNU/Linux" \
+ afs-rootvol ) \
+ >debian/openafs-dbserver/usr/share/man/man8/afs-rootvol.8
+ ( cd debian && pod2man --section 8 --center "Debian GNU/Linux" \
+ afs-newcell ) \
+ >debian/openafs-dbserver/usr/share/man/man8/afs-newcell.8
+
+# Build architecture-independent files here. Pass -i to all debhelper
+# commands in this target to reduce clutter.
binary-indep: DH_OPTIONS=-i
binary-indep: build install binary-source
- # Need this version of debhelper for DH_OPTIONS to work.
- dh_testversion 1.1.17
dh_testdir
dh_testroot
-# dh_installdebconf
+ dh_installchangelogs NEWS
dh_installdocs
- dh_installexamples
- dh_installmenu
-# dh_installemacsen
-# dh_installpam
-# dh_installinit
- dh_installcron
-# dh_installmanpages
- dh_installinfo
- dh_undocumented
- dh_installchangelogs ChangeLog
dh_link
dh_compress
dh_fixperms
- # You may want to make some executables suid here.
- dh_suidregister
dh_installdeb
-# dh_perl
dh_gencontrol
dh_md5sums
dh_builddeb
-# Build architecture-dependent files here.
-# Pass -a to all debhelper commands in this target to reduce clutter.
+# Build architecture-dependent files here. Pass -a to all debhelper commands
+# in this target to reduce clutter.
binary-arch: DH_OPTIONS=-a
binary-arch: build install
- # Need this version of debhelper for DH_OPTIONS to work.
- dh_testversion 1.1.17
dh_testdir
dh_testroot
- dh_installdebconf
+ dh_installchangelogs NEWS
dh_installdocs
- dh_installexamples
- dh_installmenu
-# dh_installemacsen
-# dh_installpam
+ dh_installdebconf
DH_OPTIONS= dh_installinit -popenafs-client -r -- defaults 25 18
DH_OPTIONS= dh_installinit -popenafs-fileserver -r
- dh_installcron
-# dh_installmanpages
- dh_installinfo
- dh_undocumented
- dh_installchangelogs ChangeLog
- dh_strip
dh_link
+ dh_strip
dh_compress
dh_fixperms
- # You may want to make some executables suid here.
chmod 700 debian/openafs-client/var/cache/openafs
- chmod 700 debian/openafs-fileserver/etc/openafs/server
chmod 700 debian/openafs-dbserver/var/lib/openafs/db
+ chmod 700 debian/openafs-fileserver/etc/openafs/server
chmod 700 debian/openafs-fileserver/var/lib/openafs/cores
- dh_suidregister
+ dh_perl
dh_installdeb
-# dh_makeshlibs
-# dh_perl
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure
-
-############################Module package support
-kdist_image: build-modules
- $(MAKE) $(MFLAGS) -f debian/rules MODDIR=$(KSRC)/.. binary-modules
- $(MAKE) $(MFLAGS) -f debian/rules MODDIR=$(KSRC)/.. clean
-
-kdist: build-modules
- $(MAKE) $(MFLAGS) -f debian/rules MODDIR=$(KSRC)/.. KERNEL_DEPENDS=y binary-modules
- KSRC="$(KSRC)" KMAINT="$(KMAINT)" KEMAIL="$(KEMAIL)" \
- sh -v debian/genchanges.sh
- $(MAKE) $(MFLAGS) -f debian/rules MODDIR=$(KSRC)/.. clean
-
+binary: binary-indep binary-arch
+##################### Building openafs-modules-source ######################
-kdist_config: configure
-
-kdist_clean: clean
-
-############################ source stuff #################################
binary-source:
-# Perform some tests
- test -f debian/rules
- test `id -u` = "0"
-
-
-# Setup everything first
+ dh_testdir
+ dh_testroot
-rm -rf debian/$(srcpkg) debian/substvars
- install -d debian/$(srcpkg)
-# Clean up the sources
install -d debian/$(srcpkg)/usr/src/modules/$(package)
- find . \( -name \*.o -o -path ./debian/$(srcpkg) -o -path \*/CVS -o -path ./src/WINNT \
- -o -path ./obj -o -path ./$(SYS_NAME) \
- -o \( -path ./debian/\* -type d \) \
- -o -path ./debian/\*debhelper \) -prune -o -print | \
- cpio -admp debian/$(srcpkg)/usr/src/modules/$(package)
- ( cd debian/$(srcpkg)/usr/src/modules/$(package)&& \
- $(MAKE) -f debian/rules clean && \
- rm -rf src/libafs/rx src/libafs/afs src/libafs/afsint; \
- mv debian/kern-sysname debian/sysname)
- chown -R root.root debian/$(srcpkg)
+ find . \( -name \*.o -o -path ./debian/$(srcpkg) -o -path \*/CVS \
+ -o -path \*/.svn -o -path ./src/WINNT \
+ -o -path ./obj -o -path ./$(SYS_NAME) \
+ -o \( -path ./debian/\* -type d \) \
+ -o -path ./debian/\*debhelper \) -prune -o -print | \
+ cpio -admp debian/$(srcpkg)/usr/src/modules/$(package)
+ cd debian/$(srcpkg)/usr/src/modules/$(package) && \
+ $(MAKE) -f debian/rules clean && \
+ mv debian/kern-sysname debian/sysname
+ -cd debian/$(srcpkg)/usr/src/modules/$(package) && \
+ rm -rf src/libafs/rx src/libafs/afs src/libafs/afsint
+ chown -R root.src debian/$(srcpkg)
find debian/$(srcpkg) -type d | xargs chmod 755
find debian/$(srcpkg) -type f -perm -100 | xargs chmod 755
find debian/$(srcpkg) -type f -not -perm -100 | xargs chmod 644
+ chmod 775 debian/$(srcpkg)/usr/src/modules
cd debian/$(srcpkg)/usr/src && \
- tar cf $(package).tar modules && \
- $(RM) -r modules/$(package)
+ tar cf $(package).tar modules && \
+ rm -r modules
gzip -9 debian/$(srcpkg)/usr/src/$(package).tar
chmod 644 debian/$(srcpkg)/usr/src/$(package).tar.gz
-############################ modules stuff #################################
-build-modules: build-modules-stamp
+#################### Module package support (make-kpkg) ####################
+
+kdist_configure: configure-modules-stamp
+
+kdist_image: build-modules-stamp
+ $(ROOT_CMD) $(MAKE) $(MFLAGS) -f debian/rules binary-modules
+ $(ROOT_CMD) $(MAKE) $(MFLAGS) -f debian/rules clean
-build-modules-stamp:
- -ln -s @sys/dest dest
- -ln -s $(SYS_NAME) @sys
- sh configure --with-afs-sysname=$(SYS_NAME) --with-linux-kernel-headers=$(KSRC)
- make dest_only_libafs
+kdist: build-modules-stamp
+ $(ROOT_CMD) $(MAKE) $(MFLAGS) -f debian/rules binary-modules
+ KSRC="$(KSRC)" KMAINT="$(KMAINT)" KEMAIL="$(KEMAIL)" \
+ sh -v debian/genchanges.sh
+ $(ROOT_CMD) $(MAKE) $(MFLAGS) -f debian/rules clean
+
+kdist_clean:
+ $(ROOT_CMD) $(MAKE) $(MFLAGS) -f debian/rules clean
+
+######################## Kernel module build rules #########################
+
+configure-modules: configure-modules-stamp
+configure-modules-stamp:
+ @if test x"$(SYS_NAME)" = x"UNKNOWN" ; then exit 1 ; fi
+ @if test x"$(KVERS)" = x ; then \
+ echo 'No version in $(KSRC)/include/linux/version.h' >&2 ; \
+ exit 1 ; \
+ fi
+ sh debian/prep-modules $(KSRC)
+ sh configure --with-afs-sysname=$(SYS_NAME) \
+ --with-linux-kernel-headers=$(KSRC) --prefix=`pwd`/debian/tmp \
+ --enable-debug --enable-lwp-debug --enable-kernel-debug \
+ $(DEBIAN_OPT_FLAGS) $(DEBIAN_KERN_FLAGS)
+ touch configure-modules-stamp
+
+build-modules: build-modules-stamp
+build-modules-stamp: configure-modules-stamp
+ make only_libafs
touch build-modules-stamp
-binary-modules: build-modules
-# Perform some tests
- test -f debian/rules
- test `id -u` = "0"
-
-# Setup everything first
- -rm -rf debian/$(modulepkg) debian/substvars
- install -d debian/$(modulepkg)
-
-# Install the software
- install -d -g root -o root -m 755 debian/$(modulepkg)/lib/modules/$(KVERS)/fs
- install -g root -o root -m 755 dest/root.client/usr/vice/etc/modload/*.o \
- debian/$(modulepkg)/lib/modules/$(KVERS)/fs
-# Fix some stuff up
- install -d -o root -g root -m 755 debian/$(modulepkg)/usr/share/doc
- ln -s openafs-client debian/$(modulepkg)/usr/share/doc/$(modulepkg)
- rm -rf debian/$(modulepkg)/usr/include
-ifeq ($(KERNEL_DEPENDS),y)
- sh debian/prep-modules $(KSRC) debian/control.module > debian/control
-else
- sh debian/prep-modules $(KSRC) debian/control.module-image > debian/control
-endif
+install-modules: build-modules-stamp
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ cd src/libafs && make install
+ install -d -g root -o root -m 755 $(moduledir)
+ install -g root -o root -m 755 debian/tmp/lib/openafs/*o $(moduledir)/
+ if test -f $(moduledir)/openafs.o \
+ -a ! -f $(moduledir)/openafs.mp.o ; then \
+ ln $(moduledir)/openafs.o $(moduledir)/openafs.mp.o || exit 1 ; \
+ fi
+
+binary-modules: install-modules
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs NEWS
+ dh_installdocs
+ dh_installmodules
+ dh_strip
+ dh_link
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_gencontrol -- -v`cat debian/VERSION`
+ dh_md5sums
+ dh_builddeb --destdir="$(KPKG_DEST_DIR)"
-# Install control files
- install -d -o root -g root -m 755 debian/$(modulepkg)/DEBIAN
- install -p -o root -g root -m 755 debian/prerm.mod \
- debian/$(modulepkg)/DEBIAN/prerm
- install -p -o root -g root -m 755 debian/postinst.mod \
- debian/$(modulepkg)/DEBIAN/postinst
-
-# And now.. for the final packaging!
- find debian/$(modulepkg) -type f | grep -v "./DEBIAN" | xargs md5sum | \
- sed -e 's#debian/$(modulepkg)/##' > debian/$(modulepkg)/DEBIAN/md5sums
-
- dpkg-gencontrol -isp \
- -p$(modulepkg) \
- -v`cat debian/VERSION` \
- -Pdebian/$(modulepkg)
- chown -R root.root debian/$(modulepkg)
- chmod -R go=rX debian/$(modulepkg)
- dpkg --build debian/$(modulepkg) $(MODDIR)
+.PHONY: build clean binary-indep binary-arch binary install configure
+.PHONY: kdist_configure kdist_image kdist kdist_clean binary-source
#!/bin/sh
-case `arch` in
- alpha)
- echo alpha_linux_22
- ;;
+# Maps Debian architectures to AFS sysnames for building the clients and
+# libraries. This doesn't worry about the kernel version; kern-sysname
+# does that when building the kernel module.
+#
+# Not all architectures are listed, only those that OpenAFS supports.
+
+case `dpkg --print-installation-architecture` in
+alpha)
+ echo alpha_linux_24
+ ;;
+amd64)
+ echo amd64_linux24
+ ;;
+hppa)
+ echo parisc_linux24
+ ;;
i[3456]86)
- echo i386_linux22
-;;
- ia64)
+ echo i386_linux24
+ ;;
+ia64)
echo ia64_linux24
-;;
- parisc*)
- echo parisc_linux24
- ;;
- ppc)
- echo ppc_linux22
- ;;
- sparc|sparc64)
- echo sparc_linux22
- ;;
- s390)
- echo s390_linux22
- ;;
- *)
- echo ERROr: sysname not yet known
- exit 1
-
+ ;;
+powerpc)
+ echo ppc_linux24
+ ;;
+ppc64)
+ echo ppc64_linux24
+ ;;
+s390)
+ echo s390_linux24
+ ;;
+sparc|sparc64)
+ echo sparc_linux24
+ ;;
+*)
+ echo "ERROR: unsupported architecture" >&2
+ echo UNKNOWN
+ exit 1
esac
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rxkad/rxkad_server.c,v 1.14.2.5 2006/02/28 00:19:20 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rxkad/rxkad_server.c,v 1.14.2.6 2006/04/14 13:13:49 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
-#if defined(AFS_AIX_ENV) || defined(AFS_AUX_ENV) || defined(AFS_SUN5_ENV)
+#if (defined(AFS_AIX_ENV) && defined(KERNEL) && !defined(UKERNEL)) || defined(AFS_AUX_ENV) || defined(AFS_SUN5_ENV)
#include <sys/systm.h>
#endif
#include <time.h>
#ifdef AFS_SGI62_ENV
typedef uint64_t Inode;
#else
+#include <sys/types.h>
+#if AFS_64BIT_ENV
+typedef afs_uint64 Inode;
+#else
error Need 64 bit Inode defined.
+#endif
#endif /* AFS_SGI62_ENV */
#else /* AFS_64BIT_IOPS_ENV */
typedef unsigned int Inode;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/util/kreltime.c,v 1.8 2003/07/15 23:17:16 shadow Exp $");
+ ("$Header: /cvs/openafs/src/util/kreltime.c,v 1.8.2.1 2006/03/20 13:28:38 jaltman Exp $");
#include <afs/stds.h>
#include <sys/types.h>
ktimeDate_FromInt32(afs_int32 timeSecs, struct ktime_date *ktimePtr)
{
struct tm *timePtr;
+ time_t tt = timeSecs;
- timePtr = localtime((time_t *) & timeSecs);
+ timePtr = localtime(&tt);
/* copy the relevant fields */
ktimePtr->sec = timePtr->tm_sec;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/venus/cmdebug.c,v 1.15.2.2 2006/01/20 00:03:10 shadow Exp $");
+ ("$Header: /cvs/openafs/src/venus/cmdebug.c,v 1.15.2.4 2006/03/23 16:45:53 shadow Exp $");
#include <sys/types.h>
printf("\n");
}
#ifdef AFS_64BIT_ENV
- printf(" %012I64d bytes DV %012d refcnt %05d\n", centry.Length,
+#ifdef AFS_NT40_ENV
+ printf(" %12I64d bytes DV %12d refcnt %5d\n", centry.Length,
centry.DataVersion, centry.refCount);
#else
- printf(" %012d bytes DV %012d refcnt %05d\n", centry.Length,
+ printf(" %12llu bytes DV %12d refcnt %5d\n", centry.Length,
+ centry.DataVersion, centry.refCount);
+#endif
+#else
+ printf(" %12d bytes DV %12d refcnt %5d\n", centry.Length,
centry.DataVersion, centry.refCount);
#endif
printf(" callback %08x\texpires %u\n", centry.callback,
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/viced/afsfileprocs.c,v 1.81.2.24 2006/03/09 16:29:00 shadow Exp $");
+ ("$Header: /cvs/openafs/src/viced/afsfileprocs.c,v 1.81.2.25 2006/04/07 05:36:59 jaltman Exp $");
#include <stdio.h>
#include <stdlib.h>
struct host *thost;
afs_int32 *dataBuffP;
afs_int32 dataBytes;
-#if FS_STATS_DETAILED
- struct fs_stats_opTimingData *opP; /* Ptr to this op's timing struct */
- struct timeval opStartTime, opStopTime; /* Start/stop times for RPC op */
- struct timeval elapsedTime; /* Transfer time */
- /*
- * Set our stats pointer, remember when the RPC operation started, and
- * tally the operation.
- */
- opP = &(afs_FullPerfStats.det.rpcOpTimes[FS_STATS_RPCIDX_GETCAPABILITIES]);
FS_LOCK;
- (opP->numOps)++;
+ AFSCallStats.GetCapabilities++, AFSCallStats.TotalCalls++;
+ afs_FullPerfStats.overall.fs_nGetCaps++;
FS_UNLOCK;
- TM_GetTimeOfDay(&opStartTime, 0);
-#endif /* FS_STATS_DETAILED */
+ ViceLog(2, ("SAFS_GetCapabilties\n"));
if ((code = CallPreamble(acall, NOTACTIVECALL, &tcon, &thost)))
goto Bad_GetCaps;
- FS_LOCK;
- AFSCallStats.GetCapabilities++, AFSCallStats.TotalCalls++;
- FS_UNLOCK;
dataBytes = 1 * sizeof(afs_int32);
dataBuffP = (afs_int32 *) malloc(dataBytes);
dataBuffP[0] = CAPABILITY_ERRORTRANS;
capabilities->Capabilities_len = dataBytes / sizeof(afs_int32);
capabilities->Capabilities_val = dataBuffP;
- ViceLog(2, ("SAFS_GetCapabilties\n"));
-
Bad_GetCaps:
code = CallPostamble(tcon, code, thost);
-#if FS_STATS_DETAILED
- TM_GetTimeOfDay(&opStopTime, 0);
- fs_stats_GetDiff(elapsedTime, opStartTime, opStopTime);
- if (code == 0) {
- FS_LOCK;
- (opP->numSuccesses)++;
- fs_stats_AddTo((opP->sumTime), elapsedTime);
- fs_stats_SquareAddTo((opP->sqrTime), elapsedTime);
- if (fs_stats_TimeLessThan(elapsedTime, (opP->minTime))) {
- fs_stats_TimeAssign((opP->minTime), elapsedTime);
- }
- if (fs_stats_TimeGreaterThan(elapsedTime, (opP->maxTime))) {
- fs_stats_TimeAssign((opP->maxTime), elapsedTime);
- }
- FS_UNLOCK;
- }
-#endif /* FS_STATS_DETAILED */
return 0;
}
afs_int32 rx_nBusies; /*Ttl VBUSYs sent to shed load */
afs_int32 fs_nBusies; /*Ttl VBUSYs sent during restart/vol clone */
+ /*
+ * Can't count this as an RPC because it breaks the data structure
+ */
+ afs_int32 fs_nGetCaps; /* Number of GetCapabilities calls */
/*
* Spares
*/
- afs_int32 spare[29];
+ afs_int32 spare[28];
};
#if FS_STATS_DETAILED
#define FS_STATS_RPCIDX_BULKSTATUS 25
#define FS_STATS_RPCIDX_XSTATSVERSION 26
#define FS_STATS_RPCIDX_GETXSTATS 27
-#define FS_STATS_RPCIDX_GETCAPABILITIES 28
-#define FS_STATS_NUM_RPC_OPS 29
+#define FS_STATS_NUM_RPC_OPS 28
/*
* Assign an index to each of the File Server's RPC interface routines
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/viced/host.c,v 1.57.2.26 2006/03/14 00:33:46 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/viced/host.c,v 1.57.2.29 2006/03/30 16:29:22 shadow Exp $");
#include <stdio.h>
#include <errno.h>
client->CPS.prlist_val = NULL;
if (client->tcon) {
rx_SetSpecific(client->tcon, rxcon_client_key, (void *)0);
+ rx_PutConnection(client->tcon);
}
CurrentConnections--;
*cp = client->next;
* destroying the connection.
*/
client = rx_GetSpecific(rxconn, rxcon_client_key);
- if (client && client->tcon == rxconn)
+ if (client && client->tcon == rxconn) {
+ rx_PutConnection(client->tcon);
client->tcon = NULL;
+ }
rx_SetSpecific(rxconn, rxcon_client_key, (void *)0);
rx_DestroyConnection(rxconn);
}
client = (struct client *)rx_GetSpecific(tcon, rxcon_client_key);
if (client) {
H_LOCK;
- if (client->tcon == tcon)
+ if (client->tcon == tcon) {
+ rx_PutConnection(client->tcon);
client->tcon = (struct rx_connection *)0;
+ }
H_UNLOCK;
}
return 0;
(struct client *)rx_GetSpecific(client->tcon,
rxcon_client_key);
if (oldClient) {
- if (oldClient == client)
+ if (oldClient == client) {
rx_SetSpecific(client->tcon, rxcon_client_key,
NULL);
- else
+ } else
ViceLog(0,
("Client-conn mismatch: CL1=%x, CN=%x, CL2=%x\n",
client, client->tcon, oldClient));
}
+ rx_PutConnection(client->tcon);
client->tcon = (struct rx_connection *)0;
}
client->refCount++;
oldClient->refCount++;
client = oldClient;
} else {
+ rx_PutConnection(oldClient->tcon);
oldClient->tcon = (struct rx_connection *)0;
ViceLog(0, ("FindClient: deleted client %x(%x) already had conn %x (host %s:%d), stolen by client %x(%x)\n",
oldClient, oldClient->sid, tcon,
h_Unlock_r(host);
CurrentConnections++; /* increment number of connections */
}
+ rx_GetConnection(tcon);
client->tcon = tcon;
rx_SetSpecific(tcon, rxcon_client_key, client);
ReleaseWriteLock(&client->lock);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vol/fssync.c,v 1.26.2.4 2005/07/21 05:08:03 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vol/Attic/fssync.c,v 1.26.2.4 2005/07/21 05:08:03 shadow Exp $");
#include <sys/types.h>
#include <stdio.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/xstat/xstat_fs_test.c,v 1.8.2.4 2006/03/09 16:29:02 shadow Exp $");
+ ("$Header: /cvs/openafs/src/xstat/xstat_fs_test.c,v 1.8.2.6 2006/04/10 15:46:46 shadow Exp $");
#include "xstat_fs.h" /*Interface for xstat_fs module */
#include <cmd.h> /*Command line interpreter */
"NGetVolumeInfo",
"BulkStatus",
"XStatsVersion",
- "GetXStats",
- "GetCapabilities"
+ "GetXStats"
};
static char *xferOpNames[] = {
printf("\t%10d rx_nFreeCallStructs\n", a_ovP->rx_nFreeCallStructs);
printf("\t%10d rx_nBusies\n\n", a_ovP->rx_nBusies);
- printf("\t%10d fs_nBusies\n\n", a_ovP->fs_nBusies);
+ printf("\t%10d fs_nBusies\n", a_ovP->fs_nBusies);
+ printf("\t%10d fs_GetCapabilities\n\n", a_ovP->fs_nGetCaps);
/*
* Host module fields.
*/