HomeFreeBSD

krb5: Fix the installed compile_et

Description

krb5: Fix the installed compile_et

We now build compile_et from krb5/util/compile_et. The compile_et make
target runs compile_et.sh through a preprocessor that does some
substitution on the script, in particular it defines the directory where
compile_et can find et_h.awk and et_c.awk.

We build compile_et as a bootstrap tool since it's used to build krb5.
It also gets installed by installworld, presumably because we did that
with Heimdal Kerberos too and there's some chance that third-party
projects are using it.

There are two problems, both fixed by this patch:

First, we don't actually install those awk scripts anywhere, so
/usr/sbin/compile_et isn't usable on an installed system. Let's simply
install them to /usr/share/et, which is where upstream puts them.

Second, compile_et is a bootstrap tool and gets installed into WORLDTMP
during the bootstrap phase of the build. At that point we preprocess it
to set the directory where it can find those awk scripts. That
directory is currently set with KRB5_ETDIR?= ${DESTDIR}/usr/share/et,
but DESTDIR points into the object directory, so this value is bogus.

Since all build-time invocations of compile_et explicitly specify the
script directory with the -d option, let's just update the path to point
to the installed script directory. In particular, avoid fixing DESTDIR
in the script, since we don't do that generally.

PR: 288929
Reviewed by: ivy, cy
Sponsored by: The FreeBSD Foundation
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D52004

Details

Provenance
markjAuthored on Aug 19 2025, 1:02 PM
Reviewer
ivy
Differential Revision
D52004: krb5: compile_et: Fix the installed compile_et
Parents
rG6f41c1fc39d9: ixl(4): Fix queue MSI and legacy IRQ rearming
Branches
Unknown
Tags
Unknown