source in, you will only have an src/ directory.
1. Pick a system to build for, and note its default AFS sys_name.
- A directory will be automatically created for binaries to be written
+ A directory will be automatically created for binaries to be written
into with this name when you build.
alpha_dux40, alpha_dux50, alpha_dux51 (client does not work)
- alpha_linux22, alpha_linux24, alpha_linux26
+ alpha_linux26
alpha_nbsd15, alpha_nbsd16
- amd64_fbsd_53 (client does not work)
- amd64_linux24, amd64_linux26
+ amd64_fbsd_80, amd64_fbsd_81, amd64_fbsd_82, amd64_fbsd_83,
+ amd64_fbsd_84, amd64_fbsd_90, amd64_fbsd_91, amd64_fbsd_92,
+ amd64_fbsd_93, amd64_fbsd_100, amd64_fbsd_101
+ amd64_linux26
amd64_nbsd20, amd64_nbsd30, amd64_nbsd40
- arm_linux24, arm_linux26
+ arm_linux26
hp_ux11i, hp_ux110, hp_ux1123 (See notes below for information on
getting missing header)
hp_ux102 (Client port possible, but db servers and utilities work)
- i386_fbsd_50, i386_fbsd_51, i386_fbsd_52, i386_fbsd_53,
- i386_fbsd_60, i386_fbsd_61, i386_fbsd_62, i386_fbsd_70,
- i386_fbsd_80, i386_fbsd_81, i386_fbsd_90, amd64_fbsd_50,
- amd64_fbsd_51, amd64_fbsd_52, amd64_fbsd_53, amd64_fbsd_60,
- amd64_fbsd_61, amd64_fbsd_62, amd64_fbsd_70, amd64_fbsd_80,
- amd64_fbsd_81, amd64_fbsd_90
- (client may work on 70 and later)
- i386_linux22, i386_linux24, i386_linux26
+ i386_fbsd_80, i386_fbsd_81, i386_fbsd_82, i386_fbsd_83,
+ i386_fbsd_84, i386_fbsd_90, i386_fbsd_91, i386_fbsd_92,
+ i386_fbsd_93, i386_fbsd_100, i386_fbsd_101
+ i386_linux26
i386_nbsd15, i386_nbsd16, i386_nbsd20, i386_nbsd21, i386_nbsd30,
i386_nbsd40
i386_obsd31, i386_obsd32, i386_obsd33, i386_obsd34, i386_obsd35,
i386_obsd36, i386_obsd37, i386_obsd38, i386_obsd39, i386_obsd40,
i386_obsd41
- i386_umlinux22, i386_umlinux24, i386_umlinux26
+ i386_umlinux26
ia64_hpux1122, ia64_hpux1123
- ia64_linux24, ia64_linux26
- parisc_linux24
- ppc64_linux24, ppc64_linux26
+ ia64_linux26
+ ppc64_linux26
ppc_darwin_12, ppc_darwin_13, ppc_darwin_14, ppc_darwin_60,
ppc_darwin_70, ppc_darwin_80, ppc_darwin_90
- ppc_linux22, ppc_linux24, ppc_linux26
+ ppc_linux26
ppc_nbsd16, ppc_nbsd20
rs_aix42, rs_aix51, rs_aix52, rs_aix53, rs_aix61
- s390_linux22, s390_linux24, s390_linux26
- s390x_linux24, s390x_linux26
+ s390_linux26
+ s390x_linux26
sgi_62, sgi_63, sgi_64, sgi_65 (file server not tested)
- sparc64_linux22, sparc64_linux24, sparc64_linux26
- sparc_linux22, sparc_linux24
- sun4_413 (No client support, no fileserver support, db servers only)
+ sparc64_linux26
sun4x_58, sun4x_59, sun4x_510, sun4x_511
(logging UFS not supported for mixed-use partitions containing
client cache)
B Building
- 1. Now, you can build OpenAFS.
+ 1. Now, you can build OpenAFS.
% make
- 2. Install your build using either "make install" to install
+ 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
+ "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
+ 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
+ e.g. sun4x_57/dest or i386_linux26/dest
3. As appropriate you can clean up or, if you're using Linux, build for
another kernel version.
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
+ 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
"include". So if your version file were
/usr/src/linux/include/linux/version.h you would run:
- % ./configure --with-afs-sysname=i386_linux24 \
+ % ./configure --with-afs-sysname=i386_linux26 \
--with-linux-kernel-headers=/usr/src/linux
Currently you can build for only one Linux kernel at a time, and the
then run:
% ./configure --with-afs-sysname=<sysname> \
- --with-linux-kernel-headers=/usr/src/linux-2.2.19-i686
- % make
+ --with-linux-kernel-headers=/usr/src/linux-3.19-i686
+ % make
Your build tree will now include an additional kernel module for your
additional kernel headers. Be aware that if the kernel version string
last kernel you built for, the previous kernel module will be
overwritten.
+ The Linux 2.4 series (and older) are no longer supported. The OpenAFS 1.6
+ series of releases are the last ones supporting those old kernels and in
+ particular their LinuxThreads.
+
E HP-UX 11.0 Notes
HP-UX 11.0 requires a header called vfs_vm.h which HP has provided on
G FreeBSD Notes
- The FreeBSD client may now work; It is tested on 7.0 and on current
- as of the commit date.
+ The FreeBSD client supports FreeBSD 8.x and later, but does not receive
+ regular testing on versions older than FreeBSD 9.x at this time. Only
+ the amd64 and i386 architectures are supported, but it should not be
+ hard to port to other processors if they are already supported under
+ another operating system.
You need kernel source installed to build OpenAFS. Use the
--with-bsd-kernel-headers= configure option if your kernel source is
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. If
- /usr/src/sys/${CPUARCH}/compile/GENERIC does not point to
- /usr/obj/usr/src/sys/GENERIC you may need to resolve that and retry the
+ kernel build is not GENERIC in the standard place. If
+ /usr/src/sys/${CPUARCH}/compile/GENERIC does not point to
+ /usr/obj/usr/src/sys/GENERIC you may need to resolve that and retry the
build.
- 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.
-
H AIX notes
Make sure that your default build environment is 32bit, ie.
by the option with debugging information. If --enable-debug is
given, also do not strip binaries when installing them.
+ --enable-linux-d_splice_alias-extra-iput
+ Work around a kernel memory leak present in a few Linux kernels.
+ The only affected mainline kernels are 3.17 to 3.17.2, but this
+ switch will also be required should a distribution backport commit
+ 908790fa3b779d37365e6b28e3aa0f6e833020c3 or commit
+ 95ad5c291313b66a98a44dc92b57e0b37c1dd589 but not the fix in commit
+ 51486b900ee92856b977eacfc5bfbe6565028070 from the linux-stable repo
+ (git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git) or
+ the corresponding changes on other branches. This is impossible to
+ detect automatically. Without this switch, the openafs module will
+ build and work even with affected kernels. But it will leak kernel
+ memory, leading to performance degradation and eventually system
+ failure due to memory exhaustion.
+
--enable-linux-syscall-probing
OpenAFS now uses keyrings to manage PAGs by default on Linux, which
does not require hooking into the system call table. On older
the kernel headers). The SYSNAME should be one of the options
listed in A2.
+ --with-gssapi=DIR
+ --with-gssapi-include=DIR
+ --with-gssapi-lib=DIR
--with-krb5[=DIR]
--with-krb5-include=DIR
--with-krb5-lib=DIR
Autoconf can't figure out whether to use lib, lib32, or lib64 on
your platform.
+ --with-gssapi is similar, except for the GSS-API libraries instead
+ of the Kerberos libraries. If you have to manually set the
+ location of the Kerberos libraries, you may need to do the same
+ thing for the GSS-API libraries.
+
+ --with-libintl=DIR
+ --with-libintl-include=DIR
+ --with-libintl-lib=DIR
+ Specifies the install location of the libintl library, used for
+ internationalization, or separately specifies the location of the
+ header files and libraries. By default, the default system library
+ paths will be searched. This library is not required on many
+ platforms.
+
+ --with-roken=PATH
+ --with-roken=internal
+ Specifies the install location of the libroken library. Specify
+ "internal" to use the embedded libroken library that comes with
+ OpenAFS (the default). This option is primarily useful for
+ building against a system libroken library if you have one.
+
--with-linux-kernel-build=PATH
--with-linux-kernel-headers=PATH
--with-bsd-kernel-build=PATH
rather than libafs-<VERSION>.ko, which is easier to handle in Linux
distribution init scripts.
+ --with-docbook2pdf=PROGRAM
+ Specifies the program used to convert the DocBook manuals to PDF.
+ Supported choices are fop, dblatex, and docbook2pdf. By default,
+ the user's path is searched for those programs in that order, and
+ the first one found is used.
+
+ --with-docbook-stylesheets=PATH
+ The location of the DocBook style sheets, used to convert the
+ DocBook manuals to other formats. By default, a set of likely
+ paths are searched.
+
--with-html-xsl=PATH
+ Specifies the XSLT style sheet to convert DocBook manuals into
+ HTML. The default is html/chunk.xsl. You may wish to use
+ html/docbook.xsml instead.
+
--with-xslt-processor=PROGRAM
- Specifies the XSLT style sheet and XSLT processor to use to convert
- the DocBook manuals into HTML.
+ Specifies the XSLT processor to use to convert the DocBook manuals
+ into HTML. Supported choices are libxslt, saxon, xalan-j, and
+ xsltproc. By default, the user's path is searched for those
+ programs in that order, and the first one found is used.
There are also some environment variables that you can set to control
aspects of the build. They can be set either on the configure command