"make delete-old" misses files, breaking KRB5-related builds

Matthias Andree matthias.andree at gmx.de
Wed Aug 20 22:29:23 UTC 2008


Greetings,

I am a long-time user of FreeBSD (I think my oldest installations used
to be 4.0 and have been upgraded ever since).

Not quite recently, the build targets for "make delete-old" and
"make delete-old-libs" were added, and I thought there were sort of
useful to get rid of crap after updates.

However, something somehow somewhen dropped old gssapi_generic.h and
related files into /usr/include/gssapi which sat there waiting to wreak
havoc on port builds on later 6.X or 7.0 releases. Either some port
installed outside $PREFIX, or these used to be part of the system and
got removed before the "make delete-old" framework was put into place.
"Wreak havoc" means mislead configure scripts of several packages
(GNOME-related in my case) to believe some other installation was there,
but it wouldn't work because some parts of the system were
missing/changed...

I ended up manually figuring out what got installed and kill everything
that had no source... an enormous effort.

What I would like to have is a means of "compare what gets installed
into /bin /sbin /libexec /lib /usr/bin /usr/sbin /usr/include /usr/lib
/usr/libexec and other standard system directories" to what's actually
in those directories - such a comparison would have easily allowed me to
spot the problem areas.

Comparing file dates doesn't work properly, else a

find /usr /lib* /*bin -name local -prune -or \( -mtime 30 -print \)

after a "make installworld" would be the easiest thing to do... but some
parts of the system use install -C (probably to avoid excessive
recompiling or relinking).

So what's the canonical way to "installworld" into a staging area so I
can just compare or rsync --del system directories?

-- 
Matthias Andree


More information about the freebsd-stable mailing list