Re: On/for main [so: 15], ftp/curl 's config: "ld: error: unable to find library -lgssapi" (via poudriere-devel) [jail world missing /usr/libexec/krb5kdc]

Mark Millard <[email protected]>
Newsgroups gmane.os.freebsd.devel.ports,gmane.os.freebsd.devel.pkgbase,gmane.os.freebsd.current
Message-ID <[email protected]>
On Aug 10, 2025, at 22:31, Mark Millard <[email protected]> wrote:

> For the most part my attempt to build my normal packages
> has worked after my system and ports-tree upgrades.
> 
> But not ftp/curl . That, in turn, blocks a lot of other
> packages from being built.
> 
> 
> # ~/fbsd-based-on-what-commit.sh -C /usr/ports/
> 78939953d5e7 (HEAD -> main, freebsd/main, freebsd/HEAD) databases/py-pg8000: Update to 1.31.4
> Author:     Wen Heping <[email protected]>
> Commit:     Wen Heping <[email protected]>
> CommitDate: 2025-08-11 02:14:14 +0000
> branch: main
> merge-base: 78939953d5e7bfcdcbd3bccb789531be3637c6dc
> merge-base: CommitDate: 2025-08-11 02:14:14 +0000
> n715497 (--first-parent --count for merge-base)
> 
> # uname -apKU
> FreeBSD 7950X3D-ZFS 15.0-PRERELEASE FreeBSD 15.0-PRERELEASE main-n279519-7a9834041c91 GENERIC-NODEBUG amd64 amd64 1500059 1500059
> 
> ftp/curl fails for:
> 
> configure:4974: checking whether the C compiler works
> configure:4996: cc -I/usr/include -O2 -pipe  -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -I/usr/include -I/usr/include -isystem /usr/local/include    -L/usr/lib -L/usr/l
> ib -L/usr/local/lib  conftest.c -lkrb5 -lgssapi -lgssapi_krb5 -lkrb5 -lgssapi -lgssapi_krb5 >&5
> ld: error: unable to find library -lgssapi
> ld: error: unable to find library -lgssapi
> cc: error: linker command failed with exit code 1 (use -v to see invocation)

This turns out to be tied to poudriere(-devel)/pkgbase
not ending up with /usr/libexec/krb5kdc in the poudriere
jail worlds, just in the overall system:

# find -s / -name 'krb5kdc' -print
/usr/libexec/krb5kdc
/usr/local/sbin/krb5kdc
/usr/local/var/krb5kdc
/usr/local/var/run/krb5kdc

That is despite the context having:

# poudriere jail -l
JAILNAME         VERSION      OSVERSION ARCH  METHOD  TIMESTAMP           PATH
. . .
main-amd64       15.0-CURRENT           amd64 pkgbase 2025-08-09 20:27:14 /usr/local/poudriere/jails/main-amd64
. . .

# cd /usr/local/poudriere/jails/main-amd64/usr/libexec/

