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_fbsd_61
+ (client does not work)
+ 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, i386_obsd39
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, sun4x_510,
+ sunx86_57, sunx86_58, sunx86_59, sunx86_510 (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_ux11i, 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 --enable-transarc-paths
- 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
+ If you do not have the "configure" script you can re-create it by
+ running regen.sh. You will need autoconf to do this.
- 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.
+ 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.
- 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.
+ There is an option to control whether or not binaries are stripped
+ of their symbol table information. All binaries, except for the
+ 'fileserver' and 'volserver' executables, are stripped by default.
+
+ To prevent stripping, specify the '--disable-strip-binaries' option on
+ the ./configure command line.
+
+ This option works alongside the existing --enable-debug option to
+ control how binaries are produced. When --enable-debug is specified,
+ binaries will not be stripped. This behavior can be modified by
+ using different combinations of --enable-debug and --enable (or
+ --disable)-strip-binaries. One can, for example, compile binaries for
+ debug and strip them anyway. Alternatively, one can compile without
+ debug and force the binaries to not be stripped. Note that these
+ combinations are not necessarily useful.
+
+ If neither of these options is specified, the default will be to build
+ non-debug binaries that are stripped (with the exceptions noted above,
+ which are never stripped at present). Specifying --enable-debug also
+ turns on --disable-strip-binaries. These are the most useful settings.
+
+ The two binaries noted above, 'fileserver' and 'volserver' will never
+ be stripped, regardless of any options given to configure.
There are two modes for directory path handling: "Transarc mode" and "default mode":
- In Transarc mode, we retain compatibility with Transarc/IBM AFS tools
afsbosserver $(afsbindir)/bosserver $(sbindir)/bosserver
+ The Demand Attach Fileserver (DAFS), is built by providing the
+ --enable_demand_attach_fs argument to configure. Note that the
+ bosserver must be built with DAFS in order to be able to create
+ the dafs instance, which will be used in place of the fs instance. In
+ addition, the fileserver, volserver, salvager, salvage, and salvageserver
+ binaries must be built for DAFS.
+
B Building
1. Now, you can build OpenAFS.
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.
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
+
+ If you need to run regen.sh to make the configure script, you should
+ first install autoconf-2.59, then setenv AUTOCONF_VERSION 2.59.
+
+ 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.
+
+ If you want to build src/aklog, add the following options to your
+ configure. Note that you shouldn't need aklog because heimdal afslog
+ does (almost) the same thing.
+ --with-krb5 KRB5CFLAGS=-I/usr/include/kerberosV KRB5LIBS=-lcrypto
+
+ src/packaging/OpenBSD/buildpkg.sh will make a tar file for installing the
+ client. 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 does not currently work. The remaining problems
+ mostly have to do with locking, vnode refcounting, and packaging. The
+ server should work.
+
+ 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 no server package, but I am told that "make install" will put
+ server binaries in /usr/afs.
+
+ You can't run arla and OpenAFS at the same time.