src/pam/Makefile \
src/pinstall/test/Makefile \
src/pinstall/Makefile \
+ src/platform/Makefile \
+ src/platform/${MKAFS_OSTYPE}/Makefile \
src/procmgmt/Makefile \
src/procmgmt/test/Makefile \
src/ptserver/Makefile \
AFS_PARAM_COMMON=param.nbsd30.h
AFS_SYSNAME="i386_nbsd30"
;;
- i?86-*-netbsd*3.0*)
+ i?86-*-netbsd*3.[[0-8]]*)
AFS_PARAM_COMMON=param.nbsd30.h
AFS_SYSNAME="i386_nbsd30"
;;
AFS_PARAM_COMMON=param.nbsd30.h
AFS_SYSNAME="i386_nbsd30"
;;
+ i?86-*-netbsd*4.[[0-8]]*)
+ AFS_PARAM_COMMON=param.nbsd40.h
+ AFS_SYSNAME="i386_nbsd40"
+ ;;
+ i?86-*-netbsd*4.99*)
+ AFS_PARAM_COMMON=param.nbsd40.h
+ AFS_SYSNAME="i386_nbsd40"
+ ;;
hppa*-hp-hpux11.0*)
AFS_SYSNAME="hp_ux110"
;;
LINUX_REFRIGERATOR
LINUX_LINUX_KEYRING_SUPPORT
LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
+ LINUX_DO_SYNC_READ
+ LINUX_GENERIC_FILE_AIO_READ
LINUX_EXPORTS_SYS_CHDIR
LINUX_EXPORTS_SYS_CLOSE
LINUX_EXPORTS_SYS_OPEN
# Define the identity of the package.
PACKAGE=openafs
- VERSION=1.4.2fc4
+ VERSION=1.4.2
cat >>confdefs.h <<_ACEOF
AFS_PARAM_COMMON=param.nbsd30.h
AFS_SYSNAME="i386_nbsd30"
;;
- i?86-*-netbsd*3.0*)
+ i?86-*-netbsd*3.[0-8]*)
AFS_PARAM_COMMON=param.nbsd30.h
AFS_SYSNAME="i386_nbsd30"
;;
AFS_PARAM_COMMON=param.nbsd30.h
AFS_SYSNAME="i386_nbsd30"
;;
+ i?86-*-netbsd*4.[0-8]*)
+ AFS_PARAM_COMMON=param.nbsd40.h
+ AFS_SYSNAME="i386_nbsd40"
+ ;;
+ i?86-*-netbsd*4.99*)
+ AFS_PARAM_COMMON=param.nbsd40.h
+ AFS_SYSNAME="i386_nbsd40"
+ ;;
hppa*-hp-hpux11.0*)
AFS_SYSNAME="hp_ux110"
;;
fi
+ { echo "$as_me:$LINENO: checking for linux do_sync_read()" >&5
+echo $ECHO_N "checking for linux do_sync_read()... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_do_sync_read+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+
+ if test -f $LINUX_KERNEL_PATH/scripts/Makefile.build; then
+
+ rm -fr conftest.dir
+ if mkdir conftest.dir; then
+ cd conftest.dir
+ cat >Makefile <<_ACEOF
+CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.c <<\_ACEOF
+#include <linux/module.h>
+#include <linux/fs.h>
+
+void conftest(void)
+{
+do_sync_read(NULL, NULL, 0, NULL);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ cd ..
+ fi
+ if { (echo "$as_me:$LINENO: make -C \$LINUX_KERNEL_PATH M=\`pwd\`/conftest.dir modules > /dev/null") >&5
+ (make -C $LINUX_KERNEL_PATH M=`pwd`/conftest.dir modules > /dev/null) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ ac_cv_linux_do_sync_read=yes
+else
+ ac_cv_linux_do_sync_read=no
+fi
+
+ rm -fr conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <linux/fs.h>
+int
+main ()
+{
+do_sync_read(NULL, NULL, 0, NULL);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_do_sync_read=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_do_sync_read=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+ CPPFLAGS="$save_CPPFLAGS"
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_do_sync_read" >&5
+echo "${ECHO_T}$ac_cv_linux_do_sync_read" >&6; }
+ if test "x$ac_cv_linux_do_sync_read" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define DO_SYNC_READ 1
+_ACEOF
+
+ fi
+
+ { echo "$as_me:$LINENO: checking for linux generic_file_aio_read()" >&5
+echo $ECHO_N "checking for linux generic_file_aio_read()... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_generic_file_aio_read+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+
+ if test -f $LINUX_KERNEL_PATH/scripts/Makefile.build; then
+
+ rm -fr conftest.dir
+ if mkdir conftest.dir; then
+ cd conftest.dir
+ cat >Makefile <<_ACEOF
+CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.c <<\_ACEOF
+#include <linux/module.h>
+#include <linux/fs.h>
+
+void conftest(void)
+{
+generic_file_aio_read(NULL, NULL, 0, 0);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ cd ..
+ fi
+ if { (echo "$as_me:$LINENO: make -C \$LINUX_KERNEL_PATH M=\`pwd\`/conftest.dir modules > /dev/null") >&5
+ (make -C $LINUX_KERNEL_PATH M=`pwd`/conftest.dir modules > /dev/null) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ ac_cv_linux_generic_file_aio_read=yes
+else
+ ac_cv_linux_generic_file_aio_read=no
+fi
+
+ rm -fr conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <linux/fs.h>
+int
+main ()
+{
+generic_file_aio_read(NULL, NULL, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_generic_file_aio_read=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_generic_file_aio_read=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+ CPPFLAGS="$save_CPPFLAGS"
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_generic_file_aio_read" >&5
+echo "${ECHO_T}$ac_cv_linux_generic_file_aio_read" >&6; }
+ if test "x$ac_cv_linux_generic_file_aio_read" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define GENERIC_FILE_AIO_READ 1
+_ACEOF
+
+ fi
+
{ echo "$as_me:$LINENO: checking for exported sys_chdir" >&5
echo $ECHO_N "checking for exported sys_chdir... $ECHO_C" >&6; }
if test "${ac_cv_linux_exports_sys_chdir+set}" = set; then
YACC="byacc"
;;
- *nbsd2*|*nbsd3*)
+ *nbsd2*|*nbsd3*|*nbsd4*)
LEX="flex -l"
MT_CFLAGS='${XCFLAGS} -DAFS_PTHREAD_ENV -D_REENTRANT '
MT_LIBS="-lpthread" # XXX -pthread soon
# Define the identity of the package.
PACKAGE=openafs-libafs
- VERSION=1.4.2fc4
+ VERSION=1.4.2
cat >>confdefs.h <<_ACEOF
AFS_PARAM_COMMON=param.nbsd30.h
AFS_SYSNAME="i386_nbsd30"
;;
- i?86-*-netbsd*3.0*)
+ i?86-*-netbsd*3.[0-8]*)
AFS_PARAM_COMMON=param.nbsd30.h
AFS_SYSNAME="i386_nbsd30"
;;
AFS_PARAM_COMMON=param.nbsd30.h
AFS_SYSNAME="i386_nbsd30"
;;
+ i?86-*-netbsd*4.[0-8]*)
+ AFS_PARAM_COMMON=param.nbsd40.h
+ AFS_SYSNAME="i386_nbsd40"
+ ;;
+ i?86-*-netbsd*4.99*)
+ AFS_PARAM_COMMON=param.nbsd40.h
+ AFS_SYSNAME="i386_nbsd40"
+ ;;
hppa*-hp-hpux11.0*)
AFS_SYSNAME="hp_ux110"
;;
fi
+ { echo "$as_me:$LINENO: checking for linux do_sync_read()" >&5
+echo $ECHO_N "checking for linux do_sync_read()... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_do_sync_read+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+
+ if test -f $LINUX_KERNEL_PATH/scripts/Makefile.build; then
+
+ rm -fr conftest.dir
+ if mkdir conftest.dir; then
+ cd conftest.dir
+ cat >Makefile <<_ACEOF
+CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.c <<\_ACEOF
+#include <linux/module.h>
+#include <linux/fs.h>
+
+void conftest(void)
+{
+do_sync_read(NULL, NULL, 0, NULL);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ cd ..
+ fi
+ if { (echo "$as_me:$LINENO: make -C \$LINUX_KERNEL_PATH M=\`pwd\`/conftest.dir modules > /dev/null") >&5
+ (make -C $LINUX_KERNEL_PATH M=`pwd`/conftest.dir modules > /dev/null) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ ac_cv_linux_do_sync_read=yes
+else
+ ac_cv_linux_do_sync_read=no
+fi
+
+ rm -fr conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <linux/fs.h>
+int
+main ()
+{
+do_sync_read(NULL, NULL, 0, NULL);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_do_sync_read=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_do_sync_read=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+ CPPFLAGS="$save_CPPFLAGS"
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_do_sync_read" >&5
+echo "${ECHO_T}$ac_cv_linux_do_sync_read" >&6; }
+ if test "x$ac_cv_linux_do_sync_read" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define DO_SYNC_READ 1
+_ACEOF
+
+ fi
+
+ { echo "$as_me:$LINENO: checking for linux generic_file_aio_read()" >&5
+echo $ECHO_N "checking for linux generic_file_aio_read()... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_generic_file_aio_read+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+
+ if test -f $LINUX_KERNEL_PATH/scripts/Makefile.build; then
+
+ rm -fr conftest.dir
+ if mkdir conftest.dir; then
+ cd conftest.dir
+ cat >Makefile <<_ACEOF
+CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.c <<\_ACEOF
+#include <linux/module.h>
+#include <linux/fs.h>
+
+void conftest(void)
+{
+generic_file_aio_read(NULL, NULL, 0, 0);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ cd ..
+ fi
+ if { (echo "$as_me:$LINENO: make -C \$LINUX_KERNEL_PATH M=\`pwd\`/conftest.dir modules > /dev/null") >&5
+ (make -C $LINUX_KERNEL_PATH M=`pwd`/conftest.dir modules > /dev/null) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ ac_cv_linux_generic_file_aio_read=yes
+else
+ ac_cv_linux_generic_file_aio_read=no
+fi
+
+ rm -fr conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <linux/fs.h>
+int
+main ()
+{
+generic_file_aio_read(NULL, NULL, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&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'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_generic_file_aio_read=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_generic_file_aio_read=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+ CPPFLAGS="$save_CPPFLAGS"
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_generic_file_aio_read" >&5
+echo "${ECHO_T}$ac_cv_linux_generic_file_aio_read" >&6; }
+ if test "x$ac_cv_linux_generic_file_aio_read" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define GENERIC_FILE_AIO_READ 1
+_ACEOF
+
+ fi
+
{ echo "$as_me:$LINENO: checking for exported sys_chdir" >&5
echo $ECHO_N "checking for exported sys_chdir... $ECHO_C" >&6; }
if test "${ac_cv_linux_exports_sys_chdir+set}" = set; then
YACC="byacc"
;;
- *nbsd2*|*nbsd3*)
+ *nbsd2*|*nbsd3*|*nbsd4*)
LEX="flex -l"
MT_CFLAGS='${XCFLAGS} -DAFS_PTHREAD_ENV -D_REENTRANT '
MT_LIBS="-lpthread" # XXX -pthread soon
AC_INIT(src/libafs/Makefile.common.in)
-AM_INIT_AUTOMAKE(openafs-libafs,1.4.2fc4)
+AM_INIT_AUTOMAKE(openafs-libafs,1.4.2)
AC_CONFIG_HEADER(src/config/afsconfig.h)
define(OPENAFS_CONFIGURE_LIBAFS)
AC_INIT(src/config/stds.h)
-AM_INIT_AUTOMAKE(openafs,1.4.2fc4)
+AM_INIT_AUTOMAKE(openafs,1.4.2)
AC_CONFIG_HEADER(src/config/afsconfig.h)
AC_PROG_CC
--- /dev/null
+ OpenAFS Release Notes - Version 1.4.2
+ _________________________________________________________________
+All systems: Major bugfixes.
+ _________________________________________________________________
+
+* Bugfixes:
+
+All systems:
+
+- Volume dump parsing code in the volserver has better error checking.
+
+- salvager has improved damaged volume handling on namei fileservers.
+
+- fileserver has size validity checks for when large file support is disabled.
+
+- fileserver avoids potentially multiply adding a host to its hash table.
+
+- rxkad client private data storage is allocated dynamically on ticket size.
+
+- Handle universal error code translation for file locking.
+
+- fileserver needs to swap callback connections on a client IP change.
+
+- fileserver host package revised to reduce lock contention.
+
+- Rx has been fixed to count hard acks, thus opening the congestion window.
+
+- All servers support bound Rx sockets (on one interface).
+
+- namei fileserver no longer use lockf() to avoid range locking issues.
+
+- most binaries now support the -version switch.
+
+- backup suite fixes for 64 bit platforms.
+
+- volserver avoids holding holds during volume purges.
+
+- volserver avoids losing files on namei during vos zap.
+
+AIX:
+
+- fileserver now properly supports large files.
+
+- TSM updates for AIX 5
+
+- Kernel module avoids leaking Rx packets.
+
+- Avoid use of global ubik client structure in fileserver.
+
+- Update ubik call client interface to allow for prototyping.
+
+- audit logging fixes when stdarg does not provide integral va_list type.
+
+MacOS 10.4:
+
+- A bug where the client kernel module could free stack memory (which caused issues with 64 bit Intel most commonly) has been fixed.
+
+- Packaging fixes and updates.
+
+- Uninstaller added.
+
+- Fix large file support.
+
+Linux:
+
+- autoconf kernel feature testing has been restructured.
+
+- PAG garbage collection is enabled by default.
+
+- Kerberos updates for RHEL3.
+
+- Fix POSIX lock enrollment for older Linux kernels.
+
+- Updates for new 2.6 kernels.
+
+- Avoid deadlocks in put_inode handler.
+
+- Keyring-based PAG support.
+
+- Fixes to avoid getting better oops info in the kernel.
+
+Solaris:
+
+- Remove some kernel symbol bindings for symbols we don't use.
+
+- Cleanup for loopback mount of AFS on Solaris 10.
+
+- Avoid issues with stdio not supporting file descriptors above 255 on
+ Solaris 8 and lower in the fileserver.
--- /dev/null
+ OpenAFS Release Notes - Version 1.4.2
+ _________________________________________________________________
+All systems: Major bugfixes.
+ _________________________________________________________________
+
+* Bugfixes:
+
+All systems:
+
+* A bug in the namei volserver which could erroneously make a replicated or
+ moved volume go offline has been fixed.
+
+* Volume package users (fileserver, volserver, salvager) avoid using lockf to
+ avoid leaking byte range locks on volume internal files.
+
+MacOS 10.4:
+
+* A bug where the client kernel module could free stack memory (which caused
+ issues with 64 bit Intel most commonly) has been fixed.
+
+Linux:
+
+* A missing kernel feature test has been fixed.
+
+* group based PAG support is still enabled when possible.
+
+* ia32 syscall table support for amd64 has build fixes for modern kernels.
+
+Solaris:
+
+* fopen() is not safe for use with more than 255 file descriptors open;
+ Emulate it in the afsconf package so afsconf can be used in the fileserver.
+
+Windows:
+
+* DNS registration is disabled for the loopback adapter, and we make sure
+ Netbios is turned on.
+
+Since 1.4.1:
+
+All platforms:
+* Remove use of ubik_Call in the source code so prototypes are used.
+
+* Avoid synchrony in call from the fileserver to the ptserver.
+
+* Fix a bug in the backup suite when restoring.
+
+* fileserver and volserver now log for error conditions which may cause
+ exiting.
+
+* rx avoids a stack overrun when more packets are needed.
+
+* volserver avoids holding a lock too long when purging volumes.
+
+* volserver lock initialization fixes
+
+* volserver volume nuke fixes to avoid leaving files behind
+
+* fileserver avoids error when authenticating ptserver requests
+
+* fileserver no longer crashes when GetCPS fails
+
+* salvager enhancements to deal better with corrupt volumes for namei
+
+Unix:
+
+* aklog deals with KDCs which give "generic" replies to principals not
+ existing.
+
+* Fix bug in cache parameter autotuning
+
+RedHat:
+
+* packaging fixes
+
+Linux:
+
+* amd64 pthread library family updates.
+
+* autoconf fixes for kernel feature testing
+
+* keyring PAG support now only enabled if needed features are present
+ and other updates
+
+* inline a version of BUG() so we get better oopses
+
+AIX:
+
+* tsm is updated to work with the new AIX 5 interface.
+
+MacOS:
+
+* Cross compile fixes
+
+* Packaging improvements
+
+* Large file support fixed (Thanks to Chaskiel Grundman)
+
+* Fixes for Leopard seed.
+
+* Installer image updates
+
+Windows:
+
+* Removes race conditions and a deadlock introduced in 1.4.1
+
+* Fixes ANSI filename option.
+
+* Establishes new connections to file servers when
+ IP address configuration changes are detected.
+
+* Improved CIFS compatibility
+
+* Cache Manager optimizations
+
+* Fixes vlserver failover when mounting 'root.afs'
+ (Freelance mode disabled)
+
+* Installs help files in the correct location for use by afscreds.exe
+ and afs control panel.
+
+* Improve reporting of "over quota" and "disk full" errors.
+
+* Prevent crash when evaluating mount points to volumes that do
+ not exist
+
+* Removes auto-registration of AFS ID in foreign ptservers from
+ Integrated Logon DLL. This prevents crashes if the DLL is loaded
+ and unloaded prior to termination of the process.
+
+* SDK moved to \Program Files\OpenAFS\SDK
+
+* NSIS and WiX Installer Frameworks update to the latest versions
+
+* Improvements to the Kerberos Logon Integration
+
+* Prevents exception in Integrated Logon DLL during SysPrep
+
+* Prevents displays of MessageBox dialogs in response to Network Adapter
+ errors
+
+* Hard Dead and Connection Timeout values restricted to the CIFS Session
+ Timeout value.
+
+* Correct writing of BackConnectionsHostNames registry value.
+
+* Properly recycles Volume entries
+
+* The AFS Explorer Shell Extension always finds its resource library.
+
+* The export list for AFSAUTHENT.DLL has been corrected. (The AFS
+ plugin for NetIDMgr will no longer use 100% of CPU.)
+
+* Renaming files on Microsoft Vista Build 5536 works.
+
+* Better handling of "." directory in fs commands
+
+* Add OpenAFS License text to installers
+
+* fs setquota and fs mkmount commands behave the same as the UNIX
+ version
+Since 1.4.2-rc4 (1.4.2 released 7 Oct 2006)
+
+ * Disable DNS Registrations for the Loopback Adapter and make sure
+ that Netbios is turned on during installation.
+
+ * Track thread id on read/write locks for debugging
+ purposes
+
+ * Change trace log end of line to CR-LF so that the log can
+ be read with notepad.exe
+
+ * increase the number of buffers checked in any one pass
+ of the background synchronization thread to 1/10th per
+ five second period
+
+ * fix a stat cache entry reference count leak when the
+ file server returns VNOVNODE
+
+ * in an obscure error case, obtain the correct lock so
+ that when we free it we don't panic
+
Since 1.4.2-rc3: (1.4.2-rc4 released 16 Sep 2006)
* No changes
#else
#define AFS_GLOCK() AFS_MUTEX_ENTER(&afs_global_lock)
#endif
-#define AFS_GUNLOCK() (AFS_ASSERT_GLOCK(), mutex_exit(&afs_global_lock))
+#define AFS_GUNLOCK() { AFS_ASSERT_GLOCK(); mutex_exit(&afs_global_lock); }
#define ISAFS_GLOCK() mutex_mine(&afs_global_lock)
#else
extern long afs_global_owner;
afs_global_owner = osi_ThreadUnique(); \
MACRO_END
#define AFS_GUNLOCK() \
- (AFS_ASSERT_GLOCK(), afs_global_owner = 0, mutex_exit(&afs_global_lock))
+ { AFS_ASSERT_GLOCK(); afs_global_owner = 0; mutex_exit(&afs_global_lock); }
#define ISAFS_GLOCK() (osi_ThreadUnique() == afs_global_owner)
#endif /* AFS_SGI64_ENV */
#else /* MP */
#endif
RCSID
- ("$Header: /cvs/openafs/src/afs/LINUX/osi_groups.c,v 1.25.2.6 2006/09/06 20:57:17 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/LINUX/osi_groups.c,v 1.25.2.7 2006/09/27 21:14:28 shadow Exp $");
#include "afs/sysincludes.h"
#include "afsincludes.h"
return strcmp(key->description, description) == 0;
}
+static void afs_pag_destroy(struct key *key)
+{
+ afs_uint32 pag = key->payload.value;
+ struct unixuser *pu;
+
+ pu = afs_FindUser(pag, -1, READ_LOCK);
+ if (pu) {
+ pu->ct.EndTimestamp = 0;
+ pu->tokenTime = 0;
+ afs_PutUser(pu, READ_LOCK);
+ }
+}
+
struct key_type key_type_afs_pag =
{
.name = "afs_pag",
.describe = afs_pag_describe,
.instantiate = afs_pag_instantiate,
.match = afs_pag_match,
+ .destroy = afs_pag_destroy,
};
void osi_keyring_init(void)
#endif
if ((unsigned long)ptr < init_mm.start_code ||
(unsigned long)ptr > init_mm.end_data) {
+/* printk("address 0x%lx (from 0x%lx %d) is out of range in check_table. wtf?\n", (unsigned long)x, (unsigned long)ptr, i);*/
continue;
}
for (offset = 0; offset < datalen; offset++, ptr++) {
if ((unsigned long)ptr < init_mm.start_code ||
(unsigned long)ptr > init_mm.end_data) {
+/* printk("address 0x%lx (from 0x%lx %d) is out of range in check_table. wtf?\n", (unsigned long)x, (unsigned long)ptr, i);*/
continue;
}
ret = check_table(P, ptr);
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/LINUX/osi_vfsops.c,v 1.29.2.17 2006/08/20 05:34:18 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/LINUX/osi_vfsops.c,v 1.29.2.18 2006/10/06 13:30:56 shadow Exp $");
#define __NO_VERSION__ /* don't define kernel_version in module.h */
#include <linux/module.h> /* early to avoid printf->printk mapping */
void
afs_destroy_inodecache(void)
{
- if (kmem_cache_destroy(afs_inode_cachep))
- printk(KERN_INFO "afs_inode_cache: not all structures were freed\n");
+ (void) kmem_cache_destroy(afs_inode_cachep);
}
#else
int
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/LINUX/osi_vnodeops.c,v 1.81.2.43 2006/08/13 16:50:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/LINUX/osi_vnodeops.c,v 1.81.2.46 2006/10/10 22:01:04 shadow Exp $");
#include "afs/sysincludes.h"
#include "afsincludes.h"
else {
osi_FlushPages(vcp, credp); /* ensure stale pages are gone */
AFS_GUNLOCK();
+#ifdef DO_SYNC_READ
+ code = do_sync_read(fp, buf, count, offp);
+#else
code = generic_file_read(fp, buf, count, offp);
+#endif
AFS_GLOCK();
}
code = -code;
else {
AFS_GUNLOCK();
+#ifdef DO_SYNC_READ
+ code = do_sync_write(fp, buf, count, offp);
+#else
code = generic_file_write(fp, buf, count, offp);
+#endif
AFS_GLOCK();
}
struct file_operations afs_file_fops = {
.read = afs_linux_read,
.write = afs_linux_write,
+#ifdef GENERIC_FILE_AIO_READ
+ .aio_read = generic_file_aio_read,
+ .aio_write = generic_file_aio_write,
+#endif
#ifdef HAVE_UNLOCKED_IOCTL
.unlocked_ioctl = afs_unlocked_xioctl,
#else
struct vcache *vcp = VTOAFS(ip);
AFS_GLOCK();
- ObtainWriteLock(&vcp->lock, 537);
(void) afs_InactiveVCache(vcp, NULL);
- ReleaseWriteLock(&vcp->lock);
AFS_GUNLOCK();
iput(ip);
#include <limits.h>
#include <assert.h>
#include <stdarg.h>
+#if !defined(AFS_USR_DARWIN_ENV) && !defined(AFS_USR_FBSD_ENV) /* must be included after KERNEL undef'd */
#include <setjmp.h>
+#endif
#ifdef AFS_USR_SUN5_ENV
#include <signal.h>
#define AFS_USR_UNDEF_KERNEL_ENV 1
#endif
#include <errno.h>
+#include <setjmp.h>
#include <sys/param.h>
#include <sys/types.h>
#include <sys/socket.h>
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_create.c,v 1.16.2.7 2005/10/15 14:24:27 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_create.c,v 1.16.2.9 2006/10/13 05:15:58 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
#include "afs/afs_cbqueue.h"
#include "afs/nfsclient.h"
#include "afs/afs_osidnlc.h"
+#include "afs/unified_afs.h"
/* question: does afs_create need to set CDirty in the adp or the avc?
* I think we can get away without it, but I'm not sure. Note that
(tc, code, &adp->fid, &treq, AFS_STATS_FS_RPCIDX_CREATEFILE,
SHARED_LOCK, NULL));
- if (code == EEXIST &&
+ if ((code == EEXIST || code == UAEEXIST) &&
#ifdef AFS_SGI64_ENV
!(flags & VEXCL)
#else /* AFS_SGI64_ENV */
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_call.c,v 1.74.2.14 2006/08/02 19:06:58 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_call.c,v 1.74.2.15 2006/10/11 13:24:39 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
#ifdef AFS_SPARC64_LINUX26_ENV
if (test_thread_flag(TIF_32BIT))
-#elif AFS_SPARC64_LINUX24_ENV
+#elif defined(AFS_SPARC64_LINUX24_ENV)
if (current->thread.flags & SPARC_FLAG_32BIT)
#elif defined(AFS_SPARC64_LINUX20_ENV)
if (current->tss.flags & SPARC_FLAG_32BIT)
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_osi.c,v 1.48.2.8 2006/09/22 11:20:34 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_osi.c,v 1.48.2.9 2006/09/27 21:14:27 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
#endif
#if defined(AFS_LINUX22_ENV)
-extern rwlock_t tasklist_lock __attribute__((weak));
void
afs_osi_TraverseProcTable()
{
+#if !defined(LINUX_KEYRING_SUPPORT)
+ extern rwlock_t tasklist_lock __attribute__((weak));
struct task_struct *p;
+
if (&tasklist_lock)
read_lock(&tasklist_lock);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
else
rcu_read_unlock();
#endif
+#endif
}
#endif
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/audit/audit.c,v 1.8.2.9 2006/07/31 18:15:34 shadow Exp $");
+ ("$Header: /cvs/openafs/src/audit/audit.c,v 1.8.2.12 2006/10/13 19:42:19 shadow Exp $");
#include <fcntl.h>
#include <stdarg.h>
*(afs_int32 *) bufferPtr = vaLong;
bufferPtr += sizeof(vaLong);
break;
- case AUD_LST: /* Ptr to another list */
- va_copy(vaLst, vaList);
- audmakebuf(audEvent, vaLst);
- va_end(vaLst);
- break;
case AUD_FID: /* AFSFid - contains 3 entries */
vaFid = (struct AFSFid *)va_arg(vaList, struct AFSFid *);
if (vaFid) {
}
static void
-printbuf(FILE *out, int rec, char *audEvent, afs_int32 errCode, va_list vaList)
+printbuf(FILE *out, int rec, char *audEvent, char *afsName, afs_int32 hostId,
+ afs_int32 errCode, va_list vaList)
{
int vaEntry;
int vaInt;
fprintf(out, "[%d] ", num);
}
- if (strcmp(audEvent, "VALST") != 0)
- fprintf(out, "EVENT %s CODE %d ", audEvent, errCode);
+ fprintf(out, "EVENT %s CODE %d ", audEvent, errCode);
+
+ if (afsName) {
+ hostAddr.s_addr = hostId;
+ fprintf(out, "NAME %s HOST %s ", afsName, inet_ntoa(hostAddr));
+ }
vaEntry = va_arg(vaList, int);
while (vaEntry != AUD_END) {
vaLong = va_arg(vaList, afs_int32);
fprintf(out, "LONG %d ", vaLong);
break;
- case AUD_LST: /* Ptr to another list */
- va_copy(vaLst, vaList);
- printbuf(out, 1, "VALST", 0, vaLst);
- va_end(vaLst);
- break;
case AUD_FID: /* AFSFid - contains 3 entries */
vaFid = va_arg(vaList, struct AFSFid *);
if (vaFid)
vaEntry = va_arg(vaList, int);
} /* end while */
- if (strcmp(audEvent, "VALST") != 0)
- fprintf(out, "\n");
+ fprintf(out, "\n");
}
#ifdef AFS_PTHREAD_ENV
/* The routine that acually does the audit call.
* ************************************************************************** */
int
-osi_audit(char *audEvent, /* Event name (15 chars or less) */
- afs_int32 errCode, /* The error code */
- ...)
+osi_audit_internal(char *audEvent, /* Event name (15 chars or less) */
+ afs_int32 errCode, /* The error code */
+ char *afsName,
+ afs_int32 hostId,
+ va_list vaList)
{
#ifdef AFS_AIX32_ENV
afs_int32 code;
static char BUFFER[32768];
#endif
int result;
- va_list vaList;
+ va_list vaCopy;
#ifdef AFS_PTHREAD_ENV
/* i'm pretty sure all the server apps now call osi_audit_init(),
if (!osi_audit_all && !auditout)
return 0;
+ va_copy(vaCopy, vaList);
+
switch (errCode) {
case 0:
result = AUDIT_OK;
*(int *)bufferPtr = errCode;
bufferPtr += sizeof(errCode);
- va_start(vaList, errCode);
audmakebuf(audEvent, vaList);
#endif
if (osi_echo_trail) {
- va_start(vaList, errCode);
- printbuf(stdout, 0, audEvent, errCode, vaList);
+ printbuf(stdout, 0, audEvent, afsName, hostId, errCode, vaList);
}
+ va_end(vaCopy);
#ifdef AFS_AIX32_ENV
bufferLen = (int)((afs_int32) bufferPtr - (afs_int32) & BUFFER[0]);
code = auditlog(audEvent, result, BUFFER, bufferLen);
-#ifdef notdef
- if (code) {
- err = errno;
- code = auditlog("AFS_Aud_Fail", result, &err, sizeof(err));
- if (code)
- printf("Error while writing audit entry: %d.\n", errno);
- }
-#endif /* notdef */
#else
if (auditout) {
- va_start(vaList, errCode);
- printbuf(auditout, 0, audEvent, errCode, vaList);
+ printbuf(auditout, 0, audEvent, afsName, hostId, errCode, vaList);
fflush(auditout);
}
#endif
return 0;
}
+int
+osi_audit(char *audEvent, /* Event name (15 chars or less) */
+ afs_int32 errCode, /* The error code */
+ ...)
+{
+ va_list vaList;
+
+ if ((osi_audit_all < 0) || (osi_echo_trail < 0))
+ osi_audit_check();
+ if (!osi_audit_all && !auditout)
+ return 0;
+
+ va_start(vaList, errCode);
+ osi_audit_internal(audEvent, errCode, NULL, 0, vaList);
+ va_end(vaList);
+
+ return 0;
+}
/* ************************************************************************** */
/* Given a RPC call structure, this routine extracts the name and host id from the
osi_audit("AFS_Aud_NoCall", (-1), AUD_STR, audEvent, AUD_END);
}
va_start(vaList, errCode);
- osi_audit(audEvent, errCode, AUD_NAME, afsName, AUD_HOST, hostId,
- AUD_LST, vaList, AUD_END);
-
+ osi_audit_internal(audEvent, errCode, afsName, hostId, vaList);
+ va_end(vaList);
return 0;
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/auth/cellconfig.c,v 1.40.2.8 2006/09/17 05:01:56 shadow Exp $");
+ ("$Header: /cvs/openafs/src/auth/cellconfig.c,v 1.40.2.11 2006/10/10 20:29:18 shadow Exp $");
#include <afs/stds.h>
#include <afs/pthread_glock.h>
static int
GetCellUnix(struct afsconf_dir *adir)
{
- int rc;
+ char *rc;
char tbuffer[256];
- int fd;
+ char *p;
+ afsconf_FILE *fp;
strcompose(tbuffer, 256, adir->name, "/", AFSDIR_THISCELL_FILE, NULL);
- fd = open(tbuffer, O_RDONLY, 0);
- if (fd < 0) {
- return -1;
- } else {
- int sz;
-
- memset(tbuffer, 0, 256);
- sz = read(fd, tbuffer, 255);
- close(fd);
- if (sz > 0) {
- char *p = strchr(tbuffer, '\n');
- if (p)
- *p = '\0';
-
- adir->cellName = (char *)malloc(sz + 1);
- strncpy(adir->cellName, tbuffer, sz);
- }
+ fp = fopen(tbuffer, "r");
+ if (fp == 0) {
+ return -1;
}
+ rc = fgets(tbuffer, 256, fp);
+ fclose(fp);
+
+ p = strchr(tbuffer, '\n');
+ if (p)
+ *p = '\0';
+
+ adir->cellName = strdup(tbuffer);
return 0;
}
#endif
RCSID
- ("$Header: /cvs/openafs/src/auth/ktc.c,v 1.15.2.5 2006/07/20 23:35:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/auth/ktc.c,v 1.15.2.6 2006/10/06 12:44:40 shadow Exp $");
#if defined(UKERNEL)
#include "afs/sysincludes.h"
#include <afs/vice.h>
#ifdef AFS_AIX_ENV
#include <sys/lockf.h>
-#ifdef AFS_AIX51_ENV
-#include <sys/cred.h>
-#endif
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
static afs_uint32
curpag()
{
-#if defined(AFS_AIX51_ENV)
- afs_int32 pag;
-
- if (get_pag(PAG_AFS, &pag) < 0 || pag == 0)
- pag = NOPAG;
- return pag;
-#else
gid_t groups[NGROUPS_MAX];
afs_uint32 g0, g1;
afs_uint32 h, l, ret;
return -1;
}
return -1;
-#endif
}
if test "x$ac_cv_key_alloc_needs_struct_task" = "xyes"; then
AC_DEFINE([KEY_ALLOC_NEEDS_STRUCT_TASK], 1, [define if key_alloc takes a struct task *])
fi])
+
+AC_DEFUN([LINUX_DO_SYNC_READ], [
+ AC_MSG_CHECKING([for linux do_sync_read()])
+ AC_CACHE_VAL([ac_cv_linux_do_sync_read], [
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+ AC_TRY_KBUILD(
+[#include <linux/fs.h>],
+[do_sync_read(NULL, NULL, 0, NULL);],
+ ac_cv_linux_do_sync_read=yes,
+ ac_cv_linux_do_sync_read=no)
+ CPPFLAGS="$save_CPPFLAGS"])
+ AC_MSG_RESULT($ac_cv_linux_do_sync_read)
+ if test "x$ac_cv_linux_do_sync_read" = "xyes"; then
+ AC_DEFINE([DO_SYNC_READ], 1, [define if your kernel has do_sync_read()])
+ fi])
+
+AC_DEFUN([LINUX_GENERIC_FILE_AIO_READ], [
+ AC_MSG_CHECKING([for linux generic_file_aio_read()])
+ AC_CACHE_VAL([ac_cv_linux_generic_file_aio_read], [
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+ AC_TRY_KBUILD(
+[#include <linux/fs.h>],
+[generic_file_aio_read(NULL, NULL, 0, 0);],
+ ac_cv_linux_generic_file_aio_read=yes,
+ ac_cv_linux_generic_file_aio_read=no)
+ CPPFLAGS="$save_CPPFLAGS"])
+ AC_MSG_RESULT($ac_cv_linux_generic_file_aio_read)
+ if test "x$ac_cv_linux_generic_file_aio_read" = "xyes"; then
+ AC_DEFINE([GENERIC_FILE_AIO_READ], 1, [define if your kernel has generic_file_aio_read()])
+ fi])
+
YACC="byacc"
;;
- *nbsd2*|*nbsd3*)
+ *nbsd2*|*nbsd3*|*nbsd4*)
LEX="flex -l"
MT_CFLAGS='${XCFLAGS} -DAFS_PTHREAD_ENV -D_REENTRANT '
MT_LIBS="-lpthread" # XXX -pthread soon
AFS_component_version_number.o: AFS_component_version_number.c
-AFS_component_version_number.c:
+AFS_component_version_number.c: @TOP_OBJDIR@/src/config/Makefile.version
echo 'char cml_version_number[]="@(#) OpenAFS ${VERSION} built ' `date +"%Y-%m-%d"` '";' >AFS_component_version_number.c
echo 'char* AFSVersion = "${PACKAGE} ${VERSION}"; ' >>AFS_component_version_number.c
#define used in WinNT/2000 installation and program version display
AFSPRODUCT_VER_MAJOR=1
AFSPRODUCT_VER_MINOR=4
-AFSPRODUCT_VER_PATCH=0203
+AFSPRODUCT_VER_PATCH=205
AFSPRODUCT_VER_BUILD=0
AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
#define used in WinNT/2000 installation and program version display
AFSPRODUCT_VER_MAJOR=1
AFSPRODUCT_VER_MINOR=4
-AFSPRODUCT_VER_PATCH=0203
+AFSPRODUCT_VER_PATCH=205
AFSPRODUCT_VER_BUILD=0
AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
#define used in WinNT/2000 installation and program version display
AFSPRODUCT_VER_MAJOR=1
AFSPRODUCT_VER_MINOR=4
-AFSPRODUCT_VER_PATCH=0203
+AFSPRODUCT_VER_PATCH=205
AFSPRODUCT_VER_BUILD=0
AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
#define SYS_NAME_ID_i386_nbsd21 2525
#define SYS_NAME_ID_i386_nbsd30 2526
#define SYS_NAME_ID_amd64_nbsd20 2527
+#define SYS_NAME_ID_i386_nbsd40 2528
+#define SYS_NAME_ID_i386_nbsd50 2529
+#define SYS_NAME_ID_sparc64_nbsd30 2530
+#define SYS_NAME_ID_sparc64_nbsd40 2531
+#define SYS_NAME_ID_sparc64_nbsd50 2532
+#define SYS_NAME_ID_amd64_nbsd30 2533
+#define SYS_NAME_ID_amd64_nbsd40 2534
+#define SYS_NAME_ID_amd64_nbsd50 2535
+#define SYS_NAME_ID_alpha_nbsd30 2536
+#define SYS_NAME_ID_alpha_nbsd40 2537
+#define SYS_NAME_ID_alpha_nbsd50 2538
+#define SYS_NAME_ID_macppc_nbsd30 2539
+#define SYS_NAME_ID_macppc_nbsd40 2540
+#define SYS_NAME_ID_macppc_nbsd50 2541
#define SYS_NAME_ID_i386_obsd31 2600
#define SYS_NAME_ID_i386_obsd32 2601
/* define if your dops.d_revalidate takes a nameidata argument */
#undef DOP_REVALIDATE_TAKES_NAMEIDATA
+/* define if your kernel has do_sync_read() */
+#undef DO_SYNC_READ
+
/* define if you have redhat buildsystem */
#undef ENABLE_REDHAT_BUILDSYS
/* define if you want to want listvol switch */
#undef FULL_LISTVOL_SWITCH
+/* define if your kernel has generic_file_aio_read() */
+#undef GENERIC_FILE_AIO_READ
+
/* define if your get_sb_nodev needs a struct vfsmount argument */
#undef GET_SB_HAS_STRUCT_VFSMOUNT
#define AFS_X86_ENV 1
#define AFSLITTLE_ENDIAN 1
-#define SYS_NAME "i386_nbsd30"
-#define SYS_NAME_ID SYS_NAME_ID_i386_nbsd30
+#define SYS_NAME "i386_nbsd40"
+#define SYS_NAME_ID SYS_NAME_ID_i386_nbsd40
#ifndef UKERNEL
/* This section for kernel libafs compiles only */
#endif
RCSID
- ("$Header: /cvs/openafs/src/kauth/authclient.c,v 1.14.2.5 2006/09/15 23:19:27 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/kauth/authclient.c,v 1.14.2.6 2006/09/21 11:39:43 shadow Exp $");
#if defined(UKERNEL)
#include "afs/sysincludes.h"
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
- <string>1.4.2fc4</string>
+ <string>1.4.2</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.4.2fc4</string>
+ <string>1.4.2</string>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kernel.bsd</key>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
- <string>1.4.2fc4</string>
+ <string>1.4.2</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.4.2fc4</string>
+ <string>1.4.2</string>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kpi.bsd</key>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
- <string>1.4.2fc4</string>
+ <string>1.4.2</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.4.2fc4</string>
+ <string>1.4.2</string>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kpi.bsd</key>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
- <string>1.4.2fc4</string>
+ <string>1.4.2</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.4.2fc4</string>
+ <string>1.4.2</string>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kpi.bsd</key>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
- <string>1.4.2fc4</string>
+ <string>1.4.2</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.4.2fc4</string>
+ <string>1.4.2</string>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kpi.bsd</key>
->grand.central.org #GCO Public CellServDB 15 Oct 2005
+>grand.central.org #GCO Public CellServDB 08 Oct 2006
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
+137.208.3.33 #goya.wu-wien.ac.at
+137.208.7.57 #caravaggio.wu-wien.ac.at
+137.208.127.57 #vermeer.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
+>cgv.tugraz.at #CGV cell
+129.27.224.133 #phobos.cgv.tugraz.at
+129.27.224.134 #deimos.cgv.tugraz.at
+129.27.224.210 #trinculo.cgv.tugraz.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
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
+128.178.109.111 #kd1.epfl.ch
+128.178.109.112 #kd2.epfl.ch
+128.178.109.113 #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.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
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
+141.35.2.180 #afs00.rz.uni-jena.de
+141.35.2.181 #afs01.rz.uni-jena.de
+141.35.2.182 #afs02.rz.uni-jena.de
>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.19.10 #lyra.rrz.uni-koeln.de
134.95.67.97 #afs.thp.uni-koeln.de
-134.95.140.190 #rzkbserv.rrz.uni-koeln.de
+134.95.141.243 #agrippina.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)
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
+128.2.179.12 #nihao.sbp.ri.cmu.edu
+128.2.179.113 #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
129.170.16.22 #halley.dartmouth.edu
129.170.16.42 #oort.dartmouth.edu
129.170.16.43 #cygnusx1.dartmouth.edu
+>cs.fhm.edu #Department Computer Science Munich University Of Applied Science
+129.187.208.2 #srv1.informatik.fh-muenchen.de
>eecs.harvard.edu #Harvard - EECS
140.247.60.61 #zermelo.eecs.harvard.edu
140.247.60.83 #corfu.eecs.harvard.edu
134.79.18.25 #afsdb1.slac.stanford.edu
134.79.18.26 #afsdb2.slac.stanford.edu
134.79.18.27 #afsdb3.slac.stanford.edu
+>ucdavis.edu #University of California at Davis
+169.237.104.100 #afs1.ucdavis.edu
+169.237.235.176 #afs2.ucdavis.edu
+169.237.247.91 #afs3.ucdavis.edu
+>home.ucdavis.edu #University of California at Davis home directories
+169.237.105.91 #home1.ucdavis.edu
+169.237.105.92 #home2.ucdavis.edu
+169.237.105.93 #home3.ucdavis.edu
+>physics.ucsb.edu #UC Santa Barbara, Physics Dept
+128.111.18.161 #ledzeppelin.physics.ucsb.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
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
+141.211.43.103 #linat03.grid.umich.edu
+141.211.43.104 #linat04.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
+>sph.umich.edu #University of Michigan -- School of Public Health
+141.211.50.41 #afssph0.sph.umich.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
+152.15.93.186 #as-ece1.uncc.edu
+152.15.181.175 #as-me1.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
>dapnia.saclay.cea.fr #CEA DAPNIA
132.166.32.7 #dphrsg.saclay.cea.fr
132.166.32.12 #dphrsl.saclay.cea.fr
+>grif.fr #GRIF cell
+192.54.208.18 #node03.datagrid.cea.fr
>in2p3.fr #IN2P3 production cell
134.158.232.11 #ccafsdb1.in2p3.fr
134.158.232.12 #ccafsdb2.in2p3.fr
192.84.134.75 #afsna.na.infn.it
>ba.infn.it #INFN, Sezione di Bari
193.206.185.235 #baafsserver.ba.infn.it
+193.206.185.236 #debsrv.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
>laroia.net #Laroia Networks
66.66.102.254 #supercore.laroia.net
>sinenomine.net #Sine Nomine Associates
-66.92.236.139 #afs.sinenomine.net
+192.204.203.218 #va.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
+209.234.76.75 #service-4.tproa.net
+209.234.76.76 #service-5.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
>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
+>kth.se #Royal Institute of Technology, Stockholm, Sweden
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
+130.237.24.11 #afs1.hallf.kth.se
+130.237.24.104 #afs2.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
+130.237.202.3 #afsdb1.isk.kth.se
+130.237.209.39 #ezri.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
193.2.120.2 #solkan.p-ng.si
>phy.bris.ac.uk #Bristol University - phyics
137.222.58.9 #afs1.phy.bris.ac.uk
+>inf.ed.ac.uk #School of Informatics, University of Edinburgh
+129.215.64.16 #afsdb0.inf.ed.ac.uk
+129.215.64.17 #afsdb1.inf.ed.ac.uk
+129.215.64.18 #afsdb2.inf.ed.ac.uk
+>ic.ac.uk #Imperial College London
+155.198.63.148 #icafs2.cc.ic.ac.uk
+155.198.63.149 #icafs1.cc.ic.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
--- /dev/null
+APPLE PUBLIC SOURCE LICENSE
+Version 2.0 - August 6, 2003
+
+Please read this License carefully before downloading this software.
+By downloading or using this software, you are agreeing to be bound by
+the terms of this License. If you do not or cannot agree to the terms
+of this License, please do not download or use the software.
+
+1. General; Definitions. This License applies to any program or other
+work which Apple Computer, Inc. ("Apple") makes publicly available and
+which contains a notice placed by Apple identifying such program or
+work as "Original Code" and stating that it is subject to the terms of
+this Apple Public Source License version 2.0 ("License"). As used in
+this License:
+
+1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is
+the grantor of rights, (i) claims of patents that are now or hereafter
+acquired, owned by or assigned to Apple and (ii) that cover subject
+matter contained in the Original Code, but only to the extent
+necessary to use, reproduce and/or distribute the Original Code
+without infringement; and (b) in the case where You are the grantor of
+rights, (i) claims of patents that are now or hereafter acquired,
+owned by or assigned to You and (ii) that cover subject matter in Your
+Modifications, taken alone or in combination with Original Code.
+
+1.2 "Contributor" means any person or entity that creates or
+contributes to the creation of Modifications.
+
+1.3 "Covered Code" means the Original Code, Modifications, the
+combination of Original Code and any Modifications, and/or any
+respective portions thereof.
+
+1.4 "Externally Deploy" means: (a) to sublicense, distribute or
+otherwise make Covered Code available, directly or indirectly, to
+anyone other than You; and/or (b) to use Covered Code, alone or as
+part of a Larger Work, in any way to provide a service, including but
+not limited to delivery of content, through electronic communication
+with a client other than You.
+
+1.5 "Larger Work" means a work which combines Covered Code or portions
+thereof with code not governed by the terms of this License.
+
+1.6 "Modifications" mean any addition to, deletion from, and/or change
+to, the substance and/or structure of the Original Code, any previous
+Modifications, the combination of Original Code and any previous
+Modifications, and/or any respective portions thereof. When code is
+released as a series of files, a Modification is: (a) any addition to
+or deletion from the contents of a file containing Covered Code;
+and/or (b) any new file or other representation of computer program
+statements that contains any part of Covered Code.
+
+1.7 "Original Code" means (a) the Source Code of a program or other
+work as originally made available by Apple under this License,
+including the Source Code of any updates or upgrades to such programs
+or works made available by Apple under this License, and that has been
+expressly identified by Apple as such in the header file(s) of such
+work; and (b) the object code compiled from such Source Code and
+originally made available by Apple under this License.
+
+1.8 "Source Code" means the human readable form of a program or other
+work that is suitable for making modifications to it, including all
+modules it contains, plus any associated interface definition files,
+scripts used to control compilation and installation of an executable
+(object code).
+
+1.9 "You" or "Your" means an individual or a legal entity exercising
+rights under this License. For legal entities, "You" or "Your"
+includes any entity which controls, is controlled by, or is under
+common control with, You, where "control" means (a) the power, direct
+or indirect, to cause the direction or management of such entity,
+whether by contract or otherwise, or (b) ownership of fifty percent
+(50%) or more of the outstanding shares or beneficial ownership of
+such entity.
+
+2. Permitted Uses; Conditions & Restrictions. Subject to the terms
+and conditions of this License, Apple hereby grants You, effective on
+the date You accept this License and download the Original Code, a
+world-wide, royalty-free, non-exclusive license, to the extent of
+Apple's Applicable Patent Rights and copyrights covering the Original
+Code, to do the following:
+
+2.1 Unmodified Code. You may use, reproduce, display, perform,
+internally distribute within Your organization, and Externally Deploy
+verbatim, unmodified copies of the Original Code, for commercial or
+non-commercial purposes, provided that in each instance:
+
+(a) You must retain and reproduce in all copies of Original Code the
+copyright and other proprietary notices and disclaimers of Apple as
+they appear in the Original Code, and keep intact all notices in the
+Original Code that refer to this License; and
+
+(b) You must include a copy of this License with every copy of Source
+Code of Covered Code and documentation You distribute or Externally
+Deploy, and You may not offer or impose any terms on such Source Code
+that alter or restrict this License or the recipients' rights
+hereunder, except as permitted under Section 6.
+
+2.2 Modified Code. You may modify Covered Code and use, reproduce,
+display, perform, internally distribute within Your organization, and
+Externally Deploy Your Modifications and Covered Code, for commercial
+or non-commercial purposes, provided that in each instance You also
+meet all of these conditions:
+
+(a) You must satisfy all the conditions of Section 2.1 with respect to
+the Source Code of the Covered Code;
+
+(b) You must duplicate, to the extent it does not already exist, the
+notice in Exhibit A in each file of the Source Code of all Your
+Modifications, and cause the modified files to carry prominent notices
+stating that You changed the files and the date of any change; and
+
+(c) If You Externally Deploy Your Modifications, You must make
+Source Code of all Your Externally Deployed Modifications either
+available to those to whom You have Externally Deployed Your
+Modifications, or publicly available. Source Code of Your Externally
+Deployed Modifications must be released under the terms set forth in
+this License, including the license grants set forth in Section 3
+below, for as long as you Externally Deploy the Covered Code or twelve
+(12) months from the date of initial External Deployment, whichever is
+longer. You should preferably distribute the Source Code of Your
+Externally Deployed Modifications electronically (e.g. download from a
+web site).
+
+2.3 Distribution of Executable Versions. In addition, if You
+Externally Deploy Covered Code (Original Code and/or Modifications) in
+object code, executable form only, You must include a prominent
+notice, in the code itself as well as in related documentation,
+stating that Source Code of the Covered Code is available under the
+terms of this License with information on how and where to obtain such
+Source Code.
+
+2.4 Third Party Rights. You expressly acknowledge and agree that
+although Apple and each Contributor grants the licenses to their
+respective portions of the Covered Code set forth herein, no
+assurances are provided by Apple or any Contributor that the Covered
+Code does not infringe the patent or other intellectual property
+rights of any other entity. Apple and each Contributor disclaim any
+liability to You for claims brought by any other entity based on
+infringement of intellectual property rights or otherwise. As a
+condition to exercising the rights and licenses granted hereunder, You
+hereby assume sole responsibility to secure any other intellectual
+property rights needed, if any. For example, if a third party patent
+license is required to allow You to distribute the Covered Code, it is
+Your responsibility to acquire that license before distributing the
+Covered Code.
+
+3. Your Grants. In consideration of, and as a condition to, the
+licenses granted to You under this License, You hereby grant to any
+person or entity receiving or distributing Covered Code under this
+License a non-exclusive, royalty-free, perpetual, irrevocable license,
+under Your Applicable Patent Rights and other intellectual property
+rights (other than patent) owned or controlled by You, to use,
+reproduce, display, perform, modify, sublicense, distribute and
+Externally Deploy Your Modifications of the same scope and extent as
+Apple's licenses under Sections 2.1 and 2.2 above.
+
+4. Larger Works. You may create a Larger Work by combining Covered
+Code with other code not governed by the terms of this License and
+distribute the Larger Work as a single product. In each such instance,
+You must make sure the requirements of this License are fulfilled for
+the Covered Code or any portion thereof.
+
+5. Limitations on Patent License. Except as expressly stated in
+Section 2, no other patent rights, express or implied, are granted by
+Apple herein. Modifications and/or Larger Works may require additional
+patent licenses from Apple which Apple may grant in its sole
+discretion.
+
+6. Additional Terms. You may choose to offer, and to charge a fee for,
+warranty, support, indemnity or liability obligations and/or other
+rights consistent with the scope of the license granted herein
+("Additional Terms") to one or more recipients of Covered Code.
+However, You may do so only on Your own behalf and as Your sole
+responsibility, and not on behalf of Apple or any Contributor. You
+must obtain the recipient's agreement that any such Additional Terms
+are offered by You alone, and You hereby agree to indemnify, defend
+and hold Apple and every Contributor harmless for any liability
+incurred by or claims asserted against Apple or such Contributor by
+reason of any such Additional Terms.
+
+7. Versions of the License. Apple may publish revised and/or new
+versions of this License from time to time. Each version will be given
+a distinguishing version number. Once Original Code has been published
+under a particular version of this License, You may continue to use it
+under the terms of that version. You may also choose to use such
+Original Code under the terms of any subsequent version of this
+License published by Apple. No one other than Apple has the right to
+modify the terms applicable to Covered Code created under this
+License.
+
+8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in
+part pre-release, untested, or not fully tested works. The Covered
+Code may contain errors that could cause failures or loss of data, and
+may be incomplete or contain inaccuracies. You expressly acknowledge
+and agree that use of the Covered Code, or any portion thereof, is at
+Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND
+WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND
+APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE
+PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM
+ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF
+MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR
+PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD
+PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST
+INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE
+FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,
+THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR
+ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO
+ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE
+AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.
+You acknowledge that the Covered Code is not intended for use in the
+operation of nuclear facilities, aircraft navigation, communication
+systems, or air traffic control machines in which case the failure of
+the Covered Code could lead to death, personal injury, or severe
+physical or environmental damage.
+
+9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO
+EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,
+SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING
+TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR
+ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,
+TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF
+APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY
+REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF
+INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY
+TO YOU. In no event shall Apple's total liability to You for all
+damages (other than as may be required by applicable law) under this
+License exceed the amount of fifty dollars ($50.00).
+
+10. Trademarks. This License does not grant any rights to use the
+trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",
+"QuickTime", "QuickTime Streaming Server" or any other trademarks,
+service marks, logos or trade names belonging to Apple (collectively
+"Apple Marks") or to any trademark, service mark, logo or trade name
+belonging to any Contributor. You agree not to use any Apple Marks in
+or as part of the name of products derived from the Original Code or
+to endorse or promote products derived from the Original Code other
+than as expressly permitted by and in strict compliance at all times
+with Apple's third party trademark usage guidelines which are posted
+at http://www.apple.com/legal/guidelinesfor3rdparties.html.
+
+11. Ownership. Subject to the licenses granted under this License,
+each Contributor retains all rights, title and interest in and to any
+Modifications made by such Contributor. Apple retains all rights,
+title and interest in and to the Original Code and any Modifications
+made by or on behalf of Apple ("Apple Modifications"), and such Apple
+Modifications will not be automatically subject to this License. Apple
+may, at its sole discretion, choose to license such Apple
+Modifications under this License, or on different terms from those
+contained in this License or may choose not to license them at all.
+
+12. Termination.
+
+12.1 Termination. This License and the rights granted hereunder will
+terminate:
+
+(a) automatically without notice from Apple if You fail to comply with
+any term(s) of this License and fail to cure such breach within 30
+days of becoming aware of such breach;
+
+(b) immediately in the event of the circumstances described in Section
+13.5(b); or
+
+(c) automatically without notice from Apple if You, at any time during
+the term of this License, commence an action for patent infringement
+against Apple; provided that Apple did not first commence
+an action for patent infringement against You in that instance.
+
+12.2 Effect of Termination. Upon termination, You agree to immediately
+stop any further use, reproduction, modification, sublicensing and
+distribution of the Covered Code. All sublicenses to the Covered Code
+which have been properly granted prior to termination shall survive
+any termination of this License. Provisions which, by their nature,
+should remain in effect beyond the termination of this License shall
+survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,
+12.2 and 13. No party will be liable to any other for compensation,
+indemnity or damages of any sort solely as a result of terminating
+this License in accordance with its terms, and termination of this
+License will be without prejudice to any other right or remedy of
+any party.
+
+13. Miscellaneous.
+
+13.1 Government End Users. The Covered Code is a "commercial item" as
+defined in FAR 2.101. Government software and technical data rights in
+the Covered Code include only those rights customarily provided to the
+public as defined in this License. This customary commercial license
+in technical data and software is provided in accordance with FAR
+12.211 (Technical Data) and 12.212 (Computer Software) and, for
+Department of Defense purchases, DFAR 252.227-7015 (Technical Data --
+Commercial Items) and 227.7202-3 (Rights in Commercial Computer
+Software or Computer Software Documentation). Accordingly, all U.S.
+Government End Users acquire Covered Code with only those rights set
+forth herein.
+
+13.2 Relationship of Parties. This License will not be construed as
+creating an agency, partnership, joint venture or any other form of
+legal association between or among You, Apple or any Contributor, and
+You will not represent to the contrary, whether expressly, by
+implication, appearance or otherwise.
+
+13.3 Independent Development. Nothing in this License will impair
+Apple's right to acquire, license, develop, have others develop for
+it, market and/or distribute technology or products that perform the
+same or similar functions as, or otherwise compete with,
+Modifications, Larger Works, technology or products that You may
+develop, produce, market or distribute.
+
+13.4 Waiver; Construction. Failure by Apple or any Contributor to
+enforce any provision of this License will not be deemed a waiver of
+future enforcement of that or any other provision. Any law or
+regulation which provides that the language of a contract shall be
+construed against the drafter will not apply to this License.
+
+13.5 Severability. (a) If for any reason a court of competent
+jurisdiction finds any provision of this License, or portion thereof,
+to be unenforceable, that provision of the License will be enforced to
+the maximum extent permissible so as to effect the economic benefits
+and intent of the parties, and the remainder of this License will
+continue in full force and effect. (b) Notwithstanding the foregoing,
+if applicable law prohibits or restricts You from fully and/or
+specifically complying with Sections 2 and/or 3 or prevents the
+enforceability of either of those Sections, this License will
+immediately terminate and You must immediately discontinue any use of
+the Covered Code and destroy all copies of it that are in your
+possession or control.
+
+13.6 Dispute Resolution. Any litigation or other dispute resolution
+between You and Apple relating to this License shall take place in the
+Northern District of California, and You and Apple hereby consent to
+the personal jurisdiction of, and venue in, the state and federal
+courts within that District with respect to this License. The
+application of the United Nations Convention on Contracts for the
+International Sale of Goods is expressly excluded.
+
+13.7 Entire Agreement; Governing Law. This License constitutes the
+entire agreement between the parties with respect to the subject
+matter hereof. This License shall be governed by the laws of the
+United States and the State of California, except that body of
+California law concerning conflicts of law.
+
+Where You are located in the province of Quebec, Canada, the following
+clause applies: The parties hereby confirm that they have requested
+that this License and all related documents be drafted in English. Les
+parties ont exige que le present contrat et tous les documents
+connexes soient rediges en anglais.
+
+EXHIBIT A.
+
+"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights
+Reserved.
+
+This file contains Original Code and/or Modifications of Original Code
+as defined in and that are subject to the Apple Public Source License
+Version 2.0 (the 'License'). You may not use this file except in
+compliance with the License. Please obtain a copy of the License at
+http://www.opensource.apple.com/apsl/ and read it before using this
+file.
+
+The Original Code and all software distributed under the License are
+distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+Please see the License for the specific language governing rights and
+limitations under the License."
--- /dev/null
+>grand.central.org #GCO Public CellServDB 08 Oct 2006
+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 #goya.wu-wien.ac.at
+137.208.7.57 #caravaggio.wu-wien.ac.at
+137.208.127.57 #vermeer.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
+>cgv.tugraz.at #CGV cell
+129.27.224.133 #phobos.cgv.tugraz.at
+129.27.224.134 #deimos.cgv.tugraz.at
+129.27.224.210 #trinculo.cgv.tugraz.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.109.111 #kd1.epfl.ch
+128.178.109.112 #kd2.epfl.ch
+128.178.109.113 #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
+>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.180 #afs00.rz.uni-jena.de
+141.35.2.181 #afs01.rz.uni-jena.de
+141.35.2.182 #afs02.rz.uni-jena.de
+>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.10 #lyra.rrz.uni-koeln.de
+134.95.67.97 #afs.thp.uni-koeln.de
+134.95.141.243 #agrippina.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.179.12 #nihao.sbp.ri.cmu.edu
+128.2.179.113 #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
+>cs.fhm.edu #Department Computer Science Munich University Of Applied Science
+129.187.208.2 #srv1.informatik.fh-muenchen.de
+>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
+>ucdavis.edu #University of California at Davis
+169.237.104.100 #afs1.ucdavis.edu
+169.237.235.176 #afs2.ucdavis.edu
+169.237.247.91 #afs3.ucdavis.edu
+>home.ucdavis.edu #University of California at Davis home directories
+169.237.105.91 #home1.ucdavis.edu
+169.237.105.92 #home2.ucdavis.edu
+169.237.105.93 #home3.ucdavis.edu
+>physics.ucsb.edu #UC Santa Barbara, Physics Dept
+128.111.18.161 #ledzeppelin.physics.ucsb.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.103 #linat03.grid.umich.edu
+141.211.43.104 #linat04.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
+>sph.umich.edu #University of Michigan -- School of Public Health
+141.211.50.41 #afssph0.sph.umich.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.93.186 #as-ece1.uncc.edu
+152.15.181.175 #as-me1.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
+>grif.fr #GRIF cell
+192.54.208.18 #node03.datagrid.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
+193.206.185.236 #debsrv.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
+192.204.203.218 #va.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
+209.234.76.75 #service-4.tproa.net
+209.234.76.76 #service-5.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
+>kth.se #Royal Institute of Technology, Stockholm, Sweden
+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.11 #afs1.hallf.kth.se
+130.237.24.104 #afs2.hallf.kth.se
+>isk.kth.se #Royal Institute of Technology, ISK
+130.237.202.3 #afsdb1.isk.kth.se
+130.237.209.39 #ezri.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
+>inf.ed.ac.uk #School of Informatics, University of Edinburgh
+129.215.64.16 #afsdb0.inf.ed.ac.uk
+129.215.64.17 #afsdb1.inf.ed.ac.uk
+129.215.64.18 #afsdb2.inf.ed.ac.uk
+>ic.ac.uk #Imperial College London
+155.198.63.148 #icafs2.cc.ic.ac.uk
+155.198.63.149 #icafs1.cc.ic.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
--- /dev/null
+Following are the md5 hashes of all the cellservdb's shipped with
+macos x openafs releases prior to 1.2.7. No newer files need to be
+added to this file, since the way CellServDB files are managed changed
+in 1.2.7
+MD5 (1.0.4/CellServDB) = 4ac0ebd85f6790cdd64d61ff85e5a3f7
+MD5 (1.1.0/CellServDB) = 122a61939725a7b7175ab79816cf4ebf
+MD5 (1.1.1/CellServDB) = 122a61939725a7b7175ab79816cf4ebf
+MD5 (1.2.0/CellServDB) = 122a61939725a7b7175ab79816cf4ebf
+MD5 (1.2.1/CellServDB) = 122a61939725a7b7175ab79816cf4ebf
+MD5 (1.2.2a/CellServDB) = f19fe18f0f4fc3910a0354bfd479b217
+MD5 (1.2.3/CellServDB) = f19fe18f0f4fc3910a0354bfd479b217
+MD5 (1.2.4/CellServDB) = ad94cdff3fcfbd1763099032dd3a0c84
+MD5 (1.2.5/CellServDB) = ad94cdff3fcfbd1763099032dd3a0c84
+MD5 (1.2.6/CellServDB) = 66ad76e99c0f88a7e113c1ccce83819a
--- /dev/null
+#!/bin/sh
+majorvers=`uname -r | sed 's/\..*//'`
+echo "InstallationCheck: os release is $majorvers"
+if [ $majorvers -ne 8 ]; then
+echo "InstallationCheck: not ok"
+ exit 112
+fi
+
+echo "InstallationCheck: ok"
+exit 0
--- /dev/null
+"16" = "This OpenAFS release requires Tiger (10.4)"
--- /dev/null
+{\rtf1\mac\ansicpg10000\cocoartf100
+{\fonttbl\f0\fswiss\fcharset77 Helvetica;\f1\fnil\fcharset77 HelveticaNeue-CondensedBlack;\f2\fswiss\fcharset77 ArialMT;
+}
+{\colortbl;\red255\green255\blue255;}
+\margl1440\margr1440\vieww10620\viewh8860\viewkind0
+\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
+
+\f0\fs20 \cf0 IBM Public License Version 1.0\
+ \
+
+\f1 THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS IBM\
+ PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF\
+ THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.\
+
+\f0\fs16 \
+
+\fs20 1. DEFINITIONS\
+ \
+ "Contribution" means:\
+ a) in the case of International Business Machines Corporation ("IBM"),\
+ the Original Program, and\
+ \
+ b) in the case of each Contributor,\
+ \
+ i) changes to the Program, and\
+ \
+ ii) additions to the Program;\
+ \
+ where such changes and/or additions to the Program originate from and\
+ are distributed by that particular Contributor. A Contribution\
+ 'originates' from a Contributor if it was added to the Program by\
+ such Contributor itself or anyone acting on such Contributor's\
+ behalf. Contributions do not include additions to the Program\
+ which: (i) are separate modules of software distributed in\
+ conjunction with the Program under their own license agreement,\
+ and (ii) are not derivative works of the Program.\
+ \
+ "Contributor" means IBM and any other entity that distributes the\
+ Program.\
+ \
+ "Licensed Patents " mean patent claims licensable by a Contributor\
+ which are necessarily infringed by the use or sale of its Contribution\
+ alone or when combined with the Program.\
+ \
+ "Original Program" means the original version of the software\
+ accompanying this Agreement as released by IBM, including source code,\
+ object code and documentation, if any.\
+ \
+ "Program" means the Original Program and Contributions.\
+ \
+ "Recipient" means anyone who receives the Program under this\
+ Agreement, including all Contributors.\
+ \
+ 2. GRANT OF RIGHTS\
+ a) Subject to the terms of this Agreement, each Contributor hereby\
+ grants Recipient a non-exclusive, worldwide, royalty-free\
+ copyright license to reproduce, prepare derivative works of,\
+ publicly display, publicly perform, distribute and sublicense the\
+ Contribution of such Contributor, if any, and such derivative\
+ works, in source code and object code form.\
+ \
+ b) Subject to the terms of this Agreement, each Contributor hereby\
+ grants Recipient a non-exclusive, worldwide, royalty-free patent\
+ license under Licensed Patents to make, use, sell, offer to sell,\
+ import and otherwise transfer the Contribution of such\
+ Contributor, if any, in source code and object code form. This\
+ patent license shall apply to the combination of the Contribution\
+ and the Program if, at the time the Contribution is added by the\
+ Contributor, such addition of the Contribution causes such\
+ combination to be covered by the Licensed Patents. The patent\
+ license shall not apply to any other combinations which include\
+ the Contribution. No hardware per se is licensed hereunder.\
+ \
+ c) Recipient understands that although each Contributor grants the\
+ licenses to its Contributions set forth herein, no assurances are\
+ provided by any Contributor that the Program does not infringe the\
+ patent or other intellectual property rights of any other entity.\
+ Each Contributor disclaims any liability to Recipient for claims\
+ brought by any other entity based on infringement of intellectual\
+ property rights or otherwise. As a condition to exercising the\
+ rights and licenses granted hereunder, each Recipient hereby\
+ assumes sole responsibility to secure any other intellectual\
+ property rights needed, if any. For example, if a third party\
+ patent license is required to allow Recipient to distribute the\
+ Program, it is Recipient's responsibility to acquire that license\
+ before distributing the Program.\
+ \
+ d) Each Contributor represents that to its knowledge it has sufficient\
+ copyright rights in its Contribution, if any, to grant the\
+ copyright license set forth in this Agreement.\
+ \
+ 3. REQUIREMENTS\
+ \
+ A Contributor may choose to distribute the Program in object code form\
+ under its own license agreement, provided that:\
+ a) it complies with the terms and conditions of this Agreement; and\
+ \
+ b) its license agreement:\
+ \
+ i) effectively disclaims on behalf of all Contributors all warranties\
+ and conditions, express and implied, including warranties or\
+ conditions of title and non-infringement, and implied warranties\
+ or conditions of merchantability and fitness for a particular\
+ purpose;\
+ \
+ ii) effectively excludes on behalf of all Contributors all liability\
+ for damages, including direct, indirect, special, incidental and\
+ consequential damages, such as lost profits;\
+ \
+ iii) states that any provisions which differ from this Agreement are\
+ offered by that Contributor alone and not by any other party; and\
+ \
+ iv) states that source code for the Program is available from such\
+ Contributor, and informs licensees how to obtain it in a\
+ reasonable manner on or through a medium customarily used for\
+ software exchange.\
+ \
+ When the Program is made available in source code form:\
+ a) it must be made available under this Agreement; and\
+ \
+ b) a copy of this Agreement must be included with each copy of the\
+ Program.\
+ \
+ Each Contributor must include the following in a conspicuous location\
+ in the Program:\
+ \
+ Copyright \'a9 \{date here\}, International Business Machines Corporation\
+ and others. All Rights Reserved.\
+ \
+ In addition, each Contributor must identify itself as the originator\
+ of its Contribution, if any, in a manner that reasonably allows\
+ subsequent Recipients to identify the originator of the Contribution.\
+ \
+ 4. COMMERCIAL DISTRIBUTION\
+ \
+ Commercial distributors of software may accept certain\
+ responsibilities with respect to end users, business partners and the\
+ like. While this license is intended to facilitate the commercial use\
+ of the Program, the Contributor who includes the Program in a\
+ commercial product offering should do so in a manner which does not\
+ create potential liability for other Contributors. Therefore, if a\
+ Contributor includes the Program in a commercial product offering,\
+ such Contributor ("Commercial Contributor") hereby agrees to defend\
+ and indemnify every other Contributor ("Indemnified Contributor")\
+ against any losses, damages and costs (collectively "Losses") arising\
+ from claims, lawsuits and other legal actions brought by a third party\
+ against the Indemnified Contributor to the extent caused by the acts\
+ or omissions of such Commercial Contributor in connection with its\
+ distribution of the Program in a commercial product offering. The\
+ obligations in this section do not apply to any claims or Losses\
+ relating to any actual or alleged intellectual property infringement.\
+ In order to qualify, an Indemnified Contributor must: a) promptly\
+ notify the Commercial Contributor in writing of such claim, and b)\
+ allow the Commercial Contributor to control, and cooperate with the\
+ Commercial Contributor in, the defense and any related settlement\
+ negotiations. The Indemnified Contributor may participate in any such\
+ claim at its own expense.\
+ \
+ For example, a Contributor might include the Program in a commercial\
+ product offering, Product X. That Contributor is then a Commercial\
+ Contributor. If that Commercial Contributor then makes performance\
+ claims, or offers warranties related to Product X, those performance\
+ claims and warranties are such Commercial Contributor's responsibility\
+ alone. Under this section, the Commercial Contributor would have to\
+ defend claims against the other Contributors related to those\
+ performance claims and warranties, and if a court requires any other\
+ Contributor to pay any damages as a result, the Commercial Contributor\
+ must pay those damages.\
+ \
+ 5. NO WARRANTY\
+ \
+
+\f1 EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS\
+ PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\
+ KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY\
+ WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY\
+ OR FITNESS FOR A PARTICULAR PURPOSE
+\f0 . Each Recipient is solely\
+ responsible for determining the appropriateness of using and\
+ distributing the Program and assumes all risks associated with its\
+ exercise of rights under this Agreement, including but not limited to\
+ the risks and costs of program errors, compliance with applicable\
+ laws, damage to or loss of data, programs or equipment, and\
+ unavailability or interruption of operations.\
+ \
+ 6. DISCLAIMER OF LIABILITY\
+ \
+
+\f1 EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR\
+ ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,\
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING\
+ WITHOUT LIMITATION LOST PROFITS), 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 OR\
+ DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED\
+ HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\
+
+\f2\fs16 \
+
+\f0\fs20 7. GENERAL\
+ \
+ If any provision of this Agreement is invalid or unenforceable under\
+ applicable law, it shall not affect the validity or enforceability of\
+ the remainder of the terms of this Agreement, and without further\
+ action by the parties hereto, such provision shall be reformed to the\
+ minimum extent necessary to make such provision valid and enforceable.\
+ \
+ If Recipient institutes patent litigation against a Contributor with\
+ respect to a patent applicable to software (including a cross-claim or\
+ counterclaim in a lawsuit), then any patent licenses granted by that\
+ Contributor to such Recipient under this Agreement shall terminate as\
+ of the date such litigation is filed. In addition, If Recipient\
+ institutes patent litigation against any entity (including a\
+ cross-claim or counterclaim in a lawsuit) alleging that the Program\
+ itself (excluding combinations of the Program with other software or\
+ hardware) infringes such Recipient's patent(s), then such Recipient's\
+ rights granted under Section 2(b) shall terminate as of the date such\
+ litigation is filed.\
+ \
+ All Recipient's rights under this Agreement shall terminate if it\
+ fails to comply with any of the material terms or conditions of this\
+ Agreement and does not cure such failure in a reasonable period of\
+ time after becoming aware of such noncompliance. If all Recipient's\
+ rights under this Agreement terminate, Recipient agrees to cease use\
+ and distribution of the Program as soon as reasonably practicable.\
+ However, Recipient's obligations under this Agreement and any licenses\
+ granted by Recipient relating to the Program shall continue and\
+ survive.\
+ \
+ IBM may publish new versions (including revisions) of this Agreement\
+ from time to time. Each new version of the Agreement will be given a\
+ distinguishing version number. The Program (including Contributions)\
+ may always be distributed subject to the version of the Agreement\
+ under which it was received. In addition, after a new version of the\
+ Agreement is published, Contributor may elect to distribute the\
+ Program (including its Contributions) under the new version. No one\
+ other than IBM has the right to modify this Agreement. Except as\
+ expressly stated in Sections 2(a) and 2(b) above, Recipient receives\
+ no rights or licenses to the intellectual property of any Contributor\
+ under this Agreement, whether expressly, by implication, estoppel or\
+ otherwise. All rights in the Program not expressly granted under this\
+ Agreement are reserved.\
+ \
+ This Agreement is governed by the laws of the State of New York and\
+ the intellectual property laws of the United States of America. No\
+ 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.\
+}
--- /dev/null
+# Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
+#
+# @APPLE_LICENSE_HEADER_START@
+#
+# This file contains Original Code and/or Modifications of Original Code
+# as defined in and that are subject to the Apple Public Source License
+# Version 2.0 (the 'License'). You may not use this file except in
+# compliance with the License. Please obtain a copy of the License at
+# http://www.opensource.apple.com/apsl/ and read it before using this
+# file.
+#
+# The Original Code and all software distributed under the License are
+# distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+# EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+# INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+# Please see the License for the specific language governing rights and
+# limitations under the License.
+#
+# @APPLE_LICENSE_HEADER_END@
+
+# We assume the either we are in src/packaging/MacOS (so ../.. should work
+# with #include <afs/sysctl.h>, or we are in a directory where configure
+# was run, so the afs/sysctl.h should be in the include subdirectory
+AFSINCLUDE = -I../.. -Iinclude
+CFLAGS = -Os $(AFSINCLUDE) $(ARCHFLAGS)
+LIBS = -framework Foundation
+ALL = afssettings
+DIR = $(shell dirname $(MAKEFILE_LIST))
+
+all: $(ALL)
+
+afssettings : $(DIR)/afssettings.m
+ cc $(CFLAGS) -o $@ $^ $(LIBS)
+
+clean:
+ @rm -f $(ALL)
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IFPkgDescriptionDeleteWarning</key>
+ <string></string>
+ <key>IFPkgDescriptionDescription</key>
+ <string>Mac OS X version of OpenAFS client and server.</string>
+ <key>IFPkgDescriptionTitle</key>
+ <string>OpenAFS</string>
+ <key>IFPkgDescriptionVersion</key>
+ <string>1.2.10</string>
+</dict>
+</plist>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleGetInfoString</key>
+ <string>OpenAFS 1.4.2</string>
+ <key>CFBundleIdentifier</key>
+ <string>org.openafs.OpenAFS.pkg</string>
+ <key>CFBundleName</key>
+ <string>OpenAFS</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.4.2</string>
+ <key>IFMajorVersion</key>
+ <integer>1</integer>
+ <key>IFMinorVersion</key>
+ <integer>4</integer>
+ <key>IFPkgFlagAllowBackRev</key>
+ <false/>
+ <key>IFPkgFlagAuthorizationAction</key>
+ <string>RootAuthorization</string>
+ <key>IFPkgFlagBackgroundAlignment</key>
+ <string>bottomright</string>
+ <key>IfPkgFlagBackgroundScaling</key>
+ <string>proportional</string>
+ <key>IFPkgFlagDefaultLocation</key>
+ <string>/</string>
+ <key>IFPkgFlagInstallFat</key>
+ <false/>
+ <key>IFPkgFlagIsRequired</key>
+ <false/>
+ <key>IFPkgFlagRelocatable</key>
+ <false/>
+ <key>IFPkgFlagRestartAction</key>
+ <string>NoRestart</string>
+ <key>IFPkgFlagRootVolumeOnly</key>
+ <true/>
+ <key>IFPkgFlagUpdateInstalledLanguages</key>
+ <false/>
+ <key>IFPkgFlagUseUserMask</key>
+ <false/>
+ <key>IFPkgFormatVersion</key>
+ <real>0.10000000149011612</real>
+</dict>
+</plist>
--- /dev/null
+Title OpenAFS
+Version 1.4.2
+Description The OpenAFS distributed filesystem. This package installs an almost-ready-to-run client for OpenAFS. see http://www.openafs.org for more information.
+DefaultLocation /
+Diskname (null)
+DeleteWarning
+NeedsAuthorization YES
+DisableStop NO
+UseUserMask NO
+Application NO
+Relocatable NO
+Required NO
+InstallOnly NO
+RequiresReboot NO
+InstallFat NO
+rootVolumeOnly YES
--- /dev/null
+#!/bin/sh
+# Portions Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
+if [ -d /afs -a ! -h /afs ]; then
+ rmdir /afs
+fi
+majorvers=`uname -r | sed 's/\..*//'`
+if [ $majorvers -ge 7 ]; then
+ # /Network is now readonly, so put AFS in /afs; make sure /afs is a directory
+ if [ -e /afs ]; then
+ if [ -h /afs -o ! -d /afs ]; then
+ rm -f /afs
+ mkdir /afs
+ fi
+ else
+ mkdir /afs
+ fi
+else
+ mkdir -p /Network/afs
+ if [ ! -h /afs ]; then
+ ln -s /Network/afs /afs
+ fi
+fi
+
+cd /var/db/openafs/etc
+
+if [ ! -f cacheinfo ]; then
+ cp cacheinfo.sample cacheinfo
+fi
+
+if [ `grep /Network/afs cacheinfo` ]; then
+ cat cacheinfo |sed s#/Network/afs#/afs# > cacheinfo.new
+ mv cacheinfo.new cacheinfo
+fi
+
+if [ ! -f ThisCell -a -f ThisCell.sample ]; then
+ cp ThisCell.sample ThisCell
+fi
+
+if [ ! -f config/afsd.options -a -f config/afsd.options.sample ]; then
+ cp config/afsd.options.sample config/afsd.options
+fi
+
+# testing case -- upgrading from pre 1.2.7, but .last file exists.
+# merge the .save and .last....
+if [ ! -f CellServDB -a -f CellServDB.save -a -f CellServDB.master.last ]; then
+ cp CellServDB.save CellServDB
+fi
+
+# upgrading between 2 post-1.2.7 releases (or the testing case)
+if [ -f CellServDB.master.last ]; then
+ if cmp -s CellServDB.master.last CellServDB.master ; then
+ echo No CellServDB updates
+ done=1
+ fi
+fi
+
+# the local changes were included in the update
+if [ -z "$done" -a -f CellServDB ]; then
+ if cmp -s CellServDB CellServDB.master ; then
+ echo CellServDB is up to date.
+ cp CellServDB.master CellServDB.master.last
+ if [ ! -f CellServDB ]; then
+ cp CellServDB.master CellServDB
+ fi
+ done=1
+ fi
+fi
+
+if [ -z "$done" ]; then
+ # there are local changes to be merged
+ if [ -f CellServDB -a -f CellServDB.master.last ]; then
+ echo Merging CellServDB entries....
+ perl $1/Contents/Resources/csrvdbmerge.pl
+ echo done
+ else
+ # this is a new install, or an upgrade from pre-1.2.7
+ echo "Installing new CellServDB"
+ cp CellServDB.master CellServDB.master.last
+ if [ ! -f CellServDB ]; then
+ cp CellServDB.master CellServDB
+ fi
+ fi
+fi
+
+if [ $majorvers -ge 7 ]; then
+ # make config/settings.plist if it doesn't exist
+ if [ ! -e config/settings.plist -a -e config/settings.plist.orig ]; then
+ cp config/settings.plist.orig config/settings.plist
+ fi
+elif [ -e config/afssettings ]; then
+ # turn off execution of afssettings
+ chmod a-x config/afssettings
+fi
+
+#here we should run tools which configure the client, and then if it's enabled:
+/Library/StartupItems/OpenAFS/OpenAFS start
+
--- /dev/null
+#!/bin/sh
+
+cd /var/db/openafs/etc
+# only do these checks if we're upgrading from a pre-1.2.7
+if [ -f CellServDB -a ! -f CellServDB.master ]; then
+ CK=`md5 CellServDB | awk '{ print $4 }'`
+ if grep -q $CK $1/Contents/Resources/CellServDB.list; then
+ # it matched one of our previously released files
+ echo Unmodified CellServDB -- not preserving
+ :
+ else
+ if [ ! -f CellServDB.master.last ]; then
+ echo Modified CellServDB -- saving as /var/db/openafs/etc/CellServDB.save
+ echo Please re-merge it manually -- this will not be required for future upgrades
+ fi
+ cp CellServDB CellServDB.save
+ fi
+fi
+if [ -f config/afsd.options -a -f config/afsd.options.sample ]; then
+ if cmp -s config/afsd.options config/afs.options.sample; then
+ echo Removing no-longer needed afsd.options file
+ rm -f config/afsd.options
+ fi
+fi
+
+/Library/StartupItems/OpenAFS/OpenAFS stop
--- /dev/null
+{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf100
+{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\margl1440\margr1440\vieww9000\viewh9000\viewkind0
+\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
+
+\f0\fs20 \cf0 This release of OpenAFS is targeted at MacOS 10.4.x.
+\
+Select a client cell name by editing /var/db/openafs/etc/ThisCell\
+\
+The included afssettings program is distributed under the Apple Public Source License, version 2.0. See http://www.opensource.apple.com/apsl/2.0.txt or the included file 2.0.txt.\
+\
+Reboot when all of this is done.}
--- /dev/null
+#!/usr/bin/perl -w
+# real Perl code begins here
+#
+# Adapted from Apple's uninstall-devtools.pl (Version 7 for Xcode Tools 1.2)
+#
+# BSD License: c.f. <http://www.opensource.org/licenses/bsd-license>
+#
+
+use strict;
+use File::Basename;
+
+use vars qw ($do_nothing $print_donothing_removals $receipts_dir $verbose $noisy_warnings);
+use vars qw ($suppress_spin $spin_counter $spin_state $spin_slower_downer);
+use vars qw (%exception_list $gen_dirs @gen_files @rmfiles @rmdirs @rmpkg);
+
+#----------------------------------------------------------------------------------------
+
+$do_nothing = 0;
+$print_donothing_removals = 1;
+$verbose = 1;
+$noisy_warnings = 0;
+
+# One of rm -rf in this script uses $receipts_dir -- change with care.
+$receipts_dir = "/Library/Receipts";
+
+%exception_list = (
+# '/usr/bin/aklog', '',
+);
+
+$gen_dirs = { };
+#$gen_dirs->{"/"}->{"Library"}->{"OpenAFS"}->{"Tools"} = {};
+
+@gen_files = (
+ "/var/db/openafs/etc/cacheinfo",
+ "/var/db/openafs/etc/ThisCell",
+ "/var/db/openafs/etc/config/afsd.options",
+ "/var/db/openafs/etc/CellServDB.save",
+ "/var/db/openafs/etc/CellServDB.master.last",
+ "/var/db/openafs/etc/CellServDB",
+ "/var/db/openafs/etc/config/settings.plist",
+);
+
+#----------------------------------------------------------------------------------------
+
+$| = 1;
+#if ($do_nothing == 0 && $< != 0)
+# {
+# die "ERROR: Must be run with root permissions--prefix command with 'sudo'.\n";
+# }
+
+sub main
+ {
+ # commandline args:
+ # 0: dir of packages to remove
+ # 1: flag indicating whether to keep package receipts
+ # 2: flag indicating whether to supress spin indicator
+
+ if (!@ARGV) {
+ use FindBin qw($Bin);
+ @ARGV = ("$Bin/..", 0, 0);
+ }
+ $suppress_spin = defined ($ARGV[2]) && $ARGV[2];
+
+ $spin_counter = 0;
+ $spin_state = 0;
+ spin_rate_slow ();
+
+ pre_print ();
+ print "Uninstalling OpenAFS package:\n\n";
+
+ remove_generated_files ();
+ remove_main_packages ();
+ remove_generated_directories ();
+
+ if ($do_nothing == 0) {
+ my @rmcmd = ('osascript', '-e', "do shell script \"/bin/rm -f @rmfiles; /bin/rmdir @rmdirs; /bin/rm -rf @rmpkg\" with administrator privileges");
+ system @rmcmd;
+ my $retcode = $? >> 8;
+ if ($retcode != 0) {
+ print_warning ("Warning: There may have been a problem uninstalling\n");
+ }
+ }
+
+ pre_print ();
+ print "\nFinished uninstalling.\n";
+ }
+
+sub remove_main_packages
+ {
+# opendir (DIR, $ARGV[0]) or die "ERROR: package directory $ARGV[0] not found\n";
+# my @pkglist = grep /\.pkg$/, readdir DIR;
+# closedir DIR;
+ my @pkglist = ("OpenAFS",
+ );
+
+ foreach (@pkglist)
+ {
+ s/\.pkg$//;
+ my $pkgname = $_;
+ my $pkgname_fullpath = "$receipts_dir/$pkgname.pkg";
+ my $pkgname_bom_fullpath = undef;
+
+ next if (! -d "$pkgname_fullpath" );
+
+ print_verbose ("Removing package $pkgname.pkg\n");
+
+ my $f = "$pkgname_fullpath/Contents/Resources/$pkgname.bom";
+ if (-f $f && -r $f) {
+ $pkgname_bom_fullpath = $f;
+ }
+
+ next if (!defined ($pkgname_bom_fullpath));
+
+ my $bomroot = "";
+ open (INFO, "$pkgname_fullpath/Contents/Info.plist") or next;
+ while (<INFO>) {
+ m/IFPkgFlagDefaultLocation/ or next;
+ $bomroot = <INFO>;
+ }
+ close (INFO);
+
+ $bomroot =~ />(.*)</;
+ $bomroot = $1;
+ $bomroot =~ s/^\/$//;
+
+ spin_rate_slow ();
+
+ open (LSBOM, "/usr/bin/lsbom -l -f -p f '$pkgname_bom_fullpath' |") or next;
+ while (<LSBOM>)
+ {
+ chomp;
+ m#^\.(/.*)$#;
+ next if (!defined ($1) || $1 eq "");
+ my $filename = $bomroot . $1;
+
+ remove_a_file ($filename);
+ }
+ close (LSBOM);
+
+ my $rooth = { };
+
+ open (LSBOM, "/usr/bin/lsbom -d -p f '$pkgname_bom_fullpath' |") or next;
+ while (<LSBOM>)
+ {
+ chomp;
+ m#^\.(/.*)$#;
+ next if (!defined ($1) || $1 eq "");
+ my $directory = $bomroot . $1;
+ if (-d $directory)
+ {
+ $rooth = add_directory_to_tree ($directory, $rooth);
+ }
+ else
+ {
+ if ($noisy_warnings)
+ {
+ print_warning ("Warning: \"$directory\" listed in BOM but not present on system.\n");
+ }
+ }
+ }
+ close (LSBOM);
+
+ spin_rate_fast ();
+ remove_empty_directories ($rooth, "/");
+
+ remove_package_receipts ("$pkgname.pkg") if (!defined ($ARGV[1]) || !$ARGV[1]) ;
+ }
+ }
+
+sub remove_generated_files
+ {
+ foreach (@gen_files)
+ {
+ remove_a_file ($_);
+ }
+ }
+
+sub remove_generated_directories
+ {
+ remove_empty_directories ($gen_dirs, "/");
+ }
+
+sub add_directory_to_tree
+ {
+ my $dir = shift;
+ my $rooth = shift;
+ my $p = $rooth;
+
+ my @pathcomp = split /\//, $dir;
+
+ progress_point ();
+ foreach (@pathcomp)
+ {
+ my $cur_name = $_;
+ if ($cur_name eq "" || !defined ($cur_name))
+ {
+ $cur_name = "/";
+ }
+ if (!defined ($p->{"$cur_name"}))
+ {
+ $p->{$cur_name} = { };
+ }
+ $p = $p->{$cur_name};
+ }
+ return $rooth;
+ }
+
+sub remove_empty_directories
+ {
+ my $rooth = shift;
+ my $path = shift;
+ my $children = (scalar (keys %{$rooth}));
+ my $dirs_remain = 0;
+
+ if ($children > 0)
+ {
+ foreach my $dirname (sort keys %{$rooth})
+ {
+ my $printpath;
+ $printpath = "$path/$dirname";
+ $printpath =~ s#^/*#/#;
+ remove_empty_directories ($rooth->{$dirname}, "$printpath");
+ $dirs_remain = 1 if (-d "$printpath");
+ }
+ }
+
+ if ($dirs_remain == 0)
+ {
+ maybe_remove_ds_store ("$path");
+ }
+
+ remove_a_dir ("$path");
+ }
+
+sub remove_a_file
+ {
+ my $fn = shift;
+ my $dirname = dirname ($fn);
+ my $basename = basename ($fn);
+ my $ufs_rsrc_file = "$dirname/._$basename";
+
+ progress_point ();
+ return if (!defined ($fn) || $fn eq "");
+
+ # Leave any files that are shared between packages alone.
+ if (defined($exception_list{$fn}))
+ {
+ if ($noisy_warnings)
+ {
+ print_warning ("Warning: file \"$fn\" intentionally not removed, even though it's in the BOM.\n");
+ }
+ return;
+ }
+
+ if (! -f $fn && ! -l $fn)
+ {
+ if ($noisy_warnings)
+ {
+ print_warning ("Warning: file \"$fn\" present in BOM but not found on disc.\n");
+ }
+ return;
+ }
+
+ if ($do_nothing == 1)
+ {
+ print_donothing ("rm $fn\n");
+ print_donothing ("rm $ufs_rsrc_file\n") if ( -f $ufs_rsrc_file);
+ }
+ else
+ {
+ unshift(@rmfiles, "$fn");
+ unshift(@rmfiles, "$fn") if ( -f $ufs_rsrc_file);
+ }
+ }
+
+sub remove_a_dir
+ {
+ my $dir = shift;
+
+ progress_point ();
+ return if (!defined ($dir) || $dir eq "" || $dir eq "/" || $dir eq "/usr");
+ if (! -d $dir)
+ {
+ if ($noisy_warnings)
+ {
+ print_warning ("Warning: directory \"$dir\" present in BOM but not found on disc.\n");
+ }
+ return;
+ }
+
+ if ($do_nothing == 1)
+ {
+ print_donothing ("rmdir $dir\n");
+ }
+ else
+ {
+ push(@rmdirs, "$dir");
+ }
+ }
+
+sub remove_package_receipts
+ {
+ my $pkgname = shift;
+ $pkgname =~ s#/##g; # There shouldn't be any path seps in the pkg name...
+ return if (!defined ($pkgname) || $pkgname eq ""
+ || $pkgname eq "." || $pkgname eq "..");
+
+ my $pkgdir = "$receipts_dir/$pkgname";
+ return if (!defined ($pkgdir) || $pkgdir eq "" || ! -d $pkgdir);
+
+ push(@rmpkg, "$pkgdir");
+ }
+
+
+sub maybe_remove_ds_store
+ {
+ my $path = shift;
+ my $filecount = 0;
+ return if (!defined ($path) || $path eq "" || $path eq "/" || $path eq "/usr");
+ return if (! -f "$path/.DS_Store");
+
+ open (LS, "/bin/ls -a '$path' |");
+ while (<LS>)
+ {
+ chomp;
+ next if (m#^\.$# || m#^\.\.$#);
+ $filecount++;
+ }
+ close (LS);
+
+ if ($filecount == 1 && -f "$path/.DS_Store")
+ {
+ remove_a_file ("$path/.DS_Store");
+ }
+ }
+
+sub print_donothing
+ {
+ my $msg = shift;
+ return if ($print_donothing_removals != 1);
+ pre_print ();
+ print $msg;
+ }
+
+sub print_verbose
+ {
+ my $msg = shift;
+ return if ($verbose != 1);
+ pre_print ();
+ print $msg;
+ }
+
+sub print_warning
+ {
+ my $msg = shift;
+ pre_print ();
+ print STDERR $msg;
+ }
+
+sub print_error
+ {
+ my $msg = shift;
+ pre_print ();
+ print STDERR $msg;
+ }
+
+sub pre_print
+ {
+ print " \b" unless ($suppress_spin);
+ }
+
+sub spin_rate_slow
+ {
+ $spin_slower_downer = 150;
+ }
+
+sub spin_rate_fast
+ {
+ $spin_slower_downer = 75;
+ }
+
+sub progress_point
+ {
+ return if ($suppress_spin);
+ $spin_counter++;
+ if (($spin_counter % $spin_slower_downer) == 0)
+ {
+ my $spin_chars = "|/-\\";
+ my $c = substr ($spin_chars, $spin_state % 4, 1);
+ $spin_state++;
+ print "\e[7m$c\e[m\b";
+ }
+ }
+
+main ();
+
+#----------------------------------------------------------------------------------------
--- /dev/null
+/*
+ * Copyright (c) 2003, 2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_LICENSE_HEADER_END@
+ */
+#import <Foundation/Foundation.h>
+#import <stdio.h>
+#import <err.h>
+#import <sys/types.h>
+#import <sys/mount.h>
+#import <sys/sysctl.h>
+#import <afs/sysctl.h>
+
+enum Type {
+ TypeNode = 0,
+ TypeNum,
+ TypeStr
+};
+
+typedef struct _setting {
+ NSString *key;
+ int selector;
+ enum Type type;
+ struct _setting *children;
+} Setting;
+
+Setting s_darwin_all[] = {
+ {@"RealModes", AFS_SC_DARWIN_ALL_REALMODES, TypeNum, NULL},
+ {NULL, 0, 0, NULL}
+};
+Setting s_darwin[] = {
+ {@"All", AFS_SC_DARWIN_ALL, TypeNode, s_darwin_all},
+ {@"Darwin12", AFS_SC_DARWIN_12, TypeNode, NULL},
+ {@"Darwin13", AFS_SC_DARWIN_13, TypeNode, NULL},
+ {@"Darwin14", AFS_SC_DARWIN_14, TypeNode, NULL},
+ {@"Darwin60", AFS_SC_DARWIN_60, TypeNode, NULL},
+ {@"Darwin70", AFS_SC_DARWIN_70, TypeNode, NULL},
+ {@"Darwin80", AFS_SC_DARWIN_80, TypeNode, NULL},
+ {@"Darwin90", AFS_SC_DARWIN_90, TypeNode, NULL},
+ {NULL, 0, 0, NULL}
+};
+Setting s_first[] = {
+ {@"All", AFS_SC_ALL, TypeNode, NULL},
+ {@"Darwin", AFS_SC_DARWIN, TypeNode, s_darwin},
+ {NULL, 0, 0, NULL}
+};
+Setting s_top = {NULL, -1, TypeNode, s_first};
+
+int oid[CTL_MAXNAME] = {CTL_VFS};
+NSString *path = @"/var/db/openafs/etc/config/settings.plist";
+
+char *oidString(int *oid, int len);
+void init(void);
+void walk(id obj, Setting *s, int level);
+
+void
+init(void)
+{
+ int oidmax[] = {CTL_VFS, VFS_GENERIC, VFS_MAXTYPENUM};
+ int oidvfs[] = {CTL_VFS, VFS_GENERIC, VFS_CONF, 0};
+ int max;
+ struct vfsconf conf;
+ size_t len;
+ int i;
+
+ len = sizeof(max);
+ if(sysctl(oidmax, 3, &max, &len, NULL, 0) < 0)
+ err(1, "sysctl VFS_MAXTYPENUM");
+ for(i = max; --i >= 0; ) {
+ oidvfs[3] = i;
+ len = sizeof(conf);
+ if(sysctl(oidvfs, 4, &conf, &len, NULL, 0) < 0)
+ continue;
+ if(strcmp("afs", conf.vfc_name) == 0) {
+ s_top.selector = conf.vfc_typenum;
+ break;
+ }
+ }
+ if(s_top.selector < 0)
+ errx(1, "AFS is not loaded");
+}
+
+char *
+oidString(int *oid, int len)
+{
+ static char buf[256];
+ char *cp = buf;
+
+ for(;;) {
+ sprintf(cp, "%d", *oid++);
+ if(--len <= 0)
+ break;
+ cp += strlen(cp);
+ *cp++ = '.';
+ }
+ return buf;
+}
+
+void
+walk(id obj, Setting *s, int level)
+{
+ Setting *child;
+ id newobj;
+ int intval;
+ const char *cp;
+ int level1 = level + 1;
+
+ oid[level] = s->selector;
+ switch(s->type) {
+ case TypeNode:
+ for(child = s->children; child->key; child++) {
+ if(child->type == TypeNode && !child->children)
+ continue;
+ newobj = [obj objectForKey: child->key];
+ if(newobj)
+ walk(newobj, child, level1);
+ }
+ break;
+ case TypeNum:
+ intval = [obj intValue];
+ if(sysctl(oid, level1, NULL, NULL, &intval, sizeof(intval)) < 0)
+ err(1, "sysctl %s => %d", oidString(oid, level1), intval);
+ break;
+ case TypeStr:
+ cp = [obj UTF8String];
+ if(sysctl(oid, level1, NULL, NULL, (void *)cp, strlen(cp)) < 0)
+ err(1, "sysctl %s => %s", oidString(oid, level1), cp);
+ break;
+ }
+}
+
+main()
+{
+ NSData *plistData;
+ id plist;
+ NSString *error;
+ NSPropertyListFormat format;
+ NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
+
+ init();
+ plistData = [NSData dataWithContentsOfFile: path];
+ if(plistData) {
+ plist = [NSPropertyListSerialization propertyListFromData: plistData
+ mutabilityOption: NSPropertyListImmutable
+ format: &format
+ errorDescription: &error
+ ];
+ if(plist)
+ walk(plist, &s_top, 1);
+ else
+ errx(1, "%s: %s", [path UTF8String], [error UTF8String]);
+ }
+
+ [pool release];
+ return 0;
+}
--- /dev/null
+#!/bin/sh
+# Portions Copyright (c) 2003, 2006 Apple Computer, Inc. All rights reserved.
+
+if [ -z "$1" ]; then
+ echo Usage: buildpkg binary-dir
+ echo ' or'
+ echo 'Usage: buildpkg [-firstpass] binary-dir'
+ echo ' (customize pkgroot)'
+ echo ' buildpkg [-secondpass]'
+ exit 1
+fi
+
+firstpass=yes
+secondpass=yes
+if [ "$1" = "-firstpass" ]; then
+ secondpass=no
+ shift
+elif [ "$1" = "-secondpass" ]; then
+ firstpass=no
+ shift
+fi
+
+BINDEST=`cd $1 && pwd`
+CURDIR=`pwd`
+RESSRC=`dirname $0`
+RESSRC=`cd $RESSRC && pwd`
+majorvers=`uname -r | sed 's/\..*//'`
+
+PKGROOT=$CURDIR/pkgroot
+PKGRES=$CURDIR/pkgres
+if [ $majorvers -ge 7 ]; then
+ SEP=:
+ package=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
+ if [ ! -x $package ]; then
+ echo "PackageMaker does not exist. Please run this script on a MacOS X system"
+ echo "with the DeveloperTools package installed"
+ exit 1
+ fi
+else
+ SEP=.
+ package=/usr/bin/package
+ if [ ! -f $package ]; then
+ echo "$package does not exist. Please run this script on a MacOS X system"
+ echo "with the BSD subsystem installed"
+ exit 1
+ fi
+ if grep -q 'set resDir = ""' $package ; then
+ echo $package is buggy.
+ echo remove the line \''set resDir = ""'\' from $package and try again
+ exit 1
+ fi
+fi
+
+if [ $firstpass = yes ]; then
+ if [ -x /usr/bin/curl ]; then
+ /usr/bin/curl -f -O http://dl.central.org/dl/cellservdb/CellServDB
+ fi
+
+ if [ ! -f CellServDB ]; then
+ echo "A CellServDB file must be placed in the working directory"
+ die=1
+ else
+ if grep -q 'GCO Public CellServDB' CellServDB ; then
+ touch CellServDB
+ else
+ echo "A proper CellServDB file must be placed in the working directory"
+ die=1
+ fi
+ fi
+ FILES="ReadMe.rtf License.rtf CellServDB.list OpenAFS.info OpenAFS.post_install OpenAFS.pre_upgrade csrvdbmerge.pl 2.0.txt"
+ for f in $FILES; do
+ if [ ! -f $RESSRC/$f ]; then
+ echo "file missing: " $RESSRC/$f
+ die=1
+ fi
+ done
+ if [ "$die" ]; then
+ echo "Correct above errors; then retry"
+ exit 1
+ fi
+ if [ ! -f $BINDEST/bin/translate_et ]; then
+ die=1
+ fi
+ if [ ! -f $BINDEST/root.client/usr/vice/etc/afs.kext/Contents/MacOS/afs ]; then
+ die=1
+ fi
+ if [ "$die" ]; then
+ echo $BINDEST " is not a valid binary dir. it should be the result of"
+ echo "make dest"
+ exit 1
+ fi
+
+ rm -rf $PKGROOT
+ mkdir $PKGROOT
+
+ mkdir -p $PKGROOT/Library
+ chown root${SEP}admin $PKGROOT
+ chmod 775 $PKGROOT $PKGROOT/Library
+ mkdir -p $PKGROOT/Library/OpenAFS/Tools
+ (cd $BINDEST && pax -rw * $PKGROOT/Library/OpenAFS/Tools)
+ cd $RESSRC
+ mkdir -p $PKGROOT/Library/StartupItems/OpenAFS
+ cp $BINDEST/root.client/usr/vice/etc/afs.rc $PKGROOT/Library/StartupItems/OpenAFS/OpenAFS
+ chmod a+x $PKGROOT/Library/StartupItems/OpenAFS/OpenAFS
+ cp $BINDEST/root.client/usr/vice/etc/StartupParameters.plist $PKGROOT/Library/StartupItems/OpenAFS/StartupParameters.plist
+ chown -R root${SEP}admin $PKGROOT/Library
+ chmod -R o-w $PKGROOT/Library
+ chmod -R g+w $PKGROOT/Library
+ chown -R root${SEP}wheel $PKGROOT/Library/StartupItems
+ chmod -R og-w $PKGROOT/Library/StartupItems
+ chown -R root${SEP}wheel $PKGROOT/Library/OpenAFS/Tools
+ chmod -R og-w $PKGROOT/Library/OpenAFS/Tools
+
+ mkdir -p $PKGROOT/private/var/db/openafs/cache
+ mkdir -p $PKGROOT/private/var/db/openafs/etc/config
+ cp $CURDIR/CellServDB $PKGROOT/private/var/db/openafs/etc/CellServDB.master
+ echo openafs.org > $PKGROOT/private/var/db/openafs/etc/ThisCell.sample
+ if [ $majorvers -ge 7 ]; then
+ echo /afs:/var/db/openafs/cache:30000 > $PKGROOT/private/var/db/openafs/etc/cacheinfo.sample
+ cp -RP $PKGROOT/Library/OpenAFS/Tools/etc/afssettings $PKGROOT/private/var/db/openafs/etc/config
+ cp settings.plist $PKGROOT/private/var/db/openafs/etc/config/settings.plist.orig
+ else
+ echo /Network/afs:/var/db/openafs/cache:30000 > $PKGROOT/private/var/db/openafs/etc/cacheinfo.sample
+ fi
+ echo '-afsdb -stat 2000 -dcache 800 -daemons 3 -volumes 70 -dynroot -fakestat-all' > $PKGROOT/private/var/db/openafs/etc/config/afsd.options.sample
+
+ strip -X -S $PKGROOT/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext/Contents/MacOS/afs
+
+ cp -RP $PKGROOT/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext $PKGROOT/private/var/db/openafs/etc
+ cp -RP $PKGROOT/Library/OpenAFS/Tools/root.client/usr/vice/etc/C $PKGROOT/private/var/db/openafs/etc
+
+ chown -R root${SEP}wheel $PKGROOT/private
+ chmod -R og-w $PKGROOT/private
+ chmod og-rx $PKGROOT/private/var/db/openafs/cache
+
+ mkdir -p $PKGROOT/usr/bin $PKGROOT/usr/sbin
+
+ BINLIST="fs klog klog.krb pagsh pagsh.krb pts sys tokens tokens.krb unlog unlog.krb aklog"
+ ETCLIST="vos"
+
+# Should these be linked into /usr too?
+ OTHER_BINLIST="bos cmdebug rxgen translate_et udebug xstat_cm_test xstat_fs_test"
+ OTHER_ETCLIST="rxdebug"
+
+ for f in $BINLIST; do
+ ln -s ../../Library/OpenAFS/Tools/bin/$f $PKGROOT/usr/bin/$f
+ done
+ for f in $ETCLIST; do
+ ln -s ../../Library/OpenAFS/Tools/etc/$f $PKGROOT/usr/sbin/$f
+ done
+
+ ln -s ../../Library/OpenAFS/Tools/bin/kpasswd $PKGROOT/usr/bin/kpasswd.afs
+
+ ln -s ../../Library/OpenAFS/Tools/root.client/usr/vice/etc/afsd $PKGROOT/usr/sbin/afsd
+
+# mkdir -p $PKGROOT/Library/Kerberos\ Plug-Ins
+# ln -s ../../Library/OpenAFS/Tools/root.client/Library/Kerberos\ Plug-Ins/aklog.loginLogout $PKGROOT/Library/Kerberos\ Plug-Ins/
+
+ chown -R root${SEP}wheel $PKGROOT/usr
+ chmod -R og-w $PKGROOT/usr
+fi
+
+if [ $secondpass = yes ]; then
+ rm -rf $PKGRES
+ mkdir $PKGRES
+
+ cd $RESSRC
+ if [ $majorvers -ge 7 ]; then
+ cp OpenAFS.post_install $PKGRES/postinstall
+ cp OpenAFS.pre_upgrade $PKGRES/preupgrade
+ cp OpenAFS.post_install $PKGRES/postupgrade
+ cp background.jpg $PKGRES/background.jpg
+ if [ $majorvers -ge 8 ]; then
+ cp InstallationCheck $PKGRES
+ mkdir -p $PKGRES/English.lproj
+ cp InstallationCheck $PKGRES/English.lproj
+ chmod a+x $PKGRES/InstallationCheck
+ fi
+ chmod a+x $PKGRES/postinstall $PKGRES/postupgrade $PKGRES/preupgrade
+ else
+ cp OpenAFS.post_install OpenAFS.pre_upgrade $PKGRES
+ cp OpenAFS.post_install $PKGRES/OpenAFS.post_upgrade
+ chmod a+x $PKGRES/OpenAFS.post_install $PKGRES/OpenAFS.post_upgrade $PKGRES/OpenAFS.pre_upgrade
+ fi
+ cp License.rtf ReadMe.rtf $PKGRES
+ cp csrvdbmerge.pl $PKGRES
+ chmod a+x $PKGRES/csrvdbmerge.pl
+ cp CellServDB.list $PKGRES
+ chown -R root${SEP}wheel $PKGRES
+ rm -rf $CURDIR/OpenAFS.pkg
+ if [ $majorvers -ge 7 ]; then
+ echo $package -build -p $CURDIR/OpenAFS.pkg -f $PKGROOT -r $PKGRES \
+ -i OpenAFS.Info.plist -d OpenAFS.Description.plist
+ $package -build -p $CURDIR/OpenAFS.pkg -f $PKGROOT -r $PKGRES \
+ -i OpenAFS.Info.plist -d OpenAFS.Description.plist
+ else
+ echo $package $PKGROOT $RESSRC/OpenAFS.info -r $PKGRES
+ (cd $CURDIR && $package $PKGROOT $RESSRC/OpenAFS.info -r $PKGRES)
+ #old versions of package didn't handle this properly
+ if [ ! -r $CURDIR/OpenAFS.pkg/Contents ]; then
+ mkdir -p $CURDIR/OpenAFS.pkg/Contents/Resources
+ mv $CURDIR/OpenAFS.pkg/OpenAFS.* $CURDIR/OpenAFS.pkg/Contents/Resources
+ mv $CURDIR/OpenAFS.pkg/*.rtf $CURDIR/OpenAFS.pkg/Contents/Resources
+ mv $CURDIR/OpenAFS.pkg/csrvdbmerge.pl $CURDIR/OpenAFS.pkg/Contents/Resources
+ mv $CURDIR/OpenAFS.pkg/CellServDB* $CURDIR/OpenAFS.pkg/Contents/Resources
+ fi
+ fi
+
+ rm -rf $PKGROOT $PKGRES
+ mkdir $CURDIR/dmg
+ mv $CURDIR/OpenAFS.pkg $CURDIR/dmg
+ rm -rf $CURDIR/OpenAFS.dmg
+ cp Uninstall $CURDIR/dmg/Uninstall.command
+ cp DS_Store $CURDIR/dmg/.DS_Store
+ mkdir $CURDIR/dmg/.background
+ cp afslogo.jpg $CURDIR/dmg/.background
+# hdiutil create -srcfolder $CURDIR/dmg -volname OpenAFS -anyowners $CURDIR/OpenAFS.dmg
+ hdiutil makehybrid -hfs -hfs-volume-name OpenAFS -hfs-openfolder $CURDIR/dmg $CURDIR/dmg -o $CURDIR/TMP.dmg
+ hdiutil convert -format UDZO TMP.dmg -o $CURDIR/OpenAFS.dmg
+ rm $CURDIR/TMP.dmg
+ rm -rf $CURDIR/dmg
+ # Unfortunately, sudo sets $USER to root, so I can't chown the
+ #.pkg dir back to myself
+ #chown -R $USER $CURDIR/OpenAFS.pkg
+else
+ echo "First pass completed. Customize pkgroot and then run:"
+ echo " $0 -secondpass"
+fi
--- /dev/null
+#!/usr/bin/perl
+# CellServDB merging script
+# only tested on darwin systems
+
+use File::Copy;
+use IO::File;
+use Fcntl;
+use strict;
+
+
+sub doit {
+ my ($cur,$in,$last,$new);
+ my ($line, $oline, $cell, $pos, $which);
+ my %cellstat;
+
+ $cur=new IO::File '<CellServDB';
+ $last=new IO::File '<CellServDB.master.last';
+
+ while (defined($line=<$cur>)) {
+ if ($line =~ /^>([-a-zA-Z0-9\._]+)\s/) {
+ if ($cell) {
+ $oline=<$last>;
+ if ($oline && $oline !~ /^>/) { # fewer servers in user's file than master
+ $cellstat{$cell} = 1;
+ }
+ }
+ $cell=$1;
+ $cellstat{$cell}=2;
+ # start at the beginning of the old file, and find $cell
+ $last->seek(0,SEEK_SET);
+ while (<$last>) {
+ if (/>$cell\s/) { # note that we don't compare the cell comments
+ $cellstat{$cell}=0;
+ last;
+ }
+ }
+ next;
+ }
+ if (! $cell) {
+ die "First CellServDB line isn't a cell\n";
+ }
+ next if ($cellstat{$cell} == 2); # cell only in local CellServDB
+ next if ($cellstat{$cell} == 1); # already found a local change
+ $oline=<$last>;
+ if ($oline =~ /^>/) { # more servers in user's file than master
+ $last->setpos($pos);
+ $cellstat{$cell} = 1;
+ next;
+ }
+ next if ($line eq $oline);
+ $cellstat{$cell} = 1;
+ }
+ close($last);
+ $cur->seek(0,SEEK_SET);
+ $cur=new IO::File '<CellServDB' or die "No CellServDB: $!\n";
+ $in=new IO::File '<CellServDB.master' or die "No CellServDB.master: $!\n";
+ $new=new IO::File '>CellServDB.NEW' or die "Cannot create output CellServDB: $!\n";
+ while (defined($line=<$cur>)) {
+ if ($line =~ /^>([-a-zA-Z0-9\._]+)\s/) {
+ $cell=$1;
+ $which=$cellstat{$cell};
+ unless ($which) {
+ $in->seek(0,SEEK_SET);
+ while (<$in>) {
+ if (/>$cell\s/) {
+ last;
+ }
+ }
+ if (defined($_)) {
+ print $new $_;
+ while (defined($line=<$in>) && $line !~ /^>/) {
+ print $new $line;
+ }
+ }
+ }
+ }
+ if (! $cell) {
+ die "First CellServDB line isn't a cell\n";
+ }
+ if ($which) {
+ print $new $line;
+ }
+ }
+ close($in);
+ close($cur);
+ close($new);
+ rename('CellServDB.NEW', 'CellServDB');
+ copy('CellServDB.master', 'CellServDB.master.last');
+}
+
+doit;
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>Darwin</key>
+ <dict>
+ <key>All</key>
+ <dict>
+ <key>RealModes</key>
+ <false/>
+ </dict>
+ </dict>
+</dict>
+</plist>
--- /dev/null
+#!/bin/sh
+
+if [ -z "$1" ]; then
+ echo Usage: universal topdir
+ exit 1
+fi
+
+BINDEST=`cd $1 && pwd`
+CURDIR=`pwd`
+majorvers=`uname -r | sed 's/\..*//'`
+
+DIRLIST="root.server/usr/afs/bin bin etc lib root.client/usr/vice/etc/afsd root.client/usr/vice/etc/afs.kext/Contents/MacOS/afs"
+mkdir $CURDIR/u_darwin_80
+
+(cd $BINDEST/ppc_darwin_80; tar cf - .)|(cd $CURDIR/u_darwin_80; tar xf -)
+(cd $BINDEST/x86_darwin_80; tar cf - .)|(cd $CURDIR/u_darwin_80; tar xf -)
+
+for d in $DIRLIST; do
+ for f in `cd $CURDIR/u_darwin_80/dest && find $d -type f -print`; do
+ /bin/rm -f $CURDIR/u_darwin_80/dest/$f
+ lipo $BINDEST/ppc_darwin_80/dest/$f $BINDEST/x86_darwin_80/dest/$f -create -output $CURDIR/u_darwin_80/dest/$f
+ done
+done
#endif
#endif
#include <stdlib.h>
-#ifdef AFS_AIX51_ENV
-#include <sys/cred.h>
-#endif
RCSID
- ("$Header: /cvs/openafs/src/pam/afs_util.c,v 1.12.2.2 2006/07/20 23:35:44 shadow Exp $");
+ ("$Header: /cvs/openafs/src/pam/afs_util.c,v 1.12.2.4 2006/10/10 03:23:39 shadow Exp $");
#include "afs_util.h"
static afs_int32
curpag(void)
{
-#if defined(AFS_AIX51_ENV)
- afs_int32 pag;
-
- if (get_pag(PAG_AFS, &pag) < 0 || pag == 0)
- pag = NOPAG;
- return pag;
-#else
gid_t groups[NGROUPS_MAX];
afs_uint32 g0, g1;
afs_uint32 h, l, ret;
return -1;
}
return -1;
-#endif
}
/* Returns the AFS pag number, if any, otherwise return -1 */
--- /dev/null
+# 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
+
+srcdir=@srcdir@
+include @TOP_OBJDIR@/src/config/Makefile.config
+include ../../config/Makefile.version
+
+all: afssettings
+
+afssettings: afssettings.m
+ ${CC} ${CFLAGS} -o afssettings afssettings.m -framework Foundation
+
+install: \
+ ${DESTDIR}${sbindir}/afssettings
+
+dest: \
+ ${DEST}/etc/afssettings
+
+${DESTDIR}${sbindir}/afssettings: afssettings
+ ${INSTALL} -s $? $@
+
+${DEST}/etc/afssettings: afssettings
+ ${INSTALL} -s $? $@
+
+clean:
+ $(RM) -f *.o core afssettings AFS_component_version_number.c
--- /dev/null
+/*
+ * Copyright (c) 2003, 2006 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ *
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_LICENSE_HEADER_END@
+ */
+#import <Foundation/Foundation.h>
+#import <stdio.h>
+#import <err.h>
+#import <sys/types.h>
+#import <sys/mount.h>
+#import <sys/sysctl.h>
+#import <afs/sysctl.h>
+
+enum Type {
+ TypeNode = 0,
+ TypeNum,
+ TypeStr
+};
+
+typedef struct _setting {
+ NSString *key;
+ int selector;
+ enum Type type;
+ struct _setting *children;
+} Setting;
+
+Setting s_darwin_all[] = {
+ {@"RealModes", AFS_SC_DARWIN_ALL_REALMODES, TypeNum, NULL},
+ {NULL, 0, 0, NULL}
+};
+Setting s_darwin[] = {
+ {@"All", AFS_SC_DARWIN_ALL, TypeNode, s_darwin_all},
+ {@"Darwin12", AFS_SC_DARWIN_12, TypeNode, NULL},
+ {@"Darwin13", AFS_SC_DARWIN_13, TypeNode, NULL},
+ {@"Darwin14", AFS_SC_DARWIN_14, TypeNode, NULL},
+ {@"Darwin60", AFS_SC_DARWIN_60, TypeNode, NULL},
+ {@"Darwin70", AFS_SC_DARWIN_70, TypeNode, NULL},
+ {@"Darwin80", AFS_SC_DARWIN_80, TypeNode, NULL},
+ {@"Darwin90", AFS_SC_DARWIN_90, TypeNode, NULL},
+ {NULL, 0, 0, NULL}
+};
+Setting s_first[] = {
+ {@"All", AFS_SC_ALL, TypeNode, NULL},
+ {@"Darwin", AFS_SC_DARWIN, TypeNode, s_darwin},
+ {NULL, 0, 0, NULL}
+};
+Setting s_top = {NULL, -1, TypeNode, s_first};
+
+int oid[CTL_MAXNAME] = {CTL_VFS};
+NSString *path = @"/var/db/openafs/etc/config/settings.plist";
+
+char *oidString(int *oid, int len);
+void init(void);
+void walk(id obj, Setting *s, int level);
+
+void
+init(void)
+{
+ int oidmax[] = {CTL_VFS, VFS_GENERIC, VFS_MAXTYPENUM};
+ int oidvfs[] = {CTL_VFS, VFS_GENERIC, VFS_CONF, 0};
+ int max;
+ struct vfsconf conf;
+ size_t len;
+ int i;
+
+ len = sizeof(max);
+ if(sysctl(oidmax, 3, &max, &len, NULL, 0) < 0)
+ err(1, "sysctl VFS_MAXTYPENUM");
+ for(i = max; --i >= 0; ) {
+ oidvfs[3] = i;
+ len = sizeof(conf);
+ if(sysctl(oidvfs, 4, &conf, &len, NULL, 0) < 0)
+ continue;
+ if(strcmp("afs", conf.vfc_name) == 0) {
+ s_top.selector = conf.vfc_typenum;
+ break;
+ }
+ }
+ if(s_top.selector < 0)
+ errx(1, "AFS is not loaded");
+}
+
+char *
+oidString(int *oid, int len)
+{
+ static char buf[256];
+ char *cp = buf;
+
+ for(;;) {
+ sprintf(cp, "%d", *oid++);
+ if(--len <= 0)
+ break;
+ cp += strlen(cp);
+ *cp++ = '.';
+ }
+ return buf;
+}
+
+void
+walk(id obj, Setting *s, int level)
+{
+ Setting *child;
+ id newobj;
+ int intval;
+ const char *cp;
+ int level1 = level + 1;
+
+ oid[level] = s->selector;
+ switch(s->type) {
+ case TypeNode:
+ for(child = s->children; child->key; child++) {
+ if(child->type == TypeNode && !child->children)
+ continue;
+ newobj = [obj objectForKey: child->key];
+ if(newobj)
+ walk(newobj, child, level1);
+ }
+ break;
+ case TypeNum:
+ intval = [obj intValue];
+ if(sysctl(oid, level1, NULL, NULL, &intval, sizeof(intval)) < 0)
+ err(1, "sysctl %s => %d", oidString(oid, level1), intval);
+ break;
+ case TypeStr:
+ cp = [obj UTF8String];
+ if(sysctl(oid, level1, NULL, NULL, (void *)cp, strlen(cp)) < 0)
+ err(1, "sysctl %s => %s", oidString(oid, level1), cp);
+ break;
+ }
+}
+
+main()
+{
+ NSData *plistData;
+ id plist;
+ NSString *error;
+ NSPropertyListFormat format;
+ NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
+
+ init();
+ plistData = [NSData dataWithContentsOfFile: path];
+ if(plistData) {
+ plist = [NSPropertyListSerialization propertyListFromData: plistData
+ mutabilityOption: NSPropertyListImmutable
+ format: &format
+ errorDescription: &error
+ ];
+ if(plist)
+ walk(plist, &s_top, 1);
+ else
+ errx(1, "%s: %s", [path UTF8String], [error UTF8String]);
+ }
+
+ [pool release];
+ return 0;
+}
#endif
RCSID
- ("$Header: /cvs/openafs/src/ptserver/ptuser.c,v 1.16.2.10 2006/09/16 19:40:52 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ptserver/ptuser.c,v 1.16.2.12 2006/10/13 12:46:02 shadow Exp $");
#if defined(UKERNEL)
#include "afs/sysincludes.h"
if (*id == ANONYMOUSID)
return PRNOENT;
code = ubik_PR_ListEntry(pruclient, 0, *id, &aentry);
- //code = ubik_PR_ListEntry(pruclient, 0, *id, &aentry);
if (code)
return code;
/* this should be done in one RPC, but I'm lazy. */
if (oid == ANONYMOUSID)
return PRNOENT;
}
- code = ubik_PR_ChangeEntry(pruclient, 0, id, newname, oid, newid);
+ code = ubik_PR_ChangeEntry(pruclient, 0, id, newname, oid, *newid);
return code;
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rx/rx_getaddr.c,v 1.15.2.12 2006/06/15 15:13:33 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/rx_getaddr.c,v 1.15.2.13 2006/10/11 11:29:02 jaltman Exp $");
#ifndef AFS_DJGPP_ENV
#ifndef KERNEL
maskBuffer[count] = a->sin_addr.s_addr;
else
maskBuffer[count] = htonl(0xffffffff);
- memset(&ifr, sizeof(ifr), 0);
+ memset(&ifr, 0, sizeof(ifr));
ifr.ifr_addr.sa_family = AF_INET;
strncpy(ifr.ifr_name, sdl->sdl_data, sdl->sdl_nlen);
if (ioctl(s, SIOCGIFMTU, (caddr_t) & ifr) < 0)
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/sys/pagsh.c,v 1.9.2.2 2006/07/20 23:35:44 shadow Exp $");
+ ("$Header: /cvs/openafs/src/sys/pagsh.c,v 1.9.2.3 2006/10/06 12:44:43 shadow Exp $");
#ifdef AFS_AIX32_ENV
#include <signal.h>
-#ifdef AFS_AIX51_ENV
-#include <sys/cred.h>
-#endif
#endif
#include <stdio.h>
#include <stdlib.h>
static afs_uint32
curpag(void)
{
-#if defined(AFS_AIX51_ENV)
- afs_int32 pag;
-
- if (get_pag(PAG_AFS, &pag) < 0 || pag == 0)
- pag = -1;
- return pag;
-#else
afs_uint32 groups[NGROUPS_MAX];
afs_uint32 g0, g1;
afs_uint32 h, l, ret;
return -1;
}
return -1;
-#endif
}
int
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/viced/afsfileprocs.c,v 1.81.2.36 2006/09/14 23:59:36 shadow Exp $");
+ ("$Header: /cvs/openafs/src/viced/afsfileprocs.c,v 1.81.2.37 2006/09/26 02:13:17 shadow Exp $");
#include <stdio.h>
#include <stdlib.h>
("CopyOnWrite failed: volume %u in partition %s (tried reading %u, read %u, wrote %u, errno %u) volume needs salvage\n",
V_id(volptr), volptr->partition->name, length, rdlen,
wrlen, errno));
-#ifdef FAST_RESTART /* if running in no-salvage, don't core the server */
ViceLog(0, ("CopyOnWrite failed: taking volume offline\n"));
-#else /* Avoid further corruption and try to get a core. */
- assert(0);
-#endif
/* Decrement this inode so salvager doesn't find it. */
FDH_REALLYCLOSE(newFdP);
IH_RELEASE(newH);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vol/clone.c,v 1.17.2.1 2004/08/25 07:14:19 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vol/clone.c,v 1.17.2.4 2006/10/06 12:33:57 shadow Exp $");
#include <sys/types.h>
#include <stdio.h>
Log("IH_INC failed: %x, %s, %u errno %d\n",
V_linkHandle(rwvp), PrintInode(NULL, rwinode),
V_parentId(rwvp), errno);
- assert(0);
+ VForceOffline_r(rwvp);
+ ERROR_EXIT(EIO);
}
inodeinced = 1;
}
Log("IH_DEC failed: %x, %s, %u errno %d\n",
V_linkHandle(rwvp), PrintInode(NULL, rwinode),
V_parentId(rwvp), errno);
- assert(0);
+ VForceOffline_r(rwvp);
+ ERROR_EXIT(EIO);
}
}
/* And if the directory was marked clone, unmark it */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/volser/dumpstuff.c,v 1.25.2.4 2006/07/14 19:24:06 shadow Exp $");
+ ("$Header: /cvs/openafs/src/volser/dumpstuff.c,v 1.25.2.5 2006/10/13 12:46:03 shadow Exp $");
#include <sys/types.h>
#include <ctype.h>
afs_sfsize_t size;
#ifdef AFS_AIX_ENV
#include <sys/statfs.h>
-#ifdef AFS_LARGEFILE_ENV
+#if defined(AFS_AIX52_ENV) && defined(AFS_LARGEFILE_ENV)
struct statfs64 tstatfs;
-#else /* !AFS_LARGEFILE_ENV */
+#else /* !AFS_AIX52_ENV || !AFS_LARGEFILE_ENV */
struct statfs tstatfs;
-#endif /* !AFS_LARGEFILE_ENV */
+#endif /* !AFS_AIX52_ENV || !AFS_LARGEFILE_ENV */
int statfs_code;
#endif
/* Unfortunately in AIX valuable fields such as st_blksize are
* gone from the stat structure.
*/
-#ifdef AFS_LARGEFILE_ENV
+#if defined(AFS_AIX52_ENV) && defined(AFS_LARGEFILE_ENV)
statfs_code = fstatfs64(handleP->fd_fd, &tstatfs);
-#else /* !AFS_LARGEFILE_ENV */
+#else /* !AFS_AIX52_ENV || !AFS_LARGEFILE_ENV */
statfs_code = fstatfs(handleP->fd_fd, &tstatfs);
-#endif /* !AFS_LARGEFILE_ENV */
+#endif /* !AFS_AIX52_ENV || !AFS_LARGEFILE_ENV */
if (statfs_code != 0) {
Log("DumpFile: fstatfs returned error code %d on descriptor %d\n", errno, handleP->fd_fd);
return VOLSERDUMPERROR;
}
- howMany = tstatfs.f_bsize;
+ howMany = (afs_sfsize_t) tstatfs.f_bsize;
#else
howMany = status.st_blksize;
#endif /* AFS_AIX_ENV */