Page MenuHomeFreeBSD

mit-krb5.pc: Add missing -lkrb5profile
ClosedPublic

Authored by igoro on Sat, Oct 4, 10:32 PM.
Tags
None
Referenced Files
F131983981: D52910.diff
Sun, Oct 12, 5:18 PM
Unknown Object (File)
Tue, Oct 7, 5:02 PM
Unknown Object (File)
Tue, Oct 7, 4:12 PM
Unknown Object (File)
Sun, Oct 5, 3:52 PM
Unknown Object (File)
Sun, Oct 5, 7:57 AM
Unknown Object (File)
Sun, Oct 5, 6:04 AM
Unknown Object (File)
Sun, Oct 5, 5:12 AM
Unknown Object (File)
Sun, Oct 5, 4:14 AM
Subscribers

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

igoro requested review of this revision.Sat, Oct 4, 10:32 PM

This seems to be revealed with the recent switch to MIT version. For example, 15-CURRENT back in March had this:

# ldd /usr/lib/libkrb5.so
/usr/lib/libkrb5.so:
        libasn1.so.11 => /usr/lib/libasn1.so.11 (0x36e32d570000)
        libcom_err.so.5 => /usr/lib/libcom_err.so.5 (0x36e309956000)
        libcrypt.so.5 => /lib/libcrypt.so.5 (0x36e30a44a000)
        libcrypto.so.30 => /lib/libcrypto.so.30 (0x36e30a600000)
        libhx509.so.11 => /usr/lib/libhx509.so.11 (0x36e339780000)
        libroken.so.11 => /usr/lib/libroken.so.11 (0x36e30ac5a000)
        libwind.so.11 => /usr/lib/libwind.so.11 (0x36e33bec0000)
        libheimbase.so.11 => /usr/lib/libheimbase.so.11 (0x36e30834e000)
        libprivateheimipcc.so.11 => /usr/lib/libprivateheimipcc.so.11 (0x36e30ba76000)
        libc.so.7 => /lib/libc.so.7 (0x36e308e00000)
        libmd.so.7 => /lib/libmd.so.7 (0x36e30c885000)
        libthr.so.3 => /lib/libthr.so.3 (0x36e30d741000)
        libsys.so.7 => /lib/libsys.so.7 (0x36e318150000)

Now 15.0-ALPHA4 has this lib:

# ldd /usr/lib/libkrb5.so
/usr/lib/libkrb5.so:
        libkrb5profile.so.122 => /usr/lib/libkrb5profile.so.122 (0x12673284f000)
        libk5crypto.so.122 => /usr/lib/libk5crypto.so.122 (0x126733923000)
        libcom_err.so.122 => /usr/lib/libcom_err.so.122 (0x1267340f3000)
        libkrb5support.so.122 => /usr/lib/libkrb5support.so.122 (0x12673215e000)
        libc.so.7 => /lib/libc.so.7 (0x126733400000)
        libcrypto.so.35 => /lib/libcrypto.so.35 (0x126736200000)
        libthr.so.3 => /lib/libthr.so.3 (0x126735808000)
        libsys.so.7 => /lib/libsys.so.7 (0x12673a870000)

