Revert rev 38340 (which was itself a reversion of 34807): if we can't find the
authormorriss <morriss@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 8 Sep 2011 01:53:41 +0000 (01:53 +0000)
committermorriss <morriss@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 8 Sep 2011 01:53:41 +0000 (01:53 +0000)
SVN version, indicate that the SVN version is unknown.  This puts back the fix
for bug 1413.

Add a new version.conf option for make-version which tell is "this is a build
from a release tarball."  When that option is present do not try to use SVN
to determine the SVN version, just use whatever SVN information shipped in the
tarball.

If version.conf is present in the source tree (as it is only in the release
branches), deliver it in the source tarball but only after setting the "this
is a release tarball" option.

All of this means that that builds from release-branch tarballs will report
the SVN version of the release tarball rather than "unknown."  This addresses
the issue reported in
http://ask.wireshark.org/questions/5376/wireshark-161-title-shows-svn-rev-unknown-from-unknown

Builds from trunk (including the source tarballs) will continue to report that
the SVN version is unknown.  (Maybe that, too, should be changed?)

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@38933 f5534014-38df-0310-8fa8-9805f1628bb7

Makefile.am
make-version.pl

index f7b8adec6741c255e5fe27921d7cb500fd0cea43..9da02e2ad29d6d103acc2faacbe17c87e2230732 100644 (file)
@@ -810,7 +810,7 @@ EXTRA_DIST = \
        $(dtds_DATA)            \
        $(radius_DATA)          \
        $(tpncp_DATA)           \
-       $(ui_DATA)                      \
+       $(ui_DATA)              \
        $(wimaxasncp_DATA)      \
        randpkt.c               \
        smi_modules             \
@@ -866,16 +866,16 @@ EXTRA_DIST = \
        cmake/modules/UseMakeDissectorReg.cmake \
        cmake/modules/UseMakeTapReg.cmake       \
        cmake/modules/readme.txt                \
-       win32/Makefile.nmake    \
-       win32/file_dlg_win32.c          \
-       win32/file_dlg_win32.h          \
+       win32/Makefile.nmake                    \
+       win32/file_dlg_win32.c                  \
+       win32/file_dlg_win32.h                  \
        win32/print_win32.c                     \
        win32/print_win32.h                     \
        CPackConfig.txt                         \
-       all.vcproj              \
-       dumpcap.vcproj          \
-       packaging.vcproj        \
-       tshark.vcproj           \
+       all.vcproj                              \
+       dumpcap.vcproj                          \
+       packaging.vcproj                        \
+       tshark.vcproj                           \
        wireshark.vcproj
 
 install-exec-hook:
@@ -1024,3 +1024,12 @@ checkapi: checkapi_local
        cd ../dissectors && $(MAKE) checkapi
        cd ../../plugins && $(MAKE) checkapi
        cd ../wsutil && $(MAKE) checkapi
+
+# When we build a release tarball, tell make-version that it is such.  This
+# prevents make-version from looking for SVN details in the source tarball,
+# failing, and then labelling the build as from "SVN version unknown."
+dist-hook:
+       if test -f $(top_srcdir)/version.conf; then \
+               cp $(top_srcdir)/version.conf $(top_distdir); \
+               echo "is_release: 1" >> $(top_distdir)/version.conf; \
+       fi
index 4c0fc387a5a596f7b0903e64d194c18f01171fde..33f44fd9bf1db3af5da6ff8a4be5389eef9e5f97 100755 (executable)
 #               the SVN revision number.
 #   pkg_enable - Enable or disable package versioning.
 #   pkg_format - Like "format", but used for the package version.
+#   is_release - Specifies that we're building from a release tarball;
+#               svnversion.h is not updated.  This should be added only
+#               to the *released* version.conf, not the one used to build
+#               the release (IOW it should be added by automake's dist-hook).
 #
 # If run with the "-p" or "--package-version" argument, the
 # AC_INIT macro in configure.in and the VERSION macro in
 # config.nmake will have the pkg_format template appended to the 
 # version number.  svnversion.h will _not_ be generated if either
-# argument is present.
+# argument is present (it will also not be generated if 'is_release' is set
+# in version.conf).
 #
 # Default configuration:
 #
@@ -70,6 +75,7 @@ my %version_pref = (
        "enable"     => 1,
        "svn_client" => 1,
        "format"     => "SVN %Y%m%d%H%M%S",
+       "is_release" => 0,
 
        # Normal development builds
        "pkg_enable" => 1,
@@ -248,14 +254,15 @@ sub print_svn_version
        my $svn_version;
        my $needs_update = 1;
 
-       if ($pkg_version) { return; }
+       if ($pkg_version || $version_pref{"is_release"} == 1) { return; }
 
        if ($last_change && $revision) {
                $svn_version = "#define SVNVERSION \"SVN Rev " . 
                        $revision . "\"\n" .
                        "#define SVNPATH \"" . $repo_path . "\"\n";
        } else {
-               $svn_version = "\n";
+               $svn_version = "#define SVNVERSION \"SVN Rev Unknown\"\n" .
+                       "#define SVNPATH \"unknown\"\n";
        }
        if (open(OLDVER, "<$version_file")) {
                my $old_svn_version = <OLDVER> . <OLDVER>;
@@ -287,7 +294,6 @@ sub get_config {
                $srcdir = $ARGV[0]
        }
 
-
        if (! open(FILE, "<$vconf_file")) {
                print STDERR "Version configuration file $vconf_file not "
                . "found.  Using defaults.\n";
@@ -332,8 +338,6 @@ if ($svn_info_cmd) {
        }
 } else {
        print "This is not a SVN build.\n";
-               $last_change = 0;
-               $revision = 0;
 }
 
 &print_svn_version;