]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Merge 1.4.2 upstream changes onto trunk.
authorSam Hartman <hartmans@debian.org>
Fri, 20 Oct 2006 10:28:22 +0000 (10:28 +0000)
committerSam Hartman <hartmans@debian.org>
Fri, 20 Oct 2006 10:28:22 +0000 (10:28 +0000)
68 files changed:
Makefile.in
acinclude.m4
configure
configure-libafs
configure-libafs.in
configure.in
doc/txt/RELNOTES-1.4.2 [new file with mode: 0644]
doc/txt/RELNOTES-1.4.2fc4 [new file with mode: 0644]
doc/txt/winnotes/afs-changes-since-1.2.txt
src/afs/IRIX/osi_machdep.h
src/afs/LINUX/osi_groups.c
src/afs/LINUX/osi_probe.c
src/afs/LINUX/osi_vfsops.c
src/afs/LINUX/osi_vnodeops.c
src/afs/UKERNEL/sysincludes.h
src/afs/VNOPS/afs_vnop_create.c
src/afs/afs_call.c
src/afs/afs_osi.c
src/audit/audit.c
src/auth/cellconfig.c
src/auth/ktc.c
src/cf/linux-test4.m4
src/cf/osconf.m4
src/config/Makefile.version-NOCML.in
src/config/NTMakefile.amd64_w2k
src/config/NTMakefile.i386_nt40
src/config/NTMakefile.i386_w2k
src/config/afs_sysnames.h
src/config/afsconfig.h.in
src/config/param.i386_nbsd30.h
src/kauth/authclient.c
src/libafs/afs.ppc_darwin_70.plist.in
src/libafs/afs.ppc_darwin_80.plist.in
src/libafs/afs.ppc_darwin_90.plist.in
src/libafs/afs.x86_darwin_80.plist.in
src/libafs/afs.x86_darwin_90.plist.in
src/packaging/HP-UX/files/usr/vice/etc/CellServDB
src/packaging/MacOS/2.0.txt [new file with mode: 0644]
src/packaging/MacOS/CellServDB [new file with mode: 0644]
src/packaging/MacOS/CellServDB.list [new file with mode: 0644]
src/packaging/MacOS/DS_Store [new file with mode: 0644]
src/packaging/MacOS/InstallationCheck [new file with mode: 0644]
src/packaging/MacOS/InstallationCheck.strings [new file with mode: 0644]
src/packaging/MacOS/License.rtf [new file with mode: 0644]
src/packaging/MacOS/Makefile [new file with mode: 0644]
src/packaging/MacOS/OpenAFS.Description.plist [new file with mode: 0644]
src/packaging/MacOS/OpenAFS.Info.plist [new file with mode: 0644]
src/packaging/MacOS/OpenAFS.info [new file with mode: 0644]
src/packaging/MacOS/OpenAFS.post_install [new file with mode: 0644]
src/packaging/MacOS/OpenAFS.pre_upgrade [new file with mode: 0644]
src/packaging/MacOS/ReadMe.rtf [new file with mode: 0644]
src/packaging/MacOS/Uninstall [new file with mode: 0755]
src/packaging/MacOS/afslogo.jpg [new file with mode: 0644]
src/packaging/MacOS/afssettings.m [new file with mode: 0644]
src/packaging/MacOS/background.jpg [new file with mode: 0644]
src/packaging/MacOS/buildpkg.sh [new file with mode: 0644]
src/packaging/MacOS/csrvdbmerge.pl [new file with mode: 0644]
src/packaging/MacOS/settings.plist [new file with mode: 0644]
src/packaging/MacOS/universal.sh [new file with mode: 0755]
src/pam/afs_util.c
src/platform/DARWIN/Makefile.in [new file with mode: 0644]
src/platform/DARWIN/afssettings.m [new file with mode: 0644]
src/ptserver/ptuser.c
src/rx/rx_getaddr.c
src/sys/pagsh.c
src/viced/afsfileprocs.c
src/vol/clone.c
src/volser/dumpstuff.c

