Swig code generation - git src vs tarball src

Geert Janssens geert.gnucash at kobaltwit.be
Tue Mar 31 12:21:05 EDT 2015


On Tuesday 31 March 2015 08:59:03 John Ralls wrote:
> > On Mar 31, 2015, at 7:33 AM, Derek Atkins <warlord at mit.edu> wrote:
> > 
> > John Ralls <jralls at ceridwen.us> writes:
> >> I also think that it’s good that the build from a tarball based on
> >> a
> >> random commit fails. Since that tarball doesn’t contain any version
> >> information other than what’s in configure.ac, the resulting
> >> GnuCash
> >> will look like the last release which could produce some confusing
> >> bug reports.
> > 
> > Well, this isn't true.  You can "make dist" from any random commit
> > and build from the resulting tarball.  But no, you cannot just tar
> > up a random commit and build it.
> 
> Hmm, valid point. So in addition to rejiggering the "do we need swig"
> logic we should also change the versioning logic with VCS builds so
> that the version that goes on the splash screen and Help>About is the
> output of `git describe`.

We have code in place that does something similar already (in src/core-
utils/Makefile.am). It was written in the svn days and works for 4 
different vcs systems. It doesn't call git describe though for git. It 
does alter the version text in the about dialog depending on whether the 
build is a release build or just a random commit build however. Git 
describe could be a better option for the git case.

> I suppose to be perfectly paranoid we
> should also disable make-dist for non-VCS builds, but perhaps that
> would be overdoing it.
> 
Possibly. However if the version information is clear about whether it's 
a pure release build or some random commit build, that would probably be 
overkill.

As a followup on my nightly-on-fedora, I have managed to pull it off:
http://copr.fedoraproject.org/coprs/gjanssens/gnucash-maint/build/83952/

For these builds I'm tarring up my git source tree, add a manually 
generated gnc-version.h and gnc-scm-info.h (which are used for the about 
dialog version info) and fed that tarball to the fedora build system.
I had to tweak the build to include running autogen.sh of course and I 
had to lie to the gnucash build system about building from git (I forced 
it to assume building from git even though it only got a tarball).

In retrospect that was actually fairly easy to accomplish with the 
current source tree.

Later I'll add documentation builds as well and perhaps set up a repo 
similar to gnucash-on-windows to publish the build scripts. 

I have more pressing matters on my desk now though that require 
attention first.

Geert



More information about the gnucash-devel mailing list