Преглед изворни кода

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.
Thomas Guyot-Sionnest пре 17 година
родитељ
комит
9bcfa9cded
6 измењених фајлова са 32 додато и 22 уклоњено
  1. 1 1
      Makefile.am
  2. 13 6
      NP-VERSION-GEN
  3. 3 0
      configure.in
  4. 5 5
      plugins-root/Makefile.am
  5. 5 5
      plugins-scripts/Makefile.am
  6. 5 5
      plugins/Makefile.am

+ 1 - 1
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) $@

+ 13 - 6
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

+ 3 - 0
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)

+ 5 - 5
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)"'
 

+ 5 - 5
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
 

+ 5 - 5
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)"'