index 7e906bdfa5251e94a4adbf92af83f097ed2e9b62..25c011ec20a6a500942dff33c8cd99a85e387d2c 100644 (file)
@@ -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 \
index 5485607a9e20e33d0fca68ee06caaab0137475d1..fb8001a5312f9343895b74b87c8c374e6f6e4be5 100644 (file)
@@ -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
index e40394697f33d3d81ede07815a6780e366498003..6bde4b81bb73487eefd08ee680d78822fd36958d 100755 (executable)
--- 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 <linux/module.h>
+#include <linux/fs.h>
+
+void conftest(void)
+{
+do_sync_read(NULL, NULL, 0, NULL);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+    cd ..
+  fi
+  if { (echo "$as_me:$LINENO: make -C \$LINUX_KERNEL_PATH M=\`pwd\`/conftest.dir modules > /dev/null") >&5
+  (make -C $LINUX_KERNEL_PATH M=`pwd`/conftest.dir modules > /dev/null) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  ac_cv_linux_do_sync_read=yes
+else
+  ac_cv_linux_do_sync_read=no
+fi
+
+  rm -fr conftest.dir
+  else
+
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <linux/fs.h>
+int
+main ()
+{
+do_sync_read(NULL, NULL, 0, NULL);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_linux_do_sync_read=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_linux_do_sync_read=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  fi
+    CPPFLAGS="$save_CPPFLAGS"
+fi
+
+  { echo "$as_me:$LINENO: result: $ac_cv_linux_do_sync_read" >&5
+echo "${ECHO_T}$ac_cv_linux_do_sync_read" >&6; }
+  if test "x$ac_cv_linux_do_sync_read" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define DO_SYNC_READ 1
+_ACEOF
+
+  fi
+
+  { echo "$as_me:$LINENO: checking for linux generic_file_aio_read()" >&5
+echo $ECHO_N "checking for linux generic_file_aio_read()... $ECHO_C" >&6; }
+  if test "${ac_cv_linux_generic_file_aio_read+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    save_CPPFLAGS="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+
+  if test -f $LINUX_KERNEL_PATH/scripts/Makefile.build; then
+
+  rm -fr conftest.dir
+  if mkdir conftest.dir; then
+  cd conftest.dir
+    cat >Makefile <<_ACEOF
+CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+    cat >conftest.c <<\_ACEOF
+#include <linux/module.h>
+#include <linux/fs.h>
+
+void conftest(void)
+{
+generic_file_aio_read(NULL, NULL, 0, 0);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+    cd ..
+  fi
+  if { (echo "$as_me:$LINENO: make -C \$LINUX_KERNEL_PATH M=\`pwd\`/conftest.dir modules > /dev/null") >&5
+  (make -C $LINUX_KERNEL_PATH M=`pwd`/conftest.dir modules > /dev/null) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  ac_cv_linux_generic_file_aio_read=yes
+else
+  ac_cv_linux_generic_file_aio_read=no
+fi
+
+  rm -fr conftest.dir
+  else
+
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <linux/fs.h>
+int
+main ()
+{
+generic_file_aio_read(NULL, NULL, 0, 0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_linux_generic_file_aio_read=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_linux_generic_file_aio_read=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  fi
+    CPPFLAGS="$save_CPPFLAGS"
+fi
+
+  { echo "$as_me:$LINENO: result: $ac_cv_linux_generic_file_aio_read" >&5
+echo "${ECHO_T}$ac_cv_linux_generic_file_aio_read" >&6; }
+  if test "x$ac_cv_linux_generic_file_aio_read" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define GENERIC_FILE_AIO_READ 1
+_ACEOF
+
+  fi
+
   { echo "$as_me:$LINENO: checking for exported sys_chdir" >&5
 echo $ECHO_N "checking for exported sys_chdir... $ECHO_C" >&6; }
   if test "${ac_cv_linux_exports_sys_chdir+set}" = set; then
@@ -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
index de338b190040af2f8a9e73ebc1bf85dc27060c10..4bdcee4d2c0e98648bce739f1615b2a3ab5b75ed 100755 (executable)
@@ -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 <linux/module.h>
+#include <linux/fs.h>
+
+void conftest(void)
+{
+do_sync_read(NULL, NULL, 0, NULL);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+    cd ..
+  fi
+  if { (echo "$as_me:$LINENO: make -C \$LINUX_KERNEL_PATH M=\`pwd\`/conftest.dir modules > /dev/null") >&5
+  (make -C $LINUX_KERNEL_PATH M=`pwd`/conftest.dir modules > /dev/null) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  ac_cv_linux_do_sync_read=yes
+else
+  ac_cv_linux_do_sync_read=no
+fi
+
+  rm -fr conftest.dir
+  else
+
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <linux/fs.h>
+int
+main ()
+{
+do_sync_read(NULL, NULL, 0, NULL);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_linux_do_sync_read=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_linux_do_sync_read=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  fi
+    CPPFLAGS="$save_CPPFLAGS"
+fi
+
+  { echo "$as_me:$LINENO: result: $ac_cv_linux_do_sync_read" >&5
+echo "${ECHO_T}$ac_cv_linux_do_sync_read" >&6; }
+  if test "x$ac_cv_linux_do_sync_read" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define DO_SYNC_READ 1
+_ACEOF
+
+  fi
+
+  { echo "$as_me:$LINENO: checking for linux generic_file_aio_read()" >&5
+echo $ECHO_N "checking for linux generic_file_aio_read()... $ECHO_C" >&6; }
+  if test "${ac_cv_linux_generic_file_aio_read+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    save_CPPFLAGS="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+
+  if test -f $LINUX_KERNEL_PATH/scripts/Makefile.build; then
+
+  rm -fr conftest.dir
+  if mkdir conftest.dir; then
+  cd conftest.dir
+    cat >Makefile <<_ACEOF
+CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+    cat >conftest.c <<\_ACEOF
+#include <linux/module.h>
+#include <linux/fs.h>
+
+void conftest(void)
+{
+generic_file_aio_read(NULL, NULL, 0, 0);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+    cd ..
+  fi
+  if { (echo "$as_me:$LINENO: make -C \$LINUX_KERNEL_PATH M=\`pwd\`/conftest.dir modules > /dev/null") >&5
+  (make -C $LINUX_KERNEL_PATH M=`pwd`/conftest.dir modules > /dev/null) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  ac_cv_linux_generic_file_aio_read=yes
+else
+  ac_cv_linux_generic_file_aio_read=no
+fi
+
+  rm -fr conftest.dir
+  else
+
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <linux/fs.h>
+int
+main ()
+{
+generic_file_aio_read(NULL, NULL, 0, 0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_linux_generic_file_aio_read=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_linux_generic_file_aio_read=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  fi
+    CPPFLAGS="$save_CPPFLAGS"
+fi
+
+  { echo "$as_me:$LINENO: result: $ac_cv_linux_generic_file_aio_read" >&5
+echo "${ECHO_T}$ac_cv_linux_generic_file_aio_read" >&6; }
+  if test "x$ac_cv_linux_generic_file_aio_read" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define GENERIC_FILE_AIO_READ 1
+_ACEOF
+
+  fi
+
   { echo "$as_me:$LINENO: checking for exported sys_chdir" >&5
 echo $ECHO_N "checking for exported sys_chdir... $ECHO_C" >&6; }
   if test "${ac_cv_linux_exports_sys_chdir+set}" = set; then
@@ -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
index a99a2ea1d08e1d4ab863b678ce569e8c77863cc6..961c6816e8b305cb45f0049c8d0d425209cc0cae 100644 (file)
@@ -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)
 
index 8884f1adf484405daec82463fb5e8c5b09956c3e..7fe6cadcf25ff3aa6a5606bb293a91ef7cf66d4e 100644 (file)
@@ -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 (file)
index 0000000..4dba586
--- /dev/null
@@ -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 (file)
index 0000000..b42eebe
--- /dev/null
@@ -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
index 010b3d22836c70b71ce06df0d9097e0bf12e8351..107626d755178444c4e7da22b26b41d7c90f56f7 100644 (file)
@@ -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
index e13bbfb8add08db9cfff1626f335373af560e20e..032797cabc4bfb59a431d8bfad6bbe3e09429e6c 100644 (file)
@@ -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 */
index ec6c21a2bfe52ee3760faec121c8898fb73f4169..3aee872cb377a9b00e422b8ba8f1e06b015aa91b 100644 (file)
@@ -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)
index 48c7c93efc7d238bd290b2891deb392158d5c1a8..d70235d768032f2b9dd032e826133fc6e34922b4 100644 (file)
@@ -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);
index d3b36f558c25d57a5cab25302d098386fdeaeded..54bca905fd41cb479bcb252972e320239afad97f 100644 (file)
@@ -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 <linux/module.h> /* 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
index 93bf028ff2836bb0c3d243d7f87496ba57dd7b80..e235829cdf8723565c89f53b2f381908438332fc 100644 (file)
@@ -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);
index 54f078beb117f2f53acbd79bf20979a68ef2f0bc..2c851b0e2cb2cb6c37e64fc3633f9335434fd074 100644 (file)
@@ -21,7 +21,9 @@
 #include  <limits.h>
 #include  <assert.h>
 #include  <stdarg.h>
+#if !defined(AFS_USR_DARWIN_ENV) && !defined(AFS_USR_FBSD_ENV) /* must be included after KERNEL undef'd */
 #include <setjmp.h>
+#endif
 
 #ifdef AFS_USR_SUN5_ENV
 #include  <signal.h>
 #define AFS_USR_UNDEF_KERNEL_ENV 1
 #endif
 #include  <errno.h>
+#include  <setjmp.h>
 #include  <sys/param.h>
 #include  <sys/types.h>
 #include  <sys/socket.h>
index b84eae195221adf81483e8ebec68cf530e3a117d..4640530840b9b1cc2ae1d53f1f3e190160a4e4cb 100644 (file)
@@ -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 */
index 0088fd1307b6f495e4f695336c40b283019a7bd6..103c1bd69492e8a9ea79b2d53dc65cfee12203f4 100644 (file)
@@ -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)
index 2d052bc36b87060297ce0aaad837c67ac67bcf35..588411786b963ce05798d84381ce316d6a1753bc 100644 (file)
@@ -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
 
index 8d2d7851f90aa0b4acd08718650db3d24980d05f..f0f76dfbfbd307935e0f71004bc439819b812077 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/audit/audit.c,v 1.8.2.9 2006/07/31 18:15:34 shadow Exp $");
+    ("$Header: /cvs/openafs/src/audit/audit.c,v 1.8.2.12 2006/10/13 19:42:19 shadow Exp $");
 
 #include <fcntl.h>
 #include <stdarg.h>
@@ -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;
 }
 
index 0d6d97bdc3b4c1d314db39d0552768f43312d086..cc757a89427588141224519755b9716a1769d200 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/auth/cellconfig.c,v 1.40.2.8 2006/09/17 05:01:56 shadow Exp $");
+    ("$Header: /cvs/openafs/src/auth/cellconfig.c,v 1.40.2.11 2006/10/10 20:29:18 shadow Exp $");
 
 #include <afs/stds.h>
 #include <afs/pthread_glock.h>
@@ -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;
 }
 
index e247cf81d1963602410e5cc7e745aa03de61e368..37d4b1f5352a2b3854b2d5b867ad2e57b7656d36 100644 (file)
@@ -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 <afs/vice.h>
 #ifdef AFS_AIX_ENV
 #include <sys/lockf.h>
-#ifdef AFS_AIX51_ENV
-#include <sys/cred.h>
-#endif
 #endif
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
@@ -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
 }
 
 
index 5485b2f232f3330bd140dbe71c258dcb0d3bb15c..2c29423367c1474cdfcddc64aee6c50dcdf53b56 100644 (file)
@@ -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 <linux/fs.h>],
+[do_sync_read(NULL, NULL, 0, NULL);],
+      ac_cv_linux_do_sync_read=yes,
+      ac_cv_linux_do_sync_read=no)
+    CPPFLAGS="$save_CPPFLAGS"])
+  AC_MSG_RESULT($ac_cv_linux_do_sync_read)
+  if test "x$ac_cv_linux_do_sync_read" = "xyes"; then
+    AC_DEFINE([DO_SYNC_READ], 1, [define if your kernel has do_sync_read()])
+  fi])
+
+AC_DEFUN([LINUX_GENERIC_FILE_AIO_READ], [
+  AC_MSG_CHECKING([for linux generic_file_aio_read()])
+  AC_CACHE_VAL([ac_cv_linux_generic_file_aio_read], [
+    save_CPPFLAGS="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+    AC_TRY_KBUILD(
+[#include <linux/fs.h>],
+[generic_file_aio_read(NULL, NULL, 0, 0);],
+      ac_cv_linux_generic_file_aio_read=yes,
+      ac_cv_linux_generic_file_aio_read=no)
+    CPPFLAGS="$save_CPPFLAGS"])
+  AC_MSG_RESULT($ac_cv_linux_generic_file_aio_read)
+  if test "x$ac_cv_linux_generic_file_aio_read" = "xyes"; then
+    AC_DEFINE([GENERIC_FILE_AIO_READ], 1, [define if your kernel has generic_file_aio_read()])
+  fi])
+
index 4a74799b52c4d6a41f8c6d327c5eea2cc2aaa492..5fcbe5fee55da2ba1c66a7f49b147aa93a73d252 100644 (file)
@@ -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
index 084d0b7dd328ebe47159da401a7963f4c5deddb1..cd2dec1f92078aaa626c6b0ee1ec7b05f768b9e8 100644 (file)
@@ -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
 
index a0c0bcfe2bc3e1020131e14c858bf84cfcbb3c3b..02e170da695c75944b0a0d9e9491d3a56654e82b 100644 (file)
@@ -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)
index 9cab67a10e6340f0cff11dd749b4fdeb6964bd93..06a743252c4afdf9061c87c47fd0a940f2e00407 100644 (file)
@@ -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)
index 78e3101de27113f30e23e168804e240055ac86f7..cb748b5870b1c9392013b6613847d3ce3113ed64 100644 (file)
@@ -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)
index 4b864ac480f4afb0a03712ad014e5ac9c70eb3c0..e683e274b8238bd4410ec4eb513b5192af8eb320 100644 (file)
 #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
