From 1e35e661a01a97bedf388ace6663dfd0ec3fd7d1 Mon Sep 17 00:00:00 2001 From: Sam Hartman Date: Fri, 20 Oct 2006 10:28:22 +0000 Subject: [PATCH] Merge 1.4.2 upstream changes onto trunk. --- Makefile.in | 2 + acinclude.m4 | 12 +- configure | 254 +++++++- configure-libafs | 254 +++++++- configure-libafs.in | 2 +- configure.in | 2 +- doc/txt/RELNOTES-1.4.2 | 89 +++ doc/txt/RELNOTES-1.4.2fc4 | 161 +++++ doc/txt/winnotes/afs-changes-since-1.2.txt | 21 + src/afs/IRIX/osi_machdep.h | 4 +- src/afs/LINUX/osi_groups.c | 16 +- src/afs/LINUX/osi_probe.c | 2 + src/afs/LINUX/osi_vfsops.c | 5 +- src/afs/LINUX/osi_vnodeops.c | 16 +- src/afs/UKERNEL/sysincludes.h | 3 + src/afs/VNOPS/afs_vnop_create.c | 5 +- src/afs/afs_call.c | 4 +- src/afs/afs_osi.c | 7 +- src/audit/audit.c | 77 +-- src/auth/cellconfig.c | 35 +- src/auth/ktc.c | 13 +- src/cf/linux-test4.m4 | 33 + src/cf/osconf.m4 | 2 +- src/config/Makefile.version-NOCML.in | 2 +- src/config/NTMakefile.amd64_w2k | 2 +- src/config/NTMakefile.i386_nt40 | 2 +- src/config/NTMakefile.i386_w2k | 2 +- src/config/afs_sysnames.h | 14 + src/config/afsconfig.h.in | 6 + src/config/param.i386_nbsd30.h | 4 +- src/kauth/authclient.c | 2 +- src/libafs/afs.ppc_darwin_70.plist.in | 4 +- src/libafs/afs.ppc_darwin_80.plist.in | 4 +- src/libafs/afs.ppc_darwin_90.plist.in | 4 +- src/libafs/afs.x86_darwin_80.plist.in | 4 +- src/libafs/afs.x86_darwin_90.plist.in | 4 +- .../HP-UX/files/usr/vice/etc/CellServDB | 90 +-- src/packaging/MacOS/2.0.txt | 367 +++++++++++ src/packaging/MacOS/CellServDB | 569 ++++++++++++++++++ src/packaging/MacOS/CellServDB.list | 14 + src/packaging/MacOS/DS_Store | Bin 0 -> 12292 bytes src/packaging/MacOS/InstallationCheck | 10 + src/packaging/MacOS/InstallationCheck.strings | 1 + src/packaging/MacOS/License.rtf | 249 ++++++++ src/packaging/MacOS/Makefile | 37 ++ src/packaging/MacOS/OpenAFS.Description.plist | 14 + src/packaging/MacOS/OpenAFS.Info.plist | 44 ++ src/packaging/MacOS/OpenAFS.info | 16 + src/packaging/MacOS/OpenAFS.post_install | 97 +++ src/packaging/MacOS/OpenAFS.pre_upgrade | 26 + src/packaging/MacOS/ReadMe.rtf | 13 + src/packaging/MacOS/Uninstall | 397 ++++++++++++ src/packaging/MacOS/afslogo.jpg | Bin 0 -> 15949 bytes src/packaging/MacOS/afssettings.m | 173 ++++++ src/packaging/MacOS/background.jpg | Bin 0 -> 14671 bytes src/packaging/MacOS/buildpkg.sh | 228 +++++++ src/packaging/MacOS/csrvdbmerge.pl | 91 +++ src/packaging/MacOS/settings.plist | 14 + src/packaging/MacOS/universal.sh | 23 + src/pam/afs_util.c | 13 +- src/platform/DARWIN/Makefile.in | 30 + src/platform/DARWIN/afssettings.m | 173 ++++++ src/ptserver/ptuser.c | 5 +- src/rx/rx_getaddr.c | 4 +- src/sys/pagsh.c | 13 +- src/viced/afsfileprocs.c | 6 +- src/vol/clone.c | 8 +- src/volser/dumpstuff.c | 16 +- 68 files changed, 3623 insertions(+), 191 deletions(-) create mode 100644 doc/txt/RELNOTES-1.4.2 create mode 100644 doc/txt/RELNOTES-1.4.2fc4 create mode 100644 src/packaging/MacOS/2.0.txt create mode 100644 src/packaging/MacOS/CellServDB create mode 100644 src/packaging/MacOS/CellServDB.list create mode 100644 src/packaging/MacOS/DS_Store create mode 100644 src/packaging/MacOS/InstallationCheck create mode 100644 src/packaging/MacOS/InstallationCheck.strings create mode 100644 src/packaging/MacOS/License.rtf create mode 100644 src/packaging/MacOS/Makefile create mode 100644 src/packaging/MacOS/OpenAFS.Description.plist create mode 100644 src/packaging/MacOS/OpenAFS.Info.plist create mode 100644 src/packaging/MacOS/OpenAFS.info create mode 100644 src/packaging/MacOS/OpenAFS.post_install create mode 100644 src/packaging/MacOS/OpenAFS.pre_upgrade create mode 100644 src/packaging/MacOS/ReadMe.rtf create mode 100755 src/packaging/MacOS/Uninstall create mode 100644 src/packaging/MacOS/afslogo.jpg create mode 100644 src/packaging/MacOS/afssettings.m create mode 100644 src/packaging/MacOS/background.jpg create mode 100644 src/packaging/MacOS/buildpkg.sh create mode 100644 src/packaging/MacOS/csrvdbmerge.pl create mode 100644 src/packaging/MacOS/settings.plist create mode 100755 src/packaging/MacOS/universal.sh create mode 100644 src/platform/DARWIN/Makefile.in create mode 100644 src/platform/DARWIN/afssettings.m diff --git a/Makefile.in b/Makefile.in index 7e906bdfa..25c011ec2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -768,6 +768,8 @@ distclean: clean 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 \ diff --git a/acinclude.m4 b/acinclude.m4 index 5485607a9..fb8001a53 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -308,7 +308,7 @@ else 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" ;; @@ -316,6 +316,14 @@ else 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" ;; @@ -608,6 +616,8 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) 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 diff --git a/configure b/configure index e40394697..6bde4b81b 100755 --- a/configure +++ b/configure @@ -2168,7 +2168,7 @@ fi # Define the identity of the package. PACKAGE=openafs - VERSION=1.4.2fc4 + VERSION=1.4.2 cat >>confdefs.h <<_ACEOF @@ -6359,7 +6359,7 @@ echo $ECHO_N "checking your AFS sysname... $ECHO_C" >&6; } 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" ;; @@ -6367,6 +6367,14 @@ echo $ECHO_N "checking your AFS sysname... $ECHO_C" >&6; } 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" ;; @@ -11630,6 +11638,246 @@ _ACEOF 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 +#include + +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 +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 +#include + +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 +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 @@ -18571,7 +18819,7 @@ case $AFS_SYSNAME in YACC="byacc" ;; - *nbsd2*|*nbsd3*) + *nbsd2*|*nbsd3*|*nbsd4*) LEX="flex -l" MT_CFLAGS='${XCFLAGS} -DAFS_PTHREAD_ENV -D_REENTRANT ' MT_LIBS="-lpthread" # XXX -pthread soon diff --git a/configure-libafs b/configure-libafs index de338b190..4bdcee4d2 100755 --- a/configure-libafs +++ b/configure-libafs @@ -2168,7 +2168,7 @@ fi # Define the identity of the package. PACKAGE=openafs-libafs - VERSION=1.4.2fc4 + VERSION=1.4.2 cat >>confdefs.h <<_ACEOF @@ -6360,7 +6360,7 @@ echo $ECHO_N "checking your AFS sysname... $ECHO_C" >&6; } 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" ;; @@ -6368,6 +6368,14 @@ echo $ECHO_N "checking your AFS sysname... $ECHO_C" >&6; } 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" ;; @@ -11630,6 +11638,246 @@ _ACEOF 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 +#include + +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 +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 +#include + +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 +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 @@ -18571,7 +18819,7 @@ case $AFS_SYSNAME in YACC="byacc" ;; - *nbsd2*|*nbsd3*) + *nbsd2*|*nbsd3*|*nbsd4*) LEX="flex -l" MT_CFLAGS='${XCFLAGS} -DAFS_PTHREAD_ENV -D_REENTRANT ' MT_LIBS="-lpthread" # XXX -pthread soon diff --git a/configure-libafs.in b/configure-libafs.in index a99a2ea1d..961c6816e 100644 --- a/configure-libafs.in +++ b/configure-libafs.in @@ -1,5 +1,5 @@ AC_INIT(src/libafs/Makefile.common.in) -AM_INIT_AUTOMAKE(openafs-libafs,1.4.2fc4) +AM_INIT_AUTOMAKE(openafs-libafs,1.4.2) AC_CONFIG_HEADER(src/config/afsconfig.h) define(OPENAFS_CONFIGURE_LIBAFS) diff --git a/configure.in b/configure.in index 8884f1adf..7fe6cadcf 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ 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 diff --git a/doc/txt/RELNOTES-1.4.2 b/doc/txt/RELNOTES-1.4.2 new file mode 100644 index 000000000..4dba58683 --- /dev/null +++ b/doc/txt/RELNOTES-1.4.2 @@ -0,0 +1,89 @@ + 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. diff --git a/doc/txt/RELNOTES-1.4.2fc4 b/doc/txt/RELNOTES-1.4.2fc4 new file mode 100644 index 000000000..b42eebecf --- /dev/null +++ b/doc/txt/RELNOTES-1.4.2fc4 @@ -0,0 +1,161 @@ + 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 diff --git a/doc/txt/winnotes/afs-changes-since-1.2.txt b/doc/txt/winnotes/afs-changes-since-1.2.txt index 010b3d228..107626d75 100644 --- a/doc/txt/winnotes/afs-changes-since-1.2.txt +++ b/doc/txt/winnotes/afs-changes-since-1.2.txt @@ -1,3 +1,24 @@ +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 diff --git a/src/afs/IRIX/osi_machdep.h b/src/afs/IRIX/osi_machdep.h index e13bbfb8a..032797cab 100644 --- a/src/afs/IRIX/osi_machdep.h +++ b/src/afs/IRIX/osi_machdep.h @@ -160,7 +160,7 @@ extern flid_t osi_flid; #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; @@ -170,7 +170,7 @@ 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 */ diff --git a/src/afs/LINUX/osi_groups.c b/src/afs/LINUX/osi_groups.c index ec6c21a2b..3aee872cb 100644 --- a/src/afs/LINUX/osi_groups.c +++ b/src/afs/LINUX/osi_groups.c @@ -20,7 +20,7 @@ #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" @@ -554,12 +554,26 @@ static int afs_pag_match(const struct key *key, const void *description) 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) diff --git a/src/afs/LINUX/osi_probe.c b/src/afs/LINUX/osi_probe.c index 48c7c93ef..d70235d76 100644 --- a/src/afs/LINUX/osi_probe.c +++ b/src/afs/LINUX/osi_probe.c @@ -1011,6 +1011,7 @@ static void *try(probectl *P, tryctl *T, PROBETYPE *aptr, #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; } @@ -1120,6 +1121,7 @@ static void *try_harder(probectl *P, PROBETYPE *ptr, unsigned long datalen) 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); diff --git a/src/afs/LINUX/osi_vfsops.c b/src/afs/LINUX/osi_vfsops.c index d3b36f558..54bca905f 100644 --- a/src/afs/LINUX/osi_vfsops.c +++ b/src/afs/LINUX/osi_vfsops.c @@ -16,7 +16,7 @@ #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 /* early to avoid printf->printk mapping */ @@ -312,8 +312,7 @@ afs_init_inodecache(void) 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 diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c index 93bf028ff..e235829cd 100644 --- a/src/afs/LINUX/osi_vnodeops.c +++ b/src/afs/LINUX/osi_vnodeops.c @@ -22,7 +22,7 @@ #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" @@ -75,7 +75,11 @@ afs_linux_read(struct file *fp, char *buf, size_t count, loff_t * offp) 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(); } @@ -121,7 +125,11 @@ afs_linux_write(struct file *fp, const char *buf, size_t count, loff_t * offp) 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(); } @@ -565,6 +573,10 @@ struct file_operations afs_dir_fops = { 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 @@ -809,9 +821,7 @@ afs_dentry_iput(struct dentry *dp, struct inode *ip) struct vcache *vcp = VTOAFS(ip); AFS_GLOCK(); - ObtainWriteLock(&vcp->lock, 537); (void) afs_InactiveVCache(vcp, NULL); - ReleaseWriteLock(&vcp->lock); AFS_GUNLOCK(); iput(ip); diff --git a/src/afs/UKERNEL/sysincludes.h b/src/afs/UKERNEL/sysincludes.h index 54f078beb..2c851b0e2 100644 --- a/src/afs/UKERNEL/sysincludes.h +++ b/src/afs/UKERNEL/sysincludes.h @@ -21,7 +21,9 @@ #include #include #include +#if !defined(AFS_USR_DARWIN_ENV) && !defined(AFS_USR_FBSD_ENV) /* must be included after KERNEL undef'd */ #include +#endif #ifdef AFS_USR_SUN5_ENV #include @@ -120,6 +122,7 @@ #define AFS_USR_UNDEF_KERNEL_ENV 1 #endif #include +#include #include #include #include diff --git a/src/afs/VNOPS/afs_vnop_create.c b/src/afs/VNOPS/afs_vnop_create.c index b84eae195..464053084 100644 --- a/src/afs/VNOPS/afs_vnop_create.c +++ b/src/afs/VNOPS/afs_vnop_create.c @@ -17,7 +17,7 @@ #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 */ @@ -25,6 +25,7 @@ RCSID #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 @@ -305,7 +306,7 @@ afs_create(OSI_VC_DECL(adp), char *aname, struct vattr *attrs, (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 */ diff --git a/src/afs/afs_call.c b/src/afs/afs_call.c index 0088fd130..103c1bd69 100644 --- a/src/afs/afs_call.c +++ b/src/afs/afs_call.c @@ -11,7 +11,7 @@ #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 */ @@ -1298,7 +1298,7 @@ copyin_iparam(caddr_t cmarg, struct iparam *dst) #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) diff --git a/src/afs/afs_osi.c b/src/afs/afs_osi.c index 2d052bc36..588411786 100644 --- a/src/afs/afs_osi.c +++ b/src/afs/afs_osi.c @@ -11,7 +11,7 @@ #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 */ @@ -805,11 +805,13 @@ afs_osi_TraverseProcTable(void) #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) @@ -846,6 +848,7 @@ afs_osi_TraverseProcTable() else rcu_read_unlock(); #endif +#endif } #endif diff --git a/src/audit/audit.c b/src/audit/audit.c index 8d2d7851f..f0f76dfbf 100644 --- a/src/audit/audit.c +++ b/src/audit/audit.c @@ -11,7 +11,7 @@ #include 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 #include @@ -97,11 +97,6 @@ audmakebuf(char *audEvent, va_list vaList) *(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) { @@ -148,7 +143,8 @@ audmakebuf(char *audEvent, va_list vaList) } 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; @@ -175,8 +171,12 @@ printbuf(FILE *out, int rec, char *audEvent, afs_int32 errCode, va_list vaList) 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) { @@ -223,11 +223,6 @@ printbuf(FILE *out, int rec, char *audEvent, afs_int32 errCode, va_list vaList) 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) @@ -265,8 +260,7 @@ printbuf(FILE *out, int rec, char *audEvent, afs_int32 errCode, va_list vaList) vaEntry = va_arg(vaList, int); } /* end while */ - if (strcmp(audEvent, "VALST") != 0) - fprintf(out, "\n"); + fprintf(out, "\n"); } #ifdef AFS_PTHREAD_ENV @@ -296,9 +290,11 @@ osi_audit_init(void) /* 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; @@ -306,7 +302,7 @@ osi_audit(char *audEvent, /* Event name (15 chars or less) */ 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(), @@ -320,6 +316,8 @@ osi_audit(char *audEvent, /* Event name (15 chars or less) */ if (!osi_audit_all && !auditout) return 0; + va_copy(vaCopy, vaList); + switch (errCode) { case 0: result = AUDIT_OK; @@ -354,30 +352,20 @@ osi_audit(char *audEvent, /* Event name (15 chars or less) */ *(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 @@ -387,6 +375,24 @@ osi_audit(char *audEvent, /* Event name (15 chars or less) */ 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 @@ -473,9 +479,8 @@ osi_auditU(struct rx_call *call, char *audEvent, int errCode, ...) 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; } diff --git a/src/auth/cellconfig.c b/src/auth/cellconfig.c index 0d6d97bdc..cc757a894 100644 --- a/src/auth/cellconfig.c +++ b/src/auth/cellconfig.c @@ -11,7 +11,7 @@ #include RCSID - ("$Header: /cvs/openafs/src/auth/cellconfig.c,v 1.40.2.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 #include @@ -476,29 +476,24 @@ afsconf_Open(register const char *adir) 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; } diff --git a/src/auth/ktc.c b/src/auth/ktc.c index e247cf81d..37d4b1f53 100644 --- a/src/auth/ktc.c +++ b/src/auth/ktc.c @@ -17,7 +17,7 @@ #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" @@ -59,9 +59,6 @@ RCSID #include #ifdef AFS_AIX_ENV #include -#ifdef AFS_AIX51_ENV -#include -#endif #endif #ifdef HAVE_UNISTD_H #include @@ -1615,13 +1612,6 @@ afs_tf_dest_tkt() 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; @@ -1645,7 +1635,6 @@ curpag() return -1; } return -1; -#endif } diff --git a/src/cf/linux-test4.m4 b/src/cf/linux-test4.m4 index 5485b2f23..2c2942336 100644 --- a/src/cf/linux-test4.m4 +++ b/src/cf/linux-test4.m4 @@ -644,3 +644,36 @@ AC_DEFUN([LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK], [ 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 ], +[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 ], +[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]) + diff --git a/src/cf/osconf.m4 b/src/cf/osconf.m4 index 4a74799b5..5fcbe5fee 100644 --- a/src/cf/osconf.m4 +++ b/src/cf/osconf.m4 @@ -213,7 +213,7 @@ case $AFS_SYSNAME in YACC="byacc" ;; - *nbsd2*|*nbsd3*) + *nbsd2*|*nbsd3*|*nbsd4*) LEX="flex -l" MT_CFLAGS='${XCFLAGS} -DAFS_PTHREAD_ENV -D_REENTRANT ' MT_LIBS="-lpthread" # XXX -pthread soon diff --git a/src/config/Makefile.version-NOCML.in b/src/config/Makefile.version-NOCML.in index 084d0b7dd..cd2dec1f9 100644 --- a/src/config/Makefile.version-NOCML.in +++ b/src/config/Makefile.version-NOCML.in @@ -10,7 +10,7 @@ VERSION=@VERSION@ 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 diff --git a/src/config/NTMakefile.amd64_w2k b/src/config/NTMakefile.amd64_w2k index a0c0bcfe2..02e170da6 100644 --- a/src/config/NTMakefile.amd64_w2k +++ b/src/config/NTMakefile.amd64_w2k @@ -80,7 +80,7 @@ LIB = $(AFSDEV_LIB) #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) diff --git a/src/config/NTMakefile.i386_nt40 b/src/config/NTMakefile.i386_nt40 index 9cab67a10..06a743252 100644 --- a/src/config/NTMakefile.i386_nt40 +++ b/src/config/NTMakefile.i386_nt40 @@ -80,7 +80,7 @@ LIB = $(AFSDEV_LIB) #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) diff --git a/src/config/NTMakefile.i386_w2k b/src/config/NTMakefile.i386_w2k index 78e3101de..cb748b587 100644 --- a/src/config/NTMakefile.i386_w2k +++ b/src/config/NTMakefile.i386_w2k @@ -80,7 +80,7 @@ LIB = $(AFSDEV_LIB) #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) diff --git a/src/config/afs_sysnames.h b/src/config/afs_sysnames.h index 4b864ac48..e683e274b 100644 --- a/src/config/afs_sysnames.h +++ b/src/config/afs_sysnames.h @@ -213,6 +213,20 @@ #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 diff --git a/src/config/afsconfig.h.in b/src/config/afsconfig.h.in index 19492a4ab..68785c301 100644 --- a/src/config/afsconfig.h.in +++ b/src/config/afsconfig.h.in @@ -37,6 +37,9 @@ /* 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 @@ -61,6 +64,9 @@ /* 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 diff --git a/src/config/param.i386_nbsd30.h b/src/config/param.i386_nbsd30.h index 3281d5a6a..1f935eca2 100644 --- a/src/config/param.i386_nbsd30.h +++ b/src/config/param.i386_nbsd30.h @@ -5,8 +5,8 @@ #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 */ diff --git a/src/kauth/authclient.c b/src/kauth/authclient.c index ee0d90175..ec5e2d636 100644 --- a/src/kauth/authclient.c +++ b/src/kauth/authclient.c @@ -17,7 +17,7 @@ #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" diff --git a/src/libafs/afs.ppc_darwin_70.plist.in b/src/libafs/afs.ppc_darwin_70.plist.in index bc7125d27..b4d1e5cf9 100644 --- a/src/libafs/afs.ppc_darwin_70.plist.in +++ b/src/libafs/afs.ppc_darwin_70.plist.in @@ -15,11 +15,11 @@ CFBundlePackageType KEXT CFBundleShortVersionString - 1.4.2fc4 + 1.4.2 CFBundleSignature ???? CFBundleVersion - 1.4.2fc4 + 1.4.2 OSBundleLibraries com.apple.kernel.bsd diff --git a/src/libafs/afs.ppc_darwin_80.plist.in b/src/libafs/afs.ppc_darwin_80.plist.in index efde73682..e01dfdaa3 100644 --- a/src/libafs/afs.ppc_darwin_80.plist.in +++ b/src/libafs/afs.ppc_darwin_80.plist.in @@ -15,11 +15,11 @@ CFBundlePackageType KEXT CFBundleShortVersionString - 1.4.2fc4 + 1.4.2 CFBundleSignature ???? CFBundleVersion - 1.4.2fc4 + 1.4.2 OSBundleLibraries com.apple.kpi.bsd diff --git a/src/libafs/afs.ppc_darwin_90.plist.in b/src/libafs/afs.ppc_darwin_90.plist.in index efde73682..e01dfdaa3 100644 --- a/src/libafs/afs.ppc_darwin_90.plist.in +++ b/src/libafs/afs.ppc_darwin_90.plist.in @@ -15,11 +15,11 @@ CFBundlePackageType KEXT CFBundleShortVersionString - 1.4.2fc4 + 1.4.2 CFBundleSignature ???? CFBundleVersion - 1.4.2fc4 + 1.4.2 OSBundleLibraries com.apple.kpi.bsd diff --git a/src/libafs/afs.x86_darwin_80.plist.in b/src/libafs/afs.x86_darwin_80.plist.in index efde73682..e01dfdaa3 100644 --- a/src/libafs/afs.x86_darwin_80.plist.in +++ b/src/libafs/afs.x86_darwin_80.plist.in @@ -15,11 +15,11 @@ CFBundlePackageType KEXT CFBundleShortVersionString - 1.4.2fc4 + 1.4.2 CFBundleSignature ???? CFBundleVersion - 1.4.2fc4 + 1.4.2 OSBundleLibraries com.apple.kpi.bsd diff --git a/src/libafs/afs.x86_darwin_90.plist.in b/src/libafs/afs.x86_darwin_90.plist.in index efde73682..e01dfdaa3 100644 --- a/src/libafs/afs.x86_darwin_90.plist.in +++ b/src/libafs/afs.x86_darwin_90.plist.in @@ -15,11 +15,11 @@ CFBundlePackageType KEXT CFBundleShortVersionString - 1.4.2fc4 + 1.4.2 CFBundleSignature ???? CFBundleVersion - 1.4.2fc4 + 1.4.2 OSBundleLibraries com.apple.kpi.bsd diff --git a/src/packaging/HP-UX/files/usr/vice/etc/CellServDB b/src/packaging/HP-UX/files/usr/vice/etc/CellServDB index 3c6316a28..818b37999 100644 --- a/src/packaging/HP-UX/files/usr/vice/etc/CellServDB +++ b/src/packaging/HP-UX/files/usr/vice/etc/CellServDB @@ -1,15 +1,19 @@ ->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 @@ -22,9 +26,9 @@ 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 @@ -37,8 +41,6 @@ 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 @@ -105,17 +107,17 @@ 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) @@ -172,8 +174,8 @@ 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 @@ -186,6 +188,8 @@ 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 @@ -261,6 +265,16 @@ 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 @@ -291,26 +305,24 @@ 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 @@ -344,6 +356,8 @@ >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 @@ -401,6 +415,7 @@ 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 @@ -451,11 +466,13 @@ >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 @@ -484,22 +501,16 @@ >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 @@ -543,6 +554,13 @@ 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 diff --git a/src/packaging/MacOS/2.0.txt b/src/packaging/MacOS/2.0.txt new file mode 100644 index 000000000..fe81a60ca --- /dev/null +++ b/src/packaging/MacOS/2.0.txt @@ -0,0 +1,367 @@ +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." diff --git a/src/packaging/MacOS/CellServDB b/src/packaging/MacOS/CellServDB new file mode 100644 index 000000000..818b37999 --- /dev/null +++ b/src/packaging/MacOS/CellServDB @@ -0,0 +1,569 @@ +>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 diff --git a/src/packaging/MacOS/CellServDB.list b/src/packaging/MacOS/CellServDB.list new file mode 100644 index 000000000..14b5b4fe2 --- /dev/null +++ b/src/packaging/MacOS/CellServDB.list @@ -0,0 +1,14 @@ +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 diff --git a/src/packaging/MacOS/DS_Store b/src/packaging/MacOS/DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..646bda65aa6be118f0801c380d88f194de75ead2 GIT binary patch literal 12292 zcmeI0OK;Oa5XZ+QeJLsQ!K3O0Ul0d`(@LBo4rvIbRaLc8Y0o5f9&Q|O6z3ro33B8+ zaN*bw0a6Z}_!gYG_Jlz2AMYBa4dqaw3W=F$cQ&&-GwWaM-K>eoDs;UyqGckQL18_g zM)e!velBA&VJsPF3;v|aXl3@?PGM}U7=(Zj5CTF#2nd0Hg8=qymYECoecday5D)_Y zB>`R^Y!udcqX$~YO9!g>2mqaeITp0%xdCk(oi}=*HF_YHc7@iimN{Zr+8uV=jLRE6 z&|15b6=y~qli4yS6f4dSyB!ZFE3dWGLO=+N6VPXOr?CC3SPn+d?-M6P4IXciv-RX~ zx2#ma&mO*3`~IpKJWtybUF*~2qVI-1^cjb0Kk5f6tl{gc#HUw}>Z*+ZueHT@Ysy4P z-Y)R7jQGCWOL|t&enhLG3M*yRX`)|CvS{$wj*c5I9Pn=WZb!%EOTZF!!b{EcZmSZm zZ|ocYGirER_^|naCSi2arD_zYnsSa>Jp0SYL&W=p9OKHLfPJQ*!;VqoTUKS!DBw z3~ztg15ZGI{5Ea;9j|#go^L)MfaiO!(rbHO)X+RaYpLn8FfSS)yB*#~j}qTp;OlzmJ1ot3kD`K)Ju3HL`{nnPUcj_VUAO@&v8& zoz=Y0DQF5MrM)k%F=l}da7BDo5w5F*`zgS^^Gx&duv15YOtEoQQ#ggw}bZ z2U;hKgnlGs|7R*9Lg4BNT+=C+`TYO%;`jeoKQYND1cbnq5wKFl{bB*>^wvC{m$zyg z~G>1cZPP5CTF#2nYco TAOwVf5D)@FKnMtdze?aIjco>y literal 0 HcmV?d00001 diff --git a/src/packaging/MacOS/InstallationCheck b/src/packaging/MacOS/InstallationCheck new file mode 100644 index 000000000..5f33391ad --- /dev/null +++ b/src/packaging/MacOS/InstallationCheck @@ -0,0 +1,10 @@ +#!/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 diff --git a/src/packaging/MacOS/InstallationCheck.strings b/src/packaging/MacOS/InstallationCheck.strings new file mode 100644 index 000000000..62d12c1bc --- /dev/null +++ b/src/packaging/MacOS/InstallationCheck.strings @@ -0,0 +1 @@ +"16" = "This OpenAFS release requires Tiger (10.4)" diff --git a/src/packaging/MacOS/License.rtf b/src/packaging/MacOS/License.rtf new file mode 100644 index 000000000..586d9734f --- /dev/null +++ b/src/packaging/MacOS/License.rtf @@ -0,0 +1,249 @@ +{\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.\ +} diff --git a/src/packaging/MacOS/Makefile b/src/packaging/MacOS/Makefile new file mode 100644 index 000000000..e4e3a0dcc --- /dev/null +++ b/src/packaging/MacOS/Makefile @@ -0,0 +1,37 @@ +# 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 , 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) diff --git a/src/packaging/MacOS/OpenAFS.Description.plist b/src/packaging/MacOS/OpenAFS.Description.plist new file mode 100644 index 000000000..d7c2cb879 --- /dev/null +++ b/src/packaging/MacOS/OpenAFS.Description.plist @@ -0,0 +1,14 @@ + + + + + IFPkgDescriptionDeleteWarning + + IFPkgDescriptionDescription + Mac OS X version of OpenAFS client and server. + IFPkgDescriptionTitle + OpenAFS + IFPkgDescriptionVersion + 1.2.10 + + diff --git a/src/packaging/MacOS/OpenAFS.Info.plist b/src/packaging/MacOS/OpenAFS.Info.plist new file mode 100644 index 000000000..ce3f0badd --- /dev/null +++ b/src/packaging/MacOS/OpenAFS.Info.plist @@ -0,0 +1,44 @@ + + + + + CFBundleGetInfoString + OpenAFS 1.4.2 + CFBundleIdentifier + org.openafs.OpenAFS.pkg + CFBundleName + OpenAFS + CFBundleShortVersionString + 1.4.2 + IFMajorVersion + 1 + IFMinorVersion + 4 + IFPkgFlagAllowBackRev + + IFPkgFlagAuthorizationAction + RootAuthorization + IFPkgFlagBackgroundAlignment + bottomright + IfPkgFlagBackgroundScaling + proportional + IFPkgFlagDefaultLocation + / + IFPkgFlagInstallFat + + IFPkgFlagIsRequired + + IFPkgFlagRelocatable + + IFPkgFlagRestartAction + NoRestart + IFPkgFlagRootVolumeOnly + + IFPkgFlagUpdateInstalledLanguages + + IFPkgFlagUseUserMask + + IFPkgFormatVersion + 0.10000000149011612 + + diff --git a/src/packaging/MacOS/OpenAFS.info b/src/packaging/MacOS/OpenAFS.info new file mode 100644 index 000000000..83d42b3c3 --- /dev/null +++ b/src/packaging/MacOS/OpenAFS.info @@ -0,0 +1,16 @@ +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 diff --git a/src/packaging/MacOS/OpenAFS.post_install b/src/packaging/MacOS/OpenAFS.post_install new file mode 100644 index 000000000..c840b1897 --- /dev/null +++ b/src/packaging/MacOS/OpenAFS.post_install @@ -0,0 +1,97 @@ +#!/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 + diff --git a/src/packaging/MacOS/OpenAFS.pre_upgrade b/src/packaging/MacOS/OpenAFS.pre_upgrade new file mode 100644 index 000000000..7925519c5 --- /dev/null +++ b/src/packaging/MacOS/OpenAFS.pre_upgrade @@ -0,0 +1,26 @@ +#!/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 diff --git a/src/packaging/MacOS/ReadMe.rtf b/src/packaging/MacOS/ReadMe.rtf new file mode 100644 index 000000000..120d3a22e --- /dev/null +++ b/src/packaging/MacOS/ReadMe.rtf @@ -0,0 +1,13 @@ +{\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.} diff --git a/src/packaging/MacOS/Uninstall b/src/packaging/MacOS/Uninstall new file mode 100755 index 000000000..1ca62f7ff --- /dev/null +++ b/src/packaging/MacOS/Uninstall @@ -0,0 +1,397 @@ +#!/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. +# + +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 () { + m/IFPkgFlagDefaultLocation/ or next; + $bomroot = ; + } + close (INFO); + + $bomroot =~ />(.*)) + { + 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 () + { + 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 () + { + 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 " " 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 "$c"; + } + } + +main (); + +#---------------------------------------------------------------------------------------- diff --git a/src/packaging/MacOS/afslogo.jpg b/src/packaging/MacOS/afslogo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..09af942179bafb3599347ec5e11f3c63a5062628 GIT binary patch literal 15949 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 literal 0 HcmV?d00001 diff --git a/src/packaging/MacOS/afssettings.m b/src/packaging/MacOS/afssettings.m new file mode 100644 index 000000000..f6f10886d --- /dev/null +++ b/src/packaging/MacOS/afssettings.m @@ -0,0 +1,173 @@ +/* + * 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 +#import +#import +#import +#import +#import +#import + +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; +} diff --git a/src/packaging/MacOS/background.jpg b/src/packaging/MacOS/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9c5374f383db7ed008fc16bb412e200005ba1348 GIT binary patch literal 14671 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 literal 0 HcmV?d00001 diff --git a/src/packaging/MacOS/buildpkg.sh b/src/packaging/MacOS/buildpkg.sh new file mode 100644 index 000000000..c05dfb979 --- /dev/null +++ b/src/packaging/MacOS/buildpkg.sh @@ -0,0 +1,228 @@ +#!/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 diff --git a/src/packaging/MacOS/csrvdbmerge.pl b/src/packaging/MacOS/csrvdbmerge.pl new file mode 100644 index 000000000..25426eaa6 --- /dev/null +++ b/src/packaging/MacOS/csrvdbmerge.pl @@ -0,0 +1,91 @@ +#!/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 ')) { + 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.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; diff --git a/src/packaging/MacOS/settings.plist b/src/packaging/MacOS/settings.plist new file mode 100644 index 000000000..36e897728 --- /dev/null +++ b/src/packaging/MacOS/settings.plist @@ -0,0 +1,14 @@ + + + + + Darwin + + All + + RealModes + + + + + diff --git a/src/packaging/MacOS/universal.sh b/src/packaging/MacOS/universal.sh new file mode 100755 index 000000000..5eeb22771 --- /dev/null +++ b/src/packaging/MacOS/universal.sh @@ -0,0 +1,23 @@ +#!/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 diff --git a/src/pam/afs_util.c b/src/pam/afs_util.c index 3f0513e3f..b9c1fefcb 100644 --- a/src/pam/afs_util.c +++ b/src/pam/afs_util.c @@ -25,12 +25,9 @@ #endif #endif #include -#ifdef AFS_AIX51_ENV -#include -#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" @@ -183,13 +180,6 @@ do_klog(const char *user, const char *password, const char *lifetime, 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; @@ -213,7 +203,6 @@ curpag(void) return -1; } return -1; -#endif } /* Returns the AFS pag number, if any, otherwise return -1 */ diff --git a/src/platform/DARWIN/Makefile.in b/src/platform/DARWIN/Makefile.in new file mode 100644 index 000000000..66af0801f --- /dev/null +++ b/src/platform/DARWIN/Makefile.in @@ -0,0 +1,30 @@ +# 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 diff --git a/src/platform/DARWIN/afssettings.m b/src/platform/DARWIN/afssettings.m new file mode 100644 index 000000000..f6f10886d --- /dev/null +++ b/src/platform/DARWIN/afssettings.m @@ -0,0 +1,173 @@ +/* + * 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 +#import +#import +#import +#import +#import +#import + +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; +} diff --git a/src/ptserver/ptuser.c b/src/ptserver/ptuser.c index bbea98d4e..08536e57e 100644 --- a/src/ptserver/ptuser.c +++ b/src/ptserver/ptuser.c @@ -15,7 +15,7 @@ #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" @@ -625,7 +625,6 @@ pr_CheckEntryByName(char *name, afs_int32 *id, char *owner, char *creator) 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. */ @@ -682,7 +681,7 @@ pr_ChangeEntry(char *oldname, char *newname, afs_int32 *newid, char *newowner) 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; } diff --git a/src/rx/rx_getaddr.c b/src/rx/rx_getaddr.c index c8bc41cc7..e9b567c06 100644 --- a/src/rx/rx_getaddr.c +++ b/src/rx/rx_getaddr.c @@ -11,7 +11,7 @@ #include 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 @@ -301,7 +301,7 @@ rxi_getAllAddrMaskMtu(afs_int32 addrBuffer[], afs_int32 maskBuffer[], 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) diff --git a/src/sys/pagsh.c b/src/sys/pagsh.c index 8bf41fa60..d0343657e 100644 --- a/src/sys/pagsh.c +++ b/src/sys/pagsh.c @@ -11,13 +11,10 @@ #include 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 -#ifdef AFS_AIX51_ENV -#include -#endif #endif #include #include @@ -89,13 +86,6 @@ main(int argc, char *argv[]) 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; @@ -119,7 +109,6 @@ curpag(void) return -1; } return -1; -#endif } int diff --git a/src/viced/afsfileprocs.c b/src/viced/afsfileprocs.c index 92d127d14..3972d9df0 100644 --- a/src/viced/afsfileprocs.c +++ b/src/viced/afsfileprocs.c @@ -29,7 +29,7 @@ #include RCSID - ("$Header: /cvs/openafs/src/viced/afsfileprocs.c,v 1.81.2.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 #include @@ -1213,11 +1213,7 @@ CopyOnWrite(Vnode * targetptr, Volume * volptr) ("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); diff --git a/src/vol/clone.c b/src/vol/clone.c index 0cf9bed32..a4cb3e1f3 100644 --- a/src/vol/clone.c +++ b/src/vol/clone.c @@ -19,7 +19,7 @@ #include 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 #include @@ -256,7 +256,8 @@ DoCloneIndex(Volume * rwvp, Volume * clvp, VnodeClass class, int reclone) 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; } @@ -308,7 +309,8 @@ DoCloneIndex(Volume * rwvp, Volume * clvp, VnodeClass class, int reclone) 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 */ diff --git a/src/volser/dumpstuff.c b/src/volser/dumpstuff.c index bf7bdcb69..870ab2bad 100644 --- a/src/volser/dumpstuff.c +++ b/src/volser/dumpstuff.c @@ -11,7 +11,7 @@ #include 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 #include @@ -530,11 +530,11 @@ DumpFile(struct iod *iodp, int vnode, FdHandle_t * handleP) afs_sfsize_t size; #ifdef AFS_AIX_ENV #include -#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 @@ -550,16 +550,16 @@ DumpFile(struct iod *iodp, int vnode, FdHandle_t * handleP) /* 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 */ -- 2.39.5