# ls -lodT *
-r-xr-xr-x  1 root wheel uarch  15960 Aug  9 07:04:07 2025 atrun
-r-xr-xr-x  1 root wheel uarch   2749 Aug  9 13:33:53 2025 blacklistd-helper
-r-xr-xr-x  1 root wheel uarch  55112 Aug  9 13:33:53 2025 bootpd
-r-xr-xr-x  1 root wheel uarch  15784 Aug  9 13:33:53 2025 bootpgw
drwxr-xr-x  2 root wheel uarch     36 Aug  9 20:27:09 2025 bsdinstall
-r-xr-xr-x  1 root wheel uarch  10864 Aug  9 13:33:53 2025 comsat
-r-xr-sr-x  1 root mail  uarch  67792 Aug  9 07:04:07 2025 dma
-r-sr-xr--  1 root mail  uarch   8384 Aug  9 07:04:07 2025 dma-mbox-create
drwxr-xr-x  2 root wheel uarch     87 Aug  9 20:27:09 2025 dwatch
-r-xr-xr-x  1 root wheel uarch  11280 Aug  9 13:33:53 2025 fingerd
-r-xr-xr-x  1 root wheel uarch 307216 Aug  9 13:33:53 2025 flua
-r-xr-xr-x  1 root wheel uarch 112784 Aug  9 07:04:07 2025 ftpd
drwxr-xr-x  2 root wheel uarch     11 Aug  9 20:27:09 2025 fwget
-r-xr-xr-x  1 root wheel uarch  37424 Aug  9 13:33:53 2025 getty
drwxr-xr-x  2 root wheel uarch      7 Aug  9 20:27:09 2025 hyperv
drwxr-xr-x  2 root wheel uarch      3 Aug  9 20:27:14 2025 kgdb
lrwxr-xr-x  1 root wheel uarch     25 Aug  9 13:33:53 2025 ld-elf.so.1 -> ../../libexec/ld-elf.so.1
lrwxr-xr-x  1 root wheel uarch     27 Aug  9 13:33:53 2025 ld-elf32.so.1 -> ../../libexec/ld-elf32.so.1
-r-xr-xr-x  1 root wheel uarch   8232 Aug  9 13:33:53 2025 locate.bigram
-r-xr-xr-x  1 root wheel uarch   8944 Aug  9 13:33:53 2025 locate.code
-r-xr-xr-x  1 root wheel uarch   2319 Aug  9 13:33:53 2025 locate.concatdb
-r-xr-xr-x  1 root wheel uarch   2849 Aug  9 13:33:53 2025 locate.mklocatedb
-r-xr-xr-x  1 root wheel uarch   3501 Aug  9 13:33:53 2025 locate.updatedb
drwxr-xr-x  3 root wheel uarch      4 Aug  9 20:27:09 2025 lpr
-r-xr-xr-x  1 root wheel uarch  86272 Aug  9 07:04:07 2025 mail.local
-r-xr-xr-x  1 root wheel uarch   2204 Aug  9 13:33:53 2025 makewhatis.local
-r-xr-xr-x  1 root wheel uarch  11496 Aug  9 13:33:53 2025 mknetid
-r-xr-xr-x  1 root wheel uarch  16112 Aug  9 13:33:53 2025 ntalkd
-r-xr-xr-x  1 root wheel uarch  12707 Aug  8 03:17:51 2025 nuageinit
-r-xr-xr-x  1 root wheel uarch  14424 Aug  9 13:33:53 2025 phttpget
-r-xr-xr-x  1 root wheel uarch  17848 Aug  9 13:33:53 2025 pppoed
-r-xr-xr-x  1 root wheel uarch  27192 Aug  9 13:33:53 2025 rbootd
-r-xr-xr-x  1 root wheel uarch  11368 Aug  9 13:33:53 2025 revnetgroup
-r-xr-xr-x  1 root wheel uarch   9680 Aug  9 13:33:53 2025 rpc.rquotad
-r-xr-xr-x  1 root wheel uarch  13488 Aug  9 13:33:53 2025 rpc.rstatd
-r-xr-xr-x  1 root wheel uarch  10144 Aug  9 13:33:53 2025 rpc.rusersd
-r-xr-xr-x  1 root wheel uarch   8784 Aug  9 13:33:53 2025 rpc.rwalld
-r-xr-xr-x  1 root wheel uarch   7656 Aug  9 13:33:53 2025 rpc.sprayd
-r-xr-xr-x  1 root wheel uarch   4275 Aug  9 13:33:53 2025 save-entropy
drwxr-xr-x  2 root wheel uarch      3 Aug  9 20:27:10 2025 sendmail
-r-xr-xr-x  1 root wheel uarch  63680 Aug  9 09:01:57 2025 sftp-server
-r-xr-xr-x  1 root wheel uarch  70792 Aug  9 07:04:07 2025 smrsh
-r-sr-xr-x  1 root wheel uarch  97976 Aug  9 09:01:57 2025 ssh-keysign
-r-xr-xr-x  1 root wheel uarch  49504 Aug  9 09:01:57 2025 ssh-pkcs11-helper
-r-xr-xr-x  1 root wheel uarch  52480 Aug  9 09:01:57 2025 ssh-sk-helper
-r-xr-xr-x  1 root wheel uarch 394360 Aug  9 09:01:57 2025 sshd-session
-r-xr-xr-x  1 root wheel uarch   6600 Aug  9 13:33:53 2025 tcpd
-r-xr-xr-x  1 root wheel uarch 102560 Aug  9 07:04:07 2025 tftp-proxy
-r-xr-xr-x  1 root wheel uarch  39152 Aug  9 13:33:53 2025 tftpd
-r-sr-xr-x  1 root wheel uarch   5736 Aug  9 13:33:53 2025 ulog-helper
-r-xr-xr-x  1 root wheel uarch    863 Aug  9 07:04:07 2025 yppwupdate
-r-xr-xr-x  1 root wheel uarch  24944 Aug  9 07:04:07 2025 ypxfr
drwxr-xr-x  2 root wheel uarch      4 Aug  9 20:27:14 2025 zfs

Mk/Uses/gssapi.mk has the logic:

.      if exists(/usr/libexec/krb5kdc)
         # Base has MIT KRB5 installed