index 19492a4abe65671c0f11a5d5791dc8dcb68275ed..68785c3012953288618dae9001cbfdc69f2bcf63 100644 (file)
@@ -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
 
index 3281d5a6af00aa41727f0380976af3fda0b4c73a..1f935eca2163f296bbb6f79e406f023cfc70594f 100644 (file)
@@ -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 */
index ee0d901759d9cf57249ff0dcd85432d474cb843e..ec5e2d636ab5ac1fa782abb9f3029b2b2b08d8db 100644 (file)
@@ -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"
index bc7125d2731c6ee436e4248ed9165dc16f456043..b4d1e5cf9689706d7db294df24510062d19f9a62 100644 (file)
        <key>CFBundlePackageType</key>
        <string>KEXT</string>
        <key>CFBundleShortVersionString</key>
-       <string>1.4.2fc4</string>
+       <string>1.4.2</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>1.4.2fc4</string>
+       <string>1.4.2</string>
        <key>OSBundleLibraries</key>
        <dict>
                <key>com.apple.kernel.bsd</key>
index efde736828797ace0195fe76ce66143f82fec9c5..e01dfdaa3df661009facdb88efec5b90bb61b7c9 100644 (file)
        <key>CFBundlePackageType</key>
        <string>KEXT</string>
        <key>CFBundleShortVersionString</key>
-       <string>1.4.2fc4</string>
+       <string>1.4.2</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>1.4.2fc4</string>
+       <string>1.4.2</string>
        <key>OSBundleLibraries</key>
        <dict>
                <key>com.apple.kpi.bsd</key>
index efde736828797ace0195fe76ce66143f82fec9c5..e01dfdaa3df661009facdb88efec5b90bb61b7c9 100644 (file)
        <key>CFBundlePackageType</key>
        <string>KEXT</string>
        <key>CFBundleShortVersionString</key>
-       <string>1.4.2fc4</string>
+       <string>1.4.2</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>1.4.2fc4</string>
+       <string>1.4.2</string>
        <key>OSBundleLibraries</key>
        <dict>
                <key>com.apple.kpi.bsd</key>
index efde736828797ace0195fe76ce66143f82fec9c5..e01dfdaa3df661009facdb88efec5b90bb61b7c9 100644 (file)
        <key>CFBundlePackageType</key>
        <string>KEXT</string>
        <key>CFBundleShortVersionString</key>
-       <string>1.4.2fc4</string>
+       <string>1.4.2</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>1.4.2fc4</string>
+       <string>1.4.2</string>
        <key>OSBundleLibraries</key>
        <dict>
                <key>com.apple.kpi.bsd</key>
index efde736828797ace0195fe76ce66143f82fec9c5..e01dfdaa3df661009facdb88efec5b90bb61b7c9 100644 (file)
        <key>CFBundlePackageType</key>
        <string>KEXT</string>
        <key>CFBundleShortVersionString</key>
-       <string>1.4.2fc4</string>
+       <string>1.4.2</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>1.4.2fc4</string>
+       <string>1.4.2</string>
        <key>OSBundleLibraries</key>
        <dict>
                <key>com.apple.kpi.bsd</key>
index 3c6316a288376385eaf207771d9cae1b0ea72378..818b3799968ba774aed2e51a1c90a1f4446313ea 100644 (file)
@@ -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
 144.41.2.3                      #rs14.serv.uni-hohenheim.de
 144.41.2.4                      #rs15.serv.uni-hohenheim.de
 >rz.uni-jena.de         #Rechenzentrum University of Jena, Germany
-141.35.2.160                    #lc00.rz.uni-jena.de
-141.35.7.9                      #fsuj01.rz.uni-jena.de
-141.35.7.10                     #zaphod.rz.uni-jena
+141.35.2.180                    #afs00.rz.uni-jena.de
+141.35.2.181                    #afs01.rz.uni-jena.de
+141.35.2.182                    #afs02.rz.uni-jena.de
 >meteo.uni-koeln.de     #Univ. of Cologne - Inst. for Geophysics & Meteorology
 134.95.144.22                   #afs1.meteo.uni-koeln.de
 134.95.144.24                   #afs2.meteo.uni-koeln.de
 >rrz.uni-koeln.de       #University of Cologne - Reg Comp Center
 134.95.19.3                     #afsdb1.rrz.uni-koeln.de
-134.95.19.30                    #fileserv3.rrz.uni-koeln.de
+134.95.19.10                    #lyra.rrz.uni-koeln.de
 134.95.67.97                    #afs.thp.uni-koeln.de
-134.95.140.190                  #rzkbserv.rrz.uni-koeln.de
+134.95.141.243                  #agrippina.rrz.uni-koeln.de
 >physik.uni-mainz.de    #institute of physics, university Mainz, Germany
 134.93.130.93                   #hardy.physik.uni-mainz.de
 >uni-mannheim.de        #Uni Mannheim (Rechenzentrum)
 204.194.25.7                    #afs1.qatar.cmu.edu
 204.194.25.8                    #afs2.qatar.cmu.edu
 >sbp.ri.cmu.edu         #Carnegie Mellon University - Sensor Based Planning Lab
-128.2.56.129                    #nihao.sbp.ri.cmu.edu
-128.2.56.136                    #youtheman.sbp.ri.cmu.edu
+128.2.179.12                    #nihao.sbp.ri.cmu.edu
+128.2.179.113                   #youtheman.sbp.ri.cmu.edu
 >msc.cornell.edu        #Cornell University Materials Science Center
 128.84.231.242                  #miranda.ccmr.cornell.edu
 128.84.241.35                   #co.ccmr.cornell.edu
 129.170.16.22                   #halley.dartmouth.edu
 129.170.16.42                   #oort.dartmouth.edu
 129.170.16.43                   #cygnusx1.dartmouth.edu
+>cs.fhm.edu             #Department Computer Science Munich University Of Applied Science
+129.187.208.2                   #srv1.informatik.fh-muenchen.de
 >eecs.harvard.edu       #Harvard - EECS
 140.247.60.61                   #zermelo.eecs.harvard.edu
 140.247.60.83                   #corfu.eecs.harvard.edu
 134.79.18.25                    #afsdb1.slac.stanford.edu
 134.79.18.26                    #afsdb2.slac.stanford.edu
 134.79.18.27                    #afsdb3.slac.stanford.edu
