i386-user-mode-linux-support-20030513
[openafs.git] / README
diff --git a/README b/README
index ca463b1..4f45e06 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,25 +31,38 @@ A. Creating the proper directory structure.
       into with this name when you build.
 
       alpha_dux40
-      alpha_dux50 (only tested on 5.0A)
+      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
+              (gnu make is required for building on FreeBSD)
       i386_linux22
-      i386_linux24 (only tested with 2.4.0 kernel)
+      i386_linux24
+      i386_umlinux22
+      i386_umlinux24
+      i386_obsd31, i386_obsd32
       rs_aix42
       sgi_65 (file server not tested)
-      sun4x_56
-      sun4x_57
-      sun4x_58
-      ppc_darwin_13
-      alpha_linux_22 (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_13, ppc_darwin_14, ppc_darwin_60 (file server not tested)
+      ppc_linux22
+      ppc_linux24
+      alpha_linux22 
+      alpha_linux24 
+      ia64_linux24
+      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
+      % ./configure --with-afs-sysname=sun4x_58 --enable-transarc-paths
 
-      For Linux systems you need also provide the patch in which your
+      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 
@@ -53,33 +78,51 @@ A. Creating the proper directory structure.
       or insecure software included with OpenAFS. See README.obsolete and
       README.insecure for more 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
+
+
 B  Building
 
    1. Now, you can build OpenAFS. 
 
       % 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.
@@ -87,3 +130,43 @@ C  Problems
    Mailing lists have been set up to help; More details can be found
    on the openafs.org site.
 
+D  Linux Notes
+
+   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.
+
+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
+
+   For now, you need kernel source installed to build OpenAFS.
+
+   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.
+
+   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.