Re: krb5 port fails to build in newly upgraded jails 14.4

Kaya Saman <[email protected]> Tue, 7 Jul 2026 18:22:11 +0100
Newsgroups gmane.os.freebsd.devel.ports
Message-ID <[email protected]>
On 7/7/26 5:29 PM, Mark Millard wrote:
> On 7/7/26 09:02, Kaya Saman wrote:
>> On 7/7/26 4:33 PM, Mark Millard wrote:
>>> On 7/7/26 05:21, Kaya Saman wrote:
>>>> Hi all,
>>>>
>>>>
>>>> I'm recently upgrading my systems which contain various jails to version
>>>> 14.4.
>>>>
>>>>
>>>> Something that I've noticed is that the krb5 port seems to build and
>>>> upgrade fine on all the upgraded base systems but fails in each jail
>>>> that I'm trying to upgrade.
>>>>
>>>>
>>>> Upgrading the jails is just standard procedure following this:
>>>>
>>>>
>>>> https://docs.freebsd.org/en/books/handbook/jails/
>>>>
>>>>
>>>> This is the output of the current build process which suggests linker
>>>> errors and something to do with "readline":
>>>>
>>>>
>>>> cc -DHAVE_CONFIG_H  -I../../include -I../../include -I. -
>>>> DKRB5_DEPRECATED=1 -DKRB5_PRIVATE -I/usr/include -I/usr/local/include -
>>>> isystem /usr/local/include -O2 -pipe -fstack-protector-strong -isystem /
>>>> usr/local/include -fno-strict-aliasing -std=gnu99  -Werror=unknown-
>>>> warning-option -Wall -Wcast-align -Wshadow -Wmissing-prototypes -
>>>> pedantic -Wno-format-zero-length -Woverflow -Wstrict-overflow -Wmissing-
>>>> format-attribute -Wmissing-prototypes -Wreturn-type -Wmissing-braces -
>>>> Wparentheses -Wswitch -Wunused-function -Wunused-label -Wunused-variable
>>>> -Wunused-value -Wunknown-pragmas -Wsign-compare -Wnewline-eof -
>>>> Werror=uninitialized -Werror=pointer-arith -Werror=int-conversion -
>>>> Werror=incompatible-pointer-types -Werror=implicit-int -Werror=strict-
>>>> prototypes -Werror=declaration-after-statement -Werror-implicit-
>>>> function-declaration -pthread  -c keytab_local.c
>>>> cc -DHAVE_CONFIG_H  -I../../include -I../../include -I. -
>>>> DKRB5_DEPRECATED=1 -DKRB5_PRIVATE -I/usr/include -I/usr/local/include -
>>>> isystem /usr/local/include -O2 -pipe -fstack-protector-strong -isystem /
>>>> usr/local/include -fno-strict-aliasing -std=gnu99  -Werror=unknown-
>>>> warning-option -Wall -Wcast-align -Wshadow -Wmissing-prototypes -
>>>> pedantic -Wno-format-zero-length -Woverflow -Wstrict-overflow -Wmissing-
>>>> format-attribute -Wmissing-prototypes -Wreturn-type -Wmissing-braces -
>>>> Wparentheses -Wswitch -Wunused-function -Wunused-label -Wunused-variable
>>>> -Wunused-value -Wunknown-pragmas -Wsign-compare -Wnewline-eof -
>>>> Werror=uninitialized -Werror=pointer-arith -Werror=int-conversion -
>>>> Werror=incompatible-pointer-types -Werror=implicit-int -Werror=strict-
>>>> prototypes -Werror=declaration-after-statement -Werror-implicit-
>>>> function-declaration -pthread  -c keytab.c
>>>> cc -DHAVE_CONFIG_H  -I../../include -I../../include -I. -
>>>> DKRB5_DEPRECATED=1 -DKRB5_PRIVATE -I/usr/include -I/usr/local/include -
>>>> isystem /usr/local/include -O2 -pipe -fstack-protector-strong -isystem /
>>>> usr/local/include -fno-strict-aliasing -std=gnu99  -Werror=unknown-
>>>> warning-option -Wall -Wcast-align -Wshadow -Wmissing-prototypes -
>>>> pedantic -Wno-format-zero-length -Woverflow -Wstrict-overflow -Wmissing-
>>>> format-attribute -Wmissing-prototypes -Wreturn-type -Wmissing-braces -
>>>> Wparentheses -Wswitch -Wunused-function -Wunused-label -Wunused-variable
>>>> -Wunused-value -Wunknown-pragmas -Wsign-compare -Wnewline-eof -
>>>> Werror=uninitialized -Werror=pointer-arith -Werror=int-conversion -
>>>> Werror=incompatible-pointer-types -Werror=implicit-int -Werror=strict-
>>>> prototypes -Werror=declaration-after-statement -Werror-implicit-
>>>> function-declaration -pthread  -c kadmin_ct.c
>>>> cc -DHAVE_CONFIG_H  -I../../include -I../../include -I. -
>>>> DKRB5_DEPRECATED=1 -DKRB5_PRIVATE -I/usr/include -I/usr/local/include -
>>>> isystem /usr/local/include -O2 -pipe -fstack-protector-strong -isystem /
>>>> usr/local/include -fno-strict-aliasing -std=gnu99  -Werror=unknown-
>>>> warning-option -Wall -Wcast-align -Wshadow -Wmissing-prototypes -
>>>> pedantic -Wno-format-zero-length -Woverflow -Wstrict-overflow -Wmissing-
>>>> format-attribute -Wmissing-prototypes -Wreturn-type -Wmissing-braces -
>>>> Wparentheses -Wswitch -Wunused-function -Wunused-label -Wunused-variable
>>>> -Wunused-value -Wunknown-pragmas -Wsign-compare -Wnewline-eof -
>>>> Werror=uninitialized -Werror=pointer-arith -Werror=int-conversion -
>>>> Werror=incompatible-pointer-types -Werror=implicit-int -Werror=strict-
>>>> prototypes -Werror=declaration-after-statement -Werror-implicit-
>>>> function-declaration -pthread  -c getdate.c
>>>> cc -L../../lib  -O2 -pipe  -fstack-protector-strong -isystem /usr/local/
>>>> include -fno-strict-aliasing -std=gnu99  -L/usr/lib -Wl,-rpath,/usr/
>>>> local/lib:/usr/lib  -L/usr/local/lib   -o kadmin.local kadmin.o
>>>> kadmin_ct.o ss_wrapper.o getdate.o keytab_local.o ../../lib/libss.a -
>>>> lreadline -lkadm5srv_mit -lkdb5  -lgssrpc -lgssapi_krb5 -lgssrpc -
>>>> lgssapi_krb5  -pthread -lpthread -lkrb5 -lk5crypto -lcom_err -
>>>> lkrb5support -lintl -L/usr/local/lib
>>>> cc -L../../lib  -O2 -pipe  -fstack-protector-strong -isystem /usr/local/
>>>> include -fno-strict-aliasing -std=gnu99  -L/usr/lib -Wl,-rpath,/usr/
>>>> local/lib:/usr/lib  -L/usr/local/lib   -o kadmin kadmin.o kadmin_ct.o
>>>> ss_wrapper.o getdate.o keytab.o ../../lib/libss.a -lreadline -
>>>> lkadm5clnt_mit -lgssrpc -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -
>>>> lkrb5support -lintl -L/usr/local/lib
>>>> ld: error: undefined symbol: tputs
>>>>>>> referenced by /usr/src/gnu/lib/libreadline/readline/../../../../
>>>> contrib/libreadline/display.c
>>> /usr/src/gnu/lib/libreadline/ last existed in:
>>> stable/11/ and releng/11.*/ .
>>>
>>> It does not exist in: stable/1[2345]/ or releng/1[2345].*/
>>>
>>> The existence of /usr/src/gnu/lib/libreadline/ references in your tree
>>> indicates that your tree is poluted with very old materials. That the
>>> references were used indicates that the old materials are not being ignored.
>>>
>> Hmm...  so what's the solution?
>>
>>
>> Something like this:
>>
>> |pkg autoremove -y|
>>
>>
>> or is the issue actually that the base system has become contaminated?
> /usr/src/ is a base system source tree (under normal naming conventions
> --and the referenced content confirms it here).
>
> Other things in your system environment outside /usr/src/gnu/ may also
> be out of date. You may need a very general cleanout of out of
> date materials. I've no clue what overall.
>
> In stable/14 and releng/14.4/ /usr/src/gnu/ there is only:
>
> ) /usr/src/gnu/lib/libdialog/
> ) /usr/src/gnu/lib/tests/
> ) /usr/src/gnu/tests/
> ) /usr/src/gnu/usr.bin/dialog/
> ) /usr/src/gnu/usr.bin/diff3/
> ) /usr/src/gnu/usr.bin/tests/


I just checked inside the jail and /usr/src is empty....


I'm not sure to trust Google's AI but this is one of the suggestions it 
came out with:


make delete-old-libs DESTDIR=/path/to/jail


maybe that's the solution?


I tried rebuilding the ports that krb5 depends on (even tough I did a 
full install rebuild anyway and just refetched the tree cleaning out the 
older version) which didn't help


Hmm....