Victor Duchovni:
> On Mon, Jul 25, 2011 at 03:52:31PM -0400, Wietse Venema wrote:
> 
> > Another idea is to add a -F (fingerprint) command-line option to
> > every executable that dumps mail_version and build_info information.
> > Some people may not be comfortable with egrep and such.
> 
> If we're to go to all the trouble, likely the "-F" approach seems to
> make more sense.
> 
> On the other hand, with Debian builds where libglobal, ... are separate
> shared libraries, do we fingerprint libglobal, or the calling executable?
> (Do we call a function in the library or clone it into each executable).

Taking the example from SASL and Berkeley DB, the library should
have a version() function whose output can be checked against
compile-time #defines; if the compile time version does not match
the run-time linked version, the warranty is void.

This means that people can no longer safely do "make upgrade" on a
running Postfix system, even if it is just a patchlevel change,
because postfix-internal function interfaces sometimes change. This
makes internal interface changes much more visible.

> Ebedding static variables into each executable unasks the question,
> and we can also include similar statics in each library.
> 
> All this said, I doubt it is worth the effort. The existing "fingerprints"
> are probably enough.

The odds of the same version installed with different build options
is quite small.

        Wietse

Reply via email to