linux-updates-20060811
[openafs.git] / README
diff --git a/README b/README
index 7646e1e..f640a74 100644 (file)
--- a/README
+++ b/README
@@ -5,6 +5,18 @@ 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
 
+Short instructions for sites upgrading from a previous version of AFS:
+% ./configure --enable-transarc-paths
+% make
+% make dest
+
+will create a Transarc-style dest tree in ${SYS_NAME}/dest where
+${SYS_NAME} is the AFS sysname of the system you built for.
+This assumes if you're building for Linux that your kernel source is
+in /usr/src/linux.
+
+Otherwise, please read on.
+
 Building OpenAFS on UNIX and LINUX
 ----------------------------------
 
@@ -19,41 +31,61 @@ A. Creating the proper directory structure.
       into with this name when you build.
 
       alpha_dux40
-      alpha_dux50 (only tested on 5.0A)
-      i386_linux22
-      i386_linux24 (only tested with 2.4.0 kernel)
+      alpha_dux50 (only tested on 5.0A, does not work with 5.1)
+      i386_fbsd_42, i386_fbsd_43, i386_fbsd_44, i386_fbsd_45,
+         i386_fbsd_46, i386_fbsd_47, i386_fbsd_50, i386_fbsd_51,
+         i386_fbsd_52, i386_fbsd_53, i386_fbsd_60
+      i386_linux22, i386_linux24, i386_linux26
+      i386_umlinux22, i386_umlinux24
+      i386_obsd31, i386_obsd32, i386_obsd33, i386_obsd34, i386_obsd35,
+         i386_obsd36, i386_obsd37, i386_obsd38
       rs_aix42
       sgi_65 (file server not tested)
-      sun4x_56
-      sun4x_57
-      sun4x_58
-      ppc_darwin_13
-      ppc_linux22
-      ppc_linux24
-      alpha_linux22 (DES does not work, will require one more change to
-                               compile)
-      hp_ux110 (No client support, but db servers and utilities work)
-      hp_ux102 (No client support, but db servers and utilities work)
+      sun4_413 (No client support, no fileserver support, db servers only)
+      sun4x_56, sun4x_57, sun4x_58, sun4x_59 (logging UFS not supported 
+         for mixed-use partitions containing client cache)
+      ppc_darwin_70
+      ppc_linux22, ppc_linux24
+      alpha_linux22, alpha_linux24 
+      ia64_linux24, ia64_linux26
+      sparc_linux22, sparc_linux24
+      sparc64_linux22, sparc64_linux24
+      hp_ux110 (See notes below for information on getting missing header)
+      hp_ux102 (Client port possible, but db servers and utilities work)
 
    2. Using configure in the top level directory, configure for your
       AFS system type, providing the necessary flags:
-      % ./configure --with-afs-sysname=sun4x_58
-
-      For Linux systems you need also provide the patch in which your
-      kernel headers for your configured kernel can be found. This should
-      be the path of the directory containing a child directory named
-      "include". So if your version file was 
-      /usr/src/linux/include/linux/version.h you would invoke:
-      % ./configure --with-afs-sysname=i386_linux24 --with-linux-kernel-headers=/usr/src/linux
+      % ./configure --with-afs-sysname=sun4x_58 --enable-transarc-paths
+
+      If you do not have the "configure" script you can re-create it by
+      running regen.sh.  You will need autoconf to do this.
+
+      For some systems you need also provide the path in which your kernel
+      headers for your configured kernel can be found.  See the
+      system-specific Notes sections below for details.
+
+  There are two modes for directory path handling: "Transarc mode" and "default mode":
+  - In Transarc mode, we retain compatibility with Transarc/IBM AFS tools
+    by putting client configuaration files in /usr/vice/etc, and server
+    files in /usr/afs under the traditional directory layout.
+  - In default mode, files are located in standardized locations, usually
+    under $(prefix).
+  - Client programs, libraries, and related files always go in standard
+    directories under $(prefix).  This rule covers things that would go
+    into $(bindir), $(includedir), $(libdir), $(mandir), and $(sbindir).
+  - Other files get located in the following places:
+
+    Directory     Transarc Mode              Default Mode
+    ============  =========================  ==============================
+    viceetcdir    /usr/vice/etc              $(sysconfdir)/openafs
+    afssrvdir     /usr/afs/bin (servers)     $(libexecdir)/openafs
+    afsconfdir    /usr/afs/etc               $(sysconfdir)/openafs/server
+    afslocaldir   /usr/afs/local             $(localstatedir)/openafs
+    afsdbdir      /usr/afs/db                $(localstatedir)/openafs/db
+    afslogdir     /usr/afs/logs              $(localstatedir)/openafs/logs
+    afsbosconfig  $(afslocaldir)/BosConfig   $(afsconfdir)/BosConfig
+    afsbosserver  $(afsbindir)/bosserver     $(sbindir)/bosserver
 
-      Currently you can build for only one Linux kernel at a time,
-      and the version is extracted from the kernel headers in the root
-      you specify.
-
-      Be prepared to provide the switches --enable-obsolete and
-      --enable-insecure if you require the use of any bundled but obsolete
-      or insecure software included with OpenAFS. See README.obsolete and
-      README.insecure for more details.
 
 B  Building
 
