diff options
Diffstat (limited to 'tools')
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) && |