From 9bcfa9cdede27be34d11f42dfae3d8fd60fc92bc Mon Sep 17 00:00:00 2001 From: Thomas Guyot-Sionnest Date: Wed, 26 Nov 2008 05:42:48 -0500 Subject: [PATCH] Disable dynamic versionning for releases, and allow generating version out of subversion. This should be a definitive fix for systems with non-compilant make programs as the version will be taken from $(PACKAGE_VERSION) instead. At the same time I added code for generating svn-based version strings. --- Makefile.am | 2 +- NP-VERSION-GEN | 19 +++++++++++++------ configure.in | 3 +++ plugins-root/Makefile.am | 10 +++++----- plugins-scripts/Makefile.am | 10 +++++----- plugins/Makefile.am | 10 +++++----- 6 files changed, 32 insertions(+), 22 deletions(-) diff --git a/Makefile.am b/Makefile.am index 3cd939a..7032578 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,7 +19,7 @@ DEFS = -DLOCALEDIR=\"$(localedir)\" dist-hook: make THANKS nagios-plugins.spec pkg/fedora/nagios-plugins.spec - echo ${VERSION} >$(distdir)/version + echo ${VERSION} >$(distdir)/release install-root: cd plugins-root && $(MAKE) $@ diff --git a/NP-VERSION-GEN b/NP-VERSION-GEN index 1169710..f963e63 100755 --- a/NP-VERSION-GEN +++ b/NP-VERSION-GEN @@ -11,12 +11,8 @@ DEF_VER=1.4.13.git LF=' ' -# First see if there is a version file (included in release tarballs), -# then try git-describe, then default. -if test -f $SRC_ROOT/version -then - VN=`cat $SRC_ROOT/version` || VN="$DEF_VER" -elif test -d $SRC_ROOT/.git -o -f $SRC_ROOT/.git && +# First try git-describe, then svn info, then default. +if test -d $SRC_ROOT/.git -o -f $SRC_ROOT/.git && VN=`cd $SRC_ROOT; git describe --abbrev=4 HEAD 2>/dev/null` && case "$VN" in *$LF*) (exit 1) ;; @@ -27,6 +23,17 @@ elif test -d $SRC_ROOT/.git -o -f $SRC_ROOT/.git && esac then VN=`echo "$VN" | sed -e 's/^release-//' | sed -e 's/-/./g'`; +elif test -d $SRC_ROOT/.svn -o -f $SRC_ROOT/.svn && + VN=`cd $SRC_ROOT; svn info 2>/dev/null | grep '^Revision'` && + case "$VN" in + *$LF*) (exit 1) ;; + Revision:*) + VN=`echo $VN | awk '{print $NF}'` + test "`svn status 2>/dev/null | grep '^[AMD]' | wc -l`" = 0 || + VN="$VN-dirty" ;; + esac +then + VN=`echo "trunk.$VN" | sed -e 's/-/./g'`; else VN="$DEF_VER" fi diff --git a/configure.in b/configure.in index 203166e..8cae534 100644 --- a/configure.in +++ b/configure.in @@ -98,6 +98,9 @@ AC_SUBST(PKG_ARCH) AC_SUBST(REV_DATESTAMP) AC_SUBST(REV_TIMESTAMP) +dnl Check if version file is present +AM_CONDITIONAL([RELEASE_PRESENT], [test -f release]) + dnl Checks for programs. AC_PATH_PROG(PYTHON,python) AC_PATH_PROG(SH,sh) diff --git a/plugins-root/Makefile.am b/plugins-root/Makefile.am index ba2e9a2..3fb62a2 100644 --- a/plugins-root/Makefile.am +++ b/plugins-root/Makefile.am @@ -1,13 +1,13 @@ ## Process this file with automake to produce Makefile.in +if RELEASE_PRESENT +NP_VERSION = $(PACKAGE_VERSION) +else NP-VERSION-FILE: .FORCE-NP-VERSION-FILE @$(SHELL_PATH) $(top_srcdir)/NP-VERSION-GEN .FORCE-NP-VERSION-FILE: - -## This is undocumented and could possibly break in future versions of -## automake. See: -## http://article.gmane.org/gmane.comp.sysutils.automake.general/10036 -@am__include@ @am__quote@NP-VERSION-FILE@am__quote@ +-include NP-VERSION-FILE +endif AM_CFLAGS = -DNP_VERSION='"$(NP_VERSION)"' diff --git a/plugins-scripts/Makefile.am b/plugins-scripts/Makefile.am index 1970273..5c073ca 100644 --- a/plugins-scripts/Makefile.am +++ b/plugins-scripts/Makefile.am @@ -1,13 +1,13 @@ ## Process this file with automake to produce Makefile.in +if RELEASE_PRESENT +NP_VERSION = $(PACKAGE_VERSION) +else NP-VERSION-FILE: .FORCE-NP-VERSION-FILE @$(SHELL_PATH) $(top_srcdir)/NP-VERSION-GEN .FORCE-NP-VERSION-FILE: - -## This is undocumented and could possibly break in future versions of -## automake. See: -## http://article.gmane.org/gmane.comp.sysutils.automake.general/10036 -@am__include@ @am__quote@NP-VERSION-FILE@am__quote@ +-include NP-VERSION-FILE +endif SUFFIXES = .pl .sh diff --git a/plugins/Makefile.am b/plugins/Makefile.am index fb1924f..0f6fbb6 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -1,13 +1,13 @@ ## Process this file with automake to produce Makefile.in +if RELEASE_PRESENT +NP_VERSION = $(PACKAGE_VERSION) +else NP-VERSION-FILE: .FORCE-NP-VERSION-FILE @$(SHELL_PATH) $(top_srcdir)/NP-VERSION-GEN .FORCE-NP-VERSION-FILE: - -## This is undocumented and could possibly break in future versions of -## automake. See: -## http://article.gmane.org/gmane.comp.sysutils.automake.general/10036 -@am__include@ @am__quote@NP-VERSION-FILE@am__quote@ +-include NP-VERSION-FILE +endif AM_CFLAGS = -DNP_VERSION='"$(NP_VERSION)"' -- 2.30.2