Version Strings - doesn't show recent edits

Hal Murray hmurray at megapathdsl.net
Sun Apr 16 19:18:18 UTC 2017


> It would be possible, with some hackery, to bump the version string on every
> edit.  However, this would mean that every single build would always
> recompile every file that included the generated version symbol.  This would
> be irritating, especially given the existence of slow buildbots; qemu images
> for exotic architectures would be right out. 

My proposal was for a option that defaulted to off.  Buildbots wouldn't 
enable it.

I'm willing to rebuild a few extra modules in order to get useful version 
strings.  The when-to-update complexity doesn't have to be part of waf (but 
that would be great).  I have a script that does the rebuilding.  It could do 
whatever is appropriate.  It already deletes ntpd/version.h, leftover from 
before we switched to autorevision.

We already have to do the relink step.  If recompiling ntpd is too slow, we 
could move the version string out to a separate module.


> The maybe-dispensible one is the use of build-time pivoting to find the
> nearest time corresponding to an l_fp across ntp-date calendar cycles. If we
> toss that we lose the ability for ntpd binaries built in different eras (but
> within a half-cycle of each other) to settle on a common timebase and
> interoperate. 

We already got rid of that usage as part of the time_t 32 vs 64 discussion.  
We now depend on the system time being "close enough".  The interface across 
the 32-64 boundary is a delta-time rather than the correct time.

I think that puts the pivot time at 1970.  We could advance that by 40+ years 
by adding some code that would update the system time to the release date if 
it was before that.

We could get a "better" time from the file system.  That would be a disaster 
if the time ever got into the future long enough to write whatever part of 
the file system we get the time from.


> The indispensable one is the use in the NMEA driver. In theory we could bow
> to the distros' desire for reproducible builds, throw that code out, and
> pass the buck to GPSD.  I don't want to do that because, as they say in
> politics, the optics would be bad. 

We could switch that usage to a time stamp that gets updated as part of the 
release process.

The NMEA usage has a lifetime of 20 years after the reference time.  The l_fp 
pivoting breaks after 60+ years.

Is 60 years after the release date good enough for the l_fp pivoting?

Is the difference between 20 years from the release date vs 20 years from 
build time significant?


-- 
These are my opinions.  I hate spam.





More information about the devel mailing list