aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rwxr-xr-xtools/boot/universe.sh4
-rw-r--r--tools/build/Makefile1
-rwxr-xr-xtools/build/depend-cleanup.sh158
-rw-r--r--tools/build/mk/OptionalObsoleteFiles.inc3510
-rw-r--r--tools/build/options/WITHOUT_GSSAPI1
-rw-r--r--tools/build/options/WITHOUT_KERBEROS2
-rw-r--r--tools/build/options/WITH_CLEAN3
-rw-r--r--tools/build/options/WITH_PTHREADS_ASSERTIONS1
-rwxr-xr-xtools/build/options/makeman11
-rw-r--r--tools/coccinelle/pseudofs-create.cocci35
-rw-r--r--tools/regression/priv/main.c6
-rw-r--r--tools/regression/sockets/udp_pingpong/udp_pingpong.c8
-rwxr-xr-xtools/test/netfibs/reflector.sh2
-rwxr-xr-xtools/test/stress2/misc/beneath4.sh4
-rwxr-xr-xtools/test/stress2/misc/fdatasync.sh2
-rwxr-xr-xtools/test/stress2/misc/fdatasync2.sh2
-rwxr-xr-xtools/test/stress2/misc/fdescfs2.sh44
-rwxr-xr-xtools/test/stress2/misc/fdescfs3.sh51
-rwxr-xr-xtools/test/stress2/misc/fifo2.sh2
-rwxr-xr-xtools/test/stress2/misc/ftruncate.sh2
-rwxr-xr-xtools/test/stress2/misc/ftruncate2.sh2
-rwxr-xr-xtools/test/stress2/misc/kevent10.sh8
-rwxr-xr-xtools/test/stress2/misc/kevent16.sh2
-rwxr-xr-xtools/test/stress2/misc/kevent7.sh2
-rwxr-xr-xtools/test/stress2/misc/killpg.sh2
-rwxr-xr-xtools/test/stress2/misc/killpg2.sh2
-rwxr-xr-xtools/test/stress2/misc/killpg3.sh2
-rwxr-xr-xtools/test/stress2/misc/maxproc.sh4
-rwxr-xr-xtools/test/stress2/misc/mlockall3.sh2
-rwxr-xr-xtools/test/stress2/misc/mlockall7.sh2
-rwxr-xr-xtools/test/stress2/misc/mmap43.sh2
-rwxr-xr-xtools/test/stress2/misc/mountu.sh2
-rwxr-xr-xtools/test/stress2/misc/msync.sh2
-rwxr-xr-xtools/test/stress2/misc/nfs_halfpage.sh10
-rwxr-xr-xtools/test/stress2/misc/nfs_halfpage2.sh8
-rwxr-xr-xtools/test/stress2/misc/nullfs29.sh2
-rwxr-xr-xtools/test/stress2/misc/pread.sh2
-rwxr-xr-xtools/test/stress2/misc/rsync.sh2
-rwxr-xr-xtools/test/stress2/misc/rsync3.sh2
-rwxr-xr-xtools/test/stress2/misc/sched.sh2
-rwxr-xr-xtools/test/stress2/misc/setrlimit2.sh2
-rwxr-xr-xtools/test/stress2/misc/sigreturn3.sh4
-rwxr-xr-xtools/test/stress2/misc/sigreturn4.sh4
-rwxr-xr-xtools/test/stress2/misc/syscall4.sh2
-rwxr-xr-xtools/test/stress2/misc/syzkaller13.sh1
-rwxr-xr-xtools/test/stress2/misc/syzkaller21.sh2
-rwxr-xr-xtools/test/stress2/misc/syzkaller61.sh26
-rwxr-xr-xtools/test/stress2/misc/syzkaller73.sh2
-rwxr-xr-xtools/test/stress2/misc/syzkaller74.sh2
-rwxr-xr-xtools/test/stress2/misc/temp.sh8
-rwxr-xr-xtools/test/stress2/misc/tmpfs16.sh2
-rwxr-xr-xtools/test/stress2/misc/unionfs7.sh6
-rw-r--r--tools/tools/crypto/Makefile5
-rwxr-xr-xtools/tools/crypto/cryptorun.sh31
-rw-r--r--tools/tools/crypto/cryptotest.c658
-rwxr-xr-xtools/tools/nanobsd/defaults.sh174
-rw-r--r--tools/tools/nanobsd/embedded/common56
-rw-r--r--tools/tools/nanobsd/legacy.sh12
-rwxr-xr-xtools/tools/nanobsd/nanobsd.sh30
-rw-r--r--tools/tools/nanobsd/rescue/common32
-rw-r--r--tools/tools/nvmf/nvmfd/Makefile14
-rw-r--r--tools/tools/nvmf/nvmfd/Makefile.depend20
-rw-r--r--tools/tools/nvmf/nvmfd/controller.c244
-rw-r--r--tools/tools/nvmf/nvmfd/ctl.c137
-rw-r--r--tools/tools/nvmf/nvmfd/devices.c386
-rw-r--r--tools/tools/nvmf/nvmfd/discovery.c342
-rw-r--r--tools/tools/nvmf/nvmfd/internal.h66
-rw-r--r--tools/tools/nvmf/nvmfd/io.c676
-rw-r--r--tools/tools/nvmf/nvmfd/nvmfd.8131
-rw-r--r--tools/tools/nvmf/nvmfd/nvmfd.c271
-rw-r--r--tools/tools/sysbuild/sysbuild.sh2
-rw-r--r--tools/tools/usbtest/usb_msc_test.c4
72 files changed, 2995 insertions, 4268 deletions
diff --git a/tools/boot/universe.sh b/tools/boot/universe.sh
index e97858ff2bcb..80a9cc0b90ff 100755
--- a/tools/boot/universe.sh
+++ b/tools/boot/universe.sh
@@ -95,11 +95,11 @@ for i in \
dobuild $ta _.boot.${ta}.no_zfs.log "MK_LOADER_ZFS=no"
done
-# Build w/ LOADER_BIOS_TEXTONLY
+# Build w/o LOADER_BIOS_TEXTONLY
for i in \
amd64/amd64 \
i386/i386 \
; do
ta=${i##*/}
- dobuild $ta _.boot.${ta}.no_zfs.log "MK_LOADER_BIOS_TEXTONLY=yes"
+ dobuild $ta _.boot.${ta}.no_zfs.log "MK_LOADER_BIOS_TEXTONLY=no"
done
diff --git a/tools/build/Makefile b/tools/build/Makefile
index 83f589ce3864..3c4e07e3cfc2 100644
--- a/tools/build/Makefile
+++ b/tools/build/Makefile
@@ -495,6 +495,7 @@ INSTALLDIR_LIST= \
bin \
lib/geom \
usr/include/casper \
+ usr/include/openssl \
usr/include/private/ucl \
usr/include/private/zstd \
usr/lib \
diff --git a/tools/build/depend-cleanup.sh b/tools/build/depend-cleanup.sh
index 33ca8ecb709f..aa01db6ccc37 100755
--- a/tools/build/depend-cleanup.sh
+++ b/tools/build/depend-cleanup.sh
@@ -50,12 +50,12 @@
# - Replacing generated files with files committed to the tree. This is special
# case of moving from one directory to another. The stale generated file also
# needs to be deleted, so that it isn't found in make's .PATH. Note the
-# unconditional `rm -f`: there's no need for an extra call to first check for
+# unconditional `rm -fv`: there's no need for an extra call to first check for
# the file's existence.
#
# # 20250110 3863fec1ce2d add strlen SIMD implementation
# clean_dep lib/libc strlen S arm-optimized-routines
-# run rm -f "$OBJTOP"/lib/libc/strlen.S
+# run rm -fv "$OBJTOP"/lib/libc/strlen.S
#
# A rule may be required for only one architecture:
#
@@ -63,6 +63,10 @@
# if [ "$MACHINE_ARCH" = "amd64" ]; then
# clean_dep lib/libc bcmp c
# fi
+#
+# We also have a big hammer at the top of the tree, .clean_build_epoch, to be
+# used in severe cases where we can't surgically remove just the parts that
+# need rebuilt. This should be used sparingly.
set -e
set -u
@@ -80,7 +84,7 @@ err()
usage()
{
- echo "usage: $(basename $0) [-v] [-n] objtop" >&2
+ echo "usage: $(basename $0) [-v] [-n] objtop srctop" >&2
}
VERBOSE=
@@ -101,17 +105,31 @@ while getopts vn o; do
done
shift $((OPTIND-1))
-if [ $# -ne 1 ]; then
+if [ $# -ne 2 ]; then
usage
exit 1
fi
OBJTOP=$1
shift
+SRCTOP=$1
+shift
+
if [ ! -d "$OBJTOP" ]; then
err "$OBJTOP: Not a directory"
fi
+if [ ! -d "$SRCTOP" -o ! -f "$SRCTOP/Makefile.inc1" ]; then
+ err "$SRCTOP: Not the root of a src tree"
+fi
+
+: ${CLEANMK=""}
+if [ -n "$CLEANMK" ]; then
+ if [ -z "${MAKE+set}" ]; then
+ err "MAKE not set"
+ fi
+fi
+
if [ -z "${MACHINE+set}" ]; then
err "MACHINE not set"
fi
@@ -134,6 +152,11 @@ run()
fi
}
+# Clean the depend and object files for a given source file if the
+# depend file matches a regex (which defaults to the source file
+# name). This is typically used if a file was renamed, especially if
+# only its extension was changed (e.g. from .c to .cc).
+#
# $1 directory
# $2 source filename w/o extension
# $3 source extension
@@ -144,13 +167,97 @@ clean_dep()
dirprfx=${libcompat:+obj-lib${libcompat}/}
if egrep -qw "${4:-$2\.$3}" "$OBJTOP"/$dirprfx$1/.depend.$2.*o 2>/dev/null; then
echo "Removing stale ${libcompat:+lib${libcompat} }dependencies and objects for $2.$3"
- run rm -f \
+ run rm -fv \
"$OBJTOP"/$dirprfx$1/.depend.$2.* \
"$OBJTOP"/$dirprfx$1/$2.*o
fi
done
}
+# Clean the object file for a given source file if it exists and
+# matches a regex. This is typically used if a a change in CFLAGS or
+# similar caused a change in the generated code without a change in
+# the sources.
+#
+# $1 directory
+# $2 source filename w/o extension
+# $3 source extension
+# $4 regex for egrep -w
+clean_obj()
+{
+ for libcompat in "" $ALL_libcompats; do
+ dirprfx=${libcompat:+obj-lib${libcompat}/}
+ if strings "$OBJTOP"/$dirprfx$1/$2.*o 2>/dev/null | egrep -qw "${4}"; then
+ echo "Removing stale ${libcompat:+lib${libcompat} }objects for $2.$3"
+ run rm -fv \
+ "$OBJTOP"/$dirprfx$1/$2.*o
+ fi
+ done
+}
+
+extract_epoch()
+{
+ [ -s "$1" ] || return 0
+
+ awk 'int($1) > 0 { epoch = $1 } END { print epoch }' "$1"
+}
+
+clean_world()
+{
+ local buildepoch="$1"
+
+ # The caller may set CLEANMK in the environment to make target(s) that
+ # should be invoked instead of just destroying everything. This is
+ # generally used after legacy/bootstrap tools to avoid over-cleansing
+ # since we're generally in the temporary tree's ancestor.
+ if [ -n "$CLEANMK" ]; then
+ echo "Cleaning up the object tree"
+ run $MAKE -C "$SRCTOP" -f "$SRCTOP"/Makefile.inc1 $CLEANMK
+ else
+ echo "Cleaning up the temporary build tree"
+ run rm -rf "$OBJTOP"
+ fi
+
+ # We don't assume that all callers will have grabbed the build epoch, so
+ # we'll do it here as needed. This will be useful if we add other
+ # non-epoch reasons to force clean.
+ if [ -z "$buildepoch" ]; then
+ buildepoch=$(extract_epoch "$SRCTOP"/.clean_build_epoch)
+ fi
+
+ mkdir -p "$OBJTOP"
+ echo "$buildepoch" > "$OBJTOP"/.clean_build_epoch
+
+ exit 0
+}
+
+check_epoch()
+{
+ local srcepoch objepoch
+
+ srcepoch=$(extract_epoch "$SRCTOP"/.clean_build_epoch)
+ if [ -z "$srcepoch" ]; then
+ err "Malformed .clean_build_epoch; please validate the last line"
+ fi
+
+ # We don't discriminate between the varying degrees of difference
+ # between epochs. If it went backwards we could be bisecting across
+ # epochs, in which case the original need to clean likely still stands.
+ objepoch=$(extract_epoch "$OBJTOP"/.clean_build_epoch)
+ if [ -z "$objepoch" ] || [ "$srcepoch" -ne "$objepoch" ]; then
+ if [ "$VERBOSE" ]; then
+ echo "Cleaning - src epoch: $srcepoch, objdir epoch: ${objepoch:-unknown}"
+ fi
+
+ clean_world "$srcepoch"
+ # NORETURN
+ fi
+}
+
+check_epoch
+
+#### Typical dependency cleanup begins here.
+
# Date Rev Description
# 20220326 fbc002cb72d2 move from bcmp.c to bcmp.S
@@ -162,7 +269,7 @@ fi
if stat "$OBJTOP"/tests/sys/kqueue/libkqueue/*kqtest* \
"$OBJTOP"/tests/sys/kqueue/libkqueue/.depend.kqtest* >/dev/null 2>&1; then
echo "Removing old kqtest"
- run rm -f "$OBJTOP"/tests/sys/kqueue/libkqueue/.depend.* \
+ run rm -fv "$OBJTOP"/tests/sys/kqueue/libkqueue/.depend.* \
"$OBJTOP"/tests/sys/kqueue/libkqueue/*
fi
@@ -236,7 +343,7 @@ fi
if [ -f "$OBJTOP"/rescue/rescue/rescue.mk ] && \
! grep -q 'nvme_util.o' "$OBJTOP"/rescue/rescue/rescue.mk; then
echo "removing rescue.mk without nvme_util.o"
- run rm -f "$OBJTOP"/rescue/rescue/rescue.mk
+ run rm -fv "$OBJTOP"/rescue/rescue/rescue.mk
fi
# 20240910 e2df9bb44109
@@ -256,7 +363,7 @@ if [ ${MACHINE} = riscv ]; then
fi
if ! grep -q 'lib/libc/csu/riscv/reloc\.c' "$f"; then
echo "Removing stale dependencies and objects for libc_start1.c"
- run rm -f \
+ run rm -fv \
"$OBJTOP"/lib/libc/.depend.libc_start1.* \
"$OBJTOP"/lib/libc/libc_start1.*o
break
@@ -270,28 +377,28 @@ f="$p"/arm_mve_builtin_sema.inc
if [ -e "$f" ]; then
if grep -q SemaBuiltinConstantArgRange "$f"; then
echo "Removing pre-llvm19 clang-tblgen output"
- run rm -f "$p"/*.inc
+ run rm -fv "$p"/*.inc
fi
fi
# 20241025 cb5e41b16083 Unbundle hash functions fom lib/libcrypt
-clean_dep lib/libcrypt crypt-md5 c
-clean_dep lib/libcrypt crypt-nthash c
-clean_dep lib/libcrypt crypt-sha256 c
-clean_dep lib/libcrypt crypt-sha512 c
+clean_obj lib/libcrypt crypt-md5 c __MD5Init
+clean_obj lib/libcrypt crypt-nthash c __MD4Init
+clean_obj lib/libcrypt crypt-sha256 c __SHA256Init
+clean_obj lib/libcrypt crypt-sha512 c __SHA512Init
# 20241213 b55f5e1c4ae3 jemalloc: Move generated jemalloc.3 into lib/libc tree
if [ -h "$OBJTOP"/lib/libc/jemalloc.3 ]; then
# Have to cleanup the jemalloc.3 in the obj tree since make gets
# confused and won't use the one in lib/libc/malloc/jemalloc/jemalloc.3
echo "Removing stale jemalloc.3 object"
- run rm -f "$OBJTOP"/lib/libc/jemalloc.3
+ run rm -fv "$OBJTOP"/lib/libc/jemalloc.3
fi
if [ $MACHINE_ARCH = aarch64 ]; then
# 20250110 5e7d93a60440 add strcmp SIMD implementation
ALL_libcompats= clean_dep lib/libc strcmp S arm-optimized-routines
- run rm -f "$OBJTOP"/lib/libc/strcmp.S
+ run rm -fv "$OBJTOP"/lib/libc/strcmp.S
# 20250110 b91003acffe7 add strspn optimized implementation
ALL_libcompats= clean_dep lib/libc strspn c
@@ -310,7 +417,7 @@ if [ $MACHINE_ARCH = aarch64 ]; then
# 20250110 25c485e14769 add strncmp SIMD implementation
ALL_libcompats= clean_dep lib/libc strncmp S arm-optimized-routines
- run rm -f "$OBJTOP"/lib/libc/strncmp.S
+ run rm -fv "$OBJTOP"/lib/libc/strncmp.S
# 20250110 bad17991c06d add memccpy SIMD implementation
ALL_libcompats= clean_dep lib/libc memccpy c
@@ -321,11 +428,11 @@ if [ $MACHINE_ARCH = aarch64 ]; then
# 20250110 bea89d038ac5 add strlcat SIMD implementation, and move memchr
ALL_libcompats= clean_dep lib/libc strlcat c "libc.string.strlcat.c"
ALL_libcompats= clean_dep lib/libc memchr S "[[:space:]]memchr.S"
- run rm -f "$OBJTOP"/lib/libc/memchr.S
+ run rm -fv "$OBJTOP"/lib/libc/memchr.S
# 20250110 3863fec1ce2d add strlen SIMD implementation
ALL_libcompats= clean_dep lib/libc strlen S arm-optimized-routines
- run rm -f "$OBJTOP"/lib/libc/strlen.S
+ run rm -fv "$OBJTOP"/lib/libc/strlen.S
# 20250110 79e01e7e643c add bcopy & bzero wrapper
ALL_libcompats= clean_dep lib/libc bcopy c "libc.string.bcopy.c"
@@ -350,13 +457,22 @@ clean_dep usr.sbin/ctld uclparse c
# 20250425 2e47f35be5dc libllvm, libclang and liblldb became shared libraries
if [ -f "$OBJTOP"/lib/clang/libllvm/libllvm.a ]; then
echo "Removing old static libllvm library"
- run rm -f "$OBJTOP"/lib/clang/libllvm/libllvm.a
+ run rm -fv "$OBJTOP"/lib/clang/libllvm/libllvm.a
fi
if [ -f "$OBJTOP"/lib/clang/libclang/libclang.a ]; then
echo "Removing old static libclang library"
- run rm -f "$OBJTOP"/lib/clang/libclang/libclang.a
+ run rm -fv "$OBJTOP"/lib/clang/libclang/libclang.a
fi
if [ -f "$OBJTOP"/lib/clang/liblldb/liblldb.a ]; then
echo "Removing old static liblldb library"
- run rm -f "$OBJTOP"/lib/clang/liblldb/liblldb.a
+ run rm -fv "$OBJTOP"/lib/clang/liblldb/liblldb.a
+fi
+
+# 20250813 4f766afc1ca0 tcopy converted to C++
+clean_dep usr.bin/tcopy tcopy c
+
+# 20250904 aef807876c30 moused binary to directory
+if [ -f "$OBJTOP"/usr.sbin/moused/moused ]; then
+ echo "Removing old moused binary"
+ run rm -fv "$OBJTOP"/usr.sbin/moused/moused
fi
diff --git a/tools/build/mk/OptionalObsoleteFiles.inc b/tools/build/mk/OptionalObsoleteFiles.inc
index 58ca2a49b801..a2fb28f1a186 100644
--- a/tools/build/mk/OptionalObsoleteFiles.inc
+++ b/tools/build/mk/OptionalObsoleteFiles.inc
@@ -1639,6 +1639,7 @@ OLD_FILES+=usr/bin/ree
OLD_FILES+=usr/share/man/man1/edit.1.gz
OLD_FILES+=usr/share/man/man1/ee.1.gz
OLD_FILES+=usr/share/man/man1/ree.1.gz
+OLD_FILES+=usr/share/misc/init.ee
OLD_FILES+=usr/share/nls/C/ee.cat
OLD_FILES+=usr/share/nls/de_DE.ISO8859-1/ee.cat
OLD_FILES+=usr/share/nls/fr_FR.ISO8859-1/ee.cat
@@ -1708,6 +1709,8 @@ OLD_FILES+=usr/share/examples/hostapd/hostapd.conf
OLD_FILES+=usr/share/examples/hostapd/hostapd.eap_user
OLD_FILES+=usr/share/examples/hostapd/hostapd.wpa_psk
OLD_FILES+=usr/share/examples/indent/indent.pro
+OLD_FILES+=usr/share/examples/inotify/Makefile
+OLD_FILES+=usr/share/examples/inotify/inotify.c
OLD_FILES+=usr/share/examples/ipfilter/BASIC.NAT
OLD_FILES+=usr/share/examples/ipfilter/BASIC_1.FW
OLD_FILES+=usr/share/examples/ipfilter/BASIC_2.FW
@@ -1920,6 +1923,7 @@ OLD_DIRS+=usr/share/examples/hast
OLD_DIRS+=usr/share/examples/ibcs2
OLD_DIRS+=usr/share/examples/hostapd
OLD_DIRS+=usr/share/examples/indent
+OLD_DIRS+=usr/share/examples/inotify
OLD_DIRS+=usr/share/examples/ipfilter
OLD_DIRS+=usr/share/examples/ipfw
OLD_DIRS+=usr/share/examples/jails
@@ -2258,79 +2262,6 @@ OLD_FILES+=usr/share/man/man3/gpio_pin_tristate.3.gz
OLD_FILES+=usr/share/man/man8/gpioctl.8.gz
.endif
-.if ${MK_GSSAPI} == no
-OLD_FILES+=usr/include/gssapi/gssapi.h
-OLD_DIRS+=usr/include/gssapi
-OLD_FILES+=usr/include/gssapi.h
-OLD_FILES+=usr/lib/libgssapi.a
-OLD_FILES+=usr/lib/libgssapi.so
-OLD_LIBS+=usr/lib/libgssapi.so.10
-OLD_FILES+=usr/lib/libgssapi_p.a
-OLD_FILES+=usr/lib/librpcsec_gss.a
-OLD_FILES+=usr/lib/librpcsec_gss.so
-OLD_LIBS+=usr/lib/librpcsec_gss.so.1
-OLD_FILES+=usr/sbin/gssd
-OLD_FILES+=usr/share/man/man3/gss_accept_sec_context.3.gz
-OLD_FILES+=usr/share/man/man3/gss_acquire_cred.3.gz
-OLD_FILES+=usr/share/man/man3/gss_add_cred.3.gz
-OLD_FILES+=usr/share/man/man3/gss_add_oid_set_member.3.gz
-OLD_FILES+=usr/share/man/man3/gss_canonicalize_name.3.gz
-OLD_FILES+=usr/share/man/man3/gss_compare_name.3.gz
-OLD_FILES+=usr/share/man/man3/gss_context_time.3.gz
-OLD_FILES+=usr/share/man/man3/gss_create_empty_oid_set.3.gz
-OLD_FILES+=usr/share/man/man3/gss_delete_sec_context.3.gz
-OLD_FILES+=usr/share/man/man3/gss_display_name.3.gz
-OLD_FILES+=usr/share/man/man3/gss_display_status.3.gz
-OLD_FILES+=usr/share/man/man3/gss_duplicate_name.3.gz
-OLD_FILES+=usr/share/man/man3/gss_export_name.3.gz
-OLD_FILES+=usr/share/man/man3/gss_export_sec_context.3.gz
-OLD_FILES+=usr/share/man/man3/gss_get_mic.3.gz
-OLD_FILES+=usr/share/man/man3/gss_import_name.3.gz
-OLD_FILES+=usr/share/man/man3/gss_import_sec_context.3.gz
-OLD_FILES+=usr/share/man/man3/gss_indicate_mechs.3.gz
-OLD_FILES+=usr/share/man/man3/gss_init_sec_context.3.gz
-OLD_FILES+=usr/share/man/man3/gss_inquire_context.3.gz
-OLD_FILES+=usr/share/man/man3/gss_inquire_cred.3.gz
-OLD_FILES+=usr/share/man/man3/gss_inquire_cred_by_mech.3.gz
-OLD_FILES+=usr/share/man/man3/gss_inquire_mechs_for_name.3.gz
-OLD_FILES+=usr/share/man/man3/gss_inquire_names_for_mech.3.gz
-OLD_FILES+=usr/share/man/man3/gss_process_context_token.3.gz
-OLD_FILES+=usr/share/man/man3/gss_release_buffer.3.gz
-OLD_FILES+=usr/share/man/man3/gss_release_cred.3.gz
-OLD_FILES+=usr/share/man/man3/gss_release_name.3.gz
-OLD_FILES+=usr/share/man/man3/gss_release_oid_set.3.gz
-OLD_FILES+=usr/share/man/man3/gss_seal.3.gz
-OLD_FILES+=usr/share/man/man3/gss_sign.3.gz
-OLD_FILES+=usr/share/man/man3/gss_test_oid_set_member.3.gz
-OLD_FILES+=usr/share/man/man3/gss_unseal.3.gz
-OLD_FILES+=usr/share/man/man3/gss_unwrap.3.gz
-OLD_FILES+=usr/share/man/man3/gss_verify.3.gz
-OLD_FILES+=usr/share/man/man3/gss_verify_mic.3.gz
-OLD_FILES+=usr/share/man/man3/gss_wrap.3.gz
-OLD_FILES+=usr/share/man/man3/gss_wrap_size_limit.3.gz
-OLD_FILES+=usr/share/man/man3/gssapi.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_get_error.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_get_mech_info.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_get_mechanisms.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_get_principal_name.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_get_versions.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_getcred.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_is_installed.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_max_data_length.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_mech_to_oid.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_oid_to_mech.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_qop_to_num.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_seccreate.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_set_callback.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_set_defaults.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_set_svc_name.3.gz
-OLD_FILES+=usr/share/man/man3/rpc_gss_svc_max_data_length.3.gz
-OLD_FILES+=usr/share/man/man3/rpcsec_gss.3.gz
-OLD_FILES+=usr/share/man/man5/mech.5.gz
-OLD_FILES+=usr/share/man/man5/qop.5.gz
-OLD_FILES+=usr/share/man/man8/gssd.8.gz
-.endif
-
.if ${MK_HAST} == no
OLD_FILES+=etc/rc.d/hastd
OLD_FILES+=sbin/hastctl
@@ -2728,2115 +2659,94 @@ OLD_FILES+=usr/share/man/man1/kdump.1.gz
OLD_FILES+=usr/share/man/man1/truss.1.gz
.endif
-.if ${MK_KERBEROS} == no
-.if ${MK_MITKRB5} == no
-# Remove Heimdal because we do not want Kerberos
-OLD_FILES+=etc/rc.d/ipropd_master
-OLD_FILES+=etc/rc.d/ipropd_slave
-OLD_FILES+=usr/bin/asn1_compile
+.if ${MK_KERBEROS_SUPPORT} == "no"
+OLD_FILES+=etc/rc.d/gssd
+OLD_FILES+=usr/sbin/gssd
+OLD_FILES+=usr/share/man/man8/gssd.8.gz
+.endif
+
+# Kerberos files which are installed by both Heimdal and MIT. These should
+# only be removed if Kerberos is disabled entirely.
+.if ${MK_KERBEROS} == "no"
+
OLD_FILES+=usr/bin/compile_et
-OLD_FILES+=usr/bin/hxtool
+OLD_FILES+=usr/share/man/man1/compile_et.1.gz
+# This is kadmin(1) in MIT but kadmin(8) in Heimdal, therefore the manpage
+# is not listed here.
OLD_FILES+=usr/bin/kadmin
-OLD_FILES+=usr/bin/kcc
OLD_FILES+=usr/bin/kdestroy
-OLD_FILES+=usr/bin/kf
-OLD_FILES+=usr/bin/kgetcred
-OLD_FILES+=usr/bin/kinit
-OLD_FILES+=usr/bin/klist
-OLD_FILES+=usr/bin/kpasswd
-OLD_FILES+=usr/bin/krb5-config
-OLD_FILES+=usr/bin/ksu
-OLD_FILES+=usr/bin/kswitch
-OLD_FILES+=usr/bin/make-roken
-OLD_FILES+=usr/bin/slc
-OLD_FILES+=usr/bin/string2key
-OLD_FILES+=usr/bin/verify_krb5_conf
-OLD_FILES+=usr/include/asn1-common.h
-OLD_FILES+=usr/include/asn1_err.h
-OLD_FILES+=usr/include/base64.h
-OLD_FILES+=usr/include/cms_asn1.h
-OLD_FILES+=usr/include/common.h
-OLD_FILES+=usr/include/crmf_asn1.h
-OLD_FILES+=usr/include/der-private.h
-OLD_FILES+=usr/include/der-protos.h
-OLD_FILES+=usr/include/der.h
-OLD_FILES+=usr/include/digest_asn1.h
-OLD_FILES+=usr/include/edwards25519_fiat.h
-OLD_FILES+=usr/include/edwards25519_tables.h
-OLD_FILES+=usr/include/getarg.h
-OLD_FILES+=usr/include/groups.h
-OLD_FILES+=usr/include/gssapi/gssapi_krb5.h
-OLD_FILES+=usr/include/hdb-protos.h
-OLD_FILES+=usr/include/hdb.h
-OLD_FILES+=usr/include/hdb_asn1.h
-OLD_FILES+=usr/include/hdb_err.h
-OLD_FILES+=usr/include/heim_asn1.h
-OLD_FILES+=usr/include/heim_err.h
-OLD_FILES+=usr/include/heim_threads.h
-OLD_FILES+=usr/include/heimbase.h
-OLD_FILES+=usr/include/heimntlm-protos.h
-OLD_FILES+=usr/include/heimntlm.h
-OLD_FILES+=usr/include/hex.h
-OLD_FILES+=usr/include/hx509-private.h
-OLD_FILES+=usr/include/hx509-protos.h
-OLD_FILES+=usr/include/hx509.h
-OLD_FILES+=usr/include/hx509_err.h
-OLD_FILES+=usr/include/iana.h
-OLD_FILES+=usr/include/k524_err.h
-OLD_FILES+=usr/include/kadm5/admin.h
-OLD_FILES+=usr/include/kadm5/kadm5-private.h
-OLD_FILES+=usr/include/kadm5/kadm5-protos.h
-OLD_FILES+=usr/include/kadm5/kadm5-pwcheck.h
-OLD_FILES+=usr/include/kadm5/kadm5_err.h
-OLD_FILES+=usr/include/kadm5/private.h
-OLD_DIRS+=usr/include/kadm5
-OLD_FILES+=usr/include/kafs.h
-OLD_FILES+=usr/include/kdc-protos.h
-OLD_FILES+=usr/include/kdc.h
-OLD_FILES+=usr/include/krb5-private.h
-OLD_FILES+=usr/include/krb5-protos.h
-OLD_FILES+=usr/include/krb5-types.h
-OLD_FILES+=usr/include/krb5.h
-OLD_FILES+=usr/include/krb5/ccache_plugin.h
-OLD_FILES+=usr/include/krb5/locate_plugin.h
-OLD_FILES+=usr/include/krb5/send_to_kdc_plugin.h
-OLD_FILES+=usr/include/krb5/windc_plugin.h
-OLD_DIRS+=usr/include/krb5
-OLD_FILES+=usr/include/krb5_asn1.h
-OLD_FILES+=usr/include/krb5_ccapi.h
-OLD_FILES+=usr/include/krb5_err.h
-OLD_FILES+=usr/include/kx509_asn1.h
-OLD_FILES+=usr/include/ntlm_err.h
-OLD_FILES+=usr/include/ocsp_asn1.h
-OLD_FILES+=usr/include/parse_bytes.h
-OLD_FILES+=usr/include/parse_time.h
-OLD_FILES+=usr/include/parse_units.h
-OLD_FILES+=usr/include/pkcs10_asn1.h
-OLD_FILES+=usr/include/pkcs12_asn1.h
-OLD_FILES+=usr/include/pkcs8_asn1.h
-OLD_FILES+=usr/include/pkcs9_asn1.h
-OLD_FILES+=usr/include/pkinit_asn1.h
-OLD_FILES+=usr/include/resolve.h
-OLD_FILES+=usr/include/rfc2459_asn1.h
-OLD_FILES+=usr/include/roken-common.h
-OLD_FILES+=usr/include/rtbl.h
-OLD_FILES+=usr/include/trace.h
-OLD_FILES+=usr/include/util.h
-OLD_FILES+=usr/include/wind.h
-OLD_FILES+=usr/include/wind_err.h
-OLD_FILES+=usr/include/xdbm.h
-OLD_FILES+=usr/lib/libasn1.a
-OLD_FILES+=usr/lib/libasn1.so
-OLD_LIBS+=usr/lib/libasn1.so.11
-OLD_FILES+=usr/lib/libasn1_p.a
-OLD_FILES+=usr/lib/libcom_err.a
-OLD_FILES+=usr/lib/libcom_err.so
-OLD_LIBS+=usr/lib/libcom_err.so.5
-OLD_FILES+=usr/lib/libcom_err_p.a
-OLD_FILES+=usr/lib/libgssapi_krb5.a
-OLD_FILES+=usr/lib/libgssapi_krb5.so
-OLD_LIBS+=usr/lib/libgssapi_krb5.so.10
-OLD_FILES+=usr/lib/libgssapi_krb5_p.a
-OLD_FILES+=usr/lib/libgssapi_mech.a
-OLD_FILES+=usr/lib/libgssapi_mech.so
-OLD_LIBS+=usr/lib/libgssapi_mech.so.10
-OLD_FILES+=usr/lib/libgssapi_ntlm.a
-OLD_FILES+=usr/lib/libgssapi_ntlm.so
-OLD_LIBS+=usr/lib/libgssapi_ntlm.so.10
-OLD_FILES+=usr/lib/libgssapi_ntlm_p.a
-OLD_FILES+=usr/lib/libgssapi_spnego.a
-OLD_FILES+=usr/lib/libgssapi_spnego.so
-OLD_LIBS+=usr/lib/libgssapi_spnego.so.10
-OLD_FILES+=usr/lib/libgssapi_spnego_p.a
-OLD_FILES+=usr/lib/libhdb.a
-OLD_FILES+=usr/lib/libhdb.so
-OLD_LIBS+=usr/lib/libhdb.so.11
-OLD_FILES+=usr/lib/libhdb_p.a
-OLD_FILES+=usr/lib/libheimbase.a
-OLD_FILES+=usr/lib/libheimbase.so
-OLD_LIBS+=usr/lib/libheimbase.so.11
-OLD_FILES+=usr/lib/libheimbase_p.a
-OLD_FILES+=usr/lib/libheimntlm.a
-OLD_FILES+=usr/lib/libheimntlm.so
-OLD_LIBS+=usr/lib/libheimntlm.so.11
-OLD_FILES+=usr/lib/libheimntlm_p.a
-OLD_FILES+=usr/lib/libheimsqlite.a
-OLD_FILES+=usr/lib/libheimsqlite.so
-OLD_LIBS+=usr/lib/libheimsqlite.so.11
-OLD_FILES+=usr/lib/libheimsqlite_p.a
-OLD_FILES+=usr/lib/libhx509.a
-OLD_FILES+=usr/lib/libhx509.so
-OLD_LIBS+=usr/lib/libhx509.so.11
-OLD_FILES+=usr/lib/libhx509_p.a
-OLD_FILES+=usr/lib/libkadm5clnt.a
-OLD_FILES+=usr/lib/libkadm5clnt.so
-OLD_LIBS+=usr/lib/libkadm5clnt.so.11
-OLD_FILES+=usr/lib/libkadm5clnt_p.a
-OLD_FILES+=usr/lib/libkadm5srv.a
-OLD_FILES+=usr/lib/libkadm5srv.so
-OLD_LIBS+=usr/lib/libkadm5srv.so.11
-OLD_FILES+=usr/lib/libkadm5srv_p.a
-OLD_FILES+=usr/lib/libkafs5.a
-OLD_FILES+=usr/lib/libkafs5.so
-OLD_LIBS+=usr/lib/libkafs5.so.11
-OLD_FILES+=usr/lib/libkafs5_p.a
-OLD_FILES+=usr/lib/libkdc.a
-OLD_FILES+=usr/lib/libkdc.so
-OLD_LIBS+=usr/lib/libkdc.so.11
-OLD_FILES+=usr/lib/libkdc_p.a
-OLD_FILES+=usr/lib/libkrb5.a
-OLD_FILES+=usr/lib/libkrb5.so
-OLD_LIBS+=usr/lib/libkrb5.so.11
-OLD_FILES+=usr/lib/libkrb5_p.a
-OLD_FILES+=usr/lib/libroken.a
-OLD_FILES+=usr/lib/libroken.so
-OLD_LIBS+=usr/lib/libroken.so.11
-OLD_FILES+=usr/lib/libroken_p.a
-OLD_FILES+=usr/lib/libwind.a
-OLD_FILES+=usr/lib/libwind.so
-OLD_LIBS+=usr/lib/libwind.so.11
-OLD_FILES+=usr/lib/libwind_p.a
-OLD_FILES+=usr/lib/libprivateheimipcc.a
-OLD_FILES+=usr/lib/libprivateheimipcc.so
-OLD_LIBS+=usr/lib/libprivateheimipcc.so.11
-OLD_FILES+=usr/lib/libprivateheimipcc_p.a
-OLD_FILES+=usr/lib/libprivateheimipcs.a
-OLD_FILES+=usr/lib/libprivateheimipcs.so
-OLD_LIBS+=usr/lib/libprivateheimipcs.so.11
-OLD_FILES+=usr/lib/libprivateheimipcs_p.a
-OLD_FILES+=usr/libexec/digest-service
-OLD_FILES+=usr/libexec/hprop
-OLD_FILES+=usr/libexec/hpropd
-OLD_FILES+=usr/libexec/ipropd-master
-OLD_FILES+=usr/libexec/ipropd-slave
-OLD_FILES+=usr/libexec/kadmind
-OLD_FILES+=usr/libexec/kcm
-OLD_FILES+=usr/libexec/kdc
-OLD_FILES+=usr/libexec/kdigest
-OLD_FILES+=usr/libexec/kfd
-OLD_FILES+=usr/libexec/kimpersonate
-OLD_FILES+=usr/libexec/kpasswdd
-OLD_FILES+=usr/sbin/kstash
-OLD_FILES+=usr/sbin/ktutil
-OLD_FILES+=usr/sbin/iprop-log
OLD_FILES+=usr/share/man/man1/kdestroy.1.gz
-OLD_FILES+=usr/share/man/man1/kf.1.gz
+OLD_FILES+=usr/bin/kinit
OLD_FILES+=usr/share/man/man1/kinit.1.gz
+OLD_FILES+=usr/bin/klist
OLD_FILES+=usr/share/man/man1/klist.1.gz
+OLD_FILES+=usr/bin/kpasswd
OLD_FILES+=usr/share/man/man1/kpasswd.1.gz
+OLD_FILES+=usr/bin/krb5-config
OLD_FILES+=usr/share/man/man1/krb5-config.1.gz
+OLD_FILES+=usr/bin/kswitch
OLD_FILES+=usr/share/man/man1/kswitch.1.gz
-OLD_FILES+=usr/share/man/man3/HDB.3.gz
-OLD_FILES+=usr/share/man/man3/hdb__del.3.gz
-OLD_FILES+=usr/share/man/man3/hdb__get.3.gz
-OLD_FILES+=usr/share/man/man3/hdb__put.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_auth_status.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_check_constrained_delegation.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_check_pkinit_ms_upn_match.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_check_s4u2self.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_close.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_destroy.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_entry_ex.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_fetch_kvno.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_firstkey.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_free.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_get_realms.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_lock.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_name.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_nextkey.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_open.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_password.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_remove.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_rename.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_store.3.gz
-OLD_FILES+=usr/share/man/man3/hdb_unlock.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_build_ntlm1_master.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_build_ntlm2_master.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_calculate_lm2.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_calculate_ntlm1.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_calculate_ntlm2.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_decode_targetinfo.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_encode_targetinfo.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_encode_type1.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_encode_type2.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_encode_type3.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_free_buf.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_free_targetinfo.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_free_type1.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_free_type2.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_free_type3.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_keyex_unwrap.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_nt_key.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_ntlmv2_key.3.gz
-OLD_FILES+=usr/share/man/man3/heim_ntlm_verify_ntlm2.3.gz
-OLD_FILES+=usr/share/man/man3/hx509.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_bitstring_print.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_sign.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_sign_self.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_crl_dp_uri.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_eku.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_san_hostname.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_san_jid.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_san_ms_upn.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_san_otherName.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_san_pkinit.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_add_san_rfc822name.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_free.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_init.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_ca.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_domaincontroller.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_notAfter.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_notAfter_lifetime.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_notBefore.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_proxy.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_serialnumber.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_spki.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_subject.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_template.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_set_unique.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_subject_expand.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ca_tbs_template_units.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_binary.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_check_eku.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_cmp.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_find_subjectAltName_otherName.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_free.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_get_SPKI.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_get_SPKI_AlgorithmIdentifier.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_get_attribute.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_get_base_subject.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_get_friendly_name.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_get_issuer.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_get_issuer_unique_id.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_get_notAfter.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_get_notBefore.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_get_serialnumber.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_get_subject.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_get_subject_unique_id.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_init.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_init_data.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_keyusage_print.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_ref.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cert_set_friendly_name.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_certs_add.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_certs_append.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_certs_end_seq.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_certs_filter.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_certs_find.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_certs_free.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_certs_info.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_certs_init.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_certs_iter_f.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_certs_merge.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_certs_next_cert.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_certs_start_seq.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_certs_store.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ci_print_names.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_clear_error_string.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cms.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cms_create_signed_1.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cms_envelope_1.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cms_unenvelope.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cms_unwrap_ContentInfo.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cms_verify_signed.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_cms_wrap_ContentInfo.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_context_free.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_context_init.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_context_set_missing_revoke.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_crl_add_revoked_certs.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_crl_alloc.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_crl_free.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_crl_lifetime.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_crl_sign.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_crypto.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_env.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_env_add.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_env_add_binding.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_env_find.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_env_find_binding.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_env_free.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_env_lfind.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_err.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_error.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_free_error_string.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_free_octet_string_list.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_general_name_unparse.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_get_error_string.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_get_one_cert.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_keyset.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_lock.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_misc.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_name.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_name_binary.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_name_cmp.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_name_copy.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_name_expand.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_name_free.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_name_is_null_p.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_name_to_Name.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_name_to_string.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ocsp_request.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_ocsp_verify.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_oid_print.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_oid_sprint.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_parse_name.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_peer.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_peer_info_add_cms_alg.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_peer_info_alloc.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_peer_info_free.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_peer_info_set_cert.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_peer_info_set_cms_algs.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_print.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_print_cert.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_print_stdout.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_query.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_query_alloc.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_query_free.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_query_match_cmp_func.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_query_match_eku.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_query_match_friendly_name.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_query_match_issuer_serial.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_query_match_option.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_query_statistic_file.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_query_unparse_stats.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_revoke.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_revoke_add_crl.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_revoke_add_ocsp.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_revoke_free.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_revoke_init.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_revoke_ocsp_print.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_revoke_verify.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_set_error_string.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_set_error_stringv.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_unparse_der_name.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_validate_cert.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_validate_ctx_add_flags.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_validate_ctx_free.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_validate_ctx_init.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_validate_ctx_set_print.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_verify.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_verify_attach_anchors.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_verify_attach_revoke.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_verify_ctx_f_allow_default_trustanchors.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_verify_destroy_ctx.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_verify_hostname.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_verify_init_ctx.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_verify_path.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_verify_set_max_depth.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_verify_set_proxy_certificate.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_verify_set_strict_rfc3280_verification.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_verify_set_time.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_verify_signature.3.gz
-OLD_FILES+=usr/share/man/man3/hx509_xfree.3.gz
-OLD_FILES+=usr/share/man/man3/k_afs_cell_of_file.3.gz
-OLD_FILES+=usr/share/man/man3/k_hasafs.3.gz
-OLD_FILES+=usr/share/man/man3/k_pioctl.3.gz
-OLD_FILES+=usr/share/man/man3/k_setpag.3.gz
-OLD_FILES+=usr/share/man/man3/k_unlog.3.gz
-OLD_FILES+=usr/share/man/man3/kadm5_pwcheck.3.gz
-OLD_FILES+=usr/share/man/man3/kafs.3.gz
-OLD_FILES+=usr/share/man/man3/kafs5.3.gz
-OLD_FILES+=usr/share/man/man3/kafs_set_verbose.3.gz
-OLD_FILES+=usr/share/man/man3/kafs_settoken.3.gz
-OLD_FILES+=usr/share/man/man3/kafs_settoken5.3.gz
-OLD_FILES+=usr/share/man/man3/kafs_settoken_rxkad.3.gz
-OLD_FILES+=usr/share/man/man3/krb5.3.gz
-OLD_FILES+=usr/share/man/man3/krb524_convert_creds_kdc.3.gz
-OLD_FILES+=usr/share/man/man3/krb524_convert_creds_kdc_ccache.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_425_conv_principal.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_425_conv_principal_ext.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_524_conv_principal.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_acc_ops.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_acl_match_file.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_acl_match_string.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_add_et_list.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_add_extra_addresses.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_add_ignore_addresses.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_addlog_dest.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_addlog_func.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_addr2sockaddr.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_address.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_address_compare.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_address_order.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_address_prefixlen_boundary.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_address_search.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_afslog.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_afslog_uid.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_allow_weak_crypto.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_aname_to_localname.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_anyaddr.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_appdefault.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_appdefault_boolean.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_appdefault_string.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_appdefault_time.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_append_addresses.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_free.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_genaddrs.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_getaddrs.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_getflags.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_getkey.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_getlocalsubkey.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_getrcache.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_getremotesubkey.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_getuserkey.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_init.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_initivector.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_setaddrs.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_setaddrs_from_fd.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_setflags.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_setivector.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_setkey.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_setlocalsubkey.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_setrcache.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_setremotesubkey.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_con_setuserkey.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_context.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_getauthenticator.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_getcksumtype.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_getkeytype.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_getlocalseqnumber.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_getremoteseqnumber.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_setcksumtype.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_setkeytype.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_setlocalseqnumber.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_auth_setremoteseqnumber.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_build_principal.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_build_principal_ext.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_build_principal_va.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_build_principal_va_ext.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_c_enctype_compare.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_c_make_checksum.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_cache_end_seq_get.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_cache_get_first.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_cache_match.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_cache_next.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_clear_mcred.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_close.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_copy_cache.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_copy_creds.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_copy_match_f.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_default.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_default_name.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_destroy.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_end_seq_get.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_gen_new.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_get_config.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_get_flags.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_get_friendly_name.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_get_full_name.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_get_kdc_offset.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_get_lifetime.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_get_name.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_get_ops.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_get_prefix_ops.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_get_principal.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_get_type.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_get_version.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_initialize.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_last_change_time.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_move.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_new_unique.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_next_cred.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_register.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_remove_cred.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_resolve.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_retrieve_cred.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_set_config.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_set_default_name.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_set_flags.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_set_friendly_name.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_set_kdc_offset.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_start_seq_get.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_store_cred.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_support_switch.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cc_switch.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ccache.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ccache_intro.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cccol_cursor_free.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cccol_cursor_new.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cccol_cursor_next.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cccol_last_change_time.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_change_password.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_check_transited.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_checksum_is_collision_proof.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_checksum_is_keyed.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_checksumsize.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_cksumtype_to_enctype.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_clear_error_message.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_clear_error_string.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_closelog.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_compare_creds.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_file_free.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_free_strings.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_get_bool.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_get_bool_default.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_get_list.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_get_string.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_get_string_default.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_get_strings.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_get_time.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_get_time_default.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_parse_file_multi.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_parse_string_multi.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_vget_bool.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_vget_bool_default.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_vget_list.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_vget_string.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_vget_string_default.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_vget_strings.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_vget_time.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_config_vget_time_default.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_copy_address.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_copy_addresses.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_copy_context.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_copy_creds.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_copy_creds_contents.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_copy_data.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_copy_host_realm.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_copy_keyblock.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_copy_keyblock_contents.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_copy_principal.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_copy_ticket.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_create_checksum.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_create_checksum_iov.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_credential.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_creds.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_creds_get_ticket_flags.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_crypto.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_crypto_destroy.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_crypto_fx_cf2.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_crypto_getblocksize.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_crypto_getconfoundersize.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_crypto_getenctype.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_crypto_getpadsize.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_crypto_init.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_crypto_iov.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_data_alloc.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_data_cmp.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_data_copy.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_data_ct_cmp.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_data_free.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_data_realloc.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_data_zero.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_decrypt.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_decrypt_EncryptedData.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_decrypt_iov_ivec.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_deprecated.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_digest.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_digest_probe.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_eai_to_heim_errno.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_encrypt.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_encrypt_EncryptedData.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_encrypt_iov_ivec.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_enctype_disable.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_enctype_enable.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_enctype_valid.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_enctypes_compatible_keys.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_error.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_expand_hostname.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_expand_hostname_realms.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_fcc_ops.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_fileformats.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_find_padata.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_address.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_addresses.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_config_files.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_context.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_cred_contents.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_creds.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_creds_contents.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_data.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_data_contents.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_error_string.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_host_realm.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_keyblock.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_keyblock_contents.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_krbhst.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_principal.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_ticket.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_free_unparsed_name.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_fwd_tgt_creds.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_generate_random_block.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_generate_subkey.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_generate_subkey_extended.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_all_client_addrs.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_all_server_addrs.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_cred_from_kdc.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_cred_from_kdc_opt.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_credentials.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_creds.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_default_config_files.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_default_in_tkt_etypes.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_default_principal.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_default_realm.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_default_realms.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_dns_canonicalize_hostname.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_extra_addresses.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_fcache_version.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_forwarded_creds.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_host_realm.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_ignore_addresses.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_in_cred.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_in_tkt_with_keytab.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_in_tkt_with_password.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_in_tkt_with_skey.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_init_creds.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_init_creds_keyblock.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_init_creds_keytab.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_init_creds_opt_alloc.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_init_creds_opt_free.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_init_creds_opt_get_error.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_init_creds_opt_init.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_init_creds_password.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_kdc_sec_offset.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_krb524hst.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_krb_admin_hst.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_krb_changepw_hst.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_krbhst.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_max_time_skew.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_use_admin_kdc.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_get_validated_creds.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_getportbyname.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_h_addr2addr.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_h_addr2sockaddr.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_h_errno_to_heim_errno.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_init_context.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_init_creds_free.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_init_creds_get.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_init_creds_get_error.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_init_creds_init.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_init_creds_intro.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_init_creds_set_keytab.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_init_creds_set_password.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_init_creds_set_service.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_init_creds_step.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_init_ets.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_initlog.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_introduction.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_is_config_principal.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_is_thread_safe.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kerberos_enctypes.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_keyblock_get_enctype.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_keyblock_init.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_keyblock_zero.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_keytab.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_keytab_intro.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_keytab_key_proc.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_keytype_to_enctypes.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_keytype_to_enctypes_default.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_keytype_to_string.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_krbhst_format_string.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_krbhst_free.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_krbhst_get_addrinfo.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_krbhst_init.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_krbhst_next.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_krbhst_next_as_string.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_krbhst_reset.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_add_entry.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_close.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_compare.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_copy_entry_contents.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_default.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_default_modify_name.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_default_name.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_destroy.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_end_seq_get.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_free_entry.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_get_entry.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_get_full_name.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_get_name.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_get_type.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_have_content.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_next_entry.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_read_service_key.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_register.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_remove_entry.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_resolve.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kt_start_seq_get.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_kuserok.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_log.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_log_msg.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_make_addrport.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_make_principal.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_max_sockaddr_size.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_mcc_ops.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_mk_req.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_mk_safe.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_openlog.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_pac.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_pac_get_buffer.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_pac_verify.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_parse_address.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_parse_name.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_parse_name_flags.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_parse_nametype.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_password_key_proc.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_plugin_register.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_prepend_config_files_default.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_princ_realm.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_princ_set_realm.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_principal.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_principal_compare.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_principal_compare_any_realm.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_principal_get_comp_string.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_principal_get_num_comp.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_principal_get_realm.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_principal_get_type.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_principal_intro.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_principal_is_krbtgt.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_principal_match.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_principal_set_realm.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_principal_set_type.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_print_address.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_random_to_key.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_rcache.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_rd_error.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_rd_req_ctx.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_rd_req_in_ctx_alloc.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_rd_req_in_set_keytab.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_rd_req_in_set_pac_check.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_rd_req_out_ctx_free.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_rd_req_out_get_server.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_rd_safe.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_realm_compare.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_address.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_addrs.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_authdata.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_creds.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_creds_tag.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_data.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_int16.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_int32.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_int8.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_keyblock.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_principal.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_string.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_stringz.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_times.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_uint16.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_uint32.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ret_uint8.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_set_config_files.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_set_default_in_tkt_etypes.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_set_default_realm.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_set_dns_canonicalize_hostname.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_set_error_message.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_set_error_string.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_set_extra_addresses.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_set_fcache_version.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_set_home_dir_access.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_set_ignore_addresses.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_set_kdc_sec_offset.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_set_max_time_skew.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_set_password.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_set_real_time.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_set_use_admin_kdc.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_sname_to_principal.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_sock_to_principal.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_sockaddr2address.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_sockaddr2port.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_sockaddr_uninteresting.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_clear_flags.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_emem.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_free.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_from_data.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_from_fd.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_from_mem.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_from_readonly_mem.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_get_byteorder.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_get_eof_code.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_is_flags.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_read.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_seek.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_set_byteorder.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_set_eof_code.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_set_flags.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_set_max_alloc.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_to_data.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_truncate.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_storage_write.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_address.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_addrs.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_authdata.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_creds.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_creds_tag.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_data.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_int16.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_int32.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_int8.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_keyblock.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_principal.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_string.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_stringz.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_times.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_uint16.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_uint32.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_store_uint8.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_string_to_key.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_string_to_keytype.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_support.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ticket.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ticket_get_authorization_data_type.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ticket_get_client.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ticket_get_endtime.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ticket_get_flags.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_ticket_get_server.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_timeofday.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_unparse_name.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_unparse_name_fixed.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_unparse_name_fixed_flags.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_unparse_name_fixed_short.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_unparse_name_flags.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_unparse_name_short.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_us_timeofday.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_v4compat.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_verify_checksum.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_verify_checksum_iov.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_verify_init_creds.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_verify_opt_init.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_verify_opt_set_flags.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_verify_opt_set_keytab.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_verify_opt_set_secure.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_verify_opt_set_service.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_verify_user.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_verify_user_lrealm.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_verify_user_opt.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_vlog.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_vlog_msg.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_vset_error_string.3.gz
-OLD_FILES+=usr/share/man/man3/krb5_vwarn.3.gz
-OLD_FILES+=usr/share/man/man3/krb_afslog.3.gz
-OLD_FILES+=usr/share/man/man3/krb_afslog_uid.3.gz
-OLD_FILES+=usr/share/man/man3/ntlm_buf.3.gz
-OLD_FILES+=usr/share/man/man3/ntlm_core.3.gz
-OLD_FILES+=usr/share/man/man3/ntlm_type1.3.gz
-OLD_FILES+=usr/share/man/man3/ntlm_type2.3.gz
-OLD_FILES+=usr/share/man/man3/ntlm_type3.3.gz
-OLD_FILES+=usr/share/man/man5/krb5.conf.5.gz
-OLD_FILES+=usr/share/man/man8/hprop.8.gz
-OLD_FILES+=usr/share/man/man8/hpropd.8.gz
-OLD_FILES+=usr/share/man/man8/iprop-log.8.gz
-OLD_FILES+=usr/share/man/man8/iprop.8.gz
-OLD_FILES+=usr/share/man/man8/kadmin.8.gz
-OLD_FILES+=usr/share/man/man8/kadmind.8.gz
-OLD_FILES+=usr/share/man/man8/kcm.8.gz
-OLD_FILES+=usr/share/man/man8/kdc.8.gz
-OLD_FILES+=usr/share/man/man8/kdigest.8.gz
-OLD_FILES+=usr/share/man/man8/kerberos.8.gz
-OLD_FILES+=usr/share/man/man8/kimpersonate.8.gz
-OLD_FILES+=usr/share/man/man8/kpasswdd.8.gz
-OLD_FILES+=usr/share/man/man8/kstash.8.gz
-OLD_FILES+=usr/share/man/man8/ktutil.8.gz
-OLD_FILES+=usr/share/man/man8/string2key.8.gz
-OLD_FILES+=usr/share/man/man8/verify_krb5_conf.8.gz
-.else
-# Remove MIT KRB5 because we do not want Kerberos
-OLD_FILES+=usr/bin/compile_et
-OLD_FILES+=usr/bin/gss-client
-OLD_FILES+=usr/bin/k5srvutil
-OLD_FILES+=usr/bin/kadmin
-OLD_FILES+=usr/bin/kdestroy
-OLD_FILES+=usr/bin/kinit
-OLD_FILES+=usr/bin/klist
-OLD_FILES+=usr/bin/kpasswd
-OLD_FILES+=usr/bin/krb5-config
+# MIT has a manpage for this, Heimdal does not.
OLD_FILES+=usr/bin/ksu
-OLD_FILES+=usr/bin/kswitch
-OLD_FILES+=usr/bin/ktutil
-OLD_FILES+=usr/bin/kvno
-OLD_FILES+=usr/bin/sclient
-OLD_FILES+=usr/bin/sim_client
-OLD_FILES+=usr/bin/uuclient
-OLD_FILES+=etc/rc.d/kpropd
+
OLD_FILES+=usr/include/com_err.h
-OLD_FILES+=usr/include/common.h
-OLD_FILES+=usr/include/edwards25519_fiat.h
-OLD_FILES+=usr/include/edwards25519_tables.h
-OLD_FILES+=usr/include/groups.h
OLD_FILES+=usr/include/gssapi.h
OLD_FILES+=usr/include/gssapi/gssapi.h
-OLD_FILES+=usr/include/gssapi/gssapi_alloc.h
-OLD_FILES+=usr/include/gssapi/gssapi_ext.h
-OLD_FILES+=usr/include/gssapi/gssapi_generic.h
OLD_FILES+=usr/include/gssapi/gssapi_krb5.h
-OLD_FILES+=usr/include/gssapi/mechglue.h
-OLD_FILES+=usr/include/gssrpc/auth.h
-OLD_FILES+=usr/include/gssrpc/auth_gss.h
-OLD_FILES+=usr/include/gssrpc/auth_gssapi.h
-OLD_FILES+=usr/include/gssrpc/auth_unix.h
-OLD_FILES+=usr/include/gssrpc/clnt.h
-OLD_FILES+=usr/include/gssrpc/netdb.h
-OLD_FILES+=usr/include/gssrpc/pmap_clnt.h
-OLD_FILES+=usr/include/gssrpc/pmap_prot.h
-OLD_FILES+=usr/include/gssrpc/pmap_rmt.h
-OLD_FILES+=usr/include/gssrpc/rename.h
-OLD_FILES+=usr/include/gssrpc/rpc.h
-OLD_FILES+=usr/include/gssrpc/rpc_msg.h
-OLD_FILES+=usr/include/gssrpc/svc.h
-OLD_FILES+=usr/include/gssrpc/svc_auth.h
-OLD_FILES+=usr/include/gssrpc/types.h
-OLD_FILES+=usr/include/gssrpc/xdr.h
-OLD_FILES+=usr/include/iana.h
OLD_FILES+=usr/include/kadm5/admin.h
-OLD_FILES+=usr/include/kadm5/chpass_util_strings.h
-OLD_FILES+=usr/include/kadm5/kadm_err.h
-OLD_FILES+=usr/include/kdb.h
-OLD_FILES+=usr/include/krad.h
OLD_FILES+=usr/include/krb5.h
-OLD_FILES+=usr/include/krb5/ccselect_plugin.h
-OLD_FILES+=usr/include/krb5/certauth_plugin.h
-OLD_FILES+=usr/include/krb5/clpreauth_plugin.h
-OLD_FILES+=usr/include/krb5/hostrealm_plugin.h
-OLD_FILES+=usr/include/krb5/kadm5_auth_plugin.h
-OLD_FILES+=usr/include/krb5/kadm5_hook_plugin.h
-OLD_FILES+=usr/include/krb5/kdcpolicy_plugin.h
-OLD_FILES+=usr/include/krb5/kdcpreauth_plugin.h
-OLD_FILES+=usr/include/krb5/krb5.h
-OLD_FILES+=usr/include/krb5/localauth_plugin.h
OLD_FILES+=usr/include/krb5/locate_plugin.h
-OLD_FILES+=usr/include/krb5/plugin.h
-OLD_FILES+=usr/include/krb5/preauth_plugin.h
-OLD_FILES+=usr/include/krb5/pwqual_plugin.h
-OLD_FILES+=usr/include/profile.h
-OLD_FILES+=usr/include/trace.h
-OLD_FILES+=usr/include/util.h
-OLD_FILES+=usr/include/verto-module.h
-OLD_FILES+=usr/include/verto.h
-OLD_FILES+=usr/lib/krb5/plugins/kdb/db2.so
-OLD_FILES+=usr/lib/krb5/plugins/preauth/otp.so
-OLD_FILES+=usr/lib/krb5/plugins/preauth/pkinit.so
-OLD_FILES+=usr/lib/krb5/plugins/preauth/spake.so
-OLD_FILES+=usr/lib/krb5/plugins/preauth/test.so
-OLD_FILES+=usr/lib/krb5/plugins/tls/k5tls.so
+
OLD_FILES+=usr/lib/libcom_err.a
-OLD_LIBS+=usr/lib/libcom_err.so
-OLD_LIBS+=usr/lib/libcom_err.so.122
+OLD_FILES+=usr/lib/libcom_err.so
+OLD_FILES+=usr/lib/libgssapi_krb5.a
OLD_FILES+=usr/lib/libgssapi_krb5.so
-OLD_LIBS+=usr/lib/libgssapi_krb5.so.122
-OLD_FILES+=usr/lib/libgssrpc.so
-OLD_LIBS+=usr/lib/libgssrpc.so.122
-OLD_FILES+=usr/lib/libk5crypto.so
-OLD_LIBS+=usr/lib/libk5crypto.so.122
OLD_FILES+=usr/lib/libkadm5clnt.so
-OLD_FILES+=usr/lib/libkadm5clnt_mit.so
-OLD_LIBS+=usr/lib/libkadm5clnt_mit.so.122
-OLD_FILES+=usr/lib/libkadm5srv.so
-OLD_FILES+=usr/lib/libkadm5srv_mit.so
-OLD_LIBS+=usr/lib/libkadm5srv_mit.so.122
-OLD_FILES+=usr/lib/libkdb5.so
-OLD_LIBS+=usr/lib/libkdb5.so.122
-OLD_FILES+=usr/lib/libkrad.so
-OLD_LIBS+=usr/lib/libkrad.so.122
+OLD_FILES+=usr/lib/libkrb5.a
OLD_FILES+=usr/lib/libkrb5.so
-OLD_LIBS+=usr/lib/libkrb5.so.122
-OLD_FILES+=usr/lib/libkrb5profile.a
-OLD_FILES+=usr/lib/libkrb5profile.so
-OLD_LIBS+=usr/lib/libkrb5profile.so.122
-OLD_FILES+=usr/lib/libkrb5support.a
-OLD_FILES+=usr/lib/libkrb5support.so
-OLD_LIBS+=usr/lib/libkrb5support.so.122
-OLD_FILES+=usr/lib/libverto.so
-OLD_LIBS+=usr/lib/libverto.so.122
-OLD_FILES+=usr/libdata/pkgconfig/gssrpc.pc
-OLD_FILES+=usr/libdata/pkgconfig/kadm-client.pc
-OLD_FILES+=usr/libdata/pkgconfig/kadm-server.pc
-OLD_FILES+=usr/libdata/pkgconfig/kdb.pc
-OLD_FILES+=usr/libdata/pkgconfig/krb5-gssapi.pc
-OLD_FILES+=usr/libdata/pkgconfig/krb5.pc
-OLD_FILES+=usr/libdata/pkgconfig/mit-krb5-gssapi.pc
-OLD_FILES+=usr/libdata/pkgconfig/mit-krb5.pc
-OLD_FILES+=usr/libexec/krb5kdc
+OLD_FILES+=usr/lib/librpcsec_gss.a
+OLD_FILES+=usr/lib/librpcsec_gss.so
+OLD_LIBS+=usr/lib/librpcsec_gss.so.1
+OLD_FILES+=usr/lib/pam_krb5.so
+OLD_LIBS+=usr/lib/pam_krb5.so.6
+OLD_FILES+=usr/share/man/man8/pam_krb5.8.gz
+OLD_FILES+=usr/lib/pam_ksu.so
+OLD_LIBS+=usr/lib/pam_ksu.so.6
+OLD_FILES+=usr/share/man/man8/pam_ksu.8.gz
+
OLD_FILES+=usr/libexec/kadmind
-OLD_FILES+=usr/libexec/kprop
-OLD_FILES+=usr/libexec/kpropd
-OLD_FILES+=usr/sbin/gss-server
-OLD_FILES+=usr/sbin/kadmin.local
-OLD_FILES+=usr/sbin/kdb5_util
-OLD_FILES+=usr/sbin/kproplog
-OLD_FILES+=usr/sbin/krb5-send-pr
-OLD_FILES+=usr/sbin/sim_server
-OLD_FILES+=usr/sbin/sserver
-OLD_FILES+=usr/sbin/uuserver
-OLD_FILES+=usr/share/doc/krb5/doc/html/.buildinfo
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/agogo.css
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/basic.css
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/bgfooter.png
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/bgtop.png
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/doctools.js
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/documentation_options.js
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/file.png
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/jquery.js
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/kerb.css
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/language_data.js
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/minus.png
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/plus.png
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/pygments.css
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/searchtools.js
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/underscore.js
-OLD_FILES+=usr/share/doc/krb5/doc/html/about.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/k5srvutil.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/kadmin_local.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/kadmind.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/kdb5_ldap_util.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/kdb5_util.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/kprop.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/kpropd.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/kproplog.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/krb5kdc.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/ktutil.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/sserver.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/advanced/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/advanced/retiring-des.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/appl_servers.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/auth_indicator.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/backup_host.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/conf_files/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/conf_files/kadm5_acl.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/conf_files/kdc_conf.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/conf_files/krb5_conf.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/conf_ldap.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/database.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/dbtypes.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/dictionary.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/enctypes.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/env_variables.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/host_config.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/https.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/install.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/install_appl_srv.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/install_clients.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/install_kdc.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/lockout.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/otp.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/pkinit.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/princ_dns.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/realm_config.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/spake.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/troubleshoot.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/various_envs.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/gssapi.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/h5l_mit_apidiff.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/init_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/princ_handle.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_425_conv_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_524_conv_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_524_convert_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_address_compare.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_address_order.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_address_search.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_allow_weak_crypto.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_aname_to_localname.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_anonymous_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_anonymous_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_appdefault_boolean.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_appdefault_string.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_genaddrs.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_get_checksum_func.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getaddrs.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getauthenticator.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getflags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getkey_k.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getlocalseqnumber.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getlocalsubkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getrcache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getrecvsubkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getrecvsubkey_k.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getremoteseqnumber.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getremotesubkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getsendsubkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getsendsubkey_k.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_init.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_initivector.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_set_checksum_func.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_set_req_cksumtype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setaddrs.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setflags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setports.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setrcache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setrecvsubkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setrecvsubkey_k.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setsendsubkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setsendsubkey_k.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setuseruserkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_build_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_build_principal_alloc_va.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_build_principal_ext.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_build_principal_va.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_block_size.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_checksum_length.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_crypto_length.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_crypto_length_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_decrypt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_decrypt_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_derive_prfplus.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_encrypt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_encrypt_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_encrypt_length.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_enctype_compare.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_free_state.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_fx_cf2_simple.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_init_state.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_is_coll_proof_cksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_is_keyed_cksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_keyed_checksum_types.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_keylengths.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_make_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_make_checksum_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_make_random_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_padding_length.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_prf.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_prf_length.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_prfplus.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_random_add_entropy.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_random_make_octets.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_random_os_entropy.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_random_seed.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_random_to_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_string_to_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_string_to_key_with_params.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_valid_cksumtype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_valid_enctype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_verify_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_verify_checksum_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_calculate_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_cache_match.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_close.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_copy_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_default.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_default_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_destroy.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_dup.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_end_seq_get.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_gen_new.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_get_config.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_get_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_get_full_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_get_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_get_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_get_type.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_initialize.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_move.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_new_unique.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_next_cred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_remove_cred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_resolve.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_retrieve_cred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_select.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_set_config.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_set_default_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_set_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_start_seq_get.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_store_cred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_support_switch.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_switch.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cccol_cursor_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cccol_cursor_new.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cccol_cursor_next.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cccol_have_content.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_change_password.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_check_clockskew.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_checksum_size.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_chpw_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cksumtype_to_string.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_clear_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_addresses.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_authdata.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_authenticator.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_keyblock.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_keyblock_contents.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_ticket.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_decode_authdata_container.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_decode_ticket.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_decrypt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_deltat_to_string.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_eblock_enctype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_encode_authdata_container.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_encrypt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_encrypt_size.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_enctype_to_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_enctype_to_string.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_expand_hostname.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_find_authdata.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_finish_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_finish_random_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_addresses.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_ap_rep_enc_part.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_authdata.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_authenticator.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_checksum_contents.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_cksumtypes.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_cred_contents.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_data_contents.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_default_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_enctypes.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_error.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_host_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_keyblock.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_keyblock_contents.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_keytab_entry_contents.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_string.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_tgt_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_ticket.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_unparsed_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_fwd_tgt_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_credentials.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_credentials_renew.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_credentials_validate.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_default_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_etype_info.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_fallback_host_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_host_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_in_tkt_with_keytab.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_in_tkt_with_password.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_in_tkt_with_skey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_keytab.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_alloc.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_get_fast_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_init.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_address_list.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_anonymous.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_canonicalize.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_change_password_prompt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_etype_list.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_expire_callback.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_fast_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_forwardable.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_in_ccache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_out_ccache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_pa.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_pac_request.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_preauth_list.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_proxiable.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_renew_life.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_responder.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_salt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_tkt_life.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_password.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_permitted_enctypes.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_profile.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_prompt_types.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_renewed_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_server_rcache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_time_offsets.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_validated_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_context_profile.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_get.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_get_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_get_error.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_get_times.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_init.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_set_keytab.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_set_password.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_set_service.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_step.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_keyblock.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_random_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_secure_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_is_config_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_is_referral_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_is_thread_safe.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_create_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_decrypt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_decrypt_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_encrypt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_encrypt_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_free_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_key_enctype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_key_keyblock.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_make_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_make_checksum_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_prf.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_reference_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_verify_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_verify_checksum_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kdc_sign_ticket.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kdc_verify_ticket.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_add_entry.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_client_default.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_close.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_default.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_default_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_dup.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_end_seq_get.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_free_entry.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_get_entry.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_get_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_get_type.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_have_content.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_next_entry.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_read_service_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_remove_entry.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_resolve.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_start_seq_get.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kuserok.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_make_authdata_kdc_issued.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_marshal_credentials.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_merge_authdata.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_1cred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_error.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_ncred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_priv.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_rep.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_rep_dce.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_req.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_req_extended.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_safe.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_os_localaddr.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_add_buffer.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_get_buffer.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_get_client_info.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_get_types.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_init.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_parse.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_sign.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_sign_ext.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_verify.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_verify_ext.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_parse_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_parse_name_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_prepend_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_principal2salt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_principal_compare.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_principal_compare_any_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_principal_compare_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_process_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_prompter_posix.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_random_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_rd_cred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_rd_error.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_rd_priv.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_rd_rep.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_rd_rep_dce.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_rd_req.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_rd_safe.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_read_password.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_realm_compare.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_recvauth.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_recvauth_version.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_get_challenge.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_list_questions.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_otp_challenge_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_otp_get_challenge.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_otp_set_answer.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_pkinit_challenge_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_pkinit_get_challenge.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_pkinit_set_answer.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_set_answer.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_salttype_to_string.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_sendauth.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_server_decrypt_ticket_keytab.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_default_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_default_tgs_enctypes.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_kdc_recv_hook.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_kdc_send_hook.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_password.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_password_using_ccache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_principal_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_real_time.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_trace_callback.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_trace_filename.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_sname_match.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_sname_to_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_string_to_cksumtype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_string_to_deltat.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_string_to_enctype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_string_to_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_string_to_salttype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_string_to_timestamp.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_timeofday.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_timestamp_to_sfstring.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_timestamp_to_string.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_tkt_creds_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_tkt_creds_get.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_tkt_creds_get_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_tkt_creds_get_times.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_tkt_creds_init.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_tkt_creds_step.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_unmarshal_credentials.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_unparse_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_unparse_name_ext.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_unparse_name_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_unparse_name_flags_ext.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_us_timeofday.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_use_enctype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_verify_authdata_kdc_issued.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_verify_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_verify_init_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_verify_init_creds_opt_init.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_verify_init_creds_opt_set_ap_req_nofail.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_vprepend_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_vset_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_vwrap_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_wrap_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_ADDRPORT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_CHAOS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_DDP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_INET.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_INET6.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_IPPORT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_ISO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_IS_LOCAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_NETBIOS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_XNS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AD_TYPE_EXTERNAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AD_TYPE_FIELD_TYPE_MASK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AD_TYPE_REGISTERED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AD_TYPE_RESERVED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AP_OPTS_ETYPE_NEGOTIATION.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AP_OPTS_MUTUAL_REQUIRED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AP_OPTS_RESERVED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AP_OPTS_USE_SESSION_KEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AP_OPTS_USE_SUBKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AP_OPTS_WIRE_MASK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_CMAC_CAMELLIA128.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_CMAC_CAMELLIA256.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_CRC32.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_DESCBC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_HMAC_MD5_ARCFOUR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_96_AES128.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_96_AES256.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_DES3.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_HMAC_SHA256_128_AES128.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_HMAC_SHA384_192_AES256.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_MD5_HMAC_ARCFOUR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_NIST_SHA.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_RSA_MD4.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_RSA_MD4_DES.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_RSA_MD5.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_RSA_MD5_DES.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_SHA1.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_AES128_CTS_HMAC_SHA1_96.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_AES128_CTS_HMAC_SHA256_128.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_AES256_CTS_HMAC_SHA1_96.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_AES256_CTS_HMAC_SHA384_192.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_ARCFOUR_HMAC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_ARCFOUR_HMAC_EXP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_CAMELLIA128_CTS_CMAC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_CAMELLIA256_CTS_CMAC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES3_CBC_ENV.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES3_CBC_RAW.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES3_CBC_SHA.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES3_CBC_SHA1.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES_CBC_CRC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES_CBC_MD4.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES_CBC_MD5.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES_CBC_RAW.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES_HMAC_SHA1.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DSA_SHA1_CMS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_MD5_RSA_CMS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_NULL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_RC2_CBC_ENV.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_RSA_ENV.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_RSA_ES_OAEP_ENV.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_SHA1_RSA_CMS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_UNKNOWN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_ALLOW_POSTDATE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_CANONICALIZE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_CNAME_IN_ADDL_TKT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_DISABLE_TRANSITED_CHECK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_ENC_TKT_IN_SKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_FORWARDABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_FORWARDED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_POSTDATED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_PROXIABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_PROXY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_RENEW.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_RENEWABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_RENEWABLE_OK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_REQUEST_ANONYMOUS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_VALIDATE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_TKT_COMMON_MASK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_ALTAUTH_ATT_CHALLENGE_RESPONSE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_ANONYMOUS_PRINCSTR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_ANONYMOUS_REALMSTR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AP_REP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AP_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AS_REP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AS_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_AND_OR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_AP_OPTIONS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_AUTH_INDICATOR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_CAMMAC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_ETYPE_NEGOTIATION.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_FX_ARMOR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_IF_RELEVANT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_INITIAL_VERIFIED_CAS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_KDC_ISSUED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_MANDATORY_FOR_KDC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_OSF_DCE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_SESAME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_SIGNTICKET.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_WIN2K_PAC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_DO_SEQUENCE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_DO_TIME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_PERMIT_ALL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_RET_SEQUENCE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_RET_TIME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_USE_SUBKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_CHECKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_DATA.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_EMPTY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_HEADER.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_PADDING.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_SIGN_ONLY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_STREAM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_TRAILER.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CYBERSAFE_SECUREID.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_DOMAIN_X500_COMPRESS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_ENCPADATA_REQ_ENC_PA_REP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_ERROR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_FAST_REQUIRED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GC_CACHED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GC_CANONICALIZE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GC_CONSTRAINED_DELEGATION.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GC_FORWARDABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GC_NO_STORE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GC_NO_TRANSIT_CHECK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GC_USER_USER.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ADDRESS_LIST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ANONYMOUS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_CANONICALIZE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_CHG_PWD_PRMPT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ETYPE_LIST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_FORWARDABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_PREAUTH_LIST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_PROXIABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_RENEW_LIFE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_SALT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_TKT_LIFE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_INIT_CONTEXT_KDC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_INIT_CONTEXT_SECURE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_INIT_CREDS_STEP_FLAG_CONTINUE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_INT16_MAX.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_INT16_MIN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_INT32_MAX.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_INT32_MIN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AD_ITE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AD_KDCISSUED_CKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AD_MTE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AD_SIGNEDPATH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_APP_DATA_CKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_APP_DATA_ENCRYPT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AP_REP_ENCPART.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AP_REQ_AUTH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AP_REQ_AUTH_CKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AS_REP_ENCPART.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AS_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AS_REQ_PA_ENC_TS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_CAMMAC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_ENC_CHALLENGE_CLIENT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_ENC_CHALLENGE_KDC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_FAST_ENC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_FAST_FINISHED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_FAST_REP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_FAST_REQ_CHKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_MIC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_WRAP_INTEG.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_WRAP_PRIV.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_IAKERB_FINISHED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_KDC_REP_TICKET.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_KRB_CRED_ENCPART.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_KRB_ERROR_CKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_KRB_PRIV_ENCPART.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_KRB_SAFE_CKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_AS_FRESHNESS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_FX_COOKIE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_OTP_REQUEST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_PKINIT_KX.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_CKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_RESPONSE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_SPAKE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_TGS_REP_ENCPART_SESSKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_TGS_REP_ENCPART_SUBKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AD_SESSKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AD_SUBKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AUTH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AUTH_CKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_ACCESSDENIED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_AUTHERROR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_BAD_VERSION.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_HARDERROR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_INITIAL_FLAG_NEEDED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_MALFORMED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_SOFTERROR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_SUCCESS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ALL_ACCT_EXPTIME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ALL_LAST_INITIAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ALL_LAST_RENEWAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ALL_LAST_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ALL_LAST_TGT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ALL_LAST_TGT_ISSUED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ALL_PW_EXPTIME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_NONE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ONE_ACCT_EXPTIME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ONE_LAST_INITIAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ONE_LAST_RENEWAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ONE_LAST_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ONE_LAST_TGT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ONE_LAST_TGT_ISSUED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ONE_PW_EXPTIME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_ENTERPRISE_PRINCIPAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_ENT_PRINCIPAL_AND_ID.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_MS_PRINCIPAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_MS_PRINCIPAL_AND_ID.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_PRINCIPAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_SMTP_NAME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_SRV_HST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_SRV_INST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_SRV_XHST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_UID.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_UNKNOWN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_WELLKNOWN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_X500_PRINCIPAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_ATTRIBUTES_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_CLIENT_CLAIMS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_CLIENT_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_CREDENTIALS_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_DELEGATION_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_DEVICE_CLAIMS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_DEVICE_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_FULL_CHECKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_LOGON_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_PRIVSVR_CHECKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_REQUESTOR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_SERVER_CHECKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_TICKET_CHECKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_UPN_DNS_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_AFS3_SALT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_AP_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_AS_CHECKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_AS_FRESHNESS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_ENCRYPTED_CHALLENGE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_ENC_SANDIA_SECURID.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_ENC_TIMESTAMP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_ENC_UNIX_TIME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_ETYPE_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_ETYPE_INFO2.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_FOR_USER.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_FX_COOKIE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_FX_ERROR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_FX_FAST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_GET_FROM_TYPED_DATA.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_NONE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_OSF_DCE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_OTP_CHALLENGE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_OTP_PIN_CHANGE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_OTP_REQUEST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PAC_OPTIONS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PAC_REQUEST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PKINIT_KX.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PK_AS_REP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PK_AS_REP_OLD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PK_AS_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PK_AS_REQ_OLD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PW_SALT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_REDHAT_IDP_OAUTH2.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_REDHAT_PASSKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_REFERRAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_S4U_X509_USER.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SAM_CHALLENGE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SAM_CHALLENGE_2.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SAM_REDIRECT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SAM_RESPONSE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SAM_RESPONSE_2.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SESAME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SPAKE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SVR_REFERRAL_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_TGS_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_USE_SPECIFIED_KVNO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_CASEFOLD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_ENTERPRISE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_IGNORE_REALM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_UTF8.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_PARSE_ENTERPRISE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_PARSE_IGNORE_REALM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_PARSE_NO_DEF_REALM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_PARSE_NO_REALM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_PARSE_REQUIRE_REALM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_DISPLAY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_NO_REALM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_SHORT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRIV.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PROMPT_TYPE_NEW_PASSWORD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PROMPT_TYPE_PASSWORD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PROMPT_TYPE_PREAUTH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PVNO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_REALM_BRANCH_CHAR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RECVAUTH_BADAUTHVERS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RECVAUTH_SKIP_VERSION.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_REFERRAL_REALM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_COLLECT_PIN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_COLLECT_TOKEN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_NEXTOTP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_SEPARATE_PIN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_ALPHANUMERIC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_DECIMAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_HEXADECIMAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_COUNT_LOW.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_FINAL_TRY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_LOCKED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_QUESTION_OTP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_QUESTION_PASSWORD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_QUESTION_PKINIT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_SAFE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_SAM_MUST_PK_ENCRYPT_SAD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_SAM_SEND_ENCRYPTED_SAD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_SAM_USE_SAD_AS_KEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_2ND_TKT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_AUTHDATA.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_FLAGS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_FLAGS_EXACT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_IS_SKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_KTYPE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_SRV_NAMEONLY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_TIMES.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_TIMES_EXACT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_NOTICKET.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_OPENCLOSE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_SUPPORTED_KTYPES.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TGS_NAME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TGS_NAME_SIZE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TGS_REP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TGS_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TKT_CREDS_STEP_FLAG_CONTINUE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_VERIFY_INIT_CREDS_OPT_AP_REQ_NOFAIL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_WELLKNOWN_NAMESTR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/LR_TYPE_INTERPRETATION_MASK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/LR_TYPE_THIS_SERVER_ONLY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/MAX_KEYTAB_NAME_LEN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/MSEC_DIRBIT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/MSEC_VAL_MASK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/SALT_TYPE_AFS_LENGTH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/SALT_TYPE_NO_LENGTH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/THREEPARAMOPEN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_ANONYMOUS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_ENC_PA_REP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_FORWARDABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_FORWARDED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_HW_AUTH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_INITIAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_INVALID.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_MAY_POSTDATE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_OK_AS_DELEGATE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_POSTDATED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_PRE_AUTH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_PROXIABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_PROXY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_RENEWABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_TRANSIT_POLICY_CHECKED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/VALID_INT_BITS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/VALID_UINT_BITS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb524_convert_creds_kdc.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb524_init_ets.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_const.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_component.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_set_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_set_realm_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_set_realm_length.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_size.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_type.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_roundup.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_x.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_xc.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_address.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_addrtype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ap_rep.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ap_rep_enc_part.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ap_req.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_auth_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_authdata.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_authdatatype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_authenticator.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_boolean.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_cc_cursor.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ccache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_cccol_cursor.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_cksumtype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_const_pointer.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_const_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_cred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_cred_enc_part.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_cred_info.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_crypto_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_cryptotype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_deltat.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_enc_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_enc_kdc_rep_part.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_enc_tkt_part.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_encrypt_block.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_enctype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_error.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_error_code.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_expire_callback_func.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_get_init_creds_opt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_gic_opt_pa_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_init_creds_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_int16.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_int32.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_kdc_rep.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_kdc_req.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_keyblock.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_keytab.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_keytab_entry.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_keyusage.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_kt_cursor.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_kvno.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_last_req_entry.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_magic.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_mk_req_checksum_func.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_msgtype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_octet.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pa_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pa_pac_req.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pa_server_referral_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pa_svr_referral_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pac.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pointer.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_post_recv_fn.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pre_send_fn.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_preauthtype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_principal_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_prompt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_prompt_type.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_prompter_fct.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pwd_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_rcache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_replay_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_responder_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_responder_fn.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_responder_otp_challenge.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_responder_otp_tokeninfo.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_responder_pkinit_challenge.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_responder_pkinit_identity.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_response.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ticket.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ticket_times.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_timestamp.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_tkt_authent.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_tkt_creds_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_trace_callback.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_trace_info.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_transited.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_typed_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ui_2.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ui_4.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_verify_init_creds_opt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/passwd_phrase_element.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/y2038.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/basic/ccache_def.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/basic/date_format.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/basic/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/basic/keytab_def.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/basic/rcache_def.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/basic/stash_file_def.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/build/directory_org.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/build/doing_build.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/build/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/build/options2configure.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/build/osconf.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/build_this.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/copyright.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/formats/ccache_file_format.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/formats/cookie.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/formats/freshness_token.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/formats/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/formats/keytab_file_format.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/formats/rcache_file_format.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-A.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-C.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-E.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-K.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-L.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-M.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-P.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-R.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-S.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-T.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-V.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-all.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/mitK5defaults.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/mitK5features.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/mitK5license.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/objects.inv
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/ccselect.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/certauth.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/clpreauth.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/general.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/gssapi.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/hostrealm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/internal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/kadm5_auth.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/kadm5_hook.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/kdcpolicy.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/kdcpreauth.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/localauth.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/locate.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/profile.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/pwqual.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/resources.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/search.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/searchindex.js
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/pwd_mgmt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/tkt_mgmt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/kdestroy.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/kinit.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/klist.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/kpasswd.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/krb5-config.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/ksu.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/kswitch.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/kvno.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/sclient.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_config/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_config/k5identity.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_config/k5login.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_config/kerberos.html
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/GMakefile
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/LICRcyr2utf8.xdy
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/LICRlatin2utf8.xdy
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/LatinRules.xdy
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/admin.pdf
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/admin.tex
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/appdev.pdf
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/appdev.tex
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/basic.pdf
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/basic.tex
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/build.pdf
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/build.tex
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/latexmkjarc
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/latexmkrc
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/make.bat
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/plugindev.pdf
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/plugindev.tex
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/python.ist
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinx.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinx.xdy
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxhighlight.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxhowto.cls
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexadmonitions.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexcontainers.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexgraphics.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexindbibtoc.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexlists.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexliterals.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexnumfig.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexobjects.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexshadowbox.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexstyleheadings.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexstylepage.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexstyletext.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatextables.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxmanual.cls
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxmessages.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxoptionsgeometry.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxoptionshyperref.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxpackagecyrillic.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxpackagefootnote.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/user.pdf
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/user.tex
-OLD_FILES+=usr/share/et/et_c.awk
-OLD_FILES+=usr/share/et/et_h.awk
-OLD_FILES+=usr/share/examples/krb5/kdc.conf
-OLD_FILES+=usr/share/examples/krb5/krb5.conf
-OLD_FILES+=usr/share/examples/krb5/services.append
-OLD_FILES+=usr/share/licenses/krb5-1.21.3_1/LICENSE
-OLD_FILES+=usr/share/licenses/krb5-1.21.3_1/MIT
-OLD_FILES+=usr/share/licenses/krb5-1.21.3_1/catalog.mk
-OLD_FILES+=usr/share/locale/de/LC_MESSAGES/mit-krb5.mo
-OLD_FILES+=usr/share/locale/en_US/LC_MESSAGES/mit-krb5.mo
-OLD_FILES+=usr/share/locale/ka/LC_MESSAGES/mit-krb5.mo
-OLD_FILES+=usr/share/man/man1/compile_et.1.gz
-OLD_FILES+=usr/share/man/man1/k5srvutil.1.gz
-OLD_FILES+=usr/share/man/man1/kadmin.1.gz
-OLD_FILES+=usr/share/man/man1/kdestroy.1.gz
-OLD_FILES+=usr/share/man/man1/kinit.1.gz
-OLD_FILES+=usr/share/man/man1/klist.1.gz
-OLD_FILES+=usr/share/man/man1/kpasswd.1.gz
-OLD_FILES+=usr/share/man/man1/krb5-config.1.gz
-OLD_FILES+=usr/share/man/man1/ksu.1.gz
-OLD_FILES+=usr/share/man/man1/kswitch.1.gz
-OLD_FILES+=usr/share/man/man1/ktutil.1.gz
-OLD_FILES+=usr/share/man/man1/kvno.1.gz
-OLD_FILES+=usr/share/man/man1/sclient.1.gz
-OLD_FILES+=usr/share/man/man5/.k5identity.5.gz
-OLD_FILES+=usr/share/man/man5/.k5login.5.gz
-OLD_FILES+=usr/share/man/man5/k5identity.5.gz
-OLD_FILES+=usr/share/man/man5/k5login.5.gz
-OLD_FILES+=usr/share/man/man5/kadm5.acl.5.gz
-OLD_FILES+=usr/share/man/man5/kdc.conf.5.gz
-OLD_FILES+=usr/share/man/man5/krb5.conf.5.gz
-OLD_FILES+=usr/share/man/man7/kerberos.7.gz
-OLD_FILES+=usr/share/man/man8/kadmin.local.8.gz
OLD_FILES+=usr/share/man/man8/kadmind.8.gz
-OLD_FILES+=usr/share/man/man8/kdb5_ldap_util.8.gz
-OLD_FILES+=usr/share/man/man8/kdb5_util.8.gz
-OLD_FILES+=usr/share/man/man8/kprop.8.gz
-OLD_FILES+=usr/share/man/man8/kpropd.8.gz
-OLD_FILES+=usr/share/man/man8/kproplog.8.gz
-OLD_FILES+=usr/share/man/man8/krb5kdc.8.gz
-OLD_FILES+=usr/share/man/man8/sserver.8.gz
-.endif
-.else
-.if ${MK_MITKRB5} != "no"
-# Remove Heimdal because we want MIT KRB5 but not Heimdal
-OLD_FILES+=etc/rc.d/ipropd_master
-OLD_FILES+=etc/rc.d/ipropd_slave
+
+OLD_FILES+=usr/share/man/man3/com_err.3.gz
+OLD_FILES+=usr/share/man/man3/rpcsec_gss.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_get_error.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_get_mech_info.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_get_mechanisms.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_get_principal_name.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_get_versions.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_getcred.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_is_installed.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_max_data_length.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_mech_to_oid.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_oid_to_mech.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_qop_to_num.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_seccreate.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_set_callback.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_set_defaults.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_set_svc_name.3.gz
+OLD_FILES+=usr/share/man/man3/rpc_gss_svc_max_data_length.3.gz
+OLD_FILES+=usr/share/man/man5/krb5.conf.5.gz
+.endif # ${MK_KERBEROS} == "no"
+
+# Heimdal-specific files that don't exist in MIT Kerberos. These should be
+# removed if Kerberos is disabled, or if MIT Kerberos is selected.
+.if ${MK_KERBEROS} == "no" || ${MK_MITKRB5} != "no"
+
+# compile_et is a binary in Heimdal, but a shell script in MIT Kerberos.
+# When switching from Heimdal to MIT, we need to remove the debug symbols
+# explicitly.
+OLD_FILES+=usr/lib/debug/usr/bin/compile_et.debug
+
OLD_FILES+=usr/bin/asn1_compile
OLD_FILES+=usr/bin/hxtool
OLD_FILES+=usr/bin/kcc
@@ -4850,16 +2760,13 @@ OLD_FILES+=usr/include/asn1-common.h
OLD_FILES+=usr/include/asn1_err.h
OLD_FILES+=usr/include/base64.h
OLD_FILES+=usr/include/cms_asn1.h
-OLD_FILES+=usr/include/common.h
+OLD_FILES+=usr/include/com_right.h
OLD_FILES+=usr/include/crmf_asn1.h
OLD_FILES+=usr/include/der-private.h
OLD_FILES+=usr/include/der-protos.h
OLD_FILES+=usr/include/der.h
OLD_FILES+=usr/include/digest_asn1.h
-OLD_FILES+=usr/include/edwards25519_fiat.h
-OLD_FILES+=usr/include/edwards25519_tables.h
OLD_FILES+=usr/include/getarg.h
-OLD_FILES+=usr/include/groups.h
OLD_FILES+=usr/include/hdb-protos.h
OLD_FILES+=usr/include/hdb.h
OLD_FILES+=usr/include/hdb_asn1.h
@@ -4875,7 +2782,6 @@ OLD_FILES+=usr/include/hx509-private.h
OLD_FILES+=usr/include/hx509-protos.h
OLD_FILES+=usr/include/hx509.h
OLD_FILES+=usr/include/hx509_err.h
-OLD_FILES+=usr/include/iana.h
OLD_FILES+=usr/include/k524_err.h
OLD_FILES+=usr/include/kadm5/kadm5-private.h
OLD_FILES+=usr/include/kadm5/kadm5-protos.h
@@ -4908,84 +2814,42 @@ OLD_FILES+=usr/include/pkinit_asn1.h
OLD_FILES+=usr/include/resolve.h
OLD_FILES+=usr/include/rfc2459_asn1.h
OLD_FILES+=usr/include/roken-common.h
+OLD_FILES+=usr/include/roken.h
OLD_FILES+=usr/include/rtbl.h
-OLD_FILES+=usr/include/trace.h
-OLD_FILES+=usr/include/util.h
OLD_FILES+=usr/include/wind.h
OLD_FILES+=usr/include/wind_err.h
OLD_FILES+=usr/include/xdbm.h
OLD_FILES+=usr/lib/libasn1.a
OLD_FILES+=usr/lib/libasn1.so
-OLD_LIBS+=usr/lib/libasn1.so.11
-OLD_FILES+=usr/lib/libasn1_p.a
-OLD_LIBS+=usr/lib/libcom_err.so.5
-OLD_FILES+=usr/lib/libcom_err_p.a
-OLD_LIBS+=usr/lib/libgssapi_krb5.so.10
-OLD_FILES+=usr/lib/libgssapi_krb5_p.a
-OLD_FILES+=usr/lib/libgssapi_mech.a
-OLD_FILES+=usr/lib/libgssapi_mech.so
-OLD_LIBS+=usr/lib/libgssapi_mech.so.10
+OLD_FILES+=usr/lib/libgssapi.a
+OLD_FILES+=usr/lib/libgssapi.so
OLD_FILES+=usr/lib/libgssapi_ntlm.a
OLD_FILES+=usr/lib/libgssapi_ntlm.so
-OLD_LIBS+=usr/lib/libgssapi_ntlm.so.10
-OLD_FILES+=usr/lib/libgssapi_ntlm_p.a
OLD_FILES+=usr/lib/libgssapi_spnego.a
OLD_FILES+=usr/lib/libgssapi_spnego.so
-OLD_LIBS+=usr/lib/libgssapi_spnego.so.10
-OLD_FILES+=usr/lib/libgssapi_spnego_p.a
OLD_FILES+=usr/lib/libhdb.a
OLD_FILES+=usr/lib/libhdb.so
-OLD_LIBS+=usr/lib/libhdb.so.11
-OLD_FILES+=usr/lib/libhdb_p.a
OLD_FILES+=usr/lib/libheimbase.a
OLD_FILES+=usr/lib/libheimbase.so
-OLD_LIBS+=usr/lib/libheimbase.so.11
-OLD_FILES+=usr/lib/libheimbase_p.a
OLD_FILES+=usr/lib/libheimntlm.a
OLD_FILES+=usr/lib/libheimntlm.so
-OLD_LIBS+=usr/lib/libheimntlm.so.11
-OLD_FILES+=usr/lib/libheimntlm_p.a
-OLD_FILES+=usr/lib/libheimsqlite.a
-OLD_FILES+=usr/lib/libheimsqlite.so
-OLD_LIBS+=usr/lib/libheimsqlite.so.11
-OLD_FILES+=usr/lib/libheimsqlite_p.a
OLD_FILES+=usr/lib/libhx509.a
OLD_FILES+=usr/lib/libhx509.so
-OLD_LIBS+=usr/lib/libhx509.so.11
-OLD_FILES+=usr/lib/libhx509_p.a
OLD_FILES+=usr/lib/libkadm5clnt.a
-OLD_LIBS+=usr/lib/libkadm5clnt.so.11
-OLD_FILES+=usr/lib/libkadm5clnt_p.a
OLD_FILES+=usr/lib/libkadm5srv.a
OLD_FILES+=usr/lib/libkadm5srv.so
-OLD_LIBS+=usr/lib/libkadm5srv.so.11
-OLD_FILES+=usr/lib/libkadm5srv_p.a
OLD_FILES+=usr/lib/libkafs5.a
OLD_FILES+=usr/lib/libkafs5.so
-OLD_LIBS+=usr/lib/libkafs5.so.11
-OLD_FILES+=usr/lib/libkafs5_p.a
OLD_FILES+=usr/lib/libkdc.a
OLD_FILES+=usr/lib/libkdc.so
-OLD_LIBS+=usr/lib/libkdc.so.11
-OLD_FILES+=usr/lib/libkdc_p.a
-OLD_LIBS+=usr/lib/libkrb5.so.11
-OLD_FILES+=usr/lib/libkrb5_p.a
-OLD_FILES+=usr/lib/libroken.a
-OLD_FILES+=usr/lib/libroken.so
-OLD_LIBS+=usr/lib/libroken.so.11
-OLD_FILES+=usr/lib/libroken_p.a
-OLD_FILES+=usr/lib/libwind.a
-OLD_FILES+=usr/lib/libwind.so
-OLD_LIBS+=usr/lib/libwind.so.11
-OLD_FILES+=usr/lib/libwind_p.a
OLD_FILES+=usr/lib/libprivateheimipcc.a
OLD_FILES+=usr/lib/libprivateheimipcc.so
-OLD_LIBS+=usr/lib/libprivateheimipcc.so.11
-OLD_FILES+=usr/lib/libprivateheimipcc_p.a
OLD_FILES+=usr/lib/libprivateheimipcs.a
OLD_FILES+=usr/lib/libprivateheimipcs.so
-OLD_LIBS+=usr/lib/libprivateheimipcs.so.11
-OLD_FILES+=usr/lib/libprivateheimipcs_p.a
+OLD_FILES+=usr/lib/libroken.a
+OLD_FILES+=usr/lib/libroken.so
+OLD_FILES+=usr/lib/libwind.a
+OLD_FILES+=usr/lib/libwind.so
OLD_FILES+=usr/libexec/digest-service
OLD_FILES+=usr/libexec/hprop
OLD_FILES+=usr/libexec/hpropd
@@ -4997,11 +2861,51 @@ OLD_FILES+=usr/libexec/kdigest
OLD_FILES+=usr/libexec/kfd
OLD_FILES+=usr/libexec/kimpersonate
OLD_FILES+=usr/libexec/kpasswdd
+OLD_FILES+=usr/sbin/iprop-log
OLD_FILES+=usr/sbin/kstash
OLD_FILES+=usr/sbin/ktutil
-OLD_FILES+=usr/sbin/iprop-log
OLD_FILES+=usr/share/man/man1/kf.1.gz
+OLD_FILES+=usr/share/man/man1/kgetcred.1.gz
OLD_FILES+=usr/share/man/man3/HDB.3.gz
+OLD_FILES+=usr/share/man/man3/gss_accept_sec_context.3.gz
+OLD_FILES+=usr/share/man/man3/gss_acquire_cred.3.gz
+OLD_FILES+=usr/share/man/man3/gss_add_cred.3.gz
+OLD_FILES+=usr/share/man/man3/gss_add_oid_set_member.3.gz
+OLD_FILES+=usr/share/man/man3/gss_canonicalize_name.3.gz
+OLD_FILES+=usr/share/man/man3/gss_compare_name.3.gz
+OLD_FILES+=usr/share/man/man3/gss_context_time.3.gz
+OLD_FILES+=usr/share/man/man3/gss_create_empty_oid_set.3.gz
+OLD_FILES+=usr/share/man/man3/gss_delete_sec_context.3.gz
+OLD_FILES+=usr/share/man/man3/gss_display_name.3.gz
+OLD_FILES+=usr/share/man/man3/gss_display_status.3.gz
+OLD_FILES+=usr/share/man/man3/gss_duplicate_name.3.gz
+OLD_FILES+=usr/share/man/man3/gss_export_name.3.gz
+OLD_FILES+=usr/share/man/man3/gss_export_sec_context.3.gz
+OLD_FILES+=usr/share/man/man3/gss_get_mic.3.gz
+OLD_FILES+=usr/share/man/man3/gss_import_name.3.gz
+OLD_FILES+=usr/share/man/man3/gss_import_sec_context.3.gz
+OLD_FILES+=usr/share/man/man3/gss_indicate_mechs.3.gz
+OLD_FILES+=usr/share/man/man3/gss_init_sec_context.3.gz
+OLD_FILES+=usr/share/man/man3/gss_inquire_context.3.gz
+OLD_FILES+=usr/share/man/man3/gss_inquire_cred.3.gz
+OLD_FILES+=usr/share/man/man3/gss_inquire_cred_by_mech.3.gz
+OLD_FILES+=usr/share/man/man3/gss_inquire_mechs_for_name.3.gz
+OLD_FILES+=usr/share/man/man3/gss_inquire_names_for_mech.3.gz
+OLD_FILES+=usr/share/man/man3/gss_process_context_token.3.gz
+OLD_FILES+=usr/share/man/man3/gss_release_buffer.3.gz
+OLD_FILES+=usr/share/man/man3/gss_release_cred.3.gz
+OLD_FILES+=usr/share/man/man3/gss_release_name.3.gz
+OLD_FILES+=usr/share/man/man3/gss_release_oid_set.3.gz
+OLD_FILES+=usr/share/man/man3/gss_seal.3.gz
+OLD_FILES+=usr/share/man/man3/gss_sign.3.gz
+OLD_FILES+=usr/share/man/man3/gss_test_oid_set_member.3.gz
+OLD_FILES+=usr/share/man/man3/gss_unseal.3.gz
+OLD_FILES+=usr/share/man/man3/gss_unwrap.3.gz
+OLD_FILES+=usr/share/man/man3/gss_verify.3.gz
+OLD_FILES+=usr/share/man/man3/gss_verify_mic.3.gz
+OLD_FILES+=usr/share/man/man3/gss_wrap.3.gz
+OLD_FILES+=usr/share/man/man3/gss_wrap_size_limit.3.gz
+OLD_FILES+=usr/share/man/man3/gssapi.3.gz
OLD_FILES+=usr/share/man/man3/hdb__del.3.gz
OLD_FILES+=usr/share/man/man3/hdb__get.3.gz
OLD_FILES+=usr/share/man/man3/hdb__put.3.gz
@@ -5691,6 +3595,8 @@ OLD_FILES+=usr/share/man/man3/ntlm_core.3.gz
OLD_FILES+=usr/share/man/man3/ntlm_type1.3.gz
OLD_FILES+=usr/share/man/man3/ntlm_type2.3.gz
OLD_FILES+=usr/share/man/man3/ntlm_type3.3.gz
+OLD_FILES+=usr/share/man/man5/mech.5.gz
+OLD_FILES+=usr/share/man/man5/qop.5.gz
OLD_FILES+=usr/share/man/man8/hprop.8.gz
OLD_FILES+=usr/share/man/man8/hpropd.8.gz
OLD_FILES+=usr/share/man/man8/iprop-log.8.gz
@@ -5700,36 +3606,57 @@ OLD_FILES+=usr/share/man/man8/kcm.8.gz
OLD_FILES+=usr/share/man/man8/kdc.8.gz
OLD_FILES+=usr/share/man/man8/kdigest.8.gz
OLD_FILES+=usr/share/man/man8/kerberos.8.gz
+OLD_FILES+=usr/share/man/man8/kfd.8.gz
OLD_FILES+=usr/share/man/man8/kimpersonate.8.gz
OLD_FILES+=usr/share/man/man8/kpasswdd.8.gz
OLD_FILES+=usr/share/man/man8/kstash.8.gz
OLD_FILES+=usr/share/man/man8/ktutil.8.gz
OLD_FILES+=usr/share/man/man8/string2key.8.gz
OLD_FILES+=usr/share/man/man8/verify_krb5_conf.8.gz
-.else
-# Remove MIT KRB5 because we want Heimdal but not MIT
+
+OLD_LIBS+=usr/lib/libasn1.so.11
+OLD_LIBS+=usr/lib/libcom_err.so.5
+OLD_LIBS+=usr/lib/libgssapi.so.10
+OLD_LIBS+=usr/lib/libgssapi_krb5.so.10
+OLD_LIBS+=usr/lib/libgssapi_ntlm.so.10
+OLD_LIBS+=usr/lib/libgssapi_spnego.so.10
+OLD_LIBS+=usr/lib/libheimbase.so.11
+OLD_LIBS+=usr/lib/libheimntlm.so.11
+OLD_LIBS+=usr/lib/libhx509.so.11
+OLD_LIBS+=usr/lib/libhdb.so.11
+OLD_LIBS+=usr/lib/libkadm5clnt.so.11
+OLD_LIBS+=usr/lib/libkadm5srv.so.11
+OLD_LIBS+=usr/lib/libkafs5.so.11
+OLD_LIBS+=usr/lib/libkdc.so.11
+OLD_LIBS+=usr/lib/libkrb5.so.11
+OLD_LIBS+=usr/lib/libprivateheimipcc.so.11
+OLD_LIBS+=usr/lib/libprivateheimipcs.so.11
+OLD_LIBS+=usr/lib/libroken.so.11
+OLD_LIBS+=usr/lib/libwind.so.11
+.endif # ${MK_KERBEROS} == "no" || ${MK_MITKRB5} != "no"
+
+# MIT-specific files that don't exist in Heimdal. These should be removed if
+# Kerberos is disabled, or if Heimdal is selected.
+.if ${MK_KERBEROS} == "no" || ${MK_MITKRB5} == "no"
+OLD_DIRS+=usr/lib/debug/usr/lib/krb5/plugins/kdb
+OLD_DIRS+=usr/lib/debug/usr/lib/krb5/plugins/preauth
+OLD_DIRS+=usr/lib/debug/usr/lib/krb5/plugins/tls
+OLD_DIRS+=usr/lib/debug/usr/lib/krb5/plugins
+OLD_DIRS+=usr/lib/debug/usr/lib/krb5
+
+# Heimdal doesn't install debug symbols for these.
+OLD_FILES+=usr/lib/debug/usr/bin/klist.debug
+OLD_FILES+=usr/lib/debug/usr/bin/kswitch.debug
+
OLD_FILES+=usr/bin/gss-client
OLD_FILES+=usr/bin/k5srvutil
OLD_FILES+=usr/bin/ktutil
OLD_FILES+=usr/bin/kvno
OLD_FILES+=usr/bin/sclient
-OLD_FILES+=usr/bin/sim_client
-OLD_FILES+=usr/bin/uuclient
-OLD_FILES+=etc/rc.d/kpropd
-OLD_FILES+=usr/include/common.h
-OLD_FILES+=usr/include/edwards25519_fiat.h
-OLD_FILES+=usr/include/edwards25519_tables.h
-OLD_FILES+=usr/include/groups.h
-OLD_FILES+=usr/include/gssapi/gssapi_ext.h
-OLD_FILES+=usr/include/gssapi/gssapi_oid.h
OLD_FILES+=usr/include/gssapi/gssapi_alloc.h
+OLD_FILES+=usr/include/gssapi/gssapi_ext.h
OLD_FILES+=usr/include/gssapi/gssapi_generic.h
-OLD_FILES+=usr/include/gssapi/gssapi_spnego.h
-OLD_FILES+=usr/include/gssapi/gssapi_asn1-priv.h
-OLD_FILES+=usr/include/gssapi/spnego_asn1-priv.h
-OLD_FILES+=usr/include/gssapi/gssapi_asn1.h
-OLD_FILES+=usr/include/gssapi/gssapi_ntlm.h
-OLD_FILES+=usr/include/gssapi/spnego_asn1.h
+OLD_FILES+=usr/include/gssapi/mechglue.h
OLD_FILES+=usr/include/gssrpc/auth.h
OLD_FILES+=usr/include/gssrpc/auth_gss.h
OLD_FILES+=usr/include/gssrpc/auth_gssapi.h
@@ -5746,7 +3673,6 @@ OLD_FILES+=usr/include/gssrpc/svc.h
OLD_FILES+=usr/include/gssrpc/svc_auth.h
OLD_FILES+=usr/include/gssrpc/types.h
OLD_FILES+=usr/include/gssrpc/xdr.h
-OLD_FILES+=usr/include/iana.h
OLD_FILES+=usr/include/kadm5/chpass_util_strings.h
OLD_FILES+=usr/include/kadm5/kadm_err.h
OLD_FILES+=usr/include/kdb.h
@@ -5754,1118 +3680,72 @@ OLD_FILES+=usr/include/krad.h
OLD_FILES+=usr/include/krb5/ccselect_plugin.h
OLD_FILES+=usr/include/krb5/certauth_plugin.h
OLD_FILES+=usr/include/krb5/clpreauth_plugin.h
+OLD_FILES+=usr/include/krb5/gssapi_err_generic.h
+OLD_FILES+=usr/include/krb5/gssapi_err_krb5.h
OLD_FILES+=usr/include/krb5/hostrealm_plugin.h
OLD_FILES+=usr/include/krb5/kadm5_auth_plugin.h
OLD_FILES+=usr/include/krb5/kadm5_hook_plugin.h
OLD_FILES+=usr/include/krb5/kdcpolicy_plugin.h
OLD_FILES+=usr/include/krb5/kdcpreauth_plugin.h
+OLD_FILES+=usr/include/krb5/krb5.h
OLD_FILES+=usr/include/krb5/localauth_plugin.h
OLD_FILES+=usr/include/krb5/plugin.h
OLD_FILES+=usr/include/krb5/preauth_plugin.h
OLD_FILES+=usr/include/krb5/pwqual_plugin.h
OLD_FILES+=usr/include/profile.h
-OLD_FILES+=usr/include/trace.h
-OLD_FILES+=usr/include/util.h
OLD_FILES+=usr/include/verto-module.h
OLD_FILES+=usr/include/verto.h
OLD_FILES+=usr/lib/krb5/plugins/kdb/db2.so
+OLD_FILES+=usr/lib/krb5/plugins/kdb/db2.so.122
OLD_FILES+=usr/lib/krb5/plugins/preauth/otp.so
+OLD_FILES+=usr/lib/krb5/plugins/preauth/otp.so.122
OLD_FILES+=usr/lib/krb5/plugins/preauth/pkinit.so
+OLD_FILES+=usr/lib/krb5/plugins/preauth/pkinit.so.122
OLD_FILES+=usr/lib/krb5/plugins/preauth/spake.so
+OLD_FILES+=usr/lib/krb5/plugins/preauth/spake.so.122
OLD_FILES+=usr/lib/krb5/plugins/preauth/test.so
+OLD_FILES+=usr/lib/krb5/plugins/preauth/test.so.122
OLD_FILES+=usr/lib/krb5/plugins/tls/k5tls.so
-OLD_LIBS+=usr/lib/libcom_err.so.122
-OLD_LIBS+=usr/lib/libgssapi_krb5.so.122
+OLD_FILES+=usr/lib/krb5/plugins/tls/k5tls.so.122
OLD_FILES+=usr/lib/libgssrpc.a
OLD_FILES+=usr/lib/libgssrpc.so
-OLD_LIBS+=usr/lib/libgssrpc.so.122
OLD_FILES+=usr/lib/libk5crypto.a
OLD_FILES+=usr/lib/libk5crypto.so
-OLD_LIBS+=usr/lib/libk5crypto.so.122
OLD_FILES+=usr/lib/libkadm5clnt_mit.a
OLD_FILES+=usr/lib/libkadm5clnt_mit.so
-OLD_LIBS+=usr/lib/libkadm5clnt_mit.so.122
OLD_FILES+=usr/lib/libkadm5srv_mit.a
OLD_FILES+=usr/lib/libkadm5srv_mit.so
-OLD_LIBS+=usr/lib/libkadm5srv_mit.so.122
OLD_FILES+=usr/lib/libkdb5.a
OLD_FILES+=usr/lib/libkdb5.so
-OLD_LIBS+=usr/lib/libkdb5.so.122
-OLD_FILES+=usr/lib/libkrad.so
OLD_FILES+=usr/lib/libkrad.a
-OLD_LIBS+=usr/lib/libkrad.so.122
-OLD_LIBS+=usr/lib/libkrb5.so.122
+OLD_FILES+=usr/lib/libkrad.so
OLD_FILES+=usr/lib/libkrb5profile.a
OLD_FILES+=usr/lib/libkrb5profile.so
-OLD_LIBS+=usr/lib/libkrb5profile.so.122
OLD_FILES+=usr/lib/libkrb5support.a
OLD_FILES+=usr/lib/libkrb5support.so
-OLD_LIBS+=usr/lib/libkrb5support.so.122
OLD_FILES+=usr/lib/libverto.a
OLD_FILES+=usr/lib/libverto.so
-OLD_LIBS+=usr/lib/libverto.so.122
OLD_FILES+=usr/libdata/pkgconfig/gssrpc.pc
-OLD_FILES+=usr/libdata/pkgconfig/kadm-client.pc
OLD_FILES+=usr/libdata/pkgconfig/kadm-server.pc
+OLD_FILES+=usr/libdata/pkgconfig/kadm-client.pc
OLD_FILES+=usr/libdata/pkgconfig/kdb.pc
OLD_FILES+=usr/libdata/pkgconfig/krb5-gssapi.pc
OLD_FILES+=usr/libdata/pkgconfig/krb5.pc
-OLD_FILES+=usr/libdata/pkgconfig/mit-krb5-gssapi.pc
OLD_FILES+=usr/libdata/pkgconfig/mit-krb5.pc
+OLD_FILES+=usr/libdata/pkgconfig/mit-krb5-gssapi.pc
+OLD_FILES+=usr/libexec/kprop
+OLD_FILES+=usr/libexec/kpropd
+OLD_FILES+=usr/libexec/kproplog
+OLD_FILES+=usr/libexec/krb5kdc
OLD_FILES+=usr/sbin/gss-server
OLD_FILES+=usr/sbin/kadmin.local
-OLD_FILES+=usr/sbin/kadmind
OLD_FILES+=usr/sbin/kdb5_util
-OLD_FILES+=usr/sbin/kprop
-OLD_FILES+=usr/sbin/kpropd
-OLD_FILES+=usr/sbin/kproplog
-OLD_FILES+=usr/sbin/krb5-send-pr
-OLD_FILES+=usr/sbin/krb5kdc
OLD_FILES+=usr/sbin/sim_server
-OLD_FILES+=usr/sbin/sserver
-OLD_FILES+=usr/sbin/uuserver
-OLD_FILES+=usr/share/doc/krb5/doc/html/.buildinfo
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/agogo.css
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/basic.css
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/bgfooter.png
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/bgtop.png
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/doctools.js
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/documentation_options.js
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/file.png
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/jquery.js
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/kerb.css
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/language_data.js
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/minus.png
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/plus.png
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/pygments.css
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/searchtools.js
-OLD_FILES+=usr/share/doc/krb5/doc/html/_static/underscore.js
-OLD_FILES+=usr/share/doc/krb5/doc/html/about.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/k5srvutil.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/kadmin_local.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/kadmind.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/kdb5_ldap_util.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/kdb5_util.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/kprop.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/kpropd.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/kproplog.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/krb5kdc.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/ktutil.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/admin_commands/sserver.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/advanced/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/advanced/retiring-des.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/appl_servers.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/auth_indicator.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/backup_host.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/conf_files/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/conf_files/kadm5_acl.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/conf_files/kdc_conf.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/conf_files/krb5_conf.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/conf_ldap.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/database.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/dbtypes.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/dictionary.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/enctypes.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/env_variables.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/host_config.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/https.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/install.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/install_appl_srv.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/install_clients.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/install_kdc.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/lockout.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/otp.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/pkinit.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/princ_dns.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/realm_config.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/spake.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/troubleshoot.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/admin/various_envs.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/gssapi.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/h5l_mit_apidiff.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/init_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/princ_handle.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_425_conv_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_524_conv_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_524_convert_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_address_compare.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_address_order.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_address_search.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_allow_weak_crypto.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_aname_to_localname.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_anonymous_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_anonymous_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_appdefault_boolean.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_appdefault_string.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_genaddrs.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_get_checksum_func.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getaddrs.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getauthenticator.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getflags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getkey_k.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getlocalseqnumber.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getlocalsubkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getrcache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getrecvsubkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getrecvsubkey_k.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getremoteseqnumber.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getremotesubkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getsendsubkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_getsendsubkey_k.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_init.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_initivector.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_set_checksum_func.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_set_req_cksumtype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setaddrs.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setflags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setports.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setrcache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setrecvsubkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setrecvsubkey_k.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setsendsubkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setsendsubkey_k.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_auth_con_setuseruserkey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_build_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_build_principal_alloc_va.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_build_principal_ext.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_build_principal_va.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_block_size.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_checksum_length.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_crypto_length.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_crypto_length_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_decrypt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_decrypt_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_derive_prfplus.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_encrypt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_encrypt_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_encrypt_length.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_enctype_compare.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_free_state.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_fx_cf2_simple.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_init_state.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_is_coll_proof_cksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_is_keyed_cksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_keyed_checksum_types.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_keylengths.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_make_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_make_checksum_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_make_random_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_padding_length.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_prf.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_prf_length.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_prfplus.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_random_add_entropy.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_random_make_octets.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_random_os_entropy.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_random_seed.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_random_to_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_string_to_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_string_to_key_with_params.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_valid_cksumtype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_valid_enctype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_verify_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_c_verify_checksum_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_calculate_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_cache_match.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_close.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_copy_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_default.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_default_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_destroy.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_dup.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_end_seq_get.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_gen_new.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_get_config.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_get_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_get_full_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_get_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_get_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_get_type.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_initialize.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_move.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_new_unique.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_next_cred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_remove_cred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_resolve.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_retrieve_cred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_select.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_set_config.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_set_default_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_set_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_start_seq_get.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_store_cred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_support_switch.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cc_switch.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cccol_cursor_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cccol_cursor_new.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cccol_cursor_next.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cccol_have_content.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_change_password.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_check_clockskew.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_checksum_size.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_chpw_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_cksumtype_to_string.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_clear_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_addresses.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_authdata.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_authenticator.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_keyblock.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_keyblock_contents.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_copy_ticket.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_decode_authdata_container.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_decode_ticket.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_decrypt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_deltat_to_string.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_eblock_enctype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_encode_authdata_container.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_encrypt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_encrypt_size.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_enctype_to_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_enctype_to_string.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_expand_hostname.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_find_authdata.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_finish_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_finish_random_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_addresses.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_ap_rep_enc_part.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_authdata.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_authenticator.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_checksum_contents.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_cksumtypes.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_cred_contents.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_data_contents.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_default_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_enctypes.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_error.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_host_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_keyblock.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_keyblock_contents.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_keytab_entry_contents.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_string.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_tgt_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_ticket.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_free_unparsed_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_fwd_tgt_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_credentials.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_credentials_renew.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_credentials_validate.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_default_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_etype_info.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_fallback_host_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_host_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_in_tkt_with_keytab.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_in_tkt_with_password.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_in_tkt_with_skey.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_keytab.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_alloc.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_get_fast_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_init.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_address_list.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_anonymous.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_canonicalize.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_change_password_prompt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_etype_list.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_expire_callback.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_fast_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_forwardable.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_in_ccache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_out_ccache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_pa.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_pac_request.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_preauth_list.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_proxiable.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_renew_life.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_responder.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_salt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_opt_set_tkt_life.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_init_creds_password.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_permitted_enctypes.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_profile.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_prompt_types.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_renewed_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_server_rcache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_time_offsets.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_get_validated_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_context_profile.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_get.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_get_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_get_error.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_get_times.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_init.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_set_keytab.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_set_password.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_set_service.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_creds_step.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_keyblock.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_random_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_init_secure_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_is_config_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_is_referral_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_is_thread_safe.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_create_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_decrypt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_decrypt_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_encrypt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_encrypt_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_free_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_key_enctype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_key_keyblock.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_make_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_make_checksum_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_prf.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_reference_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_verify_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_k_verify_checksum_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kdc_sign_ticket.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kdc_verify_ticket.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_add_entry.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_client_default.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_close.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_default.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_default_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_dup.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_end_seq_get.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_free_entry.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_get_entry.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_get_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_get_type.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_have_content.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_next_entry.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_read_service_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_remove_entry.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_resolve.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kt_start_seq_get.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_kuserok.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_make_authdata_kdc_issued.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_marshal_credentials.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_merge_authdata.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_1cred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_error.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_ncred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_priv.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_rep.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_rep_dce.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_req.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_req_extended.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_mk_safe.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_os_localaddr.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_add_buffer.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_get_buffer.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_get_client_info.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_get_types.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_init.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_parse.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_sign.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_sign_ext.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_verify.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_pac_verify_ext.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_parse_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_parse_name_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_prepend_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_principal2salt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_principal_compare.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_principal_compare_any_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_principal_compare_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_process_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_prompter_posix.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_random_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_rd_cred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_rd_error.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_rd_priv.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_rd_rep.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_rd_rep_dce.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_rd_req.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_rd_safe.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_read_password.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_realm_compare.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_recvauth.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_recvauth_version.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_get_challenge.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_list_questions.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_otp_challenge_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_otp_get_challenge.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_otp_set_answer.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_pkinit_challenge_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_pkinit_get_challenge.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_pkinit_set_answer.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_responder_set_answer.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_salttype_to_string.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_sendauth.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_server_decrypt_ticket_keytab.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_default_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_default_tgs_enctypes.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_kdc_recv_hook.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_kdc_send_hook.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_password.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_password_using_ccache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_principal_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_real_time.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_trace_callback.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_set_trace_filename.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_sname_match.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_sname_to_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_string_to_cksumtype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_string_to_deltat.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_string_to_enctype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_string_to_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_string_to_salttype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_string_to_timestamp.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_timeofday.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_timestamp_to_sfstring.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_timestamp_to_string.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_tkt_creds_free.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_tkt_creds_get.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_tkt_creds_get_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_tkt_creds_get_times.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_tkt_creds_init.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_tkt_creds_step.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_unmarshal_credentials.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_unparse_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_unparse_name_ext.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_unparse_name_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_unparse_name_flags_ext.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_us_timeofday.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_use_enctype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_verify_authdata_kdc_issued.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_verify_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_verify_init_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_verify_init_creds_opt_init.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_verify_init_creds_opt_set_ap_req_nofail.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_vprepend_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_vset_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_vwrap_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/api/krb5_wrap_error_message.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_ADDRPORT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_CHAOS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_DDP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_INET.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_INET6.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_IPPORT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_ISO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_IS_LOCAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_NETBIOS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ADDRTYPE_XNS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AD_TYPE_EXTERNAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AD_TYPE_FIELD_TYPE_MASK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AD_TYPE_REGISTERED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AD_TYPE_RESERVED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AP_OPTS_ETYPE_NEGOTIATION.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AP_OPTS_MUTUAL_REQUIRED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AP_OPTS_RESERVED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AP_OPTS_USE_SESSION_KEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AP_OPTS_USE_SUBKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/AP_OPTS_WIRE_MASK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_CMAC_CAMELLIA128.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_CMAC_CAMELLIA256.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_CRC32.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_DESCBC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_HMAC_MD5_ARCFOUR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_96_AES128.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_96_AES256.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_DES3.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_HMAC_SHA256_128_AES128.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_HMAC_SHA384_192_AES256.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_MD5_HMAC_ARCFOUR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_NIST_SHA.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_RSA_MD4.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_RSA_MD4_DES.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_RSA_MD5.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_RSA_MD5_DES.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/CKSUMTYPE_SHA1.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_AES128_CTS_HMAC_SHA1_96.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_AES128_CTS_HMAC_SHA256_128.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_AES256_CTS_HMAC_SHA1_96.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_AES256_CTS_HMAC_SHA384_192.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_ARCFOUR_HMAC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_ARCFOUR_HMAC_EXP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_CAMELLIA128_CTS_CMAC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_CAMELLIA256_CTS_CMAC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES3_CBC_ENV.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES3_CBC_RAW.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES3_CBC_SHA.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES3_CBC_SHA1.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES_CBC_CRC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES_CBC_MD4.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES_CBC_MD5.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES_CBC_RAW.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DES_HMAC_SHA1.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_DSA_SHA1_CMS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_MD5_RSA_CMS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_NULL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_RC2_CBC_ENV.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_RSA_ENV.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_RSA_ES_OAEP_ENV.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_SHA1_RSA_CMS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/ENCTYPE_UNKNOWN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_ALLOW_POSTDATE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_CANONICALIZE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_CNAME_IN_ADDL_TKT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_DISABLE_TRANSITED_CHECK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_ENC_TKT_IN_SKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_FORWARDABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_FORWARDED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_POSTDATED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_PROXIABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_PROXY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_RENEW.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_RENEWABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_RENEWABLE_OK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_REQUEST_ANONYMOUS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_OPT_VALIDATE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KDC_TKT_COMMON_MASK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_ALTAUTH_ATT_CHALLENGE_RESPONSE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_ANONYMOUS_PRINCSTR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_ANONYMOUS_REALMSTR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AP_REP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AP_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AS_REP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AS_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_AND_OR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_AP_OPTIONS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_AUTH_INDICATOR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_CAMMAC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_ETYPE_NEGOTIATION.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_FX_ARMOR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_IF_RELEVANT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_INITIAL_VERIFIED_CAS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_KDC_ISSUED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_MANDATORY_FOR_KDC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_OSF_DCE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_SESAME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_SIGNTICKET.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTHDATA_WIN2K_PAC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_DO_SEQUENCE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_DO_TIME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_PERMIT_ALL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_RET_SEQUENCE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_RET_TIME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_AUTH_CONTEXT_USE_SUBKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_CHECKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_DATA.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_EMPTY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_HEADER.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_PADDING.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_SIGN_ONLY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_STREAM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CRYPTO_TYPE_TRAILER.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_CYBERSAFE_SECUREID.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_DOMAIN_X500_COMPRESS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_ENCPADATA_REQ_ENC_PA_REP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_ERROR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_FAST_REQUIRED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GC_CACHED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GC_CANONICALIZE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GC_CONSTRAINED_DELEGATION.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GC_FORWARDABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GC_NO_STORE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GC_NO_TRANSIT_CHECK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GC_USER_USER.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ADDRESS_LIST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ANONYMOUS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_CANONICALIZE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_CHG_PWD_PRMPT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ETYPE_LIST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_FORWARDABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_PREAUTH_LIST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_PROXIABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_RENEW_LIFE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_SALT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_TKT_LIFE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_INIT_CONTEXT_KDC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_INIT_CONTEXT_SECURE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_INIT_CREDS_STEP_FLAG_CONTINUE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_INT16_MAX.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_INT16_MIN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_INT32_MAX.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_INT32_MIN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AD_ITE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AD_KDCISSUED_CKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AD_MTE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AD_SIGNEDPATH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_APP_DATA_CKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_APP_DATA_ENCRYPT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AP_REP_ENCPART.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AP_REQ_AUTH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AP_REQ_AUTH_CKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AS_REP_ENCPART.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AS_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_AS_REQ_PA_ENC_TS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_CAMMAC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_ENC_CHALLENGE_CLIENT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_ENC_CHALLENGE_KDC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_FAST_ENC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_FAST_FINISHED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_FAST_REP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_FAST_REQ_CHKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_MIC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_WRAP_INTEG.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_WRAP_PRIV.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_IAKERB_FINISHED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_KDC_REP_TICKET.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_KRB_CRED_ENCPART.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_KRB_ERROR_CKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_KRB_PRIV_ENCPART.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_KRB_SAFE_CKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_AS_FRESHNESS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_FX_COOKIE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_OTP_REQUEST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_PKINIT_KX.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_CKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_RESPONSE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_SPAKE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_TGS_REP_ENCPART_SESSKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_TGS_REP_ENCPART_SUBKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AD_SESSKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AD_SUBKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AUTH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AUTH_CKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_ACCESSDENIED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_AUTHERROR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_BAD_VERSION.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_HARDERROR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_INITIAL_FLAG_NEEDED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_MALFORMED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_SOFTERROR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_KPASSWD_SUCCESS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ALL_ACCT_EXPTIME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ALL_LAST_INITIAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ALL_LAST_RENEWAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ALL_LAST_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ALL_LAST_TGT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ALL_LAST_TGT_ISSUED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ALL_PW_EXPTIME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_NONE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ONE_ACCT_EXPTIME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ONE_LAST_INITIAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ONE_LAST_RENEWAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ONE_LAST_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ONE_LAST_TGT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ONE_LAST_TGT_ISSUED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_LRQ_ONE_PW_EXPTIME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_ENTERPRISE_PRINCIPAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_ENT_PRINCIPAL_AND_ID.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_MS_PRINCIPAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_MS_PRINCIPAL_AND_ID.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_PRINCIPAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_SMTP_NAME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_SRV_HST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_SRV_INST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_SRV_XHST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_UID.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_UNKNOWN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_WELLKNOWN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_NT_X500_PRINCIPAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_ATTRIBUTES_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_CLIENT_CLAIMS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_CLIENT_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_CREDENTIALS_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_DELEGATION_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_DEVICE_CLAIMS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_DEVICE_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_FULL_CHECKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_LOGON_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_PRIVSVR_CHECKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_REQUESTOR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_SERVER_CHECKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_TICKET_CHECKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PAC_UPN_DNS_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_AFS3_SALT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_AP_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_AS_CHECKSUM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_AS_FRESHNESS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_ENCRYPTED_CHALLENGE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_ENC_SANDIA_SECURID.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_ENC_TIMESTAMP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_ENC_UNIX_TIME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_ETYPE_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_ETYPE_INFO2.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_FOR_USER.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_FX_COOKIE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_FX_ERROR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_FX_FAST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_GET_FROM_TYPED_DATA.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_NONE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_OSF_DCE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_OTP_CHALLENGE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_OTP_PIN_CHANGE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_OTP_REQUEST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PAC_OPTIONS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PAC_REQUEST.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PKINIT_KX.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PK_AS_REP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PK_AS_REP_OLD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PK_AS_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PK_AS_REQ_OLD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_PW_SALT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_REDHAT_IDP_OAUTH2.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_REDHAT_PASSKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_REFERRAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_S4U_X509_USER.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SAM_CHALLENGE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SAM_CHALLENGE_2.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SAM_REDIRECT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SAM_RESPONSE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SAM_RESPONSE_2.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SESAME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SPAKE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_SVR_REFERRAL_INFO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_TGS_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PADATA_USE_SPECIFIED_KVNO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_CASEFOLD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_ENTERPRISE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_IGNORE_REALM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_UTF8.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_PARSE_ENTERPRISE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_PARSE_IGNORE_REALM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_PARSE_NO_DEF_REALM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_PARSE_NO_REALM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_PARSE_REQUIRE_REALM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_DISPLAY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_NO_REALM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_SHORT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PRIV.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PROMPT_TYPE_NEW_PASSWORD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PROMPT_TYPE_PASSWORD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PROMPT_TYPE_PREAUTH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_PVNO.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_REALM_BRANCH_CHAR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RECVAUTH_BADAUTHVERS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RECVAUTH_SKIP_VERSION.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_REFERRAL_REALM.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_COLLECT_PIN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_COLLECT_TOKEN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_NEXTOTP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_SEPARATE_PIN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_ALPHANUMERIC.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_DECIMAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_HEXADECIMAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_COUNT_LOW.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_FINAL_TRY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_LOCKED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_QUESTION_OTP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_QUESTION_PASSWORD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_RESPONDER_QUESTION_PKINIT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_SAFE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_SAM_MUST_PK_ENCRYPT_SAD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_SAM_SEND_ENCRYPTED_SAD.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_SAM_USE_SAD_AS_KEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_2ND_TKT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_AUTHDATA.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_FLAGS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_FLAGS_EXACT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_IS_SKEY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_KTYPE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_SRV_NAMEONLY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_TIMES.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_MATCH_TIMES_EXACT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_NOTICKET.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_OPENCLOSE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TC_SUPPORTED_KTYPES.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TGS_NAME.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TGS_NAME_SIZE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TGS_REP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TGS_REQ.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_TKT_CREDS_STEP_FLAG_CONTINUE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_VERIFY_INIT_CREDS_OPT_AP_REQ_NOFAIL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/KRB5_WELLKNOWN_NAMESTR.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/LR_TYPE_INTERPRETATION_MASK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/LR_TYPE_THIS_SERVER_ONLY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/MAX_KEYTAB_NAME_LEN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/MSEC_DIRBIT.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/MSEC_VAL_MASK.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/SALT_TYPE_AFS_LENGTH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/SALT_TYPE_NO_LENGTH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/THREEPARAMOPEN.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_ANONYMOUS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_ENC_PA_REP.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_FORWARDABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_FORWARDED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_HW_AUTH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_INITIAL.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_INVALID.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_MAY_POSTDATE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_OK_AS_DELEGATE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_POSTDATED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_PRE_AUTH.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_PROXIABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_PROXY.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_RENEWABLE.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/TKT_FLG_TRANSIT_POLICY_CHECKED.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/VALID_INT_BITS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/VALID_UINT_BITS.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb524_convert_creds_kdc.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb524_init_ets.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_const.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_component.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_name.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_set_realm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_set_realm_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_set_realm_length.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_size.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_princ_type.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_roundup.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_x.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/macros/krb5_xc.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_address.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_addrtype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ap_rep.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ap_rep_enc_part.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ap_req.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_auth_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_authdata.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_authdatatype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_authenticator.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_boolean.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_cc_cursor.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ccache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_cccol_cursor.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_checksum.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_cksumtype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_const_pointer.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_const_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_cred.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_cred_enc_part.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_cred_info.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_creds.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_crypto_iov.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_cryptotype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_deltat.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_enc_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_enc_kdc_rep_part.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_enc_tkt_part.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_encrypt_block.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_enctype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_error.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_error_code.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_expire_callback_func.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_flags.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_get_init_creds_opt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_gic_opt_pa_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_init_creds_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_int16.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_int32.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_kdc_rep.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_kdc_req.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_key.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_keyblock.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_keytab.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_keytab_entry.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_keyusage.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_kt_cursor.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_kvno.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_last_req_entry.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_magic.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_mk_req_checksum_func.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_msgtype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_octet.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pa_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pa_pac_req.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pa_server_referral_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pa_svr_referral_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pac.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pointer.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_post_recv_fn.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pre_send_fn.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_preauthtype.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_principal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_principal_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_prompt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_prompt_type.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_prompter_fct.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_pwd_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_rcache.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_replay_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_responder_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_responder_fn.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_responder_otp_challenge.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_responder_otp_tokeninfo.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_responder_pkinit_challenge.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_responder_pkinit_identity.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_response.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ticket.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ticket_times.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_timestamp.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_tkt_authent.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_tkt_creds_context.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_trace_callback.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_trace_info.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_transited.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_typed_data.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ui_2.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_ui_4.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/krb5_verify_init_creds_opt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/refs/types/passwd_phrase_element.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/appdev/y2038.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/basic/ccache_def.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/basic/date_format.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/basic/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/basic/keytab_def.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/basic/rcache_def.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/basic/stash_file_def.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/build/directory_org.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/build/doing_build.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/build/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/build/options2configure.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/build/osconf.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/build_this.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/copyright.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/formats/ccache_file_format.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/formats/cookie.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/formats/freshness_token.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/formats/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/formats/keytab_file_format.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/formats/rcache_file_format.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-A.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-C.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-E.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-K.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-L.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-M.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-P.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-R.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-S.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-T.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-V.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex-all.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/genindex.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/mitK5defaults.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/mitK5features.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/mitK5license.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/objects.inv
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/ccselect.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/certauth.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/clpreauth.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/general.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/gssapi.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/hostrealm.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/internal.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/kadm5_auth.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/kadm5_hook.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/kdcpolicy.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/kdcpreauth.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/localauth.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/locate.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/profile.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/plugindev/pwqual.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/resources.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/search.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/searchindex.js
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/pwd_mgmt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/tkt_mgmt.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/kdestroy.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/kinit.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/klist.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/kpasswd.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/krb5-config.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/ksu.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/kswitch.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/kvno.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_commands/sclient.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_config/index.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_config/k5identity.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_config/k5login.html
-OLD_FILES+=usr/share/doc/krb5/doc/html/user/user_config/kerberos.html
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/GMakefile
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/LICRcyr2utf8.xdy
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/LICRlatin2utf8.xdy
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/LatinRules.xdy
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/admin.pdf
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/admin.tex
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/appdev.pdf
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/appdev.tex
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/basic.pdf
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/basic.tex
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/build.pdf
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/build.tex
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/latexmkjarc
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/latexmkrc
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/make.bat
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/plugindev.pdf
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/plugindev.tex
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/python.ist
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinx.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinx.xdy
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxhighlight.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxhowto.cls
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexadmonitions.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexcontainers.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexgraphics.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexindbibtoc.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexlists.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexliterals.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexnumfig.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexobjects.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexshadowbox.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexstyleheadings.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexstylepage.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatexstyletext.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxlatextables.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxmanual.cls
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxmessages.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxoptionsgeometry.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxoptionshyperref.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxpackagecyrillic.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/sphinxpackagefootnote.sty
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/user.pdf
-OLD_FILES+=usr/share/doc/krb5/doc/pdf/user.tex
-OLD_FILES+=usr/share/et/et_c.awk
OLD_FILES+=usr/share/et/et_h.awk
-OLD_FILES+=usr/share/examples/krb5/kdc.conf
-OLD_FILES+=usr/share/examples/krb5/krb5.conf
-OLD_FILES+=usr/share/examples/krb5/services.append
-OLD_FILES+=usr/share/licenses/krb5-1.21.3_1/LICENSE
-OLD_FILES+=usr/share/licenses/krb5-1.21.3_1/MIT
-OLD_FILES+=usr/share/licenses/krb5-1.21.3_1/catalog.mk
-OLD_FILES+=usr/share/locale/de/LC_MESSAGES/mit-krb5.mo
-OLD_FILES+=usr/share/locale/en_US/LC_MESSAGES/mit-krb5.mo
-OLD_FILES+=usr/share/locale/ka/LC_MESSAGES/mit-krb5.mo
+OLD_FILES+=usr/share/et/et_c.awk
OLD_FILES+=usr/share/man/man1/k5srvutil.1.gz
OLD_FILES+=usr/share/man/man1/kadmin.1.gz
+OLD_FILES+=usr/share/man/man1/ksu.1.gz
OLD_FILES+=usr/share/man/man1/ktutil.1.gz
OLD_FILES+=usr/share/man/man1/kvno.1.gz
OLD_FILES+=usr/share/man/man1/sclient.1.gz
@@ -6877,29 +3757,26 @@ OLD_FILES+=usr/share/man/man5/kadm5.acl.5.gz
OLD_FILES+=usr/share/man/man5/kdc.conf.5.gz
OLD_FILES+=usr/share/man/man7/kerberos.7.gz
OLD_FILES+=usr/share/man/man8/kadmin.local.8.gz
-OLD_FILES+=usr/share/man/man8/kdb5_ldap_util.8.gz
OLD_FILES+=usr/share/man/man8/kdb5_util.8.gz
OLD_FILES+=usr/share/man/man8/kprop.8.gz
OLD_FILES+=usr/share/man/man8/kpropd.8.gz
OLD_FILES+=usr/share/man/man8/kproplog.8.gz
OLD_FILES+=usr/share/man/man8/krb5kdc.8.gz
-OLD_FILES+=usr/share/man/man8/sserver.8.gz
-.endif
-.endif
+OLD_FILES+=usr/share/man/man8/pam-krb5.8.gz
-.if ${MK_KERBEROS_SUPPORT} == no
-.if ${MK_MITKRB5} == no
-OLD_FILES+=usr/bin/compile_et
-OLD_FILES+=usr/include/com_err.h
-OLD_FILES+=usr/include/com_right.h
-OLD_FILES+=usr/lib/libcom_err.a
-OLD_FILES+=usr/lib/libcom_err.so
-OLD_LIBS+=usr/lib/libcom_err.so.5
-OLD_FILES+=usr/lib/libcom_err_p.a
-OLD_FILES+=usr/share/man/man1/compile_et.1.gz
-OLD_FILES+=usr/share/man/man3/com_err.3.gz
-.endif
-.endif
+OLD_LIBS+=usr/lib/libcom_err.so.122
+OLD_LIBS+=usr/lib/libgssapi_krb5.so.122
+OLD_LIBS+=usr/lib/libgssrpc.so.122
+OLD_LIBS+=usr/lib/libk5crypto.so.122
+OLD_LIBS+=usr/lib/libkadm5clnt_mit.so.122
+OLD_LIBS+=usr/lib/libkadm5srv_mit.so.122
+OLD_LIBS+=usr/lib/libkdb5.so.122
+OLD_LIBS+=usr/lib/libkrad.so.122
+OLD_LIBS+=usr/lib/libkrb5.so.122
+OLD_LIBS+=usr/lib/libkrb5profile.so.122
+OLD_LIBS+=usr/lib/libkrb5support.so.122
+OLD_LIBS+=usr/lib/libverto.so.122
+.endif # ${MK_KERBEROS} == "no" || ${MK_MITKRB5} == "no"
.if ${MK_LDNS} == no
OLD_FILES+=usr/lib/libprivateldns.a
@@ -6916,11 +3793,14 @@ OLD_FILES+=usr/share/man/man1/host.1.gz
.endif
.if ${MK_LEGACY_CONSOLE} == no
+OLD_FILES+=etc/moused.conf
OLD_FILES+=etc/rc.d/moused
+OLD_FILES+=etc/rc.d/msconvd
OLD_FILES+=etc/rc.d/syscons
OLD_FILES+=usr/sbin/kbdcontrol
OLD_FILES+=usr/sbin/kbdmap
OLD_FILES+=usr/sbin/moused
+OLD_FILES+=usr/sbin/msconvd
OLD_FILES+=usr/sbin/vidcontrol
OLD_FILES+=usr/sbin/vidfont
OLD_FILES+=usr/share/man/man1/kbdcontrol.1.gz
@@ -6929,7 +3809,11 @@ OLD_FILES+=usr/share/man/man1/vidcontrol.1.gz
OLD_FILES+=usr/share/man/man1/vidfont.1.gz
OLD_FILES+=usr/share/man/man5/kbdmap.5.gz
OLD_FILES+=usr/share/man/man5/keymap.5.gz
+OLD_FILES+=usr/share/man/man5/moused.conf.5.gz
OLD_FILES+=usr/share/man/man8/moused.8.gz
+OLD_FILES+=usr/share/man/man8/msconvd.8.gz
+OLD_FILES+=usr/share/moused/5-generic-touchpad.quirks
+OLD_DIRS+=usr/share/moused
.endif
.for LIBCOMPAT libcompat in ${_ALL_LIBCOMPATS_libcompats}
diff --git a/tools/build/options/WITHOUT_GSSAPI b/tools/build/options/WITHOUT_GSSAPI
deleted file mode 100644
index 3b208b6edecd..000000000000
--- a/tools/build/options/WITHOUT_GSSAPI
+++ /dev/null
@@ -1 +0,0 @@
-Do not build libgssapi.
diff --git a/tools/build/options/WITHOUT_KERBEROS b/tools/build/options/WITHOUT_KERBEROS
index 98e1ffe3721d..e0301ee1d786 100644
--- a/tools/build/options/WITHOUT_KERBEROS
+++ b/tools/build/options/WITHOUT_KERBEROS
@@ -1 +1 @@
-Set this to not build Kerberos 5 (KTH Heimdal).
+Set this to not build Kerberos.
diff --git a/tools/build/options/WITH_CLEAN b/tools/build/options/WITH_CLEAN
index d5962258bcc0..0bb05e33371b 100644
--- a/tools/build/options/WITH_CLEAN
+++ b/tools/build/options/WITH_CLEAN
@@ -1 +1,4 @@
Clean before building world and/or kernel.
+Note that recording a new epoch in
+.Pa .clean_build_epoch
+in the root of the source tree will also force a clean world build.
diff --git a/tools/build/options/WITH_PTHREADS_ASSERTIONS b/tools/build/options/WITH_PTHREADS_ASSERTIONS
new file mode 100644
index 000000000000..03c15b76fb85
--- /dev/null
+++ b/tools/build/options/WITH_PTHREADS_ASSERTIONS
@@ -0,0 +1 @@
+Enable debugging assertions in pthreads library.
diff --git a/tools/build/options/makeman b/tools/build/options/makeman
index e0980d3be607..88ee5884d180 100755
--- a/tools/build/options/makeman
+++ b/tools/build/options/makeman
@@ -127,8 +127,8 @@ show()
exit 1
;;
esac
- requireds=`env -i ${make} -f ${srcdir}/share/mk/src.opts.mk \
- -V '${__REQUIRED_OPTIONS:ts,}'`
+ requireds=$(env -i ${make} -f ${srcdir}/share/mk/src.opts.mk \
+ -V 'REQUIRED_OPTIONS:ts,')
env -i ${make} .MAKE.MODE=normal "$@" showconfig __MAKE_CONF=/dev/null \
SRCCONF=/dev/null |
while read var _ val ; do
@@ -222,8 +222,11 @@ variables that control the aspects of how the system builds.
.Pp
The default location of
.Nm
-is
-.Pa /etc/src.conf ,
+is the top level of the source tree, or
+.Pa /etc/src.conf
+if no
+.Nm
+is found in the source tree itself,
though an alternative location can be specified in the
.Xr make 1
variable
diff --git a/tools/coccinelle/pseudofs-create.cocci b/tools/coccinelle/pseudofs-create.cocci
new file mode 100644
index 000000000000..ba5870f38732
--- /dev/null
+++ b/tools/coccinelle/pseudofs-create.cocci
@@ -0,0 +1,35 @@
+@ pfs_create_dir_ret_ident @
+ expression _pfn, E1, E2, E3, E4, E5, E6;
+@@
+-_pfn = pfs_create_dir(E1, E2, E3, E4, E5, E6);
++pfs_create_dir(E1, &_pfn, E2, E3, E4, E5, E6);
+
+@ pfs_create_file_ret @
+ expression _pfn, E1, E2, E3, E4, E5, E6, E7;
+@@
+-_pfn = pfs_create_file(E1, E2, E3, E4, E5, E6, E7);
++pfs_create_file(E1, &_pfn, E2, E3, E4, E5, E6, E7);
+
+@ pfs_create_link_ret @
+ expression _pfn, E1, E2, E3, E4, E5, E6, E7;
+@@
+-_pfn = pfs_create_link(E1, E2, E3, E4, E5, E6, E7);
++pfs_create_link(E1, &_pfn, E2, E3, E4, E5, E6, E7);
+
+@ pfs_create_dir_noret @
+ expression E1, E2, E3, E4, E5, E6;
+@@
+-pfs_create_dir(E1, E2, E3, E4, E5, E6);
++pfs_create_dir(E1, NULL, E2, E3, E4, E5, E6);
+
+@ pfs_create_file_noret @
+ expression E1, E2, E3, E4, E5, E6, E7;
+@@
+-pfs_create_file(E1, E2, E3, E4, E5, E6, E7);
++pfs_create_file(E1, NULL, E2, E3, E4, E5, E6, E7);
+
+@ pfs_create_link_noret @
+ expression E1, E2, E3, E4, E5, E6, E7;
+@@
+-pfs_create_link(E1, E2, E3, E4, E5, E6, E7);
++pfs_create_link(E1, NULL, E2, E3, E4, E5, E6, E7);
diff --git a/tools/regression/priv/main.c b/tools/regression/priv/main.c
index dbcb5759f6b9..979e6ed65284 100644
--- a/tools/regression/priv/main.c
+++ b/tools/regression/priv/main.c
@@ -423,12 +423,10 @@ setup_file(const char *test, char *fpathp, uid_t uid, gid_t gid, mode_t mode)
static void
set_creds(const char *test, uid_t uid, gid_t gid)
{
- gid_t gids[1] = { gid };
-
if (setgid(gid) < 0)
err(-1, "test %s: setegid(%d)", test, gid);
- if (setgroups(sizeof(gids)/sizeof(gid_t), gids) < 0)
- err(-1, "test %s: setgroups(%d)", test, gid);
+ if (setgroups(0, NULL) < 0)
+ err(-1, "test %s: setgroups(NULL)", test);
if (setuid(uid) < 0)
err(-1, "test %s: seteuid(%d)", test, uid);
}
diff --git a/tools/regression/sockets/udp_pingpong/udp_pingpong.c b/tools/regression/sockets/udp_pingpong/udp_pingpong.c
index 2fe342debdc6..e852f7a7af87 100644
--- a/tools/regression/sockets/udp_pingpong/udp_pingpong.c
+++ b/tools/regression/sockets/udp_pingpong/udp_pingpong.c
@@ -601,11 +601,9 @@ main(void)
test_run(TT_TIMESTAMP, i, 1,
"send()/recvmsg(), setsockopt(SO_TIMESTAMP, 1)");
printf("OK\n");
- if (i == 0) {
- test_run(TT_BINTIME, i, 1,
- "send()/recvmsg(), setsockopt(SO_BINTIME, 1)");
- printf("OK\n");
- }
+ test_run(TT_BINTIME, i, 1,
+ "send()/recvmsg(), setsockopt(SO_BINTIME, 1)");
+ printf("OK\n");
test_run(TT_REALTIME_MICRO, i, 1,
"send()/recvmsg(), setsockopt(SO_TS_CLOCK, SO_TS_REALTIME_MICRO)");
printf("OK\n");
diff --git a/tools/test/netfibs/reflector.sh b/tools/test/netfibs/reflector.sh
index b9500689a321..a68019532010 100755
--- a/tools/test/netfibs/reflector.sh
+++ b/tools/test/netfibs/reflector.sh
@@ -897,7 +897,7 @@ testrx_run_test()
*) _opts="-d" ;;
esac
- # Convert netcat options to reflect aguments.
+ # Convert netcat options to reflect arguments.
case "${_o}" in
-i) _opts="${_opts} -T TCP6" ;; # Use TCP for START/DONE.
-u) _opts="${_opts} -T UDP6" ;;
diff --git a/tools/test/stress2/misc/beneath4.sh b/tools/test/stress2/misc/beneath4.sh
index 48458f088a96..3ba448cd06c7 100755
--- a/tools/test/stress2/misc/beneath4.sh
+++ b/tools/test/stress2/misc/beneath4.sh
@@ -88,7 +88,7 @@ main(int argc, char *argv[])
warn("cwd=%s, top=%s. flag=%0.6x. fstatf(%s) = %2d (expect %2d). %4s",
cwd, dir, flag, obj, r, exp, s);
- return (r == exp ? 0 : errno);
+ return (r != exp);
}
EOF
cc -o beneath4 -Wall -Wextra -O2 -g beneath4.c || exit 1
@@ -129,5 +129,5 @@ $dir/beneath4 $top $top/.. 0x2000 93 || s=1
$dir/beneath4 $top ../a 0x2000 93 || s=1
printf "\nNo flag\n"
$dir/beneath4 $top ../a 0x0000 0 || s=1
-rm -rf $top
+rm -rf $dir
exit $s
diff --git a/tools/test/stress2/misc/fdatasync.sh b/tools/test/stress2/misc/fdatasync.sh
index f17e2826ad94..9abd31e5bd94 100755
--- a/tools/test/stress2/misc/fdatasync.sh
+++ b/tools/test/stress2/misc/fdatasync.sh
@@ -178,7 +178,7 @@ main(int argc, char **argv)
if ((pw = getpwnam("nobody")) == NULL)
err(1, "failed to resolve nobody");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/fdatasync2.sh b/tools/test/stress2/misc/fdatasync2.sh
index 6011eba53698..42ade0cedbd3 100755
--- a/tools/test/stress2/misc/fdatasync2.sh
+++ b/tools/test/stress2/misc/fdatasync2.sh
@@ -177,7 +177,7 @@ main(int argc, char **argv)
if ((pw = getpwnam("nobody")) == NULL)
err(1, "failed to resolve nobody");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/fdescfs2.sh b/tools/test/stress2/misc/fdescfs2.sh
new file mode 100755
index 000000000000..21b82dcddd5e
--- /dev/null
+++ b/tools/test/stress2/misc/fdescfs2.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2025 Peter Holm <pho@FreeBSD.org>
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+
+# Test scenario description by: Kyle Evans <kevans@FreeBSD.org>
+
+# "panic: mtx_lock() of destroyed mutex 0xffffffff83717540 @ /usr/src/sys/fs/fdescfs/fdesc_vnops.c:151" seen
+
+[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
+. ../default.cfg
+
+set -u
+
+kldstat | grep -q fdescfs.ko && { kldunload fdescfs.ko && wasloaded=1; }
+while true; do
+ mount | grep -q "on $mntpoint " ||
+ mount -t fdescfs dummy $mntpoint || continue
+ ls $mntpoint > /dev/null
+ if mount | grep -q "on $mntpoint "; then
+ if ! umount $mntpoint; then
+ umount -f $mntpoint || break
+ fi
+ fi
+done > /dev/null 2>&1 &
+
+start=`date +%s`
+while [ $((`date +%s` - start)) -lt 10 ]; do
+ kldstat | grep -q fdescfs.ko &&
+ kldunload fdescfs.ko 2>/dev/null
+ sleep .1
+ kldstat | grep -q fdescfs.ko ||
+ kldload fdescfs.ko
+done
+kill %1
+wait
+mount | grep -q "on $mntpoint " && umount $mntpoint
+sleep .1
+set +u
+[ $wasloaded ] || kldunload fdescfs.ko
+exit 0
diff --git a/tools/test/stress2/misc/fdescfs3.sh b/tools/test/stress2/misc/fdescfs3.sh
new file mode 100755
index 000000000000..eb24a6eac085
--- /dev/null
+++ b/tools/test/stress2/misc/fdescfs3.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2025 Peter Holm <pho@FreeBSD.org>
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+
+[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
+
+. ../default.cfg
+
+mounts=15 # Number of parallel scripts
+mdstart=$mdstart # Use md unit numbers from this point
+
+if [ $# -eq 0 ]; then
+ for i in `jot $mounts`; do
+ m=$(( i + mdstart - 1 ))
+ [ ! -d ${mntpoint}$m ] && mkdir ${mntpoint}$m
+ mount | grep "$mntpoint" | grep -q md$m && umount ${mntpoint}$m
+ done
+ ../testcases/swap/swap -t 2m -i 20 &
+
+ # start the parallel tests
+ touch /tmp/$0
+ for i in `jot $mounts`; do
+ m=$(( i + mdstart - 1 ))
+ ./$0 $m &
+ ./$0 find $m > /dev/null 2>&1 &
+ done
+ wait
+else
+ if [ $1 = find ]; then
+ while [ -r /tmp/$0 ]; do
+ ls -lR ${mntpoint}*
+ done
+ else
+
+ # The test: Parallel mount and unmounts
+ start=`date +%s`
+ while [ $((`date +%s` - start)) -lt 120 ]; do
+ m=$1
+ mount -t fdescfs null ${mntpoint}$m
+ while mount | grep -qw $mntpoint$m; do
+ opt=$([ $((`date '+%s'` % 2)) -eq 0 ] && echo "-f")
+ umount $opt ${mntpoint}$m > /dev/null 2>&1
+ done
+ done
+ rm -f /tmp/$0
+ fi
+fi
diff --git a/tools/test/stress2/misc/fifo2.sh b/tools/test/stress2/misc/fifo2.sh
index 4a7b986931d9..e84506cbfb01 100755
--- a/tools/test/stress2/misc/fifo2.sh
+++ b/tools/test/stress2/misc/fifo2.sh
@@ -167,7 +167,7 @@ main(void)
if ((pw = getpwnam("nobody")) == NULL)
err(1, "no such user: nobody");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/ftruncate.sh b/tools/test/stress2/misc/ftruncate.sh
index ddec85b6745a..f9aa1869756f 100755
--- a/tools/test/stress2/misc/ftruncate.sh
+++ b/tools/test/stress2/misc/ftruncate.sh
@@ -170,7 +170,7 @@ main(int argc, char **argv)
if ((pw = getpwnam("nobody")) == NULL)
err(1, "failed to resolve nobody");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/ftruncate2.sh b/tools/test/stress2/misc/ftruncate2.sh
index 35db3a4c5f8d..94d9b6ca810f 100755
--- a/tools/test/stress2/misc/ftruncate2.sh
+++ b/tools/test/stress2/misc/ftruncate2.sh
@@ -185,7 +185,7 @@ main(int argc, char **argv)
if ((pw = getpwnam("nobody")) == NULL)
err(1, "failed to resolve nobody");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/kevent10.sh b/tools/test/stress2/misc/kevent10.sh
index b7f74f487cec..cebbd040c37d 100755
--- a/tools/test/stress2/misc/kevent10.sh
+++ b/tools/test/stress2/misc/kevent10.sh
@@ -72,15 +72,15 @@ main(void)
struct kevent events;
char *fn = "/tmp/kevent10.trace";
- if (open(fn, O_RDWR | O_CREAT, 0666) == -1)
- err(1, "%s", fn);
+ if (open(fn, O_RDWR | O_CREAT | O_TRUNC, 0666) == -1)
+ err(1, "open(%s)", fn);
if (ktrace(fn, KTRFLAG_DESCEND | KTROP_SET, KTRFAC_GENIO, 0) == -1)
err(1, "ktrace");
memset(&changes, 0, sizeof(struct kevent));
memset(&events, 0, sizeof(struct kevent));
if (kevent(0, &changes, -1, &events, 1, 0) == -1)
- if (errno != EBADF)
- err(1, "kevent");
+ if (errno != EBADF && errno != EINVAL)
+ warn("kevent");
if (ktrace(fn, KTROP_CLEARFILE, KTRFAC_GENIO, 0) == -1)
err(1, "ktrace clear");
diff --git a/tools/test/stress2/misc/kevent16.sh b/tools/test/stress2/misc/kevent16.sh
index 23dd222821da..58a8f6971c21 100755
--- a/tools/test/stress2/misc/kevent16.sh
+++ b/tools/test/stress2/misc/kevent16.sh
@@ -88,5 +88,5 @@ cc -o /tmp/kevent16 -Wall -Wextra -O2 /tmp/kevent16.c || exit 1
/tmp/kevent16; s=$?
-rm -f /tmp/kevent16.c kevent16 kevent16.core
+rm -f /tmp/kevent16.c /tmp/kevent16 kevent16.core
exit $s
diff --git a/tools/test/stress2/misc/kevent7.sh b/tools/test/stress2/misc/kevent7.sh
index 8b58c35551f7..4c7718c6ae5f 100755
--- a/tools/test/stress2/misc/kevent7.sh
+++ b/tools/test/stress2/misc/kevent7.sh
@@ -236,7 +236,7 @@ main(void)
if ((pw = getpwnam("nobody")) == NULL)
err(1, "no such user: nobody");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/killpg.sh b/tools/test/stress2/misc/killpg.sh
index c6af55a3d593..ea99f5e0d0fd 100755
--- a/tools/test/stress2/misc/killpg.sh
+++ b/tools/test/stress2/misc/killpg.sh
@@ -113,7 +113,7 @@ killer(void)
if ((pw = getpwnam("nobody")) == NULL)
err(1, "no such user: nobody");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/killpg2.sh b/tools/test/stress2/misc/killpg2.sh
index 5e986f059637..cf186d686dfd 100755
--- a/tools/test/stress2/misc/killpg2.sh
+++ b/tools/test/stress2/misc/killpg2.sh
@@ -77,7 +77,7 @@ looper(void)
if ((pw = getpwnam("TUSER")) == NULL)
err(1, "no such user: TUSER");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"TUSER\"");
diff --git a/tools/test/stress2/misc/killpg3.sh b/tools/test/stress2/misc/killpg3.sh
index 304b3e320f2f..4fcb4fa7a643 100755
--- a/tools/test/stress2/misc/killpg3.sh
+++ b/tools/test/stress2/misc/killpg3.sh
@@ -109,7 +109,7 @@ looper(void)
if ((pw = getpwnam("TUSER")) == NULL)
err(1, "no such user: TUSER");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"TUSER\"");
diff --git a/tools/test/stress2/misc/maxproc.sh b/tools/test/stress2/misc/maxproc.sh
index c425c307e06b..3241e275375e 100755
--- a/tools/test/stress2/misc/maxproc.sh
+++ b/tools/test/stress2/misc/maxproc.sh
@@ -32,12 +32,12 @@
. ../default.cfg
+[ `sysctl -n kern.maxproc` -gt 37028 ] && exit 0 # Excessive run time
here=`pwd`
cd /tmp
sed '1,/^EOF/d' < $here/$0 > maxproc.c
mycc -o maxproc -Wall -Wextra maxproc.c -lkvm || exit 1
rm -f maxproc.c
-[ `sysctl -n kern.maxproc` -gt 37028 ] && exit 0 # Excessive run time
cd $here
/tmp/maxproc
@@ -103,7 +103,7 @@ t1(int priv)
err(1, "no such user: nobody");
if (priv == 0) {
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/mlockall3.sh b/tools/test/stress2/misc/mlockall3.sh
index 0ff1e24eaa7f..aa53e75166a5 100755
--- a/tools/test/stress2/misc/mlockall3.sh
+++ b/tools/test/stress2/misc/mlockall3.sh
@@ -130,7 +130,7 @@ main(void)
if ((pw = getpwnam("nobody")) == NULL)
err(1, "no such user: nobody");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/mlockall7.sh b/tools/test/stress2/misc/mlockall7.sh
index 987e312f19e7..5a927043cb56 100755
--- a/tools/test/stress2/misc/mlockall7.sh
+++ b/tools/test/stress2/misc/mlockall7.sh
@@ -179,7 +179,7 @@ testing(unsigned long maxl)
maxlock = maxl;
if ((pw = getpwnam("nobody")) == NULL)
err(1, "failed to resolve nobody");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/mmap43.sh b/tools/test/stress2/misc/mmap43.sh
index 8508d5865aef..424e189b8b84 100755
--- a/tools/test/stress2/misc/mmap43.sh
+++ b/tools/test/stress2/misc/mmap43.sh
@@ -180,7 +180,7 @@ cd $here
umount $mntpoint
mdconfig -d -u $mdstart
-rm /tmp/$prog /tmp/$prog.c /tmp/$prog.sort
+rm /tmp/$prog /tmp/$prog.c /tmp/$prog.sort /tmp/$prog.serial.c /tmp/$prog.serial $log
[ $s -eq 0 ] &&
printf "OK File size is %9d, tail is %4d bytes. (%3d loops)\n" $size $tail $counter ||
printf "FAIL File size is %9d, tail is %4d bytes. (%3d loops)\n" $size $tail $counter
diff --git a/tools/test/stress2/misc/mountu.sh b/tools/test/stress2/misc/mountu.sh
index abd3c744d160..95043e634ef1 100755
--- a/tools/test/stress2/misc/mountu.sh
+++ b/tools/test/stress2/misc/mountu.sh
@@ -241,7 +241,7 @@ main(int argc __unused, char **argv)
if ((pw = getpwnam("nobody")) == NULL)
err(1, "no such user: nobody");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/msync.sh b/tools/test/stress2/misc/msync.sh
index 326c7e723774..df05875afb45 100755
--- a/tools/test/stress2/misc/msync.sh
+++ b/tools/test/stress2/misc/msync.sh
@@ -166,7 +166,7 @@ main(void)
if ((pw = getpwnam("nobody")) == NULL)
err(1, "no such user: nobody");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/nfs_halfpage.sh b/tools/test/stress2/misc/nfs_halfpage.sh
index 8d02ca8ebbcf..b2f606e9607b 100755
--- a/tools/test/stress2/misc/nfs_halfpage.sh
+++ b/tools/test/stress2/misc/nfs_halfpage.sh
@@ -35,6 +35,11 @@
# https://reviews.freebsd.org/D11697
# Committed as r321580 + r321581.
+[ -z "$nfs_export" ] && exit 0
+ping -c 2 `echo $nfs_export | sed 's/:.*//'` > /dev/null 2>&1 ||
+ exit 0
+
+mount | grep "$mntpoint" | grep -q nfs && umount $mntpoint
dir=/tmp
odir=`pwd`
cd $dir
@@ -43,11 +48,6 @@ mycc -o nfs_halfpage -Wall -Wextra -O0 -g nfs_halfpage.c || exit 1
rm -f nfs_halfpage.c
cd $odir
-[ -z "$nfs_export" ] && exit 0
-ping -c 2 `echo $nfs_export | sed 's/:.*//'` > /dev/null 2>&1 ||
- exit 0
-
-mount | grep "$mntpoint" | grep -q nfs && umount $mntpoint
mount -t nfs -o tcp -o retrycnt=3 -o intr,soft -o rw $nfs_export $mntpoint
file=$mntpoint/nfs_halfpage.file
diff --git a/tools/test/stress2/misc/nfs_halfpage2.sh b/tools/test/stress2/misc/nfs_halfpage2.sh
index b916531c7a9d..8ca907f25e09 100755
--- a/tools/test/stress2/misc/nfs_halfpage2.sh
+++ b/tools/test/stress2/misc/nfs_halfpage2.sh
@@ -35,6 +35,10 @@
# https://reviews.freebsd.org/D11697
# Committed as r321580 + r321581.
+[ -z "$nfs_export" ] && exit 0
+ping -c 2 `echo $nfs_export | sed 's/:.*//'` > /dev/null 2>&1 ||
+ exit 0
+
dir=/tmp
odir=`pwd`
cd $dir
@@ -43,10 +47,6 @@ mycc -o nfs_halfpage -Wall -Wextra -O0 -g nfs_halfpage.c || exit 1
rm -f nfs_halfpage.c
cd $odir
-[ -z "$nfs_export" ] && exit 0
-ping -c 2 `echo $nfs_export | sed 's/:.*//'` > /dev/null 2>&1 ||
- exit 0
-
mount | grep "$mntpoint" | grep -q nfs && umount $mntpoint
mount -t nfs -o tcp -o retrycnt=3 -o intr,soft -o rw $nfs_export $mntpoint
diff --git a/tools/test/stress2/misc/nullfs29.sh b/tools/test/stress2/misc/nullfs29.sh
index aa606fd5f526..977e3c087523 100755
--- a/tools/test/stress2/misc/nullfs29.sh
+++ b/tools/test/stress2/misc/nullfs29.sh
@@ -73,5 +73,5 @@ while mount | grep $mp1 | grep -q /dev/md; do
[ $n -gt 30 ] && { echo FAIL; s=2; }
done
mdconfig -d -u $mdstart
-rm -f /tmp/nullfs29.c
+rm -f /tmp/nullfs29.c /tmp/nullfs29
exit $s
diff --git a/tools/test/stress2/misc/pread.sh b/tools/test/stress2/misc/pread.sh
index 24ee2efb696a..985d3f643df1 100755
--- a/tools/test/stress2/misc/pread.sh
+++ b/tools/test/stress2/misc/pread.sh
@@ -170,7 +170,7 @@ main(int argc __unused, char **argv)
if ((pw = getpwnam("nobody")) == NULL)
err(1, "no such user: nobody");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/rsync.sh b/tools/test/stress2/misc/rsync.sh
index fa52f98c6f02..1e677c7c1f6c 100755
--- a/tools/test/stress2/misc/rsync.sh
+++ b/tools/test/stress2/misc/rsync.sh
@@ -31,7 +31,7 @@ if [ $s -eq 0 ]; then
fi
if [ $s -eq 0 ]; then
- diff -rq /usr/src/sys $mntpoint/usr/src/sys > $log; s=$?
+ diff --no-dereference -rq /usr/src/sys $mntpoint/usr/src/sys > $log; s=$?
[ $s -ne 0 ] &&
{ echo "/usr/src $mntpoint/usr/src differ!"; head -10 $log; }
fi
diff --git a/tools/test/stress2/misc/rsync3.sh b/tools/test/stress2/misc/rsync3.sh
index 1d77bdfbcaa5..e5e4db128b0f 100755
--- a/tools/test/stress2/misc/rsync3.sh
+++ b/tools/test/stress2/misc/rsync3.sh
@@ -30,7 +30,7 @@ if [ $s -eq 0 ]; then
fi
if [ $s -eq 0 ]; then
- diff -rq /usr/src/sys $mntpoint/usr/src/sys > $log; s=$?
+ diff --no-dereference -rq /usr/src/sys $mntpoint/usr/src/sys > $log; s=$?
[ $s -ne 0 ] &&
{ echo "/usr/src $mntpoint/usr/src differ!"; head -10 $log; }
fi
diff --git a/tools/test/stress2/misc/sched.sh b/tools/test/stress2/misc/sched.sh
index 1a1db70eb38a..8b33d7b16094 100755
--- a/tools/test/stress2/misc/sched.sh
+++ b/tools/test/stress2/misc/sched.sh
@@ -107,7 +107,7 @@ work(void)
if ((pw = getpwnam("nobody")) == NULL)
err(1, "no such user: nobody");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/setrlimit2.sh b/tools/test/stress2/misc/setrlimit2.sh
index 4eea25ef3ee4..8c717fe72458 100755
--- a/tools/test/stress2/misc/setrlimit2.sh
+++ b/tools/test/stress2/misc/setrlimit2.sh
@@ -114,5 +114,5 @@ h1=`md5 < $data`
./setrlimit2 $data
h2=`md5 < $data`
-rm -f /tmp/setrlimit2 /tmp/setrlimit2.c
+rm -f /tmp/setrlimit2 /tmp/setrlimit2.c $data
[ $h1 = $h2 ] && exit 1 || exit 0
diff --git a/tools/test/stress2/misc/sigreturn3.sh b/tools/test/stress2/misc/sigreturn3.sh
index 271ade287e9a..6795c4fd0846 100755
--- a/tools/test/stress2/misc/sigreturn3.sh
+++ b/tools/test/stress2/misc/sigreturn3.sh
@@ -121,7 +121,7 @@ main(int argc, char **argv)
fprintf(stderr, "Running syscall4 as root for %s.\n",
argv[1]);
else {
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
@@ -177,5 +177,5 @@ start=`date +%s`
while [ $((`date +%s` - start)) -lt 300 ]; do
./$prog > /dev/null 2>&1
done
-rm -f /tmp/$prog /tmp/$ptog.c /tmp/$prog.core
+rm -f /tmp/$prog /tmp/$prog.c /tmp/$prog.core
exit 0
diff --git a/tools/test/stress2/misc/sigreturn4.sh b/tools/test/stress2/misc/sigreturn4.sh
index 9e2a6a32715c..90ee16777e03 100755
--- a/tools/test/stress2/misc/sigreturn4.sh
+++ b/tools/test/stress2/misc/sigreturn4.sh
@@ -147,7 +147,7 @@ main(int argc, char **argv)
fprintf(stderr, "Running sigreturn4 as root for %s.\n",
argv[1]);
else {
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
@@ -203,5 +203,5 @@ start=`date +%s`
while [ $((`date +%s` - start)) -lt 300 ]; do
./$prog > /dev/null 2>&1
done
-rm -f /tmp/$prog /tmp/$ptog.c /tmp/$prog.core
+rm -f /tmp/$prog /tmp/$prog.c /tmp/$prog.core
exit 0
diff --git a/tools/test/stress2/misc/syscall4.sh b/tools/test/stress2/misc/syscall4.sh
index 3937d45c0303..92150c782ac1 100755
--- a/tools/test/stress2/misc/syscall4.sh
+++ b/tools/test/stress2/misc/syscall4.sh
@@ -318,7 +318,7 @@ main(int argc, char **argv)
fprintf(stderr, "Running syscall4 as root for %s.\n",
argv[1]);
else {
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/syzkaller13.sh b/tools/test/stress2/misc/syzkaller13.sh
index 9b46ebd290af..fe15652b0a25 100755
--- a/tools/test/stress2/misc/syzkaller13.sh
+++ b/tools/test/stress2/misc/syzkaller13.sh
@@ -246,4 +246,5 @@ pkill -9 syzkaller13
wait
rm -f /tmp/syzkaller13 /tmp/syzkaller13.* /tmp/file0
+rm -rf /tmp/syzkaller.*
exit 0
diff --git a/tools/test/stress2/misc/syzkaller21.sh b/tools/test/stress2/misc/syzkaller21.sh
index 3a7eeb05ef6c..07eef4bc5861 100755
--- a/tools/test/stress2/misc/syzkaller21.sh
+++ b/tools/test/stress2/misc/syzkaller21.sh
@@ -398,6 +398,6 @@ if pgrep -q syzkaller21; then
fi
wait
-rm -rf /tmp/syzkaller21.*
+rm -rf /tmp/syzkaller21.* /tmp/syzkaller.*
rm -f /tmp/syzkaller21
exit 0
diff --git a/tools/test/stress2/misc/syzkaller61.sh b/tools/test/stress2/misc/syzkaller61.sh
index a25ae4cf00d8..d07f12b05b1a 100755
--- a/tools/test/stress2/misc/syzkaller61.sh
+++ b/tools/test/stress2/misc/syzkaller61.sh
@@ -1,15 +1,7 @@
#!/bin/sh
-# Seen:
-# [root@mercat1 /usr/src/tools/test/stress2/misc]# pgrep syzkaller61 | xargs procstat -k
-# PID TID COMM TDNAME KSTACK
-# 13332 106396 syzkaller61 - mi_switch thread_suspend_check ast_suspend ast_handler ast doreti_ast
-# 13332 560662 syzkaller61 - mi_switch sleepq_switch sleepq_catch_signals sleepq_wait_sig _sleep umtxq_sleep do_wait __umtx_op_wait_uint_private sys__umtx_op amd64_syscall fast_syscall_common
-# 13332 560776 syzkaller61 - mi_switch thread_suspend_switch thread_single fork1 sys_rfork amd64_syscall fast_syscall_common
-# 13662 356440 syzkaller61 - mi_switch thread_suspend_check ast_suspend ast_handler ast doreti_ast
-# 13662 561098 syzkaller61 - mi_switch sleepq_switch sleepq_catch_signals sleepq_wait_sig _sleep umtxq_sleep do_wait __umtx_op_wait_uint_private sys__umtx_op amd64_syscall fast_syscall_common
-# 13662 561160 syzkaller61 - mi_switch thread_suspend_switch thread_single fork1 sys_rfork amd64_syscall fast_syscall_common
-# [root@mercat1 /usr/src/tools/test/stress2/misc]#
+# "panic: inconsistent boundary count 2" seen.
+# Fixed by: 8321d0da2ce2 - main - kern/kern_thread.c: improve assert in thread_single_end()
[ `uname -p` != "amd64" ] && exit 0
@@ -276,7 +268,7 @@ void execute_call(int call)
{
switch (call) {
case 0:
- NONFAILING(*(uint32_t*)0x20001f00 = 0x16);
+ NONFAILING(*(uint32_t*)0x20001f00 = 0x16); /* SIGTTOU */
NONFAILING(*(uint32_t*)0x20001f04 = 0);
NONFAILING(*(uint32_t*)0x20001f08 = 0);
NONFAILING(*(uint32_t*)0x20001f0c = 0);
@@ -302,18 +294,16 @@ mycc -o /tmp/syzkaller61 -Wall -Wextra -O0 /tmp/syzkaller61.c -lpthread ||
(cd ../testcases/swap; ./swap -t 3m -i 10 -l 100 > /dev/null 2>&1) &
for i in `jot 300`; do
- (cd /tmp; timeout -k 3s 2s ./syzkaller61) &
+ (cd /tmp; su -m $testuser -c ./syzkaller61) &
pids="$pids $!"
done
sleep 5
-pkill -9 syzkaller61 swap; sleep 1
-pgrep -q syzkaller61 && { pgrep syzkaller61 | xargs ps -lHp; exit 1; }
-for pid in $pids; do
- wait $pid
-done
+kill -9 $pids
+wait $pids
+while pkill -9 syzkaller61; do :; done
while pkill swap; do :; done
wait
rm -rf /tmp/syzkaller61 /tmp/syzkaller61.c /tmp/syzkaller61.core \
/tmp/syzkaller.??????
-exit 0
+exit 0
diff --git a/tools/test/stress2/misc/syzkaller73.sh b/tools/test/stress2/misc/syzkaller73.sh
index 776ace385f21..fa07dc7ff26f 100755
--- a/tools/test/stress2/misc/syzkaller73.sh
+++ b/tools/test/stress2/misc/syzkaller73.sh
@@ -533,5 +533,5 @@ done
while pkill swap; do :; done
wait
-rm -rf /tmp/$prog /tmp/$prog.c /tmp/$prog.core
+rm -rf /tmp/$prog /tmp/$prog.c /tmp/$prog.core /tmp/syzkaller.*
exit 0
diff --git a/tools/test/stress2/misc/syzkaller74.sh b/tools/test/stress2/misc/syzkaller74.sh
index 886c6047585b..0c2b4e1d5325 100755
--- a/tools/test/stress2/misc/syzkaller74.sh
+++ b/tools/test/stress2/misc/syzkaller74.sh
@@ -465,5 +465,5 @@ mycc -o /tmp/$prog -Wall -Wextra -O0 /tmp/$prog.c -lpthread || exit 1
cd /tmp
timeout 3m /tmp/$prog > /dev/null 2>&1
-rm -rf /tmp/$prog /tmp/$prog.c /tmp/$prog.core /tmp/$prog.??????
+rm -rf /tmp/$prog /tmp/$prog.c /tmp/$prog.core /tmp/$prog.?????? /tmp/syzkaller.*
exit 0
diff --git a/tools/test/stress2/misc/temp.sh b/tools/test/stress2/misc/temp.sh
index 5c1a73cd18e1..4cddd48079ec 100755
--- a/tools/test/stress2/misc/temp.sh
+++ b/tools/test/stress2/misc/temp.sh
@@ -32,6 +32,10 @@
. ../default.cfg
[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
+[ -z "$nfs_export" ] && exit 0
+ping -c 2 `echo $nfs_export | sed 's/:.*//'` > /dev/null 2>&1 ||
+ exit 0
+
export LANG=C
dir=/tmp
odir=`pwd`
@@ -41,10 +45,6 @@ mycc -o temp -Wall -Wextra -O0 -g temp.c || exit 1
rm -f temp.c
cd $odir
-[ -z "$nfs_export" ] && exit 0
-ping -c 2 `echo $nfs_export | sed 's/:.*//'` > /dev/null 2>&1 ||
- exit 0
-
mount | grep "on $mntpoint " | grep -q nfs && umount $mntpoint
mount -t nfs -o tcp -o retrycnt=3 -o soft -o rw $nfs_export $mntpoint
mp2=$mntpoint/temp.`jot -rc 8 a z | tr -d '\n'`/temp.dir
diff --git a/tools/test/stress2/misc/tmpfs16.sh b/tools/test/stress2/misc/tmpfs16.sh
index 8cc3c3596a4e..683817ce6497 100755
--- a/tools/test/stress2/misc/tmpfs16.sh
+++ b/tools/test/stress2/misc/tmpfs16.sh
@@ -181,7 +181,7 @@ main(int argc, char **argv)
if ((pw = getpwnam("nobody")) == NULL)
err(1, "failed to resolve nobody");
- if (setgroups(1, &pw->pw_gid) ||
+ if (setgroups(0, NULL) ||
setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
seteuid(pw->pw_uid) || setuid(pw->pw_uid))
err(1, "Can't drop privileges to \"nobody\"");
diff --git a/tools/test/stress2/misc/unionfs7.sh b/tools/test/stress2/misc/unionfs7.sh
index 6adcd01a5f83..9c00ba73e5c2 100755
--- a/tools/test/stress2/misc/unionfs7.sh
+++ b/tools/test/stress2/misc/unionfs7.sh
@@ -61,8 +61,8 @@ set +e
mount | grep -E "$mp1|$mp2"
set `df -ik $mp2 | tail -1 | awk '{print $4,$7}'`
-export KBLOCKS=$(($1 / 4))
-export INODES=$(($2 / 4))
+export KBLOCKS=$(($1 / 6))
+export INODES=$(($2 / 6))
export CTRLDIR=$mp2/stressX.control
export INCARNATIONS=10
@@ -95,7 +95,7 @@ export TESTPROGS=`echo $TESTPROGS | sed 's/\n/ /g'`
set +e
chmod 777 $mp2
su $testuser -c \
- "(cd $mp2/stress2; ./testcases/run/run $TESTPROGS)"
+ "(cd $mp2/stress2; ./testcases/run/run $TESTPROGS > /dev/null 2>&1)"
while mount | grep -Eq "on $mp2 .*unionfs"; do
umount $mp2 && break
diff --git a/tools/tools/crypto/Makefile b/tools/tools/crypto/Makefile
index d1aa55526248..5186a0d697e6 100644
--- a/tools/tools/crypto/Makefile
+++ b/tools/tools/crypto/Makefile
@@ -25,8 +25,7 @@
# SUCH DAMAGE.
#
-PROGS= cryptocheck cryptotest cryptostats \
- hifnstats ipsecstats safestats
+PROGS= cryptocheck cryptostats hifnstats ipsecstats safestats
MAN=
BINDIR?= /usr/local/bin
@@ -38,6 +37,4 @@ LIBADD.cryptocheck+= crypto util
# safestats: statistics kept by the SafeNet driver
# ipsecstats: print statistics kept by fast ipsec
-CLEANFILES+= core a.out
-
.include <bsd.progs.mk>
diff --git a/tools/tools/crypto/cryptorun.sh b/tools/tools/crypto/cryptorun.sh
deleted file mode 100755
index 8761b16c4d96..000000000000
--- a/tools/tools/crypto/cryptorun.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-#
-# A simple test runner for cryptotest
-#
-# Althought cryptotest itself has a -z mode to test all algorithms at
-# a variety of sizes, this script allows us to be more selective.
-# Threads and buffer sizes move in powers of two from 1, for threads,
-# and 256 for buffer sizes.
-#
-# e.g. cryptorun.sh aes 4 512
-#
-# Test aes with 1, 2 and 4 processes, and at sizes of 256 and 512 bytes.
-#
-#
-
-threads=1
-size=256
-iterations=1000000
-crypto="/tank/users/gnn/Repos/svn/FreeBSD.HEAD/tools/tools/crypto/cryptotest"
-max_threads=$2
-max_size=$3
-
-while [ "$threads" -le "$max_threads" ]; do
- echo "Testing with $threads processes."
- while [ "$size" -le "$max_size" ]; do
- $crypto -t $threads -a $1 $iterations $size
- size=$(($size * 2))
- done
- size=256
- threads=$(($threads * 2))
-done
diff --git a/tools/tools/crypto/cryptotest.c b/tools/tools/crypto/cryptotest.c
deleted file mode 100644
index 7845c3994d0c..000000000000
--- a/tools/tools/crypto/cryptotest.c
+++ /dev/null
@@ -1,658 +0,0 @@
-/*-
- * Copyright (c) 2004 Sam Leffler, Errno Consulting
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
- * redistribution must be conditioned upon including a substantially
- * similar Disclaimer requirement for further binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
- * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGES.
- */
-
-/*
- * Simple tool for testing hardware/system crypto support.
- *
- * cryptotest [-czsbv] [-a algorithm] [count] [size ...]
- *
- * Run count iterations of a crypt+decrypt or mac operation on a buffer of
- * size bytes. A random key and iv are used. Options:
- * -c check the results
- * -d dev pin work on device dev
- * -z run all available algorithms on a variety of buffer sizes
- * -v be verbose
- * -b mark operations for batching
- * -p profile kernel crypto operations (must be root)
- * -t n fork n threads and run tests concurrently
- * Known algorithms are:
- * null null cbc
- * des des cbc
- * 3des 3des cbc
- * blf blowfish cbc
- * cast cast cbc
- * skj skipjack cbc
- * aes rijndael/aes 128-bit cbc
- * aes192 rijndael/aes 192-bit cbc
- * aes256 rijndael/aes 256-bit cbc
- * chacha20 Chacha20 stream cipher
- * blake2b Blake2b
- * blake2s Blake2s
- * md5 md5 hmac
- * sha1 sha1 hmac
- * sha256 256-bit sha2 hmac
- * sha384 384-bit sha2 hmac
- * sha512 512--bit sha2 hmac
- *
- * For a test of how fast a crypto card is, use something like:
- * cryptotest -z 1024
- * This will run a series of tests using the available crypto/cipher
- * algorithms over a variety of buffer sizes. The 1024 says to do 1024
- * iterations. Extra arguments can be used to specify one or more buffer
- * sizes to use in doing tests.
- *
- * To fork multiple processes all doing the same work, specify -t X on the
- * command line to get X "threads" running simultaneously. No effort is made
- * to synchronize the threads or otherwise maximize load.
- *
- * If the kernel crypto code is built with CRYPTO_TIMING and you run as root,
- * then you can specify the -p option to get a "profile" of the time spent
- * processing crypto operations. At present this data is only meaningful for
- * symmetric operations. To get meaningful numbers you must run on an idle
- * machine.
- *
- * Expect ~400 Mb/s for a Broadcom 582x for 8K buffers on a reasonable CPU
- * (64-bit PCI helps). Hifn 7811 parts top out at ~110 Mb/s.
- */
-
-#include <sys/param.h>
-#include <sys/cpuset.h>
-#include <sys/ioctl.h>
-#include <sys/mman.h>
-#include <sys/sysctl.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-
-#include <err.h>
-#include <fcntl.h>
-#include <paths.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sysexits.h>
-#include <unistd.h>
-
-#include <crypto/cryptodev.h>
-
-#define CHUNK 64 /* how much to display */
-#define streq(a,b) (strcasecmp(a,b) == 0)
-
-void hexdump(char *, int);
-
-int verbose = 0;
-int opflags = 0;
-int verify = 0;
-int crid = CRYPTO_FLAG_HARDWARE;
-
-struct alg {
- const char* name;
- int ishash;
- int blocksize;
- int minkeylen;
- int maxkeylen;
- int code;
-} algorithms[] = {
-#ifdef CRYPTO_NULL_CBC
- { "null", 0, 8, 1, 256, CRYPTO_NULL_CBC },
-#endif
- { "des", 0, 8, 8, 8, CRYPTO_DES_CBC },
- { "3des", 0, 8, 24, 24, CRYPTO_3DES_CBC },
- { "blf", 0, 8, 5, 56, CRYPTO_BLF_CBC },
- { "cast", 0, 8, 5, 16, CRYPTO_CAST_CBC },
- { "skj", 0, 8, 10, 10, CRYPTO_SKIPJACK_CBC },
- { "rij", 0, 16, 16, 16, CRYPTO_RIJNDAEL128_CBC},
- { "aes", 0, 16, 16, 16, CRYPTO_AES_CBC},
- { "aes192", 0, 16, 24, 24, CRYPTO_AES_CBC},
- { "aes256", 0, 16, 32, 32, CRYPTO_AES_CBC},
- { "chacha20", 0, 1, 32, 32, CRYPTO_CHACHA20},
- { "blake2b", 1, 128, 64, 64, CRYPTO_BLAKE2B },
- { "blake2s", 1, 64, 32, 32, CRYPTO_BLAKE2S },
- { "md5", 1, 8, 16, 16, CRYPTO_MD5_HMAC },
- { "sha1", 1, 8, 20, 20, CRYPTO_SHA1_HMAC },
- { "sha256", 1, 8, 32, 32, CRYPTO_SHA2_256_HMAC },
- { "sha384", 1, 8, 48, 48, CRYPTO_SHA2_384_HMAC },
- { "sha512", 1, 8, 64, 64, CRYPTO_SHA2_512_HMAC },
-};
-
-void
-usage(const char* cmd)
-{
- printf("usage: %s [-czsbv] [-d dev] [-a algorithm] [count] [size ...]\n",
- cmd);
- printf("where algorithm is one of:\n");
- printf(" null des 3des (default) blowfish cast skipjack rij\n");
- printf(" aes aes192 aes256 chacha20 md5 sha1 sha256 sha384 sha512\n");
- printf(" blake2b blake2s\n");
- printf(" or an encryption algorithm concatented with authentication\n");
- printf(" algorithm with '+' in the middle, e.g., aes+sha1.\n");
- printf("count is the number of encrypt/decrypt ops to do\n");
- printf("size is the number of bytes of text to encrypt+decrypt\n");
- printf("\n");
- printf("-c check the results (slows timing)\n");
- printf("-d use specific device, specify 'soft' for testing software implementations\n");
- printf("\tNOTE: to use software you must set:\n\t sysctl kern.cryptodevallowsoft=1\n");
- printf("-z run all available algorithms on a variety of sizes\n");
- printf("-v be verbose\n");
- printf("-b mark operations for batching\n");
- printf("-p profile kernel crypto operation (must be root)\n");
- printf("-t n for n threads and run tests concurrently\n");
- exit(-1);
-}
-
-struct alg*
-getalgbycode(int cipher)
-{
- int i;
-
- for (i = 0; i < nitems(algorithms); i++)
- if (cipher == algorithms[i].code)
- return &algorithms[i];
- return NULL;
-}
-
-struct alg*
-getalgbyname(const char* name)
-{
- int i;
-
- for (i = 0; i < nitems(algorithms); i++)
- if (streq(name, algorithms[i].name))
- return &algorithms[i];
- return NULL;
-}
-
-int
-devcrypto(void)
-{
- int fd = -1;
-
- if (fd < 0) {
- fd = open(_PATH_DEV "crypto", O_RDWR, 0);
- if (fd < 0)
- err(1, _PATH_DEV "crypto");
- if (fcntl(fd, F_SETFD, 1) == -1)
- err(1, "fcntl(F_SETFD) (devcrypto)");
- }
- return fd;
-}
-
-int
-crlookup(const char *devname)
-{
- struct crypt_find_op find;
-
- if (strncmp(devname, "soft", 4) == 0)
- return CRYPTO_FLAG_SOFTWARE;
-
- find.crid = -1;
- strlcpy(find.name, devname, sizeof(find.name));
- if (ioctl(devcrypto(), CIOCFINDDEV, &find) == -1)
- err(1, "ioctl(CIOCFINDDEV)");
- return find.crid;
-}
-
-const char *
-crfind(int crid)
-{
- static struct crypt_find_op find;
-
- bzero(&find, sizeof(find));
- find.crid = crid;
- if (ioctl(devcrypto(), CIOCFINDDEV, &find) == -1)
- err(1, "ioctl(CIOCFINDDEV): crid %d", crid);
- return find.name;
-}
-
-char
-rdigit(void)
-{
- const char a[] = {
- 0x10,0x54,0x11,0x48,0x45,0x12,0x4f,0x13,0x49,0x53,0x14,0x41,
- 0x15,0x16,0x4e,0x55,0x54,0x17,0x18,0x4a,0x4f,0x42,0x19,0x01
- };
- return 0x20+a[random()%nitems(a)];
-}
-
-void
-runtest(struct alg *ealg, struct alg *alg, int count, int size, u_long cmd, struct timeval *tv)
-{
- int i, fd = devcrypto();
- struct timeval start, stop, dt;
- char *cleartext, *ciphertext, *originaltext, *key;
- struct session2_op sop;
- struct crypt_op cop;
- char iv[EALG_MAX_BLOCK_LEN];
- char digest[512/8];
-
- /* Canonicalize 'ealg' to crypt alg and 'alg' to authentication alg. */
- if (ealg == NULL && !alg->ishash) {
- ealg = alg;
- alg = NULL;
- }
-
- bzero(&sop, sizeof(sop));
- if (ealg != NULL) {
- sop.keylen = (ealg->minkeylen + ealg->maxkeylen)/2;
- key = (char *) malloc(sop.keylen);
- if (key == NULL)
- err(1, "malloc (key)");
- for (i = 0; i < sop.keylen; i++)
- key[i] = rdigit();
- sop.key = key;
- sop.cipher = ealg->code;
- }
- if (alg != NULL) {
- sop.mackeylen = (alg->minkeylen + alg->maxkeylen)/2;
- key = (char *) malloc(sop.mackeylen);
- if (key == NULL)
- err(1, "malloc (mac)");
- for (i = 0; i < sop.mackeylen; i++)
- key[i] = rdigit();
- sop.mackey = key;
- sop.mac = alg->code;
- }
-
- sop.crid = crid;
- if (ioctl(fd, cmd, &sop) < 0) {
- if (cmd == CIOCGSESSION || cmd == CIOCGSESSION2) {
- close(fd);
- if (verbose) {
- printf("cipher %s%s%s", ealg? ealg->name : "",
- (ealg && alg) ? "+" : "",
- alg? alg->name : "");
-
- if (alg->ishash)
- printf(" mackeylen %u\n", sop.mackeylen);
- else
- printf(" keylen %u\n", sop.keylen);
- perror("CIOCGSESSION");
- }
- /* hardware doesn't support algorithm; skip it */
- return;
- }
- printf("cipher %s%s%s keylen %u mackeylen %u\n",
- ealg? ealg->name : "", (ealg && alg) ? "+" : "",
- alg? alg->name : "", sop.keylen, sop.mackeylen);
- err(1, "CIOCGSESSION");
- }
-
- originaltext = malloc(3*size);
- if (originaltext == NULL)
- err(1, "malloc (text)");
- cleartext = originaltext+size;
- ciphertext = cleartext+size;
- for (i = 0; i < size; i++)
- cleartext[i] = rdigit();
- memcpy(originaltext, cleartext, size);
- for (i = 0; i < nitems(iv); i++)
- iv[i] = rdigit();
-
- if (verbose) {
- printf("session = 0x%x\n", sop.ses);
- printf("device = %s\n", crfind(sop.crid));
- printf("count = %d, size = %d\n", count, size);
- if (ealg) {
- printf("iv:");
- hexdump(iv, sizeof iv);
- }
- printf("cleartext:");
- hexdump(cleartext, MIN(size, CHUNK));
- }
-
- gettimeofday(&start, NULL);
- if (ealg) {
- for (i = 0; i < count; i++) {
- cop.ses = sop.ses;
- cop.op = COP_ENCRYPT;
- cop.flags = opflags | COP_F_CIPHER_FIRST;
- cop.len = size;
- cop.src = cleartext;
- cop.dst = ciphertext;
- if (alg)
- cop.mac = digest;
- else
- cop.mac = 0;
- cop.iv = iv;
-
- if (ioctl(fd, CIOCCRYPT, &cop) < 0)
- err(1, "ioctl(CIOCCRYPT)");
-
- if (verify && bcmp(ciphertext, cleartext, size) == 0) {
- printf("cipher text unchanged:");
- hexdump(ciphertext, size);
- }
-
- memset(cleartext, 'x', MIN(size, CHUNK));
- cop.ses = sop.ses;
- cop.op = COP_DECRYPT;
- cop.flags = opflags;
- cop.len = size;
- cop.src = ciphertext;
- cop.dst = cleartext;
- if (alg)
- cop.mac = digest;
- else
- cop.mac = 0;
- cop.iv = iv;
-
- if (ioctl(fd, CIOCCRYPT, &cop) < 0)
- err(1, "ioctl(CIOCCRYPT)");
-
- if (verify && bcmp(cleartext, originaltext, size) != 0) {
- printf("decrypt mismatch:\n");
- printf("original:");
- hexdump(originaltext, size);
- printf("cleartext:");
- hexdump(cleartext, size);
- }
- }
- } else {
- for (i = 0; i < count; i++) {
- cop.ses = sop.ses;
- cop.op = 0;
- cop.flags = opflags;
- cop.len = size;
- cop.src = cleartext;
- cop.dst = 0;
- cop.mac = ciphertext;
- cop.iv = 0;
-
- if (ioctl(fd, CIOCCRYPT, &cop) < 0)
- err(1, "ioctl(CIOCCRYPT)");
- }
- }
- gettimeofday(&stop, NULL);
-
- if (ioctl(fd, CIOCFSESSION, &sop.ses) < 0)
- perror("ioctl(CIOCFSESSION)");
-
- if (verbose) {
- printf("cleartext:");
- hexdump(cleartext, MIN(size, CHUNK));
- }
- timersub(&stop, &start, tv);
-
- free(originaltext);
-
- close(fd);
-}
-
-#ifdef __FreeBSD__
-void
-resetstats()
-{
- struct cryptostats stats;
- size_t slen;
-
- slen = sizeof (stats);
- if (sysctlbyname("kern.crypto_stats", &stats, &slen, NULL, 0) < 0) {
- perror("kern.crypto_stats");
- return;
- }
- bzero(&stats.cs_invoke, sizeof (stats.cs_invoke));
- bzero(&stats.cs_done, sizeof (stats.cs_done));
- bzero(&stats.cs_cb, sizeof (stats.cs_cb));
- bzero(&stats.cs_finis, sizeof (stats.cs_finis));
- stats.cs_invoke.min.tv_sec = 10000;
- stats.cs_done.min.tv_sec = 10000;
- stats.cs_cb.min.tv_sec = 10000;
- stats.cs_finis.min.tv_sec = 10000;
- if (sysctlbyname("kern.crypto_stats", NULL, NULL, &stats, sizeof (stats)) < 0)
- perror("kern.cryptostats");
-}
-
-void
-printt(const char* tag, struct cryptotstat *ts)
-{
- uint64_t avg, min, max;
-
- if (ts->count == 0)
- return;
- avg = (1000000000LL*ts->acc.tv_sec + ts->acc.tv_nsec) / ts->count;
- min = 1000000000LL*ts->min.tv_sec + ts->min.tv_nsec;
- max = 1000000000LL*ts->max.tv_sec + ts->max.tv_nsec;
- printf("%16.16s: avg %6llu ns : min %6llu ns : max %7llu ns [%u samps]\n",
- tag, avg, min, max, ts->count);
-}
-#endif
-
-void
-runtests(struct alg *ealg, struct alg *alg, int count, int size, u_long cmd, int threads, int profile)
-{
- int i, status;
- double t;
- void *region;
- struct timeval *tvp;
- struct timeval total;
- int otiming;
-
- if (size % alg->blocksize || (ealg && size % ealg->blocksize)) {
- if (verbose)
- printf("skipping blocksize %u 'cuz not a multiple of "
- "%s blocksize %u (or %s blocksize %u)\n",
- size, alg->name, alg->blocksize,
- ealg ? ealg->name : "n/a",
- ealg ? ealg->blocksize : 0);
- return;
- }
-
- region = mmap(NULL, threads * sizeof (struct timeval),
- PROT_READ|PROT_WRITE, MAP_ANON|MAP_SHARED, -1, 0);
- if (region == MAP_FAILED) {
- perror("mmap");
- return;
- }
- tvp = (struct timeval *) region;
-#ifdef __FreeBSD__
- if (profile) {
- size_t tlen = sizeof (otiming);
- int timing = 1;
-
- resetstats();
- if (sysctlbyname("debug.crypto_timing", &otiming, &tlen,
- &timing, sizeof (timing)) < 0)
- perror("debug.crypto_timing");
- }
-#endif
-
- if (threads > 1) {
- for (i = 0; i < threads; i++)
- if (fork() == 0) {
- cpuset_t mask;
- CPU_ZERO(&mask);
- CPU_SET(i, &mask);
- cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID,
- -1, sizeof(mask), &mask);
- runtest(ealg, alg, count, size, cmd, &tvp[i]);
- exit(0);
- }
- while (waitpid(WAIT_MYPGRP, &status, 0) != -1)
- ;
- } else
- runtest(ealg, alg, count, size, cmd, tvp);
-
- t = 0;
- for (i = 0; i < threads; i++)
- t += (((double)tvp[i].tv_sec * 1000000 + tvp[i].tv_usec) / 1000000);
- if (t) {
- int nops = alg->ishash ? count : 2*count;
-
- nops *= threads;
- printf("%8.3lf sec, %7d %6s%s%6s crypts, %7d bytes, %8.0lf byte/sec, %7.1lf Mb/sec\n",
- t, nops, alg->name, ealg? "+" : "", ealg? ealg->name : "",
- size, (double)nops*size / t,
- (double)nops*size / t * 8 / 1024 / 1024);
- }
-#ifdef __FreeBSD__
- if (profile) {
- struct cryptostats stats;
- size_t slen = sizeof (stats);
-
- if (sysctlbyname("debug.crypto_timing", NULL, NULL,
- &otiming, sizeof (otiming)) < 0)
- perror("debug.crypto_timing");
- if (sysctlbyname("kern.crypto_stats", &stats, &slen, NULL, 0) < 0)
- perror("kern.cryptostats");
- if (stats.cs_invoke.count) {
- printt("dispatch->invoke", &stats.cs_invoke);
- printt("invoke->done", &stats.cs_done);
- printt("done->cb", &stats.cs_cb);
- printt("cb->finis", &stats.cs_finis);
- }
- }
-#endif
- fflush(stdout);
-}
-
-int
-main(int argc, char **argv)
-{
- struct alg *alg = NULL, *ealg = NULL;
- char *tmp;
- int count = 1;
- int sizes[128], nsizes = 0;
- u_long cmd = CIOCGSESSION2;
- int testall = 0;
- int maxthreads = 1;
- int profile = 0;
- int i, ch;
-
- while ((ch = getopt(argc, argv, "cpzsva:bd:t:")) != -1) {
- switch (ch) {
-#ifdef CIOCGSSESSION
- case 's':
- cmd = CIOCGSSESSION;
- break;
-#endif
- case 'v':
- verbose++;
- break;
- case 'a':
- tmp = strchr(optarg, '+');
- if (tmp != NULL) {
- *tmp = '\0';
- ealg = getalgbyname(optarg);
- if (ealg == NULL || ealg->ishash)
- usage(argv[0]);
- optarg = tmp + 1;
- }
-
- alg = getalgbyname(optarg);
- if (alg == NULL) {
- if (streq(optarg, "rijndael"))
- alg = getalgbyname("aes");
- else
- usage(argv[0]);
- } else if (ealg != NULL && !alg->ishash)
- usage(argv[0]);
- break;
- case 'd':
- crid = crlookup(optarg);
- break;
- case 't':
- maxthreads = atoi(optarg);
- break;
- case 'z':
- testall = 1;
- break;
- case 'p':
- profile = 1;
- break;
- case 'b':
- opflags |= COP_F_BATCH;
- break;
- case 'c':
- verify = 1;
- break;
- default:
- usage(argv[0]);
- }
- }
- argc -= optind, argv += optind;
- if (argc > 0)
- count = atoi(argv[0]);
- while (argc > 1) {
- int s = atoi(argv[1]);
- if (nsizes < nitems(sizes)) {
- sizes[nsizes++] = s;
- } else {
- printf("Too many sizes, ignoring %u\n", s);
- }
- argc--, argv++;
- }
- if (maxthreads > CPU_SETSIZE)
- errx(EX_USAGE, "Too many threads, %d, choose fewer.", maxthreads);
-
- if (nsizes == 0) {
- if (alg)
- sizes[nsizes++] = alg->blocksize;
- else
- sizes[nsizes++] = 8;
- if (testall) {
- while (sizes[nsizes-1] < 8*1024) {
- sizes[nsizes] = sizes[nsizes-1]<<1;
- nsizes++;
- }
- }
- }
-
- if (testall) {
- for (i = 0; i < nitems(algorithms); i++) {
- int j;
- alg = &algorithms[i];
- for (j = 0; j < nsizes; j++)
- runtests(ealg, alg, count, sizes[j], cmd, maxthreads, profile);
- }
- } else {
- if (alg == NULL)
- alg = getalgbycode(CRYPTO_3DES_CBC);
- for (i = 0; i < nsizes; i++)
- runtests(ealg, alg, count, sizes[i], cmd, maxthreads, profile);
- }
-
- return (0);
-}
-
-void
-hexdump(char *p, int n)
-{
- int i, off;
-
- for (off = 0; n > 0; off += 16, n -= 16) {
- printf("%s%04x:", off == 0 ? "\n" : "", off);
- i = (n >= 16 ? 16 : n);
- do {
- printf(" %02x", *p++ & 0xff);
- } while (--i);
- printf("\n");
- }
-}
diff --git a/tools/tools/nanobsd/defaults.sh b/tools/tools/nanobsd/defaults.sh
index 65bace957f71..4f0cc2fa99bd 100755
--- a/tools/tools/nanobsd/defaults.sh
+++ b/tools/tools/nanobsd/defaults.sh
@@ -79,7 +79,12 @@ CONF_BUILD=' '
CONF_INSTALL=' '
# Options to put in make.conf during both build- & installworld.
-CONF_WORLD=' '
+CONF_WORLD='
+WITHOUT_DEBUG_FILES=true
+WITHOUT_LIB32=true
+WITHOUT_KERNEL_SYMBOLS=true
+WITHOUT_TESTS=true
+'
# Kernel config file to use
NANO_KERNEL=GENERIC
@@ -104,7 +109,7 @@ NANO_NEWFS="-b 4096 -f 512 -i 8192 -U"
NANO_DRIVE=ada0
# Target media size in 512 bytes sectors
-NANO_MEDIASIZE=2000000
+NANO_MEDIASIZE=4000000
# Number of code images on media (1 or 2)
NANO_IMAGES=2
@@ -204,30 +209,29 @@ SRC_ENV_CONF=/dev/null
#
#######################################################################
-# Export values into the shell. Must use { } instead of ( ) like
-# other functions to avoid a subshell.
+# Export values into the shell.
# We set __MAKE_CONF as a global since it is easier to get quoting
# right for paths with spaces in them.
-make_export ( ) {
+make_export() {
# Similar to export_var, except puts the data out to stdout
- var=$1
+ local var=$1
eval val=\$$var
echo "Setting variable: $var=\"$val\""
export $1
}
-nano_make_build_env ( ) {
+nano_make_build_env() {
__MAKE_CONF="${NANO_MAKE_CONF_BUILD}"
make_export __MAKE_CONF
}
-nano_make_install_env ( ) {
+nano_make_install_env() {
__MAKE_CONF="${NANO_MAKE_CONF_INSTALL}"
make_export __MAKE_CONF
}
# Extra environment variables for kernel builds
-nano_make_kernel_env ( ) {
+nano_make_kernel_env() {
if [ -f "${NANO_KERNEL}" ] ; then
KERNCONFDIR="$(realpath $(dirname ${NANO_KERNEL}))"
KERNCONF="$(basename ${NANO_KERNEL})"
@@ -239,23 +243,23 @@ nano_make_kernel_env ( ) {
fi
}
-nano_global_make_env ( ) (
+nano_global_make_env() {
# global settings for the make.conf file, if set
[ -z "${NANO_ARCH}" ] || echo TARGET_ARCH="${NANO_ARCH}"
[ -z "${NANO_CPUTYPE}" ] || echo TARGET_CPUTYPE="${NANO_CPUTYPE}"
-)
+}
#
# Create empty files in the target tree, and record the fact. All paths
# are relative to NANO_WORLDDIR.
#
-tgt_touch ( ) (
+tgt_touch() {
cd "${NANO_WORLDDIR}"
for i; do
touch $i
echo "./${i} type=file" >> ${NANO_METALOG}
done
-)
+}
#
# Convert a directory into a symlink. Takes two arguments, the
@@ -263,9 +267,9 @@ tgt_touch ( ) (
# directory is removed and a symlink is created. If we're doing
# a nopriv build, then append this fact to the metalog
#
-tgt_dir2symlink ( ) (
- dir=$1
- symlink=$2
+tgt_dir2symlink() {
+ local dir=$1
+ local symlink=$2
cd "${NANO_WORLDDIR}"
rm -xrf "$dir"
@@ -273,28 +277,28 @@ tgt_dir2symlink ( ) (
if [ -n "$NANO_METALOG" ]; then
echo "./${dir} type=link mode=0777 link=${symlink}" >> ${NANO_METALOG}
fi
-)
+}
# run in the world chroot, errors fatal
-CR ( ) {
+CR() {
chroot "${NANO_WORLDDIR}" /bin/sh -exc "$*"
}
# run in the world chroot, errors not fatal
-CR0 ( ) {
+CR0() {
chroot "${NANO_WORLDDIR}" /bin/sh -c "$*" || true
}
-clean_build ( ) (
+clean_build() {
pprint 2 "Clean and create object directory (${MAKEOBJDIRPREFIX})"
if ! rm -xrf ${MAKEOBJDIRPREFIX}/ > /dev/null 2>&1 ; then
chflags -R noschg ${MAKEOBJDIRPREFIX}/
rm -xr ${MAKEOBJDIRPREFIX}/
fi
-)
+}
-make_conf_build ( ) (
+make_conf_build() {
pprint 2 "Construct build make.conf ($NANO_MAKE_CONF_BUILD)"
mkdir -p ${MAKEOBJDIRPREFIX}
@@ -307,9 +311,9 @@ make_conf_build ( ) (
echo "${CONF_WORLD}"
echo "${CONF_BUILD}"
) > ${NANO_MAKE_CONF_BUILD}
-)
+}
-build_world ( ) (
+build_world() {
pprint 2 "run buildworld"
pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.bw"
@@ -319,9 +323,9 @@ build_world ( ) (
cd "${NANO_SRC}"
${NANO_PMAKE} buildworld
) > ${MAKEOBJDIRPREFIX}/_.bw 2>&1
-)
+}
-build_kernel ( ) (
+build_kernel() {
pprint 2 "build kernel ($NANO_KERNEL)"
pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.bk"
@@ -337,9 +341,9 @@ build_kernel ( ) (
cd "${NANO_SRC}"
${NANO_PMAKE} buildkernel
) > ${MAKEOBJDIRPREFIX}/_.bk 2>&1
-)
+}
-clean_world ( ) (
+clean_world() {
if [ "${NANO_OBJ}" != "${MAKEOBJDIRPREFIX}" ]; then
pprint 2 "Clean and create object directory (${NANO_OBJ})"
if ! rm -xrf ${NANO_OBJ}/ > /dev/null 2>&1 ; then
@@ -356,9 +360,9 @@ clean_world ( ) (
fi
mkdir -p "${NANO_WORLDDIR}"
fi
-)
+}
-make_conf_install ( ) (
+make_conf_install() {
pprint 2 "Construct install make.conf ($NANO_MAKE_CONF_INSTALL)"
# Make sure we get all the global settings that NanoBSD wants
@@ -372,9 +376,9 @@ make_conf_install ( ) (
echo METALOG=${NANO_METALOG}
fi
) > ${NANO_MAKE_CONF_INSTALL}
-)
+}
-install_world ( ) (
+install_world() {
pprint 2 "installworld"
pprint 3 "log: ${NANO_LOG}/_.iw"
@@ -385,9 +389,9 @@ install_world ( ) (
${NANO_MAKE} installworld DESTDIR="${NANO_WORLDDIR}" DB_FROM_SRC=yes
chflags -R noschg "${NANO_WORLDDIR}"
) > ${NANO_LOG}/_.iw 2>&1
-)
+}
-install_etc ( ) (
+install_etc() {
pprint 2 "install /etc"
pprint 3 "log: ${NANO_LOG}/_.etc"
@@ -400,9 +404,9 @@ install_etc ( ) (
# so they can spam it.
cp /dev/null "${NANO_WORLDDIR}"/etc/make.conf
) > ${NANO_LOG}/_.etc 2>&1
-)
+}
-install_kernel ( ) (
+install_kernel() {
pprint 2 "install kernel ($NANO_KERNEL)"
pprint 3 "log: ${NANO_LOG}/_.ik"
@@ -421,9 +425,9 @@ install_kernel ( ) (
${NANO_MAKE} installkernel DESTDIR="${NANO_WORLDDIR}" DB_FROM_SRC=yes
) > ${NANO_LOG}/_.ik 2>&1
-)
+}
-native_xtools ( ) (
+native_xtools() {
pprint 2 "Installing the optimized native build tools for cross env"
pprint 3 "log: ${NANO_LOG}/_.native_xtools"
@@ -436,13 +440,13 @@ native_xtools ( ) (
${NANO_MAKE} native-xtools-install DESTDIR="${NANO_WORLDDIR}"
) > ${NANO_LOG}/_.native_xtools 2>&1
-)
+}
#
# Run the requested set of early customization scripts, run before
# buildworld.
#
-run_early_customize ( ) {
+run_early_customize() {
pprint 2 "run early customize scripts"
for c in $NANO_EARLY_CUSTOMIZE
do
@@ -462,7 +466,7 @@ run_early_customize ( ) {
# done an installworld, installed the etc files, installed the kernel
# and tweaked them in the standard way.
#
-run_customize ( ) (
+run_customize() {
pprint 2 "run customize scripts"
for c in $NANO_CUSTOMIZE
@@ -472,13 +476,13 @@ run_customize ( ) (
pprint 4 "`type $c`"
( set -o xtrace ; $c ) > ${NANO_LOG}/_.cust.$c 2>&1
done
-)
+}
#
# Run any last-minute customization commands after we've had a chance to
# setup nanobsd, prune empty dirs from /usr, etc
#
-run_late_customize ( ) (
+run_late_customize() {
pprint 2 "run late customize scripts"
for c in $NANO_LATE_CUSTOMIZE
do
@@ -487,7 +491,7 @@ run_late_customize ( ) (
pprint 4 "`type $c`"
( set -o xtrace ; $c ) > ${NANO_LOG}/_.late_cust.$c 2>&1
done
-)
+}
#
# Hook called after we run all the late customize commands, but
@@ -496,7 +500,7 @@ run_late_customize ( ) (
# have been recording their actions. It's not anticipated that
# a user's cfg file would override this.
#
-fixup_before_diskimage ( ) (
+fixup_before_diskimage() {
# Run the deduplication script that takes the metalog journal and
# combines multiple entries for the same file (see source for
# details). We take the extra step of removing the size keywords. This
@@ -512,9 +516,9 @@ fixup_before_diskimage ( ) (
cat ${NANO_METALOG}.pre | ${NANO_TOOLS}/mtree-dedup.awk | \
sed -e 's/ size=[0-9][0-9]*//' | sort >> ${NANO_METALOG}
fi
-)
+}
-setup_nanobsd ( ) (
+setup_nanobsd() {
pprint 2 "configure nanobsd setup"
pprint 3 "log: ${NANO_LOG}/_.dl"
@@ -559,9 +563,9 @@ setup_nanobsd ( ) (
tgt_dir2symlink tmp var/tmp
) > ${NANO_LOG}/_.dl 2>&1
-)
+}
-setup_nanobsd_etc ( ) (
+setup_nanobsd_etc() {
pprint 2 "configure nanobsd /etc"
(
@@ -618,18 +622,18 @@ EOF
# Create directory for eventual /usr/local/etc contents
mkdir -p etc/local
)
-)
+}
-prune_usr ( ) (
+prune_usr() {
# Remove all empty directories in /usr
find "${NANO_WORLDDIR}"/usr -type d -depth -print |
while read d
do
rmdir $d > /dev/null 2>&1 || true
done
-)
+}
-newfs_part ( ) (
+newfs_part() {
local dev mnt lbl
dev=$1
mnt=$2
@@ -637,15 +641,15 @@ newfs_part ( ) (
echo newfs ${NANO_NEWFS} ${NANO_LABEL:+-L${NANO_LABEL}${lbl}} ${dev}
newfs ${NANO_NEWFS} ${NANO_LABEL:+-L${NANO_LABEL}${lbl}} ${dev}
mount -o async ${dev} ${mnt}
-)
+}
# Convenient spot to work around any umount issues that your build environment
# hits by overriding this method.
-nano_umount ( ) (
+nano_umount() {
umount ${1}
-)
+}
-populate_slice ( ) (
+populate_slice() {
local dev dir mnt lbl
dev=$1
dir=$2
@@ -660,23 +664,23 @@ populate_slice ( ) (
fi
df -i ${mnt}
nano_umount ${mnt}
-)
+}
-populate_cfg_slice ( ) (
+populate_cfg_slice() {
populate_slice "$1" "$2" "$3" "$4"
-)
+}
-populate_data_slice ( ) (
+populate_data_slice() {
populate_slice "$1" "$2" "$3" "$4"
-)
+}
-last_orders ( ) (
+last_orders() {
# Redefine this function with any last orders you may have
# after the build completed, for instance to copy the finished
# image to a more convenient place:
# cp ${NANO_DISKIMGDIR}/${NANO_IMG1NAME} /home/ftp/pub/nanobsd.disk
true
-)
+}
#######################################################################
#
@@ -688,7 +692,7 @@ last_orders ( ) (
# Common Flash device geometries
#
-FlashDevice ( ) {
+FlashDevice() {
if [ -d ${NANO_TOOLS} ] ; then
. ${NANO_TOOLS}/FlashDevice.sub
else
@@ -717,8 +721,8 @@ FlashDevice ( ) {
# The generic-hdd device is preferred for flash devices larger than 1GB.
#
-UsbDevice ( ) {
- a1=`echo $1 | tr '[:upper:]' '[:lower:]'`
+UsbDevice() {
+ local a1=`echo $1 | tr '[:upper:]' '[:lower:]'`
case $a1 in
generic-fdd)
NANO_HEADS=64
@@ -740,7 +744,7 @@ UsbDevice ( ) {
#######################################################################
# Setup serial console
-cust_comconsole ( ) (
+cust_comconsole() {
# Enable getty on console
sed -i "" -e '/^tty[du]0/s/off/onifconsole/' ${NANO_WORLDDIR}/etc/ttys
@@ -749,32 +753,32 @@ cust_comconsole ( ) (
# Tell loader to use serial console early.
echo "${NANO_BOOT2CFG}" > ${NANO_WORLDDIR}/boot.config
-)
+}
#######################################################################
# Allow root login via ssh
-cust_allow_ssh_root ( ) (
+cust_allow_ssh_root() {
sed -i "" -E 's/^#?PermitRootLogin.*/PermitRootLogin yes/' \
${NANO_WORLDDIR}/etc/ssh/sshd_config
-)
+}
#######################################################################
# Install the stuff under ./Files
-cust_install_files ( ) (
+cust_install_files() {
cd "${NANO_TOOLS}/Files"
find . -print | grep -Ev '/(CVS|\.svn|\.hg|\.git)/' | cpio ${CPIO_SYMLINK} -Ldumpv ${NANO_WORLDDIR}
if [ -n "${NANO_CUST_FILES_MTREE}" -a -f ${NANO_CUST_FILES_MTREE} ]; then
CR "mtree -eiU -p /" <${NANO_CUST_FILES_MTREE}
fi
-)
+}
#######################################################################
# Install packages from ${NANO_PACKAGE_DIR}
-cust_pkgng ( ) (
+cust_pkgng() {
mkdir -p ${NANO_WORLDDIR}/usr/local/etc
local PKG_CONF="${NANO_WORLDDIR}/usr/local/etc/pkg.conf"
local PKGCMD="env BATCH=YES ASSUME_ALWAYS_YES=YES PKG_DBDIR=${NANO_PKG_META_BASE}/pkg SIGNATURE_TYPE=none /usr/sbin/pkg"
@@ -836,14 +840,14 @@ cust_pkgng ( ) (
umount ${NANO_WORLDDIR}/dev
umount ${NANO_WORLDDIR}/_.p
rm -xrf ${NANO_WORLDDIR}/_.p
-)
+}
#######################################################################
# Convenience function:
# Register all args as early customize function to run just before
# build commences.
-early_customize_cmd ( ) {
+early_customize_cmd() {
NANO_EARLY_CUSTOMIZE="$NANO_EARLY_CUSTOMIZE $*"
}
@@ -851,7 +855,7 @@ early_customize_cmd ( ) {
# Convenience function:
# Register all args as customize function.
-customize_cmd ( ) {
+customize_cmd() {
NANO_CUSTOMIZE="$NANO_CUSTOMIZE $*"
}
@@ -860,7 +864,7 @@ customize_cmd ( ) {
# Register all args as late customize function to run just before
# image creation.
-late_customize_cmd ( ) {
+late_customize_cmd() {
NANO_LATE_CUSTOMIZE="$NANO_LATE_CUSTOMIZE $*"
}
@@ -872,16 +876,16 @@ late_customize_cmd ( ) {
# Progress Print
# Print $2 at level $1.
-pprint ( ) (
+pprint() {
if [ "$1" -le $PPLEVEL ]; then
runtime=$(( `date +%s` - $NANO_STARTTIME ))
printf "%s %.${1}s %s\n" "`date -u -r $runtime +%H:%M:%S`" "#####" "$2" 1>&3
fi
-)
+}
-usage ( ) {
+usage() {
(
- echo "Usage: $0 [-BbfhIiKknqvWwX] [-c config_file]"
+ echo "Usage: $0 [-BbfhIiKknpqvWwX] [-c config_file]"
echo " -B suppress installs (both kernel and world)"
echo " -b suppress builds (both kernel and world)"
echo " -c specify config file"
@@ -892,6 +896,7 @@ usage ( ) {
echo " -K suppress installkernel"
echo " -k suppress buildkernel"
echo " -n add -DNO_CLEAN to buildworld, buildkernel, etc"
+ echo " -p suppress preparing the image"
echo " -q make output more quiet"
echo " -v make output more verbose"
echo " -W suppress installworld"
@@ -905,7 +910,7 @@ usage ( ) {
# Setup and Export Internal variables
#
-export_var ( ) { # Don't want a subshell
+export_var() {
var=$1
# Lookup value of the variable.
eval val=\$$var
@@ -914,8 +919,7 @@ export_var ( ) { # Don't want a subshell
}
# Call this function to set defaults _after_ parsing options.
-# don't want a subshell otherwise variable setting is thrown away.
-set_defaults_and_export ( ) {
+set_defaults_and_export() {
: ${NANO_OBJ:=/usr/obj/nanobsd.${NANO_NAME}${NANO_LAYOUT:+.${NANO_LAYOUT}}}
: ${MAKEOBJDIRPREFIX:=${NANO_OBJ}}
: ${NANO_DISKIMGDIR:=${NANO_OBJ}}
diff --git a/tools/tools/nanobsd/embedded/common b/tools/tools/nanobsd/embedded/common
index 4aecd3602f6f..132ca9e2ba5b 100644
--- a/tools/tools/nanobsd/embedded/common
+++ b/tools/tools/nanobsd/embedded/common
@@ -1,4 +1,4 @@
-
+#!/bin/sh
#-
# Copyright (c) 2015 M. Warner Losh <imp@FreeBSD.org>
# Copyright (c) 2010-2011 iXsystems, Inc.
@@ -113,18 +113,18 @@ NANO_FAT_DIR=${NANO_LOG}/_.fat
customize_cmd cust_allow_ssh_root
-add_etc_make_conf ( ) (
+add_etc_make_conf() {
touch ${NANO_WORLDDIR}/etc/make.conf
-)
+}
customize_cmd add_etc_make_conf
-cust_install_machine_files ( ) (
+cust_install_machine_files() {
echo "cd ${NANO_CFG_BASE}/Files"
cd ${NANO_CFG_BASE}/Files
find . -print | grep -Ev '/(CVS|\.svn|\.hg|\.git)' | cpio -dumpv ${NANO_WORLDDIR}
-)
+}
customize_cmd cust_install_files
-customize_cmd cust_install_machine_files
+customize_cmd cust_install_machine_files
CONF_BUILD="
LOCAL_XTOOL_DIRS=usr.bin/mkimg
@@ -173,13 +173,13 @@ NANO_PACKAGE_ONLY=1
# Creates images for all the formats that use MBR / GPT
# split later if the #ifdef soup gets too bad.
-create_diskimage_gpt ( ) (
+create_diskimage_gpt() {
pprint 2 "build diskimage gpt ${NANO_NAME}"
create_diskimage_mbr $*
-)
+}
-create_diskimage_mbr ( ) (
+create_diskimage_mbr() {
local fmt
@@ -314,7 +314,7 @@ create_diskimage_mbr ( ) (
rm -f ${out}.xz
xz -9 --keep ${out}
) > ${NANO_LOG}/_.di 2>&1
-)
+}
die( ) {
echo "$*"
@@ -373,7 +373,7 @@ $var=$val"
fi
done
-typical_embedded ( ) (
+typical_embedded() {
# Need to create rc.conf before we copy over /etc to /conf/base/etc
# so now's a good time.
@@ -388,10 +388,10 @@ typical_embedded ( ) (
# Make sure that firstboot scripts run so growfs works.
# Note: still some issues remvoing this XXX
touch ${NANO_WORLDDIR}/firstboot
-)
+}
customize_cmd typical_embedded
-fix_pkg ( ) (
+fix_pkg() {
chdir ${NANO_WORLDDIR}
mkdir -p pkg
mkdir -p pkg/db
@@ -410,20 +410,20 @@ fix_pkg ( ) (
echo "./pkg/db type=dir uname=root gname=wheel mode=0755"
echo "./pkg/tmp type=dir uname=root gname=wheel mode=0755"
) >> ${NANO_METALOG}
-)
+}
customize_cmd fix_pkg
-save_build ( ) (
+save_build() {
VERSION_FILE=${NANO_WORLDDIR}/etc/version
if [ "${SVNREVISION}" = "${REVISION}" ]; then
echo "${NANO_NAME}" > "${VERSION_FILE}"
else
echo "${NANO_NAME} (${SVNREVISION})" > "${VERSION_FILE}"
fi
-)
+}
customize_cmd save_build
-shrink_md_fbsize ( ) (
+shrink_md_fbsize() {
# We have a lot of little files on our memory disks. Let's decrease
# the block and frag size to fit more little files on them (this
# halves our space requirement by ~50% on /etc and /var on 8.x --
@@ -431,12 +431,12 @@ shrink_md_fbsize ( ) (
# are 4 times larger).
sed -i '' -e 's,-S -i 4096,-S -i 4096 -b 4096 -f 512,' \
${NANO_WORLDDIR}/etc/rc.initdiskless
-)
+}
customize_cmd shrink_md_fbsize
customize_cmd cust_comconsole
-dos_boot_part ( ) (
+dos_boot_part() {
local d=/usr/local/share/u-boot/${NANO_BOOT_PKG}
local f=${NANO_FAT_DIR}
@@ -453,7 +453,7 @@ dos_boot_part ( ) (
# Now we need to copy over dtb files from the build.
cp ${NANO_WORLDDIR}/boot/dtb/*.dtb .
-)
+}
if [ -n "$NANO_BOOT_PKG" ]; then
d=/usr/local/share/u-boot/${NANO_BOOT_PKG}
@@ -468,7 +468,7 @@ if [ -n "$NANO_BOOT_PKG" ]; then
customize_cmd dos_boot_part
fi
-product_custom ( ) (
+product_custom() {
# not quite ready to tweak these in nopriv build
if [ -z ${NANO_NOPRIV_BUILD} ]; then
# Last second tweaks -- generally not needed
@@ -480,7 +480,7 @@ product_custom ( ) (
chown root:wheel ${NANO_WORLDDIR}/
chown root:wheel ${NANO_WORLDDIR}/usr
fi
-)
+}
late_customize_cmd product_custom
#
@@ -615,19 +615,19 @@ esac
NANO_SLICE_DATA= # Not included
# These don't make any sense to this strategy, so stub them out.
-calculate_partitioning ( ) (
-)
+calculate_partitioning() {
+}
# These don't make any sense to this strategy, so stub them out.
-create_code_slice ( ) (
-)
+create_code_slice() {
+}
# Each major disk scheme has its own routine. Generally
# this is for mbr, gpt, etc. These are generally are widely
# shared, but some specialized formats won't be shared.
-create_diskimage ( ) (
+create_diskimage() {
eval create_diskimage_${NANO_DISK_SCHEME}
-)
+}
# Set the path to the same path we use for buldworld to use latest mkimg
NANO_TARGET=$(cd ${NANO_SRC}; ${NANO_MAKE} TARGET_ARCH=${NANO_ARCH} -V _TARGET)
diff --git a/tools/tools/nanobsd/legacy.sh b/tools/tools/nanobsd/legacy.sh
index 2f689212263e..cbe56d6f560c 100644
--- a/tools/tools/nanobsd/legacy.sh
+++ b/tools/tools/nanobsd/legacy.sh
@@ -34,7 +34,7 @@
# Functions and variable definitions used by the legacy nanobsd
# image building system.
-calculate_partitioning ( ) (
+calculate_partitioning() {
echo $NANO_MEDIASIZE $NANO_IMAGES \
$NANO_SECTS $NANO_HEADS \
$NANO_CODESIZE $NANO_CONFSIZE $NANO_DATASIZE |
@@ -90,9 +90,9 @@ calculate_partitioning ( ) (
}
}
' > ${NANO_LOG}/_.partitioning
-)
+}
-create_code_slice ( ) (
+create_code_slice() {
pprint 2 "build code slice"
pprint 3 "log: ${NANO_OBJ}/_.cs"
@@ -142,10 +142,10 @@ create_code_slice ( ) (
trap - 1 2 15 EXIT
) > ${NANO_OBJ}/_.cs 2>&1
-)
+}
-create_diskimage ( ) (
+create_diskimage() {
pprint 2 "build diskimage"
pprint 3 "log: ${NANO_OBJ}/_.di"
@@ -243,4 +243,4 @@ create_diskimage ( ) (
trap - 1 2 15 EXIT
) > ${NANO_LOG}/_.di 2>&1
-)
+}
diff --git a/tools/tools/nanobsd/nanobsd.sh b/tools/tools/nanobsd/nanobsd.sh
index 4c390d8ca371..208bc646122d 100755
--- a/tools/tools/nanobsd/nanobsd.sh
+++ b/tools/tools/nanobsd/nanobsd.sh
@@ -49,7 +49,7 @@ do_prep_image=true
. "${topdir}/legacy.sh"
set +e
-args=`getopt BKXWbc:fhiIknqvw $*`
+args=`getopt BKXWbc:fhiIknpqvw $*`
if [ $? -ne 0 ] ; then
usage
exit 2
@@ -66,6 +66,15 @@ do
do_installkernel=false
shift
;;
+ -I)
+ do_world=false
+ do_kernel=false
+ do_installworld=false
+ do_installkernel=false
+ do_prep_image=false
+ do_image=true
+ shift
+ ;;
-K)
do_installkernel=false
shift
@@ -112,6 +121,10 @@ do
do_clean=false
shift
;;
+ -p)
+ do_prep_image=false
+ shift
+ ;;
-q)
PPLEVEL=$(($PPLEVEL - 1))
shift
@@ -124,15 +137,6 @@ do
do_world=false
shift
;;
- -I)
- do_world=false
- do_kernel=false
- do_installworld=false
- do_installkernel=false
- do_prep_image=false
- do_image=true
- shift
- ;;
--)
shift
break
@@ -158,7 +162,11 @@ fi
pprint 1 "NanoBSD image ${NANO_NAME} build starting"
-run_early_customize
+if $do_prep_image ; then
+ run_early_customize
+else
+ pprint 2 "Skipping early customization for image prep (as instructed)"
+fi
if $do_world ; then
if $do_clean ; then
diff --git a/tools/tools/nanobsd/rescue/common b/tools/tools/nanobsd/rescue/common
index 15bf10f5e67d..a145a1ded32a 100644
--- a/tools/tools/nanobsd/rescue/common
+++ b/tools/tools/nanobsd/rescue/common
@@ -1,5 +1,5 @@
-#
-#
+#!/bin/sh
+
#NANO_SRC=$(pwd)
#NANO_SRC=${NANO_SRC%/tools/tools/nanobsd/rescue}
#NANO_OBJ=${NANO_SRC}/../nanobsd-builds/${NANO_NAME}/obj
@@ -24,12 +24,12 @@ NANO_MD_BACKING=file
# Options to put in make.conf during buildworld only
CONF_BUILD='
'
-# Options to put in make.conf during installworld only
+# Options to put in make.conf during installworld only
CONF_INSTALL='
'
-# Options to put in make.conf during both build- & installworld.
-CONF_WORLD='
-CFLAGS=-O -pipe
+# Options to put in make.conf during both build- & installworld.
+CONF_WORLD='
+CFLAGS=-O -pipe
# We do not need these for rescue
WITHOUT_TESTS=true
WITHOUT_DEBUG_FILES=true
@@ -71,9 +71,9 @@ customize_cmd cust_install_files
#customize_cmd cust_pkgng
-cust_etc_cfg () (
- cd ${NANO_WORLDDIR}
-# mkdir -pv scratch
+cust_etc_cfg() {
+ cd ${NANO_WORLDDIR}
+ # mkdir -pv scratch
echo "hostname=\"rescue\"" > etc/rc.conf
echo "font8x14=\"iso15-8x14\"" >> etc/rc.conf
echo "font8x16=\"iso15-8x16\"" >> etc/rc.conf
@@ -85,12 +85,12 @@ cust_etc_cfg () (
echo "/dev/${NANO_DRIVE}s3 /cfg ufs rw,noauto 2 2" >> etc/fstab
echo "tmpfs /boot/zfs tmpfs rw,size=1048576,mode=777 0 0" >> etc/fstab
echo "ports:/usr/ports /usr/ports nfs rw,noauto,noatime,bg,soft,intr,nfsv3 0 0" >> etc/fstab
-# echo "/dev/ad1s1a /scratch ufs rw,noauto,noatime 0 0" >> etc/fstab
+ # echo "/dev/ad1s1a /scratch ufs rw,noauto,noatime 0 0" >> etc/fstab
/usr/sbin/pwd_mkdb -d etc etc/master.passwd
-)
+}
customize_cmd cust_etc_cfg
-setup_nanobsd_etc ( ) (
+setup_nanobsd_etc() {
pprint 2 "configure nanobsd /etc"
(
cd ${NANO_WORLDDIR}
@@ -102,8 +102,8 @@ setup_nanobsd_etc ( ) (
echo "NANO_DRIVE=${NANO_DRIVE}" > etc/nanobsd.conf
mkdir -p cfg
)
-)
-last_orders () (
+}
+last_orders() {
pprint 2 "last orders"
(
cd ${NANO_WORLDDIR}
@@ -112,7 +112,7 @@ last_orders () (
echo "/dev/iso9660/${BIGLABEL} / cd9660 ro,noatime 0 0" > etc/fstab
echo "tmpfs /boot/zfs tmpfs rw,size=1048576,mode=777 0 0" >> etc/fstab
echo "ports:/usr/ports /usr/ports nfs rw,noauto,noatime,bg,soft,intr,nfsv3 0 0" >> etc/fstab
-# echo "/dev/ad1s1a /scratch ufs rw,noauto,noatime 0 0" >> etc/fstab
+ # echo "/dev/ad1s1a /scratch ufs rw,noauto,noatime 0 0" >> etc/fstab
rm -f conf/default/etc/remount
touch conf/default/etc/.keepme
touch conf/default/var/.keepme
@@ -125,4 +125,4 @@ last_orders () (
-o label="${BIGLABEL}" -o publisher="RMX" \
-o bootimage="i386;_.w/boot/cdboot" -o no-emul-boot _.disk.iso _.w/
)
-)
+}
diff --git a/tools/tools/nvmf/nvmfd/Makefile b/tools/tools/nvmf/nvmfd/Makefile
new file mode 100644
index 000000000000..dc3dcc5e3a5c
--- /dev/null
+++ b/tools/tools/nvmf/nvmfd/Makefile
@@ -0,0 +1,14 @@
+.include <src.opts.mk>
+.PATH: ${SRCTOP}/sys/libkern
+
+PACKAGE=nvme-tools
+PROG= nvmfd
+SRCS= nvmfd.c controller.c ctl.c devices.c discovery.c gsb_crc32.c io.c
+CFLAGS+= -I${SRCTOP}/lib/libnvmf
+MAN= nvmfd.8
+LIBADD+= nvmf pthread util nv
+
+.include <bsd.prog.mk>
+
+CFLAGS.ctl.c= -I${SRCTOP}/sys
+CWARNFLAGS.gsb_crc32.c= -Wno-cast-align
diff --git a/tools/tools/nvmf/nvmfd/Makefile.depend b/tools/tools/nvmf/nvmfd/Makefile.depend
new file mode 100644
index 000000000000..c4c6125c7a7c
--- /dev/null
+++ b/tools/tools/nvmf/nvmfd/Makefile.depend
@@ -0,0 +1,20 @@
+# Autogenerated - do NOT edit!
+
+DIRDEPS = \
+ include \
+ include/arpa \
+ include/xlocale \
+ lib/${CSU_DIR} \
+ lib/libc \
+ lib/libcompiler_rt \
+ lib/libnv \
+ lib/libnvmf \
+ lib/libthr \
+ lib/libutil \
+
+
+.include <dirdeps.mk>
+
+.if ${DEP_RELDIR} == ${_DEP_RELDIR}
+# local dependencies - needed for -jN in clean tree
+.endif
diff --git a/tools/tools/nvmf/nvmfd/controller.c b/tools/tools/nvmf/nvmfd/controller.c
new file mode 100644
index 000000000000..e9435bce69da
--- /dev/null
+++ b/tools/tools/nvmf/nvmfd/controller.c
@@ -0,0 +1,244 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2023-2024 Chelsio Communications, Inc.
+ * Written by: John Baldwin <jhb@FreeBSD.org>
+ */
+
+#include <err.h>
+#include <errno.h>
+#include <libnvmf.h>
+#include <stdlib.h>
+
+#include "internal.h"
+
+struct controller {
+ struct nvmf_qpair *qp;
+
+ uint64_t cap;
+ uint32_t vs;
+ uint32_t cc;
+ uint32_t csts;
+
+ bool shutdown;
+
+ struct nvme_controller_data cdata;
+};
+
+static bool
+update_cc(struct controller *c, uint32_t new_cc)
+{
+ uint32_t changes;
+
+ if (c->shutdown)
+ return (false);
+ if (!nvmf_validate_cc(c->qp, c->cap, c->cc, new_cc))
+ return (false);
+
+ changes = c->cc ^ new_cc;
+ c->cc = new_cc;
+
+ /* Handle shutdown requests. */
+ if (NVMEV(NVME_CC_REG_SHN, changes) != 0 &&
+ NVMEV(NVME_CC_REG_SHN, new_cc) != 0) {
+ c->csts &= ~NVMEM(NVME_CSTS_REG_SHST);
+ c->csts |= NVMEF(NVME_CSTS_REG_SHST, NVME_SHST_COMPLETE);
+ c->shutdown = true;
+ }
+
+ if (NVMEV(NVME_CC_REG_EN, changes) != 0) {
+ if (NVMEV(NVME_CC_REG_EN, new_cc) == 0) {
+ /* Controller reset. */
+ c->csts = 0;
+ c->shutdown = true;
+ } else
+ c->csts |= NVMEF(NVME_CSTS_REG_RDY, 1);
+ }
+ return (true);
+}
+
+static void
+handle_property_get(const struct controller *c, const struct nvmf_capsule *nc,
+ const struct nvmf_fabric_prop_get_cmd *pget)
+{
+ struct nvmf_fabric_prop_get_rsp rsp;
+
+ nvmf_init_cqe(&rsp, nc, 0);
+
+ switch (le32toh(pget->ofst)) {
+ case NVMF_PROP_CAP:
+ if (pget->attrib.size != NVMF_PROP_SIZE_8)
+ goto error;
+ rsp.value.u64 = htole64(c->cap);
+ break;
+ case NVMF_PROP_VS:
+ if (pget->attrib.size != NVMF_PROP_SIZE_4)
+ goto error;
+ rsp.value.u32.low = htole32(c->vs);
+ break;
+ case NVMF_PROP_CC:
+ if (pget->attrib.size != NVMF_PROP_SIZE_4)
+ goto error;
+ rsp.value.u32.low = htole32(c->cc);
+ break;
+ case NVMF_PROP_CSTS:
+ if (pget->attrib.size != NVMF_PROP_SIZE_4)
+ goto error;
+ rsp.value.u32.low = htole32(c->csts);
+ break;
+ default:
+ goto error;
+ }
+
+ nvmf_send_response(nc, &rsp);
+ return;
+error:
+ nvmf_send_generic_error(nc, NVME_SC_INVALID_FIELD);
+}
+
+static void
+handle_property_set(struct controller *c, const struct nvmf_capsule *nc,
+ const struct nvmf_fabric_prop_set_cmd *pset)
+{
+ switch (le32toh(pset->ofst)) {
+ case NVMF_PROP_CC:
+ if (pset->attrib.size != NVMF_PROP_SIZE_4)
+ goto error;
+ if (!update_cc(c, le32toh(pset->value.u32.low)))
+ goto error;
+ break;
+ default:
+ goto error;
+ }
+
+ nvmf_send_success(nc);
+ return;
+error:
+ nvmf_send_generic_error(nc, NVME_SC_INVALID_FIELD);
+}
+
+static void
+handle_fabrics_command(struct controller *c,
+ const struct nvmf_capsule *nc, const struct nvmf_fabric_cmd *fc)
+{
+ switch (fc->fctype) {
+ case NVMF_FABRIC_COMMAND_PROPERTY_GET:
+ handle_property_get(c, nc,
+ (const struct nvmf_fabric_prop_get_cmd *)fc);
+ break;
+ case NVMF_FABRIC_COMMAND_PROPERTY_SET:
+ handle_property_set(c, nc,
+ (const struct nvmf_fabric_prop_set_cmd *)fc);
+ break;
+ case NVMF_FABRIC_COMMAND_CONNECT:
+ warnx("CONNECT command on connected queue");
+ nvmf_send_generic_error(nc, NVME_SC_COMMAND_SEQUENCE_ERROR);
+ break;
+ case NVMF_FABRIC_COMMAND_DISCONNECT:
+ warnx("DISCONNECT command on admin queue");
+ nvmf_send_error(nc, NVME_SCT_COMMAND_SPECIFIC,
+ NVMF_FABRIC_SC_INVALID_QUEUE_TYPE);
+ break;
+ default:
+ warnx("Unsupported fabrics command %#x", fc->fctype);
+ nvmf_send_generic_error(nc, NVME_SC_INVALID_OPCODE);
+ break;
+ }
+}
+
+static void
+handle_identify_command(const struct controller *c,
+ const struct nvmf_capsule *nc, const struct nvme_command *cmd)
+{
+ uint8_t cns;
+
+ cns = le32toh(cmd->cdw10) & 0xFF;
+ switch (cns) {
+ case 1:
+ break;
+ default:
+ warnx("Unsupported CNS %#x for IDENTIFY", cns);
+ goto error;
+ }
+
+ nvmf_send_controller_data(nc, &c->cdata, sizeof(c->cdata));
+ return;
+error:
+ nvmf_send_generic_error(nc, NVME_SC_INVALID_FIELD);
+}
+
+void
+controller_handle_admin_commands(struct controller *c, handle_command *cb,
+ void *cb_arg)
+{
+ struct nvmf_qpair *qp = c->qp;
+ const struct nvme_command *cmd;
+ struct nvmf_capsule *nc;
+ int error;
+
+ for (;;) {
+ error = nvmf_controller_receive_capsule(qp, &nc);
+ if (error != 0) {
+ if (error != ECONNRESET)
+ warnc(error, "Failed to read command capsule");
+ break;
+ }
+
+ cmd = nvmf_capsule_sqe(nc);
+
+ /*
+ * Only permit Fabrics commands while a controller is
+ * disabled.
+ */
+ if (NVMEV(NVME_CC_REG_EN, c->cc) == 0 &&
+ cmd->opc != NVME_OPC_FABRICS_COMMANDS) {
+ warnx("Unsupported admin opcode %#x while disabled\n",
+ cmd->opc);
+ nvmf_send_generic_error(nc,
+ NVME_SC_COMMAND_SEQUENCE_ERROR);
+ nvmf_free_capsule(nc);
+ continue;
+ }
+
+ if (cb(nc, cmd, cb_arg)) {
+ nvmf_free_capsule(nc);
+ continue;
+ }
+
+ switch (cmd->opc) {
+ case NVME_OPC_FABRICS_COMMANDS:
+ handle_fabrics_command(c, nc,
+ (const struct nvmf_fabric_cmd *)cmd);
+ break;
+ case NVME_OPC_IDENTIFY:
+ handle_identify_command(c, nc, cmd);
+ break;
+ default:
+ warnx("Unsupported admin opcode %#x", cmd->opc);
+ nvmf_send_generic_error(nc, NVME_SC_INVALID_OPCODE);
+ break;
+ }
+ nvmf_free_capsule(nc);
+ }
+}
+
+struct controller *
+init_controller(struct nvmf_qpair *qp,
+ const struct nvme_controller_data *cdata)
+{
+ struct controller *c;
+
+ c = calloc(1, sizeof(*c));
+ c->qp = qp;
+ c->cap = nvmf_controller_cap(c->qp);
+ c->vs = cdata->ver;
+ c->cdata = *cdata;
+
+ return (c);
+}
+
+void
+free_controller(struct controller *c)
+{
+ free(c);
+}
diff --git a/tools/tools/nvmf/nvmfd/ctl.c b/tools/tools/nvmf/nvmfd/ctl.c
new file mode 100644
index 000000000000..73e90e1411bd
--- /dev/null
+++ b/tools/tools/nvmf/nvmfd/ctl.c
@@ -0,0 +1,137 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2023 Chelsio Communications, Inc.
+ * Written by: John Baldwin <jhb@FreeBSD.org>
+ */
+
+#include <sys/param.h>
+#include <sys/linker.h>
+#include <sys/nv.h>
+#include <sys/time.h>
+#include <err.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <libnvmf.h>
+#include <string.h>
+
+#include <cam/ctl/ctl.h>
+#include <cam/ctl/ctl_io.h>
+#include <cam/ctl/ctl_ioctl.h>
+
+#include "internal.h"
+
+static int ctl_fd = -1;
+static int ctl_port;
+
+static void
+open_ctl(void)
+{
+ if (ctl_fd > 0)
+ return;
+
+ ctl_fd = open(CTL_DEFAULT_DEV, O_RDWR);
+ if (ctl_fd == -1 && errno == ENOENT) {
+ if (kldload("ctl") == -1)
+ err(1, "Failed to load ctl.ko");
+ ctl_fd = open(CTL_DEFAULT_DEV, O_RDWR);
+ }
+ if (ctl_fd == -1)
+ err(1, "Failed to open %s", CTL_DEFAULT_DEV);
+}
+
+void
+init_ctl_port(const char *subnqn, const struct nvmf_association_params *params)
+{
+ char result_buf[256];
+ struct ctl_port_entry entry;
+ struct ctl_req req;
+ nvlist_t *nvl;
+
+ open_ctl();
+
+ nvl = nvlist_create(0);
+
+ nvlist_add_string(nvl, "subnqn", subnqn);
+
+ /* XXX: Hardcoded in discovery.c */
+ nvlist_add_stringf(nvl, "portid", "%u", 1);
+
+ nvlist_add_stringf(nvl, "max_io_qsize", "%u", params->max_io_qsize);
+
+ memset(&req, 0, sizeof(req));
+ strlcpy(req.driver, "nvmf", sizeof(req.driver));
+ req.reqtype = CTL_REQ_CREATE;
+ req.args = nvlist_pack(nvl, &req.args_len);
+ if (req.args == NULL)
+ errx(1, "Failed to pack nvlist for CTL_PORT/CTL_REQ_CREATE");
+ req.result = result_buf;
+ req.result_len = sizeof(result_buf);
+ if (ioctl(ctl_fd, CTL_PORT_REQ, &req) != 0)
+ err(1, "ioctl(CTL_PORT/CTL_REQ_CREATE)");
+ if (req.status == CTL_LUN_ERROR)
+ errx(1, "Failed to create CTL port: %s", req.error_str);
+ if (req.status != CTL_LUN_OK)
+ errx(1, "Failed to create CTL port: %d", req.status);
+
+ nvlist_destroy(nvl);
+ nvl = nvlist_unpack(result_buf, req.result_len, 0);
+ if (nvl == NULL)
+ errx(1, "Failed to unpack nvlist from CTL_PORT/CTL_REQ_CREATE");
+
+ ctl_port = nvlist_get_number(nvl, "port_id");
+ nvlist_destroy(nvl);
+
+ memset(&entry, 0, sizeof(entry));
+ entry.targ_port = ctl_port;
+ if (ioctl(ctl_fd, CTL_ENABLE_PORT, &entry) != 0)
+ errx(1, "ioctl(CTL_ENABLE_PORT)");
+}
+
+void
+shutdown_ctl_port(const char *subnqn)
+{
+ struct ctl_req req;
+ nvlist_t *nvl;
+
+ open_ctl();
+
+ nvl = nvlist_create(0);
+
+ nvlist_add_string(nvl, "subnqn", subnqn);
+
+ memset(&req, 0, sizeof(req));
+ strlcpy(req.driver, "nvmf", sizeof(req.driver));
+ req.reqtype = CTL_REQ_REMOVE;
+ req.args = nvlist_pack(nvl, &req.args_len);
+ if (req.args == NULL)
+ errx(1, "Failed to pack nvlist for CTL_PORT/CTL_REQ_REMOVE");
+ if (ioctl(ctl_fd, CTL_PORT_REQ, &req) != 0)
+ err(1, "ioctl(CTL_PORT/CTL_REQ_REMOVE)");
+ if (req.status == CTL_LUN_ERROR)
+ errx(1, "Failed to remove CTL port: %s", req.error_str);
+ if (req.status != CTL_LUN_OK)
+ errx(1, "Failed to remove CTL port: %d", req.status);
+
+ nvlist_destroy(nvl);
+}
+
+void
+ctl_handoff_qpair(struct nvmf_qpair *qp,
+ const struct nvmf_fabric_connect_cmd *cmd,
+ const struct nvmf_fabric_connect_data *data)
+{
+ struct ctl_nvmf req;
+ int error;
+
+ memset(&req, 0, sizeof(req));
+ req.type = CTL_NVMF_HANDOFF;
+ error = nvmf_handoff_controller_qpair(qp, cmd, data, &req.data.handoff);
+ if (error != 0) {
+ warnc(error, "Failed to prepare qpair for handoff");
+ return;
+ }
+
+ if (ioctl(ctl_fd, CTL_NVMF, &req) != 0)
+ warn("ioctl(CTL_NVMF/CTL_NVMF_HANDOFF)");
+}
diff --git a/tools/tools/nvmf/nvmfd/devices.c b/tools/tools/nvmf/nvmfd/devices.c
new file mode 100644
index 000000000000..fafc1077f207
--- /dev/null
+++ b/tools/tools/nvmf/nvmfd/devices.c
@@ -0,0 +1,386 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2023-2024 Chelsio Communications, Inc.
+ * Written by: John Baldwin <jhb@FreeBSD.org>
+ */
+
+#include <sys/disk.h>
+#include <sys/gsb_crc32.h>
+#include <sys/ioctl.h>
+#include <sys/stat.h>
+#include <net/ieee_oui.h>
+#include <err.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <libnvmf.h>
+#include <libutil.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "internal.h"
+
+#define RAMDISK_PREFIX "ramdisk:"
+
+struct backing_device {
+ enum { RAMDISK, FILE, CDEV } type;
+ union {
+ int fd; /* FILE, CDEV */
+ void *mem; /* RAMDISK */
+ };
+ u_int sector_size;
+ uint64_t nlbas;
+ uint64_t eui64;
+};
+
+static struct backing_device *devices;
+static u_int ndevices;
+
+static uint64_t
+generate_eui64(uint32_t low)
+{
+ return (OUI_FREEBSD_NVME_LOW << 16 | low);
+}
+
+static uint32_t
+crc32(const void *buf, size_t len)
+{
+ return (calculate_crc32c(0xffffffff, buf, len) ^ 0xffffffff);
+}
+
+static void
+init_ramdisk(const char *config, struct backing_device *dev)
+{
+ static uint32_t ramdisk_idx = 1;
+ uint64_t num;
+
+ dev->type = RAMDISK;
+ dev->sector_size = 512;
+ if (expand_number(config, &num))
+ errx(1, "Invalid ramdisk specification: %s", config);
+ if ((num % dev->sector_size) != 0)
+ errx(1, "Invalid ramdisk size %ju", (uintmax_t)num);
+ dev->mem = calloc(num, 1);
+ dev->nlbas = num / dev->sector_size;
+ dev->eui64 = generate_eui64('M' << 24 | ramdisk_idx++);
+}
+
+static void
+init_filedevice(const char *config, int fd, struct stat *sb,
+ struct backing_device *dev)
+{
+ dev->type = FILE;
+ dev->fd = fd;
+ dev->sector_size = 512;
+ if ((sb->st_size % dev->sector_size) != 0)
+ errx(1, "File size is not a multiple of 512: %s", config);
+ dev->nlbas = sb->st_size / dev->sector_size;
+ dev->eui64 = generate_eui64('F' << 24 |
+ (crc32(config, strlen(config)) & 0xffffff));
+}
+
+static void
+init_chardevice(const char *config, int fd, struct backing_device *dev)
+{
+ off_t len;
+
+ dev->type = CDEV;
+ dev->fd = fd;
+ if (ioctl(fd, DIOCGSECTORSIZE, &dev->sector_size) != 0)
+ err(1, "Failed to fetch sector size for %s", config);
+ if (ioctl(fd, DIOCGMEDIASIZE, &len) != 0)
+ err(1, "Failed to fetch sector size for %s", config);
+ dev->nlbas = len / dev->sector_size;
+ dev->eui64 = generate_eui64('C' << 24 |
+ (crc32(config, strlen(config)) & 0xffffff));
+}
+
+static void
+init_device(const char *config, struct backing_device *dev)
+{
+ struct stat sb;
+ int fd;
+
+ /* Check for a RAM disk. */
+ if (strncmp(RAMDISK_PREFIX, config, strlen(RAMDISK_PREFIX)) == 0) {
+ init_ramdisk(config + strlen(RAMDISK_PREFIX), dev);
+ return;
+ }
+
+ fd = open(config, O_RDWR);
+ if (fd == -1)
+ err(1, "Failed to open %s", config);
+ if (fstat(fd, &sb) == -1)
+ err(1, "fstat");
+ switch (sb.st_mode & S_IFMT) {
+ case S_IFCHR:
+ init_chardevice(config, fd, dev);
+ break;
+ case S_IFREG:
+ init_filedevice(config, fd, &sb, dev);
+ break;
+ default:
+ errx(1, "Invalid file type for %s", config);
+ }
+}
+
+void
+register_devices(int ac, char **av)
+{
+ ndevices = ac;
+ devices = calloc(ndevices, sizeof(*devices));
+
+ for (int i = 0; i < ac; i++)
+ init_device(av[i], &devices[i]);
+}
+
+u_int
+device_count(void)
+{
+ return (ndevices);
+}
+
+static struct backing_device *
+lookup_device(uint32_t nsid)
+{
+ if (nsid == 0 || nsid > ndevices)
+ return (NULL);
+ return (&devices[nsid - 1]);
+}
+
+void
+device_active_nslist(uint32_t nsid, struct nvme_ns_list *nslist)
+{
+ u_int count;
+
+ memset(nslist, 0, sizeof(*nslist));
+ count = 0;
+ nsid++;
+ while (nsid <= ndevices) {
+ nslist->ns[count] = htole32(nsid);
+ count++;
+ if (count == nitems(nslist->ns))
+ break;
+ nsid++;
+ }
+}
+
+bool
+device_identification_descriptor(uint32_t nsid, void *buf)
+{
+ struct backing_device *dev;
+ char *p;
+
+ dev = lookup_device(nsid);
+ if (dev == NULL)
+ return (false);
+
+ memset(buf, 0, 4096);
+
+ p = buf;
+
+ /* EUI64 */
+ *p++ = 1;
+ *p++ = 8;
+ p += 2;
+ be64enc(p, dev->eui64);
+ return (true);
+}
+
+bool
+device_namespace_data(uint32_t nsid, struct nvme_namespace_data *nsdata)
+{
+ struct backing_device *dev;
+
+ dev = lookup_device(nsid);
+ if (dev == NULL)
+ return (false);
+
+ memset(nsdata, 0, sizeof(*nsdata));
+ nsdata->nsze = htole64(dev->nlbas);
+ nsdata->ncap = nsdata->nsze;
+ nsdata->nuse = nsdata->ncap;
+ nsdata->nlbaf = 1 - 1;
+ nsdata->flbas = NVMEF(NVME_NS_DATA_FLBAS_FORMAT, 0);
+ nsdata->lbaf[0] = NVMEF(NVME_NS_DATA_LBAF_LBADS,
+ ffs(dev->sector_size) - 1);
+
+ be64enc(nsdata->eui64, dev->eui64);
+ return (true);
+}
+
+static bool
+read_buffer(int fd, void *buf, size_t len, off_t offset)
+{
+ ssize_t nread;
+ char *dst;
+
+ dst = buf;
+ while (len > 0) {
+ nread = pread(fd, dst, len, offset);
+ if (nread == -1 && errno == EINTR)
+ continue;
+ if (nread <= 0)
+ return (false);
+ dst += nread;
+ len -= nread;
+ offset += nread;
+ }
+ return (true);
+}
+
+void
+device_read(uint32_t nsid, uint64_t lba, u_int nlb,
+ const struct nvmf_capsule *nc)
+{
+ struct backing_device *dev;
+ char *p, *src;
+ off_t off;
+ size_t len;
+
+ dev = lookup_device(nsid);
+ if (dev == NULL) {
+ nvmf_send_generic_error(nc,
+ NVME_SC_INVALID_NAMESPACE_OR_FORMAT);
+ return;
+ }
+
+ if (lba + nlb < lba || lba + nlb > dev->nlbas) {
+ nvmf_send_generic_error(nc, NVME_SC_LBA_OUT_OF_RANGE);
+ return;
+ }
+
+ off = lba * dev->sector_size;
+ len = nlb * dev->sector_size;
+ if (nvmf_capsule_data_len(nc) != len) {
+ nvmf_send_generic_error(nc, NVME_SC_INVALID_FIELD);
+ return;
+ }
+
+ if (dev->type == RAMDISK) {
+ p = NULL;
+ src = (char *)dev->mem + off;
+ } else {
+ p = malloc(len);
+ if (!read_buffer(dev->fd, p, len, off)) {
+ free(p);
+ nvmf_send_generic_error(nc,
+ NVME_SC_INTERNAL_DEVICE_ERROR);
+ return;
+ }
+ src = p;
+ }
+
+ nvmf_send_controller_data(nc, src, len);
+ free(p);
+}
+
+static bool
+write_buffer(int fd, const void *buf, size_t len, off_t offset)
+{
+ ssize_t nwritten;
+ const char *src;
+
+ src = buf;
+ while (len > 0) {
+ nwritten = pwrite(fd, src, len, offset);
+ if (nwritten == -1 && errno == EINTR)
+ continue;
+ if (nwritten <= 0)
+ return (false);
+ src += nwritten;
+ len -= nwritten;
+ offset += nwritten;
+ }
+ return (true);
+}
+
+void
+device_write(uint32_t nsid, uint64_t lba, u_int nlb,
+ const struct nvmf_capsule *nc)
+{
+ struct backing_device *dev;
+ char *p, *dst;
+ off_t off;
+ size_t len;
+ int error;
+
+ dev = lookup_device(nsid);
+ if (dev == NULL) {
+ nvmf_send_generic_error(nc,
+ NVME_SC_INVALID_NAMESPACE_OR_FORMAT);
+ return;
+ }
+
+ if (lba + nlb < lba || lba + nlb > dev->nlbas) {
+ nvmf_send_generic_error(nc, NVME_SC_LBA_OUT_OF_RANGE);
+ return;
+ }
+
+ off = lba * dev->sector_size;
+ len = nlb * dev->sector_size;
+ if (nvmf_capsule_data_len(nc) != len) {
+ nvmf_send_generic_error(nc, NVME_SC_INVALID_FIELD);
+ return;
+ }
+
+ if (dev->type == RAMDISK) {
+ p = NULL;
+ dst = (char *)dev->mem + off;
+ } else {
+ p = malloc(len);
+ dst = p;
+ }
+
+ error = nvmf_receive_controller_data(nc, 0, dst, len);
+ if (error != 0) {
+ nvmf_send_generic_error(nc, NVME_SC_TRANSIENT_TRANSPORT_ERROR);
+ free(p);
+ return;
+ }
+
+ if (dev->type != RAMDISK) {
+ if (!write_buffer(dev->fd, p, len, off)) {
+ free(p);
+ nvmf_send_generic_error(nc,
+ NVME_SC_INTERNAL_DEVICE_ERROR);
+ return;
+ }
+ }
+ free(p);
+ nvmf_send_success(nc);
+}
+
+void
+device_flush(uint32_t nsid, const struct nvmf_capsule *nc)
+{
+ struct backing_device *dev;
+
+ dev = lookup_device(nsid);
+ if (dev == NULL) {
+ nvmf_send_generic_error(nc,
+ NVME_SC_INVALID_NAMESPACE_OR_FORMAT);
+ return;
+ }
+
+ switch (dev->type) {
+ case RAMDISK:
+ break;
+ case FILE:
+ if (fdatasync(dev->fd) == -1) {
+ nvmf_send_error(nc, NVME_SCT_MEDIA_ERROR,
+ NVME_SC_WRITE_FAULTS);
+ return;
+ }
+ break;
+ case CDEV:
+ if (ioctl(dev->fd, DIOCGFLUSH) == -1) {
+ nvmf_send_error(nc, NVME_SCT_MEDIA_ERROR,
+ NVME_SC_WRITE_FAULTS);
+ return;
+ }
+ }
+
+ nvmf_send_success(nc);
+}
diff --git a/tools/tools/nvmf/nvmfd/discovery.c b/tools/tools/nvmf/nvmfd/discovery.c
new file mode 100644
index 000000000000..2cfe56731d7c
--- /dev/null
+++ b/tools/tools/nvmf/nvmfd/discovery.c
@@ -0,0 +1,342 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2023-2024 Chelsio Communications, Inc.
+ * Written by: John Baldwin <jhb@FreeBSD.org>
+ */
+
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <assert.h>
+#include <err.h>
+#include <libnvmf.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "internal.h"
+
+struct io_controller_data {
+ struct nvme_discovery_log_entry entry;
+ bool wildcard;
+};
+
+struct discovery_controller {
+ struct nvme_discovery_log *discovery_log;
+ size_t discovery_log_len;
+ int s;
+};
+
+struct discovery_thread_arg {
+ struct controller *c;
+ struct nvmf_qpair *qp;
+ int s;
+};
+
+static struct io_controller_data *io_controllers;
+static struct nvmf_association *discovery_na;
+static u_int num_io_controllers;
+
+static bool
+init_discovery_log_entry(struct nvme_discovery_log_entry *entry, int s,
+ const char *subnqn)
+{
+ struct sockaddr_storage ss;
+ socklen_t len;
+ bool wildcard;
+
+ len = sizeof(ss);
+ if (getsockname(s, (struct sockaddr *)&ss, &len) == -1)
+ err(1, "getsockname");
+
+ memset(entry, 0, sizeof(*entry));
+ entry->trtype = NVMF_TRTYPE_TCP;
+ switch (ss.ss_family) {
+ case AF_INET:
+ {
+ struct sockaddr_in *sin;
+
+ sin = (struct sockaddr_in *)&ss;
+ entry->adrfam = NVMF_ADRFAM_IPV4;
+ snprintf(entry->trsvcid, sizeof(entry->trsvcid), "%u",
+ htons(sin->sin_port));
+ if (inet_ntop(AF_INET, &sin->sin_addr, entry->traddr,
+ sizeof(entry->traddr)) == NULL)
+ err(1, "inet_ntop");
+ wildcard = (sin->sin_addr.s_addr == htonl(INADDR_ANY));
+ break;
+ }
+ case AF_INET6:
+ {
+ struct sockaddr_in6 *sin6;
+
+ sin6 = (struct sockaddr_in6 *)&ss;
+ entry->adrfam = NVMF_ADRFAM_IPV6;
+ snprintf(entry->trsvcid, sizeof(entry->trsvcid), "%u",
+ htons(sin6->sin6_port));
+ if (inet_ntop(AF_INET6, &sin6->sin6_addr, entry->traddr,
+ sizeof(entry->traddr)) == NULL)
+ err(1, "inet_ntop");
+ wildcard = (memcmp(&sin6->sin6_addr, &in6addr_any,
+ sizeof(in6addr_any)) == 0);
+ break;
+ }
+ default:
+ errx(1, "Unsupported address family %u", ss.ss_family);
+ }
+ entry->subtype = NVMF_SUBTYPE_NVME;
+ if (flow_control_disable)
+ entry->treq |= (1 << 2);
+ entry->portid = htole16(1);
+ entry->cntlid = htole16(NVMF_CNTLID_DYNAMIC);
+ entry->aqsz = NVME_MAX_ADMIN_ENTRIES;
+ strlcpy(entry->subnqn, subnqn, sizeof(entry->subnqn));
+ return (wildcard);
+}
+
+void
+init_discovery(void)
+{
+ struct nvmf_association_params aparams;
+
+ memset(&aparams, 0, sizeof(aparams));
+ aparams.sq_flow_control = false;
+ aparams.dynamic_controller_model = true;
+ aparams.max_admin_qsize = NVME_MAX_ADMIN_ENTRIES;
+ aparams.tcp.pda = 0;
+ aparams.tcp.header_digests = header_digests;
+ aparams.tcp.data_digests = data_digests;
+ aparams.tcp.maxh2cdata = maxh2cdata;
+ discovery_na = nvmf_allocate_association(NVMF_TRTYPE_TCP, true,
+ &aparams);
+ if (discovery_na == NULL)
+ err(1, "Failed to create discovery association");
+}
+
+void
+discovery_add_io_controller(int s, const char *subnqn)
+{
+ struct io_controller_data *icd;
+
+ io_controllers = reallocf(io_controllers, (num_io_controllers + 1) *
+ sizeof(*io_controllers));
+
+ icd = &io_controllers[num_io_controllers];
+ num_io_controllers++;
+
+ icd->wildcard = init_discovery_log_entry(&icd->entry, s, subnqn);
+}
+
+static void
+build_discovery_log_page(struct discovery_controller *dc)
+{
+ struct sockaddr_storage ss;
+ socklen_t len;
+ char traddr[256];
+ u_int i, nentries;
+ uint8_t adrfam;
+
+ if (dc->discovery_log != NULL)
+ return;
+
+ len = sizeof(ss);
+ if (getsockname(dc->s, (struct sockaddr *)&ss, &len) == -1) {
+ warn("build_discovery_log_page: getsockname");
+ return;
+ }
+
+ memset(traddr, 0, sizeof(traddr));
+ switch (ss.ss_family) {
+ case AF_INET:
+ {
+ struct sockaddr_in *sin;
+
+ sin = (struct sockaddr_in *)&ss;
+ adrfam = NVMF_ADRFAM_IPV4;
+ if (inet_ntop(AF_INET, &sin->sin_addr, traddr,
+ sizeof(traddr)) == NULL) {
+ warn("build_discovery_log_page: inet_ntop");
+ return;
+ }
+ break;
+ }
+ case AF_INET6:
+ {
+ struct sockaddr_in6 *sin6;
+
+ sin6 = (struct sockaddr_in6 *)&ss;
+ adrfam = NVMF_ADRFAM_IPV6;
+ if (inet_ntop(AF_INET6, &sin6->sin6_addr, traddr,
+ sizeof(traddr)) == NULL) {
+ warn("build_discovery_log_page: inet_ntop");
+ return;
+ }
+ break;
+ }
+ default:
+ assert(false);
+ }
+
+ nentries = 0;
+ for (i = 0; i < num_io_controllers; i++) {
+ if (io_controllers[i].wildcard &&
+ io_controllers[i].entry.adrfam != adrfam)
+ continue;
+ nentries++;
+ }
+
+ dc->discovery_log_len = sizeof(*dc->discovery_log) +
+ nentries * sizeof(struct nvme_discovery_log_entry);
+ dc->discovery_log = calloc(dc->discovery_log_len, 1);
+ dc->discovery_log->numrec = nentries;
+ dc->discovery_log->recfmt = 0;
+ nentries = 0;
+ for (i = 0; i < num_io_controllers; i++) {
+ if (io_controllers[i].wildcard &&
+ io_controllers[i].entry.adrfam != adrfam)
+ continue;
+
+ dc->discovery_log->entries[nentries] = io_controllers[i].entry;
+ if (io_controllers[i].wildcard)
+ memcpy(dc->discovery_log->entries[nentries].traddr,
+ traddr, sizeof(traddr));
+ }
+}
+
+static void
+handle_get_log_page_command(const struct nvmf_capsule *nc,
+ const struct nvme_command *cmd, struct discovery_controller *dc)
+{
+ uint64_t offset;
+ uint32_t length;
+
+ switch (nvmf_get_log_page_id(cmd)) {
+ case NVME_LOG_DISCOVERY:
+ break;
+ default:
+ warnx("Unsupported log page %u for discovery controller",
+ nvmf_get_log_page_id(cmd));
+ goto error;
+ }
+
+ build_discovery_log_page(dc);
+
+ offset = nvmf_get_log_page_offset(cmd);
+ if (offset >= dc->discovery_log_len)
+ goto error;
+
+ length = nvmf_get_log_page_length(cmd);
+ if (length > dc->discovery_log_len - offset)
+ length = dc->discovery_log_len - offset;
+
+ nvmf_send_controller_data(nc, (char *)dc->discovery_log + offset,
+ length);
+ return;
+error:
+ nvmf_send_generic_error(nc, NVME_SC_INVALID_FIELD);
+}
+
+static bool
+discovery_command(const struct nvmf_capsule *nc, const struct nvme_command *cmd,
+ void *arg)
+{
+ struct discovery_controller *dc = arg;
+
+ switch (cmd->opc) {
+ case NVME_OPC_GET_LOG_PAGE:
+ handle_get_log_page_command(nc, cmd, dc);
+ return (true);
+ default:
+ return (false);
+ }
+}
+
+static void *
+discovery_thread(void *arg)
+{
+ struct discovery_thread_arg *dta = arg;
+ struct discovery_controller dc;
+
+ pthread_detach(pthread_self());
+
+ memset(&dc, 0, sizeof(dc));
+ dc.s = dta->s;
+
+ controller_handle_admin_commands(dta->c, discovery_command, &dc);
+
+ free(dc.discovery_log);
+ free_controller(dta->c);
+
+ nvmf_free_qpair(dta->qp);
+
+ close(dta->s);
+ free(dta);
+ return (NULL);
+}
+
+void
+handle_discovery_socket(int s)
+{
+ struct nvmf_fabric_connect_data data;
+ struct nvme_controller_data cdata;
+ struct nvmf_qpair_params qparams;
+ struct discovery_thread_arg *dta;
+ struct nvmf_capsule *nc;
+ struct nvmf_qpair *qp;
+ pthread_t thr;
+ int error;
+
+ memset(&qparams, 0, sizeof(qparams));
+ qparams.tcp.fd = s;
+
+ nc = NULL;
+ qp = nvmf_accept(discovery_na, &qparams, &nc, &data);
+ if (qp == NULL) {
+ warnx("Failed to create discovery qpair: %s",
+ nvmf_association_error(discovery_na));
+ goto error;
+ }
+
+ if (strcmp(data.subnqn, NVMF_DISCOVERY_NQN) != 0) {
+ warn("Discovery qpair with invalid SubNQN: %.*s",
+ (int)sizeof(data.subnqn), data.subnqn);
+ nvmf_connect_invalid_parameters(nc, true,
+ offsetof(struct nvmf_fabric_connect_data, subnqn));
+ goto error;
+ }
+
+ /* Just use a controller ID of 1 for all discovery controllers. */
+ error = nvmf_finish_accept(nc, 1);
+ if (error != 0) {
+ warnc(error, "Failed to send CONNECT reponse");
+ goto error;
+ }
+
+ nvmf_init_discovery_controller_data(qp, &cdata);
+
+ dta = malloc(sizeof(*dta));
+ dta->qp = qp;
+ dta->s = s;
+ dta->c = init_controller(qp, &cdata);
+
+ error = pthread_create(&thr, NULL, discovery_thread, dta);
+ if (error != 0) {
+ warnc(error, "Failed to create discovery thread");
+ free_controller(dta->c);
+ free(dta);
+ goto error;
+ }
+
+ nvmf_free_capsule(nc);
+ return;
+
+error:
+ if (nc != NULL)
+ nvmf_free_capsule(nc);
+ if (qp != NULL)
+ nvmf_free_qpair(qp);
+ close(s);
+}
diff --git a/tools/tools/nvmf/nvmfd/internal.h b/tools/tools/nvmf/nvmfd/internal.h
new file mode 100644
index 000000000000..f70dc78881c6
--- /dev/null
+++ b/tools/tools/nvmf/nvmfd/internal.h
@@ -0,0 +1,66 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2023-2024 Chelsio Communications, Inc.
+ * Written by: John Baldwin <jhb@FreeBSD.org>
+ */
+
+#ifndef __INTERNAL_H__
+#define __INTERNAL_H__
+
+#include <stdbool.h>
+
+struct controller;
+struct nvme_command;
+struct nvme_controller_data;
+struct nvme_ns_list;
+struct nvmf_capsule;
+struct nvmf_qpair;
+
+typedef bool handle_command(const struct nvmf_capsule *,
+ const struct nvme_command *, void *);
+
+extern bool data_digests;
+extern bool header_digests;
+extern bool flow_control_disable;
+extern bool kernel_io;
+extern uint32_t maxh2cdata;
+
+/* controller.c */
+void controller_handle_admin_commands(struct controller *c,
+ handle_command *cb, void *cb_arg);
+struct controller *init_controller(struct nvmf_qpair *qp,
+ const struct nvme_controller_data *cdata);
+void free_controller(struct controller *c);
+
+/* discovery.c */
+void init_discovery(void);
+void handle_discovery_socket(int s);
+void discovery_add_io_controller(int s, const char *subnqn);
+
+/* io.c */
+void init_io(const char *subnqn);
+void handle_io_socket(int s);
+void shutdown_io(void);
+
+/* devices.c */
+void register_devices(int ac, char **av);
+u_int device_count(void);
+void device_active_nslist(uint32_t nsid, struct nvme_ns_list *nslist);
+bool device_identification_descriptor(uint32_t nsid, void *buf);
+bool device_namespace_data(uint32_t nsid, struct nvme_namespace_data *nsdata);
+void device_read(uint32_t nsid, uint64_t lba, u_int nlb,
+ const struct nvmf_capsule *nc);
+void device_write(uint32_t nsid, uint64_t lba, u_int nlb,
+ const struct nvmf_capsule *nc);
+void device_flush(uint32_t nsid, const struct nvmf_capsule *nc);
+
+/* ctl.c */
+void init_ctl_port(const char *subnqn,
+ const struct nvmf_association_params *params);
+void ctl_handoff_qpair(struct nvmf_qpair *qp,
+ const struct nvmf_fabric_connect_cmd *cmd,
+ const struct nvmf_fabric_connect_data *data);
+void shutdown_ctl_port(const char *subnqn);
+
+#endif /* !__INTERNAL_H__ */
diff --git a/tools/tools/nvmf/nvmfd/io.c b/tools/tools/nvmf/nvmfd/io.c
new file mode 100644
index 000000000000..4407360257a2
--- /dev/null
+++ b/tools/tools/nvmf/nvmfd/io.c
@@ -0,0 +1,676 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2023-2024 Chelsio Communications, Inc.
+ * Written by: John Baldwin <jhb@FreeBSD.org>
+ */
+
+#include <sys/sysctl.h>
+#include <err.h>
+#include <errno.h>
+#include <libnvmf.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "internal.h"
+
+struct io_controller {
+ struct controller *c;
+
+ u_int num_io_queues;
+ u_int active_io_queues;
+ struct nvmf_qpair **io_qpairs;
+ int *io_sockets;
+
+ struct nvme_firmware_page fp;
+ struct nvme_health_information_page hip;
+ uint16_t partial_dur;
+ uint16_t partial_duw;
+
+ uint16_t cntlid;
+ char hostid[16];
+ char hostnqn[NVME_NQN_FIELD_SIZE];
+};
+
+static struct nvmf_association *io_na;
+static pthread_cond_t io_cond;
+static pthread_mutex_t io_na_mutex;
+static struct io_controller *io_controller;
+static const char *nqn;
+static char serial[NVME_SERIAL_NUMBER_LENGTH];
+
+void
+init_io(const char *subnqn)
+{
+ struct nvmf_association_params aparams;
+ u_long hostid;
+ size_t len;
+
+ memset(&aparams, 0, sizeof(aparams));
+ aparams.sq_flow_control = !flow_control_disable;
+ aparams.dynamic_controller_model = true;
+ aparams.max_admin_qsize = NVME_MAX_ADMIN_ENTRIES;
+ aparams.max_io_qsize = NVMF_MAX_IO_ENTRIES;
+ aparams.tcp.pda = 0;
+ aparams.tcp.header_digests = header_digests;
+ aparams.tcp.data_digests = data_digests;
+ aparams.tcp.maxh2cdata = maxh2cdata;
+ io_na = nvmf_allocate_association(NVMF_TRTYPE_TCP, true,
+ &aparams);
+ if (io_na == NULL)
+ err(1, "Failed to create I/O controller association");
+
+ nqn = subnqn;
+
+ /* Generate a serial number from the kern.hostid node. */
+ len = sizeof(hostid);
+ if (sysctlbyname("kern.hostid", &hostid, &len, NULL, 0) == -1)
+ err(1, "sysctl: kern.hostid");
+
+ nvmf_controller_serial(serial, sizeof(serial), hostid);
+
+ pthread_cond_init(&io_cond, NULL);
+ pthread_mutex_init(&io_na_mutex, NULL);
+
+ if (kernel_io)
+ init_ctl_port(subnqn, &aparams);
+}
+
+void
+shutdown_io(void)
+{
+ if (kernel_io)
+ shutdown_ctl_port(nqn);
+}
+
+static void
+handle_get_log_page(struct io_controller *ioc, const struct nvmf_capsule *nc,
+ const struct nvme_command *cmd)
+{
+ uint64_t offset;
+ uint32_t numd;
+ size_t len;
+ uint8_t lid;
+
+ lid = le32toh(cmd->cdw10) & 0xff;
+ numd = le32toh(cmd->cdw10) >> 16 | le32toh(cmd->cdw11) << 16;
+ offset = le32toh(cmd->cdw12) | (uint64_t)le32toh(cmd->cdw13) << 32;
+
+ if (offset % 3 != 0)
+ goto error;
+
+ len = (numd + 1) * 4;
+
+ switch (lid) {
+ case NVME_LOG_ERROR:
+ {
+ void *buf;
+
+ if (len % sizeof(struct nvme_error_information_entry) != 0)
+ goto error;
+
+ buf = calloc(1, len);
+ nvmf_send_controller_data(nc, buf, len);
+ free(buf);
+ return;
+ }
+ case NVME_LOG_HEALTH_INFORMATION:
+ if (len != sizeof(ioc->hip))
+ goto error;
+
+ nvmf_send_controller_data(nc, &ioc->hip, sizeof(ioc->hip));
+ return;
+ case NVME_LOG_FIRMWARE_SLOT:
+ if (len != sizeof(ioc->fp))
+ goto error;
+
+ nvmf_send_controller_data(nc, &ioc->fp, sizeof(ioc->fp));
+ return;
+ default:
+ warnx("Unsupported page %#x for GET_LOG_PAGE\n", lid);
+ goto error;
+ }
+
+error:
+ nvmf_send_generic_error(nc, NVME_SC_INVALID_FIELD);
+}
+
+static bool
+handle_io_identify_command(const struct nvmf_capsule *nc,
+ const struct nvme_command *cmd)
+{
+ struct nvme_namespace_data nsdata;
+ struct nvme_ns_list nslist;
+ uint32_t nsid;
+ uint8_t cns;
+
+ cns = le32toh(cmd->cdw10) & 0xFF;
+ switch (cns) {
+ case 0: /* Namespace data. */
+ if (!device_namespace_data(le32toh(cmd->nsid), &nsdata)) {
+ nvmf_send_generic_error(nc,
+ NVME_SC_INVALID_NAMESPACE_OR_FORMAT);
+ return (true);
+ }
+
+ nvmf_send_controller_data(nc, &nsdata, sizeof(nsdata));
+ return (true);
+ case 2: /* Active namespace list. */
+ nsid = le32toh(cmd->nsid);
+ if (nsid >= 0xfffffffe) {
+ nvmf_send_generic_error(nc, NVME_SC_INVALID_FIELD);
+ return (true);
+ }
+
+ device_active_nslist(nsid, &nslist);
+ nvmf_send_controller_data(nc, &nslist, sizeof(nslist));
+ return (true);
+ case 3: /* Namespace Identification Descriptor list. */
+ if (!device_identification_descriptor(le32toh(cmd->nsid),
+ &nsdata)) {
+ nvmf_send_generic_error(nc,
+ NVME_SC_INVALID_NAMESPACE_OR_FORMAT);
+ return (true);
+ }
+
+ nvmf_send_controller_data(nc, &nsdata, sizeof(nsdata));
+ return (true);
+ default:
+ return (false);
+ }
+}
+
+static void
+handle_set_features(struct io_controller *ioc, const struct nvmf_capsule *nc,
+ const struct nvme_command *cmd)
+{
+ struct nvme_completion cqe;
+ uint8_t fid;
+
+ fid = NVMEV(NVME_FEAT_SET_FID, le32toh(cmd->cdw10));
+ switch (fid) {
+ case NVME_FEAT_NUMBER_OF_QUEUES:
+ {
+ uint32_t num_queues;
+
+ if (ioc->num_io_queues != 0) {
+ nvmf_send_generic_error(nc,
+ NVME_SC_COMMAND_SEQUENCE_ERROR);
+ return;
+ }
+
+ num_queues = le32toh(cmd->cdw11) & 0xffff;
+
+ /* 5.12.1.7: 65535 is invalid. */
+ if (num_queues == 65535)
+ goto error;
+
+ /* Fabrics requires the same number of SQs and CQs. */
+ if (le32toh(cmd->cdw11) >> 16 != num_queues)
+ goto error;
+
+ /* Convert to 1's based */
+ num_queues++;
+
+ /* Lock to synchronize with handle_io_qpair. */
+ pthread_mutex_lock(&io_na_mutex);
+ ioc->num_io_queues = num_queues;
+ ioc->io_qpairs = calloc(num_queues, sizeof(*ioc->io_qpairs));
+ ioc->io_sockets = calloc(num_queues, sizeof(*ioc->io_sockets));
+ pthread_mutex_unlock(&io_na_mutex);
+
+ nvmf_init_cqe(&cqe, nc, 0);
+ cqe.cdw0 = cmd->cdw11;
+ nvmf_send_response(nc, &cqe);
+ return;
+ }
+ case NVME_FEAT_ASYNC_EVENT_CONFIGURATION:
+ {
+ uint32_t aer_mask;
+
+ aer_mask = le32toh(cmd->cdw11);
+
+ /* Check for any reserved or unimplemented feature bits. */
+ if ((aer_mask & 0xffffc000) != 0)
+ goto error;
+
+ /* No AERs are generated by this daemon. */
+ nvmf_send_success(nc);
+ return;
+ }
+ default:
+ warnx("Unsupported feature ID %u for SET_FEATURES", fid);
+ goto error;
+ }
+
+error:
+ nvmf_send_generic_error(nc, NVME_SC_INVALID_FIELD);
+}
+
+static bool
+admin_command(const struct nvmf_capsule *nc, const struct nvme_command *cmd,
+ void *arg)
+{
+ struct io_controller *ioc = arg;
+
+ switch (cmd->opc) {
+ case NVME_OPC_GET_LOG_PAGE:
+ handle_get_log_page(ioc, nc, cmd);
+ return (true);
+ case NVME_OPC_IDENTIFY:
+ return (handle_io_identify_command(nc, cmd));
+ case NVME_OPC_SET_FEATURES:
+ handle_set_features(ioc, nc, cmd);
+ return (true);
+ case NVME_OPC_ASYNC_EVENT_REQUEST:
+ /* Ignore and never complete. */
+ return (true);
+ case NVME_OPC_KEEP_ALIVE:
+ nvmf_send_success(nc);
+ return (true);
+ default:
+ return (false);
+ }
+}
+
+static void
+handle_admin_qpair(struct io_controller *ioc)
+{
+ pthread_setname_np(pthread_self(), "admin queue");
+
+ controller_handle_admin_commands(ioc->c, admin_command, ioc);
+
+ pthread_mutex_lock(&io_na_mutex);
+ for (u_int i = 0; i < ioc->num_io_queues; i++) {
+ if (ioc->io_qpairs[i] == NULL || ioc->io_sockets[i] == -1)
+ continue;
+ close(ioc->io_sockets[i]);
+ ioc->io_sockets[i] = -1;
+ }
+
+ /* Wait for I/O threads to notice. */
+ while (ioc->active_io_queues > 0)
+ pthread_cond_wait(&io_cond, &io_na_mutex);
+
+ io_controller = NULL;
+ pthread_mutex_unlock(&io_na_mutex);
+
+ free_controller(ioc->c);
+
+ free(ioc);
+}
+
+static bool
+handle_io_fabrics_command(const struct nvmf_capsule *nc,
+ const struct nvmf_fabric_cmd *fc)
+{
+ switch (fc->fctype) {
+ case NVMF_FABRIC_COMMAND_CONNECT:
+ warnx("CONNECT command on connected queue");
+ nvmf_send_generic_error(nc, NVME_SC_COMMAND_SEQUENCE_ERROR);
+ break;
+ case NVMF_FABRIC_COMMAND_DISCONNECT:
+ {
+ const struct nvmf_fabric_disconnect_cmd *dis =
+ (const struct nvmf_fabric_disconnect_cmd *)fc;
+ if (dis->recfmt != htole16(0)) {
+ nvmf_send_error(nc, NVME_SCT_COMMAND_SPECIFIC,
+ NVMF_FABRIC_SC_INCOMPATIBLE_FORMAT);
+ break;
+ }
+ nvmf_send_success(nc);
+ return (true);
+ }
+ default:
+ warnx("Unsupported fabrics command %#x", fc->fctype);
+ nvmf_send_generic_error(nc, NVME_SC_INVALID_OPCODE);
+ break;
+ }
+
+ return (false);
+}
+
+static void
+hip_add(uint64_t pair[2], uint64_t addend)
+{
+ uint64_t old, new;
+
+ old = le64toh(pair[0]);
+ new = old + addend;
+ pair[0] = htole64(new);
+ if (new < old)
+ pair[1] += htole64(1);
+}
+
+static uint64_t
+cmd_lba(const struct nvme_command *cmd)
+{
+ return ((uint64_t)le32toh(cmd->cdw11) << 32 | le32toh(cmd->cdw10));
+}
+
+static u_int
+cmd_nlb(const struct nvme_command *cmd)
+{
+ return ((le32toh(cmd->cdw12) & 0xffff) + 1);
+}
+
+static void
+handle_read(struct io_controller *ioc, const struct nvmf_capsule *nc,
+ const struct nvme_command *cmd)
+{
+ size_t len;
+
+ len = nvmf_capsule_data_len(nc);
+ device_read(le32toh(cmd->nsid), cmd_lba(cmd), cmd_nlb(cmd), nc);
+ hip_add(ioc->hip.host_read_commands, 1);
+
+ len /= 512;
+ len += ioc->partial_dur;
+ if (len > 1000)
+ hip_add(ioc->hip.data_units_read, len / 1000);
+ ioc->partial_dur = len % 1000;
+}
+
+static void
+handle_write(struct io_controller *ioc, const struct nvmf_capsule *nc,
+ const struct nvme_command *cmd)
+{
+ size_t len;
+
+ len = nvmf_capsule_data_len(nc);
+ device_write(le32toh(cmd->nsid), cmd_lba(cmd), cmd_nlb(cmd), nc);
+ hip_add(ioc->hip.host_write_commands, 1);
+
+ len /= 512;
+ len += ioc->partial_duw;
+ if (len > 1000)
+ hip_add(ioc->hip.data_units_written, len / 1000);
+ ioc->partial_duw = len % 1000;
+}
+
+static void
+handle_flush(const struct nvmf_capsule *nc, const struct nvme_command *cmd)
+{
+ device_flush(le32toh(cmd->nsid), nc);
+}
+
+static bool
+handle_io_commands(struct io_controller *ioc, struct nvmf_qpair *qp)
+{
+ const struct nvme_command *cmd;
+ struct nvmf_capsule *nc;
+ int error;
+ bool disconnect;
+
+ disconnect = false;
+
+ while (!disconnect) {
+ error = nvmf_controller_receive_capsule(qp, &nc);
+ if (error != 0) {
+ if (error != ECONNRESET)
+ warnc(error, "Failed to read command capsule");
+ break;
+ }
+
+ cmd = nvmf_capsule_sqe(nc);
+
+ switch (cmd->opc) {
+ case NVME_OPC_FLUSH:
+ if (cmd->nsid == htole32(0xffffffff)) {
+ nvmf_send_generic_error(nc,
+ NVME_SC_INVALID_NAMESPACE_OR_FORMAT);
+ break;
+ }
+ handle_flush(nc, cmd);
+ break;
+ case NVME_OPC_WRITE:
+ handle_write(ioc, nc, cmd);
+ break;
+ case NVME_OPC_READ:
+ handle_read(ioc, nc, cmd);
+ break;
+ case NVME_OPC_FABRICS_COMMANDS:
+ disconnect = handle_io_fabrics_command(nc,
+ (const struct nvmf_fabric_cmd *)cmd);
+ break;
+ default:
+ warnx("Unsupported NVM opcode %#x", cmd->opc);
+ nvmf_send_generic_error(nc, NVME_SC_INVALID_OPCODE);
+ break;
+ }
+ nvmf_free_capsule(nc);
+ }
+
+ return (disconnect);
+}
+
+static void
+handle_io_qpair(struct io_controller *ioc, struct nvmf_qpair *qp, int qid)
+{
+ char name[64];
+ bool disconnect;
+
+ snprintf(name, sizeof(name), "I/O queue %d", qid);
+ pthread_setname_np(pthread_self(), name);
+
+ disconnect = handle_io_commands(ioc, qp);
+
+ pthread_mutex_lock(&io_na_mutex);
+ if (disconnect)
+ ioc->io_qpairs[qid - 1] = NULL;
+ if (ioc->io_sockets[qid - 1] != -1) {
+ close(ioc->io_sockets[qid - 1]);
+ ioc->io_sockets[qid - 1] = -1;
+ }
+ ioc->active_io_queues--;
+ if (ioc->active_io_queues == 0)
+ pthread_cond_broadcast(&io_cond);
+ pthread_mutex_unlock(&io_na_mutex);
+}
+
+static void
+connect_admin_qpair(int s, struct nvmf_qpair *qp, struct nvmf_capsule *nc,
+ const struct nvmf_fabric_connect_data *data)
+{
+ struct nvme_controller_data cdata;
+ struct io_controller *ioc;
+ int error;
+
+ /* Can only have one active I/O controller at a time. */
+ pthread_mutex_lock(&io_na_mutex);
+ if (io_controller != NULL) {
+ pthread_mutex_unlock(&io_na_mutex);
+ nvmf_send_error(nc, NVME_SCT_COMMAND_SPECIFIC,
+ NVMF_FABRIC_SC_CONTROLLER_BUSY);
+ goto error;
+ }
+
+ error = nvmf_finish_accept(nc, 2);
+ if (error != 0) {
+ pthread_mutex_unlock(&io_na_mutex);
+ warnc(error, "Failed to send CONNECT response");
+ goto error;
+ }
+
+ ioc = calloc(1, sizeof(*ioc));
+ ioc->cntlid = 2;
+ memcpy(ioc->hostid, data->hostid, sizeof(ioc->hostid));
+ memcpy(ioc->hostnqn, data->hostnqn, sizeof(ioc->hostnqn));
+
+ nvmf_init_io_controller_data(qp, serial, nqn, device_count(),
+ NVMF_IOCCSZ, &cdata);
+
+ ioc->fp.afi = NVMEF(NVME_FIRMWARE_PAGE_AFI_SLOT, 1);
+ memcpy(ioc->fp.revision[0], cdata.fr, sizeof(cdata.fr));
+
+ ioc->hip.power_cycles[0] = 1;
+
+ ioc->c = init_controller(qp, &cdata);
+
+ io_controller = ioc;
+ pthread_mutex_unlock(&io_na_mutex);
+
+ nvmf_free_capsule(nc);
+
+ handle_admin_qpair(ioc);
+ close(s);
+ return;
+
+error:
+ nvmf_free_capsule(nc);
+ close(s);
+}
+
+static void
+connect_io_qpair(int s, struct nvmf_qpair *qp, struct nvmf_capsule *nc,
+ const struct nvmf_fabric_connect_data *data, uint16_t qid)
+{
+ struct io_controller *ioc;
+ int error;
+
+ pthread_mutex_lock(&io_na_mutex);
+ if (io_controller == NULL) {
+ pthread_mutex_unlock(&io_na_mutex);
+ warnx("Attempt to create I/O qpair without admin qpair");
+ nvmf_send_generic_error(nc, NVME_SC_COMMAND_SEQUENCE_ERROR);
+ goto error;
+ }
+
+ if (memcmp(io_controller->hostid, data->hostid,
+ sizeof(data->hostid)) != 0) {
+ pthread_mutex_unlock(&io_na_mutex);
+ warnx("hostid mismatch for I/O qpair CONNECT");
+ nvmf_connect_invalid_parameters(nc, true,
+ offsetof(struct nvmf_fabric_connect_data, hostid));
+ goto error;
+ }
+ if (le16toh(data->cntlid) != io_controller->cntlid) {
+ pthread_mutex_unlock(&io_na_mutex);
+ warnx("cntlid mismatch for I/O qpair CONNECT");
+ nvmf_connect_invalid_parameters(nc, true,
+ offsetof(struct nvmf_fabric_connect_data, cntlid));
+ goto error;
+ }
+ if (memcmp(io_controller->hostnqn, data->hostnqn,
+ sizeof(data->hostid)) != 0) {
+ pthread_mutex_unlock(&io_na_mutex);
+ warnx("host NQN mismatch for I/O qpair CONNECT");
+ nvmf_connect_invalid_parameters(nc, true,
+ offsetof(struct nvmf_fabric_connect_data, hostnqn));
+ goto error;
+ }
+
+ if (io_controller->num_io_queues == 0) {
+ pthread_mutex_unlock(&io_na_mutex);
+ warnx("Attempt to create I/O qpair without enabled queues");
+ nvmf_send_generic_error(nc, NVME_SC_COMMAND_SEQUENCE_ERROR);
+ goto error;
+ }
+ if (qid > io_controller->num_io_queues) {
+ pthread_mutex_unlock(&io_na_mutex);
+ warnx("Attempt to create invalid I/O qpair %u", qid);
+ nvmf_connect_invalid_parameters(nc, false,
+ offsetof(struct nvmf_fabric_connect_cmd, qid));
+ goto error;
+ }
+ if (io_controller->io_qpairs[qid - 1] != NULL) {
+ pthread_mutex_unlock(&io_na_mutex);
+ warnx("Attempt to re-create I/O qpair %u", qid);
+ nvmf_send_generic_error(nc, NVME_SC_COMMAND_SEQUENCE_ERROR);
+ goto error;
+ }
+
+ error = nvmf_finish_accept(nc, io_controller->cntlid);
+ if (error != 0) {
+ pthread_mutex_unlock(&io_na_mutex);
+ warnc(error, "Failed to send CONNECT response");
+ goto error;
+ }
+
+ ioc = io_controller;
+ ioc->active_io_queues++;
+ ioc->io_qpairs[qid - 1] = qp;
+ ioc->io_sockets[qid - 1] = s;
+ pthread_mutex_unlock(&io_na_mutex);
+
+ nvmf_free_capsule(nc);
+
+ handle_io_qpair(ioc, qp, qid);
+ return;
+
+error:
+ nvmf_free_capsule(nc);
+ close(s);
+}
+
+static void *
+io_socket_thread(void *arg)
+{
+ struct nvmf_fabric_connect_data data;
+ struct nvmf_qpair_params qparams;
+ const struct nvmf_fabric_connect_cmd *cmd;
+ struct nvmf_capsule *nc;
+ struct nvmf_qpair *qp;
+ int s;
+
+ pthread_detach(pthread_self());
+
+ s = (intptr_t)arg;
+ memset(&qparams, 0, sizeof(qparams));
+ qparams.tcp.fd = s;
+
+ nc = NULL;
+ qp = nvmf_accept(io_na, &qparams, &nc, &data);
+ if (qp == NULL) {
+ warnx("Failed to create I/O qpair: %s",
+ nvmf_association_error(io_na));
+ goto error;
+ }
+
+ if (kernel_io) {
+ ctl_handoff_qpair(qp, nvmf_capsule_sqe(nc), &data);
+ goto error;
+ }
+
+ if (strcmp(data.subnqn, nqn) != 0) {
+ warn("I/O qpair with invalid SubNQN: %.*s",
+ (int)sizeof(data.subnqn), data.subnqn);
+ nvmf_connect_invalid_parameters(nc, true,
+ offsetof(struct nvmf_fabric_connect_data, subnqn));
+ goto error;
+ }
+
+ /* Is this an admin or I/O queue pair? */
+ cmd = nvmf_capsule_sqe(nc);
+ if (cmd->qid == 0)
+ connect_admin_qpair(s, qp, nc, &data);
+ else
+ connect_io_qpair(s, qp, nc, &data, le16toh(cmd->qid));
+ nvmf_free_qpair(qp);
+ return (NULL);
+
+error:
+ if (nc != NULL)
+ nvmf_free_capsule(nc);
+ if (qp != NULL)
+ nvmf_free_qpair(qp);
+ close(s);
+ return (NULL);
+}
+
+void
+handle_io_socket(int s)
+{
+ pthread_t thr;
+ int error;
+
+ error = pthread_create(&thr, NULL, io_socket_thread,
+ (void *)(uintptr_t)s);
+ if (error != 0) {
+ warnc(error, "Failed to create I/O qpair thread");
+ close(s);
+ }
+}
diff --git a/tools/tools/nvmf/nvmfd/nvmfd.8 b/tools/tools/nvmf/nvmfd/nvmfd.8
new file mode 100644
index 000000000000..1076583c417c
--- /dev/null
+++ b/tools/tools/nvmf/nvmfd/nvmfd.8
@@ -0,0 +1,131 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2024 Chelsio Communications, Inc.
+.\"
+.Dd July 25, 2024
+.Dt NVMFD 8
+.Os
+.Sh NAME
+.Nm nvmfd
+.Nd "NVMeoF controller daemon"
+.Sh SYNOPSIS
+.Nm
+.Fl K
+.Op Fl dFGg
+.Op Fl H Ar MAXH2CDATA
+.Op Fl P Ar port
+.Op Fl p Ar port
+.Op Fl t Ar transport
+.Op Fl n Ar subnqn
+.Nm
+.Op Fl dFGg
+.Op Fl H Ar MAXH2CDATA
+.Op Fl P Ar port
+.Op Fl p Ar port
+.Op Fl t Ar transport
+.Op Fl n Ar subnqn
+.Ar device
+.Op Ar device ...
+.Sh DESCRIPTION
+.Nm
+accepts incoming NVMeoF connections for both I/O and discovery controllers.
+.Nm
+can either implement a single dynamic I/O controller in user mode or hand
+off incoming I/O controller connections to
+.Xr nvmft 4 .
+A dynamic discovery controller service is always provided in user mode.
+.Pp
+The following options are available:
+.Bl -tag -width "-t transport"
+.It Fl F
+Permit remote hosts to disable SQ flow control.
+.It Fl G
+Permit remote hosts to enable PDU data digests for the TCP transport.
+.It Fl g
+Permit remote hosts to enable PDU header digests for the TCP transport.
+.It Fl H
+Set the MAXH2CDATA value advertised to the remote host for the TCP transport.
+This value is in bytes and determines the maximum data payload size for
+data PDUs sent by the remote host.
+The value must be at least 4096 and defaults to 256KiB.
+.It Fl K
+Enable kernel mode which hands off incoming I/O controller connections to
+.Xr nvmft 4 .
+.It Fl P Ar port
+Use
+.Ar port
+as the listen TCP port for the discovery controller service.
+The default value is 8009.
+.It Fl d
+Enable debug mode.
+The daemon sends any errors to standard output and does not place
+itself in the background.
+.It Fl p Ar port
+Use
+.Ar port
+as the listen TCP port for the I/O controller service.
+By default an unused ephemeral port will be chosen.
+.It Fl n Ar subnqn
+The Subsystem NVMe Qualified Name for the I/O controller.
+If an explicit NQN is not given, a default value is generated from the
+current host's UUID obtained from the
+.Vt kern.hostuuid
+sysctl.
+.It Fl t Ar transport
+The transport type to use.
+The default transport is
+.Dq tcp .
+.It Ar device
+When implementing a user mode I/O controller,
+one or more
+.Ar device
+arguments must be specified.
+Each
+.Ar device
+describes the backing store for a namespace exported to remote hosts.
+Devices can be specified using one of the following syntaxes:
+.Bl -tag -width "ramdisk:size"
+.It Pa pathname
+File or disk device
+.It ramdisk : Ns Ar size
+Allocate a memory disk with the given
+.Ar size .
+.Ar size
+may use any of the suffixes supported by
+.Xr expand_number 3 .
+.El
+.El
+.Sh FILES
+.Bl -tag -width "/var/run/nvmfd.pid" -compact
+.It Pa /var/run/nvmfd.pid
+The default location of the
+.Nm
+PID file.
+.El
+.Sh EXIT STATUS
+.Ex -std
+.Sh SEE ALSO
+.Xr ctl 4 ,
+.Xr nvmft 4 ,
+.Xr ctladm 8 ,
+.Xr ctld 8
+.Sh HISTORY
+The
+.Nm
+module first appeared in
+.Fx 15.0 .
+.Sh AUTHORS
+The
+.Nm
+subsystem was developed by
+.An John Baldwin Aq Mt jhb@FreeBSD.org
+under sponsorship from Chelsio Communications, Inc.
+.Sh BUGS
+The discovery controller and kernel mode functionality of
+.Nm
+should be merged into
+.Xr ctld 8 .
+.Pp
+Additional parameters such as
+queue sizes should be configurable.
diff --git a/tools/tools/nvmf/nvmfd/nvmfd.c b/tools/tools/nvmf/nvmfd/nvmfd.c
new file mode 100644
index 000000000000..df6f400b40e5
--- /dev/null
+++ b/tools/tools/nvmf/nvmfd/nvmfd.c
@@ -0,0 +1,271 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2023-2024 Chelsio Communications, Inc.
+ * Written by: John Baldwin <jhb@FreeBSD.org>
+ */
+
+#include <sys/param.h>
+#include <sys/event.h>
+#include <sys/linker.h>
+#include <sys/module.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <assert.h>
+#include <err.h>
+#include <errno.h>
+#include <libnvmf.h>
+#include <libutil.h>
+#include <netdb.h>
+#include <signal.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "internal.h"
+
+bool data_digests = false;
+bool header_digests = false;
+bool flow_control_disable = false;
+bool kernel_io = false;
+uint32_t maxh2cdata = 256 * 1024;
+
+static const char *subnqn;
+static volatile bool quit = false;
+
+static void
+usage(void)
+{
+ fprintf(stderr, "nvmfd -K [-dFGg] [-H MAXH2CDATA] [-P port] [-p port] [-t transport] [-n subnqn]\n"
+ "nvmfd [-dFGg] [-H MAXH2CDATA] [-P port] [-p port] [-t transport] [-n subnqn]\n"
+ "\tdevice [device [...]]\n"
+ "\n"
+ "Devices use one of the following syntaxes:\n"
+ "\tpathame - file or disk device\n"
+ "\tramdisk:size - memory disk of given size\n");
+ exit(1);
+}
+
+static void
+handle_sig(int sig __unused)
+{
+ quit = true;
+}
+
+static void
+register_listen_socket(int kqfd, int s, void *udata)
+{
+ struct kevent kev;
+
+ if (listen(s, -1) != 0)
+ err(1, "listen");
+
+ EV_SET(&kev, s, EVFILT_READ, EV_ADD, 0, 0, udata);
+ if (kevent(kqfd, &kev, 1, NULL, 0, NULL) == -1)
+ err(1, "kevent: failed to add listen socket");
+}
+
+static void
+create_passive_sockets(int kqfd, const char *port, bool discovery)
+{
+ struct addrinfo hints, *ai, *list;
+ bool created;
+ int error, s;
+
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_flags = AI_PASSIVE;
+ hints.ai_family = AF_UNSPEC;
+ hints.ai_protocol = IPPROTO_TCP;
+ error = getaddrinfo(NULL, port, &hints, &list);
+ if (error != 0)
+ errx(1, "%s", gai_strerror(error));
+ created = false;
+
+ for (ai = list; ai != NULL; ai = ai->ai_next) {
+ s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
+ if (s == -1)
+ continue;
+
+ if (bind(s, ai->ai_addr, ai->ai_addrlen) != 0) {
+ close(s);
+ continue;
+ }
+
+ if (discovery) {
+ register_listen_socket(kqfd, s, (void *)1);
+ } else {
+ register_listen_socket(kqfd, s, (void *)2);
+ discovery_add_io_controller(s, subnqn);
+ }
+ created = true;
+ }
+
+ freeaddrinfo(list);
+ if (!created)
+ err(1, "Failed to create any listen sockets");
+}
+
+static void
+handle_connections(int kqfd)
+{
+ struct kevent ev;
+ int s;
+
+ signal(SIGHUP, handle_sig);
+ signal(SIGINT, handle_sig);
+ signal(SIGQUIT, handle_sig);
+ signal(SIGTERM, handle_sig);
+
+ while (!quit) {
+ if (kevent(kqfd, NULL, 0, &ev, 1, NULL) == -1) {
+ if (errno == EINTR)
+ continue;
+ err(1, "kevent");
+ }
+
+ assert(ev.filter == EVFILT_READ);
+
+ s = accept(ev.ident, NULL, NULL);
+ if (s == -1) {
+ warn("accept");
+ continue;
+ }
+
+ switch ((uintptr_t)ev.udata) {
+ case 1:
+ handle_discovery_socket(s);
+ break;
+ case 2:
+ handle_io_socket(s);
+ break;
+ default:
+ __builtin_unreachable();
+ }
+ }
+}
+
+int
+main(int ac, char **av)
+{
+ struct pidfh *pfh;
+ const char *dport, *ioport, *transport;
+ pid_t pid;
+ uint64_t value;
+ int ch, error, kqfd;
+ bool daemonize;
+ static char nqn[NVMF_NQN_MAX_LEN];
+
+ /* 7.4.9.3 Default port for discovery */
+ dport = "8009";
+
+ pfh = NULL;
+ daemonize = true;
+ ioport = "0";
+ subnqn = NULL;
+ transport = "tcp";
+ while ((ch = getopt(ac, av, "dFgGH:Kn:P:p:t:")) != -1) {
+ switch (ch) {
+ case 'd':
+ daemonize = false;
+ break;
+ case 'F':
+ flow_control_disable = true;
+ break;
+ case 'G':
+ data_digests = true;
+ break;
+ case 'g':
+ header_digests = true;
+ break;
+ case 'H':
+ if (expand_number(optarg, &value) != 0)
+ errx(1, "Invalid MAXH2CDATA value %s", optarg);
+ if (value < 4096 || value > UINT32_MAX ||
+ value % 4 != 0)
+ errx(1, "Invalid MAXH2CDATA value %s", optarg);
+ maxh2cdata = value;
+ break;
+ case 'K':
+ kernel_io = true;
+ break;
+ case 'n':
+ subnqn = optarg;
+ break;
+ case 'P':
+ dport = optarg;
+ break;
+ case 'p':
+ ioport = optarg;
+ break;
+ case 't':
+ transport = optarg;
+ break;
+ default:
+ usage();
+ }
+ }
+
+ av += optind;
+ ac -= optind;
+
+ if (kernel_io) {
+ if (ac > 0)
+ usage();
+ if (modfind("nvmft") == -1 && kldload("nvmft") == -1)
+ warn("couldn't load nvmft");
+ } else {
+ if (ac < 1)
+ usage();
+ }
+
+ if (strcasecmp(transport, "tcp") == 0) {
+ } else
+ errx(1, "Invalid transport %s", transport);
+
+ if (subnqn == NULL) {
+ error = nvmf_nqn_from_hostuuid(nqn);
+ if (error != 0)
+ errc(1, error, "Failed to generate NQN");
+ subnqn = nqn;
+ }
+
+ if (!kernel_io)
+ register_devices(ac, av);
+
+ init_discovery();
+ init_io(subnqn);
+
+ if (daemonize) {
+ pfh = pidfile_open(NULL, 0600, &pid);
+ if (pfh == NULL) {
+ if (errno == EEXIST)
+ errx(1, "Daemon already running, pid: %jd",
+ (intmax_t)pid);
+ warn("Cannot open or create pidfile");
+ }
+
+ if (daemon(0, 0) != 0) {
+ pidfile_remove(pfh);
+ err(1, "Failed to fork into the background");
+ }
+
+ pidfile_write(pfh);
+ }
+
+ kqfd = kqueue();
+ if (kqfd == -1) {
+ pidfile_remove(pfh);
+ err(1, "kqueue");
+ }
+
+ create_passive_sockets(kqfd, dport, true);
+ create_passive_sockets(kqfd, ioport, false);
+
+ handle_connections(kqfd);
+ shutdown_io();
+ if (pfh != NULL)
+ pidfile_remove(pfh);
+ return (0);
+}
diff --git a/tools/tools/sysbuild/sysbuild.sh b/tools/tools/sysbuild/sysbuild.sh
index 7c3e21c98736..2b3edc9a45ae 100644
--- a/tools/tools/sysbuild/sysbuild.sh
+++ b/tools/tools/sysbuild/sysbuild.sh
@@ -600,7 +600,7 @@ fi
if [ -f /etc/localtime ] ; then
log_it copy localtime
- cp /etc/localtime ${SBMNT}/etc
+ cp -P /etc/localtime ${SBMNT}/etc
if [ -f /var/db/zoneinfo ] ; then
log_it copy zoneinfo
cp /var/db/zoneinfo ${SBMNT}/var/db
diff --git a/tools/tools/usbtest/usb_msc_test.c b/tools/tools/usbtest/usb_msc_test.c
index 713da381820e..1b9c3192a472 100644
--- a/tools/tools/usbtest/usb_msc_test.c
+++ b/tools/tools/usbtest/usb_msc_test.c
@@ -952,7 +952,6 @@ find_usb_endpoints(struct libusb20_device *pdev, uint8_t class,
struct libusb20_interface *iface;
struct libusb20_endpoint *ep;
uint8_t x;
- uint8_t y;
uint8_t z;
*in_ep = 0;
@@ -966,9 +965,6 @@ find_usb_endpoints(struct libusb20_device *pdev, uint8_t class,
return;
for (x = 0; x != pcfg->num_interface; x++) {
-
- y = alt_setting;
-
iface = (pcfg->interface + x);
if ((iface->desc.bInterfaceClass == class) &&