+>ucdavis.edu            #University of California at Davis
+169.237.104.100                 #afs1.ucdavis.edu
+169.237.235.176                 #afs2.ucdavis.edu
+169.237.247.91                  #afs3.ucdavis.edu
+>home.ucdavis.edu       #University of California at Davis home directories
+169.237.105.91                  #home1.ucdavis.edu
+169.237.105.92                  #home2.ucdavis.edu
+169.237.105.93                  #home3.ucdavis.edu
+>physics.ucsb.edu       #UC Santa Barbara, Physics Dept
+128.111.18.161                  #ledzeppelin.physics.ucsb.edu
 >cats.ucsc.edu          #UC Santa Cruz, Comm. and Tech. Services, California U.S.A
 128.114.129.14                  #elan.ucsc.edu
 128.114.129.15                  #ichabod.ucsc.edu
 141.211.1.34                    #ruthless.ifs.umich.edu
 >atlas.umich.edu        #ATLAS group cell in physics at University of Michigan
 141.211.43.102                  #linat02.grid.umich.edu
-141.211.43.106                  #linat06.grid.umich.edu
-141.211.43.109                  #atgrid.grid.umich.edu
+141.211.43.103                  #linat03.grid.umich.edu
+141.211.43.104                  #linat04.grid.umich.edu
 >citi.umich.edu         #Center for Information Technology Integration
 141.211.133.5                   #babylon.citi.umich.edu
 >lsa.umich.edu          #University of Michigan - College of LS&A
 141.211.211.53                  #gerow.lsa.umich.edu
 141.211.211.72                  #collines.lsa.umich.edu
 141.211.211.153                 #hodges.lsa.umich.edu
->umr.edu                #University of Missouri - Rolla
-131.151.1.59                    #afsdb1.umr.edu
-131.151.1.70                    #afsdb3.umr.edu
-131.151.1.146                   #afsdb2.umr.edu
+>sph.umich.edu          #University of Michigan -- School of Public Health
+141.211.50.41                   #afssph0.sph.umich.edu
 >physics.unc.edu        #Univ. of NC at Chapel Hill, Dept. of Physics
 152.2.4.1                       #who.physics.unc.edu
 152.2.4.3                       #what.physics.unc.edu
 152.2.4.5                       #when.physics.unc.edu
 >uncc.edu               #University of NC at Charlotte Mosaic AFS Cell
 152.15.10.70                    #as-sm1.uncc.edu
-152.15.13.7                     #as-sm2.uncc.edu
-152.15.30.27                    #fs-kenn3.uncc.edu
+152.15.93.186                   #as-ece1.uncc.edu
+152.15.181.175                  #as-me1.uncc.edu
 >eng.utah.edu           #University of Utah - Engineering
 155.99.222.9                    #lenny.eng.utah.edu
 155.99.222.10                   #carl.eng.utah.edu
 >dapnia.saclay.cea.fr   #CEA DAPNIA
 132.166.32.7                    #dphrsg.saclay.cea.fr
 132.166.32.12                   #dphrsl.saclay.cea.fr
+>grif.fr                #GRIF cell
+192.54.208.18                   #node03.datagrid.cea.fr
 >in2p3.fr               #IN2P3 production cell
 134.158.232.11                  #ccafsdb1.in2p3.fr
 134.158.232.12                  #ccafsdb2.in2p3.fr
 192.84.134.75                   #afsna.na.infn.it
 >ba.infn.it             #INFN, Sezione di Bari
 193.206.185.235                 #baafsserver.ba.infn.it
+193.206.185.236                 #debsrv.ba.infn.it
 >kloe.infn.it           #INFN, KLOE experiment at Laboratori di Frascati
 192.135.25.111                  #kloeafs1.lnf.infn.it
 192.135.25.112                  #kloeafs2.lnf.infn.it
 >laroia.net             #Laroia Networks
 66.66.102.254                   #supercore.laroia.net
 >sinenomine.net         #Sine Nomine Associates
-66.92.236.139                   #afs.sinenomine.net
+192.204.203.218                 #va.sinenomine.net
 >slackers.net           #The Slackers' Network
 63.201.48.27                    #alexandria.slackers.net
 >tproa.net              #The People's Republic of Ames
 209.234.76.70                   #service-3.tproa.net
+209.234.76.75                   #service-4.tproa.net
+209.234.76.76                   #service-5.tproa.net
 >nikhef.nl              #The Dutch National Institute for High Energy Physics
 192.16.185.26                   #afs1.nikhef.nl
 192.16.185.27                   #afs2.nikhef.nl
 >oc7.org                #The OC7 Project
 128.2.122.140                   #knife.oc7.org
 207.22.77.170                   #spoon.oc7.org
->openafs.org            #OpenAFS Project
-18.7.14.88                      #grand-opening.mit.edu
-128.2.191.224                   #penn.central.org
-130.237.48.87                   #andrew.e.kth.se
->e.kth.se               #Royal Institute of Technology, Elektro
+>kth.se                 #Royal Institute of Technology, Stockholm, Sweden
 130.237.32.145                  #sonen.e.kth.se
 130.237.48.7                    #anden.e.kth.se
 130.237.48.244                  #fadern.e.kth.se
 >hallf.kth.se           #Royal Institute of Technology, HALLF
-130.237.24.141                  #rasmus13.hallf.kth.se
-130.237.24.152                  #rasmus3.hallf.kth.se
-130.237.24.177                  #rasmus29.hallf.kth.se
+130.237.24.11                   #afs1.hallf.kth.se
+130.237.24.104                  #afs2.hallf.kth.se
 >isk.kth.se             #Royal Institute of Technology, ISK
-130.237.202.12                  #afsdb2.isk.kth.se
-130.237.206.13                  #afsdb1.isk.kth.se
-130.237.209.141                 #afsdb3.isk.kth.se
+130.237.202.3                   #afsdb1.isk.kth.se
+130.237.209.39                  #ezri.isk.kth.se
 >it.kth.se              #Royal Institute of Technology, IT
 130.237.212.15                  #ptah.it.kth.se
 130.237.212.16                  #toth.it.kth.se
 193.2.120.2                     #solkan.p-ng.si
 >phy.bris.ac.uk         #Bristol University - phyics
 137.222.58.9                    #afs1.phy.bris.ac.uk
+>inf.ed.ac.uk           #School of Informatics, University of Edinburgh
+129.215.64.16                   #afsdb0.inf.ed.ac.uk
+129.215.64.17                   #afsdb1.inf.ed.ac.uk
+129.215.64.18                   #afsdb2.inf.ed.ac.uk
+>ic.ac.uk               #Imperial College London
+155.198.63.148                  #icafs2.cc.ic.ac.uk
+155.198.63.149                  #icafs1.cc.ic.ac.uk
 >hep.man.ac.uk          #Manchester HEP
 194.36.2.3                      #afs1.hep.man.ac.uk
 194.36.2.4                      #afs2.hep.man.ac.uk