The upcoming new net-mgmt/simplomon port (https://reviews.freebsd.org/D49277) was fine before, but recently it has faced this:

...
[100% 40/40] /usr/local/llvm18/bin/clang++  -o simplomon simplomon.p/simplomon.cc.o simplomon.p/notifiers.cc.o simplomon.p/minicurl.cc.o simplomon.p/dnsmon.cc.o simplomon.p/record-types.cc.o simplomon.p/dnsmessages.cc.o simplomon.p/dns-storage.cc.o simplomon.p/netmon.cc.o simplomon.p/luabridge.cc.o simplomon.p/webservice.cc.o simplomon.p/support.cc.o simplomon.p/promon.cc.o simplomon.p/mailmon.cc.o simplomon.p/nonblocker.cc.o -Wl,--as-needed -Wl,--no-undefined -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -Wl,--start-group subprojects/simplesockets/libsimplesockets.a subprojects/sqlitewriter/libsqlitewriter.a -L/usr/local/lib -lfmt -pthread /usr/lib/libssl.a /usr/lib/libcrypto.a /usr/lib/libz.a -L/usr/local/lib -lbrotlicommon -L/usr/local/lib -lbrotlidec -lbrotlicommon -L/usr/local/lib -lbrotlienc -lbrotlicommon /usr/local/lib/liblua-5.3.a -lm /usr/local/lib/libcurl.a /usr/lib/libgssapi_krb5.a /usr/local/lib/libzstd.a /usr/lib/libkrb5.a /usr/lib/libk5crypto.a /usr/lib/libcom_err.a /usr/lib/libkrb5support.a /usr/local/lib/libpsl.a /usr/local/lib/libidn2.a -R/usr/local/lib /usr/local/lib/libnghttp2.a -L/usr/local/lib -L/lib -lssh2 -lbrotlidec -lbrotlicommon -lunistring -L/usr/local/lib -lsqlite3 -L/usr/local/lib -lfmt -L/usr/local/lib -lsqlite3 -Wl,--end-group
FAILED: simplomon
/usr/local/llvm18/bin/clang++  -o simplomon simplomon.p/simplomon.cc.o simplomon.p/notifiers.cc.o simplomon.p/minicurl.cc.o simplomon.p/dnsmon.cc.o simplomon.p/record-types.cc.o simplomon.p/dnsmessages.cc.o simplomon.p/dns-storage.cc.o simplomon.p/netmon.cc.o simplomon.p/luabridge.cc.o simplomon.p/webservice.cc.o simplomon.p/support.cc.o simplomon.p/promon.cc.o simplomon.p/mailmon.cc.o simplomon.p/nonblocker.cc.o -Wl,--as-needed -Wl,--no-undefined -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -Wl,--start-group subprojects/simplesockets/libsimplesockets.a subprojects/sqlitewriter/libsqlitewriter.a -L/usr/local/lib -lfmt -pthread /usr/lib/libssl.a /usr/lib/libcrypto.a /usr/lib/libz.a -L/usr/local/lib -lbrotlicommon -L/usr/local/lib -lbrotlidec -lbrotlicommon -L/usr/local/lib -lbrotlienc -lbrotlicommon /usr/local/lib/liblua-5.3.a -lm /usr/local/lib/libcurl.a /usr/lib/libgssapi_krb5.a /usr/local/lib/libzstd.a /usr/lib/libkrb5.a /usr/lib/libk5crypto.a /usr/lib/libcom_err.a /usr/lib/libkrb5support.a /usr/local/lib/libpsl.a /usr/local/lib/libidn2.a -R/usr/local/lib /usr/local/lib/libnghttp2.a -L/usr/local/lib -L/lib -lssh2 -lbrotlidec -lbrotlicommon -lunistring -L/usr/local/lib -lsqlite3 -L/usr/local/lib -lfmt -L/usr/local/lib -lsqlite3 -Wl,--end-group
ld: error: undefined symbol: profile_get_string
>>> referenced by rc_base.c:54 (/usr/src/crypto/krb5/src/lib/krb5/rcache/rc_base.c:54)
>>>               rc_base.o:(k5_rc_default) in archive /usr/lib/libkrb5.a
>>> referenced by sn2princ.c:66 (/usr/src/crypto/krb5/src/lib/krb5/os/sn2princ.c:66)
>>>               sn2princ.o:(expand_hostname) in archive /usr/lib/libkrb5.a
>>> referenced by locate_kdc.c:58 (/usr/src/crypto/krb5/src/lib/krb5/os/locate_kdc.c:58)
>>>               locate_kdc.o:(_krb5_use_dns_kdc) in archive /usr/lib/libkrb5.a
>>> referenced 22 more times

ld: error: undefined symbol: profile_release_string
>>> referenced by rc_base.c:58 (/usr/src/crypto/krb5/src/lib/krb5/rcache/rc_base.c:58)
>>>               rc_base.o:(k5_rc_default) in archive /usr/lib/libkrb5.a
>>> referenced by sn2princ.c:83 (/usr/src/crypto/krb5/src/lib/krb5/os/sn2princ.c:83)
>>>               sn2princ.o:(expand_hostname) in archive /usr/lib/libkrb5.a
>>> referenced by locate_kdc.c:71 (/usr/src/crypto/krb5/src/lib/krb5/os/locate_kdc.c:71)
>>>               locate_kdc.o:(_krb5_use_dns_kdc) in archive /usr/lib/libkrb5.a
>>> referenced 14 more times
[ and so on... ]

Thanks Igor; this fixes the ports issue you investigated. 🚢 it!

This revision is now accepted and ready to land.Fri, Oct 10, 12:28 AM
cy added a reviewer: krb5.

Looks good.

Please list the PR or the ports that are fixed by this in the commit log message (the why). Thanks.

i'm not opposed to this, but i don't understand why it's required. is this an upstream bug, or are we building libkrb5 wrongly?

ld: error: undefined symbol: profile_get_string
>>> referenced by rc_base.c:54 (/usr/src/crypto/krb5/src/lib/krb5/rcache/rc_base.c:54)
>>>               rc_base.o:(k5_rc_default) in archive /usr/lib/libkrb5.a

i see, it's explicitly linking against a bunch of static libraries for some reason.

In D52910#1211188, @ivy wrote:

i'm not opposed to this, but i don't understand why it's required. is this an upstream bug, or are we building libkrb5 wrongly?

Yes, I plan to provide upstream with the same patch eventually. It's just a "15.0 doors closing" situation.

ld: error: undefined symbol: profile_get_string
>>> referenced by rc_base.c:54 (/usr/src/crypto/krb5/src/lib/krb5/rcache/rc_base.c:54)
>>>               rc_base.o:(k5_rc_default) in archive /usr/lib/libkrb5.a

i see, it's explicitly linking against a bunch of static libraries for some reason.

That's why it was spotted after /usr/lib/libkrb5.so lib switch, the simplomon port tries to statically link as much dependencies as possible (to be useful with minimal OCI images), while usually we don't do that.

okay, looks fine. thanks for the explanation.

This revision was automatically updated to reflect the committed changes.