Blame doc/pdf/build.tex

Packit fd8b60
%% Generated by Sphinx.
Packit fd8b60
\def\sphinxdocclass{report}
Packit fd8b60
\documentclass[letterpaper,10pt,english]{sphinxmanual}
Packit fd8b60
\ifdefined\pdfpxdimen
Packit fd8b60
   \let\sphinxpxdimen\pdfpxdimen\else\newdimen\sphinxpxdimen
Packit fd8b60
\fi \sphinxpxdimen=.75bp\relax
Packit fd8b60
Packit fd8b60
\usepackage[utf8]{inputenc}
Packit fd8b60
\ifdefined\DeclareUnicodeCharacter
Packit fd8b60
 \ifdefined\DeclareUnicodeCharacterAsOptional
Packit fd8b60
  \DeclareUnicodeCharacter{"00A0}{\nobreakspace}
Packit fd8b60
  \DeclareUnicodeCharacter{"2500}{\sphinxunichar{2500}}
Packit fd8b60
  \DeclareUnicodeCharacter{"2502}{\sphinxunichar{2502}}
Packit fd8b60
  \DeclareUnicodeCharacter{"2514}{\sphinxunichar{2514}}
Packit fd8b60
  \DeclareUnicodeCharacter{"251C}{\sphinxunichar{251C}}
Packit fd8b60
  \DeclareUnicodeCharacter{"2572}{\textbackslash}
Packit fd8b60
 \else
Packit fd8b60
  \DeclareUnicodeCharacter{00A0}{\nobreakspace}
Packit fd8b60
  \DeclareUnicodeCharacter{2500}{\sphinxunichar{2500}}
Packit fd8b60
  \DeclareUnicodeCharacter{2502}{\sphinxunichar{2502}}
Packit fd8b60
  \DeclareUnicodeCharacter{2514}{\sphinxunichar{2514}}
Packit fd8b60
  \DeclareUnicodeCharacter{251C}{\sphinxunichar{251C}}
Packit fd8b60
  \DeclareUnicodeCharacter{2572}{\textbackslash}
Packit fd8b60
 \fi
Packit fd8b60
\fi
Packit fd8b60
\usepackage{cmap}
Packit fd8b60
\usepackage[T1]{fontenc}
Packit fd8b60
\usepackage{amsmath,amssymb,amstext}
Packit fd8b60
\usepackage{babel}
Packit fd8b60
\usepackage{times}
Packit fd8b60
\usepackage[Bjarne]{fncychap}
Packit fd8b60
\usepackage[dontkeepoldnames]{sphinx}
Packit fd8b60
Packit fd8b60
\usepackage{geometry}
Packit fd8b60
Packit fd8b60
% Include hyperref last.
Packit fd8b60
\usepackage{hyperref}
Packit fd8b60
% Fix anchor placement for figures with captions.
Packit fd8b60
\usepackage{hypcap}% it must be loaded after hyperref.
Packit fd8b60
% Set up styles of URL: it should be placed after hyperref.
Packit fd8b60
\urlstyle{same}
Packit fd8b60
Packit fd8b60
\addto\captionsenglish{\renewcommand{\figurename}{Fig.}}
Packit fd8b60
\addto\captionsenglish{\renewcommand{\tablename}{Table}}
Packit fd8b60
\addto\captionsenglish{\renewcommand{\literalblockname}{Listing}}
Packit fd8b60
Packit fd8b60
\addto\captionsenglish{\renewcommand{\literalblockcontinuedname}{continued from previous page}}
Packit fd8b60
\addto\captionsenglish{\renewcommand{\literalblockcontinuesname}{continues on next page}}
Packit fd8b60
Packit fd8b60
\addto\extrasenglish{\def\pageautorefname{page}}
Packit fd8b60
Packit fd8b60
\setcounter{tocdepth}{0}
Packit fd8b60
Packit fd8b60
Packit fd8b60
Packit fd8b60
\title{Building MIT Kerberos}
Packit fd8b60
\date{ }
Packit fd8b60
\release{1.18.2}
Packit fd8b60
\author{MIT}
Packit fd8b60
\newcommand{\sphinxlogo}{\vbox{}}
Packit fd8b60
\renewcommand{\releasename}{Release}
Packit fd8b60
\makeindex
Packit fd8b60
Packit fd8b60
\begin{document}
Packit fd8b60
Packit fd8b60
\maketitle
Packit fd8b60
\sphinxtableofcontents
Packit fd8b60
\phantomsection\label{\detokenize{build/index::doc}}
Packit fd8b60
Packit fd8b60
Packit fd8b60
This section details how to build and install MIT Kerberos software
Packit fd8b60
from the source.
Packit fd8b60
Packit fd8b60
Packit fd8b60
\chapter{Prerequisites}
Packit fd8b60
\label{\detokenize{build/index:building-kerberos-v5}}\label{\detokenize{build/index:prerequisites}}\label{\detokenize{build/index:build-v5}}
Packit fd8b60
In order to build Kerberos V5, you will need approximately 60-70
Packit fd8b60
megabytes of disk space.  The exact amount will vary depending on the
Packit fd8b60
platform and whether the distribution is compiled with debugging
Packit fd8b60
symbol tables or not.
Packit fd8b60
Packit fd8b60
Your C compiler must conform to ANSI C (ISO/IEC 9899:1990, “c89”).
Packit fd8b60
Some operating systems do not have an ANSI C compiler, or their
Packit fd8b60
default compiler requires extra command-line options to enable ANSI C
Packit fd8b60
conformance.
Packit fd8b60
Packit fd8b60
If you wish to keep a separate build tree, which contains the compiled
Packit fd8b60
*.o file and executables, separate from your source tree, you will
Packit fd8b60
need a make program which supports \sphinxstylestrong{VPATH}, or you will need to use
Packit fd8b60
a tool such as lndir to produce a symbolic link tree for your build
Packit fd8b60
tree.
Packit fd8b60
Packit fd8b60
Packit fd8b60
\chapter{Obtaining the software}
Packit fd8b60
\label{\detokenize{build/index:obtaining-the-software}}
Packit fd8b60
The source code can be obtained from MIT Kerberos Distribution page,
Packit fd8b60
at \sphinxurl{https://kerberos.org/dist/index.html}.
Packit fd8b60
The MIT Kerberos distribution comes in an archive file, generally
Packit fd8b60
named krb5-VERSION-signed.tar, where \sphinxstyleemphasis{VERSION} is a placeholder for
Packit fd8b60
the major and minor versions of MIT Kerberos.  (For example, MIT
Packit fd8b60
Kerberos 1.9 has major version “1” and minor version “9”.)
Packit fd8b60
Packit fd8b60
The krb5-VERSION-signed.tar contains a compressed tar file consisting
Packit fd8b60
of the sources for all of Kerberos (generally named
Packit fd8b60
krb5-VERSION.tar.gz) and a PGP signature file for this source tree
Packit fd8b60
(generally named krb5-VERSION.tar.gz.asc).  MIT highly recommends that
Packit fd8b60
you verify the integrity of the source code using this signature,
Packit fd8b60
e.g., by running:
Packit fd8b60
Packit fd8b60
\fvset{hllines={, ,}}%
Packit fd8b60
\begin{sphinxVerbatim}[commandchars=\\\{\}]
Packit fd8b60
\PYG{n}{tar} \PYG{n}{xf} \PYG{n}{krb5}\PYG{o}{\PYGZhy{}}\PYG{n}{VERSION}\PYG{o}{\PYGZhy{}}\PYG{n}{signed}\PYG{o}{.}\PYG{n}{tar}
Packit fd8b60
\PYG{n}{gpg} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{verify} \PYG{n}{krb5}\PYG{o}{\PYGZhy{}}\PYG{n}{VERSION}\PYG{o}{.}\PYG{n}{tar}\PYG{o}{.}\PYG{n}{gz}\PYG{o}{.}\PYG{n}{asc}
Packit fd8b60
\end{sphinxVerbatim}
Packit fd8b60
Packit fd8b60
Unpack krb5-VERSION.tar.gz in some directory. In this section we will assume
Packit fd8b60
that you have chosen the top directory of the distribution the directory
Packit fd8b60
\sphinxcode{/u1/krb5-VERSION}.
Packit fd8b60
Packit fd8b60
Review the README file for the license, copyright and other sprecific to the
Packit fd8b60
distribution information.
Packit fd8b60
Packit fd8b60
Packit fd8b60
\chapter{Contents}
Packit fd8b60
\label{\detokenize{build/index:contents}}
Packit fd8b60
Packit fd8b60
\section{Organization of the source directory}
Packit fd8b60
\label{\detokenize{build/directory_org::doc}}\label{\detokenize{build/directory_org:organization-of-the-source-directory}}
Packit fd8b60
Below is a brief overview of the organization of the complete source
Packit fd8b60
directory.  More detailed descriptions follow.
Packit fd8b60
Packit fd8b60
Packit fd8b60
\begin{savenotes}\sphinxattablestart
Packit fd8b60
\centering
Packit fd8b60
\begin{tabulary}{\linewidth}[t]{|T|T|}
Packit fd8b60
\hline
Packit fd8b60
Packit fd8b60
appl
Packit fd8b60
&
Packit fd8b60
Kerberos application client and server programs
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
ccapi
Packit fd8b60
&
Packit fd8b60
Credential cache services
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
clients
Packit fd8b60
&
Packit fd8b60
Kerberos V5 user programs (See \DUrole{xref,std,std-ref}{user\_commands})
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
config
Packit fd8b60
&
Packit fd8b60
Configure scripts
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
config-files
Packit fd8b60
&
Packit fd8b60
Sample Kerberos configuration files
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
include
Packit fd8b60
&
Packit fd8b60
include files needed to build the Kerberos system
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
kadmin
Packit fd8b60
&
Packit fd8b60
Administrative interface to the Kerberos master database: \DUrole{xref,std,std-ref}{kadmin(1)}, \DUrole{xref,std,std-ref}{kdb5\_util(8)}, \DUrole{xref,std,std-ref}{ktutil(1)}.
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
kdc
Packit fd8b60
&
Packit fd8b60
Kerberos V5 Authentication Service and Key Distribution Center
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
{\hyperref[\detokenize{build/directory_org:lib}]{\sphinxcrossref{lib}}}
Packit fd8b60
&
Packit fd8b60
Libraries for use with/by Kerberos V5
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
plugins
Packit fd8b60
&
Packit fd8b60
Kerberos plugins directory
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
po
Packit fd8b60
&
Packit fd8b60
Localization infrastructure
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
prototype
Packit fd8b60
&
Packit fd8b60
Templates files containing the MIT copyright message and a placeholder for the title and description of the file.
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
kprop
Packit fd8b60
&
Packit fd8b60
Utilities for propagating the database to replica KDCs \DUrole{xref,std,std-ref}{kprop(8)} and \DUrole{xref,std,std-ref}{kpropd(8)}
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
tests
Packit fd8b60
&
Packit fd8b60
Test suite
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
{\hyperref[\detokenize{build/directory_org:util}]{\sphinxcrossref{util}}}
Packit fd8b60
&
Packit fd8b60
Various utilities for building/configuring the code, sending bug reports, etc.
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
windows
Packit fd8b60
&
Packit fd8b60
Source code for building Kerberos V5 on Windows (see windows/README)
Packit fd8b60
\\
Packit fd8b60
\hline
Packit fd8b60
\end{tabulary}
Packit fd8b60
\par
Packit fd8b60
\sphinxattableend\end{savenotes}
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{lib}
Packit fd8b60
\label{\detokenize{build/directory_org:lib}}\label{\detokenize{build/directory_org:id1}}
Packit fd8b60
The lib directory contain several subdirectories as well as some
Packit fd8b60
definition and glue files.
Packit fd8b60
\begin{itemize}
Packit fd8b60
\item {} 
Packit fd8b60
The apputils directory contains the code for the generic network
Packit fd8b60
servicing.
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
The crypto subdirectory contains the Kerberos V5 encryption
Packit fd8b60
library.
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
The gssapi library contains the Generic Security Services API,
Packit fd8b60
which is a library of commands to be used in secure client-server
Packit fd8b60
communication.
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
The kadm5 directory contains the libraries for the KADM5
Packit fd8b60
administration utilities.
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
The Kerberos 5 database libraries are contained in kdb.
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
The krb5 directory contains Kerberos 5 API.
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
The rpc directory contains the API for the Kerberos Remote
Packit fd8b60
Procedure Call protocol.
Packit fd8b60
Packit fd8b60
\end{itemize}
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{util}
Packit fd8b60
\label{\detokenize{build/directory_org:util}}\label{\detokenize{build/directory_org:id2}}\begin{description}
Packit fd8b60
\item[{The util directory contains several utility programs and libraries.}] \leavevmode\begin{itemize}
Packit fd8b60
\item {} 
Packit fd8b60
the programs used to configure and build the code, such as
Packit fd8b60
autoconf, lndir, kbuild, reconf, and makedepend, are in this
Packit fd8b60
directory.
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
the profile directory contains most of the functions which parse
Packit fd8b60
the Kerberos configuration files (krb5.conf and kdc.conf).
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
the Kerberos error table library and utilities (et);
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
the Sub-system library and utilities (ss);
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
database utilities (db2);
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
pseudo-terminal utilities (pty);
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
bug-reporting program send-pr;
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
a generic support library support used by several of our other
Packit fd8b60
libraries;
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
the build infrastructure for building lightweight Kerberos client
Packit fd8b60
(collected-client-lib)
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
the tool for validating Kerberos configuration files
Packit fd8b60
(confvalidator);
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
the toolkit for kernel integrators for building krb5 code subsets
Packit fd8b60
(gss-kernel-lib);
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
source code for building Kerberos V5 on MacOS (mac)
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
Windows getopt operations (windows)
Packit fd8b60
Packit fd8b60
\end{itemize}
Packit fd8b60
Packit fd8b60
\end{description}
Packit fd8b60
Packit fd8b60
Packit fd8b60
\section{Doing the build}
Packit fd8b60
\label{\detokenize{build/doing_build::doc}}\label{\detokenize{build/doing_build:doing-the-build}}
Packit fd8b60
Packit fd8b60
\subsection{Building within a single tree}
Packit fd8b60
\label{\detokenize{build/doing_build:do-build}}\label{\detokenize{build/doing_build:building-within-a-single-tree}}
Packit fd8b60
If you only need to build Kerberos for one platform, using a single
Packit fd8b60
directory tree which contains both the source files and the object
Packit fd8b60
files is the simplest.  However, if you need to maintain Kerberos for
Packit fd8b60
a large number of platforms, you will probably want to use separate
Packit fd8b60
build trees for each platform.  We recommend that you look at OS
Packit fd8b60
Incompatibilities, for notes that we have on particular operating
Packit fd8b60
systems.
Packit fd8b60
Packit fd8b60
If you don’t want separate build trees for each architecture, then use
Packit fd8b60
the following abbreviated procedure:
Packit fd8b60
Packit fd8b60
\fvset{hllines={, ,}}%
Packit fd8b60
\begin{sphinxVerbatim}[commandchars=\\\{\}]
Packit fd8b60
\PYG{n}{cd} \PYG{o}{/}\PYG{n}{u1}\PYG{o}{/}\PYG{n}{krb5}\PYG{o}{\PYGZhy{}}\PYG{n}{VERSION}\PYG{o}{/}\PYG{n}{src}
Packit fd8b60
\PYG{o}{.}\PYG{o}{/}\PYG{n}{configure}
Packit fd8b60
\PYG{n}{make}
Packit fd8b60
\end{sphinxVerbatim}
Packit fd8b60
Packit fd8b60
That’s it!
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{Building with separate build directories}
Packit fd8b60
\label{\detokenize{build/doing_build:building-with-separate-build-directories}}
Packit fd8b60
If you wish to keep separate build directories for each platform, you
Packit fd8b60
can do so using the following procedure.  (Note, this requires that
Packit fd8b60
your make program support VPATH.  GNU’s make will provide this
Packit fd8b60
functionality, for example.)  If your make program does not support
Packit fd8b60
this, see the next section.
Packit fd8b60
Packit fd8b60
For example, if you wish to store the binaries in \sphinxcode{tmpbuild} build
Packit fd8b60
directory you might use the following procedure:
Packit fd8b60
Packit fd8b60
\fvset{hllines={, ,}}%
Packit fd8b60
\begin{sphinxVerbatim}[commandchars=\\\{\}]
Packit fd8b60
\PYG{n}{mkdir} \PYG{o}{/}\PYG{n}{u1}\PYG{o}{/}\PYG{n}{tmpbuild}
Packit fd8b60
\PYG{n}{cd} \PYG{o}{/}\PYG{n}{u1}\PYG{o}{/}\PYG{n}{tmpbuild}
Packit fd8b60
\PYG{o}{/}\PYG{n}{u1}\PYG{o}{/}\PYG{n}{krb5}\PYG{o}{\PYGZhy{}}\PYG{n}{VERSION}\PYG{o}{/}\PYG{n}{src}\PYG{o}{/}\PYG{n}{configure}
Packit fd8b60
\PYG{n}{make}
Packit fd8b60
\end{sphinxVerbatim}
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{Building using lndir}
Packit fd8b60
\label{\detokenize{build/doing_build:building-using-lndir}}
Packit fd8b60
If you wish to keep separate build directories for each platform, and
Packit fd8b60
you do not have access to a make program which supports VPATH, all is
Packit fd8b60
not lost.  You can use the lndir program to create symbolic link trees
Packit fd8b60
in your build directory.
Packit fd8b60
Packit fd8b60
For example, if you wish to create a build directory for solaris
Packit fd8b60
binaries you might use the following procedure:
Packit fd8b60
Packit fd8b60
\fvset{hllines={, ,}}%
Packit fd8b60
\begin{sphinxVerbatim}[commandchars=\\\{\}]
Packit fd8b60
mkdir /u1/krb5\PYGZhy{}VERSION/solaris
Packit fd8b60
cd /u1/krb5\PYGZhy{}VERSION/solaris
Packit fd8b60
/u1/krb5\PYGZhy{}VERSION/src/util/lndir {}`pwd{}`/../src
Packit fd8b60
./configure
Packit fd8b60
make
Packit fd8b60
\end{sphinxVerbatim}
Packit fd8b60
Packit fd8b60
You must give an absolute pathname to lndir because it has a bug that
Packit fd8b60
makes it fail for relative pathnames.  Note that this version differs
Packit fd8b60
from the latest version as distributed and installed by the
Packit fd8b60
XConsortium with X11R6.  Either version should be acceptable.
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{Installing the binaries}
Packit fd8b60
\label{\detokenize{build/doing_build:installing-the-binaries}}
Packit fd8b60
Once you have built Kerberos, you should install the binaries. You can
Packit fd8b60
do this by running:
Packit fd8b60
Packit fd8b60
\fvset{hllines={, ,}}%
Packit fd8b60
\begin{sphinxVerbatim}[commandchars=\\\{\}]
Packit fd8b60
\PYG{n}{make} \PYG{n}{install}
Packit fd8b60
\end{sphinxVerbatim}
Packit fd8b60
Packit fd8b60
If you want to install the binaries into a destination directory that
Packit fd8b60
is not their final destination, which may be convenient if you want to
Packit fd8b60
build a binary distribution to be deployed on multiple hosts, you may
Packit fd8b60
use:
Packit fd8b60
Packit fd8b60
\fvset{hllines={, ,}}%
Packit fd8b60
\begin{sphinxVerbatim}[commandchars=\\\{\}]
Packit fd8b60
\PYG{n}{make} \PYG{n}{install} \PYG{n}{DESTDIR}\PYG{o}{=}\PYG{o}{/}\PYG{n}{path}\PYG{o}{/}\PYG{n}{to}\PYG{o}{/}\PYG{n}{destdir}
Packit fd8b60
\end{sphinxVerbatim}
Packit fd8b60
Packit fd8b60
This will install the binaries under \sphinxstyleemphasis{DESTDIR/PREFIX}, e.g., the user
Packit fd8b60
programs will install into \sphinxstyleemphasis{DESTDIR/PREFIX/bin}, the libraries into
Packit fd8b60
\sphinxstyleemphasis{DESTDIR/PREFIX/lib}, etc.  \sphinxstyleemphasis{DESTDIR} must be an absolute path.
Packit fd8b60
Packit fd8b60
Some implementations of make allow multiple commands to be run in
Packit fd8b60
parallel, for faster builds.  We test our Makefiles in parallel builds
Packit fd8b60
with GNU make only; they may not be compatible with other parallel
Packit fd8b60
build implementations.
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{Testing the build}
Packit fd8b60
\label{\detokenize{build/doing_build:testing-the-build}}
Packit fd8b60
The Kerberos V5 distribution comes with built-in regression tests.  To
Packit fd8b60
run them, simply type the following command while in the top-level
Packit fd8b60
build directory (i.e., the directory where you sent typed make to
Packit fd8b60
start building Kerberos; see {\hyperref[\detokenize{build/doing_build:do-build}]{\sphinxcrossref{\DUrole{std,std-ref}{Building within a single tree}}}}):
Packit fd8b60
Packit fd8b60
\fvset{hllines={, ,}}%
Packit fd8b60
\begin{sphinxVerbatim}[commandchars=\\\{\}]
Packit fd8b60
\PYG{n}{make} \PYG{n}{check}
Packit fd8b60
\end{sphinxVerbatim}
Packit fd8b60
Packit fd8b60
However, there are several prerequisites that must be satisfied first:
Packit fd8b60
\begin{itemize}
Packit fd8b60
\item {} 
Packit fd8b60
Configure and build Kerberos with Tcl support. Tcl is used to drive
Packit fd8b60
the test suite.  This often means passing \sphinxstylestrong{-}\sphinxstylestrong{-with-tcl} to
Packit fd8b60
configure to tell it the location of the Tcl configuration
Packit fd8b60
script. (See {\hyperref[\detokenize{build/options2configure:options2configure}]{\sphinxcrossref{\DUrole{std,std-ref}{Options to configure}}}}.)
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
In addition to Tcl, DejaGnu must be available on the system for some
Packit fd8b60
of the tests to run.  The test suite will still run the other tests
Packit fd8b60
if DejaGnu is not present, but the test coverage will be reduced
Packit fd8b60
accordingly.
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
On some operating systems, you have to run \sphinxcode{make install} before
Packit fd8b60
running \sphinxcode{make check}, or the test suite will pick up installed
Packit fd8b60
versions of Kerberos libraries rather than the newly built ones.
Packit fd8b60
You can install into a prefix that isn’t in the system library
Packit fd8b60
search path, though. Alternatively, you can configure with
Packit fd8b60
\sphinxstylestrong{-}\sphinxstylestrong{-disable-rpath}, which renders the build tree less suitable for
Packit fd8b60
installation, but allows testing without interference from
Packit fd8b60
previously installed libraries.
Packit fd8b60
Packit fd8b60
\end{itemize}
Packit fd8b60
Packit fd8b60
There are additional regression tests available, which are not run
Packit fd8b60
by \sphinxcode{make check}.  These tests require manual setup and teardown of
Packit fd8b60
support infrastructure which is not easily automated, or require
Packit fd8b60
excessive resources for ordinary use.  The procedure for running
Packit fd8b60
the manual tests is documented at
Packit fd8b60
\sphinxurl{https://k5wiki.kerberos.org/wiki/Manual\_Testing}.
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{Cleaning up the build}
Packit fd8b60
\label{\detokenize{build/doing_build:cleaning-up-the-build}}\begin{itemize}
Packit fd8b60
\item {} 
Packit fd8b60
Use \sphinxcode{make clean} to remove all files generated by running make
Packit fd8b60
command.
Packit fd8b60
Packit fd8b60
\item {} 
Packit fd8b60
Use \sphinxcode{make distclean} to remove all files generated by running
Packit fd8b60
./configure script.  After running \sphinxcode{make distclean} your source
Packit fd8b60
tree (ideally) should look like the raw (just un-tarred) source
Packit fd8b60
tree.
Packit fd8b60
Packit fd8b60
\end{itemize}
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{Using autoconf}
Packit fd8b60
\label{\detokenize{build/doing_build:using-autoconf}}
Packit fd8b60
(If you are not a developer, you can ignore this section.)
Packit fd8b60
Packit fd8b60
In the Kerberos V5 source directory, there is a configure script which
Packit fd8b60
automatically determines the compilation environment and creates the
Packit fd8b60
proper Makefiles for a particular platform.  This configure script is
Packit fd8b60
generated using autoconf, which you should already have installed if
Packit fd8b60
you will be making changes to \sphinxcode{src/configure.in}.
Packit fd8b60
Packit fd8b60
Normal users will not need to worry about running autoconf; the
Packit fd8b60
distribution comes with the configure script already prebuilt.
Packit fd8b60
Packit fd8b60
The autoconf package comes with a script called \sphinxcode{autoreconf} that
Packit fd8b60
will automatically run \sphinxcode{autoconf} and \sphinxcode{autoheader} as needed.  You
Packit fd8b60
should run \sphinxcode{autoreconf} from the top source directory, e.g.:
Packit fd8b60
Packit fd8b60
\fvset{hllines={, ,}}%
Packit fd8b60
\begin{sphinxVerbatim}[commandchars=\\\{\}]
Packit fd8b60
\PYG{n}{cd} \PYG{o}{/}\PYG{n}{u1}\PYG{o}{/}\PYG{n}{krb5}\PYG{o}{\PYGZhy{}}\PYG{n}{VERSION}\PYG{o}{/}\PYG{n}{src}
Packit fd8b60
\PYG{n}{autoreconf} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{n}{verbose}
Packit fd8b60
\end{sphinxVerbatim}
Packit fd8b60
Packit fd8b60
Packit fd8b60
\section{Options to \sphinxstyleemphasis{configure}}
Packit fd8b60
\label{\detokenize{build/options2configure:options2configure}}\label{\detokenize{build/options2configure::doc}}\label{\detokenize{build/options2configure:options-to-configure}}
Packit fd8b60
There are a number of options to configure which you can use to
Packit fd8b60
control how the Kerberos distribution is built.
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{Most commonly used options}
Packit fd8b60
\label{\detokenize{build/options2configure:most-commonly-used-options}}\begin{description}
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-help}}] \leavevmode
Packit fd8b60
Provides help to configure.  This will list the set of commonly
Packit fd8b60
used options for building Kerberos.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-prefix=}\sphinxstyleemphasis{PREFIX}}] \leavevmode
Packit fd8b60
By default, Kerberos will install the package’s files rooted at
Packit fd8b60
\sphinxcode{/usr/local}.  If you desire to place the binaries into the
Packit fd8b60
directory \sphinxstyleemphasis{PREFIX}, use this option.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-exec-prefix=}\sphinxstyleemphasis{EXECPREFIX}}] \leavevmode
Packit fd8b60
This option allows one to separate the architecture independent
Packit fd8b60
programs from the host-dependent files (configuration files,
Packit fd8b60
manual pages).  Use this option to install architecture-dependent
Packit fd8b60
programs in \sphinxstyleemphasis{EXECPREFIX}.  The default location is the value of
Packit fd8b60
specified by \sphinxstylestrong{-}\sphinxstylestrong{-prefix} option.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-localstatedir=}\sphinxstyleemphasis{LOCALSTATEDIR}}] \leavevmode
Packit fd8b60
This option sets the directory for locally modifiable
Packit fd8b60
single-machine data.  In Kerberos, this mostly is useful for
Packit fd8b60
setting a location for the KDC data files, as they will be
Packit fd8b60
installed in \sphinxcode{LOCALSTATEDIR/krb5kdc}, which is by default
Packit fd8b60
\sphinxcode{PREFIX/var/krb5kdc}.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-netlib}{[}=\sphinxstyleemphasis{libs}{]}}] \leavevmode
Packit fd8b60
Allows for suppression of or replacement of network libraries.  By
Packit fd8b60
default, Kerberos V5 configuration will look for \sphinxcode{-lnsl} and
Packit fd8b60
\sphinxcode{-lsocket}.  If your operating system has a broken resolver
Packit fd8b60
library or fails to pass the tests in \sphinxcode{src/tests/resolv}, you
Packit fd8b60
will need to use this option.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-tcl=}\sphinxstyleemphasis{TCLPATH}}] \leavevmode
Packit fd8b60
Some of the unit-tests in the build tree rely upon using a program
Packit fd8b60
in Tcl.  The directory specified by \sphinxstyleemphasis{TCLPATH} specifies where the
Packit fd8b60
Tcl header file (TCLPATH/include/tcl.h) as well as where the Tcl
Packit fd8b60
library (TCLPATH/lib) should be found.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-enable-dns-for-realm}}] \leavevmode
Packit fd8b60
Enable the use of DNS to look up a host’s Kerberos realm,
Packit fd8b60
if the information is not provided in
Packit fd8b60
\DUrole{xref,std,std-ref}{krb5.conf(5)}.  See \DUrole{xref,std,std-ref}{mapping\_hostnames}
Packit fd8b60
for information about using DNS to determine the default realm.
Packit fd8b60
DNS lookups for realm names are disabled by default.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-system-et}}] \leavevmode
Packit fd8b60
Use an installed version of the error-table (et) support software,
Packit fd8b60
the compile\_et program, the com\_err.h header file and the com\_err
Packit fd8b60
library.  If these are not in the default locations, you may wish
Packit fd8b60
to specify \sphinxcode{CPPFLAGS=-I/some/dir} and
Packit fd8b60
\sphinxcode{LDFLAGS=-L/some/other/dir} options at configuration time as
Packit fd8b60
well.
Packit fd8b60
Packit fd8b60
If this option is not given, a version supplied with the Kerberos
Packit fd8b60
sources will be built and installed along with the rest of the
Packit fd8b60
Kerberos tree, for Kerberos applications to link against.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-system-ss}}] \leavevmode
Packit fd8b60
Use an installed version of the subsystem command-line interface
Packit fd8b60
software, the mk\_cmds program, the \sphinxcode{ss/ss.h} header file and the
Packit fd8b60
ss library.  If these are not in the default locations, you may
Packit fd8b60
wish to specify \sphinxcode{CPPFLAGS=-I/some/dir} and
Packit fd8b60
\sphinxcode{LDFLAGS=-L/some/other/dir} options at configuration time as
Packit fd8b60
well.  See also the \sphinxstylestrong{SS\_LIB} option.
Packit fd8b60
Packit fd8b60
If this option is not given, the ss library supplied with the
Packit fd8b60
Kerberos sources will be compiled and linked into those programs
Packit fd8b60
that need it; it will not be installed separately.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-system-db}}] \leavevmode
Packit fd8b60
Use an installed version of the Berkeley DB package, which must
Packit fd8b60
provide an API compatible with version 1.85.  This option is
Packit fd8b60
unsupported and untested.  In particular, we do not know if the
Packit fd8b60
database-rename code used in the dumpfile load operation will
Packit fd8b60
behave properly.
Packit fd8b60
Packit fd8b60
If this option is not given, a version supplied with the Kerberos
Packit fd8b60
sources will be built and installed.  (We are not updating this
Packit fd8b60
version at this time because of licensing issues with newer
Packit fd8b60
versions that we haven’t investigated sufficiently yet.)
Packit fd8b60
Packit fd8b60
\end{description}
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{Environment variables}
Packit fd8b60
\label{\detokenize{build/options2configure:environment-variables}}\begin{description}
Packit fd8b60
\item[{\sphinxstylestrong{CC=}\sphinxstyleemphasis{COMPILER}}] \leavevmode
Packit fd8b60
Use \sphinxstyleemphasis{COMPILER} as the C compiler.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{CFLAGS=}\sphinxstyleemphasis{FLAGS}}] \leavevmode
Packit fd8b60
Use \sphinxstyleemphasis{FLAGS} as the default set of C compiler flags.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{CPP=}\sphinxstyleemphasis{CPP}}] \leavevmode
Packit fd8b60
C preprocessor to use. (e.g., \sphinxcode{CPP='gcc -E'})
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{CPPFLAGS=}\sphinxstyleemphasis{CPPOPTS}}] \leavevmode
Packit fd8b60
Use \sphinxstyleemphasis{CPPOPTS} as the default set of C preprocessor flags.  The
Packit fd8b60
most common use of this option is to select certain \#define’s for
Packit fd8b60
use with the operating system’s include files.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{DB\_HEADER=}\sphinxstyleemphasis{headername}}] \leavevmode
Packit fd8b60
If db.h is not the correct header file to include to compile
Packit fd8b60
against the Berkeley DB 1.85 API, specify the correct header file
Packit fd8b60
name with this option. For example, \sphinxcode{DB\_HEADER=db3/db\_185.h}.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{DB\_LIB=}\sphinxstyleemphasis{libs}…}] \leavevmode
Packit fd8b60
If \sphinxcode{-ldb} is not the correct library specification for the
Packit fd8b60
Berkeley DB library version to be used, override it with this
Packit fd8b60
option. For example, \sphinxcode{DB\_LIB=-ldb-3.3}.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{DEFCCNAME=}\sphinxstyleemphasis{ccachename}}] \leavevmode
Packit fd8b60
Override the built-in default credential cache name.
Packit fd8b60
For example, \sphinxcode{DEFCCNAME=DIR:/var/run/user/\%\{USERID\}/ccache}
Packit fd8b60
See \DUrole{xref,std,std-ref}{parameter\_expansion} for information about supported
Packit fd8b60
parameter expansions.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{DEFCKTNAME=}\sphinxstyleemphasis{keytabname}}] \leavevmode
Packit fd8b60
Override the built-in default client keytab name.
Packit fd8b60
The format is the same as for \sphinxstyleemphasis{DEFCCNAME}.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{DEFKTNAME=}\sphinxstyleemphasis{keytabname}}] \leavevmode
Packit fd8b60
Override the built-in default keytab name.
Packit fd8b60
The format is the same as for \sphinxstyleemphasis{DEFCCNAME}.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{LD=}\sphinxstyleemphasis{LINKER}}] \leavevmode
Packit fd8b60
Use \sphinxstyleemphasis{LINKER} as the default loader if it should be different from
Packit fd8b60
C compiler as specified above.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{LDFLAGS=}\sphinxstyleemphasis{LDOPTS}}] \leavevmode
Packit fd8b60
This option informs the linker where to get additional libraries
Packit fd8b60
(e.g., \sphinxcode{-L\textless{}lib dir\textgreater{}}).
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{LIBS=}\sphinxstyleemphasis{LDNAME}}] \leavevmode
Packit fd8b60
This option allows one to specify libraries to be passed to the
Packit fd8b60
linker (e.g., \sphinxcode{-l\textless{}library\textgreater{}})
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{SS\_LIB=}\sphinxstyleemphasis{libs}…}] \leavevmode
Packit fd8b60
If \sphinxcode{-lss} is not the correct way to link in your installed ss
Packit fd8b60
library, for example if additional support libraries are needed,
Packit fd8b60
specify the correct link options here.  Some variants of this
Packit fd8b60
library are around which allow for Emacs-like line editing, but
Packit fd8b60
different versions require different support libraries to be
Packit fd8b60
explicitly specified.
Packit fd8b60
Packit fd8b60
This option is ignored if \sphinxstylestrong{-}\sphinxstylestrong{-with-system-ss} is not specified.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{YACC}}] \leavevmode
Packit fd8b60
The ‘Yet Another C Compiler’ implementation to use. Defaults to
Packit fd8b60
the first program found out of: ‘\sphinxtitleref{bison -y}’, ‘\sphinxtitleref{byacc}’,
Packit fd8b60
‘\sphinxtitleref{yacc}’.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{YFLAGS}}] \leavevmode
Packit fd8b60
The list of arguments that will be passed by default to \$YACC.
Packit fd8b60
This script will default YFLAGS to the empty string to avoid a
Packit fd8b60
default value of \sphinxcode{-d} given by some make applications.
Packit fd8b60
Packit fd8b60
\end{description}
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{Fine tuning of the installation directories}
Packit fd8b60
\label{\detokenize{build/options2configure:fine-tuning-of-the-installation-directories}}\begin{description}
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-bindir=}\sphinxstyleemphasis{DIR}}] \leavevmode
Packit fd8b60
User executables.  Defaults to \sphinxcode{EXECPREFIX/bin}, where
Packit fd8b60
\sphinxstyleemphasis{EXECPREFIX} is the path specified by \sphinxstylestrong{-}\sphinxstylestrong{-exec-prefix}
Packit fd8b60
configuration option.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-sbindir=}\sphinxstyleemphasis{DIR}}] \leavevmode
Packit fd8b60
System admin executables.  Defaults to \sphinxcode{EXECPREFIX/sbin}, where
Packit fd8b60
\sphinxstyleemphasis{EXECPREFIX} is the path specified by \sphinxstylestrong{-}\sphinxstylestrong{-exec-prefix}
Packit fd8b60
configuration option.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-sysconfdir=}\sphinxstyleemphasis{DIR}}] \leavevmode
Packit fd8b60
Read-only single-machine data such as krb5.conf.
Packit fd8b60
Defaults to \sphinxcode{PREFIX/etc}, where
Packit fd8b60
\sphinxstyleemphasis{PREFIX} is the path specified by \sphinxstylestrong{-}\sphinxstylestrong{-prefix} configuration
Packit fd8b60
option.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-libdir=}\sphinxstyleemphasis{DIR}}] \leavevmode
Packit fd8b60
Object code libraries.  Defaults to \sphinxcode{EXECPREFIX/lib}, where
Packit fd8b60
\sphinxstyleemphasis{EXECPREFIX} is the path specified by \sphinxstylestrong{-}\sphinxstylestrong{-exec-prefix}
Packit fd8b60
configuration option.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-includedir=}\sphinxstyleemphasis{DIR}}] \leavevmode
Packit fd8b60
C header files.  Defaults to \sphinxcode{PREFIX/include}, where \sphinxstyleemphasis{PREFIX} is
Packit fd8b60
the path specified by \sphinxstylestrong{-}\sphinxstylestrong{-prefix} configuration option.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-datarootdir=}\sphinxstyleemphasis{DATAROOTDIR}}] \leavevmode
Packit fd8b60
Read-only architecture-independent data root.  Defaults to
Packit fd8b60
\sphinxcode{PREFIX/share}, where \sphinxstyleemphasis{PREFIX} is the path specified by
Packit fd8b60
\sphinxstylestrong{-}\sphinxstylestrong{-prefix} configuration option.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-datadir=}\sphinxstyleemphasis{DIR}}] \leavevmode
Packit fd8b60
Read-only architecture-independent data.  Defaults to path
Packit fd8b60
specified by \sphinxstylestrong{-}\sphinxstylestrong{-datarootdir} configuration option.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-localedir=}\sphinxstyleemphasis{DIR}}] \leavevmode
Packit fd8b60
Locale-dependent data.  Defaults to \sphinxcode{DATAROOTDIR/locale}, where
Packit fd8b60
\sphinxstyleemphasis{DATAROOTDIR} is the path specified by \sphinxstylestrong{-}\sphinxstylestrong{-datarootdir}
Packit fd8b60
configuration option.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-mandir=}\sphinxstyleemphasis{DIR}}] \leavevmode
Packit fd8b60
Man documentation.  Defaults to \sphinxcode{DATAROOTDIR/man}, where
Packit fd8b60
\sphinxstyleemphasis{DATAROOTDIR} is the path specified by \sphinxstylestrong{-}\sphinxstylestrong{-datarootdir}
Packit fd8b60
configuration option.
Packit fd8b60
Packit fd8b60
\end{description}
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{Program names}
Packit fd8b60
\label{\detokenize{build/options2configure:program-names}}\begin{description}
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-program-prefix=}\sphinxstyleemphasis{PREFIX}}] \leavevmode
Packit fd8b60
Prepend \sphinxstyleemphasis{PREFIX} to the names of the programs when installing
Packit fd8b60
them. For example, specifying \sphinxcode{-{-}program-prefix=mit-} at the
Packit fd8b60
configure time will cause the program named \sphinxcode{abc} to be
Packit fd8b60
installed as \sphinxcode{mit-abc}.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-program-suffix=}\sphinxstyleemphasis{SUFFIX}}] \leavevmode
Packit fd8b60
Append \sphinxstyleemphasis{SUFFIX} to the names of the programs when installing them.
Packit fd8b60
For example, specifying \sphinxcode{-{-}program-suffix=-mit} at the configure
Packit fd8b60
time will cause the program named \sphinxcode{abc} to be installed as
Packit fd8b60
\sphinxcode{abc-mit}.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-program-transform-name=}\sphinxstyleemphasis{PROGRAM}}] \leavevmode
Packit fd8b60
Run \sphinxcode{sed -e PROGRAM} on installed program names. (\sphinxstyleemphasis{PROGRAM} is a
Packit fd8b60
sed script).
Packit fd8b60
Packit fd8b60
\end{description}
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{System types}
Packit fd8b60
\label{\detokenize{build/options2configure:system-types}}\begin{description}
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-build=}\sphinxstyleemphasis{BUILD}}] \leavevmode
Packit fd8b60
Configure for building on \sphinxstyleemphasis{BUILD}
Packit fd8b60
(e.g., \sphinxcode{-{-}build=x86\_64-linux-gnu}).
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-host=}\sphinxstyleemphasis{HOST}}] \leavevmode
Packit fd8b60
Cross-compile to build programs to run on \sphinxstyleemphasis{HOST}
Packit fd8b60
(e.g., \sphinxcode{-{-}host=x86\_64-linux-gnu}).  By default, Kerberos V5
Packit fd8b60
configuration will look for “build” option.
Packit fd8b60
Packit fd8b60
\end{description}
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{Optional features}
Packit fd8b60
\label{\detokenize{build/options2configure:optional-features}}\begin{description}
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-disable-option-checking}}] \leavevmode
Packit fd8b60
Ignore unrecognized \textendash{}enable/\textendash{}with options.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-disable-}\sphinxstyleemphasis{FEATURE}}] \leavevmode
Packit fd8b60
Do not include \sphinxstyleemphasis{FEATURE} (same as \textendash{}enable-FEATURE=no).
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-enable-}\sphinxstyleemphasis{FEATURE}{[}=\sphinxstyleemphasis{ARG}{]}}] \leavevmode
Packit fd8b60
Include \sphinxstyleemphasis{FEATURE} {[}ARG=yes{]}.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-enable-maintainer-mode}}] \leavevmode
Packit fd8b60
Enable rebuilding of source files, Makefiles, etc.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-disable-delayed-initialization}}] \leavevmode
Packit fd8b60
Initialize library code when loaded.  Defaults to delay until
Packit fd8b60
first use.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-disable-thread-support}}] \leavevmode
Packit fd8b60
Don’t enable thread support.  Defaults to enabled.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-disable-rpath}}] \leavevmode
Packit fd8b60
Suppress run path flags in link lines.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-enable-athena}}] \leavevmode
Packit fd8b60
Build with MIT Project Athena configuration.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-disable-kdc-lookaside-cache}}] \leavevmode
Packit fd8b60
Disable the cache which detects client retransmits.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-disable-pkinit}}] \leavevmode
Packit fd8b60
Disable PKINIT plugin support.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-disable-aesni}}] \leavevmode
Packit fd8b60
Disable support for using AES instructions on x86 platforms.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-enable-asan}{[}=\sphinxstyleemphasis{ARG}{]}}] \leavevmode
Packit fd8b60
Enable building with asan memory error checking.  If \sphinxstyleemphasis{ARG} is
Packit fd8b60
given, it controls the -fsanitize compilation flag value (the
Packit fd8b60
default is “address”).
Packit fd8b60
Packit fd8b60
\end{description}
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{Optional packages}
Packit fd8b60
\label{\detokenize{build/options2configure:optional-packages}}\begin{description}
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-}\sphinxstyleemphasis{PACKAGE}{[}=ARG{]}}] \leavevmode
Packit fd8b60
Use \sphinxstyleemphasis{PACKAGE} (e.g., \sphinxcode{-{-}with-imap}).  The default value of \sphinxstyleemphasis{ARG}
Packit fd8b60
is \sphinxcode{yes}.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-without-}\sphinxstyleemphasis{PACKAGE}}] \leavevmode
Packit fd8b60
Do not use \sphinxstyleemphasis{PACKAGE} (same as \sphinxcode{-{-}with-PACKAGE=no})
Packit fd8b60
(e.g., \sphinxcode{-{-}without-libedit}).
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-size-optimizations}}] \leavevmode
Packit fd8b60
Enable a few optimizations to reduce code size possibly at some
Packit fd8b60
run-time cost.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-system-et}}] \leavevmode
Packit fd8b60
Use the com\_err library and compile\_et utility that are already
Packit fd8b60
installed on the system, instead of building and installing
Packit fd8b60
local versions.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-system-ss}}] \leavevmode
Packit fd8b60
Use the ss library and mk\_cmds utility that are already installed
Packit fd8b60
on the system, instead of building and using private versions.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-system-db}}] \leavevmode
Packit fd8b60
Use the berkeley db utility already installed on the system,
Packit fd8b60
instead of using a private version.  This option is not
Packit fd8b60
recommended; enabling it may result in incompatibility with key
Packit fd8b60
databases originating on other systems.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-netlib=}\sphinxstyleemphasis{LIBS}}] \leavevmode
Packit fd8b60
Use the resolver library specified in \sphinxstyleemphasis{LIBS}.  Use this variable
Packit fd8b60
if the C library resolver is insufficient or broken.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-hesiod=}\sphinxstyleemphasis{path}}] \leavevmode
Packit fd8b60
Compile with Hesiod support.  The \sphinxstyleemphasis{path} points to the Hesiod
Packit fd8b60
directory.  By default Hesiod is unsupported.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-ldap}}] \leavevmode
Packit fd8b60
Compile OpenLDAP database backend module.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-lmdb}}] \leavevmode
Packit fd8b60
Compile LMDB database backend module.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-tcl=}\sphinxstyleemphasis{path}}] \leavevmode
Packit fd8b60
Specifies that \sphinxstyleemphasis{path} is the location of a Tcl installation.
Packit fd8b60
Tcl is needed for some of the tests run by ‘make check’; such tests
Packit fd8b60
will be skipped if this option is not set.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-vague-errors}}] \leavevmode
Packit fd8b60
Do not send helpful errors to client.  For example, if the KDC
Packit fd8b60
should return only vague error codes to clients.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-crypto-impl=}\sphinxstyleemphasis{IMPL}}] \leavevmode
Packit fd8b60
Use specified crypto implementation (e.g., \sphinxstylestrong{-}\sphinxstylestrong{-with-crypto-impl=}\sphinxstyleemphasis{openssl}).  The default is the native MIT
Packit fd8b60
Kerberos implementation \sphinxcode{builtin}.  The other currently
Packit fd8b60
implemented crypto backend is \sphinxcode{openssl}.  (See
Packit fd8b60
\DUrole{xref,std,std-ref}{mitK5features})
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-prng-alg=}\sphinxstyleemphasis{ALG}}] \leavevmode
Packit fd8b60
Use specified PRNG algorithm.  For example, to use the OS native
Packit fd8b60
prng specify \sphinxcode{-{-}with-prng-alg=os}.  The default is \sphinxcode{fortuna}.
Packit fd8b60
(See \DUrole{xref,std,std-ref}{mitK5features})
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-without-libedit}}] \leavevmode
Packit fd8b60
Do not compile and link against libedit.  Some utilities will no
Packit fd8b60
longer offer command history or completion in interactive mode if
Packit fd8b60
libedit is disabled.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-readline}}] \leavevmode
Packit fd8b60
Compile and link against GNU readline, as an alternative to libedit.
Packit fd8b60
Building with readline breaks the dejagnu test suite, which is a
Packit fd8b60
subset of the tests run by ‘make check’.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-system-verto}}] \leavevmode
Packit fd8b60
Use an installed version of libverto.  If the libverto header and
Packit fd8b60
library are not in default locations, you may wish to specify
Packit fd8b60
\sphinxcode{CPPFLAGS=-I/some/dir} and \sphinxcode{LDFLAGS=-L/some/other/dir} options
Packit fd8b60
at configuration time as well.
Packit fd8b60
Packit fd8b60
If this option is not given, the build system will try to detect
Packit fd8b60
an installed version of libverto and use it if it is found.
Packit fd8b60
Otherwise, a version supplied with the Kerberos sources will be
Packit fd8b60
built and installed.  The built-in version does not contain the
Packit fd8b60
full set of back-end modules and is not a suitable general
Packit fd8b60
replacement for the upstream version, but will work for the
Packit fd8b60
purposes of Kerberos.
Packit fd8b60
Packit fd8b60
Specifying \sphinxstylestrong{-}\sphinxstylestrong{-without-system-verto} will cause the built-in
Packit fd8b60
version of libverto to be used unconditionally.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-with-krb5-config=}\sphinxstyleemphasis{PATH}}] \leavevmode
Packit fd8b60
Use the krb5-config program at \sphinxstyleemphasis{PATH} to obtain the build-time
Packit fd8b60
default credential cache, keytab, and client keytab names.  The
Packit fd8b60
default is to use \sphinxcode{krb5-config} from the program path.  Specify
Packit fd8b60
\sphinxcode{-{-}without-krb5-config} to disable the use of krb5-config and
Packit fd8b60
use the usual built-in defaults.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{-}\sphinxstylestrong{-without-keyutils}}] \leavevmode
Packit fd8b60
Build without libkeyutils support.  This disables the KEYRING
Packit fd8b60
credential cache type.
Packit fd8b60
Packit fd8b60
\end{description}
Packit fd8b60
Packit fd8b60
Packit fd8b60
\subsection{Examples}
Packit fd8b60
\label{\detokenize{build/options2configure:examples}}
Packit fd8b60
For example, in order to configure Kerberos on a Solaris machine using
Packit fd8b60
the suncc compiler with the optimizer turned on, run the configure
Packit fd8b60
script with the following options:
Packit fd8b60
Packit fd8b60
\fvset{hllines={, ,}}%
Packit fd8b60
\begin{sphinxVerbatim}[commandchars=\\\{\}]
Packit fd8b60
\PYG{o}{\PYGZpc{}} \PYG{o}{.}\PYG{o}{/}\PYG{n}{configure} \PYG{n}{CC}\PYG{o}{=}\PYG{n}{suncc} \PYG{n}{CFLAGS}\PYG{o}{=}\PYG{o}{\PYGZhy{}}\PYG{n}{O}
Packit fd8b60
\end{sphinxVerbatim}
Packit fd8b60
Packit fd8b60
For a slightly more complicated example, consider a system where
Packit fd8b60
several packages to be used by Kerberos are installed in
Packit fd8b60
\sphinxcode{/usr/foobar}, including Berkeley DB 3.3, and an ss library that
Packit fd8b60
needs to link against the curses library.  The configuration of
Packit fd8b60
Kerberos might be done thus:
Packit fd8b60
Packit fd8b60
\fvset{hllines={, ,}}%
Packit fd8b60
\begin{sphinxVerbatim}[commandchars=\\\{\}]
Packit fd8b60
\PYG{o}{.}\PYG{o}{/}\PYG{n}{configure} \PYG{n}{CPPFLAGS}\PYG{o}{=}\PYG{o}{\PYGZhy{}}\PYG{n}{I}\PYG{o}{/}\PYG{n}{usr}\PYG{o}{/}\PYG{n}{foobar}\PYG{o}{/}\PYG{n}{include} \PYG{n}{LDFLAGS}\PYG{o}{=}\PYG{o}{\PYGZhy{}}\PYG{n}{L}\PYG{o}{/}\PYG{n}{usr}\PYG{o}{/}\PYG{n}{foobar}\PYG{o}{/}\PYG{n}{lib} \PYGZbs{}
Packit fd8b60
\PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{k}{with}\PYG{o}{\PYGZhy{}}\PYG{n}{system}\PYG{o}{\PYGZhy{}}\PYG{n}{et} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{k}{with}\PYG{o}{\PYGZhy{}}\PYG{n}{system}\PYG{o}{\PYGZhy{}}\PYG{n}{ss} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZhy{}}\PYG{k}{with}\PYG{o}{\PYGZhy{}}\PYG{n}{system}\PYG{o}{\PYGZhy{}}\PYG{n}{db}  \PYGZbs{}
Packit fd8b60
\PYG{n}{SS\PYGZus{}LIB}\PYG{o}{=}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{\PYGZhy{}lss \PYGZhy{}lcurses}\PYG{l+s+s1}{\PYGZsq{}}  \PYG{n}{DB\PYGZus{}HEADER}\PYG{o}{=}\PYG{n}{db3}\PYG{o}{/}\PYG{n}{db\PYGZus{}185}\PYG{o}{.}\PYG{n}{h} \PYG{n}{DB\PYGZus{}LIB}\PYG{o}{=}\PYG{o}{\PYGZhy{}}\PYG{n}{ldb}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{3.3}
Packit fd8b60
\end{sphinxVerbatim}
Packit fd8b60
Packit fd8b60
Packit fd8b60
\section{osconf.hin}
Packit fd8b60
\label{\detokenize{build/osconf:osconf-hin}}\label{\detokenize{build/osconf::doc}}
Packit fd8b60
There is one configuration file which you may wish to edit to control
Packit fd8b60
various compile-time parameters in the Kerberos distribution:
Packit fd8b60
Packit fd8b60
\fvset{hllines={, ,}}%
Packit fd8b60
\begin{sphinxVerbatim}[commandchars=\\\{\}]
Packit fd8b60
\PYG{n}{include}\PYG{o}{/}\PYG{n}{osconf}\PYG{o}{.}\PYG{n}{hin}
Packit fd8b60
\end{sphinxVerbatim}
Packit fd8b60
Packit fd8b60
The list that follows is by no means complete, just some of the more
Packit fd8b60
interesting variables.
Packit fd8b60
\begin{description}
Packit fd8b60
\item[{\sphinxstylestrong{DEFAULT\_PROFILE\_PATH}}] \leavevmode
Packit fd8b60
The pathname to the file which contains the profiles for the known
Packit fd8b60
realms, their KDCs, etc. The default value is \sphinxcode{/etc/krb5.conf}.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{DEFAULT\_KEYTAB\_NAME}}] \leavevmode
Packit fd8b60
The type and pathname to the default server keytab file.  The
Packit fd8b60
default is \DUrole{xref,std,std-ref}{DEFKTNAME}.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{DEFAULT\_KDC\_ENCTYPE}}] \leavevmode
Packit fd8b60
The default encryption type for the KDC database master key.  The
Packit fd8b60
default value is \sphinxcode{aes256-cts-hmac-sha1-96}.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{RCTMPDIR}}] \leavevmode
Packit fd8b60
The directory which stores replay caches.  The default is
Packit fd8b60
\sphinxcode{/var/tmp}.
Packit fd8b60
Packit fd8b60
\item[{\sphinxstylestrong{DEFAULT\_KDB\_FILE}}] \leavevmode
Packit fd8b60
The location of the default database.  The default value is
Packit fd8b60
\DUrole{xref,std,std-ref}{LOCALSTATEDIR}\sphinxcode{/krb5kdc}\sphinxcode{/principal}.
Packit fd8b60
Packit fd8b60
\end{description}
Packit fd8b60
Packit fd8b60
Packit fd8b60
Packit fd8b60
\renewcommand{\indexname}{Index}
Packit fd8b60
\printindex
Packit fd8b60
\end{document}