pkgsrc/security/mit-krb5/Makefile
adam 1357e82f77 mit-krb5: updated to 1.18
Major changes in 1.18:

Administrator experience
* Remove support for single-DES encryption types.
* Change the replay cache format to be more efficient and robust. Replay cache filenames using the new format end with ".rcache2" by default.
* setuid programs will automatically ignore environment variables that normally affect krb5 API functions, even if the caller does not use krb5_init_secure_context().
* Add an "enforce_ok_as_delegate" krb5.conf relation to disable credential forwarding during GSSAPI authentication unless the KDC sets the ok-as-delegate bit in the service ticket.
* Use the permitted_enctypes krb5.conf setting as the default value for default_tkt_enctypes and default_tgs_enctypes.

Developer experience
* Implement krb5_cc_remove_cred() for all credential cache types.
* Add the krb5_pac_get_client_info() API to get the client account name from a PAC.

Protocol evolution
* Add KDC support for S4U2Self requests where the user is identified by X.509 certificate. (Requires support for certificate lookup from a third-party KDB module.)
* Remove support for an old ("draft 9") variant of PKINIT.
* Add support for Microsoft NegoEx. (Requires one or more third-party GSS modules implementing NegoEx mechanisms.)

User experience
* Add support for "dns_canonicalize_hostname=fallback", causing host-based principal names to be tried first without DNS canonicalization, and again with DNS canonicalization if the un-canonicalized server is not found.
* Expand single-component hostnames in host-based principal names when DNS canonicalization is not used, adding the system's first DNS search path as a suffix. Add a "qualify_shortname" krb5.conf relation to override this suffix or disable expansion.
* Honor the transited-policy-checked ticket flag on application servers, eliminating the requirement to configure capaths on servers in some scenarios.

Code quality
* The libkrb5 serialization code (used to export and import krb5 GSS security contexts) has been simplified and made type-safe.
* The libkrb5 code for creating KRB-PRIV, KRB-SAFE, and KRB-CRED messages has been revised to conform to current coding practices.
* The test suite has been modified to work with macOS System Integrity Protection enabled.
* The test suite incorporates soft-pkcs11 so that PKINIT PKCS11 support can always be tested.


Major changes in 1.17.1:

This is a bug fix release.
* Fix a bug preventing "addprinc -randkey -kvno" from working in kadmin.
* Fix a bug preventing time skew correction from working when a KCM credential cache is used.



Major changes in 1.17:

Administrator experience
* A new Kerberos database module using the Lightning Memory-Mapped Database library (LMDB) has been added. The LMDB KDB module should be more performant and more robust than the DB2 module, and may become the default module for new databases in a future release.
* "kdb5_util dump" will no longer dump policy entries when specific principal names are requested.
* kpropd supports a --pid-file option to write a pid file at startup, when it is run in standalone mode.

Developer experience
* The new krb5_get_etype_info() API can be used to retrieve enctype, salt, and string-to-key parameters from the KDC for a client principal.
* The new GSS_KRB5_NT_ENTERPRISE_NAME name type allows enterprise principal names to be used with GSS-API functions.
* KDC and kadmind modules which call com_err() will now write to the log file in a format more consistent with other log messages.
* Programs which use large numbers of memory credential caches should perform better.

Protocol evolution
* The SPAKE pre-authentication mechanism is now supported. This mechanism protects against password dictionary attacks without requiring any additional infrastructure such as certificates. SPAKE is enabled by default on clients, but must be manually enabled on the KDC for this release.
* PKINIT freshness tokens are now supported. Freshness tokens can protect against scenarios where an attacker uses temporary access to a smart card to generate authentication requests for the future.
* Password change operations now prefer TCP over UDP, to avoid spurious error messages about replays when a response packet is dropped.
* The KDC now supports cross-realm S4U2Self requests when used with a third-party KDB module such as Samba's. The client code for cross-realm S4U2Self requests is also now more robust.

