[LinuxBIOS] [PATCH] superiotool: Make --version actually work correctly

Uwe Hermann uwe at hermann-uwe.de
Mon Oct 8 01:19:10 CEST 2007

On Sun, Oct 07, 2007 at 11:09:24AM +0200, Ulf Jordan wrote:
> However, I believe we don't want the superiotool version to increase just 
> because there are other commits in the v2 tree, so the example needs 
> adapting by adding -c to svnversion.

That's no problem IMO. The important thing is that the version _does_
increase if we change superiotool files. If it also increases upon other
changes, well, we can live with that...

> Attached is a patch that:
> * derives the superiotool version number from the latest committed change 
> to superiotool files (NOT the latest svn up of the superiotool directory)

Hm, isn't that wrong? We want to know the extact version from which the
binary was built, _not_ the most current version in the repository at the
time it was built...

> * strips away extra information from svnversion, to arrive at a single 
> version number like 2828 instead of 2814:2828M ("this build is made up of 
> files with latest modification in rev 2814 to 2828 plus local 
> modifications").

Hm, maybe that would even be a good thing? We could tell from that
output that a user used a modified version and ask for a diff...

> * does not recurse down into subdirectories or svn:externals (there are no 
> such things in superiotool for the moment)

Yep, not needed.

> * does all the work in determining the version number at build time
> * depends on GNU make features (although it could be rewritten more 
> portably using a version.h file instead, like my previous patch)

Maybe we could do this later, but it's fine for now. GNU Make should be
available almost everywhere.

> This approach could easily be combined with a traditional version number 
> from a #define in superiotool.h, as Robinson pointed out.

Not needed and not useful. We don't want to confuse people with _two_
versioning systems.

> Index: Makefile
> ===================================================================
> --- Makefile	(revision 2828)
> +++ Makefile	(working copy)
> @@ -24,14 +24,19 @@
>  INSTALL = /usr/bin/install
>  PREFIX  = /usr/local
> +SVNDEF := -D'SUPERIOTOOL_VERSION="$(shell svnversion -cn . \
> +          | sed -e "s/.*://" -e "s/\([0-9]*\).*/\1/")"'

Please add a comment here which explains what the contents of the
variable will be (svn rev of latest commit etc...), how it works, etc.

Personally, I like this approach. Either this one, or the one from my
patch (which doesn't require svn at build-time). That's a small issue
though, distributors can easily work around it by patching the Makefile.

If nobody complains, let's commit this ASAP so we have a working version
in the repository. We can still continue the discussions to
improve the version handling later, if necessary.

http://www.hermann-uwe.de  | http://www.holsham-traders.de
http://www.crazy-hacks.org | http://www.unmaintained-free-software.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20071008/cc26bc8c/attachment.sig>

More information about the coreboot mailing list