Missing compile_et and kerberos breaks buildworld

From: Steve Kargl <sgk_at_troutmask.apl.washington.edu>
Date: Tue, 15 Jan 2013 15:35:25 -0800
It seems that buildworld depends on the existence of
/usr/bin/compile_et if one wants to build WITH_KERBEROS
on a system that has never had Kerberos support.  I
discovered this issue when des_at_ removed the NOFOO and
NO_FOO options, and the NO_KERBEROS="YES" in my
/etc/make.conf was neutered.  The system in question
has never had kerneros installed.  One can emulate
the problem as follows:

% mv /usr/bin/compile_et /usr/bin/compile_et.old
% cd /usr/src
% make buildworld
(a few hours later ... boom)
===> kerberos5/lib/libasn1 (buildincludes)
compile_et /usr/src/kerberos5/lib/libasn1/../../../crypto/heimdal/lib/asn1/asn1_err.et
compile_et: No such file or directory
*** [asn1_err.h] Error code 1

Stop in /usr/src/kerberos5/lib/libasn1.
*** [buildincludes] Error code 1

Stop in /usr/src/kerberos5/lib.
*** [buildincludes] Error code 1

Stop in /usr/src/kerberos5.
*** [includes] Error code 1

Stop in /usr/src/kerberos5.
*** [kerberos5.includes__D] Error code 1

Stop in /usr/src.
*** [_includes] Error code 1

Stop in /usr/src.
*** [buildworld] Error code 1

Stop in /usr/src.

The obvious step of installing compile_et gives

% cd /usr/src/usr.bin/compile_et
% make depend
yacc -d -o parse.c /usr/src/usr.bin/compile_et/../../contrib/com_err/parse.y
lex -t  /usr/src/usr.bin/compile_et/../../contrib/com_err/lex.l > lex.c
rm -f .depend
mkdep -f .depend -a    -I. -I/usr/src/usr.bin/compile_et/../../contrib/com_err -std=gnu99  /usr/src/usr.bin/compile_et/../../contrib/com_err/compile_et.c parse.c lex.c
/usr/src/usr.bin/compile_et/../../contrib/com_err/compile_et.c:39:20: error: getarg.h: No such file or directory
/usr/src/usr.bin/compile_et/../../contrib/com_err/compile_et.c:41:19: error: roken.h: No such file or directory
mkdep: compile failed
*** [.depend] Error code 1

so it appears that I need to build and install libroken to
get the headers getarg.h and roken.h installed in /usr/include.

% cd /usr/src/kerberos5/lib/libroken
% make depend
make-roken > roken.h
make-roken: not found
*** [roken.h] Error code 127

Stop in /usr/src/kerberos5/lib/libroken.

Ok.  Let's try building make-roken.

% cd /usr/src/kerberos5/tools/make-roken
% make depend && make && make install

Hooray, that worked.

% cd /usr/src/kerberos5/lib/libroken
% make depend

Hooray, again.

% make
(boom)
cc  -O2 -pipe -march=opteron -I/usr/src/kerberos5/lib/libroken/../../../crypto/heimdal/lib/roken -I. -DHAVE_CONFIG_H -I/usr/src/kerberos5/lib/libroken/../../include -std=gnu99 -fstack-protector  -c /usr/src/kerberos5/lib/libroken/../../../crypto/heimdal/lib/roken/copyhostent.c -o copyhostent.o
/usr/src/kerberos5/lib/libroken/../../../crypto/heimdal/lib/roken/copyhostent.c:42: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'struct'
*** [copyhostent.o] Error code 1

Stop in /usr/src/kerberos5/lib/libroken.

:(

% make clean && make depend
% make && make install

That worked!  (Apparently, something in the previous buildworld made
cc unhappy.)

% cd /usr/src/usr.bin/compile_et
% make
(boom)
cc -O2 -pipe -march=opteron -I. -I/usr/src/usr.bin/compile_et/../../contrib/com_err -std=gnu99 -fstack-protector -Wno-pointer-sign  -o compile_et compile_et.o parse.o lex.o -lroken /usr/obj/usr/src/usr.bin/compile_et/../../kerberos5/lib/libvers/libvers.a
cc: /usr/obj/usr/src/usr.bin/compile_et/../../kerberos5/lib/libvers/libvers.a: No such file or directory
*** [compile_et] Error code 1

% cd /usr/src/kerberos5/lib/libvers
% make depend && make && make install

Ok.

% cd /usr/src/usr.bin/compile_et
% make clean && make depend && make && make install

% cd /usr/src
% make buildenv
Entering world for amd64:amd64
# which compile_et
/usr/bin/compile_et
# exit

Whoops.  That can't be right.

% make -DNO_CLEAN buildworld

and buildworld seems to be back on-track.

-- 
Steve
Received on Tue Jan 15 2013 - 22:35:31 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:34 UTC