none
[openafs-wiki.git] / AFSLore / HowToBuildOpenAFSFromSource.mdwn
1 This is a guide on how to build [[OpenAFS]] from source code. Note that [[OpenAFS]] pre-built binaries are available on the [[OpenAFS]] site and are available as prebuilt packages for many platforms. These instructions may be useful for you if you need to build [[OpenAFS]] from source.
2
3 ### <a name="Requirements"></a> Requirements
4
5 Tools
6
7 - cvs client
8 - autoconf
9 - automake
10 - perl 5.6
11 - gcc (versions?)
12 - GNU make
13 - lex/yacc (flex/bison)
14
15 Libraries
16
17 - libc
18 - kerberos, optional, but recommended
19 - ncurses
20 - kernel headers
21
22 The Kerberos development libraries are required if you are going to build with Kerberos 5 support. The [[OpenAFS]] legacy kaserver is deprecated.
23
24 If you are building on Debian, you can get the required software with the following apt-get commands.
25
26       apt-get install cvs autoconf automake make gcc flex bison
27       apt-get install libc6-dev libkrb5-dev libncurses5-dev linux-headers-$(uname -r)
28
29 ### <a name="Getting the Source Code from CVS"></a> Getting the Source Code from CVS
30
31 You can get development snapshots from the [[OpenAFS]] CVS repository . The CVS tree may not always have code which can currently be built. While every effort is made to keep the head of the tree buildable, you may at any time find yourself between commits and hence have a tree which does not build, or worse, causes more serious problems.
32
33 First you need to run cvs login. This step is normally only done once. A ~/.cvspass file will be created for additional checkouts.
34
35        cvs -d :pserver:anonymous@cvs.openafs.org:/cvs  login
36        password is anonymous
37
38 To check out the 1.4 branch:
39
40        cvs -d :pserver:anonymous@cvs.openafs.org:/cvs co -r openafs-stable-1_4_x openafs
41
42 To check out the 1.5 development branch:
43
44        cvs -d :pserver:anonymous@cvs.openafs.org:/cvs co -r openafs-devel-1_5_x openafs
45
46 See the CVSWeb interface at <http://www.openafs.org/frameset/cgi-bin/cvsweb.cgi/openafs/> to see a full list of available branches and tags
47
48 CVS snapshots do not include files generated by autoconf; You can run regen.sh at the top level to create these files. You will need to have autoconf and automake installed on your system.
49
50 ### <a name="Building the Binaries"></a> Building the Binaries
51
52 #### <a name="Transarc Paths"></a> Transarc Paths
53
54 By convention, [[OpenAFS]] server binaries and related files are located in /usr/afs, and client binaries and related files are located in /usr/vice. These are known as Transarc paths, so called because that is is the convention used by Transarc, the company that first commercized AFS.
55
56 To build [[OpenAFS]] with Kerberos 5 support and the traditional, Transarc paths:
57
58        cd openafs
59        ./regen.sh
60        ./configure  --enable-transarc-paths --with-krb5-conf=(full path to krb5-config script)
61        make
62        make dest
63
64 If all goes well, then the binaries are located in a platform sub-directory, the name of which is platform specific, for example 'i386\_linux26/dest'.
65
66 The 'make install' command does not work with Transarc paths. You will have to manually copy the binaries into place after running make dest. For more information, see the Quick Start Guide for Unix on the [[OpenAFS]] documentation page.
67
68       # cp -r i386_linux26/dest/root.client/usr/vice/etc/modload /usr/vice/etc
69       # cp i386_linux26/dest/root.client/usr/vice/etc/afsd /usr/vice/etc
70       # cp -r i386_linux26/dest/bin /usr/afsws
71       # cp -r i386_linux26/dest/etc /usr/afsws
72       # cp -r i386_linux26/dest/include /usr/afsws
73       # cp -r i386_linux26/dest/lib /usr/afsws
74       # cp -r i386_linux26/dest/root.server/usr/afs/* /usr/afs
75
76 #### <a name="Custom Paths"></a> Custom Paths
77
78 To build [[OpenAFS]] with Kerberos 5 support, and with a custom install path,
79
80        cd openafs
81        ./regen.sh
82        ./configure --prefix=/usr/local/openafs --with-krb5-conf=(full path to krb5-config script)
83        make
84        sudo make install
85
86 ### <a name="Initial testing"></a> Initial testing
87
88 -- [[MichaelMeffie]] - 09 Oct 2007