Wireshark mailing list archives
Re: Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated?
From: Pascal Quantin <pascal.quantin () gmail com>
Date: Thu, 17 Nov 2011 09:50:47 +0100
2011/11/17 Gerald Combs <gerald () wireshark org>
On 11/3/11 2:52 PM, Jeff Morriss wrote:Guy Harris wrote:On Nov 2, 2011, at 11:19 AM, Guy Harris wrote:On Nov 2, 2011, at 10:26 AM, Guy Harris wrote:On Nov 2, 2011, at 10:16 AM, Jeff Morriss wrote:Oh, shoot. Looks like svnversion.h is removed by clean and/or dist-clean.So it should be generated only if you're building from SVN, and should be included in source tarballs, and should be removed only by maintainer-clean.I've checked in a change to do that, and will schedule it for the next 1.4.x and 1.6.x release, unless somebody can come up with a good reason to remove svnversion.h with clean or dist-clean. Speak up soon....Well, the build is failing because "make distclean" isn't getting rid of it. To quote the automake manual: * Distributed files should never depend upon non-distributed built files. * Distributed files should be distributed with all their dependencies. * If a file is intended to be rebuilt by users, then there is no point in distributing it. svnversion.h is made by make-version.pl, and to get the SVN version you presumably have to be in an SVN tree, so svnversion.h's "dependency" is on, in a sense, .svn and its contents, so, from what the automake manual says, if we ship svnversion.h, we have to ship the .svn tree as well. I don't think we want to do that. So, either 1) we need to arrange to define HAVE_SVNVERSION_H if building from SVN, *not* define it if building from a release tarball, protect the includes of svnversion.h with #ifdef HAVE_SVNVERSION_H/#endif; 2) we need to have make-version.pl work when run from a source tarball, for some reasonable definition of "work"; and, in either case, not distribute svnversion.h with the tarball and remove svnversion.h with "make distclean".So here are (I think) the scenarios we're trying to cover: a) Builds from SVN (typically on trunk/ but also the release trunks): the exact SVN version is useful to know and the file can easily be made. Easy. b) Release source tarballs: the exact SVN version is not very important (the version is the version is the version) and the file can't be generated (by the user). And automake won't let us deliver it because the file is generated. c) Daily build source tarballs: the exact SVN version *is* interesting (it's nice to know that, for example, the thousands of SVN versions between when 1.6.0 was released and when 1.7.0 will be released are not all, in fact, 1.7.0--remember the sunfreeware.com incident[1]?) but we have the same problems as (b). [1] https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=1413#c8 Unfortunately both options above mean we lose the SVN version in cases (b) and (c). Should svnversion.h instead be checked in to source control and automatically updated at each checkin (by a trigger)? Or should 1.7.[even number] mean "an SVN build between versions" and 1.7.[odd number] mean "a development release", thus partially removing the interest in having an SVN number in (c)? Or...?I updated make-version.pl to clarify the different things that it does. It can now store the SVN revision in config.nmake, which can then be used to rebuild svnversion.h. Updating config.nmake was a lot easier than a post-commit hook since we were storing other version information there.
Hi Gerald, since your commit I'm facing a small issue when compiling trunk for Windows. The following command (in top Makefile.nmake): cd plugins $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake install-plugins tries to install the plugins in a folder named plugins\1.7.1-SVN-#### while Wireshark expects them to have them in a folder named plugins\1.7.1 (they fail to load unless i copy them to the plugins\1.7.1 folder). It appears due to the change done in config.nmake so as to set VERSION_BUILD to $(SVN_REVISION). Not sure what is preferable. I guess it would be better to avoid generating a new plugin folder each time the revision number increases. Regards, Pascal.
___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev () wireshark org> Archives: http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-request () wireshark org?subject=unsubscribe
Current thread:
- Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated? RUOFF, LARS (LARS)** CTR ** (Nov 02)
- Re: Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated? Jeff Morriss (Nov 02)
- Re: Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated? Guy Harris (Nov 02)
- Re: Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated? Guy Harris (Nov 02)
- Re: Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated? Jeff Morriss (Nov 02)
- Re: Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated? Guy Harris (Nov 02)
- Re: Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated? Jeff Morriss (Nov 03)
- Re: Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated? Gerald Combs (Nov 16)
- Re: Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated? Pascal Quantin (Nov 17)
- Re: Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated? Chris Maynard (Nov 18)
- Re: Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated? Pascal Quantin (Nov 18)
- Re: Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated? Gerald Combs (Nov 18)
- Re: Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated? Chris Maynard (Nov 18)
- Re: Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated? Guy Harris (Nov 02)
- Re: Win32 build from 1.6.3 source tarball: svnversion.h missing and not generated? Jeff Morriss (Nov 02)