Hello!

Looks like something missing after the build with MIT Kerberos.

got this with devel/gvfs build:

==
In file included from ../daemon/pty_open.c:70:
/usr/include/util.h:36:10: fatal error: 'k5-int.h' file not found
   36 | #include "k5-int.h"
      |          ^~~~~~~~~~
1 error generated.
==

Indeed, k5-int.h is missing in /usr/include :(

On 16.06.2025 05:51, Cy Schubert wrote:
The branch main has been updated by cy:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=7e35117eb07f86c385656ecc6a2a92093be98131

commit 7e35117eb07f86c385656ecc6a2a92093be98131
Author:     Cy Schubert <c...@freebsd.org>
AuthorDate: 2025-06-11 02:57:54 +0000
Commit:     Cy Schubert <c...@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


--
Sincerely,
Dima (flu...@freebsd.org, https://t.me/FluffyBSD, 
@fluffy:matrix-dev.freebsd.org)
(desktop, kde, x11, office, ports-secteam)@FreeBSD team

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to