Date: Mon, 16 Jun 2025 02:51:58 GMT From: Cy Schubert <cy@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 7e35117eb07f - main - Makefile: Hook MIT KRB5 into the build Message-ID: <202506160251.55G2pwx4063231@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=7e35117eb07f86c385656ecc6a2a92093be98131 commit 7e35117eb07f86c385656ecc6a2a92093be98131 Author: Cy Schubert <cy@FreeBSD.org> AuthorDate: 2025-06-11 02:57:54 +0000 Commit: Cy Schubert <cy@FreeBSD.org> CommitDate: 2025-06-16 02:49:37 +0000 Makefile: Hook MIT KRB5 into the build Add tests for MK_MITKRB5. If "yes" build MIT KRB5. If "no" build Heimdal. The default is MK_MITKRB5 = no, added by "krb5: Add build plumbing". At some point we will change the default to MK_MITKRB5 = yes. A ports exp-run will need to be successfully run first. Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D50815 --- Makefile.inc1 | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile.libcompat | 4 +++ tools/build/Makefile | 64 +++++++++++++++++++++++++++++++++++++ 3 files changed, 157 insertions(+) diff --git a/Makefile.inc1 b/Makefile.inc1 index 588f95654e99..97bd81f3263f 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -429,8 +429,12 @@ SUBDIR+=cddl .endif SUBDIR+=gnu include .if ${MK_KERBEROS} != "no" +.if ${MK_MITKRB5} != "no" +SUBDIR+=krb5 +.else SUBDIR+=kerberos5 .endif +.endif .if ${MK_RESCUE} != "no" SUBDIR+=rescue .endif @@ -2611,6 +2615,22 @@ ${_bt}-usr.bin/mkcsmapper: ${_bt}-usr.bin/yacc ${_bt_lex_depend} .endif .if ${MK_KERBEROS} != "no" +.if ${MK_MITKRB5} != "no" +_kerberos5_bootstrap_tools= \ + krb5/util/build-tools \ + krb5/util/compile_et \ + krb5/util/support \ + krb5/util/et \ + lib/ncurses/tinfo \ + lib/libedit \ + krb5/util/ss \ + krb5/util/profile \ + krb5/util/verto +# krb5/include \ +# krb5/lib/crypto \ +# krb5/lib/krb5 \ +# krb5/lib/gssapi +.else _kerberos5_bootstrap_tools= \ kerberos5/tools/make-roken \ kerberos5/lib/libroken \ @@ -2619,6 +2639,7 @@ _kerberos5_bootstrap_tools= \ kerberos5/tools/slc \ usr.bin/compile_et +.endif .ORDER: ${_kerberos5_bootstrap_tools:C/^/${_bt}-/g} .for _tool in ${_kerberos5_bootstrap_tools} ${_bt}-${_tool}: ${_bt}-usr.bin/yacc ${_bt_lex_depend} @@ -3185,6 +3206,8 @@ _prebuild_libs= ${_kerberos5_lib_libasn1} \ ${_kerberos5_lib_libhx509} ${_kerberos5_lib_libkrb5} \ ${_kerberos5_lib_libroken} \ ${_kerberos5_lib_libwind} \ + ${_krb5_util_et} \ + ${_krb5_util_profile} \ lib/libbz2 ${_libcom_err} lib/libcrypt \ lib/libc++ \ lib/libelf lib/libexpat \ @@ -3197,6 +3220,18 @@ _prebuild_libs= ${_kerberos5_lib_libasn1} \ ${_lib_casper} \ lib/ncurses/tinfo \ lib/ncurses/ncurses \ + lib/libedit \ + ${_krb5_util_ss} \ + ${_krb5_util_support} \ + ${_krb5_util_verto} \ + ${_krb5_lib_krb5} \ + ${_krb5_lib_crypto} \ + ${_krb5_lib_gssapikrb5} \ + ${_krb5_lib_gssrpc} \ + ${_krb5_lib_kdb5} \ + ${_krb5_lib_krad} \ + ${_krb5_lib_kadm5srvmit} \ + ${_krb5_lib_kadm5clntmit} \ lib/libpam/libpam lib/libthr \ ${_lib_libradius} lib/libsbuf lib/libtacplus \ lib/libgeom \ @@ -3236,6 +3271,8 @@ _lib_libradius= lib/libradius lib/ncurses/ncurses__L: lib/ncurses/tinfo__L +lib/libedit__L: lib/ncurses/ncurses__L + .if ${MK_OFED} != "no" _prebuild_libs+= \ lib/ofed/libibverbs \ @@ -3335,17 +3372,45 @@ secure/lib/libssh__L: lib/libz__L secure/lib/libcrypto__L lib/libcrypt__L .if ${MK_LDNS} != "no" secure/lib/libssh__L: lib/libldns__L .endif + .if ${MK_GSSAPI} != "no" && ${MK_KERBEROS_SUPPORT} != "no" +.if ${MK_MITKRB5} != "no" +secure/lib/libssh__L: lib/libgssapi__L krb5/lib/krb5__L \ + krb5/util/et__L lib/libmd__L krb5/util/support__L +.else secure/lib/libssh__L: lib/libgssapi__L kerberos5/lib/libkrb5__L \ kerberos5/lib/libhx509__L kerberos5/lib/libasn1__L lib/libcom_err__L \ lib/libmd__L kerberos5/lib/libroken__L .endif .endif .endif +.endif _secure_lib= secure/lib .endif .if ${MK_KERBEROS} != "no" +.if ${MK_MITKRB5} != "no" +krb5/util/et__L: krb5/util/support__L +krb5/util/profile__L: krb5/util/et__L krb5/util/support__L +krb5/lib/crypto__L: krb5/util/et__L krb5/util/support__L \ + secure/lib/libcrypto__L +krb5/lib/gssapi__L: krb5/lib/krb5__L krb5/lib/crypto__L krb5/util/et__L \ + krb5/util/support__L +krb5/lib/kadm5clnt__L: krb5/util/profile__L krb5/lib/rpc__L \ + krb5/lib/gssapi__L krb5/lib/krb5__L krb5/lib/crypto__L \ + krb5/util/support__L krb5/util/et__L +krb5/lib/kadm5srv__L: krb5/util/profile__L krb5/lib/rpc__L \ + krb5/lib/gssapi__L krb5/lib/kdb__L krb5/lib/krb5 krb5/lib/crypto__L \ + krb5/util/support__L krb5/util/et__L +krb5/lib/kdb__L: krb5/util/profile__L krb5/lib/rpc__L krb5/lib/krb5__L \ + krb5/lib/crypto__L krb5/util/et__L krb5/util/support__L krb5/lib/gssapi__L +krb5/lib/krad__L: krb5/lib/krb5__L krb5/lib/crypto__L krb5/util/et__L \ + krb5/util/support__L krb5/util/verto__L +krb5/lib/krb5__L: krb5/util/profile__L krb5/lib/crypto__L krb5/util/et__L \ + krb5/util/support__L +krb5/lib/rpc__L: krb5/lib/gssapi__L krb5/lib/krb5__L krb5/lib/crypto__L \ + krb5/util/et__L krb5/util/support__L +.else kerberos5/lib/libasn1__L: lib/libcom_err__L kerberos5/lib/libroken__L kerberos5/lib/libhdb__L: kerberos5/lib/libasn1__L lib/libcom_err__L \ kerberos5/lib/libkrb5__L kerberos5/lib/libroken__L \ @@ -3363,6 +3428,7 @@ kerberos5/lib/libwind__L: kerberos5/lib/libroken__L lib/libcom_err__L kerberos5/lib/libheimbase__L: lib/libthr__L kerberos5/lib/libheimipcc__L: kerberos5/lib/libroken__L kerberos5/lib/libheimbase__L lib/libthr__L .endif +.endif lib/libsqlite3__L: lib/libthr__L @@ -3371,6 +3437,28 @@ _lib_libgssapi= lib/libgssapi .endif .if ${MK_KERBEROS} != "no" +.if ${MK_MITKRB5} != "no" +_krb5_util= krb5/util +_krb5_util_build_tools= krb5/util/build-tools +_krb5_util_compileet= krb5/util/compile_et +_krb5_util_et= krb5/util/et +_krb5_util_profile= krb5/util/profile +_krb5_util_ss= krb5/util/ss +_krb5_util_support= krb5/util/support +_krb5_util_verto= krb5/util/verto +_krb5_lib= krb5/lib +_krb5_lib_krb5= krb5/lib/krb5 +_krb5_lib_kdb5= krb5/lib/kdb +_krb5_lib_crypto= krb5/lib/crypto +_krb5_lib_gssapikrb5= krb5/lib/gssapi +_krb5_lib_gssrpc= krb5/lib/rpc +_krb5_lib_apputils= krb5/lib/apputils +_krb5_lib_kadm5clntmit= krb5/lib/kadm5clnt +_krb5_lib_kadm5srvmit= krb5/lib/kadm5srv +_krb5_lib_kadm_common= krb5/lib/kadm_common +_krb5_lib_kproputil= krb5/lib/kprop_util +_krb5_lib_krad= krb5/lib/krad +.else _kerberos5_lib= kerberos5/lib _kerberos5_lib_libasn1= kerberos5/lib/libasn1 _kerberos5_lib_libhdb= kerberos5/lib/libhdb @@ -3384,6 +3472,7 @@ _kerberos5_lib_libheimipcc= kerberos5/lib/libheimipcc _kerberos5_lib_libwind= kerberos5/lib/libwind _libcom_err= lib/libcom_err .endif +.endif .if ${MK_NIS} != "no" _lib_libypclnt= lib/libypclnt diff --git a/Makefile.libcompat b/Makefile.libcompat index 5675fa5eaff2..82ef4e9df0ac 100644 --- a/Makefile.libcompat +++ b/Makefile.libcompat @@ -91,7 +91,11 @@ _LC_LIBDIRS.yes= lib _LC_LIBDIRS.yes+= gnu/lib _LC_LIBDIRS.${MK_CDDL:tl}+= cddl/lib _LC_LIBDIRS.${MK_CRYPT:tl}+= secure/lib +.if ${MK_MITKRB5} != "no" +_LC_LIBDIRS.${MK_KERBEROS:tl}+= krb5/lib +.else _LC_LIBDIRS.${MK_KERBEROS:tl}+= kerberos5/lib +.endif .if ${MK_FILE} != "no" _libmagic= lib/libmagic diff --git a/tools/build/Makefile b/tools/build/Makefile index a9f4a84e6f7c..40ac498bfbb4 100644 --- a/tools/build/Makefile +++ b/tools/build/Makefile @@ -1,9 +1,18 @@ .PATH: ${.CURDIR}/../../include +# XXX We need to include this to avoid installing MIT KRB5 includes on +# XXX Heimdal systems. Remove the following line when Heimdal is finally +# XXX removed. +.include <src.opts.mk> + LIB= egacy SRC= INCSGROUPS= INCS SYSINCS CASPERINC UFSINCS FFSINCS MSDOSFSINCS DISKINCS INCSGROUPS+= MACHINESYSINCS RPCINCS +.if ${MK_MITKRB5} != "no" +INCSGROUPS+= EDITINC K5GSSRPCINC GSSAPIINC +INCSGROUPS+= K5GSSAPIINC K52GSSAPIINC KRB5INC +.endif INCS= SYSINCSDIR= ${INCLUDEDIR}/sys @@ -15,6 +24,16 @@ MSDOSFSINCSDIR= ${INCLUDEDIR}/fs/msdosfs DISKINCSDIR= ${INCLUDEDIR}/sys/disk MACHINESYSINCSDIR= ${INCLUDEDIR}/machine RPCINCSDIR= ${INCLUDEDIR}/rpc +.if ${MK_MITKRB5} != "no" +EDITINCDIR= ${INCLUDEDIR}/edit/readline +K5GSSRPCINCDIR= ${INCLUDEDIR}/gssrpc +GSSAPIINCDIR= ${INCLUDEDIR}/gssapi +K5GSSAPIINCDIR= ${INCLUDEDIR}/gssapi_krb5 +K52GSSAPIINCDIR=${INCLUDEDIR}/gssapi_krb5/gssapi +KRB5INCDIR= ${INCLUDEDIR}/krb5 +KDB5INCDIR= ${INCLUDEDIR}/kdb5 +KADM5INCDIR= ${INCLUDEDIR}/kadm5 +.endif BOOTSTRAPPING?= 0 @@ -256,6 +275,51 @@ CLEANFILES+= subr_capability.c CASPERINC+= ${SRCTOP}/lib/libcasper/services/cap_fileargs/cap_fileargs.h CASPERINC+= ${SRCTOP}/lib/libcasper/services/cap_net/cap_net.h +.if ${MK_MITKRB5} != "no" +EDITINC+= ${SRCTOP}/contrib/libedit/readline/readline.h +K5GSSRPCINC+= ${SRCTOP}/crypto/krb5/src/include/gssrpc/auth.h +K5GSSRPCINC+= ${SRCTOP}/crypto/krb5/src/include/gssrpc/auth_gss.h +K5GSSRPCINC+= ${SRCTOP}/crypto/krb5/src/include/gssrpc/auth_gssapi.h +K5GSSRPCINC+= ${SRCTOP}/crypto/krb5/src/include/gssrpc/auth_unix.h +K5GSSRPCINC+= ${SRCTOP}/crypto/krb5/src/include/gssrpc/clnt.h +K5GSSRPCINC+= ${SRCTOP}/crypto/krb5/src/include/gssrpc/netdb.h +K5GSSRPCINC+= ${SRCTOP}/crypto/krb5/src/include/gssrpc/pmap_clnt.h +K5GSSRPCINC+= ${SRCTOP}/crypto/krb5/src/include/gssrpc/pmap_prot.h +K5GSSRPCINC+= ${SRCTOP}/crypto/krb5/src/include/gssrpc/pmap_rmt.h +K5GSSRPCINC+= ${SRCTOP}/crypto/krb5/src/include/gssrpc/rpc_msg.h +K5GSSRPCINC+= ${SRCTOP}/crypto/krb5/src/include/gssrpc/rpc.h +K5GSSRPCINC+= ${SRCTOP}/crypto/krb5/src/include/gssrpc/svc_auth.h +K5GSSRPCINC+= ${SRCTOP}/crypto/krb5/src/include/gssrpc/svc.h +K5GSSRPCINC+= ${SRCTOP}/krb5/include/gssrpc/types.h +K5GSSRPCINC+= ${SRCTOP}/crypto/krb5/src/include/gssrpc/xdr.h +K5GSSRPCINC+= ${SRCTOP}/crypto/krb5/src/include/gssrpc/xdr.h +GSSAPIINC+= ${SRCTOP}/crypto/krb5/src/lib/gssapi/krb5/gssapi_krb5.h +GSSAPIINC+= ${SRCTOP}/crypto/krb5/src/lib/gssapi/generic/gssapi_alloc.h +GSSAPIINC+= ${SRCTOP}/crypto/krb5/src/lib/gssapi/generic/gssapi_generic.h +GSSAPIINC+= ${SRCTOP}/crypto/krb5/src/lib/gssapi/generic/gssapi_ext.h +K5GSSAPIINC+= ${SRCTOP}/crypto/krb5/src/include/gssapi.h +KRB5INC+= ${SRCTOP}/crypto/krb5/src/include/krb5/ccselect_plugin.h +KRB5INC+= ${SRCTOP}/crypto/krb5/src/include/krb5/certauth_plugin.h +KRB5INC+= ${SRCTOP}/crypto/krb5/src/include/krb5/clpreauth_plugin.h +KRB5INC+= ${SRCTOP}/crypto/krb5/src/include/krb5/hostrealm_plugin.h +KRB5INC+= ${SRCTOP}/crypto/krb5/src/include/krb5/kadm5_auth_plugin.h +KRB5INC+= ${SRCTOP}/crypto/krb5/src/include/krb5/kadm5_hook_plugin.h +KRB5INC+= ${SRCTOP}/crypto/krb5/src/include/krb5/kdcpolicy_plugin.h +KRB5INC+= ${SRCTOP}/crypto/krb5/src/include/krb5/kdcpreauth_plugin.h +KRB5INC+= ${SRCTOP}/crypto/krb5/src/include/krb5/localauth_plugin.h +KRB5INC+= ${SRCTOP}/crypto/krb5/src/include/krb5/locate_plugin.h +KRB5INC+= ${SRCTOP}/crypto/krb5/src/include/krb5/plugin.h +KRB5INC+= ${SRCTOP}/crypto/krb5/src/include/krb5/preauth_plugin.h +KRB5INC+= ${SRCTOP}/crypto/krb5/src/include/krb5/pwqual_plugin.h +INCS+= ${SRCTOP}/crypto/krb5/src/include/gssapi.h +INCS+= ${SRCTOP}/crypto/krb5/src/include/kdb.h +INCS+= ${SRCTOP}/crypto/krb5/src/include/krb5.h +INCS+= ${SRCTOP}/crypto/krb5/src/include/krad.h +INCS+= ${SRCTOP}/crypto/krb5/src/util/et/com_err.h +INCS+= ${SRCTOP}/crypto/krb5/src/util/verto/verto-module.h +INCS+= ${SRCTOP}/crypto/krb5/src/util/verto/verto.h +.endif + .if empty(SRCS) SRCS= dummy.c .endif
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202506160251.55G2pwx4063231>