From 1bcc412adb56451d5925e28c3f292129549d49be Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Fri, 14 Apr 2006 20:52:19 +0000 Subject: [PATCH] Merge with upstream 1.4.1 release. --- Makefile.in | 26 +- config.guess | 574 +++++++++-------- config.sub | 102 ++- configure | 163 ++++- configure-libafs | 163 ++++- configure-libafs.in | 2 +- configure.in | 2 +- debian/changelog | 6 +- debian/rules | 6 +- doc/man-pages/README | 9 + doc/man-pages/man8/asetkey.8 | 298 +++++++++ doc/man-pages/man8/kaserver.8 | 10 +- doc/man-pages/pod8/kaserver.pod | 12 +- doc/txt/winnotes/afs-changes-since-1.2.txt | 22 +- src/afs/IRIX/osi_machdep.h | 1 + src/afs/LINUX/osi_probe.c | 225 +++++-- src/afsd/afsd.c | 13 +- src/aklog/aklog.h | 6 +- src/aklog/aklog_main.c | 7 +- src/aklog/asetkey.c | 2 +- src/auth/cellconfig.c | 5 +- src/cf/kerberos.m4 | 12 +- src/config/NTMakefile.amd64_w2k | 2 +- src/config/NTMakefile.i386_nt40 | 2 +- src/config/NTMakefile.i386_w2k | 2 +- src/config/afsconfig.h.in | 3 + src/config/linux-version | 12 +- src/config/param.i386_linux26.h | 5 + src/kauth/rebuild.c | 10 +- src/libafs/afs.ppc_darwin_70.plist.in | 4 +- src/libafs/afs.ppc_darwin_80.plist.in | 4 +- src/libafs/afs.ppc_darwin_90.plist.in | 4 +- src/libafs/afs.x86_darwin_80.plist.in | 4 +- src/libafs/afs.x86_darwin_90.plist.in | 4 +- src/lwp/process.c | 25 +- src/lwp/test/selsubs.c | 6 +- src/packaging/Debian/CellServDB | 559 +++++++++++++++++ src/packaging/Debian/ConfigUtils.pm | 8 + src/packaging/Debian/README.Debian | 135 +++- src/packaging/Debian/README.modules | 106 +++- src/packaging/Debian/README.servers | 417 +++++++++++-- src/packaging/Debian/TODO | 14 +- src/packaging/Debian/afs-newcell | 282 ++++++--- src/packaging/Debian/afs-rootvol | 205 +++--- src/packaging/Debian/afs.conf | 129 ++++ src/packaging/Debian/changelog | 584 +++++++++++++++++- src/packaging/Debian/compat | 1 + src/packaging/Debian/control | 69 ++- src/packaging/Debian/control.module | 14 +- src/packaging/Debian/copyright | 105 +++- src/packaging/Debian/doc/build-man | 56 ++ src/packaging/Debian/genchanges.sh | 11 +- src/packaging/Debian/kern-sysname | 157 +++-- src/packaging/Debian/kernel-version | 15 + src/packaging/Debian/libopenafs-dev.dirs | 1 + src/packaging/Debian/libopenafs-dev.install | 8 + .../Debian/libpam-openafs-kaserver.dirs | 2 + src/packaging/Debian/openafs-client.config | 4 +- src/packaging/Debian/openafs-client.docs | 2 - src/packaging/Debian/openafs-client.install | 224 +++++++ src/packaging/Debian/openafs-client.lintian | 1 - src/packaging/Debian/openafs-client.postinst | 144 ++--- src/packaging/Debian/openafs-client.templates | 112 ++-- src/packaging/Debian/openafs-dbserver.dirs | 8 + src/packaging/Debian/openafs-dbserver.install | 24 + src/packaging/Debian/openafs-dbserver.lintian | 1 + src/packaging/Debian/openafs-fileserver.init | 9 +- .../Debian/openafs-fileserver.install | 31 + .../Debian/openafs-fileserver.lintian | 1 - .../Debian/openafs-fileserver.postinst | 75 ++- .../Debian/openafs-fileserver.postrm | 1 - .../Debian/openafs-fileserver.templates | 41 +- src/packaging/Debian/openafs-kpasswd.install | 23 + .../Debian/openafs-modules-source.docs | 1 - src/packaging/Debian/patches/README | 9 + src/packaging/Debian/patches/module-name | 49 ++ src/packaging/Debian/patches/pam | 158 +++++ src/packaging/Debian/po/POTFILES.in | 2 + src/packaging/Debian/po/cs.po | 279 +++++++++ src/packaging/Debian/po/de.po | 225 +++++++ src/packaging/Debian/po/fr.po | 292 +++++++++ src/packaging/Debian/po/pt_BR.po | 293 +++++++++ src/packaging/Debian/po/vi.po | 278 +++++++++ src/packaging/Debian/prep-modules | 122 ++-- src/packaging/Debian/pt_util.sgml | 1 - src/packaging/Debian/rules | 383 ++++++------ src/packaging/Debian/sysname | 60 +- src/rxkad/rxkad_server.c | 4 +- src/sys/afssyscalls.h | 5 + src/util/kreltime.c | 5 +- src/venus/cmdebug.c | 11 +- src/viced/afsfileprocs.c | 39 +- src/viced/fs_stats.h | 9 +- src/viced/host.c | 18 +- src/vol/fssync.c | 2 +- src/xstat/xstat_fs_test.c | 8 +- 96 files changed, 6285 insertions(+), 1300 deletions(-) create mode 100644 doc/man-pages/man8/asetkey.8 create mode 100644 src/packaging/Debian/CellServDB create mode 100644 src/packaging/Debian/afs.conf create mode 100644 src/packaging/Debian/compat create mode 100644 src/packaging/Debian/doc/build-man create mode 100644 src/packaging/Debian/kernel-version create mode 100644 src/packaging/Debian/libopenafs-dev.dirs create mode 100644 src/packaging/Debian/libopenafs-dev.install create mode 100644 src/packaging/Debian/libpam-openafs-kaserver.dirs create mode 100644 src/packaging/Debian/openafs-client.install create mode 100644 src/packaging/Debian/openafs-dbserver.install create mode 100644 src/packaging/Debian/openafs-dbserver.lintian create mode 100644 src/packaging/Debian/openafs-fileserver.install create mode 100644 src/packaging/Debian/openafs-kpasswd.install create mode 100644 src/packaging/Debian/patches/README create mode 100644 src/packaging/Debian/patches/module-name create mode 100644 src/packaging/Debian/patches/pam create mode 100644 src/packaging/Debian/po/POTFILES.in create mode 100644 src/packaging/Debian/po/cs.po create mode 100644 src/packaging/Debian/po/de.po create mode 100644 src/packaging/Debian/po/fr.po create mode 100644 src/packaging/Debian/po/pt_BR.po create mode 100644 src/packaging/Debian/po/vi.po diff --git a/Makefile.in b/Makefile.in index 3dc490266..39539c4af 100644 --- a/Makefile.in +++ b/Makefile.in @@ -213,6 +213,24 @@ sgiefs: 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} @@ -236,7 +254,7 @@ volser: cmd comerr tviced usd kauth audit 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} ;; \ @@ -565,13 +583,13 @@ jafs: libjafs 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} @@ -629,6 +647,7 @@ clean2: -${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} @@ -787,6 +806,7 @@ distclean: 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 \ diff --git a/config.guess b/config.guess index 45bee1398..22906b339 100755 --- a/config.guess +++ b/config.guess @@ -1,9 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +# Inc. -timestamp='2005-04-22' +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 @@ -17,13 +18,15 @@ timestamp='2005-04-22' # # 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. + # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. @@ -66,11 +69,11 @@ Try \`$me --help' for more information." 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. @@ -104,7 +107,7 @@ 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 -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$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 ; } ; @@ -123,7 +126,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ;' +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 1994-08-24) @@ -196,55 +199,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" - exit 0 ;; - amd64:OpenBSD:*:*) - echo x86_64-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - cats:OpenBSD:*:*) - echo arm-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - luna88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-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 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mips64-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + 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 0 ;; + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; macppc:MirBSD:*:*) echo powerppc-unknown-mirbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -297,40 +268,43 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; + 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;; + exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; + exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; + exit ;; *:OS/390:*:*) echo i370-ibm-openedition - exit 0 ;; + exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe - exit 0 ;; + exit ;; *:OS400:*:*) echo powerpc-ibm-os400 - exit 0 ;; + exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; + 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 @@ -338,32 +312,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in 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 0 ;; + 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 0 ;; + 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*) @@ -372,10 +346,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in 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=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 @@ -387,10 +361,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo sparc-sun-sunos${UNAME_RELEASE} ;; esac - exit 0 ;; + exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${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 @@ -401,40 +375,40 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # 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 ;; + exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} - exit 0 ;; + 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 @@ -458,32 +432,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && exit 0 + $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 0 ;; + exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax - exit 0 ;; + exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax - exit 0 ;; + 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` @@ -499,29 +474,29 @@ EOF 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 ' + 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` @@ -529,7 +504,7 @@ EOF IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build @@ -544,14 +519,18 @@ EOF exit(0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 - 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 | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then @@ -565,28 +544,28 @@ EOF 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 @@ -648,9 +627,19 @@ EOF esac if [ ${HP_ARCH} = "hppa2.0w" ] then - # avoid double evaluation of $set_cc_for_build - test -n "$CC_FOR_BUILD" || eval $set_cc_for_build - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null + 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 @@ -658,11 +647,11 @@ EOF 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 0 ;; + exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -690,161 +679,174 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + $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 ;; + 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 ;; + 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 ;; + 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 ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + 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 "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; + 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 0 ;; + 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 ;; + 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 ;; - x86:Interix*:[34]*) - echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' - 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 0 ;; + 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 i586-pc-interix - exit 0 ;; + exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; - amd64:CYGWIN*:*:*) + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin - exit 0 ;; + 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 0 ;; + exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; + exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu - exit 0 ;; + exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu - exit 0 ;; + exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu - exit 0 ;; + exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -861,8 +863,12 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + 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 @@ -880,15 +886,22 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + 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 0 ;; + exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu - exit 0 ;; + exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -902,7 +915,7 @@ EOF 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 0 ;; + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -910,25 +923,28 @@ EOF PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac - exit 0 ;; + exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu - exit 0 ;; + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; + exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu - exit 0 ;; + 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 @@ -946,15 +962,15 @@ EOF ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; + exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" - 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 0 ;; + exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build @@ -971,7 +987,7 @@ EOF LIBC=gnulibc1 # endif #else - #ifdef __INTEL_COMPILER + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__sun) LIBC=gnu #else LIBC=gnuaout @@ -981,16 +997,23 @@ EOF LIBC=dietlibc #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + 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 ;; + 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... @@ -998,27 +1021,27 @@ EOF # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; + 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 0 ;; + exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; + exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; - i*86:syllable:*:*) + exit ;; + i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable - exit 0 ;; + exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; + 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 @@ -1026,15 +1049,16 @@ EOF else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi - exit 0 ;; - i*86:*:5:[78]*) + 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 0 ;; + exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /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 ;; + exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv - exit 0 ;; + exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix - exit 0 ;; + exit ;; M68*:*:R3V[5678]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 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 ;; + && { 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 ;; + exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + 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 0 ;; + 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` @@ -1126,73 +1150,72 @@ EOF else echo ns32k-sni-sysv fi - exit 0 ;; + exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 - exit 0 ;; + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # 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 0 ;; + exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos - exit 0 ;; + 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 0 ;; + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in - *86) UNAME_PROCESSOR=i686 ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit 0 ;; + exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then @@ -1200,25 +1223,25 @@ EOF UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; + exit ;; *:QNX:*:4*) echo i386-pc-qnx - exit 0 ;; + exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} - exit 0 ;; + exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; + exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux - exit 0 ;; + 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 @@ -1229,41 +1252,47 @@ EOF UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; + exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 - exit 0 ;; + exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex - exit 0 ;; + exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 - exit 0 ;; + exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 - exit 0 ;; + exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 - exit 0 ;; + exit ;; *:ITS:*:*) echo pdp10-unknown-its - exit 0 ;; + exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} - exit 0 ;; + exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; + exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms && exit 0 ;; - I*) echo ia64-dec-vms && exit 0 ;; - V*) echo vax-dec-vms && exit 0 ;; + 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 0 ;; + 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 @@ -1295,7 +1324,7 @@ main () #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) @@ -1384,11 +1413,12 @@ main () } EOF -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 +$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) @@ -1397,22 +1427,22 @@ then 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 diff --git a/config.sub b/config.sub index 87a1ee49e..5705e543b 100755 --- a/config.sub +++ b/config.sub @@ -1,9 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +# Inc. -timestamp='2005-04-22' +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 @@ -21,14 +22,15 @@ timestamp='2005-04-22' # # 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 . Submit a context # diff and a properly formatted ChangeLog entry. # @@ -83,11 +85,11 @@ Try \`$me --help' for more information." 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. @@ -99,7 +101,7 @@ while test $# -gt 0 ; do *local*) # First pass through any local machine types. echo $1 - exit 0;; + exit ;; * ) break ;; @@ -118,8 +120,9 @@ esac # 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* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ - kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + 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/'` ;; @@ -170,6 +173,10 @@ case $os in -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/'` @@ -186,6 +193,10 @@ case $os in # 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/'` @@ -238,7 +249,7 @@ case $basic_machine in | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ - | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ + | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -247,6 +258,7 @@ case $basic_machine in | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ @@ -255,16 +267,18 @@ case $basic_machine in | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | mt \ | msp430 \ + | nios | nios2 \ | ns16k | ns32k \ - | openrisc | or32 \ + | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ - | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ @@ -273,6 +287,9 @@ case $basic_machine in | z8k) basic_machine=$basic_machine-unknown ;; + m32c) + basic_machine=$basic_machine-unknown + ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown @@ -280,6 +297,9 @@ case $basic_machine in ;; 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 @@ -321,6 +341,7 @@ case $basic_machine in | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ @@ -329,18 +350,20 @@ case $basic_machine in | 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-* \ - | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ @@ -351,6 +374,8 @@ case $basic_machine in | 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) @@ -686,6 +711,9 @@ case $basic_machine in basic_machine=i386-pc os=-msdos ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; mvs) basic_machine=i370-ibm os=-mvs @@ -761,9 +789,8 @@ case $basic_machine in basic_machine=hppa1.1-oki os=-proelf ;; - or32 | or32-*) + openrisc | openrisc-*) basic_machine=or32-unknown - os=-coff ;; os400) basic_machine=powerpc-ibm @@ -794,6 +821,12 @@ case $basic_machine in 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 ;; @@ -850,6 +883,10 @@ case $basic_machine in basic_machine=i586-unknown os=-pw32 ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; rom68k) basic_machine=m68k-rom68k os=-coff @@ -1089,13 +1126,10 @@ case $basic_machine in we32k) basic_machine=we32k-att ;; - sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b) + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) @@ -1168,20 +1202,23 @@ case $os in | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ + | -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* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -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* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1199,7 +1236,7 @@ case $os in 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*) @@ -1388,6 +1425,9 @@ case $basic_machine in *-be) os=-beos ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; @@ -1559,7 +1599,7 @@ case $basic_machine in esac echo $basic_machine$os -exit 0 +exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff --git a/configure b/configure index 51fa4ca11..370643740 100755 --- a/configure +++ b/configure @@ -309,7 +309,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os CPP EGREP LN_S RANLIB ac_ct_RANLIB YACC LEX LEXLIB LEX_OUTPUT_ROOT HEADER_RT P5PLUS_KOPTS LINUX_GCC_KOPTS RHCONFIG_SP RHCONFIG_MP MPS PTHREAD_LIBS XBSA_CFLAGS HAVE_PAM BUILD_LOGIN afsconfdir viceetcdir afskerneldir afssrvbindir afssrvsbindir afssrvlibexecdir afsdbdir afslogsdir afslocaldir afsbackupdir afsbosconfigdir AFS_SYSNAME AFS_PARAM_COMMON ENABLE_KERNEL_MODULE LIB_AFSDB LINUX_KERNEL_PATH BSD_KERNEL_PATH BSD_KERNEL_BUILD LINUX_VERSION MKAFS_OSTYPE TOP_OBJDIR TOP_SRCDIR TOP_INCDIR TOP_LIBDIR DEST WITH_OBSOLETE DARWIN_INFOFILE IRIX_BUILD_IP35 AS AR MV RM LD CP LORDER XFS_SIZE_CHECK install_XFS_SIZE_CHECK dest_XFS_SIZE_CHECK FS_CONV_SOL26 install_FS_CONV_SOL26 dest_FS_CONV_SOL26 FS_CONV_OSF40D install_FS_CONV_OSF40D dest_FS_CONV_OSF40D CCXPG2 CCOBJ AFSD_LIBS AFSD_LDFLAGS AIX64 DBG FSINCLUDES KERN_DBG KERN_OPTMZ LWP_DBG LWP_OPTMZ MT_CC MT_CFLAGS MT_LIBS OPTMZ PAM_CFLAGS PAM_LIBS PINSTALL_LIBS REGEX_OBJ SHLIB_CFLAGS SHLIB_LDFLAGS SHLIB_LINKER SHLIB_SUFFIX TXLIBS VFSCK_CFLAGS XCFLAGS XCFLAGS64 XLDFLAGS XLDFLAGS64 XLIBELFA XLIBKVM XLIBS KRB5_CONFIG BUILD_KRB5 KRB5CFLAGS KRB5LIBS HELPER_SPLINT HELPER_SPLINTCFG LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os CPP EGREP LN_S RANLIB ac_ct_RANLIB YACC LEX LEXLIB LEX_OUTPUT_ROOT HEADER_RT P5PLUS_KOPTS LINUX_GCC_KOPTS RHCONFIG_SP RHCONFIG_MP MPS PTHREAD_LIBS XBSA_CFLAGS HAVE_PAM BUILD_LOGIN afsconfdir viceetcdir afskerneldir afssrvbindir afssrvsbindir afssrvlibexecdir afsdbdir afslogsdir afslocaldir afsbackupdir afsbosconfigdir AFS_SYSNAME AFS_PARAM_COMMON ENABLE_KERNEL_MODULE LIB_AFSDB LINUX_KERNEL_PATH BSD_KERNEL_PATH BSD_KERNEL_BUILD LINUX_VERSION MKAFS_OSTYPE TOP_OBJDIR TOP_SRCDIR TOP_INCDIR TOP_LIBDIR DEST WITH_OBSOLETE DARWIN_INFOFILE IRIX_BUILD_IP35 AS AR MV RM LD CP LORDER XFS_SIZE_CHECK install_XFS_SIZE_CHECK dest_XFS_SIZE_CHECK FS_CONV_SOL26 install_FS_CONV_SOL26 dest_FS_CONV_SOL26 FS_CONV_OSF40D install_FS_CONV_OSF40D dest_FS_CONV_OSF40D CCXPG2 CCOBJ AFSD_LIBS AFSD_LDFLAGS AIX64 DBG FSINCLUDES KERN_DBG KERN_OPTMZ LWP_DBG LWP_OPTMZ MT_CC MT_CFLAGS MT_LIBS OPTMZ PAM_CFLAGS PAM_LIBS PINSTALL_LIBS REGEX_OBJ SHLIB_CFLAGS SHLIB_LDFLAGS SHLIB_LINKER SHLIB_SUFFIX TXLIBS VFSCK_CFLAGS XCFLAGS XCFLAGS64 XLDFLAGS XLDFLAGS64 XLIBELFA XLIBKVM XLIBS KRB5_CONFIG BUILD_KRB5 KRB5CFLAGS KRB5LIBS ASETKEY HELPER_SPLINT HELPER_SPLINTCFG LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1645,7 +1645,7 @@ fi # Define the identity of the package. PACKAGE=openafs - VERSION=1.4.1-rc10 + VERSION=1.4.1 cat >>confdefs.h <<_ACEOF @@ -14894,6 +14894,155 @@ fi done +for ac_header in kerberosV/heim_err.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + echo "$as_me:$LINENO: checking for krb5_creds.keyblock existence" >&5 echo $ECHO_N "checking for krb5_creds.keyblock existence... $ECHO_C" >&6 if test "${ac_cv_krb5_creds_keyblock_exists+set}" = set; then @@ -15025,6 +15174,15 @@ fi LIBS="$save_LIBS" fi +if test "$ac_cv_header_kerberosV_heim_err_h" = "yes"; then + ASETKEY= +else + ASETKEY=asetkey +fi + + + + @@ -15957,6 +16115,7 @@ s,@KRB5_CONFIG@,$KRB5_CONFIG,;t t s,@BUILD_KRB5@,$BUILD_KRB5,;t t s,@KRB5CFLAGS@,$KRB5CFLAGS,;t t s,@KRB5LIBS@,$KRB5LIBS,;t t +s,@ASETKEY@,$ASETKEY,;t t s,@HELPER_SPLINT@,$HELPER_SPLINT,;t t s,@HELPER_SPLINTCFG@,$HELPER_SPLINTCFG,;t t s,@LIBOBJS@,$LIBOBJS,;t t diff --git a/configure-libafs b/configure-libafs index afda1c824..96698c660 100755 --- a/configure-libafs +++ b/configure-libafs @@ -309,7 +309,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os CPP EGREP LN_S RANLIB ac_ct_RANLIB YACC LEX LEXLIB LEX_OUTPUT_ROOT HEADER_RT P5PLUS_KOPTS LINUX_GCC_KOPTS RHCONFIG_SP RHCONFIG_MP MPS PTHREAD_LIBS XBSA_CFLAGS HAVE_PAM BUILD_LOGIN afsconfdir viceetcdir afskerneldir afssrvbindir afssrvsbindir afssrvlibexecdir afsdbdir afslogsdir afslocaldir afsbackupdir afsbosconfigdir AFS_SYSNAME AFS_PARAM_COMMON ENABLE_KERNEL_MODULE LIB_AFSDB LINUX_KERNEL_PATH BSD_KERNEL_PATH BSD_KERNEL_BUILD LINUX_VERSION MKAFS_OSTYPE TOP_OBJDIR TOP_SRCDIR TOP_INCDIR TOP_LIBDIR DEST WITH_OBSOLETE DARWIN_INFOFILE IRIX_BUILD_IP35 AS AR MV RM LD CP LORDER XFS_SIZE_CHECK install_XFS_SIZE_CHECK dest_XFS_SIZE_CHECK FS_CONV_SOL26 install_FS_CONV_SOL26 dest_FS_CONV_SOL26 FS_CONV_OSF40D install_FS_CONV_OSF40D dest_FS_CONV_OSF40D CCXPG2 CCOBJ AFSD_LIBS AFSD_LDFLAGS AIX64 DBG FSINCLUDES KERN_DBG KERN_OPTMZ LWP_DBG LWP_OPTMZ MT_CC MT_CFLAGS MT_LIBS OPTMZ PAM_CFLAGS PAM_LIBS PINSTALL_LIBS REGEX_OBJ SHLIB_CFLAGS SHLIB_LDFLAGS SHLIB_LINKER SHLIB_SUFFIX TXLIBS VFSCK_CFLAGS XCFLAGS XCFLAGS64 XLDFLAGS XLDFLAGS64 XLIBELFA XLIBKVM XLIBS KRB5_CONFIG BUILD_KRB5 KRB5CFLAGS KRB5LIBS HELPER_SPLINT HELPER_SPLINTCFG LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os CPP EGREP LN_S RANLIB ac_ct_RANLIB YACC LEX LEXLIB LEX_OUTPUT_ROOT HEADER_RT P5PLUS_KOPTS LINUX_GCC_KOPTS RHCONFIG_SP RHCONFIG_MP MPS PTHREAD_LIBS XBSA_CFLAGS HAVE_PAM BUILD_LOGIN afsconfdir viceetcdir afskerneldir afssrvbindir afssrvsbindir afssrvlibexecdir afsdbdir afslogsdir afslocaldir afsbackupdir afsbosconfigdir AFS_SYSNAME AFS_PARAM_COMMON ENABLE_KERNEL_MODULE LIB_AFSDB LINUX_KERNEL_PATH BSD_KERNEL_PATH BSD_KERNEL_BUILD LINUX_VERSION MKAFS_OSTYPE TOP_OBJDIR TOP_SRCDIR TOP_INCDIR TOP_LIBDIR DEST WITH_OBSOLETE DARWIN_INFOFILE IRIX_BUILD_IP35 AS AR MV RM LD CP LORDER XFS_SIZE_CHECK install_XFS_SIZE_CHECK dest_XFS_SIZE_CHECK FS_CONV_SOL26 install_FS_CONV_SOL26 dest_FS_CONV_SOL26 FS_CONV_OSF40D install_FS_CONV_OSF40D dest_FS_CONV_OSF40D CCXPG2 CCOBJ AFSD_LIBS AFSD_LDFLAGS AIX64 DBG FSINCLUDES KERN_DBG KERN_OPTMZ LWP_DBG LWP_OPTMZ MT_CC MT_CFLAGS MT_LIBS OPTMZ PAM_CFLAGS PAM_LIBS PINSTALL_LIBS REGEX_OBJ SHLIB_CFLAGS SHLIB_LDFLAGS SHLIB_LINKER SHLIB_SUFFIX TXLIBS VFSCK_CFLAGS XCFLAGS XCFLAGS64 XLDFLAGS XLDFLAGS64 XLIBELFA XLIBKVM XLIBS KRB5_CONFIG BUILD_KRB5 KRB5CFLAGS KRB5LIBS ASETKEY HELPER_SPLINT HELPER_SPLINTCFG LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1645,7 +1645,7 @@ fi # Define the identity of the package. PACKAGE=openafs-libafs - VERSION=1.4.1-rc10 + VERSION=1.4.1 cat >>confdefs.h <<_ACEOF @@ -14894,6 +14894,155 @@ fi done +for ac_header in kerberosV/heim_err.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + echo "$as_me:$LINENO: checking for krb5_creds.keyblock existence" >&5 echo $ECHO_N "checking for krb5_creds.keyblock existence... $ECHO_C" >&6 if test "${ac_cv_krb5_creds_keyblock_exists+set}" = set; then @@ -15025,6 +15174,15 @@ fi LIBS="$save_LIBS" fi +if test "$ac_cv_header_kerberosV_heim_err_h" = "yes"; then + ASETKEY= +else + ASETKEY=asetkey +fi + + + + @@ -15840,6 +15998,7 @@ s,@KRB5_CONFIG@,$KRB5_CONFIG,;t t s,@BUILD_KRB5@,$BUILD_KRB5,;t t s,@KRB5CFLAGS@,$KRB5CFLAGS,;t t s,@KRB5LIBS@,$KRB5LIBS,;t t +s,@ASETKEY@,$ASETKEY,;t t s,@HELPER_SPLINT@,$HELPER_SPLINT,;t t s,@HELPER_SPLINTCFG@,$HELPER_SPLINTCFG,;t t s,@LIBOBJS@,$LIBOBJS,;t t diff --git a/configure-libafs.in b/configure-libafs.in index 5c3446405..5ad21d2cd 100644 --- a/configure-libafs.in +++ b/configure-libafs.in @@ -1,5 +1,5 @@ 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) diff --git a/configure.in b/configure.in index 3b019c921..259982dff 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ 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 diff --git a/debian/changelog b/debian/changelog index dab07d0cd..6a729a171 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,6 @@ -openafs (1.4.0+rc10-1) unstable; urgency=low +openafs (1.4.1-1) unstable; urgency=low - * New upstream release (1.4.1-rc10). + * New upstream release. - Supports Linux 2.6.16. (Closes: #358203) - Suspend should work with newer kernels. (Closes: #341588) - Safer cache size calculation. (Closes: #360176) @@ -18,7 +18,7 @@ openafs (1.4.0+rc10-1) unstable; urgency=low * Always pass the system type into Autoconf, following autotools-dev best practices. - -- Russ Allbery Thu, 30 Mar 2006 20:58:32 -0800 + -- Russ Allbery Fri, 14 Apr 2006 13:41:00 -0700 openafs (1.4.0-4) unstable; urgency=low diff --git a/debian/rules b/debian/rules index eb0414821..d5fb6b8ce 100755 --- a/debian/rules +++ b/debian/rules @@ -61,9 +61,9 @@ DOC_PACKAGES = libpam-openafs-kaserver openafs-dbserver openafs-fileserver \ # These variable is used only by get-orig-source, which will normally only be # run by maintainers. -VERSION = 1.4.1-rc10 -DEBVERS = 1.4.0+rc10 -UPSTREAM = /afs/grand.central.org/software/openafs/candidate/$(VERSION) +VERSION = 1.4.1 +DEBVERS = 1.4.1 +UPSTREAM = /afs/grand.central.org/software/openafs/$(VERSION) # Download the upstream source, merge in the doc tarball, and do the # repackaging that we have to do for DFSG reasons. This assumes AFS is diff --git a/doc/man-pages/README b/doc/man-pages/README index 50bec679d..1e384400a 100644 --- a/doc/man-pages/README +++ b/doc/man-pages/README @@ -285,6 +285,15 @@ Known Problems * 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. diff --git a/doc/man-pages/man8/asetkey.8 b/doc/man-pages/man8/asetkey.8 new file mode 100644 index 000000000..52fe3389a --- /dev/null +++ b/doc/man-pages/man8/asetkey.8 @@ -0,0 +1,298 @@ +.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 +.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" + diff --git a/doc/man-pages/man8/kaserver.8 b/doc/man-pages/man8/kaserver.8 index f979b8bac..912b8c142 100644 --- a/doc/man-pages/man8/kaserver.8 +++ b/doc/man-pages/man8/kaserver.8 @@ -93,7 +93,7 @@ .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 @@ -189,10 +189,10 @@ .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 @@ -321,7 +321,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell. .IX Header "NAME" -.IX Header "DESCRIPTION" +.IX Header "SYNOPSIS" .IX Header "DESCRIPTION" diff --git a/doc/man-pages/pod8/kaserver.pod b/doc/man-pages/pod8/kaserver.pod index fa0f99b98..252e96140 100644 --- a/doc/man-pages/pod8/kaserver.pod +++ b/doc/man-pages/pod8/kaserver.pod @@ -2,13 +2,19 @@ kaserver - Initializes the Authentication Server -=head1 DESCRIPTION +=head1 SYNOPSIS + +=for html +
B [B<-noAuth>] [B<-fastKeys>] [B<-database> >] - [B<-localfiles> >] [B<-minhours> >] - [B<-servers> >] [B<-enable_peer_stats>] + S<<< [B<-localfiles> >] >>> S<<< [B<-minhours> >] >>> + S<<< [B<-servers> >] >>> [B<-enable_peer_stats>] [B<-enable_process_stats>] [B<-help>] +=for html +
+ =head1 DESCRIPTION The B command initializes the Authentication Server, which runs diff --git a/doc/txt/winnotes/afs-changes-since-1.2.txt b/doc/txt/winnotes/afs-changes-since-1.2.txt index f7973ffae..e990bf234 100644 --- a/doc/txt/winnotes/afs-changes-since-1.2.txt +++ b/doc/txt/winnotes/afs-changes-since-1.2.txt @@ -1,3 +1,17 @@ +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 @@ -17,7 +31,13 @@ Since 1.4.1 rc9: 1.4.1 rc10 released (10 March 2006) 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: diff --git a/src/afs/IRIX/osi_machdep.h b/src/afs/IRIX/osi_machdep.h index 1397946d3..e13bbfb8a 100644 --- a/src/afs/IRIX/osi_machdep.h +++ b/src/afs/IRIX/osi_machdep.h @@ -43,6 +43,7 @@ extern flid_t osi_flid; #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. diff --git a/src/afs/LINUX/osi_probe.c b/src/afs/LINUX/osi_probe.c index 2c2de48e3..3f27f0c01 100644 --- a/src/afs/LINUX/osi_probe.c +++ b/src/afs/LINUX/osi_probe.c @@ -64,6 +64,9 @@ #include #include #include +#ifdef AFS_LINUX26_ENV +#include /* for scsi_command_size */ +#endif #if defined(AFS_PPC64_LINUX26_ENV) #include @@ -114,7 +117,7 @@ /* 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"); @@ -123,7 +126,7 @@ MODULE_PARM_DESC(sys_call_table_addr, "Location of system call tables"); /* 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"); @@ -131,7 +134,7 @@ 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"); @@ -150,7 +153,7 @@ MODULE_PARM_DESC(probe_ignore_syscalls, "Syscalls to ignore in table checks"); * 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"); @@ -158,7 +161,7 @@ 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"); @@ -166,7 +169,7 @@ 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"); @@ -174,7 +177,7 @@ 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"); @@ -272,6 +275,11 @@ typedef struct { 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 */ @@ -533,6 +541,15 @@ static probectl main_probe = { 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, @@ -620,6 +637,16 @@ static probectl ia32_probe = { 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, @@ -749,6 +776,15 @@ static probectl sct32_probe = { 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, @@ -835,6 +871,15 @@ static probectl emu_probe = { 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, @@ -1119,6 +1164,66 @@ static void *try_harder(probectl *P, PROBETYPE *ptr, unsigned long datalen) } \ } 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 @@ -1131,11 +1236,7 @@ static void *do_find_syscall_table(probectl *P, char **method) #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 @@ -1183,61 +1284,66 @@ static void *do_find_syscall_table(probectl *P, char **method) } } #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) { @@ -1263,6 +1369,13 @@ 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; } diff --git a/src/afsd/afsd.c b/src/afsd/afsd.c index 98ffe8a11..c48e93651 100644 --- a/src/afsd/afsd.c +++ b/src/afsd/afsd.c @@ -58,7 +58,7 @@ #include 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 @@ -1073,7 +1073,7 @@ CheckCacheBaseDir(char *dir) return "cannot use tmpfs as cache partition"; } else if (statfsbuf.f_type != 0xEF53) { return "must use ext2 or ext3 for cache partition"; - } + } } #endif @@ -1722,10 +1722,13 @@ mainproc(struct cmd_syndesc *as, char *arock) sprintf(fullpn_VFile, "%s/", cacheBaseDir); vFilePtr = fullpn_VFile + strlen(fullpn_VFile); - if (!(cacheFlags & AFSCALL_INIT_MEMCACHE) - && (fsTypeMsg = CheckCacheBaseDir(cacheBaseDir))) { + if (!(cacheFlags & AFSCALL_INIT_MEMCACHE) && (fsTypeMsg = CheckCacheBaseDir(cacheBaseDir))) { +#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); + exit(1); +#endif } #if 0 fputs(AFS_GOVERNMENT_MESSAGE, stdout); diff --git a/src/aklog/aklog.h b/src/aklog/aklog.h index 03dd9d6d6..298f69584 100644 --- a/src/aklog/aklog.h +++ b/src/aklog/aklog.h @@ -1,5 +1,5 @@ /* - * $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" @@ -9,7 +9,7 @@ #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 @@ -54,7 +54,7 @@ void aklog ARGS((int, char *[])); struct ktext { unsigned int length; unsigned char dat[MAX_KTXT_LEN]; - u_int32_t mbz; + afs_uint32 mbz; }; struct credentials { diff --git a/src/aklog/aklog_main.c b/src/aklog/aklog_main.c index 32afd49b7..607ee66d0 100644 --- a/src/aklog/aklog_main.c +++ b/src/aklog/aklog_main.c @@ -1,5 +1,5 @@ /* - * $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" @@ -7,9 +7,10 @@ #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 #include #include #include @@ -70,7 +71,9 @@ u_long ntohl(u_long x) #else /* !WINDOWS */ #include +#ifndef HAVE_KERBEROSV_HEIM_ERR_H #include +#endif #include #ifdef AFS_SUN5_ENV diff --git a/src/aklog/asetkey.c b/src/aklog/asetkey.c index 3bd768ab0..824dfa3db 100644 --- a/src/aklog/asetkey.c +++ b/src/aklog/asetkey.c @@ -1,5 +1,5 @@ /* - * $Id: asetkey.c,v 1.4 2006/02/17 17:58:21 rees Exp $ + * $Id: asetkey.c,v 1.4.2.4 2006/04/03 19:45:26 shadow Exp $ * * asetkey - Manipulates an AFS KeyFile * diff --git a/src/auth/cellconfig.c b/src/auth/cellconfig.c index 855d997ff..006813826 100644 --- a/src/auth/cellconfig.c +++ b/src/auth/cellconfig.c @@ -11,7 +11,7 @@ #include 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 #include @@ -736,8 +736,7 @@ afsconf_GetAfsdbInfo(char *acellName, char *aservice, 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; diff --git a/src/cf/kerberos.m4 b/src/cf/kerberos.m4 index bd1f0fda1..1ebdbca00 100644 --- a/src/cf/kerberos.m4 +++ b/src/cf/kerberos.m4 @@ -1,5 +1,5 @@ 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 @@ -60,6 +60,7 @@ if test X$conf_krb5 = XYES; then 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, @@ -94,7 +95,16 @@ dnl AC_CHECK_MEMBERS([krb5_creds.keyblock, krb5_creds.session],,, [#include header file. */ #undef HAVE_KERBEROSIV_KRB_H +/* Define to 1 if you have the header file. */ +#undef HAVE_KERBEROSV_HEIM_ERR_H + /* define if your linux kernel has linux/seq_file.h */ #undef HAVE_KERNEL_LINUX_SEQ_FILE_H diff --git a/src/config/linux-version b/src/config/linux-version index 1944ae994..ebc8437a6 100644 --- a/src/config/linux-version +++ b/src/config/linux-version @@ -40,15 +40,21 @@ CAN_BUILD="" for VERS in $LINUX_VERS ; do dir=$LINUX_SRCDIR 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/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 | diff --git a/src/config/param.i386_linux26.h b/src/config/param.i386_linux26.h index 60146da33..1830edf79 100644 --- a/src/config/param.i386_linux26.h +++ b/src/config/param.i386_linux26.h @@ -86,6 +86,11 @@ #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 */ diff --git a/src/kauth/rebuild.c b/src/kauth/rebuild.c index 8e28682da..25f711de4 100644 --- a/src/kauth/rebuild.c +++ b/src/kauth/rebuild.c @@ -11,7 +11,7 @@ #include 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 #include @@ -123,6 +123,7 @@ PrintEntry(index, entry) int i; char Time[100]; struct tm *tm_p; + time_t tt; printf("\n"); @@ -171,7 +172,8 @@ PrintEntry(index, entry) 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); @@ -285,8 +287,8 @@ RebuildEntry(entryp) 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); diff --git a/src/libafs/afs.ppc_darwin_70.plist.in b/src/libafs/afs.ppc_darwin_70.plist.in index e7424458b..27db69fb5 100644 --- a/src/libafs/afs.ppc_darwin_70.plist.in +++ b/src/libafs/afs.ppc_darwin_70.plist.in @@ -15,11 +15,11 @@ CFBundlePackageType KEXT CFBundleShortVersionString - 1.4.0 + 1.4.1 CFBundleSignature ???? CFBundleVersion - 1.4.0 + 1.4.1 OSBundleLibraries com.apple.kernel.bsd diff --git a/src/libafs/afs.ppc_darwin_80.plist.in b/src/libafs/afs.ppc_darwin_80.plist.in index 12797cda6..693cc3355 100644 --- a/src/libafs/afs.ppc_darwin_80.plist.in +++ b/src/libafs/afs.ppc_darwin_80.plist.in @@ -15,11 +15,11 @@ CFBundlePackageType KEXT CFBundleShortVersionString - 1.4.0 + 1.4.1 CFBundleSignature ???? CFBundleVersion - 1.4.0 + 1.4.1 OSBundleLibraries com.apple.kpi.bsd diff --git a/src/libafs/afs.ppc_darwin_90.plist.in b/src/libafs/afs.ppc_darwin_90.plist.in index 12797cda6..693cc3355 100644 --- a/src/libafs/afs.ppc_darwin_90.plist.in +++ b/src/libafs/afs.ppc_darwin_90.plist.in @@ -15,11 +15,11 @@ CFBundlePackageType KEXT CFBundleShortVersionString - 1.4.0 + 1.4.1 CFBundleSignature ???? CFBundleVersion - 1.4.0 + 1.4.1 OSBundleLibraries com.apple.kpi.bsd diff --git a/src/libafs/afs.x86_darwin_80.plist.in b/src/libafs/afs.x86_darwin_80.plist.in index 08938589b..693cc3355 100644 --- a/src/libafs/afs.x86_darwin_80.plist.in +++ b/src/libafs/afs.x86_darwin_80.plist.in @@ -15,11 +15,11 @@ CFBundlePackageType KEXT CFBundleShortVersionString - 1.3.82 + 1.4.1 CFBundleSignature ???? CFBundleVersion - 1.3.82 + 1.4.1 OSBundleLibraries com.apple.kpi.bsd diff --git a/src/libafs/afs.x86_darwin_90.plist.in b/src/libafs/afs.x86_darwin_90.plist.in index 08938589b..693cc3355 100644 --- a/src/libafs/afs.x86_darwin_90.plist.in +++ b/src/libafs/afs.x86_darwin_90.plist.in @@ -15,11 +15,11 @@ CFBundlePackageType KEXT CFBundleShortVersionString - 1.3.82 + 1.4.1 CFBundleSignature ???? CFBundleVersion - 1.3.82 + 1.4.1 OSBundleLibraries com.apple.kpi.bsd diff --git a/src/lwp/process.c b/src/lwp/process.c index bbeca4fa0..2cafd9a58 100644 --- a/src/lwp/process.c +++ b/src/lwp/process.c @@ -13,7 +13,7 @@ #include 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 #include @@ -33,28 +33,19 @@ extern char PRE_Block; /* used in lwp.c and process.s */ 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: @@ -98,7 +89,7 @@ returnto(savearea) # 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_PARISC_LINUX24_ENV ) diff --git a/src/lwp/test/selsubs.c b/src/lwp/test/selsubs.c index 6124aebf3..a14a1e1c9 100644 --- a/src/lwp/test/selsubs.c +++ b/src/lwp/test/selsubs.c @@ -29,7 +29,7 @@ #include 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" @@ -150,6 +150,7 @@ Log(char *fmt, ...) struct timeval now; struct timezone tz; struct tm *ltime; + time_t tt; int code; PROCESS pid; extern char *program; @@ -157,7 +158,8 @@ Log(char *fmt, ...) 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 : "", diff --git a/src/packaging/Debian/CellServDB b/src/packaging/Debian/CellServDB new file mode 100644 index 000000000..2740b39e5 --- /dev/null +++ b/src/packaging/Debian/CellServDB @@ -0,0 +1,559 @@ +>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 diff --git a/src/packaging/Debian/ConfigUtils.pm b/src/packaging/Debian/ConfigUtils.pm index 4d35047bc..ee49144f5 100644 --- a/src/packaging/Debian/ConfigUtils.pm +++ b/src/packaging/Debian/ConfigUtils.pm @@ -24,3 +24,11 @@ sub run ($) { } 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 diff --git a/src/packaging/Debian/README.Debian b/src/packaging/Debian/README.Debian index 884fad6a9..755fa84cb 100644 --- a/src/packaging/Debian/README.Debian +++ b/src/packaging/Debian/README.Debian @@ -1,25 +1,126 @@ -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 , and is + unfortunately outdated in several respects, but it's the best that we + have at present. - -- Sam Hartman , 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 , Tue Dec 27 15:53:28 2005 diff --git a/src/packaging/Debian/README.modules b/src/packaging/Debian/README.modules index d2c8e0168..63f2c353d 100644 --- a/src/packaging/Debian/README.modules +++ b/src/packaging/Debian/README.modules @@ -1,35 +1,93 @@ - 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. diff --git a/src/packaging/Debian/README.servers b/src/packaging/Debian/README.servers index 8bbae5966..d323215af 100644 --- a/src/packaging/Debian/README.servers +++ b/src/packaging/Debian/README.servers @@ -1,47 +1,392 @@ - 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: + -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 /tmp/afs.keytab afs + + (or afs/cell.name if you used that instead). 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 + + where 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: + + . 3600 IN AFSDB 1 . + + where is the name of your AFS cell and 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 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 + + for each db server in your cell (including the new one). + Then, restart the ptserver and vlserver instances on each of your + existing servers with: + + bos restart ptserver + bos restart 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 ptserver simple /usr/lib/openafs/ptserver \ + -localauth + bos create 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. diff --git a/src/packaging/Debian/TODO b/src/packaging/Debian/TODO index dbbd37de6..cec5dbcb3 100644 --- a/src/packaging/Debian/TODO +++ b/src/packaging/Debian/TODO @@ -1 +1,13 @@ -* 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. + diff --git a/src/packaging/Debian/afs-newcell b/src/packaging/Debian/afs-newcell index b896f000d..725d526b9 100644 --- a/src/packaging/Debian/afs-newcell +++ b/src/packaging/Debian/afs-newcell @@ -1,19 +1,20 @@ #!/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 @@ -21,17 +22,15 @@ B [B<--requirements-met>] [B<--admin> admin_user] =head1 DESCRIPTION - This script sets up the initial AFS database and configures the first database/file server. -The B 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 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 @@ -39,21 +38,20 @@ Sam Hartman =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 <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() { -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 = ; 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 () { + next unless /^>\Q$cell\E\s/; + while () { + 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() { -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 < [B<--requirements-met>] [B<--server> server-name] [B<--partition> partition-letter] +B [B<--requirements-met>] [B<--server> I] +[B<--partition> I] =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 =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 <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 = ; close CELL; chomp $cell; unless ($server) { - print <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() { +while () { 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; +} diff --git a/src/packaging/Debian/afs.conf b/src/packaging/Debian/afs.conf new file mode 100644 index 000000000..64490a1bd --- /dev/null +++ b/src/packaging/Debian/afs.conf @@ -0,0 +1,129 @@ +# -*- 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 +#} + +# 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 diff --git a/src/packaging/Debian/changelog b/src/packaging/Debian/changelog index eb3c91a2d..a1a6bc02e 100644 --- a/src/packaging/Debian/changelog +++ b/src/packaging/Debian/changelog @@ -1,3 +1,577 @@ +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Sat, 8 Jan 2005 20:02:23 -0500 + +openafs (1.3.74-1) experimental; urgency=low + + * New upstream version + + -- Sam Hartman 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 Wed, 27 Oct 2004 20:42:12 -0400 + +openafs (1.3.71-1) experimental; urgency=low + + * New upstream version + + -- Sam Hartman 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 Sun, 15 Aug 2004 18:56:48 -0400 + +openafs (1.3.65-1) experimental; urgency=low + + * New upstream Version, Closes: #256580 + + -- Sam Hartman 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 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 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 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 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 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 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 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 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 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 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 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 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 Sun, 2 Feb 2003 14:08:14 -0500 + +openafs (1.2.8-3) unstable; urgency=medium + + * Patch from Eduard Bloch 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 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 Fri, 3 Jan 2003 15:28:30 -0500 + +openafs (1.2.8-1) unstable; urgency=low + + * New upstream version + + -- Sam Hartman 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 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 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 Thu, 26 Sep 2002 16:11:25 -0400 + openafs (1.2.6-1) unstable; urgency=low @@ -308,11 +882,9 @@ openafs (1.0.1-2) unstable; urgency=medium * 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 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 Wed, 6 Dec 2000 11:21:53 -0500 openafs (1.0.1-1) unstable; urgency=low @@ -434,7 +1006,3 @@ openafs (1.0.snap20001103-1) unstable; urgency=low -- unknown Fri, 3 Nov 2000 23:41:41 -0500 -Local variables: -mode: debian-changelog -add-log-mailing-address "hartmans@snorklewacker.mit.edu" -End: diff --git a/src/packaging/Debian/compat b/src/packaging/Debian/compat new file mode 100644 index 000000000..b8626c4cf --- /dev/null +++ b/src/packaging/Debian/compat @@ -0,0 +1 @@ +4 diff --git a/src/packaging/Debian/control b/src/packaging/Debian/control index 0b81a1e20..ec2ec1cb1 100644 --- a/src/packaging/Debian/control +++ b/src/packaging/Debian/control @@ -2,14 +2,17 @@ Source: openafs Section: net Priority: optional Maintainer: Sam Hartman -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 +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. @@ -19,24 +22,25 @@ Description: The AFS distributed filesystem- client support 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. @@ -45,12 +49,13 @@ Description: The AFS distributed filesystem- file server 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. @@ -60,10 +65,13 @@ Description: The AFS distributed filesystem- database server 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. @@ -73,12 +81,23 @@ Description: The AFS distributed filesystem- development libraries 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 diff --git a/src/packaging/Debian/control.module b/src/packaging/Debian/control.module index 7ceb277b4..66aaad4eb 100644 --- a/src/packaging/Debian/control.module +++ b/src/packaging/Debian/control.module @@ -2,15 +2,19 @@ Source: openafs Section: net Priority: optional Maintainer: Sam Hartman -Standards-Version: 3.1.1 +Uploaders: Russ Allbery +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. diff --git a/src/packaging/Debian/copyright b/src/packaging/Debian/copyright index a68b88be0..0bed00b2f 100644 --- a/src/packaging/Debian/copyright +++ b/src/packaging/Debian/copyright @@ -1,9 +1,20 @@ This package was debianized by Sam Hartman 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: @@ -240,3 +251,93 @@ 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 + */ diff --git a/src/packaging/Debian/doc/build-man b/src/packaging/Debian/doc/build-man new file mode 100644 index 000000000..127449516 --- /dev/null +++ b/src/packaging/Debian/doc/build-man @@ -0,0 +1,56 @@ +#!/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 .. diff --git a/src/packaging/Debian/genchanges.sh b/src/packaging/Debian/genchanges.sh index 5d50cd542..e38781bcc 100644 --- a/src/packaging/Debian/genchanges.sh +++ b/src/packaging/Debian/genchanges.sh @@ -2,21 +2,18 @@ # 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" diff --git a/src/packaging/Debian/kern-sysname b/src/packaging/Debian/kern-sysname index 00964eb6d..1aa0293a0 100644 --- a/src/packaging/Debian/kern-sysname +++ b/src/packaging/Debian/kern-sysname @@ -1,68 +1,97 @@ #!/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 diff --git a/src/packaging/Debian/kernel-version b/src/packaging/Debian/kernel-version new file mode 100644 index 000000000..093e7d91c --- /dev/null +++ b/src/packaging/Debian/kernel-version @@ -0,0 +1,15 @@ +#!/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 = ; +if ($line =~ /"(.+)"/) { + print "$1\n"; +} +exit 0; diff --git a/src/packaging/Debian/libopenafs-dev.dirs b/src/packaging/Debian/libopenafs-dev.dirs new file mode 100644 index 000000000..68457717b --- /dev/null +++ b/src/packaging/Debian/libopenafs-dev.dirs @@ -0,0 +1 @@ +usr/lib diff --git a/src/packaging/Debian/libopenafs-dev.install b/src/packaging/Debian/libopenafs-dev.install new file mode 100644 index 000000000..74bdd5ae9 --- /dev/null +++ b/src/packaging/Debian/libopenafs-dev.install @@ -0,0 +1,8 @@ +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 diff --git a/src/packaging/Debian/libpam-openafs-kaserver.dirs b/src/packaging/Debian/libpam-openafs-kaserver.dirs new file mode 100644 index 000000000..e721705da --- /dev/null +++ b/src/packaging/Debian/libpam-openafs-kaserver.dirs @@ -0,0 +1,2 @@ +lib/security +usr/share/doc diff --git a/src/packaging/Debian/openafs-client.config b/src/packaging/Debian/openafs-client.config index 68a7e61e0..0781a7eb8 100644 --- a/src/packaging/Debian/openafs-client.config +++ b/src/packaging/Debian/openafs-client.config @@ -1,6 +1,6 @@ #!/bin/sh -e -. /usr/share/debconf/confmodule ||exit +. /usr/share/debconf/confmodule || exit db_version 2.0 if [ -r /etc/openafs/ThisCell ] ; then @@ -15,7 +15,7 @@ if [ -r /etc/openafs/cacheinfo ] ; then IFS=: read mountpoint cachedir cachesize `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-deconfigure' `in-favour' +# `removing' +# set -e -# summary of how this script can be called: -# * `configure' -# * `abort-upgrade' -# * `abort-remove' `in-favour' -# -# * `abort-deconfigure' `in-favour' -# `removing' -# - 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 &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 &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 @@ -86,5 +94,3 @@ esac #DEBHELPER# exit 0 - - diff --git a/src/packaging/Debian/openafs-client.templates b/src/packaging/Debian/openafs-client.templates index 0dabd8c08..9688c2ba3 100644 --- a/src/packaging/Debian/openafs-client.templates +++ b/src/packaging/Debian/openafs-client.templates @@ -1,85 +1,93 @@ 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 diff --git a/src/packaging/Debian/openafs-dbserver.dirs b/src/packaging/Debian/openafs-dbserver.dirs index 8d5356674..1e6dd00c8 100644 --- a/src/packaging/Debian/openafs-dbserver.dirs +++ b/src/packaging/Debian/openafs-dbserver.dirs @@ -2,3 +2,11 @@ usr/share/doc 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 diff --git a/src/packaging/Debian/openafs-dbserver.install b/src/packaging/Debian/openafs-dbserver.install new file mode 100644 index 000000000..bd6d4b756 --- /dev/null +++ b/src/packaging/Debian/openafs-dbserver.install @@ -0,0 +1,24 @@ +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 diff --git a/src/packaging/Debian/openafs-dbserver.lintian b/src/packaging/Debian/openafs-dbserver.lintian new file mode 100644 index 000000000..2afb85f5f --- /dev/null +++ b/src/packaging/Debian/openafs-dbserver.lintian @@ -0,0 +1 @@ +openafs-dbserver: non-standard-dir-perm diff --git a/src/packaging/Debian/openafs-fileserver.init b/src/packaging/Debian/openafs-fileserver.init index 8835856f8..d0172c385 100644 --- a/src/packaging/Debian/openafs-fileserver.init +++ b/src/packaging/Debian/openafs-fileserver.init @@ -34,7 +34,7 @@ case "$1" in echo -n "Stopping $DESC: " bos shutdown localhost -wait -localauth start-stop-daemon --stop --quiet \ - --exec $DAEMON + --user root --name bosserver echo "$NAME." ;; #reload) @@ -56,7 +56,12 @@ case "$1" in # 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." ;; diff --git a/src/packaging/Debian/openafs-fileserver.install b/src/packaging/Debian/openafs-fileserver.install new file mode 100644 index 000000000..e52fb529b --- /dev/null +++ b/src/packaging/Debian/openafs-fileserver.install @@ -0,0 +1,31 @@ +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 diff --git a/src/packaging/Debian/openafs-fileserver.lintian b/src/packaging/Debian/openafs-fileserver.lintian index 87d699bec..f2b3998a8 100644 --- a/src/packaging/Debian/openafs-fileserver.lintian +++ b/src/packaging/Debian/openafs-fileserver.lintian @@ -1,2 +1 @@ -openafs-fileserver: link-to-undocumented-manpage openafs-fileserver: non-standard-dir-perm diff --git a/src/packaging/Debian/openafs-fileserver.postinst b/src/packaging/Debian/openafs-fileserver.postinst index a63e6c44e..2c49fc320 100644 --- a/src/packaging/Debian/openafs-fileserver.postinst +++ b/src/packaging/Debian/openafs-fileserver.postinst @@ -1,46 +1,55 @@ #!/bin/sh -e - -# summary of how this script can be called: -# * `configure' -# * `abort-upgrade' -# * `abort-remove' `in-favour' -# -# * `abort-deconfigure' `in-favour' -# `removing' -# +# +# Summary of how this script can be called: +# +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-deconfigure' `in-favour' +# `removing' +# + +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 diff --git a/src/packaging/Debian/openafs-fileserver.postrm b/src/packaging/Debian/openafs-fileserver.postrm index b84bf8c47..9ce96e568 100644 --- a/src/packaging/Debian/openafs-fileserver.postrm +++ b/src/packaging/Debian/openafs-fileserver.postrm @@ -38,4 +38,3 @@ esac #DEBHELPER# - diff --git a/src/packaging/Debian/openafs-fileserver.templates b/src/packaging/Debian/openafs-fileserver.templates index c43683ad6..e0776b8bf 100644 --- a/src/packaging/Debian/openafs-fileserver.templates +++ b/src/packaging/Debian/openafs-fileserver.templates @@ -1,31 +1,26 @@ 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. diff --git a/src/packaging/Debian/openafs-kpasswd.install b/src/packaging/Debian/openafs-kpasswd.install new file mode 100644 index 000000000..6889bed20 --- /dev/null +++ b/src/packaging/Debian/openafs-kpasswd.install @@ -0,0 +1,23 @@ +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 diff --git a/src/packaging/Debian/openafs-modules-source.docs b/src/packaging/Debian/openafs-modules-source.docs index 79b2a3161..3d959f950 100644 --- a/src/packaging/Debian/openafs-modules-source.docs +++ b/src/packaging/Debian/openafs-modules-source.docs @@ -2,4 +2,3 @@ README debian/README.servers debian/configuration-transcript.txt debian/README.modules -NEWS diff --git a/src/packaging/Debian/patches/README b/src/packaging/Debian/patches/README new file mode 100644 index 000000000..d337dfab9 --- /dev/null +++ b/src/packaging/Debian/patches/README @@ -0,0 +1,9 @@ +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. diff --git a/src/packaging/Debian/patches/module-name b/src/packaging/Debian/patches/module-name new file mode 100644 index 000000000..148d2d837 --- /dev/null +++ b/src/packaging/Debian/patches/module-name @@ -0,0 +1,49 @@ +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 + + +-${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 + diff --git a/src/packaging/Debian/patches/pam b/src/packaging/Debian/patches/pam new file mode 100644 index 000000000..c0f00b005 --- /dev/null +++ b/src/packaging/Debian/patches/pam @@ -0,0 +1,158 @@ +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} ;; \ + *) \ diff --git a/src/packaging/Debian/po/POTFILES.in b/src/packaging/Debian/po/POTFILES.in new file mode 100644 index 000000000..0ec8635f5 --- /dev/null +++ b/src/packaging/Debian/po/POTFILES.in @@ -0,0 +1,2 @@ +[type: gettext/rfc822deb] openafs-client.templates +[type: gettext/rfc822deb] openafs-fileserver.templates diff --git a/src/packaging/Debian/po/cs.po b/src/packaging/Debian/po/cs.po new file mode 100644 index 000000000..1901ea7a8 --- /dev/null +++ b/src/packaging/Debian/po/cs.po @@ -0,0 +1,279 @@ +# +# 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 \n" +"Language-Team: Czech \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." diff --git a/src/packaging/Debian/po/de.po b/src/packaging/Debian/po/de.po new file mode 100644 index 000000000..7e786a702 --- /dev/null +++ b/src/packaging/Debian/po/de.po @@ -0,0 +1,225 @@ +# +# 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 \n" +"Language-Team: LANGUAGE \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 "" diff --git a/src/packaging/Debian/po/fr.po b/src/packaging/Debian/po/fr.po new file mode 100644 index 000000000..0e4c7df0c --- /dev/null +++ b/src/packaging/Debian/po/fr.po @@ -0,0 +1,292 @@ +# 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 \n" +"Language-Team: French \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." + diff --git a/src/packaging/Debian/po/pt_BR.po b/src/packaging/Debian/po/pt_BR.po new file mode 100644 index 000000000..a89a2efa1 --- /dev/null +++ b/src/packaging/Debian/po/pt_BR.po @@ -0,0 +1,293 @@ +# +# 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 \n" +"Language-Team: Debian-BR Project \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" diff --git a/src/packaging/Debian/po/vi.po b/src/packaging/Debian/po/vi.po new file mode 100644 index 000000000..1f9220845 --- /dev/null +++ b/src/packaging/Debian/po/vi.po @@ -0,0 +1,278 @@ +# Vietnamese translation for openafs. +# Copyright © 2005 Free Software Foundation, Inc. +# Clytie Siddall , 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 \n" +"Language-Team: Vietnamese \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." diff --git a/src/packaging/Debian/prep-modules b/src/packaging/Debian/prep-modules index ed0570304..0ab5d5c10 100644 --- a/src/packaging/Debian/prep-modules +++ b/src/packaging/Debian/prep-modules @@ -1,55 +1,103 @@ #! /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 diff --git a/src/packaging/Debian/pt_util.sgml b/src/packaging/Debian/pt_util.sgml index 9d93e91e1..bdd4e1bfc 100644 --- a/src/packaging/Debian/pt_util.sgml +++ b/src/packaging/Debian/pt_util.sgml @@ -182,4 +182,3 @@ sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: ---> diff --git a/src/packaging/Debian/rules b/src/packaging/Debian/rules index 1fcc19f40..4de077501 100644 --- a/src/packaging/Debian/rules +++ b/src/packaging/Debian/rules @@ -9,268 +9,273 @@ # 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 diff --git a/src/packaging/Debian/sysname b/src/packaging/Debian/sysname index 6d3c9d1a3..b47488d10 100644 --- a/src/packaging/Debian/sysname +++ b/src/packaging/Debian/sysname @@ -1,28 +1,40 @@ #!/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 diff --git a/src/rxkad/rxkad_server.c b/src/rxkad/rxkad_server.c index 89fc7934d..5383804b9 100644 --- a/src/rxkad/rxkad_server.c +++ b/src/rxkad/rxkad_server.c @@ -15,11 +15,11 @@ #include 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 #include -#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 #endif #include diff --git a/src/sys/afssyscalls.h b/src/sys/afssyscalls.h index 368c75328..e5a7c1bde 100644 --- a/src/sys/afssyscalls.h +++ b/src/sys/afssyscalls.h @@ -26,7 +26,12 @@ typedef u_int64_t Inode; #ifdef AFS_SGI62_ENV typedef uint64_t Inode; #else +#include +#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; diff --git a/src/util/kreltime.c b/src/util/kreltime.c index f83906d0a..7556a6481 100644 --- a/src/util/kreltime.c +++ b/src/util/kreltime.c @@ -11,7 +11,7 @@ #include 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 #include @@ -115,8 +115,9 @@ int 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; diff --git a/src/venus/cmdebug.c b/src/venus/cmdebug.c index 6b3438401..6bc33a725 100644 --- a/src/venus/cmdebug.c +++ b/src/venus/cmdebug.c @@ -11,7 +11,7 @@ #include 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 @@ -399,10 +399,15 @@ PrintCacheEntries64(struct rx_connection *aconn, int aint32) 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, diff --git a/src/viced/afsfileprocs.c b/src/viced/afsfileprocs.c index 1198b2bd9..1f5551442 100644 --- a/src/viced/afsfileprocs.c +++ b/src/viced/afsfileprocs.c @@ -29,7 +29,7 @@ #include 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 #include @@ -6151,56 +6151,25 @@ SRXAFS_GetCapabilities(struct rx_call * acall, Capabilities * capabilities) 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; } diff --git a/src/viced/fs_stats.h b/src/viced/fs_stats.h index e69dd55a6..7f915a4cf 100644 --- a/src/viced/fs_stats.h +++ b/src/viced/fs_stats.h @@ -126,10 +126,14 @@ struct afs_PerfStats { 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 @@ -164,9 +168,8 @@ struct afs_PerfStats { #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 diff --git a/src/viced/host.c b/src/viced/host.c index a3bbcf501..c15bebd5b 100644 --- a/src/viced/host.c +++ b/src/viced/host.c @@ -11,7 +11,7 @@ #include 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 #include @@ -731,6 +731,7 @@ h_TossStuff_r(register struct host *host) 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; @@ -761,8 +762,10 @@ h_TossStuff_r(register struct host *host) * 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); } @@ -831,8 +834,10 @@ h_FreeConnection(struct rx_connection *tcon) 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; @@ -1679,14 +1684,15 @@ h_FindClient_r(struct rx_connection *tcon) (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++; @@ -1810,6 +1816,7 @@ h_FindClient_r(struct rx_connection *tcon) 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, @@ -1827,6 +1834,7 @@ h_FindClient_r(struct rx_connection *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); diff --git a/src/vol/fssync.c b/src/vol/fssync.c index 8e08d6e03..df80cf609 100644 --- a/src/vol/fssync.c +++ b/src/vol/fssync.c @@ -50,7 +50,7 @@ static int newVLDB = 1; #include 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 #include diff --git a/src/xstat/xstat_fs_test.c b/src/xstat/xstat_fs_test.c index 158dfa5bf..956b48b8f 100644 --- a/src/xstat/xstat_fs_test.c +++ b/src/xstat/xstat_fs_test.c @@ -17,7 +17,7 @@ #include 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 /*Command line interpreter */ @@ -83,8 +83,7 @@ static char *opNames[] = { "NGetVolumeInfo", "BulkStatus", "XStatsVersion", - "GetXStats", - "GetCapabilities" + "GetXStats" }; static char *xferOpNames[] = { @@ -250,7 +249,8 @@ PrintOverallPerfInfo(struct afs_PerfStats *a_ovP) 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. */ -- 2.39.5