diff --git a/src/packaging/MacOS/2.0.txt b/src/packaging/MacOS/2.0.txt
new file mode 100644 (file)
index 0000000..fe81a60
--- /dev/null
@@ -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 (file)
index 0000000..818b379
--- /dev/null
@@ -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 (file)
index 0000000..14b5b4f
--- /dev/null
@@ -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 (file)
index 0000000..646bda6
Binary files /dev/null and b/src/packaging/MacOS/DS_Store differ
diff --git a/src/packaging/MacOS/InstallationCheck b/src/packaging/MacOS/InstallationCheck
new file mode 100644 (file)
index 0000000..5f33391
--- /dev/null
@@ -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 (file)
index 0000000..62d12c1
--- /dev/null
@@ -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 (file)
index 0000000..586d973
--- /dev/null
@@ -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 (file)
index 0000000..e4e3a0d
--- /dev/null
@@ -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 <afs/sysctl.h>, or we are in a directory where configure
+# was run, so the afs/sysctl.h should be in the include subdirectory
+AFSINCLUDE = -I../.. -Iinclude
+CFLAGS = -Os $(AFSINCLUDE) $(ARCHFLAGS)
+LIBS = -framework Foundation
+ALL = afssettings
+DIR = $(shell dirname $(MAKEFILE_LIST))
+
+all: $(ALL)
+
+afssettings : $(DIR)/afssettings.m
+       cc $(CFLAGS) -o $@ $^ $(LIBS)
+
+clean:
+       @rm -f $(ALL)
diff --git a/src/packaging/MacOS/OpenAFS.Description.plist b/src/packaging/MacOS/OpenAFS.Description.plist
new file mode 100644 (file)
index 0000000..d7c2cb8
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>IFPkgDescriptionDeleteWarning</key>
+       <string></string>
+       <key>IFPkgDescriptionDescription</key>
+       <string>Mac OS X version of OpenAFS client and server.</string>
+       <key>IFPkgDescriptionTitle</key>
+       <string>OpenAFS</string>
+       <key>IFPkgDescriptionVersion</key>
+       <string>1.2.10</string>
+</dict>
+</plist>
diff --git a/src/packaging/MacOS/OpenAFS.Info.plist b/src/packaging/MacOS/OpenAFS.Info.plist
new file mode 100644 (file)
index 0000000..ce3f0ba
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>CFBundleGetInfoString</key>
+       <string>OpenAFS 1.4.2</string>
+       <key>CFBundleIdentifier</key>
+       <string>org.openafs.OpenAFS.pkg</string>
+       <key>CFBundleName</key>
+       <string>OpenAFS</string>
+       <key>CFBundleShortVersionString</key>
+       <string>1.4.2</string>
+       <key>IFMajorVersion</key>
+       <integer>1</integer>
+       <key>IFMinorVersion</key>
+       <integer>4</integer>
+       <key>IFPkgFlagAllowBackRev</key>
+       <false/>
+       <key>IFPkgFlagAuthorizationAction</key>
+       <string>RootAuthorization</string>
+       <key>IFPkgFlagBackgroundAlignment</key>
+       <string>bottomright</string>
+       <key>IfPkgFlagBackgroundScaling</key>
+       <string>proportional</string>
+       <key>IFPkgFlagDefaultLocation</key>
+       <string>/</string>
+       <key>IFPkgFlagInstallFat</key>
+       <false/>
+       <key>IFPkgFlagIsRequired</key>
+       <false/>
+       <key>IFPkgFlagRelocatable</key>
+       <false/>
+       <key>IFPkgFlagRestartAction</key>
+       <string>NoRestart</string>
+       <key>IFPkgFlagRootVolumeOnly</key>
+       <true/>
+       <key>IFPkgFlagUpdateInstalledLanguages</key>
+       <false/>
+       <key>IFPkgFlagUseUserMask</key>
+       <false/>
+       <key>IFPkgFormatVersion</key>
+       <real>0.10000000149011612</real>
+</dict>
+</plist>
diff --git a/src/packaging/MacOS/OpenAFS.info b/src/packaging/MacOS/OpenAFS.info
new file mode 100644 (file)
index 0000000..83d42b3
--- /dev/null
@@ -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 (file)
index 0000000..c840b18
--- /dev/null
@@ -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 (file)
index 0000000..7925519
--- /dev/null
@@ -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 (file)
index 0000000..120d3a2
--- /dev/null
@@ -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 (executable)
index 0000000..1ca62f7
--- /dev/null
@@ -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. <http://www.opensource.org/licenses/bsd-license>
+#
+
+use strict;
+use File::Basename;
+
+use vars qw ($do_nothing $print_donothing_removals $receipts_dir $verbose $noisy_warnings);
+use vars qw ($suppress_spin $spin_counter $spin_state $spin_slower_downer);
+use vars qw (%exception_list $gen_dirs @gen_files @rmfiles @rmdirs @rmpkg);
+
+#----------------------------------------------------------------------------------------
+
+$do_nothing = 0;
+$print_donothing_removals = 1;
+$verbose = 1;
+$noisy_warnings = 0;
+
+# One of rm -rf in this script uses $receipts_dir -- change with care.
+$receipts_dir = "/Library/Receipts";
+
+%exception_list = (
+#  '/usr/bin/aklog', '',
+);
+
+$gen_dirs = { };
+#$gen_dirs->{"/"}->{"Library"}->{"OpenAFS"}->{"Tools"} = {};
+
+@gen_files = (
+    "/var/db/openafs/etc/cacheinfo",
+    "/var/db/openafs/etc/ThisCell",
+    "/var/db/openafs/etc/config/afsd.options",
+    "/var/db/openafs/etc/CellServDB.save",
+    "/var/db/openafs/etc/CellServDB.master.last",
+    "/var/db/openafs/etc/CellServDB",
+    "/var/db/openafs/etc/config/settings.plist",
+);
+
+#----------------------------------------------------------------------------------------
+
+$| = 1;
+#if ($do_nothing == 0 && $< != 0)
+#  {
+#    die "ERROR: Must be run with root permissions--prefix command with 'sudo'.\n";
+#  }
+
+sub main
+  {
+    # commandline args: 
+    #     0: dir of packages to remove
+    #     1: flag indicating whether to keep package receipts
+    #     2: flag indicating whether to supress spin indicator
+
+    if (!@ARGV) {
+       use FindBin qw($Bin);
+       @ARGV = ("$Bin/..", 0, 0);
+    }
+    $suppress_spin = defined ($ARGV[2]) && $ARGV[2];
+
+    $spin_counter = 0;
+    $spin_state = 0;
+    spin_rate_slow ();
+
+    pre_print ();
+    print "Uninstalling OpenAFS package:\n\n";
+
+    remove_generated_files ();
+    remove_main_packages ();
+    remove_generated_directories ();
+
+    if ($do_nothing == 0) {
+    my @rmcmd = ('osascript', '-e', "do shell script \"/bin/rm -f @rmfiles; /bin/rmdir @rmdirs; /bin/rm -rf @rmpkg\" with administrator privileges");
+    system @rmcmd;
+    my $retcode = $? >> 8;
+    if ($retcode != 0) {
+           print_warning ("Warning:  There may have been a problem uninstalling\n");
+    }
+    }
+
+    pre_print ();
+    print "\nFinished uninstalling.\n";
+  }
+
+sub remove_main_packages
+  {
+#    opendir (DIR, $ARGV[0]) or die "ERROR: package directory $ARGV[0] not found\n";
+#    my @pkglist = grep /\.pkg$/, readdir DIR;
+#    closedir DIR;
+     my @pkglist = ("OpenAFS",
+                   );
+    
+    foreach (@pkglist)
+      {
+        s/\.pkg$//;
+        my $pkgname = $_;
+        my $pkgname_fullpath = "$receipts_dir/$pkgname.pkg";
+        my $pkgname_bom_fullpath = undef;
+
+        next if (! -d "$pkgname_fullpath" );
+        
+        print_verbose ("Removing package $pkgname.pkg\n");
+
+        my $f  = "$pkgname_fullpath/Contents/Resources/$pkgname.bom";
+        if (-f $f && -r $f) {
+            $pkgname_bom_fullpath = $f;
+        }
+
+        next if (!defined ($pkgname_bom_fullpath));
+        
+        my $bomroot = "";
+        open (INFO, "$pkgname_fullpath/Contents/Info.plist") or next;
+        while (<INFO>) {
+            m/IFPkgFlagDefaultLocation/ or next;
+            $bomroot = <INFO>;
+        }
+        close (INFO);
+
+        $bomroot =~ />(.*)</;
+       $bomroot = $1;
+        $bomroot =~ s/^\/$//;
+
+        spin_rate_slow ();
+
+        open (LSBOM, "/usr/bin/lsbom -l -f -p f '$pkgname_bom_fullpath' |") or next;
+        while (<LSBOM>)
+          {
+            chomp;
+            m#^\.(/.*)$#;
+            next if (!defined ($1) || $1 eq "");
+            my $filename = $bomroot . $1;
+
+            remove_a_file ($filename);
+          }
+        close (LSBOM);
+
+        my $rooth = { };
+
+        open (LSBOM, "/usr/bin/lsbom -d -p f '$pkgname_bom_fullpath' |") or next;
+        while (<LSBOM>)
+          {
+            chomp;
+            m#^\.(/.*)$#;
+            next if (!defined ($1) || $1 eq "");
+            my $directory = $bomroot . $1;
+            if (-d $directory)
+              {
+                $rooth = add_directory_to_tree ($directory, $rooth);
+              }
+            else
+              {
+                if ($noisy_warnings)
+                  {
+                    print_warning ("Warning: \"$directory\" listed in BOM but not present on system.\n");
+                  }
+              }
+          }
+        close (LSBOM);
+
+        spin_rate_fast ();
+        remove_empty_directories ($rooth, "/");
+
+        remove_package_receipts ("$pkgname.pkg") if (!defined ($ARGV[1]) || !$ARGV[1]) ;
+      }
+  }
+
+sub remove_generated_files
+  {
+   foreach (@gen_files)
+     {
+       remove_a_file ($_);
+     }
+  }
+
+sub remove_generated_directories
+  {
+    remove_empty_directories ($gen_dirs, "/");
+  }
+
+sub add_directory_to_tree
+  {
+    my $dir = shift;
+    my $rooth = shift;
+    my $p = $rooth;
+
+    my @pathcomp = split /\//, $dir;
+
+    progress_point ();
+    foreach (@pathcomp)
+      {
+        my $cur_name = $_;
+        if ($cur_name eq "" || !defined ($cur_name))
+          {
+            $cur_name = "/";
+          }
+        if (!defined ($p->{"$cur_name"}))
+          {
+            $p->{$cur_name} = { };
+          }
+        $p = $p->{$cur_name};
+      }
+    return $rooth;
+  }
+
+sub remove_empty_directories
+  {
+    my $rooth = shift;
+    my $path = shift;
+    my $children = (scalar (keys %{$rooth}));
+    my $dirs_remain = 0;
+
+    if ($children > 0)
+      {
+        foreach my $dirname (sort keys %{$rooth})
+          {
+            my $printpath;
+            $printpath = "$path/$dirname";
+            $printpath =~ s#^/*#/#;
+            remove_empty_directories ($rooth->{$dirname}, "$printpath");
+            $dirs_remain = 1 if (-d "$printpath");
+          } 
+      }
+
+     if ($dirs_remain == 0)
+       {
+         maybe_remove_ds_store ("$path");
+       }
+
+     remove_a_dir ("$path");
+  }
+
+sub remove_a_file
+  {
+    my $fn = shift;
+    my $dirname = dirname ($fn);
+    my $basename = basename ($fn);
+    my $ufs_rsrc_file = "$dirname/._$basename";
+
+    progress_point ();
+    return if (!defined ($fn) || $fn eq "");
+
+    # Leave any files that are shared between packages alone.
+    if (defined($exception_list{$fn}))
+      {
+        if ($noisy_warnings)
+          {
+            print_warning ("Warning: file \"$fn\" intentionally not removed, even though it's in the BOM.\n");
+          }
+        return;
+      }
+
+    if (! -f $fn && ! -l $fn)
+      {
+        if ($noisy_warnings)
+          {
+            print_warning ("Warning: file \"$fn\" present in BOM but not found on disc.\n");
+          }
+        return;
+      }
+
+    if ($do_nothing == 1) 
+      {
+        print_donothing ("rm $fn\n");
+        print_donothing ("rm $ufs_rsrc_file\n") if ( -f $ufs_rsrc_file);
+      }
+    else
+      {
+         unshift(@rmfiles, "$fn");
+         unshift(@rmfiles, "$fn") if ( -f $ufs_rsrc_file);
+      }
+  }
+
+sub remove_a_dir
+  {
+    my $dir = shift;
+
+    progress_point ();
+    return if (!defined ($dir) || $dir eq "" || $dir eq "/" || $dir eq "/usr");
+    if (! -d $dir)
+      {
+        if ($noisy_warnings)
+          {
+            print_warning ("Warning: directory \"$dir\" present in BOM but not found on disc.\n");
+          }
+        return;
+      }
+
+    if ($do_nothing == 1) 
+      {
+        print_donothing ("rmdir $dir\n");
+      }
+    else
+      {
+        push(@rmdirs, "$dir");
+      }
+  }
+
+sub remove_package_receipts
+  {
+    my $pkgname = shift;
+    $pkgname =~ s#/##g;  # There shouldn't be any path seps in the pkg name...
+    return if (!defined ($pkgname) || $pkgname eq "" 
+               || $pkgname eq "." || $pkgname eq "..");
+
+    my $pkgdir = "$receipts_dir/$pkgname";
+    return if (!defined ($pkgdir) || $pkgdir eq "" || ! -d $pkgdir);
+
+    push(@rmpkg, "$pkgdir");
+  }
+
+
+sub maybe_remove_ds_store
+  {
+    my $path = shift;
+    my $filecount = 0;
+    return if (!defined ($path) || $path eq "" || $path eq "/" || $path eq "/usr");
+    return if (! -f "$path/.DS_Store");
+
+    open (LS, "/bin/ls -a '$path' |");
+    while (<LS>)
+      {
+        chomp;
+        next if (m#^\.$# || m#^\.\.$#);
+        $filecount++;
+      }
+    close (LS);
+
+    if ($filecount == 1 && -f "$path/.DS_Store")
+      {
+        remove_a_file ("$path/.DS_Store");
+      }
+  }
+
+sub print_donothing
+  {
+    my $msg = shift;
+    return if ($print_donothing_removals != 1);
+    pre_print ();
+    print $msg;
+  }
+
+sub print_verbose
+  {
+    my $msg = shift;
+    return if ($verbose != 1);
+    pre_print ();
+    print $msg;
+  }
+
+sub print_warning
+  {
+    my $msg = shift;
+    pre_print ();
+    print STDERR $msg;
+  }
+
+sub print_error
+  {
+    my $msg = shift;
+    pre_print ();
+    print STDERR $msg;
+  }
+
+sub pre_print 
+  {
+    print " \b" unless ($suppress_spin);
+  }
+
+sub spin_rate_slow
+  {
+    $spin_slower_downer = 150;
+  }
+
+sub spin_rate_fast
+  {
+    $spin_slower_downer = 75;
+  }
+
+sub progress_point
+  {
+    return if ($suppress_spin);
+    $spin_counter++;
+    if (($spin_counter % $spin_slower_downer) == 0)
+      {
+        my $spin_chars = "|/-\\";
+        my $c = substr ($spin_chars, $spin_state % 4, 1);
+        $spin_state++;
+        print "\e[7m$c\e[m\b";
+      }
+  }
+
+main ();
+
+#----------------------------------------------------------------------------------------
diff --git a/src/packaging/MacOS/afslogo.jpg b/src/packaging/MacOS/afslogo.jpg
new file mode 100644 (file)
index 0000000..09af942
Binary files /dev/null and b/src/packaging/MacOS/afslogo.jpg differ
diff --git a/src/packaging/MacOS/afssettings.m b/src/packaging/MacOS/afssettings.m
new file mode 100644 (file)
index 0000000..f6f1088
--- /dev/null
@@ -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 <Foundation/Foundation.h>
+#import <stdio.h>
+#import <err.h>
+#import <sys/types.h>
+#import <sys/mount.h>
+#import <sys/sysctl.h>
+#import <afs/sysctl.h>
+
+enum Type {
+    TypeNode = 0,
+    TypeNum,
+    TypeStr
+};
+
+typedef struct _setting {
+    NSString *key;
+    int selector;
+    enum Type type;
+    struct _setting *children;
+} Setting;
+
+Setting s_darwin_all[] = {
+    {@"RealModes", AFS_SC_DARWIN_ALL_REALMODES, TypeNum, NULL},
+    {NULL, 0, 0, NULL}
+};
+Setting s_darwin[] = {
+    {@"All", AFS_SC_DARWIN_ALL, TypeNode, s_darwin_all},
+    {@"Darwin12", AFS_SC_DARWIN_12, TypeNode, NULL},
+    {@"Darwin13", AFS_SC_DARWIN_13, TypeNode, NULL},
+    {@"Darwin14", AFS_SC_DARWIN_14, TypeNode, NULL},
+    {@"Darwin60", AFS_SC_DARWIN_60, TypeNode, NULL},
+    {@"Darwin70", AFS_SC_DARWIN_70, TypeNode, NULL},
+    {@"Darwin80", AFS_SC_DARWIN_80, TypeNode, NULL},
+    {@"Darwin90", AFS_SC_DARWIN_90, TypeNode, NULL},
+    {NULL, 0, 0, NULL}
+};
+Setting s_first[] = {
+    {@"All", AFS_SC_ALL, TypeNode, NULL},
+    {@"Darwin", AFS_SC_DARWIN, TypeNode, s_darwin},
+    {NULL, 0, 0, NULL}
+};
+Setting s_top = {NULL, -1, TypeNode, s_first};
+
+int oid[CTL_MAXNAME] = {CTL_VFS};
+NSString *path = @"/var/db/openafs/etc/config/settings.plist";
+
+char *oidString(int *oid, int len);
+void init(void);
+void walk(id obj, Setting *s, int level);
+
+void
+init(void)
+{
+    int oidmax[] = {CTL_VFS, VFS_GENERIC, VFS_MAXTYPENUM};
+    int oidvfs[] = {CTL_VFS, VFS_GENERIC, VFS_CONF, 0};
+    int max;
+    struct vfsconf conf;
+    size_t len;
+    int i;
+
+    len = sizeof(max);
+    if(sysctl(oidmax, 3, &max, &len, NULL, 0) < 0)
+       err(1, "sysctl VFS_MAXTYPENUM");
+    for(i = max; --i >= 0; ) {
+       oidvfs[3] = i;
+       len = sizeof(conf);
+       if(sysctl(oidvfs, 4, &conf, &len, NULL, 0) < 0)
+           continue;
+       if(strcmp("afs", conf.vfc_name) == 0) {
+           s_top.selector = conf.vfc_typenum;
+           break;
+       }
+    }
+    if(s_top.selector < 0)
+       errx(1, "AFS is not loaded");
+}
+
+char *
+oidString(int *oid, int len)
+{
+    static char buf[256];
+    char *cp = buf;
+
+    for(;;) {
+       sprintf(cp, "%d", *oid++);
+       if(--len <= 0)
+           break;
+       cp += strlen(cp);
+       *cp++ = '.';
+    }
+    return buf;
+}
+
+void
+walk(id obj, Setting *s, int level)
+{
+    Setting *child;
+    id newobj;
+    int intval;
+    const char *cp;
+    int level1 = level + 1;
+
+    oid[level] = s->selector;
+    switch(s->type) {
+      case TypeNode:
+       for(child = s->children; child->key; child++) {
+           if(child->type == TypeNode && !child->children)
+               continue;
+           newobj = [obj objectForKey: child->key];
+           if(newobj)
+               walk(newobj, child, level1);
+       }
+       break;
+      case TypeNum:
+       intval = [obj intValue];
+       if(sysctl(oid, level1, NULL, NULL, &intval, sizeof(intval)) < 0)
+           err(1, "sysctl %s => %d", oidString(oid, level1), intval);
+       break;
+      case TypeStr:
+       cp = [obj UTF8String];
+       if(sysctl(oid, level1, NULL, NULL, (void *)cp, strlen(cp)) < 0)
+           err(1, "sysctl %s => %s", oidString(oid, level1), cp);
+       break;
+    }
+}
+
+main()
+{
+    NSData *plistData;
+    id plist;
+    NSString *error;
+    NSPropertyListFormat format;
+    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
+
+    init();
+    plistData = [NSData dataWithContentsOfFile: path];
+    if(plistData) {
+       plist = [NSPropertyListSerialization propertyListFromData: plistData
+         mutabilityOption: NSPropertyListImmutable
+         format: &format
+         errorDescription: &error
+       ];
+       if(plist)
+           walk(plist, &s_top, 1);
+       else
+           errx(1, "%s: %s", [path UTF8String], [error UTF8String]);
+    }
+
+    [pool release];
+    return 0;
+}
diff --git a/src/packaging/MacOS/background.jpg b/src/packaging/MacOS/background.jpg
new file mode 100644 (file)
index 0000000..9c5374f
Binary files /dev/null and b/src/packaging/MacOS/background.jpg differ
diff --git a/src/packaging/MacOS/buildpkg.sh b/src/packaging/MacOS/buildpkg.sh
new file mode 100644 (file)
index 0000000..c05dfb9
--- /dev/null
@@ -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 (file)
index 0000000..25426ea
--- /dev/null
@@ -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 '<CellServDB';
+  $last=new IO::File '<CellServDB.master.last';
+  
+  while (defined($line=<$cur>)) {
+    if ($line =~ /^>([-a-zA-Z0-9\._]+)\s/) {
+      if ($cell) {
+        $oline=<$last>;
+        if ($oline && $oline !~ /^>/) { # fewer servers in user's file than master
+          $cellstat{$cell} = 1;
+        }
+      }
+      $cell=$1;
+      $cellstat{$cell}=2; 
+      # start at the beginning of the old file, and find $cell
+      $last->seek(0,SEEK_SET);
+      while (<$last>) {
+        if (/>$cell\s/) { # note that we don't compare the cell comments
+          $cellstat{$cell}=0; 
+          last;
+        }
+      }
+      next;
+    }
+    if (! $cell) {
+      die "First CellServDB line isn't a cell\n";
+    }
+    next if ($cellstat{$cell} == 2); # cell only in local CellServDB
+    next if ($cellstat{$cell} == 1); # already found a local change
+    $oline=<$last>;
+    if ($oline =~ /^>/) { # more servers in user's file than master
+      $last->setpos($pos);
+      $cellstat{$cell} = 1;
+      next;
+    }
+    next if ($line eq $oline);
+    $cellstat{$cell} = 1;
+  }
+  close($last);
+  $cur->seek(0,SEEK_SET);
+  $cur=new IO::File '<CellServDB' or die "No CellServDB: $!\n";
+  $in=new IO::File '<CellServDB.master' or die "No CellServDB.master: $!\n";
+  $new=new IO::File '>CellServDB.NEW' or die "Cannot create output CellServDB: $!\n";
+  while (defined($line=<$cur>)) {
+    if ($line =~ /^>([-a-zA-Z0-9\._]+)\s/) {
+      $cell=$1;
+      $which=$cellstat{$cell};
+      unless ($which) {
+        $in->seek(0,SEEK_SET);
+        while (<$in>) {
+          if (/>$cell\s/) {
+            last;
+          }
+        }
+        if (defined($_)) {
+          print $new $_;
+          while (defined($line=<$in>) && $line !~ /^>/) {
+            print $new $line;
+          }
+        } 
+      }
+    }
+    if (! $cell) {
+      die "First CellServDB line isn't a cell\n";
+    }
+    if ($which) {
+      print $new $line;
+    }
+  }
+  close($in);
+  close($cur);
+  close($new);
+  rename('CellServDB.NEW', 'CellServDB');
+  copy('CellServDB.master', 'CellServDB.master.last');
+}
+
+doit;
diff --git a/src/packaging/MacOS/settings.plist b/src/packaging/MacOS/settings.plist
new file mode 100644 (file)
index 0000000..36e8977
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>Darwin</key>
+       <dict>
+               <key>All</key>
+               <dict>
+                       <key>RealModes</key>
+                       <false/>
+               </dict>
+       </dict>
+</dict>
+</plist>
diff --git a/src/packaging/MacOS/universal.sh b/src/packaging/MacOS/universal.sh
new file mode 100755 (executable)
index 0000000..5eeb227
--- /dev/null
@@ -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
index 3f0513e3f177ccf8d369b057a39046493b06324f..b9c1fefcb68b46112577abb6dde898bb7f68dcae 100644 (file)
 #endif
 #endif
 #include <stdlib.h>