@@ -61,27 +93,22 @@ B  Building
 
       % make
 
-      When the build completes, you will have a complete binary tree
-      in the dest directory under the directory named for the sys_name you
-      built for, e.g. sun4x_57/dest or i386_linux22/dest 
+   2. Install your build using either "make install" to install 
+      into the current system (you will need to be root, and files
+      will be placed as appropriate for Transarc or standard paths),
+      "make install DESTDIR=/some/path" to install into an alternate 
+      directory tree, or if you configured with --enable-transarc-paths
+      make dest to create a complete binary tree in the dest directory      
+      under the directory named for the sys_name you built for,
+      e.g. sun4x_57/dest or i386_linux22/dest 
 
    2. As appropriate you can clean up or, if you're using Linux, build for
-      another kernel version:
-      a. To clean up:
+      another kernel version.
+      To clean up:
          % make clean
 
-      b. To build for another Linux kernel version:
-         the system type defined in step A1.
-         % ./configure --with-afs-sysname=i386_linux22 --with-linux-kernel-headers=/usr/src/linux-2.2.19-i686
-         % make 
-
-         Your dest tree will now include an additional kernel module for your
-         additional kernel headers. Be aware that if the kernel version string
-         which UTS_RELEASE is defined to in include/linux/version.h matches
-         the last kernel you built for, the previous kernel module will be 
-         overwritten.
-
 C  Problems
+
    If you have a problem building this source, you may want to visit
    http://www.openafs.org/ to see if any problems have been reported 
    or to find out how to get more help.
@@ -89,3 +116,89 @@ C  Problems
    Mailing lists have been set up to help; More details can be found
    on the openafs.org site.
 
+D  Linux Notes
+
+   For Linux systems you need also provide the path in which your
+   kernel headers for your configured kernel can be found. This should
+   be the path of the directory containing a child directory named
+   "include". So if your version file was 
+   /usr/src/linux/include/linux/version.h you would invoke:
+   % ./configure --with-afs-sysname=i386_linux24 --with-linux-kernel-headers=/usr/src/linux
+
+   Currently you can build for only one Linux kernel at a time,
+   and the version is extracted from the kernel headers in the root
+   you specify.
+
+   To build for another Linux kernel version:
+   the system type defined in step A1.
+      % ./configure --with-afs-sysname=i386_linux24 --with-linux-kernel-headers=/usr/src/linux-2.2.19-i686
+      % make 
+
+   Your dest tree will now include an additional kernel module for your
+   additional kernel headers. Be aware that if the kernel version string
+   which UTS_RELEASE is defined to in include/linux/version.h matches the
+   last kernel you built for, the previous kernel module will be
+   overwritten.
+
+E  HP-UX 11.0 Notes
+
+   HP-UX 11.0 requires a header called vfs_vm.h which HP has provided on their
+   web site: http://h21007.www2.hp.com/dspp/tech/tech_TechSoftwareDetailPage_IDX/1,1703,687,00.html
+   To navigate down from the top level of the portal, one would do
+
+        www.hp.com/dspp -> i want to... -> download software -> operating systems
+
+   to get to the same page. 
+
+F  OpenBSD Notes
+
+   We recommend you build with the following options to configure:
+     --enable-namei-fileserver
+     --enable-largefile-fileserver
+     --enable-supergroups
+     --with-krb5
+
+   You need kernel source installed to build OpenAFS.  Use the
+   --with-bsd-kernel-headers= configure option if your kernel source is not
+   in /usr/src/sys.
+
+   There is a package builder in src/packaging/OpenBSD.  "sh buildpkg.sh"
+   should make a package for the client.  Use pkg_add to install.  The
+   package will install using transarc-paths, regardless of how you
+   configured.  The package builder does not work on OpenBSD 3.5 and later
+   due to the incompatible re-write of pkg_create.
+
+   There is no server package, but I am told that "make install" will put
+   server binaries in /usr/afs.
+
+   Your kernel may panic when you try to shutdown after running the OpenAFS
+   client.  To prevent this, change the "dangling vnode" panic in
+   sys/kern/vfs_syscalls.c to a printf and build a new kernel.
+
+   You can't run arla and OpenAFS at the same time.
+
+G  FreeBSD Notes
+
+   The FreeBSD client is very new and untested.  Do not trust it for
+   production work.
+
+   We recommend you build with --enable-namei-fileserver and
+   --enable-largefile-fileserver options.
+
+   You need kernel source installed to build OpenAFS.  Use the
+   --with-bsd-kernel-headers= configure option if your kernel source is not
+   in /usr/src/sys.
+
+   You also need access to your kernel build directory for the opt_global.h
+   include file.  Use the --with-bsd-kernel-build= configure option if your
+   kernel build is not GENERIC in the standard place.
+
+   There is a package builder in src/packaging/OpenBSD.  "sh buildpkg.sh"
+   should make a package for the client.  Use pkg_add to install.  The
+   package will install using transarc-paths, regardless of how you
+   configured.  The builder uses an old version of the /usr/vice/etc/rc file
+   that probably won't work.  You might be able to replace it with something
+   like "kldload libafs.ko; /usr/vice/etc/afsd".
+
+   There is no server package, but I am told that "make install" will put
+   server binaries in /usr/afs.