KRB5_HOME?=	/usr
GSSAPIBASEDIR=	${KRB5_HOME}
GSSAPILIBDIR=	${GSSAPIBASEDIR}/lib
GSSAPIINCDIR=	${GSSAPIBASEDIR}/include
_HEADERS+=	gssapi/gssapi.h gssapi/gssapi_krb5.h krb5/krb5.h
GSSAPICPPFLAGS=	-I"${GSSAPIINCDIR}"
GSSAPILIBS=	-lkrb5 -lgssapi_krb5
GSSAPILDFLAGS=
.      else
         # Base has Heimdal KRB5 installed
HEIMDAL_HOME=	/usr
GSSAPIBASEDIR=	${HEIMDAL_HOME}
GSSAPILIBDIR=	${GSSAPIBASEDIR}/lib
GSSAPIINCDIR=	${GSSAPIBASEDIR}/include
_HEADERS+=	gssapi/gssapi.h gssapi/gssapi_krb5.h krb5.h
GSSAPICPPFLAGS=	-I"${GSSAPIINCDIR}"
GSSAPILIBS=	-lkrb5 -lgssapi -lgssapi_krb5
GSSAPILDFLAGS=
.      endif

> # find -s /usr/lib*/ /lib*/ -name 'libgssapi*' -print
> /usr/lib/debug/usr/lib/libgssapi_krb5.so.122.debug
> /usr/lib/debug/usr/lib32/libgssapi_krb5.so.122.debug
> /usr/lib/libgssapi_krb5.a
> /usr/lib/libgssapi_krb5.so
> /usr/lib/libgssapi_krb5.so.122
> /usr/lib32/libgssapi_krb5.a
> /usr/lib32/libgssapi_krb5.so
> /usr/lib32/libgssapi_krb5.so.122
> 
> 
> 
> I use default options for this, the log showing:
> 
> ---Begin OPTIONS List---
> ===> The following configuration options are available for curl-8.15.0:
>     ALTSVC=on: HTTP Alternative Services support
>     COOKIES=on: Cookies support
>     CURL_DEBUG=off: cURL debug memory tracking
>     DEBUG=off: Build with debugging support
>     DOCS=on: Build and/or install documentation
>     EXAMPLES=on: Build and/or install examples
>     IDN=on: International Domain Names support
>     IPV6=on: IPv6 protocol support
>     LIBUV=off: Event-based tests
>     NTLM=on: NTLM authentication support
>     PROXY=on: Proxy support
>     PSL=on: Public Suffix List support
>     STATIC=on: Build static executables and/or libraries
>     TLS_SRP=on: TLS-SRP (Secure Remote Password) support
> ====> Options available for the group COMPRESSION
>     BROTLI=on: Brotli compression support
>     ZSTD=on: Zstandard compression support
> ====> Options available for the group PROTOCOL
>     DICT=on: DICT (RFC 2229) support
>     FTP=on: FTP protocol support
>     GOPHER=on: Gopher protocol support
>     HTTP=on: HTTP/HTTPS support
>     HTTP2=on: HTTP/2 support (requires HTTP)
>     IMAP=on: IMAP/IMAPS support
>     IPFS=on: IPFS support
>     LDAP=off: LDAP protocol support
>     LDAPS=off: LDAP protocol over SSL support (requires GNUTLS/OPENSSL/WOLFSSL)
>     LIBSSH=off: SCP/SFTP support via libssh (requires OPENSSL)
>     LIBSSH2=on: SCP/SFTP support via libssh2 (requires OPENSSL)
>     MQTT=on: MQTT support
>     POP3=on: POP3/POP3S support
>     RTSP=on: Real Time Streaming Protocol (RTSP) support
>     SMB=on: SMB/CIFS support
>     SMTP=on: SMTP/SMTPS support
>     TELNET=on: Telnet support
>     TFTP=on: TFTP support
>     WEBSOCKET=on: WebSocket protocol support
> ====> GSSAPI Security API support: you have to select exactly one of them
>     GSSAPI_BASE=on: GSSAPI support via base system (needs Kerberos)
>     GSSAPI_HEIMDAL=off: GSSAPI support via security/heimdal
>     GSSAPI_MIT=off: GSSAPI support via security/krb5
>     GSSAPI_NONE=off: Disable GSSAPI support
> ====> DNS resolving options: you have to select exactly one of them
>     CARES=off: Asynchronous DNS resolution via c-ares
>     THREADED_RESOLVER=on: Threaded DNS resolver
> ====> SSL protocol support: you can only select none or one of them
>     GNUTLS=off: SSL/TLS support via GnuTLS
>     OPENSSL=on: SSL/TLS support via OpenSSL
>     WOLFSSL=off: SSL/TLS support via wolfSSL
> ===> Use 'make config' to modify these settings
> ---End OPTIONS List---




===
Mark Millard
marklmi at yahoo.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.