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]
Date: Mon, 11 Aug 2025 06:13:09 UTC
On Aug 10, 2025, at 22:31, Mark Millard <marklmi@yahoo.com> 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 <wen@FreeBSD.org>
> Commit: Wen Heping <wen@FreeBSD.org>
> 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