-#ifdef AFS_AIX51_ENV
-#include <sys/cred.h>
-#endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/pam/afs_util.c,v 1.12.2.2 2006/07/20 23:35:44 shadow Exp $");
+    ("$Header: /cvs/openafs/src/pam/afs_util.c,v 1.12.2.4 2006/10/10 03:23:39 shadow Exp $");
 
 #include "afs_util.h"
 
@@ -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 (file)
index 0000000..66af080
--- /dev/null
@@ -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 (file)
index 0000000..f6f1088
--- /dev/null
@@ -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 <Foundation/Foundation.h>
+#import <stdio.h>
+#import <err.h>
+#import <sys/types.h>
+#import <sys/mount.h>
+#import <sys/sysctl.h>
+#import <afs/sysctl.h>
+
+enum Type {
+    TypeNode = 0,
+    TypeNum,
+    TypeStr
+};
+
+typedef struct _setting {
+    NSString *key;
+    int selector;
+    enum Type type;
+    struct _setting *children;
+} Setting;
+
+Setting s_darwin_all[] = {
+    {@"RealModes", AFS_SC_DARWIN_ALL_REALMODES, TypeNum, NULL},
+    {NULL, 0, 0, NULL}
+};
+Setting s_darwin[] = {
+    {@"All", AFS_SC_DARWIN_ALL, TypeNode, s_darwin_all},
+    {@"Darwin12", AFS_SC_DARWIN_12, TypeNode, NULL},
+    {@"Darwin13", AFS_SC_DARWIN_13, TypeNode, NULL},
+    {@"Darwin14", AFS_SC_DARWIN_14, TypeNode, NULL},
+    {@"Darwin60", AFS_SC_DARWIN_60, TypeNode, NULL},
+    {@"Darwin70", AFS_SC_DARWIN_70, TypeNode, NULL},
+    {@"Darwin80", AFS_SC_DARWIN_80, TypeNode, NULL},
+    {@"Darwin90", AFS_SC_DARWIN_90, TypeNode, NULL},
+    {NULL, 0, 0, NULL}
+};
+Setting s_first[] = {
+    {@"All", AFS_SC_ALL, TypeNode, NULL},
+    {@"Darwin", AFS_SC_DARWIN, TypeNode, s_darwin},
+    {NULL, 0, 0, NULL}
+};
+Setting s_top = {NULL, -1, TypeNode, s_first};
+
+int oid[CTL_MAXNAME] = {CTL_VFS};
+NSString *path = @"/var/db/openafs/etc/config/settings.plist";
+
+char *oidString(int *oid, int len);
+void init(void);
+void walk(id obj, Setting *s, int level);
+
+void
+init(void)
+{
+    int oidmax[] = {CTL_VFS, VFS_GENERIC, VFS_MAXTYPENUM};
+    int oidvfs[] = {CTL_VFS, VFS_GENERIC, VFS_CONF, 0};
+    int max;
+    struct vfsconf conf;
+    size_t len;
+    int i;
+
+    len = sizeof(max);
+    if(sysctl(oidmax, 3, &max, &len, NULL, 0) < 0)
+       err(1, "sysctl VFS_MAXTYPENUM");
+    for(i = max; --i >= 0; ) {
+       oidvfs[3] = i;
+       len = sizeof(conf);
+       if(sysctl(oidvfs, 4, &conf, &len, NULL, 0) < 0)
+           continue;
+       if(strcmp("afs", conf.vfc_name) == 0) {
+           s_top.selector = conf.vfc_typenum;
+           break;
+       }
+    }
+    if(s_top.selector < 0)
+       errx(1, "AFS is not loaded");
+}
+
+char *
+oidString(int *oid, int len)
+{
+    static char buf[256];
+    char *cp = buf;
+
+    for(;;) {
+       sprintf(cp, "%d", *oid++);
+       if(--len <= 0)
+           break;
+       cp += strlen(cp);
+       *cp++ = '.';
+    }
+    return buf;
+}
+
+void
+walk(id obj, Setting *s, int level)
+{
+    Setting *child;
+    id newobj;
+    int intval;
+    const char *cp;
+    int level1 = level + 1;
+
+    oid[level] = s->selector;
+    switch(s->type) {
+      case TypeNode:
+       for(child = s->children; child->key; child++) {
+           if(child->type == TypeNode && !child->children)
+               continue;
+           newobj = [obj objectForKey: child->key];
+           if(newobj)
+               walk(newobj, child, level1);
+       }
+       break;
+      case TypeNum:
+       intval = [obj intValue];
+       if(sysctl(oid, level1, NULL, NULL, &intval, sizeof(intval)) < 0)
+           err(1, "sysctl %s => %d", oidString(oid, level1), intval);
+       break;
+      case TypeStr:
+       cp = [obj UTF8String];
+       if(sysctl(oid, level1, NULL, NULL, (void *)cp, strlen(cp)) < 0)
+           err(1, "sysctl %s => %s", oidString(oid, level1), cp);
+       break;
+    }
+}
+
+main()
+{
+    NSData *plistData;
+    id plist;
+    NSString *error;
+    NSPropertyListFormat format;
+    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
+
+    init();
+    plistData = [NSData dataWithContentsOfFile: path];
+    if(plistData) {
+       plist = [NSPropertyListSerialization propertyListFromData: plistData
+         mutabilityOption: NSPropertyListImmutable
+         format: &format
+         errorDescription: &error
+       ];
+       if(plist)
+           walk(plist, &s_top, 1);
+       else
+           errx(1, "%s: %s", [path UTF8String], [error UTF8String]);
+    }
+
+    [pool release];
+    return 0;
+}
index bbea98d4efb63d0c20d07af5f42cb01d1af0dbb2..08536e57e1927043387248387b2c02060bb9f9b5 100644 (file)
@@ -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;
 }
 
