[SeaBIOS] [PATCH 0/3] Don't allow version override; use reproducible by default

Kevin O'Connor kevin at koconnor.net
Thu Oct 22 17:18:31 CEST 2015


On Thu, Oct 22, 2015 at 04:16:04PM +0200, Gerd Hoffmann wrote:
> > > Hmm, just noticed that only git builds are considered being "clean".
> > > That implies builds from release tarballs will *not* be considered
> > > clean.  Was that intentional?
> > 
> > My thinking was that it is too easy for a ".version" file to be
> > inadvertently incorrect.  That is, if one pulls down a release tarball
> > and then modifies some files, the version in the binary is not going
> > to reflect the fact that changes were made.
> > 
> > I didn't think it would be too painful to require the git repo for
> > those desiring a reproducible build.  The "git describe" tool is quite
> > useful for getting a meaningful hash of the repo.
> > 
> > Do you think that will be a problem?
> 
> Linux distro builds usually use release tarballs (plus possibly patches)
> not git checkouts.  Having timestamp and hostname back in the version
> string then is a step backwards.  Will have only the effect that distros
> start patching the build system again ...
> 
> One option I see is to consider builds clean in case EXTRAVERSION is
> present, so distros can simply set EXTRAVERSION to the rpm release.

So, consider the build clean if git does not exist, ".version" does
exist, and EXTRAVERSION is set?  That seems reasonable, if a bit
convoluted.  The key would be letting distribution builders know about
this and to document what information we expect to be contained in the
EXTRAVERSION field.

> Or add a new variable specifically for package build versioning, and
> possibly even set that automatically.  rpm sets some environment
> variables in the build environment ....

That's also possible (buildversion.py could check for common package
building environment variables), but I suspect that different distros
use different variables.

-Kevin



More information about the SeaBIOS mailing list