diff --git a/krb5/Makefile b/krb5/Makefile new file mode 100644 index 000000000000..c49601990c4a --- /dev/null +++ b/krb5/Makefile @@ -0,0 +1,7 @@ +SUBDIR= util .WAIT \ + include .WAIT \ + lib .WAIT\ + plugins libexec usr.bin usr.sbin +# SUBDIR_PARALLEL= + +.include diff --git a/krb5/Makefile.et b/krb5/Makefile.et new file mode 100644 index 000000000000..b89e17857675 --- /dev/null +++ b/krb5/Makefile.et @@ -0,0 +1,22 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.et.h: + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +.et.c: + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c diff --git a/krb5/Makefile.inc b/krb5/Makefile.inc new file mode 100644 index 000000000000..52910c3ebe4a --- /dev/null +++ b/krb5/Makefile.inc @@ -0,0 +1,45 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include + +# MIT KRB5 uses KRB5_DIR. Heimdal uses KRB5DIR. +KRB5_SRCTOP= ${SRCTOP}/krb5 +KRB5_DIR= ${SRCTOP}/crypto/krb5/src +KRB5_ETDIR?= ${DESTDIR}/usr/share/et +KRB5_SRCLIBDIR= ${KRB5_DIR}/lib + +KRB5_OBJTOP= ${OBJTOP}/krb5 +KRB5_OBJHDR= ${OBJTOP}/include +COMPILE_ET= compile_et -d ${KRB5_DIR}/util/et --textdomain mit-krb5 +MAKE_COMMANDS= ${KRB5_OBJTOP}/util/ss/mk_cmds + +# There are no WARNS levels for this. +CFLAGS+= -Wno-deprecated-non-prototype \ + -Wno-macro-redefined \ + -Wno-unused-parameter + +WARNS?= 1 + +KRB5RCTMPDIR= /var/tmp +KRB5PREFIX= /usr +KRB5_EXEC_PREFIX= /usr +KRB5_BINDIR= /usr/bin +KRB5_LIBDIR= /usr/lib +KRB5_SBINDIR= /usr/sbin +KRB5_MODULEDIR= /usr/lib/krb5/plugins +KRB5_GSSMODULEDIR= /usr/lib/gss +KRB5_LOCALEDIR= /usr/share/locale +KRB5_DOCSDIR= ${SHAREDIR}/doc/krb5 +KRB5_HTMLDOCSDIR= ${KRB5_DOCSDIR}/html +KRB5_LOCALSTATEDIR= /var +KRB5_RUNSTATEDIR= /var/run +KRB5_SYSCONFDIR= /etc +KRB5_DYNOBJEXT= .so +KRB5_SYSCONFCONF= /etc/krb5.conf diff --git a/krb5/README b/krb5/README new file mode 100644 index 000000000000..95a4beb2c98f --- /dev/null +++ b/krb5/README @@ -0,0 +1,13 @@ +This subtree is world-exportable, as it does not contain any +cryptographic code. + +At the time of writing, it did not even contain source code, only +Makefiles and headers. + +Please maintain this "exportable" status quo. + +Thanks! + +Cy Schubert +cy@freebsd.org +2023-08-09 diff --git a/krb5/include/Makefile b/krb5/include/Makefile new file mode 100644 index 000000000000..ee086e1ea07d --- /dev/null +++ b/krb5/include/Makefile @@ -0,0 +1,73 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +SUBDIR= krb5_private krb5 gssrpc gssapi + +SUBDIR_PARALLEL= + +.include + +INCSGROUPS= INCS COM_ERR VERTO GSSAPI_KRB5 + +INCSDIR= ${INCLUDEDIR} + +.PATH: ${KRB5_DIR}/include + +INCS= kdb.h \ + krad.h \ + krb5.h + +GSSAPI_KRB5DIR= ${INCLUDEDIR}/gssapi_krb5/gssapi +GSSAPI_KRB5= gssapi.h + +CLEANFILES= osconf.new + +# XXX The output of this needs to be verified against the osconf.h I created +# It is only used to verify osconf.h has not changed +osconf.h: + cat ./osconf.hin | sed -e "s\"@KRB5RCTMPDIR\"${KRB5RCTMPDIR}\"" -e "s\"@PREFIX\"${KRB5PREFIX}\"" -e "s\"@EXEC_PREFIX\"${KRB5_EXEC_PREFIX}\"" -e "s\"@BINDIR\"${KRB5_BINDIR}\"" -e "s\"@LIBDIR\"${KRB5_LIBDIR}\"" -e "s\"@SBINDIR\"${KRB5_SBINDIR}\"" -e "s\"@MODULEDIR\"${KRB5_MODULEDIR}\"" -e "s\"@GSSMODULEDIR\"${KRB5_GSSMODULEDIR}\"" -e "s\"@LOCALSTATEDIR\"${KRB5_LOCALSTATEDIR}\"" -e "s\"@RUNSTATEDIR\"${KRB5_RUNSTATEDIR}\"" -e "s\"@SYSCONFDIR\"${KRB5_SYSCONFDIR}\"" -e "s\"@DYNOBJEXT\"${KRB5_DYNOBJEXT}\"" -e "s\"@SYSCONFCONF\":${KRB5_SYSCONFCONF}\"" > osconf.new + sh ${MOVEIFCHANGED} osconf.new osconf.h + +rebuild-error-tables: ${K5_ET_HEADERS} + +force: + +stage_includes: copies +installincludes: copies +SDESTDIR?= ${SYSROOT:U${DESTDIR}} + +.PHONY: force rebuild-error-tables osconf.h + +.PATH: ${KRB5_DIR}/util/et +COM_ERRDIR= ${INCLUDEDIR} +COM_ERR= com_err.h + +.PATH: ${KRB5_DIR}/util/verto +VERTODIR= ${INCLUDEDIR} +VERTO= verto-module.h \ + verto.h + +.PATH: ${KRB5_DIR}/include/krb5 + +copies: + cd ${KRB5_DIR}/include; \ + ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m444 ${INCS} ${SDESTDIR}${INCLUDEDIR} + cd ${KRB5_DIR}/util/et; \ + ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m444 ${COM_ERR} ${SDESTDIR}${INCLUDEDIR} + cd ${KRB5_DIR}/util/verto; \ + ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m444 ${VERTO} ${SDESTDIR}${INCLUDEDIR} + + +.include diff --git a/krb5/include/Makefile.inc b/krb5/include/Makefile.inc new file mode 100644 index 000000000000..56c36b7539f7 --- /dev/null +++ b/krb5/include/Makefile.inc @@ -0,0 +1,10 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include "../Makefile.inc" diff --git a/krb5/include/autoconf.h b/krb5/include/autoconf.h new file mode 100644 index 000000000000..24039611c7e7 --- /dev/null +++ b/krb5/include/autoconf.h @@ -0,0 +1,768 @@ +/* include/autoconf.h. Generated from autoconf.h.in by configure. */ +/* include/autoconf.h.in. Generated from configure.ac by autoheader. */ + + +#ifndef KRB5_AUTOCONF_H +#define KRB5_AUTOCONF_H + +#include +#include + + +/* Define if AES-NI support is enabled */ +/* #undef AESNI */ + +/* Define if socket can't be bound to 0.0.0.0 */ +/* #undef BROKEN_STREAMS_SOCKETS */ + +/* Define if va_list objects can be simply copied by assignment. */ +/* #undef CAN_COPY_VA_LIST */ + +/* Define to reduce code size even if it means more cpu usage */ +/* #undef CONFIG_SMALL */ + +/* Define if __attribute__((constructor)) works */ +#define CONSTRUCTOR_ATTR_WORKS 1 + +/* Define to use OpenSSL crypto library */ +#define CRYPTO_OPENSSL 1 + +/* Define to default ccache name */ +#define DEFCCNAME "FILE:/tmp/krb5cc_%{uid}" + +/* Define to default client keytab name */ +#define DEFCKTNAME "FILE:/var/krb5/user/%{euid}/client.keytab" + +/* Define to default keytab name */ +#define DEFKTNAME "FILE:/etc/krb5.keytab" + +/* Define if library initialization should be delayed until first use */ +#define DELAY_INITIALIZER 1 + +/* Define if __attribute__((destructor)) works */ +#define DESTRUCTOR_ATTR_WORKS 1 + +/* Define to disable PKINIT plugin support */ +/* #undef DISABLE_PKINIT */ + +/* Define if LDAP KDB support within the Kerberos library (mainly ASN.1 code) + should be enabled. */ +/* #undef ENABLE_LDAP */ + +/* Define if translation functions should be used. */ +/* #undef ENABLE_NLS */ + +/* Define if thread support enabled */ +#define ENABLE_THREADS 1 + +/* Define as return type of endrpcent */ +#define ENDRPCENT_TYPE void + +/* Define to the type of elements in the array set by `getgroups'. Usually + this is either `int' or `gid_t'. */ +#define GETGROUPS_T gid_t + +/* Define if gethostbyname_r returns int rather than struct hostent * */ +#define GETHOSTBYNAME_R_RETURNS_INT 1 + +/* Type of getpeername second argument. */ +#define GETPEERNAME_ARG3_TYPE GETSOCKNAME_ARG3_TYPE + +/* Define if getpwnam_r exists but takes only 4 arguments (e.g., POSIX draft 6 + implementations like some Solaris releases). */ +/* #undef GETPWNAM_R_4_ARGS */ + +/* Define if getpwnam_r returns an int */ +#define GETPWNAM_R_RETURNS_INT 1 + +/* Define if getpwuid_r exists but takes only 4 arguments (e.g., POSIX draft 6 + implementations like some Solaris releases). */ +/* #undef GETPWUID_R_4_ARGS */ + +/* Define if getservbyname_r returns int rather than struct servent * */ +#define GETSERVBYNAME_R_RETURNS_INT 1 + +/* Type of pointer target for argument 3 to getsockname */ +#define GETSOCKNAME_ARG3_TYPE socklen_t + +/* Define if gmtime_r returns int instead of struct tm pointer, as on old + HP-UX systems. */ +/* #undef GMTIME_R_RETURNS_INT */ + +/* Define if va_copy macro or function is available. */ +#define HAS_VA_COPY 1 + +/* Define to 1 if you have the `access' function. */ +#define HAVE_ACCESS 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_ALLOCA_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ARPA_INET_H 1 + +/* Define to 1 if you have the `bswap16' function. */ +/* #undef HAVE_BSWAP16 */ + +/* Define to 1 if you have the `bswap64' function. */ +/* #undef HAVE_BSWAP64 */ + +/* Define to 1 if bswap_16 is available via byteswap.h */ +/* #undef HAVE_BSWAP_16 */ + +/* Define to 1 if bswap_64 is available via byteswap.h */ +/* #undef HAVE_BSWAP_64 */ + +/* Define if bt_rseq is available, for recursive btree traversal. */ +#define HAVE_BT_RSEQ 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BYTESWAP_H */ + +/* Define to 1 if you have the `chmod' function. */ +#define HAVE_CHMOD 1 + +/* Define if cmocka library is available. */ +/* #undef HAVE_CMOCKA */ + +/* Define to 1 if you have the `compile' function. */ +/* #undef HAVE_COMPILE */ + +/* Define if com_err has compatible gettext support */ +#define HAVE_COM_ERR_INTL 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CPUID_H */ + +/* Define to 1 if you have the `daemon' function. */ +#define HAVE_DAEMON 1 + +/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you + don't. */ +#define HAVE_DECL_STRERROR_R 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `dn_skipname' function. */ +#define HAVE_DN_SKIPNAME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ENDIAN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ERRNO_H 1 + +/* Define to 1 if you have the `EVP_PKEY_get_bn_param' function. */ +#define HAVE_EVP_PKEY_GET_BN_PARAM 1 + +/* Define to 1 if you have the `explicit_bzero' function. */ +#define HAVE_EXPLICIT_BZERO 1 + +/* Define to 1 if you have the `explicit_memset' function. */ +/* #undef HAVE_EXPLICIT_MEMSET */ + +/* Define to 1 if you have the `fchmod' function. */ +#define HAVE_FCHMOD 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the `flock' function. */ +#define HAVE_FLOCK 1 + +/* Define to 1 if you have the `fnmatch' function. */ +#define HAVE_FNMATCH 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FNMATCH_H 1 + +/* Define if you have the getaddrinfo function */ +#define HAVE_GETADDRINFO 1 + +/* Define to 1 if you have the `getcwd' function. */ +#define HAVE_GETCWD 1 + +/* Define to 1 if you have the `getenv' function. */ +#define HAVE_GETENV 1 + +/* Define to 1 if you have the `geteuid' function. */ +#define HAVE_GETEUID 1 + +/* Define if gethostbyname_r exists and its return type is known */ +#define HAVE_GETHOSTBYNAME_R 1 + +/* Define to 1 if you have the `getnameinfo' function. */ +#define HAVE_GETNAMEINFO 1 + +/* Define if system getopt should be used. */ +#define HAVE_GETOPT 1 + +/* Define if system getopt_long should be used. */ +#define HAVE_GETOPT_LONG 1 + +/* Define if getpwnam_r is available and useful. */ +#define HAVE_GETPWNAM_R 1 + +/* Define if getpwuid_r is available and useful. */ +#define HAVE_GETPWUID_R 1 + +/* Define to 1 if you have the `getresgid' function. */ +#define HAVE_GETRESGID 1 + +/* Define to 1 if you have the `getresuid' function. */ +#define HAVE_GETRESUID 1 + +/* Define if getservbyname_r exists and its return type is known */ +#define HAVE_GETSERVBYNAME_R 1 + +/* Have the gettimeofday function */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define to 1 if you have the `getusershell' function. */ +#define HAVE_GETUSERSHELL 1 + +/* Define to 1 if you have the `gmtime_r' function. */ +#define HAVE_GMTIME_R 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_IFADDRS_H 1 + +/* Define to 1 if you have the `inet_ntop' function. */ +#define HAVE_INET_NTOP 1 + +/* Define to 1 if you have the `inet_pton' function. */ +#define HAVE_INET_PTON 1 + +/* Define to 1 if the system has the type `int16_t'. */ +#define HAVE_INT16_T 1 + +/* Define to 1 if the system has the type `int32_t'. */ +#define HAVE_INT32_T 1 + +/* Define to 1 if the system has the type `int8_t'. */ +#define HAVE_INT8_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_KEYUTILS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LBER_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LDAP_H */ + +/* Define to 1 if you have the `crypto' library (-lcrypto). */ +#define HAVE_LIBCRYPTO 1 + +/* Define if building with libedit. */ +#define HAVE_LIBEDIT 1 + +/* Define to 1 if you have the `nsl' library (-lnsl). */ +/* #undef HAVE_LIBNSL */ + +/* Define to 1 if you have the `resolv' library (-lresolv). */ +/* #undef HAVE_LIBRESOLV */ + +/* Define to 1 if you have the `socket' library (-lsocket). */ +/* #undef HAVE_LIBSOCKET */ + +/* Define if the util library is available */ +#define HAVE_LIBUTIL 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if you have the `localtime_r' function. */ +#define HAVE_LOCALTIME_R 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MACHINE_BYTE_ORDER_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_MACHINE_ENDIAN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `mkstemp' function. */ +#define HAVE_MKSTEMP 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NETDB_H 1 + +/* Define if netdb.h declares h_errno */ +#define HAVE_NETDB_H_H_ERRNO 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NETINET_IN_H 1 + +/* Define to 1 if you have the `ns_initparse' function. */ +#define HAVE_NS_INITPARSE 1 + +/* Define to 1 if you have the `ns_name_uncompress' function. */ +#define HAVE_NS_NAME_UNCOMPRESS 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_PATHS_H 1 + +/* Define if persistent keyrings are supported */ +/* #undef HAVE_PERSISTENT_KEYRING */ + +/* Define to 1 if you have the header file. */ +#define HAVE_POLL_H 1 + +/* Define if #pragma weak references work */ +#define HAVE_PRAGMA_WEAK_REF 1 + +/* Define if you have POSIX threads libraries and header files. */ +#define HAVE_PTHREAD 1 + +/* Define to 1 if you have the `pthread_once' function. */ +#define HAVE_PTHREAD_ONCE 1 + +/* Have PTHREAD_PRIO_INHERIT. */ +#define HAVE_PTHREAD_PRIO_INHERIT 1 + +/* Define to 1 if you have the `pthread_rwlock_init' function. */ +#define HAVE_PTHREAD_RWLOCK_INIT 1 + +/* Define if pthread_rwlock_init is provided in the thread library. */ +#define HAVE_PTHREAD_RWLOCK_INIT_IN_THREAD_LIB 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_PWD_H 1 + +/* Define if building with GNU Readline. */ +/* #undef HAVE_READLINE */ + +/* Define if regcomp exists and functions */ +#define HAVE_REGCOMP 1 + +/* Define to 1 if you have the `regexec' function. */ +#define HAVE_REGEXEC 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_REGEXPR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_REGEX_H 1 + +/* Define to 1 if you have the `res_nclose' function. */ +#define HAVE_RES_NCLOSE 1 + +/* Define to 1 if you have the `res_ndestroy' function. */ +#define HAVE_RES_NDESTROY 1 + +/* Define to 1 if you have the `res_ninit' function. */ +#define HAVE_RES_NINIT 1 + +/* Define to 1 if you have the `res_nsearch' function. */ +#define HAVE_RES_NSEARCH 1 + +/* Define to 1 if you have the `res_search' function */ +#define HAVE_RES_SEARCH 1 + +/* Define to 1 if you have the `re_comp' function. */ +/* #undef HAVE_RE_COMP */ + +/* Define to 1 if you have the `re_exec' function. */ +/* #undef HAVE_RE_EXEC */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SASL_SASL_H */ + +/* Define if struct sockaddr contains sa_len */ +#define HAVE_SA_LEN 1 + +/* Define to 1 if you have the `secure_getenv' function. */ +#define HAVE_SECURE_GETENV 1 + +/* Define to 1 if you have the `setegid' function. */ +#define HAVE_SETEGID 1 + +/* Define to 1 if you have the `setenv' function. */ +#define HAVE_SETENV 1 + +/* Define to 1 if you have the `seteuid' function. */ +#define HAVE_SETEUID 1 + +/* Define if setluid provided in OSF/1 security library */ +/* #undef HAVE_SETLUID */ + +/* Define to 1 if you have the `setregid' function. */ +#define HAVE_SETREGID 1 + +/* Define to 1 if you have the `setresgid' function. */ +#define HAVE_SETRESGID 1 + +/* Define to 1 if you have the `setresuid' function. */ +#define HAVE_SETRESUID 1 + +/* Define to 1 if you have the `setreuid' function. */ +#define HAVE_SETREUID 1 + +/* Define to 1 if you have the `setsid' function. */ +#define HAVE_SETSID 1 + +/* Define to 1 if you have the `setvbuf' function. */ +#define HAVE_SETVBUF 1 + +/* Define if there is a socklen_t type. If not, probably use size_t */ +#define HAVE_SOCKLEN_T 1 + +/* Define to 1 if you have the `srand' function. */ +#define HAVE_SRAND 1 + +/* Define to 1 if you have the `srand48' function. */ +#define HAVE_SRAND48 1 + +/* Define to 1 if you have the `srandom' function. */ +#define HAVE_SRANDOM 1 + +/* Define to 1 if the system has the type `ssize_t'. */ +#define HAVE_SSIZE_T 1 + +/* Define to 1 if you have the `stat' function. */ +#define HAVE_STAT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDDEF_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `step' function. */ +/* #undef HAVE_STEP */ + +/* Define to 1 if you have the `strchr' function. */ +#define HAVE_STRCHR 1 + +/* Define to 1 if you have the `strdup' function. */ +#define HAVE_STRDUP 1 + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the `strerror_r' function. */ +#define HAVE_STRERROR_R 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strlcpy' function. */ +#define HAVE_STRLCPY 1 + +/* Define to 1 if you have the `strptime' function. */ +#define HAVE_STRPTIME 1 + +/* Define to 1 if the system has the type `struct cmsghdr'. */ +#define HAVE_STRUCT_CMSGHDR 1 + +/* Define if there is a struct if_laddrconf. */ +/* #undef HAVE_STRUCT_IF_LADDRCONF */ + +/* Define to 1 if the system has the type `struct in6_pktinfo'. */ +#define HAVE_STRUCT_IN6_PKTINFO 1 + +/* Define to 1 if the system has the type `struct in_pktinfo'. */ +/* #undef HAVE_STRUCT_IN_PKTINFO */ + +/* Define if there is a struct lifconf. */ +/* #undef HAVE_STRUCT_LIFCONF */ + +/* Define to 1 if the system has the type `struct rt_msghdr'. */ +#define HAVE_STRUCT_RT_MSGHDR 1 + +/* Define to 1 if the system has the type `struct sockaddr_storage'. */ +#define HAVE_STRUCT_SOCKADDR_STORAGE 1 + +/* Define to 1 if `st_mtimensec' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_MTIMENSEC 1 + +/* Define to 1 if `st_mtimespec.tv_nsec' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC 1 + +/* Define to 1 if `st_mtim.tv_nsec' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_BSWAP_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define if sys_errlist in libc */ +#define HAVE_SYS_ERRLIST 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILIO_H 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UIO_H 1 + +/* Define to 1 if you have the `timegm' function. */ +#define HAVE_TIMEGM 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `unsetenv' function. */ +#define HAVE_UNSETENV 1 + +/* Define to 1 if the system has the type `u_char'. */ +#define HAVE_U_CHAR 1 + +/* Define to 1 if the system has the type `u_int'. */ +#define HAVE_U_INT 1 + +/* Define to 1 if the system has the type `u_int16_t'. */ +#define HAVE_U_INT16_T 1 + +/* Define to 1 if the system has the type `u_int32_t'. */ +#define HAVE_U_INT32_T 1 + +/* Define to 1 if the system has the type `u_int8_t'. */ +#define HAVE_U_INT8_T 1 + +/* Define to 1 if the system has the type `u_long'. */ +#define HAVE_U_LONG 1 + +/* Define to 1 if you have the `vasprintf' function. */ +#define HAVE_VASPRINTF 1 + +/* Define to 1 if you have the `vsnprintf' function. */ +#define HAVE_VSNPRINTF 1 + +/* Define to 1 if you have the `vsprintf' function. */ +#define HAVE_VSPRINTF 1 + +/* Define to 1 if the system has the type `__int128_t'. */ +#define HAVE___INT128_T 1 + +/* Define to 1 if the system has the type `__uint128_t'. */ +#define HAVE___UINT128_T 1 + +/* Define if errno.h declares perror */ +/* #undef HDR_HAS_PERROR */ + +/* May need to be defined to enable IPv6 support, for example on IRIX */ +/* #undef INET6 */ + +/* Define if MIT Project Athena default configuration should be used */ +/* #undef KRB5_ATHENA_COMPAT */ + +/* Define for DNS support of locating realms and KDCs */ +#define KRB5_DNS_LOOKUP 1 + +/* Define to enable DNS lookups of Kerberos realm names */ +/* #undef KRB5_DNS_LOOKUP_REALM */ + +/* Define if the KDC should return only vague error codes to clients */ +/* #undef KRBCONF_VAGUE_ERRORS */ + +/* define if the system header files are missing prototype for daemon() */ +#define NEED_DAEMON_PROTO 1 + +/* Define if in6addr_any is not defined in libc */ +/* #undef NEED_INSIXADDR_ANY */ + +/* define if the system header files are missing prototype for + ss_execute_command() */ +/* #undef NEED_SS_EXECUTE_COMMAND_PROTO */ + +/* define if the system header files are missing prototype for strptime() */ +/* #undef NEED_STRPTIME_PROTO */ + +/* define if the system header files are missing prototype for swab() */ +/* #undef NEED_SWAB_PROTO */ + +/* Define if need to declare sys_errlist */ +/* #undef NEED_SYS_ERRLIST */ + +/* define if the system header files are missing prototype for vasprintf() */ +/* #undef NEED_VASPRINTF_PROTO */ + +/* Define if the KDC should use no lookaside cache */ +/* #undef NOCACHE */ + +/* Define if references to pthread routines should be non-weak. */ +/* #undef NO_WEAK_PTHREADS */ + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "krb5-bugs@mit.edu" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "Kerberos 5" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "Kerberos 5 1.21.1" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "krb5" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "1.21.1" + +/* Default PKCS11 module name */ +#define PKCS11_MODNAME "opensc-pkcs11.so" + +/* Define if setjmp indicates POSIX interface */ +#define POSIX_SETJMP 1 + +/* Define if POSIX signal handling is used */ +#define POSIX_SIGNALS 1 + +/* Define if termios.h exists and tcsetattr exists */ +#define POSIX_TERMIOS 1 + +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +/* #undef PTHREAD_CREATE_JOINABLE */ + +/* Define as return type of setrpcent */ +#define SETRPCENT_TYPE void + +/* The size of `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T __SIZEOF_SIZE_T__ + +/* The size of `time_t', as computed by sizeof. */ +#ifdef __i386__ +#define SIZEOF_TIME_T 4 +#else +#define SIZEOF_TIME_T 8 +#endif + +/* Define to use OpenSSL for SPAKE preauth */ +#define SPAKE_OPENSSL 1 + +/* Define for static plugin linkage */ +/* #undef STATIC_PLUGINS */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to 1 if strerror_r returns char *. */ +/* #undef STRERROR_R_CHAR_P */ + +/* Define if sys_errlist is defined in errno.h */ +#define SYS_ERRLIST_DECLARED 1 + +/* Define if no TLS implementation is selected */ +/* #undef TLS_IMPL_NONE */ + +/* Define if TLS implementation is OpenSSL */ +#define TLS_IMPL_OPENSSL 1 + +/* Define to build macOS CCAPI client */ +/* #undef USE_CCAPI_MACOS */ + +/* Define if you have dirent.h functionality */ +#define USE_DIRENT_H 1 + +/* Define if dlopen should be used */ +#define USE_DLOPEN 1 + +/* Define if the keyring ccache should be enabled */ +/* #undef USE_KEYRING_CCACHE */ + +/* Define if link-time options for library finalization will be used */ +/* #undef USE_LINKER_FINI_OPTION */ + +/* Define if link-time options for library initialization will be used */ +/* #undef USE_LINKER_INIT_OPTION */ + +/* Define if sigprocmask should be used */ +#define USE_SIGPROCMASK 1 + +/* Define if wait takes int as a argument */ +#define WAIT_USES_INT 1 + +/* Define to enable extensions in glibc */ +#define _GNU_SOURCE 1 + +/* Define to enable C11 extensions */ +#define __STDC_WANT_LIB_EXT1__ 1 + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `int' if doesn't define. */ +/* #undef gid_t */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* Define to `int' if does not define. */ +/* #undef mode_t */ + +/* Define to `long int' if does not define. */ +/* #undef off_t */ + +/* Define to `long' if does not define. */ +/* #undef time_t */ + +/* Define to `int' if doesn't define. */ +/* #undef uid_t */ + + +#if defined(__GNUC__) && !defined(inline) +/* Silence gcc pedantic warnings about ANSI C. */ +# define inline __inline__ +#endif +#endif /* KRB5_AUTOCONF_H */ + diff --git a/krb5/include/gssapi/Makefile b/krb5/include/gssapi/Makefile new file mode 100644 index 000000000000..4959bf78944d --- /dev/null +++ b/krb5/include/gssapi/Makefile @@ -0,0 +1,30 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include "../Makefile.inc" + +.PATH: ${KRB5_DIR}/lib/gssapi/krb5 \ + ${KRB5_DIR}/lib/gssapi/generic \ + ${KRB5_DIR}/include + +INCSGROUPS= INCS GSSAPI_KRB5 +INCSDIR= ${INCLUDEDIR}/gssapi +GSSAPI_KRB5DIR= ${INCLUDEDIR}/gssapi_krb5 + +INCS= gssapi_alloc.h \ + gssapi_ext.h \ + gssapi_generic.h \ + gssapi_krb5.h + +# This gssapi header file is only needed should an app need +# to build using the MIT KRB5 GSSAPI library. + +GSSAPI_KRB5= gssapi.h + +.include diff --git a/krb5/include/gssrpc/Makefile b/krb5/include/gssrpc/Makefile new file mode 100644 index 000000000000..14f246867701 --- /dev/null +++ b/krb5/include/gssrpc/Makefile @@ -0,0 +1,33 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +INCSGROUPS= INCS +.include "../Makefile.inc" + +.PATH: ${KRB5_DIR}/include/gssrpc + +INCSDIR= ${INCLUDEDIR}/gssrpc +INCS= \ + auth.h \ + auth_gss.h \ + auth_gssapi.h \ + auth_unix.h \ + clnt.h \ + netdb.h \ + pmap_clnt.h \ + pmap_prot.h \ + pmap_rmt.h \ + rpc_msg.h \ + rpc.h \ + svc_auth.h \ + svc.h \ + types.h \ + xdr.h + +.include diff --git a/krb5/include/gssrpc/types.h b/krb5/include/gssrpc/types.h new file mode 100644 index 000000000000..7cc2dd267547 --- /dev/null +++ b/krb5/include/gssrpc/types.h @@ -0,0 +1,130 @@ +/* @(#)types.h 2.3 88/08/15 4.0 RPCSRC */ +/* + * Copyright (c) 2010, Oracle America, Inc. + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of the “Oracle America, Inc.” nor the names of + * its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * 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 MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * 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 DAMAGE. + */ +/* @(#)types.h 1.18 87/07/24 SMI */ + +/* + * Rpc additions to + */ +#ifndef GSSRPC_TYPES_H +#define GSSRPC_TYPES_H + +#include + +#include +#include +#include + +/* + * Try to get MAXHOSTNAMELEN from somewhere. + */ +#include +/* #include */ + +/* Get htonl(), ntohl(), etc. */ +#include + +#include +#include +#include + +#ifndef GSSRPC__BEGIN_DECLS +#ifdef __cplusplus +#define GSSRPC__BEGIN_DECLS extern "C" { +#define GSSRPC__END_DECLS } +#else +#define GSSRPC__BEGIN_DECLS +#define GSSRPC__END_DECLS +#endif +#endif + +GSSRPC__BEGIN_DECLS + +#if defined(CHAR_BIT) && CHAR_BIT != 8 +#error "Bytes must be exactly 8 bits." +#endif + +/* Define if we need to fake up some BSD type aliases. */ +#ifndef GSSRPC__BSD_TYPEALIASES /* Allow application to override. */ +/* #undef GSSRPC__BSD_TYPEALIASES */ +#endif +#if GSSRPC__BSD_TYPEALIASES +typedef unsigned char u_char; +typedef unsigned short u_short; +typedef unsigned int u_int; +typedef unsigned long u_long; +#endif + +typedef uint32_t rpcprog_t; +typedef uint32_t rpcvers_t; +typedef uint32_t rpcprot_t; +typedef uint32_t rpcproc_t; +typedef uint32_t rpcport_t; +typedef int32_t rpc_inline_t; + +/* This is for rpc/netdb.h */ +#define STRUCT_RPCENT_IN_RPC_NETDB_H + +typedef int bool_t; +typedef int enum_t; +#ifndef FALSE +# define FALSE (0) +#endif +#ifndef TRUE +# define TRUE (1) +#endif +/* XXX namespace */ +#define __dontcare__ -1 +#ifndef NULL +# define NULL 0 +#endif + +/* + * The below should probably be internal-only, but seem to be + * traditionally exported in RPC implementations. + */ +#define mem_alloc(bsize) malloc(bsize) +#define mem_free(ptr, bsize) free(ptr) + +#ifndef INADDR_LOOPBACK +#define INADDR_LOOPBACK (uint32_t)0x7F000001 +#endif +#ifndef MAXHOSTNAMELEN +#define MAXHOSTNAMELEN 64 +#endif + +GSSRPC__END_DECLS + +#include + +#endif /* !defined(GSSRPC_TYPES_H) */ diff --git a/krb5/include/krb5/Makefile b/krb5/include/krb5/Makefile new file mode 100644 index 000000000000..c560cf770924 --- /dev/null +++ b/krb5/include/krb5/Makefile @@ -0,0 +1,29 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include "../Makefile.inc" + +.PATH: ${KRB5_DIR}/include/krb5 + +INCSDIR= ${INCLUDEDIR}/krb5 +INCS= ccselect_plugin.h \ + certauth_plugin.h \ + clpreauth_plugin.h \ + hostrealm_plugin.h \ + kadm5_auth_plugin.h \ + kadm5_hook_plugin.h \ + kdcpolicy_plugin.h \ + kdcpreauth_plugin.h \ + localauth_plugin.h \ + locate_plugin.h \ + plugin.h \ + preauth_plugin.h \ + pwqual_plugin.h + +.include diff --git a/krb5/include/krb5_private/Makefile b/krb5/include/krb5_private/Makefile new file mode 100644 index 000000000000..49520da22641 --- /dev/null +++ b/krb5/include/krb5_private/Makefile @@ -0,0 +1,43 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include "../Makefile.inc" + +# This is a bit of a hack but the reason we have to do this is +# ${KRB5_DIR}/include/krb5/krb5.h is installed in /usr/include +# while ${KRB5_DIR}/include/krb5/krb5.hin (generates to krb5.h) +# installs to /usr/include/krb5/krb5.h. The conflicting files +# makes it impossible to generate krb5.h when it already exists. +# The MIT Makefile creates a krb5.h.new file, comparing it and +# replacing it if different. Then regenerating the original source +# to install it. Look at the MIT Makefile yourself to fully understand. + +.PATH: ${KRB5_DIR}/include/krb5 \ + ${KRB5_DIR}/lib/gssapi/krb5 \ + ${KRB5_DIR}/lib/gssapi/generic \ + ${KRB5_DIR}/include + +INCSDIR= ${INCLUDEDIR}/krb5 +INCS= krb5.h ${GGENI} ${K5GENI} + +.include "${KRB5_SRCTOP}/lib/krb5/error_tables/Makefile.inc" +PFX= include +.include "${KRB5_SRCTOP}/lib/gssapi/krb5/Makefile.et" +.include "${KRB5_SRCTOP}/lib/gssapi/generic/Makefile.et" + +CLEANFILES+= krb5.h + +krb5.h: krb5.hin ${GENI_ET} + @echo "/* This file is generated, please don't edit it directly. */" > ${.TARGET} + @echo "#ifndef KRB5_KRB5_H_INCLUDED" >> ${.TARGET} + @echo "#define KRB5_KRB5_H_INCLUDED" >> ${.TARGET} + @cat ${.ALLSRC} >> ${.TARGET} + @echo "#endif /* KRB5_KRB5_H_INCLUDED */" >> ${.TARGET} + +.include diff --git a/krb5/include/osconf.h b/krb5/include/osconf.h new file mode 100644 index 000000000000..5293d3eb7b88 --- /dev/null +++ b/krb5/include/osconf.h @@ -0,0 +1,141 @@ +/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* + * Copyright 1990,1991,2008 by the Massachusetts Institute of Technology. + * All Rights Reserved. + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. Furthermore if you modify this software you must label + * your software as modified software and not distribute it in such a + * fashion that it might be confused with the original M.I.T. software. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + */ + +/* Site- and OS- dependent configuration */ + +#ifndef KRB5_OSCONF__ +#define KRB5_OSCONF__ + +#if !defined(_WIN32) +/* Don't try to pull in autoconf.h for Windows, since it's not used */ +#ifndef KRB5_AUTOCONF__ +#define KRB5_AUTOCONF__ +#include "autoconf.h" +#endif +#endif + +#if defined(__MACH__) && defined(__APPLE__) +# include +#endif + +#if defined(_WIN32) +#define DEFAULT_PROFILE_FILENAME "krb5.ini" +#else /* !_WINDOWS */ +#if TARGET_OS_MAC +#define DEFAULT_SECURE_PROFILE_PATH "/Library/Preferences/edu.mit.Kerberos:/etc/krb5.conf:/usr/local/etc/krb5.conf" +#define DEFAULT_PROFILE_PATH ("~/Library/Preferences/edu.mit.Kerberos" ":" DEFAULT_SECURE_PROFILE_PATH) +#define KRB5_PLUGIN_BUNDLE_DIR "/System/Library/KerberosPlugins/KerberosFrameworkPlugins" +#define KDB5_PLUGIN_BUNDLE_DIR "/System/Library/KerberosPlugins/KerberosDatabasePlugins" +#define KRB5_AUTHDATA_PLUGIN_BUNDLE_DIR "/System/Library/KerberosPlugins/KerberosAuthDataPlugins" +#else +#define DEFAULT_SECURE_PROFILE_PATH "/etc/krb5.conf" +#define DEFAULT_PROFILE_PATH DEFAULT_SECURE_PROFILE_PATH +#endif +#endif /* _WINDOWS */ + +#ifdef _WIN32 +#define DEFAULT_PLUGIN_BASE_DIR "%{LIBDIR}\\plugins" +#else +#define DEFAULT_PLUGIN_BASE_DIR "/usr/local/lib/krb5/plugins" +#endif + +#if defined(_WIN64) +#define PLUGIN_EXT "64.dll" +#elif defined(_WIN32) +#define PLUGIN_EXT "32.dll" +#else +#define PLUGIN_EXT ".so" +#endif + +#define KDC_DIR "/var/db/krb5kdc" +#define KDC_RUN_DIR "/var/run/krb5kdc" +#define DEFAULT_KDB_FILE KDC_DIR "/principal" +#define DEFAULT_KEYFILE_STUB KDC_DIR "/.k5." +#define KRB5_DEFAULT_ADMIN_ACL KDC_DIR "/krb5_adm.acl" +/* Used by old admin server */ +#define DEFAULT_ADMIN_ACL KDC_DIR "/kadm_old.acl" + +/* Location of KDC profile */ +#define DEFAULT_KDC_PROFILE KDC_DIR "/kdc.conf" +#define KDC_PROFILE_ENV "KRB5_KDC_PROFILE" + +#if TARGET_OS_MAC +#define DEFAULT_KDB_LIB_PATH { KDB5_PLUGIN_BUNDLE_DIR, "/usr/lib/krb5/plugins/kdb", NULL } +#else +#define DEFAULT_KDB_LIB_PATH { "/usr/lib/krb5/plugins/kdb", NULL } +#endif + +#define DEFAULT_KDC_ENCTYPE ENCTYPE_AES256_CTS_HMAC_SHA1_96 +#define KDCRCACHE "dfl:krb5kdc_rcache" + +#define KDC_PORTNAME "kerberos" /* for /etc/services or equiv. */ + +#define KRB5_DEFAULT_PORT 88 + +#define DEFAULT_KPASSWD_PORT 464 + +#define DEFAULT_KDC_UDP_PORTLIST "88" +#define DEFAULT_KDC_TCP_PORTLIST "88" +#define DEFAULT_TCP_LISTEN_BACKLOG 5 + +/* + * Defaults for the KADM5 admin system. + */ +#define DEFAULT_KADM5_KEYTAB KDC_DIR "/kadm5.keytab" +#define DEFAULT_KADM5_ACL_FILE KDC_DIR "/kadm5.acl" +#define DEFAULT_KADM5_PORT 749 /* assigned by IANA */ + +#define KRB5_DEFAULT_SUPPORTED_ENCTYPES \ + "aes256-cts-hmac-sha1-96:normal " \ + "aes128-cts-hmac-sha1-96:normal" + +#define MAX_DGRAM_SIZE 65536 + +#define RCTMPDIR "/var/tmp" /* directory to store replay caches */ + +#define KRB5_PATH_TTY "/dev/tty" +#define KRB5_PATH_LOGIN "/usr/sbin/login.krb5" +#define KRB5_PATH_RLOGIN "/usr/bin/rlogin" + +#define KRB5_ENV_CCNAME "KRB5CCNAME" + +/* + * krb5 replica support follows + */ + +#define KPROP_DEFAULT_FILE KDC_DIR "/replica_datatrans" +#define KPROPD_DEFAULT_FILE KDC_DIR "/from_master" +#define KPROPD_DEFAULT_KDB5_UTIL "/usr/sbin/kdb5_util" +#define KPROPD_DEFAULT_KPROP "/usr/sbin/kprop" +#define KPROPD_DEFAULT_KRB_DB DEFAULT_KDB_FILE +#define KPROPD_ACL_FILE KDC_DIR "/kpropd.acl" + +/* + * GSS mechglue + */ +#define MECH_CONF "/usr/etc/gss/mech" +#define MECH_LIB_PREFIX "/usr/lib/gss/" + +#endif /* KRB5_OSCONF__ */ diff --git a/krb5/lib/Makefile b/krb5/lib/Makefile new file mode 100644 index 000000000000..9df98e2cc056 --- /dev/null +++ b/krb5/lib/Makefile @@ -0,0 +1,14 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +SUBDIR= crypto krb5 gssapi rpc kdb kadm5clnt kadm5srv apputils krad kadmin_common kprop_util + +# SUBDIR_PARALLEL= + +.include diff --git a/krb5/lib/Makefile.inc b/krb5/lib/Makefile.inc new file mode 100644 index 000000000000..8df7b76410a2 --- /dev/null +++ b/krb5/lib/Makefile.inc @@ -0,0 +1,16 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include "../Makefile.inc" + +KRB5_KRB5LIBDIR= ${KRB5_SRCLIBDIR}/krb5 +KRB5_K5CRYPTODIR= ${KRB5_SRCLIBDIR}/crypto + +SHLIBDIR?= /usr/lib +SHLIB_MAJOR?= 121 diff --git a/krb5/lib/apputils/Makefile b/krb5/lib/apputils/Makefile new file mode 100644 index 000000000000..62ef36f0615e --- /dev/null +++ b/krb5/lib/apputils/Makefile @@ -0,0 +1,31 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5-lib + +.include + +.include "../Makefile.inc" + +LIB= apputils +INTERNALLIB= +LDFLAGS=-Wl,--no-undefined + +SRCS= net-server.c \ + udppktinfo.c \ + udppktinfo.h + +CFLAGS+=-I${KRB5_DIR}/lib/apputils \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include \ + -I${.OBJDIR} + +.include + +.PATH: ${KRB5_DIR}/lib/apputils diff --git a/krb5/lib/crypto/Makefile b/krb5/lib/crypto/Makefile new file mode 100644 index 000000000000..5087a2fb559b --- /dev/null +++ b/krb5/lib/crypto/Makefile @@ -0,0 +1,51 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIB= k5crypto +# SHLIB_MAJOR= 3 +LDFLAGS=-Wl,--no-undefined +LIBADD= com_err krb5support crypto + +# XXX The following doesn't work. Even though the pathnames are the same +# XXX we need to use the alternative .include statements. +# .include "${KRB5_CRYPTOLIBDIR}/krb/Makefile.inc" +# .include "${KRB5_CRYPTOLIBDIR}/builtin/Makefile.inc" +# .include "${KRB5_CRYPTOLIBDIR}/openssl/Makefile.inc" + +.include "${KRB5_SRCTOP}/lib/krb5/error_tables/Makefile.inc" + +SRCS+= ${GEN_ET} + +.include "${KRB5_SRCTOP}/lib/crypto/krb/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/crypto/builtin/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/crypto/openssl/Makefile.inc" + +# Not normally configured to use the openssl provider +# .include "${KRB5_SRCTOP}/lib/crypto/openssl/Makefile.inc" + +CFLAGS+=-I${.CURDIR:H:H}/include \ + -I${KRB5_DIR}/include \ + -I${KRB5_DIR}/lib/crypto \ + -I${KRB5_DIR}/lib/crypto/krb \ + -I${KRB5_DIR}/lib/crypto/builtin/aes \ + -I${KRB5_DIR}/lib/crypto/builtin/camellia \ + -I${KRB5_DIR}/lib/crypto/builtin/des \ + -I${KRB5_DIR}/lib/crypto/builtin/md4 \ + -I${KRB5_DIR}/lib/crypto/builtin/md5 \ + -I${KRB5_DIR}/lib/crypto/builtin/sha1 \ + -I${KRB5_DIR}/lib/crypto/builtin/sha2 \ + -I${SRCTOP}/crypto/openssl/include + +.include diff --git a/krb5/lib/crypto/builtin/Makefile.inc b/krb5/lib/crypto/builtin/Makefile.inc new file mode 100644 index 000000000000..afb1afa27083 --- /dev/null +++ b/krb5/lib/crypto/builtin/Makefile.inc @@ -0,0 +1,25 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +# .PATH: ${KRB5_DIR}/lib/crypto/builtin + +# SRCS+=cmac.c \ +# hmac.c \ +# kdf.c \ +# pbkdf2.c + +# .include "${KRB5_SRCTOP}/lib/crypto/builtin/camellia/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/crypto/builtin/aes/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/crypto/builtin/des/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/crypto/builtin/md4/Makefile.inc" +# .include "${KRB5_SRCTOP}/lib/crypto/builtin/md5/Makefile.inc" +# .include "${KRB5_SRCTOP}/lib/crypto/builtin/sha1/Makefile.inc" +# .include "${KRB5_SRCTOP}/lib/crypto/builtin/sha2/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/crypto/builtin/enc_provider/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/crypto/builtin/hash_provider/Makefile.inc" diff --git a/krb5/lib/crypto/builtin/aes/Makefile.inc b/krb5/lib/crypto/builtin/aes/Makefile.inc new file mode 100644 index 000000000000..f74b486b5ba5 --- /dev/null +++ b/krb5/lib/crypto/builtin/aes/Makefile.inc @@ -0,0 +1,14 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/crypto/builtin/aes + +SRCS+= aescrypt.c \ + aeskey.c \ + aestab.c diff --git a/krb5/lib/crypto/builtin/camellia/Makefile.inc b/krb5/lib/crypto/builtin/camellia/Makefile.inc new file mode 100644 index 000000000000..eef5973f3a7d --- /dev/null +++ b/krb5/lib/crypto/builtin/camellia/Makefile.inc @@ -0,0 +1,12 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/crypto/builtin/camellia + +SRCS+= camellia.c diff --git a/krb5/lib/crypto/builtin/des/Makefile.inc b/krb5/lib/crypto/builtin/des/Makefile.inc new file mode 100644 index 000000000000..8fd5b615e913 --- /dev/null +++ b/krb5/lib/crypto/builtin/des/Makefile.inc @@ -0,0 +1,22 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/crypto/builtin/des + +SRCS+= d3_aead.c \ + d3_kysched.c \ + f_aead.c \ + f_cksum.c \ + f_parity.c \ + f_sched.c \ + f_tables.c \ + key_sched.c \ + weak_key.c + +# des_keys.c diff --git a/krb5/lib/crypto/builtin/enc_provider/Makefile.inc b/krb5/lib/crypto/builtin/enc_provider/Makefile.inc new file mode 100644 index 000000000000..09df8cbc6300 --- /dev/null +++ b/krb5/lib/crypto/builtin/enc_provider/Makefile.inc @@ -0,0 +1,17 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/crypto/builtin/enc_provider + +SRCS+= builtin_rc4.c + +CLEANFILES+= builtin_rc4.c + +builtin_rc4.c: ${KRB5_DIR}/lib/crypto/builtin/enc_provider/rc4.c + @cp ${.ALLSRC} ${.TARGET} diff --git a/krb5/lib/crypto/builtin/hash_provider/Makefile.inc b/krb5/lib/crypto/builtin/hash_provider/Makefile.inc new file mode 100644 index 000000000000..216d7f2d4e9d --- /dev/null +++ b/krb5/lib/crypto/builtin/hash_provider/Makefile.inc @@ -0,0 +1,15 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/crypto/builtin/hash_provider + +SRCS+= hash_md4.c \ + hash_md5.c \ + hash_sha1.c \ + hash_sha2.c diff --git a/krb5/lib/crypto/builtin/md4/Makefile.inc b/krb5/lib/crypto/builtin/md4/Makefile.inc new file mode 100644 index 000000000000..baf45bb094d2 --- /dev/null +++ b/krb5/lib/crypto/builtin/md4/Makefile.inc @@ -0,0 +1,12 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/crypto/builtin/md4 + +SRCS+= md4.c diff --git a/krb5/lib/crypto/builtin/md5/Makefile.inc b/krb5/lib/crypto/builtin/md5/Makefile.inc new file mode 100644 index 000000000000..ffdccd41fe3f --- /dev/null +++ b/krb5/lib/crypto/builtin/md5/Makefile.inc @@ -0,0 +1,12 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/crypto/builtin/md5 + +SRCS+= md5.c diff --git a/krb5/lib/crypto/builtin/sha1/Makefile.inc b/krb5/lib/crypto/builtin/sha1/Makefile.inc new file mode 100644 index 000000000000..9e5f8a5b9d2c --- /dev/null +++ b/krb5/lib/crypto/builtin/sha1/Makefile.inc @@ -0,0 +1,12 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/crypto/builtin/sha1 + +SRCS+= shs.c diff --git a/krb5/lib/crypto/builtin/sha2/Makefile.inc b/krb5/lib/crypto/builtin/sha2/Makefile.inc new file mode 100644 index 000000000000..f6ce222f730f --- /dev/null +++ b/krb5/lib/crypto/builtin/sha2/Makefile.inc @@ -0,0 +1,13 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/crypto/builtin/sha2 + +SRCS+= sha256.c \ + sha512.c diff --git a/krb5/lib/crypto/krb/Makefile.inc b/krb5/lib/crypto/krb/Makefile.inc new file mode 100644 index 000000000000..a38178fd3a2e --- /dev/null +++ b/krb5/lib/crypto/krb/Makefile.inc @@ -0,0 +1,65 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/crypto/krb + +SRCS+= aead.c \ + block_size.c \ + cf2.c \ + checksum_dk_cmac.c \ + checksum_dk_hmac.c \ + checksum_etm.c \ + checksum_hmac_md5.c \ + checksum_length.c \ + checksum_unkeyed.c \ + cksumtype_to_string.c \ + cksumtypes.c \ + coll_proof_cksum.c \ + crypto_length.c \ + decrypt.c \ + decrypt_iov.c \ + default_state.c \ + derive.c \ + enc_dk_cmac.c \ + enc_dk_hmac.c \ + enc_etm.c \ + enc_raw.c \ + enc_rc4.c \ + encrypt.c \ + encrypt_iov.c \ + encrypt_length.c \ + enctype_util.c \ + etypes.c \ + key.c \ + keyblocks.c \ + keyed_checksum_types.c \ + keyed_cksum.c \ + keylengths.c \ + make_checksum.c \ + make_checksum_iov.c \ + make_random_key.c \ + mandatory_sumtype.c \ + nfold.c \ + old_api_glue.c \ + prf.c \ + prf_aes2.c \ + prf_cmac.c \ + prf_des.c \ + prf_dk.c \ + prf_rc4.c \ + prng.c \ + random_to_key.c \ + s2k_pbkdf2.c \ + s2k_rc4.c \ + state.c \ + string_to_cksumtype.c \ + string_to_key.c \ + valid_cksumtype.c \ + verify_checksum.c \ + verify_checksum_iov.c diff --git a/krb5/lib/crypto/openssl/Makefile.inc b/krb5/lib/crypto/openssl/Makefile.inc new file mode 100644 index 000000000000..0b81260a059e --- /dev/null +++ b/krb5/lib/crypto/openssl/Makefile.inc @@ -0,0 +1,21 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/crypto/openssl + +SRCS+= cmac.c \ + hmac.c \ + kdf.c \ + pbkdf2.c \ + sha256.c + + +.include "${KRB5_SRCTOP}/lib/crypto/openssl/des/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/crypto/openssl/enc_provider/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/crypto/openssl/hash_provider/Makefile.inc" diff --git a/krb5/lib/crypto/openssl/des/Makefile.inc b/krb5/lib/crypto/openssl/des/Makefile.inc new file mode 100644 index 000000000000..ef05fe0b0785 --- /dev/null +++ b/krb5/lib/crypto/openssl/des/Makefile.inc @@ -0,0 +1,12 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/crypto/openssl/des + +SRCS+= des_keys.c diff --git a/krb5/lib/crypto/openssl/enc_provider/Makefile.inc b/krb5/lib/crypto/openssl/enc_provider/Makefile.inc new file mode 100644 index 000000000000..8cf42dcc6e31 --- /dev/null +++ b/krb5/lib/crypto/openssl/enc_provider/Makefile.inc @@ -0,0 +1,25 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/crypto/openssl/enc_provider + +SRCS+= openssl_aes.c \ + openssl_camellia.c \ + openssl_des3.c + +CLEANFILES= openssl_aes.c openssl_camellia.c openssl_des3.c + +openssl_aes.c: ${KRB5_DIR}/lib/crypto/openssl/enc_provider/aes.c + @cp ${.ALLSRC} ${.TARGET} + +openssl_camellia.c: ${KRB5_DIR}/lib/crypto/openssl/enc_provider/camellia.c + @cp ${.ALLSRC} ${.TARGET} + +openssl_des3.c: ${KRB5_DIR}/lib/crypto/openssl/enc_provider/des3.c + @cp ${.ALLSRC} ${.TARGET} diff --git a/krb5/lib/crypto/openssl/hash_provider/Makefile.inc b/krb5/lib/crypto/openssl/hash_provider/Makefile.inc new file mode 100644 index 000000000000..83f2f1ba9129 --- /dev/null +++ b/krb5/lib/crypto/openssl/hash_provider/Makefile.inc @@ -0,0 +1,12 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/crypto/openssl/hash_provider + +SRCS+= hash_evp.c diff --git a/krb5/lib/gssapi/Makefile b/krb5/lib/gssapi/Makefile new file mode 100644 index 000000000000..51ed6f162d65 --- /dev/null +++ b/krb5/lib/gssapi/Makefile @@ -0,0 +1,48 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIB= gssapi_krb5 +# SHLIB_MAJOR= 2 +LDFLAGS=-Wl,--no-undefined +LIBADD= krb5 k5crypto com_err krb5profile krb5support + +# This is a contcatonation of: +# crypto/krb5/src/lib/gssapi/libgssapi_krb5.exports +# crypto/krb5/src/lib/gssapi/spnego/mech_spnego.exports + +.include "${KRB5_SRCTOP}/lib/gssapi/generic/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/gssapi/krb5/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/gssapi/spnego/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/gssapi/mechglue/Makefile.inc" + +DEFINES=-D_GSS_STATIC_LINK=1 + +CFLAGS+=${DEFINES} \ + -I${KRB5_DIR}/lib/gssapi/generic \ + -I${KRB5_DIR}/lib/gssapi/krb5 \ + -I${KRB5_DIR}/lib/gssapi/spnego \ + -I${KRB5_DIR}/lib/gssapi/mechglue \ + -I${KRB5_DIR}/lib/gssapi \ + -I${KRB5_DIR}/lib \ + -I${KRB5_SRCTOP}/lib \ + -I${KRB5_SRCTOP}/lib/gssapi \ + -I${KRB5_OBJTOP}/lib/gssapi \ + -I${KRB5_OBJTOP}/lib \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +.include + +.SUFFIXES: .h .c .et diff --git a/krb5/lib/gssapi/errmap.h b/krb5/lib/gssapi/errmap.h new file mode 100644 index 000000000000..4f49dfd3c179 --- /dev/null +++ b/krb5/lib/gssapi/errmap.h @@ -0,0 +1,274 @@ +/* + * This file is generated, please don't edit it. + * script: ../../../util/gen.pl + * args: bimap errmap.h NAME=mecherrmap LEFT=OM_uint32 RIGHT=struct mecherror LEFTPRINT=print_OM_uint32 RIGHTPRINT=mecherror_print LEFTCMP=cmp_OM_uint32 RIGHTCMP=mecherror_cmp + * The rest of this file is copied from a template, with + * substitutions. See the template for copyright info. + */ +/* start of t_bimap header template */ +/* + * bidirectional mapping table, add-only + * + * Parameters: + * NAME + * LEFT, RIGHT - types + * LEFTCMP, RIGHTCMP - comparison functions + * + * Methods: + * int init() - nonzero is error code, if any possible + * long size() + * void foreach(int (*)(LEFT, RIGHT, void*), void*) + * int add(LEFT, RIGHT) - 0 = success, -1 = allocation failure + * const struct mecherror *findleft(OM_uint32) - null iff not found + * const OM_uint32 *findright(struct mecherror) + * void destroy() - destroys container, doesn't delete elements + * + * initial implementation: flat array of (left,right) pairs + */ + +struct mecherrmap__pair { + OM_uint32 l; + struct mecherror r; +}; +/* end of t_bimap header template */ +/* start of t_array template */ + +/* + * array type, derived from template + * + * parameters: + * NAME: mecherrmap__pairarray + * TYPE: struct mecherrmap__pair + * + * methods: + * int init() -> nonzero if fail initial allocation + * unsigned long size() -> nonnegative number of values stored + * int grow(newsize) -> negative if fail allocation, memset(,0,) new space + * struct mecherrmap__pair *getaddr(idx) -> aborts if out of range + * void set(idx, value) -> aborts if out of range + * struct mecherrmap__pair get(idx) -> value, or aborts if out of range + */ + +#include +#include +#include +#include +#include + +struct mecherrmap__pairarray__header { + size_t allocated; + struct mecherrmap__pair *elts; +}; +typedef struct mecherrmap__pairarray__header mecherrmap__pairarray; + +static inline int +mecherrmap__pairarray_init(mecherrmap__pairarray *arr) +{ + arr->elts = calloc(10, sizeof(struct mecherrmap__pair)); + if (arr->elts == NULL) + return ENOMEM; + arr->allocated = 10; + return 0; +} + +static inline long +mecherrmap__pairarray_size(mecherrmap__pairarray *arr) +{ + return arr->allocated; +} + +static inline unsigned long +mecherrmap__pairarray_max_size(mecherrmap__pairarray *arr) +{ + size_t upper_bound; + + upper_bound = SIZE_MAX / sizeof(*arr->elts); + if (upper_bound > ULONG_MAX) + upper_bound = ULONG_MAX; + return (unsigned long) upper_bound; +} + +static inline int +mecherrmap__pairarray_grow(mecherrmap__pairarray *arr, unsigned long newcount) +{ + size_t oldsize = sizeof(*arr->elts) * arr->allocated; + size_t newsize; + void *ptr; + + if (newcount > LONG_MAX) + return -1; + if (newcount < arr->allocated) + return 0; + if (newcount > mecherrmap__pairarray_max_size(arr)) + return -1; + + newsize = sizeof(*arr->elts) * newcount; + ptr = realloc(arr->elts, newsize); + if (ptr == NULL) + return -1; + memset((char *)ptr + oldsize, 0, newsize - oldsize); + arr->elts = ptr; + arr->allocated = newcount; + return 0; +} + +static inline struct mecherrmap__pair * +mecherrmap__pairarray_getaddr (mecherrmap__pairarray *arr, long idx) +{ + if (idx < 0 || (unsigned long) idx >= arr->allocated) + abort(); + return arr->elts + idx; +} + +static inline void +mecherrmap__pairarray_set (mecherrmap__pairarray *arr, long idx, struct mecherrmap__pair value) +{ + struct mecherrmap__pair *newvalp; + newvalp = mecherrmap__pairarray_getaddr(arr, idx); + *newvalp = value; +} + +static inline struct mecherrmap__pair +mecherrmap__pairarray_get (mecherrmap__pairarray *arr, long idx) +{ + return *mecherrmap__pairarray_getaddr(arr, idx); +} + +static inline void +mecherrmap__pairarray_destroy (mecherrmap__pairarray *arr) +{ + free(arr->elts); + arr->elts = 0; +} +/* end of t_array template */ +/* start of t_bimap body template */ + +/* for use in cases where text substitutions may not work, like putting + "const" before a type that turns out to be "char *" */ +typedef OM_uint32 mecherrmap__left_t; +typedef struct mecherror mecherrmap__right_t; + +typedef struct { + mecherrmap__pairarray a; + long nextidx; +} mecherrmap; + +static inline int +mecherrmap_init (mecherrmap *m) +{ + m->nextidx = 0; + return mecherrmap__pairarray_init (&m->a); +} + +static inline long +mecherrmap_size (mecherrmap *m) +{ + return mecherrmap__pairarray_size (&m->a); +} + +static inline void +mecherrmap_foreach (mecherrmap *m, int (*fn)(OM_uint32, struct mecherror, void *), void *p) +{ + long i, sz; + sz = m->nextidx; + for (i = 0; i < sz; i++) { + struct mecherrmap__pair *pair; + pair = mecherrmap__pairarray_getaddr (&m->a, i); + if ((*fn)(pair->l, pair->r, p) != 0) + break; + } +} + +static inline int +mecherrmap_add (mecherrmap *m, OM_uint32 l, struct mecherror r) +{ + long i, sz; + struct mecherrmap__pair newpair; + int err; + + sz = m->nextidx; + /* Make sure we're not duplicating. */ + for (i = 0; i < sz; i++) { + struct mecherrmap__pair *pair; + pair = mecherrmap__pairarray_getaddr (&m->a, i); + assert ((*cmp_OM_uint32)(l, pair->l) != 0); + if ((*cmp_OM_uint32)(l, pair->l) == 0) + abort(); + assert ((*mecherror_cmp)(r, pair->r) != 0); + if ((*mecherror_cmp)(r, pair->r) == 0) + abort(); + } + newpair.l = l; + newpair.r = r; + if (sz >= LONG_MAX - 1) + return ENOMEM; + err = mecherrmap__pairarray_grow (&m->a, sz+1); + if (err) + return err; + mecherrmap__pairarray_set (&m->a, sz, newpair); + m->nextidx++; + return 0; +} + +static inline const mecherrmap__right_t * +mecherrmap_findleft (mecherrmap *m, OM_uint32 l) +{ + long i, sz; + sz = mecherrmap_size (m); + for (i = 0; i < sz; i++) { + struct mecherrmap__pair *pair; + pair = mecherrmap__pairarray_getaddr (&m->a, i); + if ((*cmp_OM_uint32)(l, pair->l) == 0) + return &pair->r; + } + return 0; +} + +static inline const mecherrmap__left_t * +mecherrmap_findright (mecherrmap *m, struct mecherror r) +{ + long i, sz; + sz = mecherrmap_size (m); + for (i = 0; i < sz; i++) { + struct mecherrmap__pair *pair; + pair = mecherrmap__pairarray_getaddr (&m->a, i); + if ((*mecherror_cmp)(r, pair->r) == 0) + return &pair->l; + } + return 0; +} + +struct mecherrmap__printstat { + FILE *f; + int comma; +}; +static inline int +mecherrmap__printone (OM_uint32 l, struct mecherror r, void *p) +{ + struct mecherrmap__printstat *ps = p; + fprintf(ps->f, ps->comma ? ", (" : "("); + ps->comma = 1; + (*print_OM_uint32)(l, ps->f); + fprintf(ps->f, ","); + (*mecherror_print)(r, ps->f); + fprintf(ps->f, ")"); + return 0; +} + +static inline void +mecherrmap_printmap (mecherrmap *m, FILE *f) +{ + struct mecherrmap__printstat ps; + ps.comma = 0; + ps.f = f; + fprintf(f, "("); + mecherrmap_foreach (m, mecherrmap__printone, &ps); + fprintf(f, ")"); +} + +static inline void +mecherrmap_destroy (mecherrmap *m) +{ + mecherrmap__pairarray_destroy (&m->a); +} +/* end of t_bimap body template */ diff --git a/krb5/lib/gssapi/error_map.h b/krb5/lib/gssapi/error_map.h new file mode 100644 index 000000000000..745a74995f03 --- /dev/null +++ b/krb5/lib/gssapi/error_map.h @@ -0,0 +1,112 @@ +/* + * This file is generated, please don't edit it. + * script: ../../../util/gen-map.pl + * args: + * -oerror_map.new + * NAME=gsserrmap + * KEY=OM_uint32 + * VALUE=char * + * COMPARE=compare_OM_uint32 + * FREEVALUE=free_string + * The rest of this file is copied from a template, with + * substitutions. See the template for copyright info. + */ +/* + * map, generated from template + * map name: gsserrmap + * key: OM_uint32 + * value: char * + * compare: compare_OM_uint32 + * copy_key: 0 + * free_key: 0 + * free_value: free_string + */ +struct gsserrmap__element { + OM_uint32 key; + char * value; + struct gsserrmap__element *next; +}; +struct gsserrmap__head { + struct gsserrmap__element *first; +}; +typedef struct gsserrmap__head gsserrmap; +static inline int gsserrmap_init (struct gsserrmap__head *head) +{ + head->first = NULL; + return 0; +} +static inline void gsserrmap_destroy (struct gsserrmap__head *head) +{ + struct gsserrmap__element *e, *e_next; + void (*free_key)(OM_uint32) = 0; + void (*free_value)(char *) = free_string; + for (e = head->first; e; e = e_next) { + e_next = e->next; + if (free_key) + (*free_key)(e->key); + if (free_value) + (*free_value)(e->value); + free(e); + } + head->first = NULL; +} +/* Returns pointer to linked-list entry, or null if key not found. */ +static inline struct gsserrmap__element * +gsserrmap__find_node (struct gsserrmap__head *head, OM_uint32 key) +{ + struct gsserrmap__element *e; + for (e = head->first; e; e = e->next) + if (compare_OM_uint32 (key, e->key) == 0) + return e; + return 0; +} +/* Returns pointer to value, or null if key not found. */ +static inline char * * +gsserrmap_find (struct gsserrmap__head *head, OM_uint32 key) +{ + struct gsserrmap__element *e = gsserrmap__find_node(head, key); + if (e) + return &e->value; + return 0; +} +/* Returns 0 or error code. */ +static inline int +gsserrmap__copy_key (OM_uint32 *out, OM_uint32 in) +{ + int (*copykey)(OM_uint32 *, OM_uint32) = 0; + if (copykey == 0) { + *out = in; + return 0; + } else + return (*copykey)(out, in); +} +/* Returns 0 or error code. */ +static inline int +gsserrmap_replace_or_insert (struct gsserrmap__head *head, + OM_uint32 key, char * new_value) +{ + struct gsserrmap__element *e = gsserrmap__find_node(head, key); + int ret; + + if (e) { + /* replace */ + void (*free_value)(char *) = free_string; + if (free_value) + (*free_value)(e->value); + e->value = new_value; + } else { + /* insert */ + e = malloc(sizeof(*e)); + if (e == NULL) + return ENOMEM; + ret = gsserrmap__copy_key (&e->key, key); + if (ret) { + free(e); + return ret; + } + e->value = new_value; + e->next = head->first; + head->first = e; + } + return 0; +} diff --git a/krb5/lib/gssapi/generic/Makefile.et b/krb5/lib/gssapi/generic/Makefile.et new file mode 100644 index 000000000000..787a1c8aa1e3 --- /dev/null +++ b/krb5/lib/gssapi/generic/Makefile.et @@ -0,0 +1,30 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +GEN_GSSAPI_ERR_GENERIC= gssapi_err_generic.et +GEN_GSSAPI_ERR_GENERIC_C= ${GEN_GSSAPI_ERR_GENERIC:S/.et$/.c/} +GEN_GSSAPI_ERR_GENERIC_H= ${GEN_GSSAPI_ERR_GENERIC:S/.et$/.h/} +CLEANFILES+= ${GEN_GSSAPI_ERR_GENERIC_C} ${GEN_GSSAPI_ERR_GENERIC_H} +GGEN+= ${GEN_GSSAPI_ERR_GENERIC_C} +GGENI+= ${GEN_GSSAPI_ERR_GENERIC_H} + +${GEN_GSSAPI_ERR_GENERIC:[2..-1]}: .NOMETA +${GEN_GSSAPI_ERR_GENERIC_H}: ${GEN_GSSAPI_ERR_GENERIC} + rm -f ${PFX}-et-h-${.PREFIX}.et ${PFX}-et-h-${.PREFIX}.c ${PFX}-et-h-${.PREFIX}.h + cp ${.ALLSRC} ${PFX}-et-h-${.PREFIX}.et + ${COMPILE_ET} ${PFX}-et-h-${.PREFIX}.et + mv ${PFX}-et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f ${PFX}-et-h-${.PREFIX}.et ${PFX}-et-h-${.PREFIX}.h + +${GEN_GSSAPI_ERR_GENERIC_C}: ${GEN_GSSAPI_ERR_GENERIC} + rm -f ${PFX}-et-c-${.PREFIX}.et ${PFX}-et-c-${.PREFIX}.c ${PFX}-et-c-${.PREFIX}.h + cp ${.ALLSRC} ${PFX}-et-c-${.PREFIX}.et + ${COMPILE_ET} ${PFX}-et-c-${.PREFIX}.et + mv ${PFX}-et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f ${PFX}-et-c-${.PREFIX}.et ${PFX}-et-c-${.PREFIX}.c diff --git a/krb5/lib/gssapi/generic/Makefile.inc b/krb5/lib/gssapi/generic/Makefile.inc new file mode 100644 index 000000000000..9de18079a341 --- /dev/null +++ b/krb5/lib/gssapi/generic/Makefile.inc @@ -0,0 +1,55 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/gssapi/generic \ + ${KRB5_SRCTOP}/lib/gssapi/generic \ + ${KRB5_SRCTOP}/include + +SRCS+= disp_com_err_status.c \ + disp_major_status.c \ + errmap.h \ + gssapi.h \ + gssapi_generic.c \ + oid_ops.c \ + rel_buffer.c \ + rel_oid_set.c \ + util_buffer.c \ + util_buffer_set.c \ + util_errmap.c \ + util_seqstate.c \ + util_set.c \ + util_token.c \ + ${GGEN} \ + ${GGENI} + +# The gssapi subdir is only needed should we want an app to be able to +# build using the MIT KRB5 GSSAPI library. +# XXX We may wish to either comment this out or use a knob to enable/disable +# XXX it. + +INCSGROUPS= GSSAPI_INCS +GSSAPI_INCS= gssapi.h +INCS+= ${GENI} +GSSAPI_INCSDIR= ${INCLUDEDIR}/gssapi_krb5/gssapi + +CLEANFILES+= gssapi.h ${GGEN} ${GGENI} + +INCLUDE_XOM= echo "/* no xom.h */" + +gssapi.h: gssapi.hin + echo "Creating gssapi.h" ; \ + h=gss$$$$; rm -f $$h; \ + (echo "/* This is the gssapi.h prologue. */"; \ + ${INCLUDE_XOM} && \ + echo "/* End of gssapi.h prologue. */"&& \ + cat ${KRB5_DIR}/lib/gssapi/generic/gssapi.hin )> $$h && \ + (set -x; mv $$h ${.TARGET}) ; e=$$?; rm -f $$h; exit $$e + +PFX= generic +.include "Makefile.et" diff --git a/krb5/lib/gssapi/krb5/Makefile.et b/krb5/lib/gssapi/krb5/Makefile.et new file mode 100644 index 000000000000..347f6a72f3b6 --- /dev/null +++ b/krb5/lib/gssapi/krb5/Makefile.et @@ -0,0 +1,30 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +GEN_GSSAPI_ERR_KRB5= gssapi_err_krb5.et +GEN_GSSAPI_ERR_KRB5_C= ${GEN_GSSAPI_ERR_KRB5:S/.et$/.c/} +GEN_GSSAPI_ERR_KRB5_H= ${GEN_GSSAPI_ERR_KRB5:S/.et$/.h/} +CLEANFILES= ${GEN_GSSAPI_ERR_KRB5_C} ${GEN_GSSAPI_ERR_KRB5_H} +K5GEN+= ${GEN_GSSAPI_ERR_KRB5_C} +K5GENI+= ${GEN_GSSAPI_ERR_KRB5_H} + +${GEN_GSSAPI_ERR_KRB5:[2..-1]}: .NOMETA +${GEN_GSSAPI_ERR_KRB5_H}: ${GEN_GSSAPI_ERR_KRB5} + rm -f ${PFX}-et-h-${.PREFIX}.et ${PFX}-et-h-${.PREFIX}.c ${PFX}-et-h-${.PREFIX}.h + cp ${.ALLSRC} ${PFX}-et-h-${.PREFIX}.et + ${COMPILE_ET} ${PFX}-et-h-${.PREFIX}.et + mv ${PFX}-et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f ${PFX}-et-h-${.PREFIX}.et ${PFX}-et-h-${.PREFIX}.h + +${GEN_GSSAPI_ERR_KRB5_C}: ${GEN_GSSAPI_ERR_KRB5} + rm -f ${PFX}-et-c-${.PREFIX}.et ${PFX}-et-c-${.PREFIX}.c ${PFX}-et-c-${.PREFIX}.h + cp ${.ALLSRC} ${PFX}-et-c-${.PREFIX}.et + ${COMPILE_ET} ${PFX}-et-c-${.PREFIX}.et + mv ${PFX}-et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f ${PFX}-et-c-${.PREFIX}.et ${PFX}-et-c-${.PREFIX}.c diff --git a/krb5/lib/gssapi/krb5/Makefile.inc b/krb5/lib/gssapi/krb5/Makefile.inc new file mode 100644 index 000000000000..beabe1ffa430 --- /dev/null +++ b/krb5/lib/gssapi/krb5/Makefile.inc @@ -0,0 +1,72 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/gssapi/krb5 \ + ${KRB5_SRCTOP}/lib/gssapi/krb5 \ + +SRCS+= accept_sec_context.c \ + acquire_cred.c \ + canon_name.c \ + compare_name.c \ + context_time.c \ + copy_ccache.c \ + cred_store.c \ + delete_sec_context.c \ + disp_name.c \ + disp_status.c \ + duplicate_name.c \ + export_cred.c \ + export_name.c \ + export_sec_context.c \ + get_tkt_flags.c \ + gssapi_krb5.c \ + iakerb.c \ + import_cred.c \ + import_name.c \ + import_sec_context.c \ + indicate_mechs.c \ + init_sec_context.c \ + inq_context.c \ + inq_cred.c \ + inq_names.c \ + k5seal.c \ + k5sealiov.c \ + k5sealv3.c \ + k5sealv3iov.c \ + k5unseal.c \ + k5unsealiov.c \ + krb5_gss_glue.c \ + lucid_context.c \ + naming_exts.c \ + prf.c \ + process_context_token.c \ + rel_cred.c \ + rel_name.c \ + rel_oid.c \ + s4u_gss_glue.c \ + ser_sctx.c \ + set_allowable_enctypes.c \ + set_ccache.c \ + store_cred.c \ + util_cksum.c \ + util_crypt.c \ + util_seed.c \ + util_seqnum.c \ + val_cred.c \ + wrap_size_limit.c \ + ${K5GEN} \ + ${K5GENI} + +CFLAGS+=-I${KRB5_DIR}/lib/krb5 \ + -I${KRB5_OBJTOP}/lib/krb5 \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +PFX= krb5 +.include "Makefile.et" diff --git a/krb5/lib/gssapi/mechglue/Makefile.inc b/krb5/lib/gssapi/mechglue/Makefile.inc new file mode 100644 index 000000000000..bb0d436e08d1 --- /dev/null +++ b/krb5/lib/gssapi/mechglue/Makefile.inc @@ -0,0 +1,74 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/gssapi/mechglue + +SRCS+= g_accept_sec_context.c \ + g_acquire_cred.c \ + g_acquire_cred_imp_name.c \ + g_acquire_cred_with_pw.c \ + g_authorize_localname.c \ + g_buffer_set.c \ + g_canon_name.c \ + g_compare_name.c \ + g_complete_auth_token.c \ + g_context_time.c \ + g_decapsulate_token.c \ + g_del_name_attr.c \ + g_delete_sec_context.c \ + g_dsp_name.c \ + g_dsp_name_ext.c \ + g_dsp_status.c \ + g_dup_name.c \ + g_encapsulate_token.c \ + g_exp_sec_context.c \ + g_export_cred.c \ + g_export_name.c \ + g_export_name_comp.c \ + g_get_name_attr.c \ + g_glue.c \ + g_imp_cred.c \ + g_imp_name.c \ + g_imp_sec_context.c \ + g_init_sec_context.c \ + g_initialize.c \ + g_inq_context.c \ + g_inq_context_oid.c \ + g_inq_cred.c \ + g_inq_cred_oid.c \ + g_inq_name.c \ + g_inq_names.c \ + g_map_name_to_any.c \ + g_mech_invoke.c \ + g_mechattr.c \ + g_mechname.c \ + g_negoex.c \ + g_oid_ops.c \ + g_prf.c \ + g_process_context.c \ + g_rel_buffer.c \ + g_rel_cred.c \ + g_rel_name.c \ + g_rel_name_mapping.c \ + g_rel_oid_set.c \ + g_saslname.c \ + g_seal.c \ + g_set_context_option.c \ + g_set_cred_option.c \ + g_set_name_attr.c \ + g_set_neg_mechs.c \ + g_sign.c \ + g_store_cred.c \ + g_unseal.c \ + g_unwrap_aead.c \ + g_unwrap_iov.c \ + g_verify.c \ + g_wrap_aead.c \ + g_wrap_iov.c \ + gssd_pname_to_uid.c diff --git a/krb5/lib/gssapi/spnego/Makefile.inc b/krb5/lib/gssapi/spnego/Makefile.inc new file mode 100644 index 000000000000..4ebac318ef5a --- /dev/null +++ b/krb5/lib/gssapi/spnego/Makefile.inc @@ -0,0 +1,14 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/gssapi/spnego + +SRCS+= negoex_ctx.c \ + negoex_util.c \ + spnego_mech.c diff --git a/krb5/lib/kadm5clnt/Makefile b/krb5/lib/kadm5clnt/Makefile new file mode 100644 index 000000000000..e377f95f5b6e --- /dev/null +++ b/krb5/lib/kadm5clnt/Makefile @@ -0,0 +1,97 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIB= kadm5clnt_mit +# SHLIB_MAJOR= 12 +LDFLAGS=-Wl,--no-undefined +LIBADD= krb5profile gssrpc gssapi_krb5 krb5 k5crypto krb5support com_err + +SRCS= alt_prof.c \ + chpass_util.c \ + logger.c \ + kadm_rpc_xdr.c \ + misc_free.c \ + str_conv.c \ + ${GEN} \ + ${GENI} + +.include "${KRB5_SRCTOP}/lib/kadm5clnt/clnt/Makefile.inc" + +CFLAGS+=-I${KRB5_DIR}/lib/kadm5 \ + -I${KRB5_DIR}/include \ + -I${KRB5_OBJTOP}/include/krb5_private \ + -I${KRB5_SRCTOP}/include \ + -I${KRB5_OBJTOP}/lib + +INCSDIR=${INCLUDEDIR}/kadm5 +INCS= admin.h \ + admin_internal.h \ + admin_xdr.h \ + kadm_rpc.h \ + server_internal.h \ + ${GENI} + +KADM_ERR= kadm_err.et +KADM_ERR_C= ${KADM_ERR:S/.et$/.c/} +KADM_ERR_H= ${KADM_ERR:S/.et$/.h/} +CLEANFILES+= ${KADM_ERR_C} ${KADM_ERR_H} +GEN+= ${KADM_ERR_C} +GENI+= ${KADM_ERR_H} + +${KADM_ERR:[2..-1]}: .NOMETA +${KADM_ERR_H}: ${KADM_ERR} + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +${KADM_ERR_C}: ${KADM_ERR} + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c + +CHPASS_UTIL_STRINGS_ERR= chpass_util_strings.et +CHPASS_UTIL_STRINGS_ERR_C= ${CHPASS_UTIL_STRINGS_ERR:S/.et$/.c/} +CHPASS_UTIL_STRINGS_ERR_H= ${CHPASS_UTIL_STRINGS_ERR:S/.et$/.h/} +CLEANFILES+= ${CHPASS_UTIL_STRINGS_ERR_C} ${CHPASS_UTIL_STRINGS_ERR_H} +GEN+= ${CHPASS_UTIL_STRINGS_ERR_C} +GENI+= ${CHPASS_UTIL_STRINGS_ERR_H} + +${CHPASS_UTIL_STRINGS_ERR:[2..-1]}: .NOMETA +${CHPASS_UTIL_STRINGS_ERR_H}: ${CHPASS_UTIL_STRINGS_ERR} + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +${CHPASS_UTIL_STRINGS_ERR_C}: ${CHPASS_UTIL_STRINGS_ERR} + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c + +afterinstall: + ${INSTALL_LIBSYMLINK} ${SHLIB} ${DESTDIR}${LIBDIR}/libkadm5clnt + +.include + +.SUFFIXES: .h .c + +.PATH: ${KRB5_DIR}/lib/kadm5 diff --git a/krb5/lib/kadm5clnt/clnt/Makefile.inc b/krb5/lib/kadm5clnt/clnt/Makefile.inc new file mode 100644 index 000000000000..2c66879d0eec --- /dev/null +++ b/krb5/lib/kadm5clnt/clnt/Makefile.inc @@ -0,0 +1,17 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/kadm5/clnt + +SRCS+= client_init.c \ + client_principal.c \ + client_rpc.c \ + clnt_chpass_util.c \ + clnt_policy.c \ + clnt_privs.c diff --git a/krb5/lib/kadm5srv/Makefile b/krb5/lib/kadm5srv/Makefile new file mode 100644 index 000000000000..f716dfcdaedc --- /dev/null +++ b/krb5/lib/kadm5srv/Makefile @@ -0,0 +1,107 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIB= kadm5srv_mit +# SHLIB_MAJOR= 12 +LDFLAGS=-Wl,--no-undefined +LIBADD= krb5profile gssrpc gssapi_krb5 kdb5 krb5 k5crypto krb5support com_err + +INCSDIR= ${INCLUDEDIR}/kadm5 + +SRCS= alt_prof.c \ + chpass_util.c \ + logger.c \ + kadm_rpc_xdr.c \ + misc_free.c \ + str_conv.c \ + ${SRCS_SRV} \ + ${GEN} + +.include "${KRB5_SRCTOP}/lib/kadm5srv/srv/Makefile.inc" + +INCS= admin.h \ + chpass_util_strings.h \ + kadm_err.h + +GEN= kadm_err.c kadm_err.h chpass_util_strings.c chpass_util_strings.h +CLEANFILES= ${GEN} ${GENI} + +CFLAGS+=-I${KRB5_DIR}/lib/kadm5 \ + -I${KRB5_DIR}/include \ + -I${KRB5_OBJTOP}/include/krb5_private \ + -I${KRB5_SRCTOP}/include \ + -I${KRB5_OBJTOP}/lib \ + -I${KRB5_OBJTOP}/lib/gssapi \ + -I${KRB5_DIR}/lib/gssapi/krb5 \ + -I${KRB5_DIR}/lib/gssapi/generic + +HDRDIR= ${KRB5_OBJHDR}/kadm5 +HDRS= ${HDRDIR}/admin.h \ + ${HDRDIR}/admin_internal.h \ + ${HDRDIR}/admin_xdr.h \ + ${HDRDIR}/kadm_rpc.h \ + ${HDRDIR}/server_internal.h \ + ${HDRDIR}/chpass_util_strings.h \ + ${HDRDIR}/kadm_err.h + +GEN_KADM_ERR= kadm_err.et +GEN_KADM_ERR_C= ${GEN_KADM_ERR:S/.et$/.c/} +GEN_KADM_ERR_H= ${GEN_KADM_ERR:S/.et$/.h/} +CLEANFILES= ${GEN_KADM_ERR_C} ${GEN_KADM_ERR_H} +GEN_ET= ${GEN_KADM_ERR_C} +GENI_ET= ${GEN_KADM_ERR_H} + +${GEN_KADM_ERR:[2..-1]}: .NOMETA +${GEN_KADM_ERR_H}: ${GEN_KADM_ERR} + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +${GEN_KADM_ERR_C}: ${GEN_KADM_ERR} + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c + +GEN_CHPASS_UTIL_STRINGS= chpass_util_strings.et +GEN_CHPASS_UTIL_STRINGS_C= ${GEN_CHPASS_UTIL_STRINGS:S/.et$/.c/} +GEN_CHPASS_UTIL_STRINGS_H= ${GEN_CHPASS_UTIL_STRINGS:S/.et$/.h/} +CLEANFILES+= ${GEN_CHPASS_UTIL_STRINGS_C} ${GEN_CHPASS_UTIL_STRINGS_H} +GEN_ET+= ${GEN_CHPASS_UTIL_STRINGS_C} +GENI_ET+= ${GEN_CHPASS_UTIL_STRINGS_H} + +${GEN_CHPASS_UTIL_STRINGS:[2..-1]}: .NOMETA +${GEN_CHPASS_UTIL_STRINGS_H}: ${GEN_CHPASS_UTIL_STRINGS} + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +${GEN_CHPASS_UTIL_STRINGS_C}: ${GEN_CHPASS_UTIL_STRINGS} + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c + +.include + +.SUFFIXES: .h .c .et + +.PATH: ${KRB5_DIR}/lib/kadm5 diff --git a/krb5/lib/kadm5srv/srv/Makefile.inc b/krb5/lib/kadm5srv/srv/Makefile.inc new file mode 100644 index 000000000000..cd46e1af7333 --- /dev/null +++ b/krb5/lib/kadm5srv/srv/Makefile.inc @@ -0,0 +1,25 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/kadm5/srv + +SRCS+= adb_xdr.c \ + kadm5_hook.c \ + pwqual.c \ + pwqual_dict.c \ + pwqual_empty.c \ + pwqual_hesiod.c \ + pwqual_princ.c \ + server_init.c \ + server_kdb.c \ + server_misc.c \ + svr_chpass_util.c \ + svr_iters.c \ + svr_policy.c \ + svr_principal.c diff --git a/krb5/lib/kadmin_common/Makefile b/krb5/lib/kadmin_common/Makefile new file mode 100644 index 000000000000..d324acbbe31c --- /dev/null +++ b/krb5/lib/kadmin_common/Makefile @@ -0,0 +1,47 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include + +.include "../Makefile.inc" + +LIB= kadmin_common +INTERNALLIB= +LDFLAGS=-Wl,--no-undefined +INCS= + +SRCS= kadmin.c \ + kadmin_ct.c \ + ktutil_ct.c \ + ss_wrapper.c \ + getdate.y + +CFLAGS+=-I${KRB5_DIR}/lib/krad \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include \ + -I${KRB5_DIR}/util \ + -I${KRB5_OBJTOP}/util \ + -I${.OBJDIR} + +CLEANFILES= kadmin_ct.c ktutil_ct.c + +kadmin_ct.c: kadmin_ct.ct ss_err.h + ${MAKE_COMMANDS} ${KRB5_DIR}/kadmin/cli/kadmin_ct.ct + +ktutil_ct.c: ktutil_ct.ct ss_err.h + ${MAKE_COMMANDS} ${KRB5_DIR}/kadmin/ktutil/ktutil_ct.ct + +.include + +.SUFFIXES: .h .c .ct + +.PATH: ${KRB5_DIR}/kadmin/cli \ + ${KRB5_DIR}/kadmin/ktutil \ + ${KRB5_DIR}/util/ss \ + ${KRB5_OBJTOP}/util/ss diff --git a/krb5/lib/kdb/Makefile b/krb5/lib/kdb/Makefile new file mode 100644 index 000000000000..ac7f058a7f11 --- /dev/null +++ b/krb5/lib/kdb/Makefile @@ -0,0 +1,66 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIB= kdb5 +# SHLIB_MAJOR= 10 +LDFLAGS=-Wl,--no-undefined +LIBADD= krb5profile gssrpc krb5 k5crypto com_err krb5support gssapi_krb5 + +SRCS= decrypt_key.c \ + encrypt_key.c \ + iprop_xdr.c \ + kdb5.c \ + kdb_convert.c \ + kdb_cpw.c \ + kdb_default.c \ + kdb_log.c \ + keytab.c \ + ${GEN} \ + ${GENI} + +DEFINES=-DKDB5_USE_LIB_KDB_DB2 + +CFLAGS+=${DEFINES} \ + -I${KRB5_DIR}/lib/kdb \ + -I${KRB5_OBJTOP}/lib/kdb \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +ADB_ERR= adb_err.et +ADB_ERR_C= ${ADB_ERR:S/.et$/.c/} +ADB_ERR_H= ${ADB_ERR:S/.et$/.h/} +CLEANFILES= ${ADB_ERR_C} ${ADB_ERR_H} +GEN+= ${ADB_ERR_C} +GENI+= ${ADB_ERR_H} + +${ADB_ERR_H}: ${ADB_ERR} + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +${ADB_ERR_C}: ${ADB_ERR} + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c + +.include + +.SUFFIXES: .h .c + +.PATH: ${KRB5_DIR}/lib/kdb diff --git a/krb5/lib/kprop_util/Makefile b/krb5/lib/kprop_util/Makefile new file mode 100644 index 000000000000..31c35601d1a8 --- /dev/null +++ b/krb5/lib/kprop_util/Makefile @@ -0,0 +1,28 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include + +.include "../Makefile.inc" + +LIB= kprop_util +INTERNALLIB= +LDFLAGS=-Wl,--no-undefined +INCS= + +SRCS= kprop_util.c + +CFLAGS+=-I${KRB5_DIR}/lib/krad \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include \ + -I${.OBJDIR} + +.include + +.PATH: ${KRB5_DIR}/kprop diff --git a/krb5/lib/krad/Makefile b/krb5/lib/krad/Makefile new file mode 100644 index 000000000000..4b18af482207 --- /dev/null +++ b/krb5/lib/krad/Makefile @@ -0,0 +1,39 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5-lib + +.include + +.include "../Makefile.inc" + +LIB= krad +# SHLIB_MAJOR= 0 +LDFLAGS=-Wl,--no-undefined +LIBADD= krb5 k5crypto com_err krb5profile krb5support verto + +SRCS= attr.c \ + attrset.c \ + client.c \ + code.c \ + packet.c \ + remote.c + +INCS= internal.h \ + t_daemon.h \ + t_test.h + +CFLAGS+=-I${KRB5_DIR}/lib/krad \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include \ + -I${.OBJDIR} + +.include + +.PATH: ${KRB5_DIR}/lib/krad diff --git a/krb5/lib/krb5/Makefile b/krb5/lib/krb5/Makefile new file mode 100644 index 000000000000..bf90c7fc80f7 --- /dev/null +++ b/krb5/lib/krb5/Makefile @@ -0,0 +1,75 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIB= krb5 +LDFLAGS=-Wl,--no-undefined +LIBADD= krb5profile k5crypto com_err krb5support +# SHLIB_MAJOR= 3 + +SRCS= krb5_libinit.c + +.include "${KRB5_SRCTOP}/lib/krb5/error_tables/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/krb5/asn.1/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/krb5/ccache/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/krb5/keytab/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/krb5/krb/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/krb5/os/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/krb5/rcache/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/krb5/unicode/Makefile.inc" +.include "${KRB5_SRCTOP}/lib/krb5/docs/Makefile.inc" + +DEFINES=-DHAS_STDARG \ + -DLIBDIR=\"${KRB5_LIBDIR}\" \ + -DBINDIR=\"${KRB5_BINDIR}\" \ + -DSBINDIR=\"${KRB5_SBINDIR}\" \ + -DLOCALEDIR=\"${KRB5_LOCALEDIR}\" + +CFLAGS+=${DEFINES} \ + -I${KRB5_DIR}/lib/krb5/error_tables \ + -I${KRB5_DIR}/lib/krb5/ccache \ + -I${KRB5_DIR}/lib/krb5/keytab \ + -I${KRB5_DIR}/lib/krb5/krb \ + -I${KRB5_DIR}/lib/krb5/os \ + -I${KRB5_DIR}/lib/krb5/rcache \ + -I${KRB5_DIR}/lib/krb5/unicode \ + -I${KRB5_DIR}/lib/krb5/unicode/ucdata \ + -I${KRB5_DIR}/lib/krb5 \ + -I${KRB5_DIR}/util/profile \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include \ + -I${KRB5_DIR} + +MAN= k5identity.5 \ + k5login.5 \ + kadm5.acl.5 \ + kdc.conf.5 \ + krb5.conf.5 \ + kerberos.7 + +MLINKS= k5identity.5 .k5identity.5 +MLINKS+=k5login.5 .k5login.5 + +.include + +.SUFFIXES: .h .c .et .man .5 .7 + +.man.5: + @cp ${.ALLSRC} ${.TARGET} + +.man.7: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/lib/krb5 \ + ${KRB5_DIR}/man diff --git a/krb5/lib/krb5/asn.1/Makefile.inc b/krb5/lib/krb5/asn.1/Makefile.inc new file mode 100644 index 000000000000..1c00b4a9389a --- /dev/null +++ b/krb5/lib/krb5/asn.1/Makefile.inc @@ -0,0 +1,14 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/krb5/asn.1 + +SRCS+= asn1_encode.c \ + asn1_k_encode.c \ + ldap_key_seq.c diff --git a/krb5/lib/krb5/ccache/Makefile.inc b/krb5/lib/krb5/ccache/Makefile.inc new file mode 100644 index 000000000000..08514b2819d9 --- /dev/null +++ b/krb5/lib/krb5/ccache/Makefile.inc @@ -0,0 +1,30 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/krb5/ccache + +SRCS+= cc_api_macos.c \ + cc_dir.c \ + cc_file.c \ + cc_kcm.c \ + cc_keyring.c \ + cc_memory.c \ + cc_retr.c \ + ccapi_util.c \ + ccbase.c \ + cccopy.c \ + cccursor.c \ + ccdefault.c \ + ccdefops.c \ + ccfns.c \ + ccmarshal.c \ + ccselect.c \ + ccselect_hostname.c \ + ccselect_k5identity.c \ + ccselect_realm.c diff --git a/krb5/lib/krb5/docs/Makefile.inc b/krb5/lib/krb5/docs/Makefile.inc new file mode 100644 index 000000000000..efc4dc2f6b4b --- /dev/null +++ b/krb5/lib/krb5/docs/Makefile.inc @@ -0,0 +1,1069 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include "../Makefile.inc" + +FILESGROPS= DOCS_HTML \ + DOCS_HTML___STATIC \ + DOCS_HTML_ADMIN \ + DOCS_HTML_ADMIN_ADMIN__COMMANDS \ + DOCS_HTML_ADMIN_ADVANCED \ + DOCS_HTML_ADMIN_CONF__FILES \ + DOCS_HTML_APPDEV \ + DOCS_HTML_APPDEV_REFS \ + DOCS_HTML_APPDEV_REFS_API \ + DOCS_HTML_APPDEV_REFS_MACROS \ + DOCS_HTML_APPDEV_REFS_TYPES \ + DOCS_HTML_BASIC \ + DOCS_HTML_BUILD \ + DOCS_HTML_FORMATS \ + DOCS_HTML_PLUGINDEV \ + DOCS_HTML_USER \ + DOCS_HTML_USER_USER__COMMANDS \ + DOCS_HTML_USER_USER__CONFIG + +DOCS_HTMLDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML___STATICDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_ADMINDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_ADMIN_ADMIN__COMMANDSDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_ADMIN_ADVANCEDDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_ADMIN_CONF__FILESDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_APPDEVDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_APPDEV_REFSDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_APPDEV_REFS_APIDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_APPDEV_REFS_MACROSDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_APPDEV_REFS_TYPESDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_BASICDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_BUILDDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_FORMATSDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_PLUGINDEVDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_USERDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_USER_USER__COMMANDSDIR= ${KRB5_HTMLDOCSDIR} +DOCS_HTML_USER_USER__CONFIGDIR= ${KRB5_HTMLDOCSDIR} + +DOCS_HTML= \ + about.html \ + build_this.html \ + copyright.html \ + genindex-A.html \ + genindex-C.html \ + genindex-E.html \ + genindex-K.html \ + genindex-L.html \ + genindex-M.html \ + genindex-P.html \ + genindex-R.html \ + genindex-S.html \ + genindex-T.html \ + genindex-V.html \ + genindex-all.html \ + genindex.html \ + index.html \ + mitK5defaults.html \ + mitK5features.html \ + mitK5license.html \ + objects.inv \ + resources.html \ + search.html \ + searchindex.js + +DOCS_HTML___STATIC= \ + agogo.css \ + basic.css \ + bgfooter.png \ + bgtop.png \ + doctools.js \ + documentation_options.js \ + file.png \ + jquery.js \ + kerb.css \ + language_data.js \ + minus.png \ + plus.png \ + pygments.css \ + searchtools.js \ + underscore.js + +DOCS_HTML_ADMIN= \ + appl_servers.html \ + auth_indicator.html \ + backup_host.html \ + conf_ldap.html \ + database.html \ + dbtypes.html \ + dictionary.html \ + enctypes.html \ + env_variables.html \ + host_config.html \ + https.html \ + index.html \ + install.html \ + install_appl_srv.html \ + install_clients.html \ + install_kdc.html \ + lockout.html \ + otp.html \ + pkinit.html \ + princ_dns.html \ + realm_config.html \ + spake.html \ + troubleshoot.html \ + various_envs.html + +DOCS_HTML_ADMIN_ADMIN__COMMANDS= \ + index.html \ + k5srvutil.html \ + kadmin_local.html \ + kadmind.html \ + kdb5_ldap_util.html \ + kdb5_util.html \ + kprop.html \ + kpropd.html \ + kproplog.html \ + krb5kdc.html \ + ktutil.html \ + sserver.html + +DOCS_HTML_ADMIN_ADVANCED= \ + index.html \ + retiring-des.html + +DOCS_HTML_ADMIN_CONF__FILES= \ + index.html \ + kadm5_acl.html \ + kdc_conf.html \ + krb5_conf.html + +DOCS_HTML_APPDEV= \ + gssapi.html \ + h5l_mit_apidiff.html \ + index.html \ + init_creds.html \ + princ_handle.html \ + y2038.html + +DOCS_HTML_APPDEV_REFS= \ + index.html + +DOCS_HTML_APPDEV_REFS_API= \ + index.html \ + krb5_425_conv_principal.html \ + krb5_524_conv_principal.html \ + krb5_524_convert_creds.html \ + krb5_address_compare.html \ + krb5_address_order.html \ + krb5_address_search.html \ + krb5_allow_weak_crypto.html \ + krb5_aname_to_localname.html \ + krb5_anonymous_principal.html \ + krb5_anonymous_realm.html \ + krb5_appdefault_boolean.html \ + krb5_appdefault_string.html \ + krb5_auth_con_free.html \ + krb5_auth_con_genaddrs.html \ + krb5_auth_con_get_checksum_func.html \ + krb5_auth_con_getaddrs.html \ + krb5_auth_con_getauthenticator.html \ + krb5_auth_con_getflags.html \ + krb5_auth_con_getkey.html \ + krb5_auth_con_getkey_k.html \ + krb5_auth_con_getlocalseqnumber.html \ + krb5_auth_con_getlocalsubkey.html \ + krb5_auth_con_getrcache.html \ + krb5_auth_con_getrecvsubkey.html \ + krb5_auth_con_getrecvsubkey_k.html \ + krb5_auth_con_getremoteseqnumber.html \ + krb5_auth_con_getremotesubkey.html \ + krb5_auth_con_getsendsubkey.html \ + krb5_auth_con_getsendsubkey_k.html \ + krb5_auth_con_init.html \ + krb5_auth_con_initivector.html \ + krb5_auth_con_set_checksum_func.html \ + krb5_auth_con_set_req_cksumtype.html \ + krb5_auth_con_setaddrs.html \ + krb5_auth_con_setflags.html \ + krb5_auth_con_setports.html \ + krb5_auth_con_setrcache.html \ + krb5_auth_con_setrecvsubkey.html \ + krb5_auth_con_setrecvsubkey_k.html \ + krb5_auth_con_setsendsubkey.html \ + krb5_auth_con_setsendsubkey_k.html \ + krb5_auth_con_setuseruserkey.html \ + krb5_build_principal.html \ + krb5_build_principal_alloc_va.html \ + krb5_build_principal_ext.html \ + krb5_build_principal_va.html \ + krb5_c_block_size.html \ + krb5_c_checksum_length.html \ + krb5_c_crypto_length.html \ + krb5_c_crypto_length_iov.html \ + krb5_c_decrypt.html \ + krb5_c_decrypt_iov.html \ + krb5_c_derive_prfplus.html \ + krb5_c_encrypt.html \ + krb5_c_encrypt_iov.html \ + krb5_c_encrypt_length.html \ + krb5_c_enctype_compare.html \ + krb5_c_free_state.html \ + krb5_c_fx_cf2_simple.html \ + krb5_c_init_state.html \ + krb5_c_is_coll_proof_cksum.html \ + krb5_c_is_keyed_cksum.html \ + krb5_c_keyed_checksum_types.html \ + krb5_c_keylengths.html \ + krb5_c_make_checksum.html \ + krb5_c_make_checksum_iov.html \ + krb5_c_make_random_key.html \ + krb5_c_padding_length.html \ + krb5_c_prf.html \ + krb5_c_prf_length.html \ + krb5_c_prfplus.html \ + krb5_c_random_add_entropy.html \ + krb5_c_random_make_octets.html \ + krb5_c_random_os_entropy.html \ + krb5_c_random_seed.html \ + krb5_c_random_to_key.html \ + krb5_c_string_to_key.html \ + krb5_c_string_to_key_with_params.html \ + krb5_c_valid_cksumtype.html \ + krb5_c_valid_enctype.html \ + krb5_c_verify_checksum.html \ + krb5_c_verify_checksum_iov.html \ + krb5_calculate_checksum.html \ + krb5_cc_cache_match.html \ + krb5_cc_close.html \ + krb5_cc_copy_creds.html \ + krb5_cc_default.html \ + krb5_cc_default_name.html \ + krb5_cc_destroy.html \ + krb5_cc_dup.html \ + krb5_cc_end_seq_get.html \ + krb5_cc_gen_new.html \ + krb5_cc_get_config.html \ + krb5_cc_get_flags.html \ + krb5_cc_get_full_name.html \ + krb5_cc_get_name.html \ + krb5_cc_get_principal.html \ + krb5_cc_get_type.html \ + krb5_cc_initialize.html \ + krb5_cc_move.html \ + krb5_cc_new_unique.html \ + krb5_cc_next_cred.html \ + krb5_cc_remove_cred.html \ + krb5_cc_resolve.html \ + krb5_cc_retrieve_cred.html \ + krb5_cc_select.html \ + krb5_cc_set_config.html \ + krb5_cc_set_default_name.html \ + krb5_cc_set_flags.html \ + krb5_cc_start_seq_get.html \ + krb5_cc_store_cred.html \ + krb5_cc_support_switch.html \ + krb5_cc_switch.html \ + krb5_cccol_cursor_free.html \ + krb5_cccol_cursor_new.html \ + krb5_cccol_cursor_next.html \ + krb5_cccol_have_content.html \ + krb5_change_password.html \ + krb5_check_clockskew.html \ + krb5_checksum_size.html \ + krb5_chpw_message.html \ + krb5_cksumtype_to_string.html \ + krb5_clear_error_message.html \ + krb5_copy_addresses.html \ + krb5_copy_authdata.html \ + krb5_copy_authenticator.html \ + krb5_copy_checksum.html \ + krb5_copy_context.html \ + krb5_copy_creds.html \ + krb5_copy_data.html \ + krb5_copy_error_message.html \ + krb5_copy_keyblock.html \ + krb5_copy_keyblock_contents.html \ + krb5_copy_principal.html \ + krb5_copy_ticket.html \ + krb5_decode_authdata_container.html \ + krb5_decode_ticket.html \ + krb5_decrypt.html \ + krb5_deltat_to_string.html \ + krb5_eblock_enctype.html \ + krb5_encode_authdata_container.html \ + krb5_encrypt.html \ + krb5_encrypt_size.html \ + krb5_enctype_to_name.html \ + krb5_enctype_to_string.html \ + krb5_expand_hostname.html \ + krb5_find_authdata.html \ + krb5_finish_key.html \ + krb5_finish_random_key.html \ + krb5_free_addresses.html \ + krb5_free_ap_rep_enc_part.html \ + krb5_free_authdata.html \ + krb5_free_authenticator.html \ + krb5_free_checksum.html \ + krb5_free_checksum_contents.html \ + krb5_free_cksumtypes.html \ + krb5_free_context.html \ + krb5_free_cred_contents.html \ + krb5_free_creds.html \ + krb5_free_data.html \ + krb5_free_data_contents.html \ + krb5_free_default_realm.html \ + krb5_free_enctypes.html \ + krb5_free_error.html \ + krb5_free_error_message.html \ + krb5_free_host_realm.html \ + krb5_free_keyblock.html \ + krb5_free_keyblock_contents.html \ + krb5_free_keytab_entry_contents.html \ + krb5_free_principal.html \ + krb5_free_string.html \ + krb5_free_tgt_creds.html \ + krb5_free_ticket.html \ + krb5_free_unparsed_name.html \ + krb5_fwd_tgt_creds.html \ + krb5_get_credentials.html \ + krb5_get_credentials_renew.html \ + krb5_get_credentials_validate.html \ + krb5_get_default_realm.html \ + krb5_get_error_message.html \ + krb5_get_etype_info.html \ + krb5_get_fallback_host_realm.html \ + krb5_get_host_realm.html \ + krb5_get_in_tkt_with_keytab.html \ + krb5_get_in_tkt_with_password.html \ + krb5_get_in_tkt_with_skey.html \ + krb5_get_init_creds_keytab.html \ + krb5_get_init_creds_opt_alloc.html \ + krb5_get_init_creds_opt_free.html \ + krb5_get_init_creds_opt_get_fast_flags.html \ + krb5_get_init_creds_opt_init.html \ + krb5_get_init_creds_opt_set_address_list.html \ + krb5_get_init_creds_opt_set_anonymous.html \ + krb5_get_init_creds_opt_set_canonicalize.html \ + krb5_get_init_creds_opt_set_change_password_prompt.html \ + krb5_get_init_creds_opt_set_etype_list.html \ + krb5_get_init_creds_opt_set_expire_callback.html \ + krb5_get_init_creds_opt_set_fast_ccache.html \ + krb5_get_init_creds_opt_set_fast_ccache_name.html \ + krb5_get_init_creds_opt_set_fast_flags.html \ + krb5_get_init_creds_opt_set_forwardable.html \ + krb5_get_init_creds_opt_set_in_ccache.html \ + krb5_get_init_creds_opt_set_out_ccache.html \ + krb5_get_init_creds_opt_set_pa.html \ + krb5_get_init_creds_opt_set_pac_request.html \ + krb5_get_init_creds_opt_set_preauth_list.html \ + krb5_get_init_creds_opt_set_proxiable.html \ + krb5_get_init_creds_opt_set_renew_life.html \ + krb5_get_init_creds_opt_set_responder.html \ + krb5_get_init_creds_opt_set_salt.html \ + krb5_get_init_creds_opt_set_tkt_life.html \ + krb5_get_init_creds_password.html \ + krb5_get_permitted_enctypes.html \ + krb5_get_profile.html \ + krb5_get_prompt_types.html \ + krb5_get_renewed_creds.html \ + krb5_get_server_rcache.html \ + krb5_get_time_offsets.html \ + krb5_get_validated_creds.html \ + krb5_init_context.html \ + krb5_init_context_profile.html \ + krb5_init_creds_free.html \ + krb5_init_creds_get.html \ + krb5_init_creds_get_creds.html \ + krb5_init_creds_get_error.html \ + krb5_init_creds_get_times.html \ + krb5_init_creds_init.html \ + krb5_init_creds_set_keytab.html \ + krb5_init_creds_set_password.html \ + krb5_init_creds_set_service.html \ + krb5_init_creds_step.html \ + krb5_init_keyblock.html \ + krb5_init_random_key.html \ + krb5_init_secure_context.html \ + krb5_is_config_principal.html \ + krb5_is_referral_realm.html \ + krb5_is_thread_safe.html \ + krb5_k_create_key.html \ + krb5_k_decrypt.html \ + krb5_k_decrypt_iov.html \ + krb5_k_encrypt.html \ + krb5_k_encrypt_iov.html \ + krb5_k_free_key.html \ + krb5_k_key_enctype.html \ + krb5_k_key_keyblock.html \ + krb5_k_make_checksum.html \ + krb5_k_make_checksum_iov.html \ + krb5_k_prf.html \ + krb5_k_reference_key.html \ + krb5_k_verify_checksum.html \ + krb5_k_verify_checksum_iov.html \ + krb5_kdc_sign_ticket.html \ + krb5_kdc_verify_ticket.html \ + krb5_kt_add_entry.html \ + krb5_kt_client_default.html \ + krb5_kt_close.html \ + krb5_kt_default.html \ + krb5_kt_default_name.html \ + krb5_kt_dup.html \ + krb5_kt_end_seq_get.html \ + krb5_kt_free_entry.html \ + krb5_kt_get_entry.html \ + krb5_kt_get_name.html \ + krb5_kt_get_type.html \ + krb5_kt_have_content.html \ + krb5_kt_next_entry.html \ + krb5_kt_read_service_key.html \ + krb5_kt_remove_entry.html \ + krb5_kt_resolve.html \ + krb5_kt_start_seq_get.html \ + krb5_kuserok.html \ + krb5_make_authdata_kdc_issued.html \ + krb5_marshal_credentials.html \ + krb5_merge_authdata.html \ + krb5_mk_1cred.html \ + krb5_mk_error.html \ + krb5_mk_ncred.html \ + krb5_mk_priv.html \ + krb5_mk_rep.html \ + krb5_mk_rep_dce.html \ + krb5_mk_req.html \ + krb5_mk_req_extended.html \ + krb5_mk_safe.html \ + krb5_os_localaddr.html \ + krb5_pac_add_buffer.html \ + krb5_pac_free.html \ + krb5_pac_get_buffer.html \ + krb5_pac_get_client_info.html \ + krb5_pac_get_types.html \ + krb5_pac_init.html \ + krb5_pac_parse.html \ + krb5_pac_sign.html \ + krb5_pac_sign_ext.html \ + krb5_pac_verify.html \ + krb5_pac_verify_ext.html \ + krb5_parse_name.html \ + krb5_parse_name_flags.html \ + krb5_prepend_error_message.html \ + krb5_principal2salt.html \ + krb5_principal_compare.html \ + krb5_principal_compare_any_realm.html \ + krb5_principal_compare_flags.html \ + krb5_process_key.html \ + krb5_prompter_posix.html \ + krb5_random_key.html \ + krb5_rd_cred.html \ + krb5_rd_error.html \ + krb5_rd_priv.html \ + krb5_rd_rep.html \ + krb5_rd_rep_dce.html \ + krb5_rd_req.html \ + krb5_rd_safe.html \ + krb5_read_password.html \ + krb5_realm_compare.html \ + krb5_recvauth.html \ + krb5_recvauth_version.html \ + krb5_responder_get_challenge.html \ + krb5_responder_list_questions.html \ + krb5_responder_otp_challenge_free.html \ + krb5_responder_otp_get_challenge.html \ + krb5_responder_otp_set_answer.html \ + krb5_responder_pkinit_challenge_free.html \ + krb5_responder_pkinit_get_challenge.html \ + krb5_responder_pkinit_set_answer.html \ + krb5_responder_set_answer.html \ + krb5_salttype_to_string.html \ + krb5_sendauth.html \ + krb5_server_decrypt_ticket_keytab.html \ + krb5_set_default_realm.html \ + krb5_set_default_tgs_enctypes.html \ + krb5_set_error_message.html \ + krb5_set_kdc_recv_hook.html \ + krb5_set_kdc_send_hook.html \ + krb5_set_password.html \ + krb5_set_password_using_ccache.html \ + krb5_set_principal_realm.html \ + krb5_set_real_time.html \ + krb5_set_trace_callback.html \ + krb5_set_trace_filename.html \ + krb5_sname_match.html \ + krb5_sname_to_principal.html \ + krb5_string_to_cksumtype.html \ + krb5_string_to_deltat.html \ + krb5_string_to_enctype.html \ + krb5_string_to_key.html \ + krb5_string_to_salttype.html \ + krb5_string_to_timestamp.html \ + krb5_timeofday.html \ + krb5_timestamp_to_sfstring.html \ + krb5_timestamp_to_string.html \ + krb5_tkt_creds_free.html \ + krb5_tkt_creds_get.html \ + krb5_tkt_creds_get_creds.html \ + krb5_tkt_creds_get_times.html \ + krb5_tkt_creds_init.html \ + krb5_tkt_creds_step.html \ + krb5_unmarshal_credentials.html \ + krb5_unparse_name.html \ + krb5_unparse_name_ext.html \ + krb5_unparse_name_flags.html \ + krb5_unparse_name_flags_ext.html \ + krb5_us_timeofday.html \ + krb5_use_enctype.html \ + krb5_verify_authdata_kdc_issued.html \ + krb5_verify_checksum.html \ + krb5_verify_init_creds.html \ + krb5_verify_init_creds_opt_init.html \ + krb5_verify_init_creds_opt_set_ap_req_nofail.html \ + krb5_vprepend_error_message.html \ + krb5_vset_error_message.html \ + krb5_vwrap_error_message.html \ + krb5_wrap_error_message.html + +DOCS_HTML_APPDEV_REFS_MACROS= \ + ADDRTYPE_ADDRPORT.html \ + ADDRTYPE_CHAOS.html \ + ADDRTYPE_DDP.html \ + ADDRTYPE_INET.html \ + ADDRTYPE_INET6.html \ + ADDRTYPE_IPPORT.html \ + ADDRTYPE_ISO.html \ + ADDRTYPE_IS_LOCAL.html \ + ADDRTYPE_NETBIOS.html \ + ADDRTYPE_XNS.html \ + AD_TYPE_EXTERNAL.html \ + AD_TYPE_FIELD_TYPE_MASK.html \ + AD_TYPE_REGISTERED.html \ + AD_TYPE_RESERVED.html \ + AP_OPTS_ETYPE_NEGOTIATION.html \ + AP_OPTS_MUTUAL_REQUIRED.html \ + AP_OPTS_RESERVED.html \ + AP_OPTS_USE_SESSION_KEY.html \ + AP_OPTS_USE_SUBKEY.html \ + AP_OPTS_WIRE_MASK.html \ + CKSUMTYPE_CMAC_CAMELLIA128.html \ + CKSUMTYPE_CMAC_CAMELLIA256.html \ + CKSUMTYPE_CRC32.html \ + CKSUMTYPE_DESCBC.html \ + CKSUMTYPE_HMAC_MD5_ARCFOUR.html \ + CKSUMTYPE_HMAC_SHA1_96_AES128.html \ + CKSUMTYPE_HMAC_SHA1_96_AES256.html \ + CKSUMTYPE_HMAC_SHA1_DES3.html \ + CKSUMTYPE_HMAC_SHA256_128_AES128.html \ + CKSUMTYPE_HMAC_SHA384_192_AES256.html \ + CKSUMTYPE_MD5_HMAC_ARCFOUR.html \ + CKSUMTYPE_NIST_SHA.html \ + CKSUMTYPE_RSA_MD4.html \ + CKSUMTYPE_RSA_MD4_DES.html \ + CKSUMTYPE_RSA_MD5.html \ + CKSUMTYPE_RSA_MD5_DES.html \ + CKSUMTYPE_SHA1.html \ + ENCTYPE_AES128_CTS_HMAC_SHA1_96.html \ + ENCTYPE_AES128_CTS_HMAC_SHA256_128.html \ + ENCTYPE_AES256_CTS_HMAC_SHA1_96.html \ + ENCTYPE_AES256_CTS_HMAC_SHA384_192.html \ + ENCTYPE_ARCFOUR_HMAC.html \ + ENCTYPE_ARCFOUR_HMAC_EXP.html \ + ENCTYPE_CAMELLIA128_CTS_CMAC.html \ + ENCTYPE_CAMELLIA256_CTS_CMAC.html \ + ENCTYPE_DES3_CBC_ENV.html \ + ENCTYPE_DES3_CBC_RAW.html \ + ENCTYPE_DES3_CBC_SHA.html \ + ENCTYPE_DES3_CBC_SHA1.html \ + ENCTYPE_DES_CBC_CRC.html \ + ENCTYPE_DES_CBC_MD4.html \ + ENCTYPE_DES_CBC_MD5.html \ + ENCTYPE_DES_CBC_RAW.html \ + ENCTYPE_DES_HMAC_SHA1.html \ + ENCTYPE_DSA_SHA1_CMS.html \ + ENCTYPE_MD5_RSA_CMS.html \ + ENCTYPE_NULL.html \ + ENCTYPE_RC2_CBC_ENV.html \ + ENCTYPE_RSA_ENV.html \ + ENCTYPE_RSA_ES_OAEP_ENV.html \ + ENCTYPE_SHA1_RSA_CMS.html \ + ENCTYPE_UNKNOWN.html \ + KDC_OPT_ALLOW_POSTDATE.html \ + KDC_OPT_CANONICALIZE.html \ + KDC_OPT_CNAME_IN_ADDL_TKT.html \ + KDC_OPT_DISABLE_TRANSITED_CHECK.html \ + KDC_OPT_ENC_TKT_IN_SKEY.html \ + KDC_OPT_FORWARDABLE.html \ + KDC_OPT_FORWARDED.html \ + KDC_OPT_POSTDATED.html \ + KDC_OPT_PROXIABLE.html \ + KDC_OPT_PROXY.html \ + KDC_OPT_RENEW.html \ + KDC_OPT_RENEWABLE.html \ + KDC_OPT_RENEWABLE_OK.html \ + KDC_OPT_REQUEST_ANONYMOUS.html \ + KDC_OPT_VALIDATE.html \ + KDC_TKT_COMMON_MASK.html \ + KRB5_ALTAUTH_ATT_CHALLENGE_RESPONSE.html \ + KRB5_ANONYMOUS_PRINCSTR.html \ + KRB5_ANONYMOUS_REALMSTR.html \ + KRB5_AP_REP.html \ + KRB5_AP_REQ.html \ + KRB5_AS_REP.html \ + KRB5_AS_REQ.html \ + KRB5_AUTHDATA_AND_OR.html \ + KRB5_AUTHDATA_AP_OPTIONS.html \ + KRB5_AUTHDATA_AUTH_INDICATOR.html \ + KRB5_AUTHDATA_CAMMAC.html \ + KRB5_AUTHDATA_ETYPE_NEGOTIATION.html \ + KRB5_AUTHDATA_FX_ARMOR.html \ + KRB5_AUTHDATA_IF_RELEVANT.html \ + KRB5_AUTHDATA_INITIAL_VERIFIED_CAS.html \ + KRB5_AUTHDATA_KDC_ISSUED.html \ + KRB5_AUTHDATA_MANDATORY_FOR_KDC.html \ + KRB5_AUTHDATA_OSF_DCE.html \ + KRB5_AUTHDATA_SESAME.html \ + KRB5_AUTHDATA_SIGNTICKET.html \ + KRB5_AUTHDATA_WIN2K_PAC.html \ + KRB5_AUTH_CONTEXT_DO_SEQUENCE.html \ + KRB5_AUTH_CONTEXT_DO_TIME.html \ + KRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDR.html \ + KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR.html \ + KRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDR.html \ + KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR.html \ + KRB5_AUTH_CONTEXT_PERMIT_ALL.html \ + KRB5_AUTH_CONTEXT_RET_SEQUENCE.html \ + KRB5_AUTH_CONTEXT_RET_TIME.html \ + KRB5_AUTH_CONTEXT_USE_SUBKEY.html \ + KRB5_CRED.html \ + KRB5_CRYPTO_TYPE_CHECKSUM.html \ + KRB5_CRYPTO_TYPE_DATA.html \ + KRB5_CRYPTO_TYPE_EMPTY.html \ + KRB5_CRYPTO_TYPE_HEADER.html \ + KRB5_CRYPTO_TYPE_PADDING.html \ + KRB5_CRYPTO_TYPE_SIGN_ONLY.html \ + KRB5_CRYPTO_TYPE_STREAM.html \ + KRB5_CRYPTO_TYPE_TRAILER.html \ + KRB5_CYBERSAFE_SECUREID.html \ + KRB5_DOMAIN_X500_COMPRESS.html \ + KRB5_ENCPADATA_REQ_ENC_PA_REP.html \ + KRB5_ERROR.html \ + KRB5_FAST_REQUIRED.html \ + KRB5_GC_CACHED.html \ + KRB5_GC_CANONICALIZE.html \ + KRB5_GC_CONSTRAINED_DELEGATION.html \ + KRB5_GC_FORWARDABLE.html \ + KRB5_GC_NO_STORE.html \ + KRB5_GC_NO_TRANSIT_CHECK.html \ + KRB5_GC_USER_USER.html \ + KRB5_GET_INIT_CREDS_OPT_ADDRESS_LIST.html \ + KRB5_GET_INIT_CREDS_OPT_ANONYMOUS.html \ + KRB5_GET_INIT_CREDS_OPT_CANONICALIZE.html \ + KRB5_GET_INIT_CREDS_OPT_CHG_PWD_PRMPT.html \ + KRB5_GET_INIT_CREDS_OPT_ETYPE_LIST.html \ + KRB5_GET_INIT_CREDS_OPT_FORWARDABLE.html \ + KRB5_GET_INIT_CREDS_OPT_PREAUTH_LIST.html \ + KRB5_GET_INIT_CREDS_OPT_PROXIABLE.html \ + KRB5_GET_INIT_CREDS_OPT_RENEW_LIFE.html \ + KRB5_GET_INIT_CREDS_OPT_SALT.html \ + KRB5_GET_INIT_CREDS_OPT_TKT_LIFE.html \ + KRB5_INIT_CONTEXT_KDC.html \ + KRB5_INIT_CONTEXT_SECURE.html \ + KRB5_INIT_CREDS_STEP_FLAG_CONTINUE.html \ + KRB5_INT16_MAX.html \ + KRB5_INT16_MIN.html \ + KRB5_INT32_MAX.html \ + KRB5_INT32_MIN.html \ + KRB5_KEYUSAGE_AD_ITE.html \ + KRB5_KEYUSAGE_AD_KDCISSUED_CKSUM.html \ + KRB5_KEYUSAGE_AD_MTE.html \ + KRB5_KEYUSAGE_AD_SIGNEDPATH.html \ + KRB5_KEYUSAGE_APP_DATA_CKSUM.html \ + KRB5_KEYUSAGE_APP_DATA_ENCRYPT.html \ + KRB5_KEYUSAGE_AP_REP_ENCPART.html \ + KRB5_KEYUSAGE_AP_REQ_AUTH.html \ + KRB5_KEYUSAGE_AP_REQ_AUTH_CKSUM.html \ + KRB5_KEYUSAGE_AS_REP_ENCPART.html \ + KRB5_KEYUSAGE_AS_REQ.html \ + KRB5_KEYUSAGE_AS_REQ_PA_ENC_TS.html \ + KRB5_KEYUSAGE_CAMMAC.html \ + KRB5_KEYUSAGE_ENC_CHALLENGE_CLIENT.html \ + KRB5_KEYUSAGE_ENC_CHALLENGE_KDC.html \ + KRB5_KEYUSAGE_FAST_ENC.html \ + KRB5_KEYUSAGE_FAST_FINISHED.html \ + KRB5_KEYUSAGE_FAST_REP.html \ + KRB5_KEYUSAGE_FAST_REQ_CHKSUM.html \ + KRB5_KEYUSAGE_GSS_TOK_MIC.html \ + KRB5_KEYUSAGE_GSS_TOK_WRAP_INTEG.html \ + KRB5_KEYUSAGE_GSS_TOK_WRAP_PRIV.html \ + KRB5_KEYUSAGE_IAKERB_FINISHED.html \ + KRB5_KEYUSAGE_KDC_REP_TICKET.html \ + KRB5_KEYUSAGE_KRB_CRED_ENCPART.html \ + KRB5_KEYUSAGE_KRB_ERROR_CKSUM.html \ + KRB5_KEYUSAGE_KRB_PRIV_ENCPART.html \ + KRB5_KEYUSAGE_KRB_SAFE_CKSUM.html \ + KRB5_KEYUSAGE_PA_AS_FRESHNESS.html \ + KRB5_KEYUSAGE_PA_FX_COOKIE.html \ + KRB5_KEYUSAGE_PA_OTP_REQUEST.html \ + KRB5_KEYUSAGE_PA_PKINIT_KX.html \ + KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY.html \ + KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST.html \ + KRB5_KEYUSAGE_PA_SAM_CHALLENGE_CKSUM.html \ + KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID.html \ + KRB5_KEYUSAGE_PA_SAM_RESPONSE.html \ + KRB5_KEYUSAGE_SPAKE.html \ + KRB5_KEYUSAGE_TGS_REP_ENCPART_SESSKEY.html \ + KRB5_KEYUSAGE_TGS_REP_ENCPART_SUBKEY.html \ + KRB5_KEYUSAGE_TGS_REQ_AD_SESSKEY.html \ + KRB5_KEYUSAGE_TGS_REQ_AD_SUBKEY.html \ + KRB5_KEYUSAGE_TGS_REQ_AUTH.html \ + KRB5_KEYUSAGE_TGS_REQ_AUTH_CKSUM.html \ + KRB5_KPASSWD_ACCESSDENIED.html \ + KRB5_KPASSWD_AUTHERROR.html \ + KRB5_KPASSWD_BAD_VERSION.html \ + KRB5_KPASSWD_HARDERROR.html \ + KRB5_KPASSWD_INITIAL_FLAG_NEEDED.html \ + KRB5_KPASSWD_MALFORMED.html \ + KRB5_KPASSWD_SOFTERROR.html \ + KRB5_KPASSWD_SUCCESS.html \ + KRB5_LRQ_ALL_ACCT_EXPTIME.html \ + KRB5_LRQ_ALL_LAST_INITIAL.html \ + KRB5_LRQ_ALL_LAST_RENEWAL.html \ + KRB5_LRQ_ALL_LAST_REQ.html \ + KRB5_LRQ_ALL_LAST_TGT.html \ + KRB5_LRQ_ALL_LAST_TGT_ISSUED.html \ + KRB5_LRQ_ALL_PW_EXPTIME.html \ + KRB5_LRQ_NONE.html \ + KRB5_LRQ_ONE_ACCT_EXPTIME.html \ + KRB5_LRQ_ONE_LAST_INITIAL.html \ + KRB5_LRQ_ONE_LAST_RENEWAL.html \ + KRB5_LRQ_ONE_LAST_REQ.html \ + KRB5_LRQ_ONE_LAST_TGT.html \ + KRB5_LRQ_ONE_LAST_TGT_ISSUED.html \ + KRB5_LRQ_ONE_PW_EXPTIME.html \ + KRB5_NT_ENTERPRISE_PRINCIPAL.html \ + KRB5_NT_ENT_PRINCIPAL_AND_ID.html \ + KRB5_NT_MS_PRINCIPAL.html \ + KRB5_NT_MS_PRINCIPAL_AND_ID.html \ + KRB5_NT_PRINCIPAL.html \ + KRB5_NT_SMTP_NAME.html \ + KRB5_NT_SRV_HST.html \ + KRB5_NT_SRV_INST.html \ + KRB5_NT_SRV_XHST.html \ + KRB5_NT_UID.html \ + KRB5_NT_UNKNOWN.html \ + KRB5_NT_WELLKNOWN.html \ + KRB5_NT_X500_PRINCIPAL.html \ + KRB5_PAC_ATTRIBUTES_INFO.html \ + KRB5_PAC_CLIENT_CLAIMS.html \ + KRB5_PAC_CLIENT_INFO.html \ + KRB5_PAC_CREDENTIALS_INFO.html \ + KRB5_PAC_DELEGATION_INFO.html \ + KRB5_PAC_DEVICE_CLAIMS.html \ + KRB5_PAC_DEVICE_INFO.html \ + KRB5_PAC_FULL_CHECKSUM.html \ + KRB5_PAC_LOGON_INFO.html \ + KRB5_PAC_PRIVSVR_CHECKSUM.html \ + KRB5_PAC_REQUESTOR.html \ + KRB5_PAC_SERVER_CHECKSUM.html \ + KRB5_PAC_TICKET_CHECKSUM.html \ + KRB5_PAC_UPN_DNS_INFO.html \ + KRB5_PADATA_AFS3_SALT.html \ + KRB5_PADATA_AP_REQ.html \ + KRB5_PADATA_AS_CHECKSUM.html \ + KRB5_PADATA_AS_FRESHNESS.html \ + KRB5_PADATA_ENCRYPTED_CHALLENGE.html \ + KRB5_PADATA_ENC_SANDIA_SECURID.html \ + KRB5_PADATA_ENC_TIMESTAMP.html \ + KRB5_PADATA_ENC_UNIX_TIME.html \ + KRB5_PADATA_ETYPE_INFO.html \ + KRB5_PADATA_ETYPE_INFO2.html \ + KRB5_PADATA_FOR_USER.html \ + KRB5_PADATA_FX_COOKIE.html \ + KRB5_PADATA_FX_ERROR.html \ + KRB5_PADATA_FX_FAST.html \ + KRB5_PADATA_GET_FROM_TYPED_DATA.html \ + KRB5_PADATA_NONE.html \ + KRB5_PADATA_OSF_DCE.html \ + KRB5_PADATA_OTP_CHALLENGE.html \ + KRB5_PADATA_OTP_PIN_CHANGE.html \ + KRB5_PADATA_OTP_REQUEST.html \ + KRB5_PADATA_PAC_OPTIONS.html \ + KRB5_PADATA_PAC_REQUEST.html \ + KRB5_PADATA_PKINIT_KX.html \ + KRB5_PADATA_PK_AS_REP.html \ + KRB5_PADATA_PK_AS_REP_OLD.html \ + KRB5_PADATA_PK_AS_REQ.html \ + KRB5_PADATA_PK_AS_REQ_OLD.html \ + KRB5_PADATA_PW_SALT.html \ + KRB5_PADATA_REDHAT_IDP_OAUTH2.html \ + KRB5_PADATA_REDHAT_PASSKEY.html \ + KRB5_PADATA_REFERRAL.html \ + KRB5_PADATA_S4U_X509_USER.html \ + KRB5_PADATA_SAM_CHALLENGE.html \ + KRB5_PADATA_SAM_CHALLENGE_2.html \ + KRB5_PADATA_SAM_REDIRECT.html \ + KRB5_PADATA_SAM_RESPONSE.html \ + KRB5_PADATA_SAM_RESPONSE_2.html \ + KRB5_PADATA_SESAME.html \ + KRB5_PADATA_SPAKE.html \ + KRB5_PADATA_SVR_REFERRAL_INFO.html \ + KRB5_PADATA_TGS_REQ.html \ + KRB5_PADATA_USE_SPECIFIED_KVNO.html \ + KRB5_PRINCIPAL_COMPARE_CASEFOLD.html \ + KRB5_PRINCIPAL_COMPARE_ENTERPRISE.html \ + KRB5_PRINCIPAL_COMPARE_IGNORE_REALM.html \ + KRB5_PRINCIPAL_COMPARE_UTF8.html \ + KRB5_PRINCIPAL_PARSE_ENTERPRISE.html \ + KRB5_PRINCIPAL_PARSE_IGNORE_REALM.html \ + KRB5_PRINCIPAL_PARSE_NO_DEF_REALM.html \ + KRB5_PRINCIPAL_PARSE_NO_REALM.html \ + KRB5_PRINCIPAL_PARSE_REQUIRE_REALM.html \ + KRB5_PRINCIPAL_UNPARSE_DISPLAY.html \ + KRB5_PRINCIPAL_UNPARSE_NO_REALM.html \ + KRB5_PRINCIPAL_UNPARSE_SHORT.html \ + KRB5_PRIV.html \ + KRB5_PROMPT_TYPE_NEW_PASSWORD.html \ + KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN.html \ + KRB5_PROMPT_TYPE_PASSWORD.html \ + KRB5_PROMPT_TYPE_PREAUTH.html \ + KRB5_PVNO.html \ + KRB5_REALM_BRANCH_CHAR.html \ + KRB5_RECVAUTH_BADAUTHVERS.html \ + KRB5_RECVAUTH_SKIP_VERSION.html \ + KRB5_REFERRAL_REALM.html \ + KRB5_RESPONDER_OTP_FLAGS_COLLECT_PIN.html \ + KRB5_RESPONDER_OTP_FLAGS_COLLECT_TOKEN.html \ + KRB5_RESPONDER_OTP_FLAGS_NEXTOTP.html \ + KRB5_RESPONDER_OTP_FLAGS_SEPARATE_PIN.html \ + KRB5_RESPONDER_OTP_FORMAT_ALPHANUMERIC.html \ + KRB5_RESPONDER_OTP_FORMAT_DECIMAL.html \ + KRB5_RESPONDER_OTP_FORMAT_HEXADECIMAL.html \ + KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_COUNT_LOW.html \ + KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_FINAL_TRY.html \ + KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_LOCKED.html \ + KRB5_RESPONDER_QUESTION_OTP.html \ + KRB5_RESPONDER_QUESTION_PASSWORD.html \ + KRB5_RESPONDER_QUESTION_PKINIT.html \ + KRB5_SAFE.html \ + KRB5_SAM_MUST_PK_ENCRYPT_SAD.html \ + KRB5_SAM_SEND_ENCRYPTED_SAD.html \ + KRB5_SAM_USE_SAD_AS_KEY.html \ + KRB5_TC_MATCH_2ND_TKT.html \ + KRB5_TC_MATCH_AUTHDATA.html \ + KRB5_TC_MATCH_FLAGS.html \ + KRB5_TC_MATCH_FLAGS_EXACT.html \ + KRB5_TC_MATCH_IS_SKEY.html \ + KRB5_TC_MATCH_KTYPE.html \ + KRB5_TC_MATCH_SRV_NAMEONLY.html \ + KRB5_TC_MATCH_TIMES.html \ + KRB5_TC_MATCH_TIMES_EXACT.html \ + KRB5_TC_NOTICKET.html \ + KRB5_TC_OPENCLOSE.html \ + KRB5_TC_SUPPORTED_KTYPES.html \ + KRB5_TGS_NAME.html \ + KRB5_TGS_NAME_SIZE.html \ + KRB5_TGS_REP.html \ + KRB5_TGS_REQ.html \ + KRB5_TKT_CREDS_STEP_FLAG_CONTINUE.html \ + KRB5_VERIFY_INIT_CREDS_OPT_AP_REQ_NOFAIL.html \ + KRB5_WELLKNOWN_NAMESTR.html \ + LR_TYPE_INTERPRETATION_MASK.html \ + LR_TYPE_THIS_SERVER_ONLY.html \ + MAX_KEYTAB_NAME_LEN.html \ + MSEC_DIRBIT.html \ + MSEC_VAL_MASK.html \ + SALT_TYPE_AFS_LENGTH.html \ + SALT_TYPE_NO_LENGTH.html \ + THREEPARAMOPEN.html \ + TKT_FLG_ANONYMOUS.html \ + TKT_FLG_ENC_PA_REP.html \ + TKT_FLG_FORWARDABLE.html \ + TKT_FLG_FORWARDED.html \ + TKT_FLG_HW_AUTH.html \ + TKT_FLG_INITIAL.html \ + TKT_FLG_INVALID.html \ + TKT_FLG_MAY_POSTDATE.html \ + TKT_FLG_OK_AS_DELEGATE.html \ + TKT_FLG_POSTDATED.html \ + TKT_FLG_PRE_AUTH.html \ + TKT_FLG_PROXIABLE.html \ + TKT_FLG_PROXY.html \ + TKT_FLG_RENEWABLE.html \ + TKT_FLG_TRANSIT_POLICY_CHECKED.html \ + VALID_INT_BITS.html \ + VALID_UINT_BITS.html \ + index.html \ + krb524_convert_creds_kdc.html \ + krb524_init_ets.html \ + krb5_const.html \ + krb5_princ_component.html \ + krb5_princ_name.html \ + krb5_princ_realm.html \ + krb5_princ_set_realm.html \ + krb5_princ_set_realm_data.html \ + krb5_princ_set_realm_length.html \ + krb5_princ_size.html \ + krb5_princ_type.html \ + krb5_roundup.html \ + krb5_x.html \ + krb5_xc.html + +DOCS_HTML_APPDEV_REFS_TYPES= \ + index.html \ + krb5_address.html \ + krb5_addrtype.html \ + krb5_ap_rep.html \ + krb5_ap_rep_enc_part.html \ + krb5_ap_req.html \ + krb5_auth_context.html \ + krb5_authdata.html \ + krb5_authdatatype.html \ + krb5_authenticator.html \ + krb5_boolean.html \ + krb5_cc_cursor.html \ + krb5_ccache.html \ + krb5_cccol_cursor.html \ + krb5_checksum.html \ + krb5_cksumtype.html \ + krb5_const_pointer.html \ + krb5_const_principal.html \ + krb5_context.html \ + krb5_cred.html \ + krb5_cred_enc_part.html \ + krb5_cred_info.html \ + krb5_creds.html \ + krb5_crypto_iov.html \ + krb5_cryptotype.html \ + krb5_data.html \ + krb5_deltat.html \ + krb5_enc_data.html \ + krb5_enc_kdc_rep_part.html \ + krb5_enc_tkt_part.html \ + krb5_encrypt_block.html \ + krb5_enctype.html \ + krb5_error.html \ + krb5_error_code.html \ + krb5_expire_callback_func.html \ + krb5_flags.html \ + krb5_get_init_creds_opt.html \ + krb5_gic_opt_pa_data.html \ + krb5_init_creds_context.html \ + krb5_int16.html \ + krb5_int32.html \ + krb5_kdc_rep.html \ + krb5_kdc_req.html \ + krb5_key.html \ + krb5_keyblock.html \ + krb5_keytab.html \ + krb5_keytab_entry.html \ + krb5_keyusage.html \ + krb5_kt_cursor.html \ + krb5_kvno.html \ + krb5_last_req_entry.html \ + krb5_magic.html \ + krb5_mk_req_checksum_func.html \ + krb5_msgtype.html \ + krb5_octet.html \ + krb5_pa_data.html \ + krb5_pa_pac_req.html \ + krb5_pa_server_referral_data.html \ + krb5_pa_svr_referral_data.html \ + krb5_pac.html \ + krb5_pointer.html \ + krb5_post_recv_fn.html \ + krb5_pre_send_fn.html \ + krb5_preauthtype.html \ + krb5_principal.html \ + krb5_principal_data.html \ + krb5_prompt.html \ + krb5_prompt_type.html \ + krb5_prompter_fct.html \ + krb5_pwd_data.html \ + krb5_rcache.html \ + krb5_replay_data.html \ + krb5_responder_context.html \ + krb5_responder_fn.html \ + krb5_responder_otp_challenge.html \ + krb5_responder_otp_tokeninfo.html \ + krb5_responder_pkinit_challenge.html \ + krb5_responder_pkinit_identity.html \ + krb5_response.html \ + krb5_ticket.html \ + krb5_ticket_times.html \ + krb5_timestamp.html \ + krb5_tkt_authent.html \ + krb5_tkt_creds_context.html \ + krb5_trace_callback.html \ + krb5_trace_info.html \ + krb5_transited.html \ + krb5_typed_data.html \ + krb5_ui_2.html \ + krb5_ui_4.html \ + krb5_verify_init_creds_opt.html \ + passwd_phrase_element.html + +DOCS_HTML_BASIC= \ + ccache_def.html \ + date_format.html \ + index.html \ + keytab_def.html \ + rcache_def.html \ + stash_file_def.html + +DOCS_HTML_BUILD= \ + directory_org.html \ + doing_build.html \ + index.html \ + options2configure.html \ + osconf.html + +DOCS_HTML_FORMATS= \ + ccache_file_format.html \ + cookie.html \ + freshness_token.html \ + index.html \ + keytab_file_format.html \ + rcache_file_format.html + +DOCS_HTML_PLUGINDEV= \ + ccselect.html \ + certauth.html \ + clpreauth.html \ + general.html \ + gssapi.html \ + hostrealm.html \ + index.html \ + internal.html \ + kadm5_auth.html \ + kadm5_hook.html \ + kdcpolicy.html \ + kdcpreauth.html \ + localauth.html \ + locate.html \ + profile.html \ + pwqual.html + +DOCS_HTML_USER= \ + index.html \ + pwd_mgmt.html \ + tkt_mgmt.html + +DOCS_HTML_USER_USER__COMMANDS= \ + index.html \ + kdestroy.html \ + kinit.html \ + klist.html \ + kpasswd.html \ + krb5-config.html \ + ksu.html \ + kswitch.html \ + kvno.html \ + sclient.html + +DOCS_HTML_USER_USER__CONFIG= \ + index.html \ + k5identity.html \ + k5login.html \ + kerberos.html diff --git a/krb5/lib/krb5/error_tables/Makefile.inc b/krb5/lib/krb5/error_tables/Makefile.inc new file mode 100644 index 000000000000..dee259798dae --- /dev/null +++ b/krb5/lib/krb5/error_tables/Makefile.inc @@ -0,0 +1,146 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/krb5/error_tables + +# CLEANFILES+= ${GEN_ET} ${GENI_ET} + +# The order of these matters. See upstream src/include/Makefile.in + +GEN_KRB5_ERR= krb5_err.et +GEN_KRB5_ERR_C= ${GEN_KRB5_ERR:S/.et$/.c/} +GEN_KRB5_ERR_H= ${GEN_KRB5_ERR:S/.et$/.h/} +CLEANFILES+= ${GEN_KRB5_ERR_C} ${GEN_KRB5_ERR_H} +GEN_ET= ${GEN_KRB5_ERR_C} +GENI_ET= ${GEN_KRB5_ERR_H} + +${GEN_KRB5_ERR:[2..-1]}: .NOMETA +${GEN_KRB5_ERR_H}: ${GEN_KRB5_ERR} + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +${GEN_KRB5_ERR_C}: ${GEN_KRB5_ERR} + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c + +GEN_K5E1_ERR= k5e1_err.et +GEN_K5E1_ERR_C= ${GEN_K5E1_ERR:S/.et$/.c/} +GEN_K5E1_ERR_H= ${GEN_K5E1_ERR:S/.et$/.h/} +CLEANFILES+= ${GEN_K5E1_ERR_C} ${GEN_K5E1_ERR_H} +GEN_ET+= ${GEN_K5E1_ERR_C} +GENI_ET+= ${GEN_K5E1_ERR_H} + +${GEN_K5E1_ERR:[2..-1]}: .NOMETA +${GEN_K5E1_ERR_H}: ${GEN_K5E1_ERR} + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +${GEN_K5E1_ERR_C}: ${GEN_K5E1_ERR} + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c + +GEN_KDB5_ERR= kdb5_err.et +GEN_KDB5_ERR_C= ${GEN_KDB5_ERR:S/.et$/.c/} +GEN_KDB5_ERR_H= ${GEN_KDB5_ERR:S/.et$/.h/} +CLEANFILES+= ${GEN_KDB5_ERR_C} ${GEN_KDB5_ERR_H} +GEN_ET+= ${GEN_KDB5_ERR_C} +GENI_ET+= ${GEN_KDB5_ERR_H} + +${GEN_KDB5_ERR:[2..-1]}: .NOMETA +${GEN_KDB5_ERR_H}: ${GEN_KDB5_ERR} + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +${GEN_KDB5_ERR_C}: ${GEN_KDB5_ERR} + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c + +GEN_KRB5M_ERR= kv5m_err.et +GEN_KRB5M_ERR_C= ${GEN_KRB5M_ERR:S/.et$/.c/} +GEN_KRB5M_ERR_H= ${GEN_KRB5M_ERR:S/.et$/.h/} +CLEANFILES+= ${GEN_KRB5M_ERR_C} ${GEN_KRB5M_ERR_H} +GEN_ET+= ${GEN_KRB5M_ERR_C} +GENI_ET+= ${GEN_KRB5M_ERR_H} + +${GEN_KRB5M_ERR:[2..-1]}: .NOMETA +${GEN_KRB5M_ERR_H}: ${GEN_KRB5M_ERR} + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +${GEN_KRB5M_ERR_C}: ${GEN_KRB5M_ERR} + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c + +GEN_KRB524_ERR= krb524_err.et +GEN_KRB524_ERR_C= ${GEN_KRB524_ERR:S/.et$/.c/} +GEN_KRB524_ERR_H= ${GEN_KRB524_ERR:S/.et$/.h/} +CLEANFILES+= ${GEN_KRB524_ERR_C} ${GEN_KRB524_ERR_H} +GEN_ET+= ${GEN_KRB524_ERR_C} +GENI_ET+= ${GEN_KRB524_ERR_H} + +${GEN_KRB524_ERR:[2..-1]}: .NOMETA +${GEN_KRB524_ERR_H}: ${GEN_KRB524_ERR} + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +${GEN_KRB524_ERR_C}: ${GEN_KRB524_ERR} + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c + +GEN_ASN1_ERR= asn1_err.et +GEN_ASN1_ERR_C= ${GEN_ASN1_ERR:S/.et$/.c/} +GEN_ASN1_ERR_H= ${GEN_ASN1_ERR:S/.et$/.h/} +CLEANFILES+= ${GEN_ASN1_ERR_C} ${GEN_ASN1_ERR_H} +GEN_ET+= ${GEN_ASN1_ERR_C} +GENI_ET+= ${GEN_ASN1_ERR_H} + +${GEN_ASN1_ERR:[2..-1]}: .NOMETA +${GEN_ASN1_ERR_H}: ${GEN_ASN1_ERR} + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +${GEN_ASN1_ERR_C}: ${GEN_ASN1_ERR} + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c diff --git a/krb5/lib/krb5/keytab/Makefile.inc b/krb5/lib/krb5/keytab/Makefile.inc new file mode 100644 index 000000000000..8fca2e640f30 --- /dev/null +++ b/krb5/lib/krb5/keytab/Makefile.inc @@ -0,0 +1,20 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/krb5/keytab + +SRCS+= kt_file.c \ + kt_memory.c \ + ktadd.c \ + ktbase.c \ + ktdefault.c \ + ktfns.c \ + ktfr_entry.c \ + ktremove.c \ + read_servi.c diff --git a/krb5/lib/krb5/krb/Makefile.inc b/krb5/lib/krb5/krb/Makefile.inc new file mode 100644 index 000000000000..aedc0438a596 --- /dev/null +++ b/krb5/lib/krb5/krb/Makefile.inc @@ -0,0 +1,123 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/krb5/krb + +SRCS+= addr_comp.c \ + addr_order.c \ + addr_srch.c \ + ai_authdata.c \ + allow_weak.c \ + appdefault.c \ + auth_con.c \ + authdata.c \ + authdata_dec.c \ + authdata_enc.c \ + authdata_exp.c \ + bld_pr_ext.c \ + bld_princ.c \ + cammac_util.c \ + chk_trans.c \ + chpw.c \ + conv_creds.c \ + conv_princ.c \ + copy_addrs.c \ + copy_athctr.c \ + copy_auth.c \ + copy_cksum.c \ + copy_creds.c \ + copy_ctx.c \ + copy_data.c \ + copy_key.c \ + copy_princ.c \ + copy_tick.c \ + cp_key_cnt.c \ + decode_kdc.c \ + decrypt_tk.c \ + deltat.c \ + enc_helper.c \ + enc_keyhelper.c \ + encode_kdc.c \ + encrypt_tk.c \ + etype_list.c \ + fast.c \ + fwd_tgt.c \ + gc_via_tkt.c \ + gen_save_subkey.c \ + gen_seqnum.c \ + gen_subkey.c \ + get_creds.c \ + get_etype_info.c \ + get_in_tkt.c \ + gic_keytab.c \ + gic_opt.c \ + gic_pwd.c \ + in_tkt_sky.c \ + init_ctx.c \ + init_keyblock.c \ + kdc_rep_dc.c \ + kerrs.c \ + kfree.c \ + libdef_parse.c \ + mk_cred.c \ + mk_error.c \ + mk_priv.c \ + mk_rep.c \ + mk_req.c \ + mk_req_ext.c \ + mk_safe.c \ + pac.c \ + pac_sign.c \ + padata.c \ + parse.c \ + parse_host_string.c \ + plugin.c \ + pr_to_salt.c \ + preauth2.c \ + preauth_ec.c \ + preauth_encts.c \ + preauth_otp.c \ + preauth_pkinit.c \ + preauth_sam2.c \ + princ_comp.c \ + privsafe.c \ + random_str.c \ + rd_cred.c \ + rd_error.c \ + rd_priv.c \ + rd_rep.c \ + rd_req.c \ + rd_req_dec.c \ + rd_safe.c \ + recvauth.c \ + response_items.c \ + s4u_creds.c \ + send_tgs.c \ + sendauth.c \ + ser_actx.c \ + ser_adata.c \ + ser_addr.c \ + ser_auth.c \ + ser_cksum.c \ + ser_ctx.c \ + ser_key.c \ + ser_princ.c \ + serialize.c \ + set_realm.c \ + sname_match.c \ + srv_dec_tkt.c \ + srv_rcache.c \ + str_conv.c \ + tgtname.c \ + unparse.c \ + val_renew.c \ + valid_times.c \ + vfy_increds.c \ + vic_opt.c \ + walk_rtree.c diff --git a/krb5/lib/krb5/os/Makefile.inc b/krb5/lib/krb5/os/Makefile.inc new file mode 100644 index 000000000000..ee6144f68773 --- /dev/null +++ b/krb5/lib/krb5/os/Makefile.inc @@ -0,0 +1,56 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/krb5/os + +SRCS+= accessor.c \ + c_ustime.c \ + ccdefname.c \ + changepw.c \ + dnsglue.c \ + dnssrv.c \ + expand_path.c \ + full_ipadr.c \ + gen_port.c \ + gen_rname.c \ + genaddrs.c \ + hostaddr.c \ + hostrealm.c \ + hostrealm_dns.c \ + hostrealm_domain.c \ + hostrealm_profile.c \ + hostrealm_registry.c \ + init_os_ctx.c \ + krbfileio.c \ + ktdefname.c \ + localaddr.c \ + localauth.c \ + localauth_an2ln.c \ + localauth_k5login.c \ + localauth_names.c \ + localauth_rule.c \ + locate_kdc.c \ + lock_file.c \ + mk_faddr.c \ + net_read.c \ + net_write.c \ + port2ip.c \ + prompter.c \ + read_msg.c \ + read_pwd.c \ + realm_dom.c \ + sendto_kdc.c \ + sn2princ.c \ + thread_safe.c \ + timeofday.c \ + toffset.c \ + trace.c \ + unlck_file.c \ + ustime.c \ + write_msg.c diff --git a/krb5/lib/krb5/rcache/Makefile.inc b/krb5/lib/krb5/rcache/Makefile.inc new file mode 100644 index 000000000000..4f68dc702dd8 --- /dev/null +++ b/krb5/lib/krb5/rcache/Makefile.inc @@ -0,0 +1,17 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/krb5/rcache + +SRCS+= \ + memrcache.c \ + rc_base.c \ + rc_dfl.c \ + rc_file2.c \ + rc_none.c diff --git a/krb5/lib/krb5/unicode/Makefile.inc b/krb5/lib/krb5/unicode/Makefile.inc new file mode 100644 index 000000000000..19cea34f2193 --- /dev/null +++ b/krb5/lib/krb5/unicode/Makefile.inc @@ -0,0 +1,14 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/lib/krb5/unicode \ + ${KRB5_DIR}/lib/krb5/unicode/ucdata + +SRCS+= ucdata.c \ + ucstr.c diff --git a/krb5/lib/rpc/Makefile b/krb5/lib/rpc/Makefile new file mode 100644 index 000000000000..13499b184d30 --- /dev/null +++ b/krb5/lib/rpc/Makefile @@ -0,0 +1,85 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIB= gssrpc +# SHLIB_MAJOR= 4 +LDFLAGS=-Wl,--no-undefined +LIBADD= gssapi_krb5 krb5 k5crypto com_err krb5support + +SRCS= auth_gss.c \ + auth_gssapi.c \ + auth_gssapi_misc.c \ + auth_none.c \ + auth_unix.c \ + authgss_prot.c \ + authunix_prot.c \ + bindresvport.c \ + clnt_generic.c \ + clnt_perror.c \ + clnt_raw.c \ + clnt_simple.c \ + clnt_tcp.c \ + clnt_udp.c \ + dyn.c \ + get_myaddress.c \ + getrpcport.c \ + pmap_clnt.c \ + pmap_getmaps.c \ + pmap_getport.c \ + pmap_prot.c \ + pmap_prot2.c \ + pmap_rmt.c \ + rpc_callmsg.c \ + rpc_commondata.c \ + rpc_dtablesize.c \ + rpc_prot.c \ + svc.c \ + svc_auth.c \ + svc_auth_gss.c \ + svc_auth_gssapi.c \ + svc_auth_none.c \ + svc_auth_unix.c \ + svc_raw.c \ + svc_run.c \ + svc_simple.c \ + svc_tcp.c \ + svc_udp.c \ + xdr.c \ + xdr_alloc.c \ + xdr_array.c \ + xdr_float.c \ + xdr_mem.c \ + xdr_rec.c \ + xdr_reference.c \ + xdr_sizeof.c \ + xdr_stdio.c + +INCS= dyn.h \ + dynP.h \ + gssrpcint.h + +CFLAGS+=-I${KRB5_DIR}/lib/rpc \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include \ + -I${KRB5_OBJTOP}/lib \ + -DGSSAPI_KRB5 \ + -DDEBUG_GSSAPI=0 \ + -DGSSRPC__IMPL + +.include + +.SUFFIXES: .h .c + +.PATH: ${KRB5_DIR}/lib/rpc diff --git a/krb5/libexec/Makefile b/krb5/libexec/Makefile new file mode 100644 index 000000000000..1f8ce8728d19 --- /dev/null +++ b/krb5/libexec/Makefile @@ -0,0 +1,16 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +#DIR $FreeBSD$ + +SUBDIR= kdc kadmind kpropd kprop kproplog + +SUBDIR_PARALLEL= + +.include diff --git a/krb5/libexec/Makefile.inc b/krb5/libexec/Makefile.inc new file mode 100644 index 000000000000..bcc6d4b1c21e --- /dev/null +++ b/krb5/libexec/Makefile.inc @@ -0,0 +1,12 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include "../Makefile.inc" + +BINDIR?= /usr/libexec diff --git a/krb5/libexec/kadmind/Makefile b/krb5/libexec/kadmind/Makefile new file mode 100644 index 000000000000..bb572a32445f --- /dev/null +++ b/krb5/libexec/kadmind/Makefile @@ -0,0 +1,49 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include "../Makefile.inc" + +PROG= kadmind +LIBADD= kadm5srv_mit kdb5 gssrpc gssapi_krb5 krb5 k5crypto com_err \ + krb5support apputils verto sys m + +SRCS= auth.c \ + auth_acl.c \ + auth_self.c \ + ipropd_svc.c \ + kadm_rpc_svc.c \ + misc.c \ + ovsec_kadmd.c \ + schpw.c \ + server_stubs.c + +MAN= kadmind.8 + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include \ + -I${KRB5_OBJTOP}/lib/gssapi \ + -I${KRB5_OBJTOP}/lib \ + -I${KRB5_DIR}/lib/gssapi/krb5 \ + -I${KRB5_DIR}/lib/gssapi/generic + +kadmind.8: kadmind.man + +CLEANFILES+= kadmind.8 + +.include + +.SUFFIXES: .h .c .man .8 + +.man.8: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/kadmin/server \ + ${KRB5_DIR}/man diff --git a/krb5/libexec/kdc/Makefile b/krb5/libexec/kdc/Makefile new file mode 100644 index 000000000000..a990666d9338 --- /dev/null +++ b/krb5/libexec/kdc/Makefile @@ -0,0 +1,84 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include "../Makefile.inc" + +PROG= krb5kdc +LIBADD= kadm5srv_mit gssrpc gssapi_krb5 krb5 kdb5 k5crypto com_err krb5support \ + apputils verto krb5profile m sys + +SRCS= authind.c \ + cammac.c \ + dispatch.c \ + do_as_req.c \ + do_tgs_req.c \ + extern.c \ + fast_util.c \ + kdc_audit.c \ + kdc_authdata.c \ + kdc_log.c \ + kdc_preauth.c \ + kdc_preauth_ec.c \ + kdc_preauth_encts.c \ + kdc_transit.c \ + kdc_util.c \ + main.c \ + ndr.c \ + policy.c \ + replay.c \ + tgs_policy.c \ + ${GEN} \ + ${GENI} + +MAN= krb5kdc.8 + +DEFINES=-DLIBDIR=\"${KRB5_LIBDIR}\" + +CFLAGS+=${DEFINES} \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include \ + -I${.OBJDIR} + +GEN_KDC5_ERR= kdc5_err.et +GEN_KDC5_ERR_C= ${GEN_KDC5_ERR:S/.et$/.c/} +GEN_KDC5_ERR_H= ${GEN_KDC5_ERR:S/.et$/.h/} +CLEANFILES+= ${GEN_KDC5_ERR_C} ${GEN_KDC5_ERR_H} +GEN+= ${GEN_KDC5_ERR_C} +GENI+= ${GEN_KDC5_ERR_H} + +${GEN_KDC5_ERR:[2..-1]}: .NOMETA +${GEN_KDC5_ERR_H}: ${GEN_KDC5_ERR} + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +${GEN_KDC5_ERR_C}: ${GEN_KDC5_ERR} + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c + +CLEANFILES+= krb5kdc.8 + +krb5kdc.8: krb5kdc.man + +.include + +.SUFFIXES: .h .c .man .1 + +.man.8: + cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/kdc \ + ${KRB5_DIR}/man diff --git a/krb5/libexec/kprop/Makefile b/krb5/libexec/kprop/Makefile new file mode 100644 index 000000000000..74a56232f6bb --- /dev/null +++ b/krb5/libexec/kprop/Makefile @@ -0,0 +1,33 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include "../Makefile.inc" + +PROG= kprop + +LIBADD= kprop_util krb5 k5crypto com_err krb5profile krb5support util sys + +SRCS= kprop.c + +MAN= kprop.8 + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +.include + +.SUFFIXES: .h .c .man .8 + +.man.8: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/kprop \ + ${KRB5_DIR}/man diff --git a/krb5/libexec/kpropd/Makefile b/krb5/libexec/kpropd/Makefile new file mode 100644 index 000000000000..2fb2bfdff228 --- /dev/null +++ b/krb5/libexec/kpropd/Makefile @@ -0,0 +1,33 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= kpropd + +LIBADD= kprop_util kdb5 kadm5clnt_mit gssrpc gssapi_krb5 krb5 k5crypto \ + com_err krb5profile krb5support util sys + +SRCS= kpropd.c \ + kpropd_rpc.c + +MAN= kpropd.8 + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +.include + +.SUFFIXES: .h .c .man .8 + +.man.8: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/kprop \ + ${KRB5_DIR}/man diff --git a/krb5/libexec/kproplog/Makefile b/krb5/libexec/kproplog/Makefile new file mode 100644 index 000000000000..533b6fdaa5c2 --- /dev/null +++ b/krb5/libexec/kproplog/Makefile @@ -0,0 +1,31 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= kproplog +LIBADD= kadm5srv_mit kdb5 gssrpc gssapi_krb5 krb5 k5crypto com_err \ + krb5support sys + +SRCS= kproplog.c + +MAN= kproplog.8 + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +.include + +.SUFFIXES: .h .c .man .8 + +.man.8: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/kprop \ + ${KRB5_DIR}/man diff --git a/krb5/plugins/Makefile b/krb5/plugins/Makefile new file mode 100644 index 000000000000..a72dd4a521bc --- /dev/null +++ b/krb5/plugins/Makefile @@ -0,0 +1,19 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include + +PLUGINS= kdb preauth k5tls +# PLUGINS+= audit - We don't build this because the port doesn't +# use it. + +SUBDIR= ${PLUGINS} +SUBDIR_PARALLEL= + +.include diff --git a/krb5/plugins/Makefile.inc b/krb5/plugins/Makefile.inc new file mode 100644 index 000000000000..846770a801e0 --- /dev/null +++ b/krb5/plugins/Makefile.inc @@ -0,0 +1,16 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +MK_INSTALLLIB= no +SHLIB_NAME?= ${LIB}.so.${SHLIB_MAJOR} +PLUGINSDIR= ${LIBDIR_BASE}/krb5/plugins +SHLIBDIR= ${LIBDIR} +SHLIB_MAJOR= 121 + +.include "../Makefile.inc" diff --git a/krb5/plugins/audit/Makefile b/krb5/plugins/audit/Makefile new file mode 100644 index 000000000000..507cde261300 --- /dev/null +++ b/krb5/plugins/audit/Makefile @@ -0,0 +1,28 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIB= kdc_j_encode +LIBDIR= ${PLUGINSDIR}/audit +LDFLAGS=-Wl,--no-undefined + +.PATH: ${KRB5_DIR}/plugins/audit + +SRCS= kdc_j_encode.c + +CFLAGS+=-I${KRB5_DIR}/plugins/audit + +.include + +.SUFFIXES: .h .c diff --git a/krb5/plugins/k5tls/Makefile b/krb5/plugins/k5tls/Makefile new file mode 100644 index 000000000000..8af5efb06b80 --- /dev/null +++ b/krb5/plugins/k5tls/Makefile @@ -0,0 +1,33 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIBDIR= ${PLUGINSDIR}/tls +SHLIBDIR= ${LIBDIR} +LIB= k5tls +LDFLAGS=-Wl,--no-undefined +LIBADD= krb5 krb5profile krb5support ssl crypto k5crypto com_err sys + +SRCS= notls.c \ + openssl.c + +CFLAGS+=-I${KRB5_DIR}/plugins/tls/k5tls \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +.include + +.SUFFIXES: .h .c + +.PATH: ${KRB5_DIR}/plugins/tls/k5tls diff --git a/krb5/plugins/kdb/Makefile b/krb5/plugins/kdb/Makefile new file mode 100644 index 000000000000..f9e2a4d1afb1 --- /dev/null +++ b/krb5/plugins/kdb/Makefile @@ -0,0 +1,15 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +SUBDIR= db2 + +# XXX If in the future we want to support ldap or lmdb. +# SUBDIR_PARALLEL= + +.include diff --git a/krb5/plugins/kdb/Makefile.inc b/krb5/plugins/kdb/Makefile.inc new file mode 100644 index 000000000000..56c36b7539f7 --- /dev/null +++ b/krb5/plugins/kdb/Makefile.inc @@ -0,0 +1,10 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include "../Makefile.inc" diff --git a/krb5/plugins/kdb/db2/Makefile b/krb5/plugins/kdb/db2/Makefile new file mode 100644 index 000000000000..7526283f37be --- /dev/null +++ b/krb5/plugins/kdb/db2/Makefile @@ -0,0 +1,65 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIBDIR= ${PLUGINSDIR}/kdb +SHLIBDIR= ${LIBDIR} +LIB= db2 +LDFLAGS=-Wl,--no-undefined +LIBADD= krb5profile krb5 com_err k5crypto kadm5srv_mit kdb5 gssrpc gssapi_krb5 krb5support + +SRCS= \ + adb_openclose.c \ + adb_policy.c \ + db2_exp.c \ + kdb_db2.c \ + kdb_xdr.c \ + lockout.c \ + pol_xdr.c + +.include "${KRB5_SRCTOP}/plugins/kdb/db2/libdb2/Makefile.inc" + +MAN= db_btree.3 \ + db_hash.3 \ + db_lock.3 \ + db_log.3 \ + db_mpool.3 \ + db_open.3 \ + db_recno.3 \ + db_txn.3 + +CFLAGS+=-I${KRB5_DIR}/plugins/kdb/db2 \ + -I${KRB5_DIR}/plugins/kdb/db2/libdb2 \ + -I${KRB5_DIR}/plugins/kdb/db2/libdb2/include \ + -I${KRB5_DIR}/plugins/kdb/db2/libdb2/btree \ + -I${KRB5_DIR}/plugins/kdb/db2/libdb2/db \ + -I${KRB5_DIR}/plugins/kdb/db2/libdb2/hash \ + -I${KRB5_DIR}/plugins/kdb/db2/libdb2/mpool \ + -I${KRB5_DIR}/plugins/kdb/db2/libdb2/recno \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include \ + -I${KRB5_DIR}/lib/kdb \ + -I${KRB5_OBJTOP}/plugins/kdb/db2 \ + -I${KRB5_OBJTOP}/lib/kdb + +.include + +.SUFFIXES: .h .c .man .3 + +.man.3: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/plugins/kdb/db2 \ + ${KRB5_DIR}/plugins/kdb/db2/libdb2 \ + ${KRB5_DIR}/plugins/kdb/db2/libdb2/man diff --git a/krb5/plugins/kdb/db2/libdb2/Makefile.inc b/krb5/plugins/kdb/db2/libdb2/Makefile.inc new file mode 100644 index 000000000000..d31beb5dd5f5 --- /dev/null +++ b/krb5/plugins/kdb/db2/libdb2/Makefile.inc @@ -0,0 +1,15 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include "${KRB5_SRCTOP}/plugins/kdb/db2/libdb2/include/Makefile.inc" +.include "${KRB5_SRCTOP}/plugins/kdb/db2/libdb2/btree/Makefile.inc" +.include "${KRB5_SRCTOP}/plugins/kdb/db2/libdb2/db/Makefile.inc" +.include "${KRB5_SRCTOP}/plugins/kdb/db2/libdb2/hash/Makefile.inc" +.include "${KRB5_SRCTOP}/plugins/kdb/db2/libdb2/mpool/Makefile.inc" +.include "${KRB5_SRCTOP}/plugins/kdb/db2/libdb2/recno/Makefile.inc" diff --git a/krb5/plugins/kdb/db2/libdb2/btree/Makefile.inc b/krb5/plugins/kdb/db2/libdb2/btree/Makefile.inc new file mode 100644 index 000000000000..1c1b2b6ea26c --- /dev/null +++ b/krb5/plugins/kdb/db2/libdb2/btree/Makefile.inc @@ -0,0 +1,24 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/plugins/kdb/db2/libdb2/btree + +SRCS+= bt_close.c \ + bt_conv.c \ + bt_debug.c \ + bt_delete.c \ + bt_get.c \ + bt_open.c \ + bt_overflow.c \ + bt_page.c \ + bt_put.c \ + bt_search.c \ + bt_seq.c \ + bt_split.c \ + bt_utils.c diff --git a/krb5/plugins/kdb/db2/libdb2/db/Makefile.inc b/krb5/plugins/kdb/db2/libdb2/db/Makefile.inc new file mode 100644 index 000000000000..cdcdac287b5d --- /dev/null +++ b/krb5/plugins/kdb/db2/libdb2/db/Makefile.inc @@ -0,0 +1,12 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/plugins/kdb/db2/libdb2/db + +SRCS+= db.c diff --git a/krb5/plugins/kdb/db2/libdb2/hash/Makefile.inc b/krb5/plugins/kdb/db2/libdb2/hash/Makefile.inc new file mode 100644 index 000000000000..7943281b7797 --- /dev/null +++ b/krb5/plugins/kdb/db2/libdb2/hash/Makefile.inc @@ -0,0 +1,19 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/plugins/kdb/db2/libdb2/hash + +SRCS+= dbm.c \ + hash.c \ + hash_bigkey.c \ + hash_debug.c \ + hash_func.c \ + hash_log2.c \ + hash_page.c \ + hsearch.c diff --git a/krb5/plugins/kdb/db2/libdb2/include/Makefile.inc b/krb5/plugins/kdb/db2/libdb2/include/Makefile.inc new file mode 100644 index 000000000000..63be42f21082 --- /dev/null +++ b/krb5/plugins/kdb/db2/libdb2/include/Makefile.inc @@ -0,0 +1,21 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/plugins/kdb/db2/libdb2/include + +SRCS+= db-config.h \ + db.h + +CLEANFILES+= db-config.h db.h + +db-config.h: db-config.hin + @cp ${.ALLSRC} ${.TARGET} + +db.h: db.hin + @cp ${.ALLSRC} ${.TARGET} diff --git a/krb5/plugins/kdb/db2/libdb2/mpool/Makefile.inc b/krb5/plugins/kdb/db2/libdb2/mpool/Makefile.inc new file mode 100644 index 000000000000..801f36a085c7 --- /dev/null +++ b/krb5/plugins/kdb/db2/libdb2/mpool/Makefile.inc @@ -0,0 +1,12 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/plugins/kdb/db2/libdb2/mpool + +SRCS+= mpool.c diff --git a/krb5/plugins/kdb/db2/libdb2/recno/Makefile.inc b/krb5/plugins/kdb/db2/libdb2/recno/Makefile.inc new file mode 100644 index 000000000000..01557c312a53 --- /dev/null +++ b/krb5/plugins/kdb/db2/libdb2/recno/Makefile.inc @@ -0,0 +1,19 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.PATH: ${KRB5_DIR}/plugins/kdb/db2/libdb2/recno + +SRCS+= rec_close.c \ + rec_delete.c \ + rec_get.c \ + rec_open.c \ + rec_put.c \ + rec_search.c \ + rec_seq.c \ + rec_utils.c diff --git a/krb5/plugins/preauth/Makefile b/krb5/plugins/preauth/Makefile new file mode 100644 index 000000000000..23861859bd2c --- /dev/null +++ b/krb5/plugins/preauth/Makefile @@ -0,0 +1,14 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +SUBDIR= otp pkinit spake test + +SUBDIR_PARALLEL= + +.include diff --git a/krb5/plugins/preauth/Makefile.inc b/krb5/plugins/preauth/Makefile.inc new file mode 100644 index 000000000000..aecd360f50e7 --- /dev/null +++ b/krb5/plugins/preauth/Makefile.inc @@ -0,0 +1,13 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +LIBDIR= ${PLUGINSDIR}/preauth +SHLIBDIR= ${LIBDIR} + +.include "../Makefile.inc" diff --git a/krb5/plugins/preauth/otp/Makefile b/krb5/plugins/preauth/otp/Makefile new file mode 100644 index 000000000000..9222f9785a80 --- /dev/null +++ b/krb5/plugins/preauth/otp/Makefile @@ -0,0 +1,30 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIB= otp +LIBDIR= ${PLUGINSDIR}/preauth +LDFLAGS=-Wl,--no-undefined +LIBADD= krb5profile krad verto krb5 k5crypto com_err krb5support m + +.PATH: ${KRB5_DIR}/plugins/preauth/otp + +SRCS= main.c \ + otp_state.c + +CFLAGS+=-I${KRB5_DIR}/plugins/preauth/otp \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +.include diff --git a/krb5/plugins/preauth/pkinit/Makefile b/krb5/plugins/preauth/pkinit/Makefile new file mode 100644 index 000000000000..f2a76d1e33da --- /dev/null +++ b/krb5/plugins/preauth/pkinit/Makefile @@ -0,0 +1,38 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIB= pkinit +LIBDIR= ${PLUGINSDIR}/preauth +LDFLAGS=-Wl,--no-undefined +LIBADD= krb5profile krb5 com_err k5crypto crypto krb5support + +.PATH: ${KRB5_DIR}/plugins/preauth/pkinit + +SRCS= pkinit_accessor.c \ + pkinit_clnt.c \ + pkinit_constants.c \ + pkinit_crypto_openssl.c \ + pkinit_identity.c \ + pkinit_kdf_test.c \ + pkinit_lib.c \ + pkinit_matching.c \ + pkinit_profile.c \ + pkinit_srv.c + +CFLAGS+=-I${KRB5_DIR}/plugins/preauth/pkinit \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +.include diff --git a/krb5/plugins/preauth/spake/Makefile b/krb5/plugins/preauth/spake/Makefile new file mode 100644 index 000000000000..06f2e385c9ef --- /dev/null +++ b/krb5/plugins/preauth/spake/Makefile @@ -0,0 +1,42 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIB= spake +LIBDIR= ${PLUGINSDIR}/preauth +LDFLAGS=-Wl,--no-undefined +LIBADD= krb5profile krb5 k5crypto com_err krb5support crypto sys + +.PATH: ${KRB5_DIR}/plugins/preauth/spake + +SRCS= edwards25519.c \ + groups.c \ + iana.c \ + openssl.c \ + spake_client.c \ + spake_kdc.c \ + util.c + +INCS= edwards25519_fiat.h \ + edwards25519_tables.h \ + groups.h \ + iana.h \ + trace.h \ + util.h + +CFLAGS+=-I${KRB5_DIR}/plugins/preauth/spake \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +.include diff --git a/krb5/plugins/preauth/test/Makefile b/krb5/plugins/preauth/test/Makefile new file mode 100644 index 000000000000..0bed7199983c --- /dev/null +++ b/krb5/plugins/preauth/test/Makefile @@ -0,0 +1,33 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIB= test +LIBDIR= ${PLUGINSDIR}/preauth +LDFLAGS=-Wl,--no-undefined +LIBADD= krb5 k5crypto com_err krb5support + +.PATH: ${KRB5_DIR}/plugins/preauth/test + +SRCS= cltest.c \ + common.c \ + kdctest.c + +INCS= common.h + +CFLAGS+=-I${KRB5_DIR}/plugins/preauth/test \ + -I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +.include diff --git a/krb5/usr.bin/Makefile b/krb5/usr.bin/Makefile new file mode 100644 index 000000000000..b8f8d471cb9b --- /dev/null +++ b/krb5/usr.bin/Makefile @@ -0,0 +1,14 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +SUBDIR= kadmin kdestroy kinit klist kpasswd ksu kswitch ktutil kvno sclient gss-client + +SUBDIR_PARALLEL= + +.include diff --git a/krb5/usr.bin/Makefile.inc b/krb5/usr.bin/Makefile.inc new file mode 100644 index 000000000000..ea8e5ee805bb --- /dev/null +++ b/krb5/usr.bin/Makefile.inc @@ -0,0 +1,12 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include "../Makefile.inc" + +BINDIR?= /usr/bin diff --git a/krb5/usr.bin/gss-client/Makefile b/krb5/usr.bin/gss-client/Makefile new file mode 100644 index 000000000000..f2b5285ac3bb --- /dev/null +++ b/krb5/usr.bin/gss-client/Makefile @@ -0,0 +1,30 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= gss-client + +LIBADD= gssapi_krb5 krb5 k5crypto com_err krb5profile krb5support sys + +SRCS= gss-client.c \ + gss-misc.c + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include \ + -I${KRB5_OBJTOP}/lib \ + -I${KRB5_DIR}/lib/gssapi/generic \ + -I${KRB5_DIR}/lib/gssapi/krb5 \ + -I${KRB5_DIR}/lib/gssapi/mechglue + +MAN= + +.include + +.PATH: ${KRB5_DIR}/appl/gss-sample diff --git a/krb5/usr.bin/kadmin/Makefile b/krb5/usr.bin/kadmin/Makefile new file mode 100644 index 000000000000..95fcea307827 --- /dev/null +++ b/krb5/usr.bin/kadmin/Makefile @@ -0,0 +1,43 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= kadmin + +LIBADD= kadmin_common edit kadm5clnt_mit gssrpc gssapi_krb5 krb5 k5crypto \ + com_err krb5ss krb5profile krb5support tinfow sys + +SRCS= keytab.c + +SCRIPTS= k5srvutil.sh + +MAN= kadmin.1 \ + k5srvutil.1 + +MLINKS= kadmin.1 kamdin.local.8 + +CLEANFILES= kadmin.1 k5srvutil.1 + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +kadmin.1: kadmin.man + +k5srvutil.1: k5srvutil.man + +.include + +.SUFFIXES: .h .c. .man .1 + +.man.1: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/kadmin/cli \ + ${KRB5_DIR}/man diff --git a/krb5/usr.bin/kdestroy/Makefile b/krb5/usr.bin/kdestroy/Makefile new file mode 100644 index 000000000000..4ec2ef4a1392 --- /dev/null +++ b/krb5/usr.bin/kdestroy/Makefile @@ -0,0 +1,35 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= kdestroy + +LIBADD= krb5 k5crypto com_err krb5profile krb5support sys + +SRCS= kdestroy.c + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +MAN= kdestroy.1 + +kdestroy.1: kdestroy.man + +CLEANFILES+= kdestroy.1 + +.include + +.SUFFIXES: .h .c. .man .1 + +.man.1: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/clients/kdestroy \ + ${KRB5_DIR}/man diff --git a/krb5/usr.bin/kinit/Makefile b/krb5/usr.bin/kinit/Makefile new file mode 100644 index 000000000000..8aff9af3687b --- /dev/null +++ b/krb5/usr.bin/kinit/Makefile @@ -0,0 +1,37 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= kinit + +LIBADD= kadm5srv_mit kdb5 gssrpc gssapi_krb5 krb5 k5crypto com_err \ + krb5profile krb5support sys + +SRCS= kinit.c \ + kinit_kdb.c + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +MAN= kinit.1 + +kinit.1: kinit.man + +CLEANFILES+= kinit.1 + +.include + +.SUFFIXES: .h .c. .man .1 + +.man.1: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/clients/kinit \ + ${KRB5_DIR}/man diff --git a/krb5/usr.bin/klist/Makefile b/krb5/usr.bin/klist/Makefile new file mode 100644 index 000000000000..a5d6cecbaddb --- /dev/null +++ b/krb5/usr.bin/klist/Makefile @@ -0,0 +1,35 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= klist + +LIBADD= krb5 k5crypto com_err krb5profile krb5support sys + +SRCS= klist.c + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +MAN= klist.1 + +klist.1: klist.man + +CLEANFILES+= klist.1 + +.include + +.SUFFIXES: .h .c. .man .1 + +.man.1: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/clients/klist \ + ${KRB5_DIR}/man diff --git a/krb5/usr.bin/kpasswd/Makefile b/krb5/usr.bin/kpasswd/Makefile new file mode 100644 index 000000000000..431cf239928e --- /dev/null +++ b/krb5/usr.bin/kpasswd/Makefile @@ -0,0 +1,37 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= kpasswd + +LIBADD= krb5 k5crypto com_err krb5profile krb5support sys + +SRCS= kpasswd.c + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +MAN= kpasswd.1 + +CLEANFILES+= kpasswd.1 + +MAN= kpasswd.1 + +kpasswd.1: kpasswd.man + +.include + +.SUFFIXES: .h .c. .man .1 + +.man.1: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/clients/kpasswd \ + ${KRB5_DIR}/man diff --git a/krb5/usr.bin/ksu/Makefile b/krb5/usr.bin/ksu/Makefile new file mode 100644 index 000000000000..4ddfa8096773 --- /dev/null +++ b/krb5/usr.bin/ksu/Makefile @@ -0,0 +1,44 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= ksu +.if defined(ENABLE_SUID_K5SU) +BINMODE=4555 +PRECIOUSPROG= +.endif + +LIBADD= krb5 k5crypto com_err krb5profile krb5support sys + +SRCS= authorization.c \ + ccache.c \ + heuristic.c \ + krb_auth_su.c \ + main.c \ + xmalloc.c + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +MAN= ksu.1 + +ksu.1: ksu.man + +CLEANFILES+= ksu.1 + +.include + +.SUFFIXES: .h .c. .man .1 + +.man.1: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/clients/ksu \ + ${KRB5_DIR}/man diff --git a/krb5/usr.bin/kswitch/Makefile b/krb5/usr.bin/kswitch/Makefile new file mode 100644 index 000000000000..1e9853012ae5 --- /dev/null +++ b/krb5/usr.bin/kswitch/Makefile @@ -0,0 +1,35 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= kswitch + +LIBADD= krb5 k5crypto com_err krb5profile krb5support sys + +SRCS= kswitch.c + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +MAN= kswitch.1 + +kswitch.1: kswitch.man + +CLEANFILES+= kswitch.1 + +.include + +.SUFFIXES: .h .c. .man .1 + +.man.1: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/clients/kswitch \ + ${KRB5_DIR}/man diff --git a/krb5/usr.bin/ktutil/Makefile b/krb5/usr.bin/ktutil/Makefile new file mode 100644 index 000000000000..abe02965de4d --- /dev/null +++ b/krb5/usr.bin/ktutil/Makefile @@ -0,0 +1,43 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= ktutil + +LIBADD= edit krb5 k5crypto com_err krb5profile krb5support krb5ss tinfow sys + +SRCS= ktutil.c \ + ktutil_ct.c \ + ktutil_funcs.c + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include \ + -I${KRB5_DIR}/util \ + -I${KRB5_OBJTOP}/util + +MAN= ktutil.1 + +ktutil.1: ktutil.man + +CLEANFILES+= ktutil.1 + +ktutil_ct.c: ktutil_ct.ct ss_err.h + ${MAKE_COMMANDS} ${KRB5_DIR}/kadmin/ktutil/ktutil_ct.ct + +.include + +.SUFFIXES: .h .c. .man .1 .ct + +.man.1: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/kadmin/ktutil \ + ${KRB5_DIR}/man \ + ${KRB5_OBJTOP}/util/ss diff --git a/krb5/usr.bin/kvno/Makefile b/krb5/usr.bin/kvno/Makefile new file mode 100644 index 000000000000..203839624414 --- /dev/null +++ b/krb5/usr.bin/kvno/Makefile @@ -0,0 +1,35 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= kvno + +LIBADD= krb5 k5crypto com_err krb5profile krb5support sys + +SRCS= kvno.c + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +MAN= kvno.1 + +kvno.1: kvno.man + +CLEANFILES+= kvno.1 + +.include + +.SUFFIXES: .h .c. .man .1 + +.man.1: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/clients/kvno \ + ${KRB5_DIR}/man diff --git a/krb5/usr.bin/sclient/Makefile b/krb5/usr.bin/sclient/Makefile new file mode 100644 index 000000000000..f27dad42fa08 --- /dev/null +++ b/krb5/usr.bin/sclient/Makefile @@ -0,0 +1,35 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= sclient + +LIBADD= krb5 k5crypto com_err krb5profile krb5support sys + +SRCS= sclient.c + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +MAN= sclient.1 + +sclient.1: sclient.man + +CLEANFILES+= sclient.1 + +.include + +.SUFFIXES: .h .c. .man .1 + +.man.1: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/appl/sample/sclient \ + ${KRB5_DIR}/man diff --git a/krb5/usr.bin/sim_client/Makefile b/krb5/usr.bin/sim_client/Makefile new file mode 100644 index 000000000000..ecdf9ac8885e --- /dev/null +++ b/krb5/usr.bin/sim_client/Makefile @@ -0,0 +1,25 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= sim_client + +LIBADD= krb5 k5crypto com_err krb5profile krb5support sys + +SRCS= sim_client.c + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +MAN= + +.include + +.PATH: ${KRB5_DIR}/appl/simple diff --git a/krb5/usr.sbin/Makefile b/krb5/usr.sbin/Makefile new file mode 100644 index 000000000000..083132e2de05 --- /dev/null +++ b/krb5/usr.sbin/Makefile @@ -0,0 +1,16 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +# $FreeBSD$ + +SUBDIR= kadmin.local kdb5_util sim_server gss-server + +SUBDIR_PARALLEL= + +.include diff --git a/krb5/usr.sbin/Makefile.inc b/krb5/usr.sbin/Makefile.inc new file mode 100644 index 000000000000..fb0b2dda8c97 --- /dev/null +++ b/krb5/usr.sbin/Makefile.inc @@ -0,0 +1,12 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include "../Makefile.inc" + +BINDIR?= /usr/sbin diff --git a/krb5/usr.sbin/gss-server/Makefile b/krb5/usr.sbin/gss-server/Makefile new file mode 100644 index 000000000000..9e80b466d427 --- /dev/null +++ b/krb5/usr.sbin/gss-server/Makefile @@ -0,0 +1,30 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= gss-server + +LIBADD= gssapi_krb5 krb5 k5crypto com_err krb5profile krb5support sys + +SRCS= gss-server.c \ + gss-misc.c + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include \ + -I${KRB5_OBJTOP}/lib \ + -I${KRB5_DIR}/lib/gssapi/generic \ + -I${KRB5_DIR}/lib/gssapi/krb5 \ + -I${KRB5_DIR}/lib/gssapi/mechglue + +MAN= + +.include + +.PATH: ${KRB5_DIR}/appl/gss-sample diff --git a/krb5/usr.sbin/kadmin.local/Makefile b/krb5/usr.sbin/kadmin.local/Makefile new file mode 100644 index 000000000000..7e89d0953683 --- /dev/null +++ b/krb5/usr.sbin/kadmin.local/Makefile @@ -0,0 +1,31 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= kadmin.local + +LIBADD= kadmin_common edit kadm5srv_mit kdb5 gssrpc gssapi_krb5 krb5 \ + k5crypto com_err krb5profile krb5support krb5ss tinfow sys + +SRCS= keytab_local.c + +MAN= kadmin.local.8 + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +MAN= + +.include + +.SUFFIXES: .h .c .man .8 + +.PATH: ${KRB5_DIR}/kadmin/cli \ + ${KRB5_DIR}/man diff --git a/krb5/usr.sbin/kdb5_util/Makefile b/krb5/usr.sbin/kdb5_util/Makefile new file mode 100644 index 000000000000..6a7b66dc205c --- /dev/null +++ b/krb5/usr.sbin/kdb5_util/Makefile @@ -0,0 +1,75 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= kdb5_util + +LIBADD= kadmin_common kadm5srv_mit gssrpc gssapi_krb5 krb5 k5crypto \ + kdb5 com_err krb5profile krb5support sys + +SRCS= dump.c \ + kadm5_create.c \ + kdb5_create.c \ + kdb5_destroy.c \ + kdb5_mkey.c \ + kdb5_stash.c \ + kdb5_util.c \ + ovload.c \ + strtok.c \ + tabdump.c \ + tdumputil.c \ + ${GEN} + +INCS= ${GENI} + +MAN= kdb5_util.8 + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +MAN= kdb5_util.8 + +kdb5_util.8: kdb5_util.man + +GEN_INPUT_ERR= import_err.et +GEN_INPUT_ERR_C= ${GEN_INPUT_ERR:S/.et$/.c/} +GEN_INPUT_ERR_H= ${GEN_INPUT_ERR:S/.et$/.h/} +CLEANFILES+= ${GEN_INPUT_ERR_C} ${GEN_INPUT_ERR_H} +GEN+= ${GEN_INPUT_ERR_C} +GENI+= ${GEN_INPUT_ERR_H} + +${GEN_INPUT_ERR:[2..-1]}: .NOMETA +${GEN_INPUT_ERR_H}: ${GEN_INPUT_ERR} + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +${GEN_INPUT_ERR_C}: ${GEN_INPUT_ERR} + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c + + +CLEANFILES+= kdb5_util.8 + +.include + +.SUFFIXES: .h .c .man .8 + +.man.8: + cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/kadmin/cli \ + ${KRB5_DIR}/kadmin/dbutil \ + ${KRB5_DIR}/man diff --git a/krb5/usr.sbin/sim_server/Makefile b/krb5/usr.sbin/sim_server/Makefile new file mode 100644 index 000000000000..793a6ad421b1 --- /dev/null +++ b/krb5/usr.sbin/sim_server/Makefile @@ -0,0 +1,26 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= sim_server + +LIBADD= krb5 k5crypto com_err krb5profile krb5support sys + +SRCS= sim_server.c + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include \ + -I${KRB5_DIR}/appl/simple + +MAN= + +.include + +.PATH: ${KRB5_DIR}/appl/simple/server diff --git a/krb5/usr.sbin/sserver/Makefile b/krb5/usr.sbin/sserver/Makefile new file mode 100644 index 000000000000..3b205b490a5f --- /dev/null +++ b/krb5/usr.sbin/sserver/Makefile @@ -0,0 +1,37 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +PROG= sserver + +LIBADD= krb5 k5crypto com_err krb5profile krb5support sys + +SRCS= sserver.c + +MAN= sserver.8 + +CFLAGS+=-I${KRB5_DIR}/include \ + -I${KRB5_SRCTOP}/include + +MAN= sserver.8 + +sserver.8: sserver.man + +CLEANFILES+= sserver.8 + +.include + +.SUFFIXES: .h .c. .man .8 + +.man.8: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/appl/simple \ + ${KRB5_DIR}/man diff --git a/krb5/util/Makefile b/krb5/util/Makefile new file mode 100644 index 000000000000..17733db5b2a5 --- /dev/null +++ b/krb5/util/Makefile @@ -0,0 +1,17 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +SUBDIR= build-tools compile_et .WAIT \ + support .WAIT \ + et .WAIT \ + ss profile verto + +# SUBDIR_PARALLEL= + +.include diff --git a/krb5/util/Makefile.inc b/krb5/util/Makefile.inc new file mode 100644 index 000000000000..858c1eb48dd9 --- /dev/null +++ b/krb5/util/Makefile.inc @@ -0,0 +1,13 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +.include "../Makefile.inc" + +SHLIBDIR?= /usr/lib +SHLIB_MAJOR?= 121 diff --git a/krb5/util/build-tools/Makefile b/krb5/util/build-tools/Makefile new file mode 100644 index 000000000000..c33d47f70c8f --- /dev/null +++ b/krb5/util/build-tools/Makefile @@ -0,0 +1,32 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include "../Makefile.inc" + +SCRIPTS= krb5-config.sh +BINDIR?= /usr/bin + +MAN= krb5-config.1 + +CLEANFILES= krb5-config.1 + +krb5-config.1: krb5-config.man + +.include + +.SUFFIXES: .sh .man .1 + +.man.1: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/build-tools \ + ${KRB5_DIR}/man \ + ${KRB5_OBJTOP}/build-tools diff --git a/krb5/util/build-tools/krb5-config.sh b/krb5/util/build-tools/krb5-config.sh new file mode 100755 index 000000000000..c0481f3417e1 --- /dev/null +++ b/krb5/util/build-tools/krb5-config.sh @@ -0,0 +1,263 @@ +#!/bin/sh + +# Copyright 2001, 2002, 2003 by the Massachusetts Institute of Technology. +# All Rights Reserved. +# +# Export of this software from the United States of America may +# require a specific license from the United States Government. +# It is the responsibility of any person or organization contemplating +# export to obtain such a license before exporting. +# +# WITHIN THAT CONSTRAINT, permission to use, copy, modify, and +# distribute this software and its documentation for any purpose and +# without fee is hereby granted, provided that the above copyright +# notice appear in all copies and that both that copyright notice and +# this permission notice appear in supporting documentation, and that +# the name of M.I.T. not be used in advertising or publicity pertaining +# to distribution of the software without specific, written prior +# permission. Furthermore if you modify this software you must label +# your software as modified software and not distribute it in such a +# fashion that it might be confused with the original M.I.T. software. +# M.I.T. makes no representations about the suitability of +# this software for any purpose. It is provided "as is" without express +# or implied warranty. +# +# + +# Configurable parameters set by autoconf +# Disreagard the above. Edit this by hand in the bespoke FreeBSD build. +version_string="Kerberos 5 release 1.21.3" + +prefix=/usr +exec_prefix=${prefix} +includedir=${prefix}/include +libdir=${exec_prefix}/lib +CC_LINK='$(CC) $(PROG_LIBPATH) $(PROG_RPATH_FLAGS) $(CFLAGS) $(LDFLAGS)' +KDB5_DB_LIB= +RPATH_FLAG='' +PROG_RPATH_FLAGS='' +PTHREAD_CFLAGS='-pthread' +DL_LIB='' +DEFCCNAME='FILE:/tmp/krb5cc_%{uid}' +DEFKTNAME='FILE:/etc/krb5.keytab' +DEFCKTNAME='FILE:/var/krb5/user/%{euid}/client.keytab' + +LIBS='-lintl -L/usr/local/lib' +GEN_LIB= + +# Defaults for program +library=krb5 + +# Some constants +vendor_string="Massachusetts Institute of Technology" + +# Process arguments +# Yes, we are sloppy, library specifications can come before options +while test $# != 0; do + case $1 in + --all) + do_all=1 + ;; + --cflags) + do_cflags=1 + ;; + --defccname) + do_defccname=1 + ;; + --defcktname) + do_defcktname=1 + ;; + --defktname) + do_defktname=1 + ;; + --deps) # historically a no-op + ;; + --exec-prefix) + do_exec_prefix=1 + ;; + --help) + do_help=1 + ;; + --libs) + do_libs=1 + ;; + --prefix) + do_prefix=1 + ;; + --vendor) + do_vendor=1 + ;; + --version) + do_version=1 + ;; + krb5) + library=krb5 + ;; + gssapi) + library=gssapi + ;; + gssrpc) + library=gssrpc + ;; + kadm-client) + library=kadm_client + ;; + kadm-server) + library=kadm_server + ;; + kdb) + library=kdb + ;; + *) + echo "$0: Unknown option \`$1' -- use \`--help' for usage" + exit 1 + esac + shift +done + +# If required options - provide help +if test -z "$do_all" -a -z "$do_version" -a -z "$do_vendor" -a \ + -z "$do_prefix" -a -z "$do_vendor" -a -z "$do_exec_prefix" -a \ + -z "$do_defccname" -a -z "$do_defktname" -a -z "$do_defcktname" -a \ + -z "$do_cflags" -a -z "$do_libs"; then + do_help=1 +fi + + +if test -n "$do_help"; then + echo "Usage: $0 [OPTIONS] [LIBRARIES]" + echo "Options:" + echo " [--help] Help" + echo " [--all] Display version, vendor, and various values" + echo " [--version] Version information" + echo " [--vendor] Vendor information" + echo " [--prefix] Kerberos installed prefix" + echo " [--exec-prefix] Kerberos installed exec_prefix" + echo " [--defccname] Show built-in default ccache name" + echo " [--defktname] Show built-in default keytab name" + echo " [--defcktname] Show built-in default client keytab name" + echo " [--cflags] Compile time CFLAGS" + echo " [--libs] List libraries required to link [LIBRARIES]" + echo "Libraries:" + echo " krb5 Kerberos 5 application" + echo " gssapi GSSAPI application with Kerberos 5 bindings" + echo " gssrpc GSSAPI RPC application" + echo " kadm-client Kadmin client" + echo " kadm-server Kadmin server" + echo " kdb Application that accesses the kerberos database" + exit 0 +fi + +if test -n "$do_all"; then + all_exit= + do_version=1 + do_prefix=1 + do_exec_prefix=1 + do_vendor=1 + title_version="Version: " + title_prefix="Prefix: " + title_exec_prefix="Exec_prefix: " + title_vendor="Vendor: " +else + all_exit="exit 0" +fi + +if test -n "$do_version"; then + echo "$title_version$version_string" + $all_exit +fi + +if test -n "$do_vendor"; then + echo "$title_vendor$vendor_string" + $all_exit +fi + +if test -n "$do_prefix"; then + echo "$title_prefix$prefix" + $all_exit +fi + +if test -n "$do_exec_prefix"; then + echo "$title_exec_prefix$exec_prefix" + $all_exit +fi + +if test -n "$do_defccname"; then + echo "$DEFCCNAME" + $all_exit +fi + +if test -n "$do_defktname"; then + echo "$DEFKTNAME" + $all_exit +fi + +if test -n "$do_defcktname"; then + echo "$DEFCKTNAME" + $all_exit +fi + +if test -n "$do_cflags"; then + if test x"$includedir" != x"/usr/include" ; then + echo "-I${includedir}" + else + echo '' + fi +fi + + +if test -n "$do_libs"; then + # Assumes /usr/lib is the standard library directory everywhere... + if test "$libdir" = /usr/lib; then + libdirarg= + else + libdirarg="-L$libdir" + fi + # Ugly gross hack for our build tree + lib_flags=`echo $CC_LINK | sed -e 's/\$(CC)//' \ + -e 's/\$(PURE)//' \ + -e 's#\$(PROG_RPATH_FLAGS)#'"$PROG_RPATH_FLAGS"'#' \ + -e 's#\$(PROG_RPATH)#'$libdir'#' \ + -e 's#\$(PROG_LIBPATH)#'$libdirarg'#' \ + -e 's#\$(RPATH_FLAG)#'"$RPATH_FLAG"'#' \ + -e 's#\$(LDFLAGS)##' \ + -e 's#\$(PTHREAD_CFLAGS)#'"$PTHREAD_CFLAGS"'#' \ + -e 's#\$(CFLAGS)##'` + + if test $library = 'kdb'; then + lib_flags="$lib_flags -lkdb5 $KDB5_DB_LIB" + library=krb5 + fi + + if test $library = 'kadm_server'; then + lib_flags="$lib_flags -lkadm5srv_mit -lkdb5 $KDB5_DB_LIB" + library=gssrpc + fi + + if test $library = 'kadm_client'; then + lib_flags="$lib_flags -lkadm5clnt_mit" + library=gssrpc + fi + + if test $library = 'gssrpc'; then + lib_flags="$lib_flags -lgssrpc" + library=gssapi + fi + + if test $library = 'gssapi'; then + lib_flags="$lib_flags -lgssapi_krb5" + library=krb5 + fi + + if test $library = 'krb5'; then + lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err" + fi + + # If we ever support a flag to generate output suitable for static + # linking, we would output "-lkrb5support $GEN_LIB $LIBS $DL_LIB" + # here. + + echo $lib_flags +fi + +exit 0 diff --git a/krb5/util/compile_et/Makefile b/krb5/util/compile_et/Makefile new file mode 100644 index 000000000000..57eb2f614802 --- /dev/null +++ b/krb5/util/compile_et/Makefile @@ -0,0 +1,38 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include "../Makefile.inc" + +SRC_ETDIR= ${KRB5_DIR}/util/et + +SCRIPTNAME= compile_et +SCRIPTS= compile_et +BINDIR?= /usr/bin +MAN= compile_et.1 +CLEANFILES= compile_et + +.if !defined(BOOTSTRAPPING) +SCRIPTSDIR= ${SHAREDIR}/et +.endif + +compile_et: compile_et.sh + sh ${SRC_ETDIR}/config_script ${SRC_ETDIR}/compile_et.sh \ + "${KRB5_ETDIR}" /usr/bin/awk /usr/bin/sed > ${.TARGET} + chmod 0755 ${.TARGET} + +.include + +.SUFFIXES: .h .c .man .1 + +.man.1: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/util/et diff --git a/krb5/util/et/Makefile b/krb5/util/et/Makefile new file mode 100644 index 000000000000..4457cd199801 --- /dev/null +++ b/krb5/util/et/Makefile @@ -0,0 +1,47 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5-lib + +.include + +.include "../Makefile.inc" + +LIB= com_err +# SHLIB_MAJOR= 3 +LDFLAGS=-Wl,--no-undefined +INCSDIR=${INCLUDEDIR} +LIBADD= krb5support + + +SRCS= com_err.c \ + error_message.c \ + et_name.c \ + error_table.h \ + mit-sipb-copyright.h + +INCS= com_err.h + +MAN= com_err.3 + +# NOTES: com_err.h is copied to ../include + +CFLAGS+=-I${KRB5_DIR}/util/et \ + -I${KRB5_DIR}/include \ + -I${.CURDIR:H:H}/include \ + -I${.OBJDIR} + +.include + +.SUFFIXES: .h .c .et .ct .man .3 + +.man.3: + @cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/util/et diff --git a/krb5/util/profile/Makefile b/krb5/util/profile/Makefile new file mode 100644 index 000000000000..24e06e8c5024 --- /dev/null +++ b/krb5/util/profile/Makefile @@ -0,0 +1,78 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIB= krb5profile +LIBADD= com_err krb5support + +SRCS= prof_file.c \ + prof_get.c \ + prof_init.c \ + prof_parse.c \ + prof_set.c \ + prof_tree.c \ + argv_parse.h \ + prof_int.h \ + ${GEN} + +INCS= profile.h + +DEFINES=-DHAS_STDARG -DLIBDIR=\"${KRB5_LIBDIR}\" + +CFLAGS+=${DEFINES} \ + -I${KRB5_DIR}/util/profile \ + -I${KRB5_DIR}/util/et \ + -I${KRB5_SRCTOP}/include \ + -I${KRB5_DIR}/include \ + -I${.OBJDIR} + +GEN= profile.h ${GEN_PROF_ERR_C} ${GEN_PROF_ERR_H} +GEN_PROF_ERR= prof_err.et +GEN_PROF_ERR_C= ${GEN_PROF_ERR:S/.et$/.c/} +GEN_PROF_ERR_H= ${GEN_PROF_ERR:S/.et$/.h/} +${GEN_PROF_ERR:[2..-1]}: .NOMETA +CLEANFILES= et-h-prof_err.et et-h-prof_err.c et-h-prof_err.h \ + ${GEN} + +.include "${KRB5_SRCTOP}/Makefile.et" + +${GEN_PROF_ERR_H}: ${GEN_PROF_ERR} + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +${GEN_PROF_ERR_C}: ${GEN_PROF_ERR} + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c + +profile.h: profile.hin prof_err.h + cat ${.ALLSRC} > ${.TARGET} + +prof_file.c: profile.h + +MAN= profile.5 + +.include + +.SUFFIXES: .h .c .man .1 .et + +.man.5: + cp ${.ALLSRC} ${.TARGET} + +.PATH: ${KRB5_DIR}/util/profile diff --git a/krb5/util/ss/Makefile b/krb5/util/ss/Makefile new file mode 100644 index 000000000000..600d125a7853 --- /dev/null +++ b/krb5/util/ss/Makefile @@ -0,0 +1,89 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" +# .include "${KRB5_SRCTOP}/Makefile.et" + +LIB= krb5ss +INTERNALLIB= + +.PATH: ${KRB5_DIR}/util/ss + +SRCS= data.c \ + error.c \ + execute_cmd.c \ + help.c \ + invocation.c \ + list_rqs.c \ + listen.c \ + pager.c \ + parse.c \ + prompt.c \ + request_tbl.c \ + requests.c \ + copyright.h \ + mit-sipb-copyright.h \ + ss.h \ + ss_internal.h \ + ${GEN} + +SCRIPTS=${GEN_SCRIPTS} + +CFLAGS+=-I${KRB5_DIR}/util/ss \ + -I${KRB5_DIR}/util/et \ + -I${KRB5_DIR}/util \ + -I${KRB5_SRCTOP}/include \ + -I${KRB5_DIR}/include \ + -I${.OBJDIR:H} \ + -I${.OBJDIR} + +GEN= std_rqs.c ${GEN_SS_ERR_C} ${GEN_SS_ERR_H} +GEN_SCRIPTS= ct_c.awk ct_c.sed mk_cmds +GEN_SS_ERR_C= ${GEN_SS_ERR:S/.et$/.c/} +GEN_SS_ERR_H= ${GEN_SS_ERR:S/.et$/.h/} +CLEANFILES= ${GEN} ${GEN_SCRIPTS} + +mk_cmds: config_script mk_cmds.sh ct_c.awk ct_c.sed + sh ${KRB5_DIR}/util/ss/config_script ${KRB5_DIR}/util/ss/mk_cmds.sh \ + ${.OBJDIR} awk sed > ${.TARGET} + chmod 755 ${.TARGET} + +ct_c.awk: ct_c_awk.in + rm -f ${.TARGET} + cp ${.ALLSRC} ${.TARGET} + +ct_c.sed: ct_c_sed.in + sed -e '/^#/d' ${.ALLSRC} > ${.TARGET} + +GEN_SS_ERR= ss_err.et +${GEN_SS_ERR:[2..-1]}: .NOMETA +${GEN_SS_ERR_H}: ${GEN_SS_ERR} + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h + cp ${.ALLSRC} et-h-${.PREFIX}.et + ${COMPILE_ET} et-h-${.PREFIX}.et + mv et-h-${.PREFIX}.h ${.PREFIX}.h + rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h + +${GEN_SS_ERR_C}: ${GEN_SS_ERR} + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h + cp ${.ALLSRC} et-c-${.PREFIX}.et + ${COMPILE_ET} et-c-${.PREFIX}.et + mv et-c-${.PREFIX}.c ${.PREFIX}.c + rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c + +std_rqs.c: mk_cmds std_rqs.ct ss_err.h + ./mk_cmds ${KRB5_DIR}/util/ss/std_rqs.ct + +.include + +.SUFFIXES: .h .c .ct .et .awk .sed diff --git a/krb5/util/support/Makefile b/krb5/util/support/Makefile new file mode 100644 index 000000000000..9ba1b8169d8e --- /dev/null +++ b/krb5/util/support/Makefile @@ -0,0 +1,48 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5-lib + +.include + +.include "../Makefile.inc" + +LIB= krb5support +# SHLIB_MAJOR= 0 +LDFLAGS=-Wl,--no-undefined + +.PATH: ${KRB5_DIR}/util/support + +SRCS= base64.c \ + bcmp.c \ + dir_filenames.c \ + errors.c \ + fake-addrinfo.c \ + gmt_mktime.c \ + hashtab.c \ + hex.c \ + init-addrinfo.c \ + json.c \ + k5buf.c \ + path.c \ + plugins.c \ + strerror_r.c \ + threads.c \ + utf8.c \ + utf8_conv.c \ + zap.c \ + cache-addrinfo.h \ + supp-int.h + +CFLAGS+=-I${KRB5_DIR}/util/support \ + -I${KRB5_DIR}/include \ + -I${.CURDIR:H:H}/include \ + -I${.OBJDIR} + +.include diff --git a/krb5/util/verto/Makefile b/krb5/util/verto/Makefile new file mode 100644 index 000000000000..57367e5284e0 --- /dev/null +++ b/krb5/util/verto/Makefile @@ -0,0 +1,49 @@ +# +# SPDX-License-Idendifier: BSD-2-Clause +# +# Copyright (c) 2025 FreeBSD Foundation +# +# This sofware was developed by Cy Schubert +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +LIB= verto +# SHLIB_MAJOR= 0 + +.PATH: ${KRB5_DIR}/util/verto + +SRCS= module.c \ + verto-k5ev.c \ + verto.c \ + ev.h \ + ev_vars.h \ + ev_wrap.h \ + module.h \ + ${GEN} + +INCS= verto-module.h \ + verto.h \ + +# See util/verto/Makefile.in and util/verto/Makefile + +DEFINES=-DDEFAULT_LIBRARY=\"k5ev\" -DBUILTIN_MODULE=k5ev + +CFLAGS+=${DEFINES} \ + -I${KRB5_DIR}/util/verto \ + -I${KRB5_DIR}/include \ + -I${.CURDIR:H:H}/include \ + -I${.OBJDIR} + +GEN= rename.h +CLEANFILES= ${GEN} + +rename.h: Symbols.ev + @sed -e 's/.*/#define & k5&/' < ${.ALLSRC} > ${.TARGET} + +.include diff --git a/share/mk/bsd.libnames.mk b/share/mk/bsd.libnames.mk index 4177a1ef0e4e..3ff4c4e90a1b 100644 --- a/share/mk/bsd.libnames.mk +++ b/share/mk/bsd.libnames.mk @@ -1,225 +1,238 @@ # The include file define library names. # Other include files (e.g. bsd.prog.mk, bsd.lib.mk) include this # file where necessary. .if !target(____) .error bsd.libnames.mk cannot be included directly. .endif LIBDESTDIR?= ${SYSROOT:U${DESTDIR}} .sinclude # Src directory locations are also defined in src.libnames.mk. LIBCRT0?= ${LIBDESTDIR}${LIBDIR_BASE}/crt0.o LIB80211?= ${LIBDESTDIR}${LIBDIR_BASE}/lib80211.a LIB9P?= ${LIBDESTDIR}${LIBDIR_BASE}/lib9p.a LIBALIAS?= ${LIBDESTDIR}${LIBDIR_BASE}/libalias.a +LIBAPPUTILS?= ${LIBDESTDIR}${LIBDIR_BASE}/libapputils.a LIBARCHIVE?= ${LIBDESTDIR}${LIBDIR_BASE}/libarchive.a LIBASN1?= ${LIBDESTDIR}${LIBDIR_BASE}/libasn1.a LIBATM?= ${LIBDESTDIR}${LIBDIR_BASE}/libatm.a LIBAUDITD?= ${LIBDESTDIR}${LIBDIR_BASE}/libauditd.a LIBAVL?= ${LIBDESTDIR}${LIBDIR_BASE}/libavl.a LIBBE?= ${LIBDESTDIR}${LIBDIR_BASE}/libbe.a LIBBEGEMOT?= ${LIBDESTDIR}${LIBDIR_BASE}/libbegemot.a LIBBLACKLIST?= ${LIBDESTDIR}${LIBDIR_BASE}/libblacklist.a LIBBLOCKSRUNTIME?= ${LIBDESTDIR}${LIBDIR_BASE}/libBlocksRuntime.a LIBBLUETOOTH?= ${LIBDESTDIR}${LIBDIR_BASE}/libbluetooth.a LIBBSDXML?= ${LIBDESTDIR}${LIBDIR_BASE}/libbsdxml.a LIBBSM?= ${LIBDESTDIR}${LIBDIR_BASE}/libbsm.a LIBBSNMP?= ${LIBDESTDIR}${LIBDIR_BASE}/libbsnmp.a LIBBZ2?= ${LIBDESTDIR}${LIBDIR_BASE}/libbz2.a LIBC?= ${LIBDESTDIR}${LIBDIR_BASE}/libc.a LIBCALENDAR?= ${LIBDESTDIR}${LIBDIR_BASE}/libcalendar.a LIBCAM?= ${LIBDESTDIR}${LIBDIR_BASE}/libcam.a LIBCOMPAT?= ${LIBDESTDIR}${LIBDIR_BASE}/libcompat.a LIBCOMPILER_RT?=${LIBDESTDIR}${LIBDIR_BASE}/libcompiler_rt.a LIBCOM_ERR?= ${LIBDESTDIR}${LIBDIR_BASE}/libcom_err.a LIBCPLUSPLUS?= ${LIBDESTDIR}${LIBDIR_BASE}/libc++.a LIBCRYPT?= ${LIBDESTDIR}${LIBDIR_BASE}/libcrypt.a LIBCRYPTO?= ${LIBDESTDIR}${LIBDIR_BASE}/libcrypto.a LIBCTF?= ${LIBDESTDIR}${LIBDIR_BASE}/libctf.a LIBCURSES?= ${LIBDESTDIR}${LIBDIR_BASE}/libcurses.a LIBCUSE?= ${LIBDESTDIR}${LIBDIR_BASE}/libcuse.a LIBCXGB4?= ${LIBDESTDIR}${LIBDIR_BASE}/libcxgb4.a LIBCXXRT?= ${LIBDESTDIR}${LIBDIR_BASE}/libcxxrt.a LIBC_PIC?= ${LIBDESTDIR}${LIBDIR_BASE}/libc_pic.a LIBDEVCTL?= ${LIBDESTDIR}${LIBDIR_BASE}/libdevctl.a LIBDEVDCTL?= ${LIBDESTDIR}${LIBDIR_BASE}/libdevdctl.a LIBDEVINFO?= ${LIBDESTDIR}${LIBDIR_BASE}/libdevinfo.a LIBDEVSTAT?= ${LIBDESTDIR}${LIBDIR_BASE}/libdevstat.a LIBDIALOG?= ${LIBDESTDIR}${LIBDIR_BASE}/libdialog.a LIBDL?= ${LIBDESTDIR}${LIBDIR_BASE}/libdl.a LIBDNS?= ${LIBDESTDIR}${LIBDIR_BASE}/libdns.a LIBDPV?= ${LIBDESTDIR}${LIBDIR_BASE}/libdpv.a LIBDTRACE?= ${LIBDESTDIR}${LIBDIR_BASE}/libdtrace.a LIBDWARF?= ${LIBDESTDIR}${LIBDIR_BASE}/libdwarf.a LIBEDIT?= ${LIBDESTDIR}${LIBDIR_BASE}/libedit.a LIBEFIVAR?= ${LIBDESTDIR}${LIBDIR_BASE}/libefivar.a LIBELF?= ${LIBDESTDIR}${LIBDIR_BASE}/libelf.a LIBEXECINFO?= ${LIBDESTDIR}${LIBDIR_BASE}/libexecinfo.a LIBFETCH?= ${LIBDESTDIR}${LIBDIR_BASE}/libfetch.a LIBFIGPAR?= ${LIBDESTDIR}${LIBDIR_BASE}/libfigpar.a LIBFL?= "don't use LIBFL, use LIBL" LIBFORMW?= ${LIBDESTDIR}${LIBDIR_BASE}/libformw.a LIBG2C?= ${LIBDESTDIR}${LIBDIR_BASE}/libg2c.a LIBGEOM?= ${LIBDESTDIR}${LIBDIR_BASE}/libgeom.a LIBGPIO?= ${LIBDESTDIR}${LIBDIR_BASE}/libgpio.a LIBGSSAPI?= ${LIBDESTDIR}${LIBDIR_BASE}/libgssapi.a LIBGSSAPI_KRB5?= ${LIBDESTDIR}${LIBDIR_BASE}/libgssapi_krb5.a +LIBGSSRPC?= ${LIBDESTDIR}${LIBDIR_BASE}/libgssrpc.a LIBHDB?= ${LIBDESTDIR}${LIBDIR_BASE}/libhdb.a LIBHEIMBASE?= ${LIBDESTDIR}${LIBDIR_BASE}/libheimbase.a LIBHEIMNTLM?= ${LIBDESTDIR}${LIBDIR_BASE}/libheimntlm.a LIBHEIMSQLITE?= ${LIBDESTDIR}${LIBDIR_BASE}/libheimsqlite.a LIBHX509?= ${LIBDESTDIR}${LIBDIR_BASE}/libhx509.a LIBIBCM?= ${LIBDESTDIR}${LIBDIR_BASE}/libibcm.a LIBIBMAD?= ${LIBDESTDIR}${LIBDIR_BASE}/libibmad.a LIBIBNETDISC?= ${LIBDESTDIR}${LIBDIR_BASE}/libibnetdisc.a LIBIBUMAD?= ${LIBDESTDIR}${LIBDIR_BASE}/libibumad.a LIBIBVERBS?= ${LIBDESTDIR}${LIBDIR_BASE}/libibverbs.a LIBICP?= ${LIBDESTDIR}${LIBDIR_BASE}/libicp.a LIBIPSEC?= ${LIBDESTDIR}${LIBDIR_BASE}/libipsec.a LIBIPT?= ${LIBDESTDIR}${LIBDIR_BASE}/libipt.a LIBIRDMA?= ${LIBDESTDIR}${LIBDIR_BASE}/libirdma.a LIBISCSIUTIL?= ${LIBDESTDIR}${LIBDIR_BASE}/libiscsiutil.a LIBJAIL?= ${LIBDESTDIR}${LIBDIR_BASE}/libjail.a LIBKADM5CLNT?= ${LIBDESTDIR}${LIBDIR_BASE}/libkadm5clnt.a LIBKADM5SRV?= ${LIBDESTDIR}${LIBDIR_BASE}/libkadm5srv.a +LIBK5CRYPTO?= ${LIBDESTDIR}${LIBDIR_BASE}/libk5crypto.a +LIBKADMIN_COMMON?= ${LIBDESTDIR}${LIBDIR_BASE}/libkadmin_common.a +LIBKADM5CLNT_MIT?= ${LIBDESTDIR}${LIBDIR_BASE}/libkadm5clnt_mit.a +LIBKADM5SRV_MIT?= ${LIBDESTDIR}${LIBDIR_BASE}/libkadm5srv_mit.a LIBKAFS5?= ${LIBDESTDIR}${LIBDIR_BASE}/libkafs5.a +LIBKDB5?= ${LIBDESTDIR}${LIBDIR_BASE}/libkdb5.a LIBKDC?= ${LIBDESTDIR}${LIBDIR_BASE}/libkdc.a LIBKEYCAP?= ${LIBDESTDIR}${LIBDIR_BASE}/libkeycap.a LIBKICONV?= ${LIBDESTDIR}${LIBDIR_BASE}/libkiconv.a +LIBKPROP_UTIL?= ${LIBDESTDIR}${LIBDIR_BASE}/libkprop_util.a +LIBKRAD?= ${LIBDESTDIR}${LIBDIR_BASE}/libkrad.a LIBKRB5?= ${LIBDESTDIR}${LIBDIR_BASE}/libkrb5.a +LIBKRB5PROFILE?= ${LIBDESTDIR}${LIBDIR_BASE}/libkrb5profile.a +LIBKRB5SS?= ${LIBDESTDIR}${LIBDIR_BASE}/libkrb5ss.a +LIBKRB5SUPPORT?= ${LIBDESTDIR}${LIBDIR_BASE}/libkrb5support.a LIBKVM?= ${LIBDESTDIR}${LIBDIR_BASE}/libkvm.a LIBL?= ${LIBDESTDIR}${LIBDIR_BASE}/libl.a LIBLN?= "don't use LIBLN, use LIBL" LIBLZMA?= ${LIBDESTDIR}${LIBDIR_BASE}/liblzma.a LIBM?= ${LIBDESTDIR}${LIBDIR_BASE}/libm.a LIBMAGIC?= ${LIBDESTDIR}${LIBDIR_BASE}/libmagic.a LIBMD?= ${LIBDESTDIR}${LIBDIR_BASE}/libmd.a LIBMEMSTAT?= ${LIBDESTDIR}${LIBDIR_BASE}/libmemstat.a LIBMENU?= ${LIBDESTDIR}${LIBDIR_BASE}/libmenu.a LIBMILTER?= ${LIBDESTDIR}${LIBDIR_BASE}/libmilter.a LIBMLX4?= ${LIBDESTDIR}${LIBDIR_BASE}/libmlx4.a LIBMLX5?= ${LIBDESTDIR}${LIBDIR_BASE}/libmlx5.a LIBMP?= ${LIBDESTDIR}${LIBDIR_BASE}/libmp.a LIBMT?= ${LIBDESTDIR}${LIBDIR_BASE}/libmt.a LIBNCURSES?= ${LIBDESTDIR}${LIBDIR_BASE}/libncurses.a LIBNCURSESW?= ${LIBDESTDIR}${LIBDIR_BASE}/libncursesw.a LIBNETGRAPH?= ${LIBDESTDIR}${LIBDIR_BASE}/libnetgraph.a LIBNETMAP?= ${LIBDESTDIR}${LIBDIR_BASE}/libnetmap.a LIBNGATM?= ${LIBDESTDIR}${LIBDIR_BASE}/libngatm.a LIBNV?= ${LIBDESTDIR}${LIBDIR_BASE}/libnv.a LIBNVPAIR?= ${LIBDESTDIR}${LIBDIR_BASE}/libnvpair.a LIBOPENCSD?= ${LIBDESTDIR}${LIBDIR_BASE}/libopencsd.a LIBOPENSM?= ${LIBDESTDIR}${LIBDIR_BASE}/libopensm.a LIBOSMCOMP?= ${LIBDESTDIR}${LIBDIR_BASE}/libosmcomp.a LIBOSMVENDOR?= ${LIBDESTDIR}${LIBDIR_BASE}/libosmvendor.a LIBPAM?= ${LIBDESTDIR}${LIBDIR_BASE}/libpam.a LIBPANEL?= ${LIBDESTDIR}${LIBDIR_BASE}/libpanel.a LIBPANELW?= ${LIBDESTDIR}${LIBDIR_BASE}/libpanelw.a LIBPCAP?= ${LIBDESTDIR}${LIBDIR_BASE}/libpcap.a LIBPJDLOG?= ${LIBDESTDIR}${LIBDIR_BASE}/libpjdlog.a LIBPMC?= ${LIBDESTDIR}${LIBDIR_BASE}/libpmc.a LIBPROC?= ${LIBDESTDIR}${LIBDIR_BASE}/libproc.a LIBPROCSTAT?= ${LIBDESTDIR}${LIBDIR_BASE}/libprocstat.a LIBPTHREAD?= ${LIBDESTDIR}${LIBDIR_BASE}/libpthread.a LIBRADIUS?= ${LIBDESTDIR}${LIBDIR_BASE}/libradius.a LIBRDMACM?= ${LIBDESTDIR}${LIBDIR_BASE}/librdmacm.a LIBREGEX?= ${LIBDESTDIR}${LIBDIR_BASE}/libregex.a LIBROKEN?= ${LIBDESTDIR}${LIBDIR_BASE}/libroken.a LIBRPCSEC_GSS?= ${LIBDESTDIR}${LIBDIR_BASE}/librpcsec_gss.a LIBRPCSVC?= ${LIBDESTDIR}${LIBDIR_BASE}/librpcsvc.a LIBRT?= ${LIBDESTDIR}${LIBDIR_BASE}/librt.a LIBRTLD_DB?= ${LIBDESTDIR}${LIBDIR_BASE}/librtld_db.a LIBSBUF?= ${LIBDESTDIR}${LIBDIR_BASE}/libsbuf.a LIBSDP?= ${LIBDESTDIR}${LIBDIR_BASE}/libsdp.a LIBSMB?= ${LIBDESTDIR}${LIBDIR_BASE}/libsmb.a LIBSPL?= ${LIBDESTDIR}${LIBDIR_BASE}/libspl.a LIBSSL?= ${LIBDESTDIR}${LIBDIR_BASE}/libssl.a LIBSSP_NONSHARED?= ${LIBDESTDIR}${LIBDIR_BASE}/libssp_nonshared.a LIBSTATS?= ${LIBDESTDIR}${LIBDIR_BASE}/libstats.a LIBSTDTHREADS?= ${LIBDESTDIR}${LIBDIR_BASE}/libstdthreads.a LIBSYSDECODE?= ${LIBDESTDIR}${LIBDIR_BASE}/libsysdecode.a LIBTACPLUS?= ${LIBDESTDIR}${LIBDIR_BASE}/libtacplus.a LIBTERMCAP?= ${LIBDESTDIR}${LIBDIR_BASE}/libtermcap.a LIBTERMCAPW?= ${LIBDESTDIR}${LIBDIR_BASE}/libtermcapw.a LIBTERMLIB?= "don't use LIBTERMLIB, use LIBTERMCAP" LIBTINFOW= ${LIBDESTDIR}${LIBDIR_BASE}/libtinfow.a LIBTPOOL?= ${LIBDESTDIR}${LIBDIR_BASE}/libtpool.a LIBUFS?= ${LIBDESTDIR}${LIBDIR_BASE}/libufs.a LIBUGIDFW?= ${LIBDESTDIR}${LIBDIR_BASE}/libugidfw.a LIBULOG?= ${LIBDESTDIR}${LIBDIR_BASE}/libulog.a LIBUMEM?= ${LIBDESTDIR}${LIBDIR_BASE}/libumem.a LIBUSB?= ${LIBDESTDIR}${LIBDIR_BASE}/libusb.a LIBUSBHID?= ${LIBDESTDIR}${LIBDIR_BASE}/libusbhid.a LIBUTIL?= ${LIBDESTDIR}${LIBDIR_BASE}/libutil.a LIBUUTIL?= ${LIBDESTDIR}${LIBDIR_BASE}/libuutil.a +LIBVERTO?= ${LIBDESTDIR}${LIBDIR_BASE}/libverto.a LIBVGL?= ${LIBDESTDIR}${LIBDIR_BASE}/libvgl.a LIBVMMAPI?= ${LIBDESTDIR}${LIBDIR_BASE}/libvmmapi.a LIBWIND?= ${LIBDESTDIR}${LIBDIR_BASE}/libwind.a LIBWRAP?= ${LIBDESTDIR}${LIBDIR_BASE}/libwrap.a LIBXO?= ${LIBDESTDIR}${LIBDIR_BASE}/libxo.a LIBXPG4?= ${LIBDESTDIR}${LIBDIR_BASE}/libxpg4.a LIBY?= ${LIBDESTDIR}${LIBDIR_BASE}/liby.a LIBYPCLNT?= ${LIBDESTDIR}${LIBDIR_BASE}/libypclnt.a LIBZ?= ${LIBDESTDIR}${LIBDIR_BASE}/libz.a LIBZDB?= ${LIBDESTDIR}${LIBDIR_BASE}/libzdb.a LIBZFS?= ${LIBDESTDIR}${LIBDIR_BASE}/libzfs.a LIBZFS_CORE?= ${LIBDESTDIR}${LIBDIR_BASE}/libzfs_core.a LIBZFSBOOTENV?= ${LIBDESTDIR}${LIBDIR_BASE}/libzfsbootenv.a LIBZPOOL?= ${LIBDESTDIR}${LIBDIR_BASE}/libzpool.a LIBZUTIL?= ${LIBDESTDIR}${LIBDIR_BASE}/libzutil.a # enforce -lpthread, -lc, and -lsys to always be the last in that exact order .if defined(LDADD) .if ${LDADD:M-lpthread} LDADD:= ${LDADD:N-lpthread} -lpthread .endif .if ${LDADD:M-lc} LDADD:= ${LDADD:N-lc} -lc .endif .if ${LDADD:M-lsys} LDADD:= ${LDADD:N-lsys} -lsys .endif .endif # Only do this for src builds. .if defined(SRCTOP) .if defined(_LIBRARIES) && defined(LIB) && \ ${_LIBRARIES:M${LIB}} != "" .if !defined(LIB${LIB:tu}) .error ${.CURDIR}: Missing value for LIB${LIB:tu} in ${_this:T}. Likely should be: LIB${LIB:tu}?= $${LIBDESTDIR}$${LIBDIR_BASE}/lib${LIB}.a .endif .endif # Derive LIB*SRCDIR from LIB*DIR .for lib in ${_LIBRARIES} LIB${lib:tu}SRCDIR?= ${SRCTOP}/${LIB${lib:tu}DIR:S,^${OBJTOP}/,,} .endfor .else # Out of tree builds # There are LIBADD defined in an out-of-tree build. Are they *all* # in-tree libraries? If so convert them to LDADD to support # partial checkouts. .if !empty(LIBADD) _convert_libadd= 1 .for l in ${LIBADD} .if empty(LIB${l:tu}) _convert_libadd= 0 .endif .endfor .if ${_convert_libadd} == 1 .warning Converting out-of-tree build LIBADDs into LDADD. This is not fully supported. .for l in ${LIBADD} LDADD+= -l${l} .endfor .endif .endif .endif # defined(SRCTOP) diff --git a/share/mk/src.libnames.mk b/share/mk/src.libnames.mk index a3b38db570bf..c5ff899ac9dc 100644 --- a/share/mk/src.libnames.mk +++ b/share/mk/src.libnames.mk @@ -1,842 +1,917 @@ # # The include file define library names suitable # for INTERNALLIB and PRIVATELIB definition .if !target(____) .error src.libnames.mk cannot be included directly. .endif .if !target(____) ____: .NOTMAIN .include _PRIVATELIBS= \ atf_c \ atf_cxx \ auditd \ bsddialog \ bsdstat \ cbor \ devdctl \ event1 \ fido2 \ gmock \ gtest \ gmock_main \ gtest_main \ heimipcc \ heimipcs \ kldelf \ ldns \ sqlite3 \ ssh \ ucl \ unbound \ zstd # Let projects based on FreeBSD append to _PRIVATELIBS # by maintaining their own LOCAL_PRIVATELIBS list. _PRIVATELIBS+= ${LOCAL_PRIVATELIBS} _INTERNALLIBS= \ amu \ + apputils \ bsnmptools \ c_nossp_pic \ cron \ der \ diff \ elftc \ fdt \ fifolog \ ifconfig \ ipf \ iscsiutil \ + kadmin_common \ + kprop_util \ + krb5apputils \ + krb5ss \ lpr \ lua \ lutok \ netbsd \ ntp \ ntpevent \ nvmf \ openbsd \ opts \ parse \ pe \ pfctl \ pkgecc \ pmcstat \ sl \ sm \ smdb \ smutil \ telnet \ vers \ wpaap \ wpacommon \ wpacrypto \ wpadrivers \ wpaeap_common \ wpaeap_peer \ wpaeap_server \ wpaeapol_auth \ wpaeapol_supp \ wpal2_packet \ wpapasn \ wparadius \ wparsn_supp \ wpatls \ wpautils \ wpawps # Let projects based on FreeBSD append to _INTERNALLIBS # by maintaining their own LOCAL_INTERNALLIBS list. _INTERNALLIBS+= ${LOCAL_INTERNALLIBS} _LIBRARIES= \ ${_PRIVATELIBS} \ ${_INTERNALLIBS} \ ${LOCAL_LIBRARIES} \ 80211 \ 9p \ alias \ archive \ asn1 \ avl \ BlocksRuntime \ be \ begemot \ bluetooth \ bsdxml \ bsm \ bsnmp \ bz2 \ c \ c_pic \ calendar \ cam \ casper \ cap_dns \ cap_fileargs \ cap_grp \ cap_net \ cap_netdb \ cap_pwd \ cap_sysctl \ cap_syslog \ com_err \ compiler_rt \ crypt \ crypto \ ctf \ cuse \ cxxrt \ devctl \ devdctl \ devinfo \ devstat \ dialog \ dl \ dpv \ dtrace \ dwarf \ edit \ efivar \ elf \ execinfo \ fetch \ figpar \ formw \ geom \ gpio \ gssapi \ gssapi_krb5 \ + gssrpc \ hdb \ heimbase \ heimntlm \ heimsqlite \ hx509 \ icp \ ipsec \ ipt \ jail \ - kadm5clnt \ - kadm5srv \ + k5crypto \ + kadm5 \ + kadmin_common \ kafs5 \ + kdb5 \ kdc \ kiconv \ + krad \ krb5 \ + krb5profile \ + krb5support \ kvm \ l \ lzma \ m \ magic \ md \ memstat \ mp \ mt \ ncursesw \ netgraph \ netmap \ ngatm \ nv \ nvpair \ opencsd \ pam \ panel \ panelw \ pcap \ pcsclite \ pjdlog \ pmc \ proc \ procstat \ pthread \ radius \ regex \ roken \ rpcsec_gss \ rpcsvc \ rt \ rtld_db \ sbuf \ sdp \ sm \ smb \ spl \ ssl \ ssp_nonshared \ stats \ stdthreads \ supcplusplus \ sys \ sysdecode \ tacplus \ termcapw \ tinfow \ tpool \ ufs \ ugidfw \ ulog \ umem \ usb \ usbhid \ util \ uutil \ + verto \ vmmapi \ wind \ wrap \ xo \ y \ ypclnt \ z \ zdb \ zfs_core \ zfs \ zfsbootenv \ zpool \ zutil +.if ${MK_KERBEROS} != "no" && ${MK_MITKRB5} != "no" +_LIBRARIES+= \ + kadm5clnt_mit \ + kadm5srv_mit +.else +_LIBRARIES+= \ + kadm5clnt \ + kadm5srv +.endif + .if ${MK_BLACKLIST} != "no" _LIBRARIES+= \ blacklist \ .endif .if ${MK_OFED} != "no" _LIBRARIES+= \ cxgb4 \ ibcm \ ibmad \ ibnetdisc \ ibumad \ ibverbs \ irdma \ mlx4 \ mlx5 \ rdmacm \ osmcomp \ opensm \ osmvendor .endif .if ${MK_BEARSSL} == "yes" _LIBRARIES+= \ bearssl \ secureboot \ LIBBEARSSL?= ${LIBBEARSSLDIR}/libbearssl.a LIBSECUREBOOT?= ${LIBSECUREBOOTDIR}/libsecureboot.a .endif .if ${MK_VERIEXEC} == "yes" _LIBRARIES+= veriexec LIBVERIEXEC?= ${LIBVERIEXECDIR}/libveriexec.a .endif # Each library's LIBADD needs to be duplicated here for static linkage of # 2nd+ order consumers. Auto-generating this would be better. _DP_80211= sbuf bsdxml _DP_9p= sbuf .if ${MK_CASPER} != "no" _DP_9p+= casper cap_pwd cap_grp .endif # XXX: Not bootstrapped so uses host version on non-FreeBSD, so don't use a # FreeBSD-specific dependency list .if ${.MAKE.OS} == "FreeBSD" || !defined(BOOTSTRAPPING) _DP_archive= z bz2 lzma bsdxml zstd .endif _DP_avl= spl _DP_bsddialog= ncursesw tinfow _DP_zstd= pthread .if ${MK_BLACKLIST} != "no" _DP_blacklist+= pthread .endif _DP_crypto= pthread # See comment by _DP_archive above .if ${.MAKE.OS} == "FreeBSD" || !defined(BOOTSTRAPPING) .if ${MK_OPENSSL} != "no" _DP_archive+= crypto .else _DP_archive+= md .endif .endif _DP_sqlite3= pthread _DP_ssl= crypto _DP_ssh= crypto crypt z .if ${MK_LDNS} != "no" _DP_ssh+= ldns .endif _DP_edit= tinfow .if ${MK_OPENSSL} != "no" _DP_bsnmp= crypto .endif _DP_geom= bsdxml sbuf _DP_cam= sbuf _DP_kldelf= elf _DP_kvm= elf _DP_casper= nv _DP_cap_dns= nv _DP_cap_fileargs= nv _DP_cap_grp= nv _DP_cap_pwd= nv _DP_cap_sysctl= nv _DP_cap_syslog= nv _DP_crypt= md .if ${MK_OFED} != "no" _DP_pcap= ibverbs mlx5 .endif _DP_pjdlog= util _DP_usb= pthread _DP_unbound= ssl crypto pthread _DP_rt= pthread .if ${MK_OPENSSL} == "no" _DP_radius= md .else _DP_radius= crypto .endif _DP_rtld_db= elf procstat _DP_procstat= kvm util elf _DP_proc= cxxrt .if ${MK_CDDL} != "no" _DP_proc+= ctf .endif _DP_proc+= elf procstat rtld_db util z _DP_mp= crypto _DP_memstat= kvm _DP_magic= z _DP_mt= sbuf bsdxml _DP_nvmf= nv _DP_ldns= ssl crypto _DP_lua= m _DP_lutok= lua .if ${MK_OPENSSL} != "no" _DP_fetch= ssl crypto .else _DP_fetch= md .endif _DP_execinfo= elf _DP_dwarf= elf z _DP_dpv= dialog figpar util tinfow ncursesw _DP_dialog= tinfow ncursesw m _DP_cuse= pthread _DP_atf_cxx= atf_c _DP_gtest= pthread regex _DP_gmock= gtest _DP_gmock_main= gmock _DP_gtest_main= gtest _DP_devstat= kvm _DP_pam= radius tacplus md util -.if ${MK_KERBEROS} != "no" +.if ${MK_KERBEROS} != "no" && ${MK_MITKRB5} != "no" _DP_pam+= krb5 .endif .if ${MK_OPENSSH} != "no" _DP_fido2+= crypto z _DP_pam+= ssh .endif .if ${MK_NIS} != "no" _DP_pam+= ypclnt .endif +.if ${MK_KERBEROS} != "no" +.if ${MK_MITKRB5} != "no" +# _DP_krb5support= no dependencies except for libc +# _DP_verto= no dependencies except for libc +# _DP_apputils= no dependencies except for libc +_DP_com_err= krb5support +_DP_k5crypto= com_err krb5support crypto +_DP_krb5profile= com_err krb5support +_DP_gssapi_krb5= krb5 k5crypto com_err krb5profile krb5support +_DP_kadm5clnt_mit= gssrpc gssapi_krb5 krb5 k5crypto krb5support com_err krb5profile +_DP_kadm5srv_mit= krb5profile gssrpc gssapi_krb5 kdb5 krb5 k5crypto krb5support com_err +_DP_kdb5= gssrpc krb5 k5crypto com_err krb5support gssapi_krb5 krb5profile +_DP_krad= krb5 k5crypto com_err krb5profile krb5support verto +_DP_krb5= krb5profile k5crypto com_err krb5support +_DP_gssrpc= gssapi_krb5 krb5 k5crypto com_err krb5support +.else _DP_roken= crypt _DP_kadm5clnt= com_err krb5 roken _DP_kadm5srv= com_err hdb krb5 roken _DP_heimntlm= crypto com_err krb5 roken _DP_hx509= asn1 com_err crypto roken wind _DP_hdb= asn1 com_err krb5 roken sqlite3 _DP_asn1= com_err roken _DP_kdc= roken hdb hx509 krb5 heimntlm asn1 crypto _DP_wind= com_err roken _DP_heimbase= pthread _DP_heimipcc= heimbase roken pthread _DP_heimipcs= heimbase roken pthread _DP_kafs5= asn1 krb5 roken _DP_krb5= asn1 com_err crypt crypto hx509 roken wind heimbase heimipcc _DP_gssapi_krb5= gssapi krb5 crypto roken asn1 com_err +.endif +.endif _DP_lzma= md pthread _DP_ucl= m _DP_vmmapi= util _DP_opencsd= cxxrt _DP_ctf= spl z _DP_dtrace= ctf elf proc pthread rtld_db xo _DP_xo= util _DP_ztest= geom m nvpair umem zpool pthread avl zfs_core spl zutil zfs uutil icp # The libc dependencies are not strictly needed but are defined to make the # assert happy. _DP_c= compiler_rt sys # Use libssp_nonshared only on i386 and power*. Other archs emit direct calls # to __stack_chk_fail, not __stack_chk_fail_local provided by libssp_nonshared. .if ${MK_SSP} != "no" && \ (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH:Mpower*} != "") _DP_c+= ssp_nonshared .endif _DP_stats= sbuf pthread _DP_stdthreads= pthread _DP_sys= compiler_rt # Use libssp_nonshared only on i386 and power*. Other archs emit direct calls # to __stack_chk_fail, not __stack_chk_fail_local provided by libssp_nonshared. .if ${MK_SSP} != "no" && \ (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH:Mpower*} != "") _DP_sys+= ssp_nonshared .endif .if !defined(BOOTSTRAPPING) _DP_thr= c sys _DP_pthread= ${_DP_thr} .endif _DP_tacplus= md pam _DP_ncursesw= tinfow _DP_formw= ncursesw _DP_nvpair= spl _DP_panelw= ncursesw _DP_rpcsec_gss= gssapi _DP_smb= kiconv _DP_ulog= md _DP_fifolog= z _DP_ipf= kvm _DP_tpool= spl _DP_uutil= avl spl _DP_zfs= md pthread rt umem util uutil m avl bsdxml crypto geom nvpair \ z zfs_core zutil _DP_zfsbootenv= zfs nvpair _DP_zfs_core= nvpair spl zutil _DP_zpool= md pthread z icp spl nvpair avl umem _DP_zutil= avl geom m tpool _DP_be= zfs spl nvpair zfsbootenv _DP_netmap= _DP_ifconfig= m _DP_pfctl= nv # OFED support .if ${MK_OFED} != "no" _DP_cxgb4= ibverbs pthread _DP_ibcm= ibverbs _DP_ibmad= ibumad _DP_ibnetdisc= osmcomp ibmad ibumad _DP_ibumad= _DP_ibverbs= _DP_irdma= ibverbs pthread _DP_mlx4= ibverbs pthread _DP_mlx5= ibverbs pthread _DP_rdmacm= ibverbs _DP_osmcomp= pthread _DP_opensm= pthread _DP_osmvendor= ibumad pthread .endif # Define special cases LDADD_supcplusplus= -lsupc++ LIBATF_C= ${LIBDESTDIR}${LIBDIR_BASE}/libprivateatf-c.a LIBATF_CXX= ${LIBDESTDIR}${LIBDIR_BASE}/libprivateatf-c++.a LDADD_atf_c= -lprivateatf-c LDADD_atf_cxx= -lprivateatf-c++ LIBGMOCK= ${LIBDESTDIR}${LIBDIR_BASE}/libprivategmock.a LIBGMOCK_MAIN= ${LIBDESTDIR}${LIBDIR_BASE}/libprivategmock_main.a LIBGTEST= ${LIBDESTDIR}${LIBDIR_BASE}/libprivategtest.a LIBGTEST_MAIN= ${LIBDESTDIR}${LIBDIR_BASE}/libprivategtest_main.a LDADD_gmock= -lprivategmock LDADD_gtest= -lprivategtest LDADD_gmock_main= -lprivategmock_main LDADD_gtest_main= -lprivategtest_main .for _l in ${_PRIVATELIBS} LIB${_l:tu}?= ${LIBDESTDIR}${LIBDIR_BASE}/libprivate${_l}.a .endfor .if ${MK_PIE} != "no" PIE_SUFFIX= _pie .endif .for _l in ${_LIBRARIES} .if ${_INTERNALLIBS:M${_l}} || !defined(SYSROOT) LDADD_${_l}_L+= -L${LIB${_l:tu}DIR} .endif DPADD_${_l}?= ${LIB${_l:tu}} .if ${_PRIVATELIBS:M${_l}} LDADD_${_l}?= ${LDADD_${_l}_L} -lprivate${_l} .elif ${_INTERNALLIBS:M${_l}} LDADD_${_l}?= ${LDADD_${_l}_L} -l${_l:S/${PIE_SUFFIX}//}${PIE_SUFFIX} .else LDADD_${_l}?= ${LDADD_${_l}_L} -l${_l} .endif # Add in all dependencies for static linkage. # Bootstrapping from non-FreeBSD needs special handling, since it overrides # NO_SHARED back to yes despite only building static versions of bootstrap # libraries (see tools/build/mk/Makefile.boot.pre). .if defined(_DP_${_l}) && (${_INTERNALLIBS:M${_l}} || \ (defined(NO_SHARED) && ${NO_SHARED:tl} != "no") || \ (defined(BOOTSTRAPPING) && ${.MAKE.OS} != "FreeBSD")) .for _d in ${_DP_${_l}} DPADD_${_l}+= ${DPADD_${_d}} LDADD_${_l}+= ${LDADD_${_d}} .endfor .endif .endfor # These are special cases where the library is broken and anything that uses # it needs to add more dependencies. Broken usually means that it has a # cyclic dependency and cannot link its own dependencies. This is bad, please # fix the library instead. # Unless the library itself is broken then the proper place to define # dependencies is _DP_* above. # libatf-c++ exposes libatf-c abi hence we need to explicit link to atf_c for # atf_cxx DPADD_atf_cxx+= ${DPADD_atf_c} LDADD_atf_cxx+= ${LDADD_atf_c} DPADD_gmock+= ${DPADD_gtest} LDADD_gmock+= ${LDADD_gtest} DPADD_gmock_main+= ${DPADD_gmock} LDADD_gmock_main+= ${LDADD_gmock} DPADD_gtest_main+= ${DPADD_gtest} LDADD_gtest_main+= ${LDADD_gtest} # Detect LDADD/DPADD that should be LIBADD, before modifying LDADD here. _BADLDADD= .for _l in ${LDADD:M-l*:N-l*/*:C,^-l,,} .if ${_LIBRARIES:M${_l}} && !${_PRIVATELIBS:M${_l}} _BADLDADD+= ${_l} .endif .endfor .if !empty(_BADLDADD) .error ${.CURDIR}: These libraries should be LIBADD+=foo rather than DPADD/LDADD+=-lfoo: ${_BADLDADD} .endif .for _l in ${LIBADD} DPADD+= ${DPADD_${_l}} LDADD+= ${LDADD_${_l}} .endfor _LIB_OBJTOP?= ${OBJTOP} # INTERNALLIB definitions. LIBDIFFDIR= ${_LIB_OBJTOP}/lib/libdiff LIBDIFF?= ${LIBDIFFDIR}/libdiff${PIE_SUFFIX}.a LIBELFTCDIR= ${_LIB_OBJTOP}/lib/libelftc LIBELFTC?= ${LIBELFTCDIR}/libelftc${PIE_SUFFIX}.a LIBFDTDIR= ${_LIB_OBJTOP}/lib/libfdt LIBFDT?= ${LIBFDTDIR}/libfdt${PIE_SUFFIX}.a LIBLUADIR= ${_LIB_OBJTOP}/lib/liblua LIBLUA?= ${LIBLUADIR}/liblua${PIE_SUFFIX}.a LIBLUTOKDIR= ${_LIB_OBJTOP}/lib/liblutok LIBLUTOK?= ${LIBLUTOKDIR}/liblutok${PIE_SUFFIX}.a LIBPEDIR= ${_LIB_OBJTOP}/lib/libpe LIBPE?= ${LIBPEDIR}/libpe${PIE_SUFFIX}.a LIBOPENBSDDIR= ${_LIB_OBJTOP}/lib/libopenbsd LIBOPENBSD?= ${LIBOPENBSDDIR}/libopenbsd${PIE_SUFFIX}.a LIBSMDIR= ${_LIB_OBJTOP}/lib/libsm LIBSM?= ${LIBSMDIR}/libsm${PIE_SUFFIX}.a LIBSMDBDIR= ${_LIB_OBJTOP}/lib/libsmdb LIBSMDB?= ${LIBSMDBDIR}/libsmdb${PIE_SUFFIX}.a LIBSMUTILDIR= ${_LIB_OBJTOP}/lib/libsmutil LIBSMUTIL?= ${LIBSMUTILDIR}/libsmutil${PIE_SUFFIX}.a LIBSYSDIR= ${_LIB_OBJTOP}/lib/libsys LIBSYS?= ${LIBSYSDIR}/libsys${PIE_SUFFIX}.a LIBNETBSDDIR?= ${_LIB_OBJTOP}/lib/libnetbsd LIBNETBSD?= ${LIBNETBSDDIR}/libnetbsd${PIE_SUFFIX}.a LIBVERSDIR?= ${_LIB_OBJTOP}/kerberos5/lib/libvers LIBVERS?= ${LIBVERSDIR}/libvers${PIE_SUFFIX}.a LIBSLDIR= ${_LIB_OBJTOP}/kerberos5/lib/libsl LIBSL?= ${LIBSLDIR}/libsl${PIE_SUFFIX}.a LIBIFCONFIGDIR= ${_LIB_OBJTOP}/lib/libifconfig LIBIFCONFIG?= ${LIBIFCONFIGDIR}/libifconfig${PIE_SUFFIX}.a LIBIPFDIR= ${_LIB_OBJTOP}/sbin/ipf/libipf LIBIPF?= ${LIBIPFDIR}/libipf${PIE_SUFFIX}.a LIBNVDIR= ${_LIB_OBJTOP}/lib/libnv LIBNV?= ${LIBNVDIR}/libnv${PIE_SUFFIX}.a LIBISCSIUTILDIR= ${_LIB_OBJTOP}/lib/libiscsiutil LIBISCSIUTIL?= ${LIBISCSIUTILDIR}/libiscsiutil${PIE_SUFFIX}.a LIBNVMFDIR= ${_LIB_OBJTOP}/lib/libnvmf LIBNVMF?= ${LIBNVMFDIR}/libnvmf${PIE_SUFFIX}.a LIBTELNETDIR= ${_LIB_OBJTOP}/lib/libtelnet LIBTELNET?= ${LIBTELNETDIR}/libtelnet${PIE_SUFFIX}.a LIBCRONDIR= ${_LIB_OBJTOP}/usr.sbin/cron/lib LIBCRON?= ${LIBCRONDIR}/libcron${PIE_SUFFIX}.a LIBDERDIR= ${_LIB_OBJTOP}/lib/libder LIBDER?= ${LIBDERDIR}/libder${PIE_SUFFIX}.a LIBNTPDIR= ${_LIB_OBJTOP}/usr.sbin/ntp/libntp LIBNTP?= ${LIBNTPDIR}/libntp${PIE_SUFFIX}.a LIBNTPEVENTDIR= ${_LIB_OBJTOP}/usr.sbin/ntp/libntpevent LIBNTPEVENT?= ${LIBNTPEVENTDIR}/libntpevent${PIE_SUFFIX}.a LIBOPTSDIR= ${_LIB_OBJTOP}/usr.sbin/ntp/libopts LIBOPTS?= ${LIBOPTSDIR}/libopts${PIE_SUFFIX}.a LIBPARSEDIR= ${_LIB_OBJTOP}/usr.sbin/ntp/libparse LIBPARSE?= ${LIBPARSEDIR}/libparse${PIE_SUFFIX}.a LIBPFCTLDIR= ${_LIB_OBJTOP}/lib/libpfctl LIBPFCTL?= ${LIBPFCTLDIR}/libpfctl${PIE_SUFFIX}.a LIBLPRDIR= ${_LIB_OBJTOP}/usr.sbin/lpr/common_source LIBLPR?= ${LIBLPRDIR}/liblpr${PIE_SUFFIX}.a LIBFIFOLOGDIR= ${_LIB_OBJTOP}/usr.sbin/fifolog/lib LIBFIFOLOG?= ${LIBFIFOLOGDIR}/libfifolog${PIE_SUFFIX}.a LIBBSNMPTOOLSDIR= ${_LIB_OBJTOP}/usr.sbin/bsnmpd/tools/libbsnmptools LIBBSNMPTOOLS?= ${LIBBSNMPTOOLSDIR}/libbsnmptools${PIE_SUFFIX}.a LIBBE?= ${LIBBEDIR}/libbe${PIE_SUFFIX}.a LIBPKGECCDIR= ${_LIB_OBJTOP}/secure/lib/libpkgecc LIBPKGECC?= ${LIBPKGECCDIR}/libpkgecc${PIE_SUFFIX}.a LIBPMCSTATDIR= ${_LIB_OBJTOP}/lib/libpmcstat LIBPMCSTAT?= ${LIBPMCSTATDIR}/libpmcstat${PIE_SUFFIX}.a LIBWPAAPDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/ap LIBWPAAP?= ${LIBWPAAPDIR}/libwpaap${PIE_SUFFIX}.a LIBWPACOMMONDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/common LIBWPACOMMON?= ${LIBWPACOMMONDIR}/libwpacommon${PIE_SUFFIX}.a LIBWPACRYPTODIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/crypto LIBWPACRYPTO?= ${LIBWPACRYPTODIR}/libwpacrypto${PIE_SUFFIX}.a LIBWPADRIVERSDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/drivers LIBWPADRIVERS?= ${LIBWPADRIVERSDIR}/libwpadrivers${PIE_SUFFIX}.a LIBWPAEAP_COMMONDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/eap_common LIBWPAEAP_COMMON?= ${LIBWPAEAP_COMMONDIR}/libwpaeap_common${PIE_SUFFIX}.a LIBWPAEAP_PEERDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/eap_peer LIBWPAEAP_PEER?= ${LIBWPAEAP_PEERDIR}/libwpaeap_peer${PIE_SUFFIX}.a LIBWPAEAP_SERVERDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/eap_server LIBWPAEAP_SERVER?= ${LIBWPAEAP_SERVERDIR}/libwpaeap_server${PIE_SUFFIX}.a LIBWPAEAPOL_AUTHDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/eapol_auth LIBWPAEAPOL_AUTH?= ${LIBWPAEAPOL_AUTHDIR}/libwpaeapol_auth${PIE_SUFFIX}.a LIBWPAEAPOL_SUPPDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/eapol_supp LIBWPAEAPOL_SUPP?= ${LIBWPAEAPOL_SUPPDIR}/libwpaeapol_supp${PIE_SUFFIX}.a LIBWPAL2_PACKETDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/l2_packet LIBWPAL2_PACKET?= ${LIBWPAL2_PACKETDIR}/libwpal2_packet${PIE_SUFFIX}.a LIBWPAPASNDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/pasn LIBWPAPASN?= ${LIBWPAPASNDIR}/libwpapasn${PIE_SUFFIX}.a LIBWPARADIUSDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/radius LIBWPARADIUS?= ${LIBWPARADIUSDIR}/libwparadius${PIE_SUFFIX}.a LIBWPARSN_SUPPDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/rsn_supp LIBWPARSN_SUPP?= ${LIBWPARSN_SUPPDIR}/libwparsn_supp${PIE_SUFFIX}.a LIBWPATLSDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/tls LIBWPATLS?= ${LIBWPATLSDIR}/libwpatls${PIE_SUFFIX}.a LIBWPAUTILSDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/utils LIBWPAUTILS?= ${LIBWPAUTILSDIR}/libwpautils${PIE_SUFFIX}.a LIBWPAWPSDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/wps LIBWPAWPS?= ${LIBWPAWPSDIR}/libwpawps${PIE_SUFFIX}.a LIBC_NOSSP_PICDIR= ${_LIB_OBJTOP}/lib/libc LIBC_NOSSP_PIC?= ${LIBC_NOSSP_PICDIR}/libc_nossp_pic.a LIBSYS_PICDIR= ${_LIB_OBJTOP}/lib/libsys LIBSYS_PIC?= ${LIBSYS_PICDIR}/libsys_pic.a # Define a directory for each library. This is useful for adding -L in when # not using a --sysroot or for meta mode bootstrapping when there is no # Makefile.depend. These are sorted by directory. LIBAVLDIR= ${_LIB_OBJTOP}/cddl/lib/libavl LIBCTFDIR= ${_LIB_OBJTOP}/cddl/lib/libctf LIBDTRACEDIR= ${_LIB_OBJTOP}/cddl/lib/libdtrace LIBICPDIR= ${_LIB_OBJTOP}/cddl/lib/libicp LIBICP?= ${LIBICPDIR}/libicp${PIE_SUFFIX}.a LIBICP_RESCUEDIR= ${_LIB_OBJTOP}/cddl/lib/libicp_rescue LIBICP_RESCUE?= ${LIBICP_RESCUEDIR}/libicp_rescue${PIE_SUFFIX}.a LIBNVPAIRDIR= ${_LIB_OBJTOP}/cddl/lib/libnvpair LIBNVPAIR?= ${LIBNVPAIRDIR}/libnvpair${PIE_SUFFIX}.a LIBUMEMDIR= ${_LIB_OBJTOP}/cddl/lib/libumem LIBUUTILDIR= ${_LIB_OBJTOP}/cddl/lib/libuutil LIBZDBDIR= ${_LIB_OBJTOP}/cddl/lib/libzdb LIBZDB?= ${LIBZDBDIR}/libzdb${PIE_SUFFIX}.a LIBZFSDIR= ${_LIB_OBJTOP}/cddl/lib/libzfs LIBZFS?= ${LIBZFSDIR}/libzfs${PIE_SUFFIX}.a LIBZFS_COREDIR= ${_LIB_OBJTOP}/cddl/lib/libzfs_core LIBZFS_CORE?= ${LIBZFS_COREDIR}/libzfs_core${PIE_SUFFIX}.a LIBZFSBOOTENVDIR= ${_LIB_OBJTOP}/cddl/lib/libzfsbootenv LIBZFSBOOTENV?= ${LIBZFSBOOTENVDIR}/libzfsbootenv${PIE_SUFFIX}.a LIBZPOOLDIR= ${_LIB_OBJTOP}/cddl/lib/libzpool LIBZPOOL?= ${LIBZPOOLDIR}/libzpool${PIE_SUFFIX}.a LIBZUTILDIR= ${_LIB_OBJTOP}/cddl/lib/libzutil LIBZUTIL?= ${LIBZUTILDIR}/libzutil${PIE_SUFFIX}.a LIBTPOOLDIR= ${_LIB_OBJTOP}/cddl/lib/libtpool # OFED support LIBCXGB4DIR= ${_LIB_OBJTOP}/lib/ofed/libcxgb4 LIBIBCMDIR= ${_LIB_OBJTOP}/lib/ofed/libibcm LIBIBMADDIR= ${_LIB_OBJTOP}/lib/ofed/libibmad LIBIBNETDISCDIR=${_LIB_OBJTOP}/lib/ofed/libibnetdisc LIBIBUMADDIR= ${_LIB_OBJTOP}/lib/ofed/libibumad LIBIBVERBSDIR= ${_LIB_OBJTOP}/lib/ofed/libibverbs LIBIRDMADIR= ${_LIB_OBJTOP}/lib/ofed/libirdma LIBMLX4DIR= ${_LIB_OBJTOP}/lib/ofed/libmlx4 LIBMLX5DIR= ${_LIB_OBJTOP}/lib/ofed/libmlx5 LIBRDMACMDIR= ${_LIB_OBJTOP}/lib/ofed/librdmacm LIBOSMCOMPDIR= ${_LIB_OBJTOP}/lib/ofed/complib LIBOPENSMDIR= ${_LIB_OBJTOP}/lib/ofed/libopensm LIBOSMVENDORDIR=${_LIB_OBJTOP}/lib/ofed/libvendor LIBDIALOGDIR= ${_LIB_OBJTOP}/gnu/lib/libdialog LIBSSPDIR= ${_LIB_OBJTOP}/lib/libssp LIBSSP_NONSHAREDDIR= ${_LIB_OBJTOP}/lib/libssp_nonshared +.if ${MK_MITKRB5} != "no" +LIBAPPUTILSDIR= ${_LIB_OBJTOP}/krb5/lib/apputils +LIBAPPUTILS?= ${LIBAPPUTILSDIR}/libapputils${PIE_SUFFIX}.a +LIBGSSAPI_KRB5DIR= ${_LIB_OBJTOP}/krb5/lib/gssapi +LIBGSSAPI_KRB5?= ${LIBGSSAPI_KRB5DIR}/libgssapi_krb5${PIE_SUFFIX}.a +LIBGSSRPCDIR= ${_LIB_OBJTOP}/krb5/lib/rpc +LIBGSSRPC?= ${LIBGSSRPCDIR}/libgssrpc${PIE_SUFFIX}.a +LIBK5CRYPTODIR= ${_LIB_OBJTOP}/krb5/lib/crypto +LIBK5CRYPTO?= ${LIBK5CRYPTODIR}/libk5crypto${PIE_SUFFIX}.a +LIBK5GSSRPCDIR= ${_LIB_OBJTOP}/krb5/lib/rpc +LIBK5GSSRPC?= ${LIBK5GSSRPCDIR}/libgssrpc${PIE_SUFFIX}.a +LIBKADM5CLNT_MITDIR= ${_LIB_OBJTOP}/krb5/lib/kadm5clnt +LIBKADM5CLNT_MIT?= ${LIBKADM5CLNT_MITDIR}/libkadm5clnt_mit${PIE_SUFFIX}.a +LIBKADM5SRV_MITDIR= ${_LIB_OBJTOP}/krb5/lib/kadm5srv +LIBKADM5SRV_MIT?= ${LIBKADM5SRV_MITDIR}/libkadm5srv_mit${PIE_SUFFIX}.a +LIBKADMIN_COMMONDIR= ${_LIB_OBJTOP}/krb5/lib/kadmin_common +LIBKADMIN_COMMON?= ${LIBKADMIN_COMMONDIR}/libkadmin_common${PIE_SUFFIX}.a +LIBKDB5DIR= ${_LIB_OBJTOP}/krb5/lib/kdb +LIBKDB5?= ${LIBKDB5DIR}/libkdb5${PIE_SUFFIX}.a +LIBKPROP_UTILDIR= ${_LIB_OBJTOP}/krb5/lib/kprop_util +LIBKPROP_UTIL?= ${LIBKPROP_UTILDIR}/libkprop_util${PIE_SUFFIX}.a +LIBKRADDIR= ${_LIB_OBJTOP}/krb5/lib/krad +LIBKRAD?= ${LIBKRADDIR}/libkrad${PIE_SUFFIX}.a +LIBKRB5DIR= ${_LIB_OBJTOP}/krb5/lib/krb5 +LIBKRB5?= ${LIBKRB5DIR}/libkrb5${PIE_SUFFIX}.a +LIBKRB5SSDIR= ${_LIB_OBJTOP}/krb5/util/ss +LIBKRB5SS?= ${LIBKRB5SUPPORTDIR}/libkrb5ss${PIE_SUFFIX}.a +LIBKRB5SUPPORTDIR= ${_LIB_OBJTOP}/krb5/util/support +LIBKRB5SUPPORT?= ${LIBKRB5SUPPORTDIR}/libkrb5support${PIE_SUFFIX}.a +LIBKRB5PROFILEDIR= ${_LIB_OBJTOP}/krb5/util/profile +LIBKRB5PROFILE?= ${LIBPROFILEDIR}/libkrb5profile${PIE_SUFFIX}.a +LIBVERTODIR= ${_LIB_OBJTOP}/krb5/util/verto +LIBVERTO?= ${LIBVERTODIR}/libverto${PIE_SUFFIX}.a +.else LIBASN1DIR= ${_LIB_OBJTOP}/kerberos5/lib/libasn1 LIBGSSAPI_KRB5DIR= ${_LIB_OBJTOP}/kerberos5/lib/libgssapi_krb5 LIBGSSAPI_NTLMDIR= ${_LIB_OBJTOP}/kerberos5/lib/libgssapi_ntlm LIBGSSAPI_SPNEGODIR= ${_LIB_OBJTOP}/kerberos5/lib/libgssapi_spnego LIBHDBDIR= ${_LIB_OBJTOP}/kerberos5/lib/libhdb LIBHEIMBASEDIR= ${_LIB_OBJTOP}/kerberos5/lib/libheimbase LIBHEIMIPCCDIR= ${_LIB_OBJTOP}/kerberos5/lib/libheimipcc LIBHEIMIPCSDIR= ${_LIB_OBJTOP}/kerberos5/lib/libheimipcs LIBHEIMNTLMDIR= ${_LIB_OBJTOP}/kerberos5/lib/libheimntlm LIBHX509DIR= ${_LIB_OBJTOP}/kerberos5/lib/libhx509 LIBKADM5CLNTDIR= ${_LIB_OBJTOP}/kerberos5/lib/libkadm5clnt LIBKADM5SRVDIR= ${_LIB_OBJTOP}/kerberos5/lib/libkadm5srv LIBKAFS5DIR= ${_LIB_OBJTOP}/kerberos5/lib/libkafs5 LIBKDCDIR= ${_LIB_OBJTOP}/kerberos5/lib/libkdc LIBKRB5DIR= ${_LIB_OBJTOP}/kerberos5/lib/libkrb5 LIBROKENDIR= ${_LIB_OBJTOP}/kerberos5/lib/libroken LIBWINDDIR= ${_LIB_OBJTOP}/kerberos5/lib/libwind +.endif LIBATF_CDIR= ${_LIB_OBJTOP}/lib/atf/libatf-c LIBATF_CXXDIR= ${_LIB_OBJTOP}/lib/atf/libatf-c++ LIBGMOCKDIR= ${_LIB_OBJTOP}/lib/googletest/gmock LIBGMOCK_MAINDIR= ${_LIB_OBJTOP}/lib/googletest/gmock_main LIBGTESTDIR= ${_LIB_OBJTOP}/lib/googletest/gtest LIBGTEST_MAINDIR= ${_LIB_OBJTOP}/lib/googletest/gtest_main LIBALIASDIR= ${_LIB_OBJTOP}/lib/libalias/libalias LIBBLACKLISTDIR= ${_LIB_OBJTOP}/lib/libblacklist LIBBLOCKSRUNTIMEDIR= ${_LIB_OBJTOP}/lib/libblocksruntime LIBBSNMPDIR= ${_LIB_OBJTOP}/lib/libbsnmp/libbsnmp LIBCASPERDIR= ${_LIB_OBJTOP}/lib/libcasper/libcasper LIBCAP_DNSDIR= ${_LIB_OBJTOP}/lib/libcasper/services/cap_dns LIBCAP_GRPDIR= ${_LIB_OBJTOP}/lib/libcasper/services/cap_grp LIBCAP_NETDIR= ${_LIB_OBJTOP}/lib/libcasper/services/cap_net LIBCAP_PWDDIR= ${_LIB_OBJTOP}/lib/libcasper/services/cap_pwd LIBCAP_SYSCTLDIR= ${_LIB_OBJTOP}/lib/libcasper/services/cap_sysctl LIBCAP_SYSLOGDIR= ${_LIB_OBJTOP}/lib/libcasper/services/cap_syslog LIBCBORDIR= ${_LIB_OBJTOP}/lib/libcbor LIBBSDXMLDIR= ${_LIB_OBJTOP}/lib/libexpat LIBFIDO2DIR= ${_LIB_OBJTOP}/lib/libfido2 LIBKVMDIR= ${_LIB_OBJTOP}/lib/libkvm LIBPTHREADDIR= ${_LIB_OBJTOP}/lib/libthr LIBMDIR= ${_LIB_OBJTOP}/lib/msun LIBFORMWDIR= ${_LIB_OBJTOP}/lib/ncurses/form LIBMENUWDIR= ${_LIB_OBJTOP}/lib/ncurses/menu LIBNCURSESWDIR= ${_LIB_OBJTOP}/lib/ncurses/ncurses LIBTINFOWDIR= ${_LIB_OBJTOP}/lib/ncurses/tinfo LIBPANELWDIR= ${_LIB_OBJTOP}/lib/ncurses/panel LIBCRYPTODIR= ${_LIB_OBJTOP}/secure/lib/libcrypto LIBSPLDIR= ${_LIB_OBJTOP}/cddl/lib/libspl LIBSSHDIR= ${_LIB_OBJTOP}/secure/lib/libssh LIBSSLDIR= ${_LIB_OBJTOP}/secure/lib/libssl LIBTEKENDIR= ${_LIB_OBJTOP}/sys/teken/libteken LIBEGACYDIR= ${_LIB_OBJTOP}/tools/build LIBLNDIR= ${_LIB_OBJTOP}/usr.bin/lex/lib LIBTERMCAPWDIR= ${LIBTINFOWDIR} .-include # Default other library directories to lib/libNAME. .for lib in ${_LIBRARIES} LIB${lib:tu}DIR?= ${OBJTOP}/lib/lib${lib} .endfor # Validate that listed LIBADD are valid. .for _l in ${LIBADD} .if empty(_LIBRARIES:M${_l}) _BADLIBADD+= ${_l} .endif .endfor .if !empty(_BADLIBADD) .error ${.CURDIR}: Invalid LIBADD used which may need to be added to ${_this:T}: ${_BADLIBADD} .endif # Sanity check that libraries are defined here properly when building them. .if defined(LIB) && ${_LIBRARIES:M${LIB}} != "" .if !empty(LIBADD) && \ (!defined(_DP_${LIB}) || ${LIBADD:O:u} != ${_DP_${LIB}:O:u}) .error ${.CURDIR}: Missing or incorrect _DP_${LIB} entry in ${_this:T}. Should match LIBADD for ${LIB} ('${LIBADD}' vs '${_DP_${LIB}}') .endif # Note that OBJTOP is not yet defined here but for the purpose of the check # it is fine as it resolves to the SRC directory. .if !defined(LIB${LIB:tu}DIR) || !exists(${SRCTOP}/${LIB${LIB:tu}DIR:S,^${OBJTOP}/,,}) .error ${.CURDIR}: Missing or incorrect value for LIB${LIB:tu}DIR in ${_this:T}: ${LIB${LIB:tu}DIR:S,^${OBJTOP}/,,} .endif .if ${_INTERNALLIBS:M${LIB}} != "" && !defined(LIB${LIB:tu}) .error ${.CURDIR}: Missing value for LIB${LIB:tu} in ${_this:T}. Likely should be: LIB${LIB:tu}?= $${LIB${LIB:tu}DIR}/lib${LIB}.a .endif .endif .endif # !target(____)