index c8bc41cc799cb49cec4d1f12d4b6628999c9de60..e9b567c069d005c707415879e53048007de53d13 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/rx/rx_getaddr.c,v 1.15.2.12 2006/06/15 15:13:33 shadow Exp $");
+    ("$Header: /cvs/openafs/src/rx/rx_getaddr.c,v 1.15.2.13 2006/10/11 11:29:02 jaltman Exp $");
 
 #ifndef AFS_DJGPP_ENV
 #ifndef KERNEL
@@ -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)
index 8bf41fa60157e72574d8349e0681a18759a46d8a..d0343657ea0a73cbaeaa628a5b17f0259457d227 100644 (file)
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/sys/pagsh.c,v 1.9.2.2 2006/07/20 23:35:44 shadow Exp $");
+    ("$Header: /cvs/openafs/src/sys/pagsh.c,v 1.9.2.3 2006/10/06 12:44:43 shadow Exp $");
 
 #ifdef AFS_AIX32_ENV
 #include <signal.h>
-#ifdef AFS_AIX51_ENV
-#include <sys/cred.h>
-#endif
 #endif
 #include <stdio.h>
 #include <stdlib.h>
@@ -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
index 92d127d14221f6a6c79162e3b53e55e707b956da..3972d9df084eab4356db2506194e59f706a3d452 100644 (file)
@@ -29,7 +29,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/viced/afsfileprocs.c,v 1.81.2.36 2006/09/14 23:59:36 shadow Exp $");
+    ("$Header: /cvs/openafs/src/viced/afsfileprocs.c,v 1.81.2.37 2006/09/26 02:13:17 shadow Exp $");
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -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);
index 0cf9bed327b56d75f451e0fde449db1d267f128f..a4cb3e1f32d0c3eb232d45da2ffe47ce22539b33 100644 (file)
@@ -19,7 +19,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/vol/clone.c,v 1.17.2.1 2004/08/25 07:14:19 shadow Exp $");
+    ("$Header: /cvs/openafs/src/vol/clone.c,v 1.17.2.4 2006/10/06 12:33:57 shadow Exp $");
 
 #include <sys/types.h>
 #include <stdio.h>