User experience
* The new ktutil addent -f flag can be used to fetch salt information from the KDC for password-based keys.
* The new kdestroy -p option can be used to destroy a credential cache within a collection by client principal name.
* The Kerberos man page has been restored, and documents the environment variables that affect programs using the Kerberos library.

Code quality
* Python test scripts now use Python 3.
* Python test scripts now display markers in verbose output, making it easier to find where a failure occurred within the scripts.
* The Windows build system has been simplified and updated to work with more recent versions of Visual Studio. A large volume of unused Windows-specific code has been removed. Visual Studio 2013 or later is now required.
2020-04-09 10:57:04 +00:00

73 lines
2 KiB
Makefile

# $NetBSD: Makefile,v 1.106 2020/04/09 10:57:04 adam Exp $
DISTNAME= krb5-1.18
PKGNAME= mit-${DISTNAME}
CATEGORIES= security
MASTER_SITES= http://web.mit.edu/kerberos/dist/krb5/${PKGVERSION_NOREV}/
MAINTAINER= tez@NetBSD.org
HOMEPAGE= https://web.mit.edu/kerberos/
COMMENT= MIT Kerberos 5 authentication system
MAKE_JOBS_SAFE= no
WRKSRC= ${WRKDIR}/${DISTNAME}/src
BUILD_TARGET= generate-files-mac all
.include "../../mk/bsd.prefs.mk"
CONFLICTS+= heimdal-[0-9]*
CONFLICTS+= kth-krb4-[0-9]*
USE_LANGUAGES= c c++
USE_LIBTOOL= yes
GNU_CONFIGURE= yes
USE_TOOLS+= autoconf gzip m4 msgfmt perl
.if ${OPSYS} == "SunOS"
USE_TOOLS+= bison
.else
USE_TOOLS+= yacc
.endif
# The actual KDC databases are stored in ${MIT_KRB5_STATEDIR}/krb5kdc.
MIT_KRB5_STATEDIR?= ${VARBASE}
FILES_SUBST+= MIT_KRB5_STATEDIR=${MIT_KRB5_STATEDIR}
BUILD_DEFS+= VARBASE
CONFIGURE_ARGS+= --localstatedir=${MIT_KRB5_STATEDIR}
CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
CONFIGURE_ARGS+= --disable-aesni
CONFIGURE_ARGS+= --disable-kdc-lookaside-cache
CONFIGURE_ARGS+= --disable-thread-support
CONFIGURE_ARGS+= --enable-shared
CONFIGURE_ARGS+= --enable-dns-for-realm
CONFIGURE_ARGS+= --enable-pkgsrc-libtool
CONFIGURE_ARGS+= --without-system-verto
CONFIGURE_ARGS+= --without-tcl
CONFIGURE_ENV+= BUILDLINK_PREFIX_OPENSSL=${BUILDLINK_PREFIX.openssl}
CONFIGURE_ENV+= DEFKTNAME=FILE:${PKG_SYSCONFDIR}/krb5.keytab
MAKE_ENV+= ROOT_USER=${ROOT_USER}
LIBS.SunOS= -lrt
OWN_DIRS_PERMS= ${MIT_KRB5_STATEDIR}/krb5kdc \
${REAL_ROOT_USER} ${REAL_ROOT_GROUP} 0700
RCD_SCRIPTS= kadmind kdc
INSTALLATION_DIRS= bin include/gssapi include/gssrpc ${PKGINFODIR} \
${PKGMANDIR}/man1 ${PKGMANDIR}/man5 \
${PKGMANDIR}/man7 ${PKGMANDIR}/man8 \
sbin share/examples/krb5 share/et \
share/examples/rc.d share/gnats \
lib/krb5/plugins/kdb lib/krb5/plugins/preauth \
lib/krb5/plugins/tls include/krb5 include/kadm5 \
lib/pkgconfig
.include "options.mk"
pre-configure:
cd ${WRKSRC} && autoconf -I ${WRKSRC} -f
.include "../../security/openssl/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"