]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Improve the git revision tracking
authorDavid Sommerseth <davids@redhat.com>
Fri, 19 Apr 2013 11:21:54 +0000 (13:21 +0200)
committerDavid Sommerseth <davids@redhat.com>
Fri, 19 Apr 2013 13:46:37 +0000 (15:46 +0200)
This removes the single 'git revision' line from the --version screen and
moves this information on the top, together with the OpenVPN version.

In addition this patch adds two git flags after the git committish.  If
there exists changed but unstaged files when the build was done, a '+' is
appended after the committish.  If there exists staged files (files which
have been added with 'git add') a '*' will be appended.  These flags are
not exclusive.

This also simplifies the config-version.h generation by not using
sed parsing a template.  It's just two lines which are generated, so
no need to complicate things more than needed.

Signed-off-by: David Sommerseth <davids@redhat.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: 1366375212-14886-1-git-send-email-dazo@users.sourceforge.net
URL: http://article.gmane.org/gmane.network.openvpn.devel/7522

Makefile.am
config-version.h.in [deleted file]
src/openvpn/options.c
version.m4

index c5805797e7165ef88d4a4d82e8eafe1c2b9a9b08..1a30aa5a9f283b924253cefa0d077af6d553c64b 100644 (file)
@@ -66,7 +66,6 @@ dist_doc_DATA = \
 dist_noinst_DATA = \
        .gitignore \
        .gitattributes \
-       config-version.h.in \
        PORTS \
        README.IPv6 TODO.IPv6 \
        README.polarssl \
@@ -91,8 +90,12 @@ root_DATA = version.sh
 endif
 
 config-version.h:
-       @CONFIGURE_GIT_REVISION="`GIT_DIR=\"$(top_srcdir)/.git\" $(GIT) rev-parse --symbolic-full-name HEAD`/`GIT_DIR=\"$(top_srcdir)/.git\" $(GIT) rev-parse --short=16 HEAD`"; \
-               $(SED) "s#@CONFIGURE_GIT_REVISION[@]#$${CONFIGURE_GIT_REVISION}#g" "$(srcdir)/config-version.h.in" > config-version.h.tmp
+       @CONFIGURE_GIT_CHFILES="`GIT_DIR=\"$(top_srcdir)/.git\" $(GIT) diff-files --name-status -r --ignore-submodules --quiet -- || echo \"+\"`"; \
+       CONFIGURE_GIT_UNCOMMITTED="`GIT_DIR=\"$(top_srcdir)/.git\" $(GIT) diff-index --cached  --quiet --ignore-submodules HEAD || echo \"*\"`"; \
+       CONFIGURE_GIT_REVISION="`GIT_DIR=\"$(top_srcdir)/.git\" $(GIT) rev-parse --symbolic-full-name HEAD | cut -d/ -f3-`/`GIT_DIR=\"$(top_srcdir)/.git\" $(GIT) rev-parse --short=16 HEAD`"; \
+       echo "#define CONFIGURE_GIT_REVISION \"$${CONFIGURE_GIT_REVISION}\"" > config-version.h.tmp; \
+       echo "#define CONFIGURE_GIT_FLAGS \"$${CONFIGURE_GIT_CHFILES}$${CONFIGURE_GIT_UNCOMMITTED}\"" >> config-version.h.tmp
+
        @if ! [ -f config-version.h ] || ! cmp -s config-version.h.tmp config-version.h; then \
                echo "replacing config-version.h"; \
                mv config-version.h.tmp config-version.h; \
diff --git a/config-version.h.in b/config-version.h.in
deleted file mode 100644 (file)
index 27ee36a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#define CONFIGURE_GIT_REVISION "@CONFIGURE_GIT_REVISION@"
index ec3921296e0ffbf1cb3192a772187a1615033b7c..05c6da2daa62007304538254becdb97c96ba9dec 100644 (file)
@@ -64,6 +64,9 @@
 
 const char title_string[] =
   PACKAGE_STRING
+#ifdef CONFIGURE_GIT_REVISION
+        " [git:" CONFIGURE_GIT_REVISION CONFIGURE_GIT_FLAGS "]"
+#endif
   " " TARGET_ALIAS
 #ifdef ENABLE_CRYPTO
 #ifdef ENABLE_SSL
@@ -3426,9 +3429,6 @@ usage_version (void)
 #ifdef CONFIGURE_SPECIAL_BUILD
   msg (M_INFO|M_NOPREFIX, "special build: %s", CONFIGURE_SPECIAL_BUILD);
 #endif
-#ifdef CONFIGURE_GIT_REVISION
-  msg (M_INFO|M_NOPREFIX, "git revision: %s", CONFIGURE_GIT_REVISION);
-#endif
 #endif
   openvpn_exit (OPENVPN_EXIT_STATUS_USAGE); /* exit point */
 }
index 1ea1c32fc6c6f2bf59921b56797c406db6c4250d..376661f7c46f3d7ae030287686f64d7796ed4a3a 100644 (file)
@@ -1,7 +1,7 @@
 dnl define the OpenVPN version
 define([PRODUCT_NAME], [OpenVPN])
 define([PRODUCT_TARNAME], [openvpn])
-define([PRODUCT_VERSION], [2.3_master])
+define([PRODUCT_VERSION], [2.3_git])
 define([PRODUCT_BUGREPORT], [openvpn-users@lists.sourceforge.net])
 define([PRODUCT_VERSION_RESOURCE], [2,3,0,0])
 dnl define the TAP version