@@ -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 */
index bf7bdcb692354e87613dfdfe2a758bc30038993e..870ab2badb1d190017072678a634cf907a7ec6ba 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/volser/dumpstuff.c,v 1.25.2.4 2006/07/14 19:24:06 shadow Exp $");
+    ("$Header: /cvs/openafs/src/volser/dumpstuff.c,v 1.25.2.5 2006/10/13 12:46:03 shadow Exp $");
 
 #include <sys/types.h>
 #include <ctype.h>
@@ -530,11 +530,11 @@ DumpFile(struct iod *iodp, int vnode, FdHandle_t * handleP)
     afs_sfsize_t size;
 #ifdef AFS_AIX_ENV
 #include <sys/statfs.h>
-#ifdef AFS_LARGEFILE_ENV
+#if defined(AFS_AIX52_ENV) && defined(AFS_LARGEFILE_ENV)
     struct statfs64 tstatfs;
-#else /* !AFS_LARGEFILE_ENV */
+#else /* !AFS_AIX52_ENV || !AFS_LARGEFILE_ENV */
     struct statfs tstatfs;
-#endif /* !AFS_LARGEFILE_ENV */
+#endif /* !AFS_AIX52_ENV || !AFS_LARGEFILE_ENV */
     int statfs_code;
 #endif
 
@@ -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 */