Imported Upstream version 1.15.1
[platform/upstream/krb5.git] / doc / pdf / build.tex
1 % Generated by Sphinx.
2 \def\sphinxdocclass{report}
3 \documentclass[letterpaper,10pt,english]{sphinxmanual}
4 \usepackage[utf8]{inputenc}
5 \DeclareUnicodeCharacter{00A0}{\nobreakspace}
6 \usepackage{cmap}
7 \usepackage[T1]{fontenc}
8 \usepackage{babel}
9 \usepackage{times}
10 \usepackage[Bjarne]{fncychap}
11 \usepackage{longtable}
12 \usepackage{sphinx}
13 \usepackage{multirow}
14
15
16 \title{Building MIT Kerberos}
17 \date{ }
18 \release{1.15.1}
19 \author{MIT}
20 \newcommand{\sphinxlogo}{}
21 \renewcommand{\releasename}{Release}
22 \makeindex
23
24 \makeatletter
25 \def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax%
26     \let\PYG@ul=\relax \let\PYG@tc=\relax%
27     \let\PYG@bc=\relax \let\PYG@ff=\relax}
28 \def\PYG@tok#1{\csname PYG@tok@#1\endcsname}
29 \def\PYG@toks#1+{\ifx\relax#1\empty\else%
30     \PYG@tok{#1}\expandafter\PYG@toks\fi}
31 \def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{%
32     \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}}
33 \def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}}
34
35 \expandafter\def\csname PYG@tok@gd\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}}
36 \expandafter\def\csname PYG@tok@gu\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}}
37 \expandafter\def\csname PYG@tok@gt\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}}
38 \expandafter\def\csname PYG@tok@gs\endcsname{\let\PYG@bf=\textbf}
39 \expandafter\def\csname PYG@tok@gr\endcsname{\def\PYG@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}}
40 \expandafter\def\csname PYG@tok@cm\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
41 \expandafter\def\csname PYG@tok@vg\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
42 \expandafter\def\csname PYG@tok@m\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
43 \expandafter\def\csname PYG@tok@mh\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
44 \expandafter\def\csname PYG@tok@cs\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}\def\PYG@bc##1{\setlength{\fboxsep}{0pt}\colorbox[rgb]{1.00,0.94,0.94}{\strut ##1}}}
45 \expandafter\def\csname PYG@tok@ge\endcsname{\let\PYG@it=\textit}
46 \expandafter\def\csname PYG@tok@vc\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
47 \expandafter\def\csname PYG@tok@il\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
48 \expandafter\def\csname PYG@tok@go\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.20,0.20,0.20}{##1}}}
49 \expandafter\def\csname PYG@tok@cp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
50 \expandafter\def\csname PYG@tok@gi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}}
51 \expandafter\def\csname PYG@tok@gh\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
52 \expandafter\def\csname PYG@tok@ni\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.84,0.33,0.22}{##1}}}
53 \expandafter\def\csname PYG@tok@nl\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.13,0.44}{##1}}}
54 \expandafter\def\csname PYG@tok@nn\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}}
55 \expandafter\def\csname PYG@tok@no\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.38,0.68,0.84}{##1}}}
56 \expandafter\def\csname PYG@tok@na\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
57 \expandafter\def\csname PYG@tok@nb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
58 \expandafter\def\csname PYG@tok@nc\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}}
59 \expandafter\def\csname PYG@tok@nd\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.33,0.33,0.33}{##1}}}
60 \expandafter\def\csname PYG@tok@ne\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
61 \expandafter\def\csname PYG@tok@nf\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.49}{##1}}}
62 \expandafter\def\csname PYG@tok@si\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.44,0.63,0.82}{##1}}}
63 \expandafter\def\csname PYG@tok@s2\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
64 \expandafter\def\csname PYG@tok@vi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
65 \expandafter\def\csname PYG@tok@nt\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.45}{##1}}}
66 \expandafter\def\csname PYG@tok@nv\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
67 \expandafter\def\csname PYG@tok@s1\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
68 \expandafter\def\csname PYG@tok@gp\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}}
69 \expandafter\def\csname PYG@tok@sh\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
70 \expandafter\def\csname PYG@tok@ow\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
71 \expandafter\def\csname PYG@tok@sx\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}}
72 \expandafter\def\csname PYG@tok@bp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
73 \expandafter\def\csname PYG@tok@c1\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
74 \expandafter\def\csname PYG@tok@kc\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
75 \expandafter\def\csname PYG@tok@c\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
76 \expandafter\def\csname PYG@tok@mf\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
77 \expandafter\def\csname PYG@tok@err\endcsname{\def\PYG@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}}
78 \expandafter\def\csname PYG@tok@kd\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
79 \expandafter\def\csname PYG@tok@ss\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.32,0.47,0.09}{##1}}}
80 \expandafter\def\csname PYG@tok@sr\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.14,0.33,0.53}{##1}}}
81 \expandafter\def\csname PYG@tok@mo\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
82 \expandafter\def\csname PYG@tok@mi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
83 \expandafter\def\csname PYG@tok@kn\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
84 \expandafter\def\csname PYG@tok@o\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
85 \expandafter\def\csname PYG@tok@kr\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
86 \expandafter\def\csname PYG@tok@s\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
87 \expandafter\def\csname PYG@tok@kp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
88 \expandafter\def\csname PYG@tok@w\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}}
89 \expandafter\def\csname PYG@tok@kt\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.56,0.13,0.00}{##1}}}
90 \expandafter\def\csname PYG@tok@sc\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
91 \expandafter\def\csname PYG@tok@sb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
92 \expandafter\def\csname PYG@tok@k\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
93 \expandafter\def\csname PYG@tok@se\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
94 \expandafter\def\csname PYG@tok@sd\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
95
96 \def\PYGZbs{\char`\\}
97 \def\PYGZus{\char`\_}
98 \def\PYGZob{\char`\{}
99 \def\PYGZcb{\char`\}}
100 \def\PYGZca{\char`\^}
101 \def\PYGZam{\char`\&}
102 \def\PYGZlt{\char`\<}
103 \def\PYGZgt{\char`\>}
104 \def\PYGZsh{\char`\#}
105 \def\PYGZpc{\char`\%}
106 \def\PYGZdl{\char`\$}
107 \def\PYGZhy{\char`\-}
108 \def\PYGZsq{\char`\'}
109 \def\PYGZdq{\char`\"}
110 \def\PYGZti{\char`\~}
111 % for compatibility with earlier versions
112 \def\PYGZat{@}
113 \def\PYGZlb{[}
114 \def\PYGZrb{]}
115 \makeatother
116
117 \begin{document}
118
119 \maketitle
120 \tableofcontents
121 \phantomsection\label{build/index::doc}
122
123
124 This section details how to build and install MIT Kerberos software
125 from the source.
126
127
128 \chapter{Prerequisites}
129 \label{build/index:building-kerberos-v5}\label{build/index:prerequisites}\label{build/index:build-v5}
130 In order to build Kerberos V5, you will need approximately 60-70
131 megabytes of disk space.  The exact amount will vary depending on the
132 platform and whether the distribution is compiled with debugging
133 symbol tables or not.
134
135 Your C compiler must conform to ANSI C (ISO/IEC 9899:1990, ``c89'').
136 Some operating systems do not have an ANSI C compiler, or their
137 default compiler requires extra command-line options to enable ANSI C
138 conformance.
139
140 If you wish to keep a separate build tree, which contains the compiled
141 *.o file and executables, separate from your source tree, you will
142 need a make program which supports \textbf{VPATH}, or you will need to use
143 a tool such as lndir to produce a symbolic link tree for your build
144 tree.
145
146
147 \chapter{Obtaining the software}
148 \label{build/index:obtaining-the-software}
149 The source code can be obtained from MIT Kerberos Distribution page,
150 at \href{http://web.mit.edu/kerberos/dist/index.html}{http://web.mit.edu/kerberos/dist/index.html}.
151 The MIT Kerberos distribution comes in an archive file, generally
152 named krb5-VERSION-signed.tar, where \emph{VERSION} is a placeholder for
153 the major and minor versions of MIT Kerberos.  (For example, MIT
154 Kerberos 1.9 has major version ``1'' and minor version ``9''.)
155
156 The krb5-VERSION-signed.tar contains a compressed tar file consisting
157 of the sources for all of Kerberos (generally named
158 krb5-VERSION.tar.gz) and a PGP signature file for this source tree
159 (generally named krb5-VERSION.tar.gz.asc).  MIT highly recommends that
160 you verify the integrity of the source code using this signature,
161 e.g., by running:
162
163 \begin{Verbatim}[commandchars=\\\{\}]
164 tar xf krb5\PYGZhy{}VERSION\PYGZhy{}signed.tar
165 gpg \PYGZhy{}\PYGZhy{}verify krb5\PYGZhy{}VERSION.tar.gz.asc
166 \end{Verbatim}
167
168 Unpack krb5-VERSION.tar.gz in some directory. In this section we will assume
169 that you have chosen the top directory of the distribution the directory
170 \code{/u1/krb5-VERSION}.
171
172 Review the README file for the license, copyright and other sprecific to the
173 distribution information.
174
175
176 \chapter{Contents}
177 \label{build/index:contents}
178
179 \section{Organization of the source directory}
180 \label{build/directory_org::doc}\label{build/directory_org:organization-of-the-source-directory}
181 Below is a brief overview of the organization of the complete source
182 directory.  More detailed descriptions follow.
183
184 \begin{tabulary}{\linewidth}{|L|L|}
185 \hline
186
187 appl
188  & 
189 Kerberos application client and server programs
190 \\
191 \hline
192 ccapi
193  & 
194 Credential cache services
195 \\
196 \hline
197 clients
198  & 
199 Kerberos V5 user programs (See \emph{user\_commands})
200 \\
201 \hline
202 config
203  & 
204 Configure scripts
205 \\
206 \hline
207 config-files
208  & 
209 Sample Kerberos configuration files
210 \\
211 \hline
212 include
213  & 
214 include files needed to build the Kerberos system
215 \\
216 \hline
217 kadmin
218  & 
219 Administrative interface to the Kerberos master database: \emph{kadmin(1)}, \emph{kdb5\_util(8)}, \emph{ktutil(1)}.
220 \\
221 \hline
222 kdc
223  & 
224 Kerberos V5 Authentication Service and Key Distribution Center
225 \\
226 \hline
227 {\hyperref[build/directory_org:lib]{lib}}
228  & 
229 Libraries for use with/by Kerberos V5
230 \\
231 \hline
232 plugins
233  & 
234 Kerberos plugins directory
235 \\
236 \hline
237 po
238  & 
239 Localization infrastructure
240 \\
241 \hline
242 prototype
243  & 
244 Templates files containing the MIT copyright message and a placeholder for the title and description of the file.
245 \\
246 \hline
247 slave
248  & 
249 Utilities for propagating the database to slave KDCs \emph{kprop(8)} and \emph{kpropd(8)}
250 \\
251 \hline
252 tests
253  & 
254 Test suite
255 \\
256 \hline
257 {\hyperref[build/directory_org:util]{util}}
258  & 
259 Various utilities for building/configuring the code, sending bug reports, etc.
260 \\
261 \hline
262 windows
263  & 
264 Source code for building Kerberos V5 on Windows (see windows/README)
265 \\
266 \hline\end{tabulary}
267
268
269
270 \subsection{lib}
271 \label{build/directory_org:lib}\label{build/directory_org:id1}
272 The lib directory contain several subdirectories as well as some
273 definition and glue files.
274 \begin{itemize}
275 \item {} 
276 The apputils directory contains the code for the generic network
277 servicing.
278
279 \item {} 
280 The crypto subdirectory contains the Kerberos V5 encryption
281 library.
282
283 \item {} 
284 The gssapi library contains the Generic Security Services API,
285 which is a library of commands to be used in secure client-server
286 communication.
287
288 \item {} 
289 The kadm5 directory contains the libraries for the KADM5
290 administration utilities.
291
292 \item {} 
293 The Kerberos 5 database libraries are contained in kdb.
294
295 \item {} 
296 The krb5 directory contains Kerberos 5 API.
297
298 \item {} 
299 The rpc directory contains the API for the Kerberos Remote
300 Procedure Call protocol.
301
302 \end{itemize}
303
304
305 \subsection{util}
306 \label{build/directory_org:util}\label{build/directory_org:id2}\begin{description}
307 \item[{The util directory contains several utility programs and libraries.}] \leavevmode\begin{itemize}
308 \item {} 
309 the programs used to configure and build the code, such as
310 autoconf, lndir, kbuild, reconf, and makedepend, are in this
311 directory.
312
313 \item {} 
314 the profile directory contains most of the functions which parse
315 the Kerberos configuration files (krb5.conf and kdc.conf).
316
317 \item {} 
318 the Kerberos error table library and utilities (et);
319
320 \item {} 
321 the Sub-system library and utilities (ss);
322
323 \item {} 
324 database utilities (db2);
325
326 \item {} 
327 pseudo-terminal utilities (pty);
328
329 \item {} 
330 bug-reporting program send-pr;
331
332 \item {} 
333 a generic support library support used by several of our other
334 libraries;
335
336 \item {} 
337 the build infrastructure for building lightweight Kerberos client
338 (collected-client-lib)
339
340 \item {} 
341 the tool for validating Kerberos configuration files
342 (confvalidator);
343
344 \item {} 
345 the toolkit for kernel integrators for building krb5 code subsets
346 (gss-kernel-lib);
347
348 \item {} 
349 source code for building Kerberos V5 on MacOS (mac)
350
351 \item {} 
352 Windows getopt operations (windows)
353
354 \end{itemize}
355
356 \end{description}
357
358
359 \section{Doing the build}
360 \label{build/doing_build::doc}\label{build/doing_build:doing-the-build}
361
362 \subsection{Building within a single tree}
363 \label{build/doing_build:do-build}\label{build/doing_build:building-within-a-single-tree}
364 If you only need to build Kerberos for one platform, using a single
365 directory tree which contains both the source files and the object
366 files is the simplest.  However, if you need to maintain Kerberos for
367 a large number of platforms, you will probably want to use separate
368 build trees for each platform.  We recommend that you look at OS
369 Incompatibilities, for notes that we have on particular operating
370 systems.
371
372 If you don't want separate build trees for each architecture, then use
373 the following abbreviated procedure:
374
375 \begin{Verbatim}[commandchars=\\\{\}]
376 cd /u1/krb5\PYGZhy{}VERSION/src
377 ./configure
378 make
379 \end{Verbatim}
380
381 That's it!
382
383
384 \subsection{Building with separate build directories}
385 \label{build/doing_build:building-with-separate-build-directories}
386 If you wish to keep separate build directories for each platform, you
387 can do so using the following procedure.  (Note, this requires that
388 your make program support VPATH.  GNU's make will provide this
389 functionality, for example.)  If your make program does not support
390 this, see the next section.
391
392 For example, if you wish to store the binaries in \code{tmpbuild} build
393 directory you might use the following procedure:
394
395 \begin{Verbatim}[commandchars=\\\{\}]
396 mkdir /u1/tmpbuild
397 cd /u1/tmpbuild
398 /u1/krb5\PYGZhy{}VERSION/src/configure
399 make
400 \end{Verbatim}
401
402
403 \subsection{Building using lndir}
404 \label{build/doing_build:building-using-lndir}
405 If you wish to keep separate build directories for each platform, and
406 you do not have access to a make program which supports VPATH, all is
407 not lost.  You can use the lndir program to create symbolic link trees
408 in your build directory.
409
410 For example, if you wish to create a build directory for solaris
411 binaries you might use the following procedure:
412
413 \begin{Verbatim}[commandchars=\\\{\}]
414 mkdir /u1/krb5\PYGZhy{}VERSION/solaris
415 cd /u1/krb5\PYGZhy{}VERSION/solaris
416 /u1/krb5\PYGZhy{}VERSION/src/util/lndir {}`pwd{}`/../src
417 ./configure
418 make
419 \end{Verbatim}
420
421 You must give an absolute pathname to lndir because it has a bug that
422 makes it fail for relative pathnames.  Note that this version differs
423 from the latest version as distributed and installed by the
424 XConsortium with X11R6.  Either version should be acceptable.
425
426
427 \subsection{Installing the binaries}
428 \label{build/doing_build:installing-the-binaries}
429 Once you have built Kerberos, you should install the binaries. You can
430 do this by running:
431
432 \begin{Verbatim}[commandchars=\\\{\}]
433 make install
434 \end{Verbatim}
435
436 If you want to install the binaries into a destination directory that
437 is not their final destination, which may be convenient if you want to
438 build a binary distribution to be deployed on multiple hosts, you may
439 use:
440
441 \begin{Verbatim}[commandchars=\\\{\}]
442 make install DESTDIR=/path/to/destdir
443 \end{Verbatim}
444
445 This will install the binaries under \emph{DESTDIR/PREFIX}, e.g., the user
446 programs will install into \emph{DESTDIR/PREFIX/bin}, the libraries into
447 \emph{DESTDIR/PREFIX/lib}, etc.
448
449 Some implementations of make allow multiple commands to be run in
450 parallel, for faster builds.  We test our Makefiles in parallel builds
451 with GNU make only; they may not be compatible with other parallel
452 build implementations.
453
454
455 \subsection{Testing the build}
456 \label{build/doing_build:testing-the-build}
457 The Kerberos V5 distribution comes with built-in regression tests.  To
458 run them, simply type the following command while in the top-level
459 build directory (i.e., the directory where you sent typed make to
460 start building Kerberos; see {\hyperref[build/doing_build:do-build]{\emph{Building within a single tree}}}):
461
462 \begin{Verbatim}[commandchars=\\\{\}]
463 make check
464 \end{Verbatim}
465
466 However, there are several prerequisites that must be satisfied first:
467 \begin{itemize}
468 \item {} 
469 Configure and build Kerberos with Tcl support. Tcl is used to drive
470 the test suite.  This often means passing \textbf{-}\textbf{-with-tcl} to
471 configure to tell it the location of the Tcl configuration
472 script. (See {\hyperref[build/options2configure:options2configure]{\emph{Options to configure}}}.)
473
474 \item {} 
475 In addition to Tcl, DejaGnu must be available on the system for some
476 of the tests to run.  The test suite will still run the other tests
477 if DejaGnu is not present, but the test coverage will be reduced
478 accordingly.
479
480 \item {} 
481 On some operating systems, you have to run \code{make install} before
482 running \code{make check}, or the test suite will pick up installed
483 versions of Kerberos libraries rather than the newly built ones.
484 You can install into a prefix that isn't in the system library
485 search path, though. Alternatively, you can configure with
486 \textbf{-}\textbf{-disable-rpath}, which renders the build tree less suitable for
487 installation, but allows testing without interference from
488 previously installed libraries.
489
490 \end{itemize}
491
492 There are additional regression tests available, which are not run
493 by \code{make check}.  These tests require manual setup and teardown of
494 support infrastructure which is not easily automated, or require
495 excessive resources for ordinary use.  The procedure for running
496 the manual tests is documented at
497 \href{http://k5wiki.kerberos.org/wiki/Manual\_Testing}{http://k5wiki.kerberos.org/wiki/Manual\_Testing}.
498
499
500 \subsection{Cleaning up the build}
501 \label{build/doing_build:cleaning-up-the-build}\begin{itemize}
502 \item {} 
503 Use \code{make clean} to remove all files generated by running make
504 command.
505
506 \item {} 
507 Use \code{make distclean} to remove all files generated by running
508 ./configure script.  After running \code{make distclean} your source
509 tree (ideally) should look like the raw (just un-tarred) source
510 tree.
511
512 \end{itemize}
513
514
515 \subsection{Using autoconf}
516 \label{build/doing_build:using-autoconf}
517 (If you are not a developer, you can ignore this section.)
518
519 In the Kerberos V5 source directory, there is a configure script which
520 automatically determines the compilation environment and creates the
521 proper Makefiles for a particular platform.  This configure script is
522 generated using autoconf, which you should already have installed if
523 you will be making changes to \code{src/configure.in}.
524
525 Normal users will not need to worry about running autoconf; the
526 distribution comes with the configure script already prebuilt.
527
528 The autoconf package comes with a script called \code{autoreconf} that
529 will automatically run \code{autoconf} and \code{autoheader} as needed.  You
530 should run \code{autoreconf} from the top source directory, e.g.:
531
532 \begin{Verbatim}[commandchars=\\\{\}]
533 \PYG{n}{cd} \PYG{o}{/}\PYG{n}{u1}\PYG{o}{/}\PYG{n}{krb5}\PYG{o}{\PYGZhy{}}\PYG{n}{VERSION}\PYG{o}{/}\PYG{n}{src}
534 \PYG{n}{autoreconf} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{verbose}
535 \end{Verbatim}
536
537
538 \section{Options to \emph{configure}}
539 \label{build/options2configure:options2configure}\label{build/options2configure::doc}\label{build/options2configure:options-to-configure}
540 There are a number of options to configure which you can use to
541 control how the Kerberos distribution is built.
542
543
544 \subsection{Most commonly used options}
545 \label{build/options2configure:most-commonly-used-options}\begin{description}
546 \item[{\textbf{-}\textbf{-help}}] \leavevmode
547 Provides help to configure.  This will list the set of commonly
548 used options for building Kerberos.
549
550 \item[{\textbf{-}\textbf{-prefix=}\emph{PREFIX}}] \leavevmode
551 By default, Kerberos will install the package's files rooted at
552 \code{/usr/local}.  If you desire to place the binaries into the
553 directory \emph{PREFIX}, use this option.
554
555 \item[{\textbf{-}\textbf{-exec-prefix=}\emph{EXECPREFIX}}] \leavevmode
556 This option allows one to separate the architecture independent
557 programs from the host-dependent files (configuration files,
558 manual pages).  Use this option to install architecture-dependent
559 programs in \emph{EXECPREFIX}.  The default location is the value of
560 specified by \textbf{-}\textbf{-prefix} option.
561
562 \item[{\textbf{-}\textbf{-localstatedir=}\emph{LOCALSTATEDIR}}] \leavevmode
563 This option sets the directory for locally modifiable
564 single-machine data.  In Kerberos, this mostly is useful for
565 setting a location for the KDC data files, as they will be
566 installed in \code{LOCALSTATEDIR/krb5kdc}, which is by default
567 \code{PREFIX/var/krb5kdc}.
568
569 \item[{\textbf{-}\textbf{-with-netlib}{[}=\emph{libs}{]}}] \leavevmode
570 Allows for suppression of or replacement of network libraries.  By
571 default, Kerberos V5 configuration will look for \code{-lnsl} and
572 \code{-lsocket}.  If your operating system has a broken resolver
573 library or fails to pass the tests in \code{src/tests/resolv}, you
574 will need to use this option.
575
576 \item[{\textbf{-}\textbf{-with-tcl=}\emph{TCLPATH}}] \leavevmode
577 Some of the unit-tests in the build tree rely upon using a program
578 in Tcl.  The directory specified by \emph{TCLPATH} specifies where the
579 Tcl header file (TCLPATH/include/tcl.h) as well as where the Tcl
580 library (TCLPATH/lib) should be found.
581
582 \item[{\textbf{-}\textbf{-enable-dns-for-realm}}] \leavevmode
583 Enable the use of DNS to look up a host's Kerberos realm,
584 if the information is not provided in
585 \emph{krb5.conf(5)}.  See \emph{mapping\_hostnames}
586 for information about using DNS to determine the default realm.
587 DNS lookups for realm names are disabled by default.
588
589 \item[{\textbf{-}\textbf{-with-system-et}}] \leavevmode
590 Use an installed version of the error-table (et) support software,
591 the compile\_et program, the com\_err.h header file and the com\_err
592 library.  If these are not in the default locations, you may wish
593 to specify \code{CPPFLAGS=-I/some/dir} and
594 \code{LDFLAGS=-L/some/other/dir} options at configuration time as
595 well.
596
597 If this option is not given, a version supplied with the Kerberos
598 sources will be built and installed along with the rest of the
599 Kerberos tree, for Kerberos applications to link against.
600
601 \item[{\textbf{-}\textbf{-with-system-ss}}] \leavevmode
602 Use an installed version of the subsystem command-line interface
603 software, the mk\_cmds program, the \code{ss/ss.h} header file and the
604 ss library.  If these are not in the default locations, you may
605 wish to specify \code{CPPFLAGS=-I/some/dir} and
606 \code{LDFLAGS=-L/some/other/dir} options at configuration time as
607 well.  See also the \textbf{SS\_LIB} option.
608
609 If this option is not given, the ss library supplied with the
610 Kerberos sources will be compiled and linked into those programs
611 that need it; it will not be installed separately.
612
613 \item[{\textbf{-}\textbf{-with-system-db}}] \leavevmode
614 Use an installed version of the Berkeley DB package, which must
615 provide an API compatible with version 1.85.  This option is
616 unsupported and untested.  In particular, we do not know if the
617 database-rename code used in the dumpfile load operation will
618 behave properly.
619
620 If this option is not given, a version supplied with the Kerberos
621 sources will be built and installed.  (We are not updating this
622 version at this time because of licensing issues with newer
623 versions that we haven't investigated sufficiently yet.)
624
625 \end{description}
626
627
628 \subsection{Environment variables}
629 \label{build/options2configure:environment-variables}\begin{description}
630 \item[{\textbf{CC=}\emph{COMPILER}}] \leavevmode
631 Use \emph{COMPILER} as the C compiler.
632
633 \item[{\textbf{CFLAGS=}\emph{FLAGS}}] \leavevmode
634 Use \emph{FLAGS} as the default set of C compiler flags.
635
636 \item[{\textbf{CPP=}\emph{CPP}}] \leavevmode
637 C preprocessor to use. (e.g., \code{CPP='gcc -E'})
638
639 \item[{\textbf{CPPFLAGS=}\emph{CPPOPTS}}] \leavevmode
640 Use \emph{CPPOPTS} as the default set of C preprocessor flags.  The
641 most common use of this option is to select certain \#define's for
642 use with the operating system's include files.
643
644 \item[{\textbf{DB\_HEADER=}\emph{headername}}] \leavevmode
645 If db.h is not the correct header file to include to compile
646 against the Berkeley DB 1.85 API, specify the correct header file
647 name with this option. For example, \code{DB\_HEADER=db3/db\_185.h}.
648
649 \item[{\textbf{DB\_LIB=}\emph{libs}...}] \leavevmode
650 If \code{-ldb} is not the correct library specification for the
651 Berkeley DB library version to be used, override it with this
652 option. For example, \code{DB\_LIB=-ldb-3.3}.
653
654 \item[{\textbf{DEFCCNAME=}\emph{ccachename}}] \leavevmode
655 Override the built-in default credential cache name.
656 For example, \code{DEFCCNAME=DIR:/var/run/user/\%\{USERID\}/ccache}
657 See \emph{parameter\_expansion} for information about supported
658 parameter expansions.
659
660 \item[{\textbf{DEFCKTNAME=}\emph{keytabname}}] \leavevmode
661 Override the built-in default client keytab name.
662 The format is the same as for \emph{DEFCCNAME}.
663
664 \item[{\textbf{DEFKTNAME=}\emph{keytabname}}] \leavevmode
665 Override the built-in default keytab name.
666 The format is the same as for \emph{DEFCCNAME}.
667
668 \item[{\textbf{LD=}\emph{LINKER}}] \leavevmode
669 Use \emph{LINKER} as the default loader if it should be different from
670 C compiler as specified above.
671
672 \item[{\textbf{LDFLAGS=}\emph{LDOPTS}}] \leavevmode
673 This option informs the linker where to get additional libraries
674 (e.g., \code{-L\textless{}lib dir\textgreater{}}).
675
676 \item[{\textbf{LIBS=}\emph{LDNAME}}] \leavevmode
677 This option allows one to specify libraries to be passed to the
678 linker (e.g., \code{-l\textless{}library\textgreater{}})
679
680 \item[{\textbf{SS\_LIB=}\emph{libs}...}] \leavevmode
681 If \code{-lss} is not the correct way to link in your installed ss
682 library, for example if additional support libraries are needed,
683 specify the correct link options here.  Some variants of this
684 library are around which allow for Emacs-like line editing, but
685 different versions require different support libraries to be
686 explicitly specified.
687
688 This option is ignored if \textbf{-}\textbf{-with-system-ss} is not specified.
689
690 \item[{\textbf{YACC}}] \leavevmode
691 The `Yet Another C Compiler' implementation to use. Defaults to
692 the first program found out of: `\emph{bison -y}`, `\emph{byacc}`,
693 `\emph{yacc}`.
694
695 \item[{\textbf{YFLAGS}}] \leavevmode
696 The list of arguments that will be passed by default to \$YACC.
697 This script will default YFLAGS to the empty string to avoid a
698 default value of \code{-d} given by some make applications.
699
700 \end{description}
701
702
703 \subsection{Fine tuning of the installation directories}
704 \label{build/options2configure:fine-tuning-of-the-installation-directories}\begin{description}
705 \item[{\textbf{-}\textbf{-bindir=}\emph{DIR}}] \leavevmode
706 User executables.  Defaults to \code{EXECPREFIX/bin}, where
707 \emph{EXECPREFIX} is the path specified by \textbf{-}\textbf{-exec-prefix}
708 configuration option.
709
710 \item[{\textbf{-}\textbf{-sbindir=}\emph{DIR}}] \leavevmode
711 System admin executables.  Defaults to \code{EXECPREFIX/sbin}, where
712 \emph{EXECPREFIX} is the path specified by \textbf{-}\textbf{-exec-prefix}
713 configuration option.
714
715 \item[{\textbf{-}\textbf{-sysconfdir=}\emph{DIR}}] \leavevmode
716 Read-only single-machine data such as krb5.conf.
717 Defaults to \code{PREFIX/etc}, where
718 \emph{PREFIX} is the path specified by \textbf{-}\textbf{-prefix} configuration
719 option.
720
721 \item[{\textbf{-}\textbf{-libdir=}\emph{DIR}}] \leavevmode
722 Object code libraries.  Defaults to \code{EXECPREFIX/lib}, where
723 \emph{EXECPREFIX} is the path specified by \textbf{-}\textbf{-exec-prefix}
724 configuration option.
725
726 \item[{\textbf{-}\textbf{-includedir=}\emph{DIR}}] \leavevmode
727 C header files.  Defaults to \code{PREFIX/include}, where \emph{PREFIX} is
728 the path specified by \textbf{-}\textbf{-prefix} configuration option.
729
730 \item[{\textbf{-}\textbf{-datarootdir=}\emph{DATAROOTDIR}}] \leavevmode
731 Read-only architecture-independent data root.  Defaults to
732 \code{PREFIX/share}, where \emph{PREFIX} is the path specified by
733 \textbf{-}\textbf{-prefix} configuration option.
734
735 \item[{\textbf{-}\textbf{-datadir=}\emph{DIR}}] \leavevmode
736 Read-only architecture-independent data.  Defaults to path
737 specified by \textbf{-}\textbf{-datarootdir} configuration option.
738
739 \item[{\textbf{-}\textbf{-localedir=}\emph{DIR}}] \leavevmode
740 Locale-dependent data.  Defaults to \code{DATAROOTDIR/locale}, where
741 \emph{DATAROOTDIR} is the path specified by \textbf{-}\textbf{-datarootdir}
742 configuration option.
743
744 \item[{\textbf{-}\textbf{-mandir=}\emph{DIR}}] \leavevmode
745 Man documentation.  Defaults to \code{DATAROOTDIR/man}, where
746 \emph{DATAROOTDIR} is the path specified by \textbf{-}\textbf{-datarootdir}
747 configuration option.
748
749 \end{description}
750
751
752 \subsection{Program names}
753 \label{build/options2configure:program-names}\begin{description}
754 \item[{\textbf{-}\textbf{-program-prefix=}\emph{PREFIX}}] \leavevmode
755 Prepend \emph{PREFIX} to the names of the programs when installing
756 them. For example, specifying \code{-{-}program-prefix=mit-} at the
757 configure time will cause the program named \code{abc} to be
758 installed as \code{mit-abc}.
759
760 \item[{\textbf{-}\textbf{-program-suffix=}\emph{SUFFIX}}] \leavevmode
761 Append \emph{SUFFIX} to the names of the programs when installing them.
762 For example, specifying \code{-{-}program-suffix=-mit} at the configure
763 time will cause the program named \code{abc} to be installed as
764 \code{abc-mit}.
765
766 \item[{\textbf{-}\textbf{-program-transform-name=}\emph{PROGRAM}}] \leavevmode
767 Run \code{sed -e PROGRAM} on installed program names. (\emph{PROGRAM} is a
768 sed script).
769
770 \end{description}
771
772
773 \subsection{System types}
774 \label{build/options2configure:system-types}\begin{description}
775 \item[{\textbf{-}\textbf{-build=}\emph{BUILD}}] \leavevmode
776 Configure for building on \emph{BUILD}
777 (e.g., \code{-{-}build=x86\_64-linux-gnu}).
778
779 \item[{\textbf{-}\textbf{-host=}\emph{HOST}}] \leavevmode
780 Cross-compile to build programs to run on \emph{HOST}
781 (e.g., \code{-{-}host=x86\_64-linux-gnu}).  By default, Kerberos V5
782 configuration will look for ``build'' option.
783
784 \end{description}
785
786
787 \subsection{Optional features}
788 \label{build/options2configure:optional-features}\begin{description}
789 \item[{\textbf{-}\textbf{-disable-option-checking}}] \leavevmode
790 Ignore unrecognized --enable/--with options.
791
792 \item[{\textbf{-}\textbf{-disable-}\emph{FEATURE}}] \leavevmode
793 Do not include \emph{FEATURE} (same as --enable-FEATURE=no).
794
795 \item[{\textbf{-}\textbf{-enable-}\emph{FEATURE}{[}=\emph{ARG}{]}}] \leavevmode
796 Include \emph{FEATURE} {[}ARG=yes{]}.
797
798 \item[{\textbf{-}\textbf{-enable-maintainer-mode}}] \leavevmode
799 Enable rebuilding of source files, Makefiles, etc.
800
801 \item[{\textbf{-}\textbf{-disable-delayed-initialization}}] \leavevmode
802 Initialize library code when loaded.  Defaults to delay until
803 first use.
804
805 \item[{\textbf{-}\textbf{-disable-thread-support}}] \leavevmode
806 Don't enable thread support.  Defaults to enabled.
807
808 \item[{\textbf{-}\textbf{-disable-rpath}}] \leavevmode
809 Suppress run path flags in link lines.
810
811 \item[{\textbf{-}\textbf{-enable-athena}}] \leavevmode
812 Build with MIT Project Athena configuration.
813
814 \item[{\textbf{-}\textbf{-disable-kdc-lookaside-cache}}] \leavevmode
815 Disable the cache which detects client retransmits.
816
817 \item[{\textbf{-}\textbf{-disable-pkinit}}] \leavevmode
818 Disable PKINIT plugin support.
819
820 \item[{\textbf{-}\textbf{-disable-aesni}}] \leavevmode
821 Disable support for using AES instructions on x86 platforms.
822
823 \item[{\textbf{-}\textbf{-enable-asan}{[}=\emph{ARG}{]}}] \leavevmode
824 Enable building with asan memory error checking.  If \emph{ARG} is
825 given, it controls the -fsanitize compilation flag value (the
826 default is ``address'').
827
828 \end{description}
829
830
831 \subsection{Optional packages}
832 \label{build/options2configure:optional-packages}\begin{description}
833 \item[{\textbf{-}\textbf{-with-}\emph{PACKAGE}{[}=ARG{]}}] \leavevmode
834 Use \emph{PACKAGE} (e.g., \code{-{-}with-imap}).  The default value of \emph{ARG}
835 is \code{yes}.
836
837 \item[{\textbf{-}\textbf{-without-}\emph{PACKAGE}}] \leavevmode
838 Do not use \emph{PACKAGE} (same as \code{-{-}with-PACKAGE=no})
839 (e.g., \code{-{-}without-libedit}).
840
841 \item[{\textbf{-}\textbf{-with-size-optimizations}}] \leavevmode
842 Enable a few optimizations to reduce code size possibly at some
843 run-time cost.
844
845 \item[{\textbf{-}\textbf{-with-system-et}}] \leavevmode
846 Use the com\_err library and compile\_et utility that are already
847 installed on the system, instead of building and installing
848 local versions.
849
850 \item[{\textbf{-}\textbf{-with-system-ss}}] \leavevmode
851 Use the ss library and mk\_cmds utility that are already installed
852 on the system, instead of building and using private versions.
853
854 \item[{\textbf{-}\textbf{-with-system-db}}] \leavevmode
855 Use the berkeley db utility already installed on the system,
856 instead of using a private version.  This option is not
857 recommended; enabling it may result in incompatibility with key
858 databases originating on other systems.
859
860 \item[{\textbf{-}\textbf{-with-netlib=}\emph{LIBS}}] \leavevmode
861 Use the resolver library specified in \emph{LIBS}.  Use this variable
862 if the C library resolver is insufficient or broken.
863
864 \item[{\textbf{-}\textbf{-with-hesiod=}\emph{path}}] \leavevmode
865 Compile with Hesiod support.  The \emph{path} points to the Hesiod
866 directory.  By default Hesiod is unsupported.
867
868 \item[{\textbf{-}\textbf{-with-ldap}}] \leavevmode
869 Compile OpenLDAP database backend module.
870
871 \item[{\textbf{-}\textbf{-with-tcl=}\emph{path}}] \leavevmode
872 Specifies that \emph{path} is the location of a Tcl installation.
873 Tcl is needed for some of the tests run by `make check'; such tests
874 will be skipped if this option is not set.
875
876 \item[{\textbf{-}\textbf{-with-vague-errors}}] \leavevmode
877 Do not send helpful errors to client.  For example, if the KDC
878 should return only vague error codes to clients.
879
880 \item[{\textbf{-}\textbf{-with-crypto-impl=}\emph{IMPL}}] \leavevmode
881 Use specified crypto implementation (e.g., \textbf{-}\textbf{-with-crypto-impl=}\emph{openssl}).  The default is the native MIT
882 Kerberos implementation \code{builtin}.  The other currently
883 implemented crypto backend is \code{openssl}.  (See
884 \emph{mitK5features})
885
886 \item[{\textbf{-}\textbf{-with-prng-alg=}\emph{ALG}}] \leavevmode
887 Use specified PRNG algorithm.  For example, to use the OS native
888 prng specify \code{-{-}with-prng-alg=os}.  The default is \code{fortuna}.
889 (See \emph{mitK5features})
890
891 \item[{\textbf{-}\textbf{-with-pkinit-crypto-impl=}\emph{IMPL}}] \leavevmode
892 Use the specified pkinit crypto implementation \emph{IMPL}.
893 Defaults to using OpenSSL.
894
895 \item[{\textbf{-}\textbf{-without-libedit}}] \leavevmode
896 Do not compile and link against libedit.  Some utilities will no
897 longer offer command history or completion in interactive mode if
898 libedit is disabled.
899
900 \item[{\textbf{-}\textbf{-with-readline}}] \leavevmode
901 Compile and link against GNU readline, as an alternative to libedit.
902 Building with readline breaks the dejagnu test suite, which is a
903 subset of the tests run by `make check'.
904
905 \item[{\textbf{-}\textbf{-with-system-verto}}] \leavevmode
906 Use an installed version of libverto.  If the libverto header and
907 library are not in default locations, you may wish to specify
908 \code{CPPFLAGS=-I/some/dir} and \code{LDFLAGS=-L/some/other/dir} options
909 at configuration time as well.
910
911 If this option is not given, the build system will try to detect
912 an installed version of libverto and use it if it is found.
913 Otherwise, a version supplied with the Kerberos sources will be
914 built and installed.  The built-in version does not contain the
915 full set of back-end modules and is not a suitable general
916 replacement for the upstream version, but will work for the
917 purposes of Kerberos.
918
919 Specifying \textbf{-}\textbf{-without-system-verto} will cause the built-in
920 version of libverto to be used unconditionally.
921
922 \item[{\textbf{-}\textbf{-with-krb5-config=}\emph{PATH}}] \leavevmode
923 Use the krb5-config program at \emph{PATH} to obtain the build-time
924 default credential cache, keytab, and client keytab names.  The
925 default is to use \code{krb5-config} from the program path.  Specify
926 \code{-{-}without-krb5-config} to disable the use of krb5-config and
927 use the usual built-in defaults.
928
929 \end{description}
930
931
932 \subsection{Examples}
933 \label{build/options2configure:examples}
934 For example, in order to configure Kerberos on a Solaris machine using
935 the suncc compiler with the optimizer turned on, run the configure
936 script with the following options:
937
938 \begin{Verbatim}[commandchars=\\\{\}]
939 \PYGZpc{} ./configure CC=suncc CFLAGS=\PYGZhy{}O
940 \end{Verbatim}
941
942 For a slightly more complicated example, consider a system where
943 several packages to be used by Kerberos are installed in
944 \code{/usr/foobar}, including Berkeley DB 3.3, and an ss library that
945 needs to link against the curses library.  The configuration of
946 Kerberos might be done thus:
947
948 \begin{Verbatim}[commandchars=\\\{\}]
949 ./configure CPPFLAGS=\PYGZhy{}I/usr/foobar/include LDFLAGS=\PYGZhy{}L/usr/foobar/lib \PYGZbs{}
950 \PYGZhy{}\PYGZhy{}with\PYGZhy{}system\PYGZhy{}et \PYGZhy{}\PYGZhy{}with\PYGZhy{}system\PYGZhy{}ss \PYGZhy{}\PYGZhy{}with\PYGZhy{}system\PYGZhy{}db  \PYGZbs{}
951 SS\PYGZus{}LIB=\PYGZsq{}\PYGZhy{}lss \PYGZhy{}lcurses\PYGZsq{}  DB\PYGZus{}HEADER=db3/db\PYGZus{}185.h DB\PYGZus{}LIB=\PYGZhy{}ldb\PYGZhy{}3.3
952 \end{Verbatim}
953
954
955 \section{osconf.hin}
956 \label{build/osconf:osconf-hin}\label{build/osconf::doc}
957 There is one configuration file which you may wish to edit to control
958 various compile-time parameters in the Kerberos distribution:
959
960 \begin{Verbatim}[commandchars=\\\{\}]
961 \PYG{n}{include}\PYG{o}{/}\PYG{n}{osconf}\PYG{o}{.}\PYG{n}{hin}
962 \end{Verbatim}
963
964 The list that follows is by no means complete, just some of the more
965 interesting variables.
966 \begin{description}
967 \item[{\textbf{DEFAULT\_PROFILE\_PATH}}] \leavevmode
968 The pathname to the file which contains the profiles for the known
969 realms, their KDCs, etc. The default value is \code{/etc/krb5.conf}.
970
971 \item[{\textbf{DEFAULT\_KEYTAB\_NAME}}] \leavevmode
972 The type and pathname to the default server keytab file.  The
973 default is \emph{DEFKTNAME}.
974
975 \item[{\textbf{DEFAULT\_KDC\_ENCTYPE}}] \leavevmode
976 The default encryption type for the KDC database master key.  The
977 default value is \code{aes256-cts-hmac-sha1-96}.
978
979 \item[{\textbf{RCTMPDIR}}] \leavevmode
980 The directory which stores replay caches.  The default is
981 \code{/var/tmp}.
982
983 \item[{\textbf{DEFAULT\_KDB\_FILE}}] \leavevmode
984 The location of the default database.  The default value is
985 \emph{LOCALSTATEDIR}\code{/krb5kdc}\code{/principal}.
986
987 \end{description}
988
989
990
991 \renewcommand{\indexname}{Index}
992 \printindex
993 \end{document}