]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Change version constants to be more useful
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sat, 27 Oct 2012 20:07:58 +0000 (21:07 +0100)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sat, 27 Oct 2012 21:15:07 +0000 (22:15 +0100)
Configure script now sets:
* RADIUSD_MAJOR_VERSION
* RADIUSD_MINOR_VERSION
* RADIUSD_INCRM_VERSION
* RADIUSD_VERSION (integer representation of version)
* RADIUSD_VERSION_STRING
* RADIUSD_VERSION_COMMIT (latest commit hash if building from a git repo)

Git hash is also displayed in utilities that display version

Make.inc.in
Makefile
configure.in
src/main/Makefile.in
src/main/radclient.c
src/main/radiusd.c
src/main/radmin.c
src/modules/rlm_eap/libeap/Makefile
src/modules/rlm_sql/drivers/rules.mak
src/modules/rules.mak

index 98a303107e751963ba15aa3714407d98697f5662..d4230397d1233f30d8a11161810d47fc92095049 100644 (file)
@@ -77,7 +77,10 @@ SQL_ODBC_INCLUDE = @ODBC_INCLUDE@
 
 RADIUSD_MAJOR_VERSION  = @RADIUSD_MAJOR_VERSION@
 RADIUSD_MINOR_VERSION  = @RADIUSD_MINOR_VERSION@
+RADIUSD_INCRM_VERSION  = @RADIUSD_INCRM_VERSION@
 RADIUSD_VERSION                = @RADIUSD_VERSION@
+RADIUSD_VERSION_STRING  = @RADIUSD_VERSION_STRING@
+RADIUSD_VERSION_COMMIT  = @RADIUSD_VERSION_COMMIT@
 
 MODULES                        = @MODULES@
 HOSTINFO               = @HOSTINFO@
index bfd2e63773c722d95efb7c86067e12d5a4addc44..987d980127e02c2c1651f80a3fbfa3d4a3aa52b1 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -154,43 +154,43 @@ certs:
 #  BEFORE running this command!
 #
 ######################################################################
-freeradius-server-$(RADIUSD_VERSION).tar.gz: .git
-       git archive --format=tar --prefix=freeradius-server-$(RADIUSD_VERSION)/ v2.1.x | gzip > $@
+freeradius-server-$(RADIUSD_VERSION_STRING).tar.gz: .git
+       git archive --format=tar --prefix=freeradius-server-$(RADIUSD_VERSION_STRING)/ v2.1.x | gzip > $@
 
-freeradius-server-$(RADIUSD_VERSION).tar.gz.sig: freeradius-server-$(RADIUSD_VERSION).tar.gz
+freeradius-server-$(RADIUSD_VERSION_STRING).tar.gz.sig: freeradius-server-$(RADIUSD_VERSION_STRING).tar.gz
        gpg --default-key aland@freeradius.org -b $<
 
-freeradius-server-$(RADIUSD_VERSION).tar.bz2: .git
-       git archive --format=tar --prefix=freeradius-server-$(RADIUSD_VERSION)/ v2.1.x | bzip2 > $@
+freeradius-server-$(RADIUSD_VERSION_STRING).tar.bz2: .git
+       git archive --format=tar --prefix=freeradius-server-$(RADIUSD_VERSION_STRING)/ v2.1.x | bzip2 > $@
 
-freeradius-server-$(RADIUSD_VERSION).tar.bz2.sig: freeradius-server-$(RADIUSD_VERSION).tar.bz2
+freeradius-server-$(RADIUSD_VERSION_STRING).tar.bz2.sig: freeradius-server-$(RADIUSD_VERSION_STRING).tar.bz2
        gpg --default-key aland@freeradius.org -b $<
 
 # high-level targets
 .PHONY: dist-check
 dist-check: redhat/freeradius.spec suse/freeradius.spec debian/changelog
-       @if [ `grep ^Version: redhat/freeradius.spec | sed 's/.*://;s/ //'` != "$(RADIUSD_VERSION)" ]; then \
-               cat redhat/freeradius.spec | sed 's/^Version: .*/Version: $(RADIUSD_VERSION)/' > redhat/.foo; \
+       @if [ `grep ^Version: redhat/freeradius.spec | sed 's/.*://;s/ //'` != "$(RADIUSD_VERSION_STRING)" ]; then \
+               cat redhat/freeradius.spec | sed 's/^Version: .*/Version: $(RADIUSD_VERSION_STRING)/' > redhat/.foo; \
                mv redhat/.foo redhat/freeradius.spec; \
                echo redhat/freeradius.spec 'Version' needs to be updated; \
                exit 1; \
        fi
-       @if [ `grep ^Version: suse/freeradius.spec | sed 's/.*://;s/ //'` != "$(RADIUSD_VERSION)" ]; then \
-               cat suse/freeradius.spec | sed 's/^Version: .*/Version: $(RADIUSD_VERSION)/' > suse/.foo; \
+       @if [ `grep ^Version: suse/freeradius.spec | sed 's/.*://;s/ //'` != "$(RADIUSD_VERSION_STRING)" ]; then \
+               cat suse/freeradius.spec | sed 's/^Version: .*/Version: $(RADIUSD_VERSION_STRING)/' > suse/.foo; \
                mv suse/.foo suse/freeradius.spec; \
                echo suse/freeradius.spec 'Version' needs to be updated; \
                exit 1; \
        fi
-       @if [ `head -n 1 debian/changelog | sed 's/.*(//;s/\+.*).*//;s/-1).*//;'`  != "$(RADIUSD_VERSION)" ]; then \
+       @if [ `head -n 1 debian/changelog | sed 's/.*(//;s/\+.*).*//;s/-1).*//;'`  != "$(RADIUSD_VERSION_STRING)" ]; then \
                echo debian/changelog needs to be updated; \
                exit 1; \
        fi
 
-dist: dist-check freeradius-server-$(RADIUSD_VERSION).tar.gz freeradius-server-$(RADIUSD_VERSION).tar.bz2
+dist: dist-check freeradius-server-$(RADIUSD_VERSION_STRING).tar.gz freeradius-server-$(RADIUSD_VERSION_STRING).tar.bz2
 
-dist-sign: freeradius-server-$(RADIUSD_VERSION).tar.gz.sig freeradius-server-$(RADIUSD_VERSION).tar.bz2.sig
+dist-sign: freeradius-server-$(RADIUSD_VERSION_STRING).tar.gz.sig freeradius-server-$(RADIUSD_VERSION_STRING).tar.bz2.sig
 
-dist-publish: freeradius-server-$(RADIUSD_VERSION).tar.gz.sig freeradius-server-$(RADIUSD_VERSION).tar.gz freeradius-server-$(RADIUSD_VERSION).tar.gz.sig freeradius-server-$(RADIUSD_VERSION).tar.bz2 freeradius-server-$(RADIUSD_VERSION).tar.gz.sig freeradius-server-$(RADIUSD_VERSION).tar.bz2.sig
+dist-publish: freeradius-server-$(RADIUSD_VERSION_STRING).tar.gz.sig freeradius-server-$(RADIUSD_VERSION_STRING).tar.gz freeradius-server-$(RADIUSD_VERSION_STRING).tar.gz.sig freeradius-server-$(RADIUSD_VERSION_STRING).tar.bz2 freeradius-server-$(RADIUSD_VERSION_STRING).tar.gz.sig freeradius-server-$(RADIUSD_VERSION_STRING).tar.bz2.sig
        scp $^ freeradius.org@ftp.freeradius.org:public_ftp
 #      scp $^ freeradius.org@www.tr.freeradius.org:public_ftp
 
@@ -198,8 +198,8 @@ dist-publish: freeradius-server-$(RADIUSD_VERSION).tar.gz.sig freeradius-server-
 #  Note that we do NOT do the tagging here!  We just print out what
 #  to do!
 #
-dist-tag: freeradius-server-$(RADIUSD_VERSION).tar.gz freeradius-server-$(RADIUSD_VERSION).tar.bz2
-       @echo "git tag release_`echo $(RADIUSD_VERSION) | tr .- __`"
+dist-tag: freeradius-server-$(RADIUSD_VERSION_STRING).tar.gz freeradius-server-$(RADIUSD_VERSION_STRING).tar.bz2
+       @echo "git tag release_`echo $(RADIUSD_VERSION_STRING) | tr .- __`"
 
 #
 #      Build a debian package
index cfa63bcc721e81a0cc886b36febba08e12a18c70..9cf88bd33d131b455495b74ebf316a706b41dc4f 100644 (file)
@@ -27,9 +27,18 @@ AC_CONFIG_HEADER(src/include/autoconf.h)
 AC_REVISION($Revision$)dnl
 
 dnl # The version of the software
-RADIUSD_VERSION=`cat VERSION`
+
 RADIUSD_MAJOR_VERSION=`cat VERSION | sed 's/\..*//'`
-RADIUSD_MINOR_VERSION=`cat VERSION | sed 's/^2\.//'`
+RADIUSD_MINOR_VERSION=`cat VERSION | sed 's/^[^\.]*\.//' | sed 's/\..*$//'`
+RADIUSD_INCRM_VERSION=`cat VERSION | sed 's/^.*\..*\.//' | sed 's/-.*$//'`
+
+RADIUSD_VERSION=`echo | awk -v major="$RADIUSD_MAJOR_VERSION" \
+-v minor="$RADIUSD_MINOR_VERSION" \
+-v incrm="$RADIUSD_INCRM_VERSION" \
+'{ printf "%02i%02i%02i", major, minor, incrm }'`
+
+dnl # Still useful for custom builds
+RADIUSD_VERSION_STRING=`cat VERSION`
 PACKAGE=freeradius
 
 dnl #############################################################
@@ -79,6 +88,9 @@ if test -z "$makever"; then
                from ftp://prep.ai.mit.edu/pub/gnu/make/ before continuing.)
 fi
 
+dnl See if we have Git.
+AC_CHECK_PROG(GIT, git, yes, no)
+
 AC_ARG_WITH(system-libltdl,
 [  --with-system-libltdl   Use the libltdl installed in your system (default=use our own)],
 [
@@ -320,14 +332,16 @@ AC_ARG_ENABLE(developer,
   esac ]
 )
 
-if test "x$developer" != "xno" -a -d $srcdir/CVS; then
-  dnl turn on the developer flag when taken from a CVS checkout (not a release)
-  developer="yes"
-fi
-
-if test "x$developer" != "xno" -a -d $srcdir/.git; then
-  dnl turn on the developer flag when taken from a git checkout (not a release)
-  developer="yes"
+if test -d $srcdir/.git; then
+  if test "x$developer" != "xno"; then
+    dnl turn on the developer flag when taken from a git checkout (not a release)
+    developer="yes"
+  fi  
+  
+  dnl append the current git hash onto the version string
+  if test $GIT = yes; then
+       RADIUSD_VERSION_COMMIT=`git log --pretty=format:'%h' -n 1`
+  fi
 fi
 
 dnl extra argument: --with-experimental-modules
@@ -1217,7 +1231,10 @@ AC_SUBST(USE_STATIC_LIBS)
 AC_SUBST(STATIC_MODULES)
 AC_SUBST(RADIUSD_MAJOR_VERSION)
 AC_SUBST(RADIUSD_MINOR_VERSION)
+AC_SUBST(RADIUSD_INCRM_VERSION)
 AC_SUBST(RADIUSD_VERSION)
+AC_SUBST(RADIUSD_VERSION_STRING)
+AC_SUBST(RADIUSD_VERSION_COMMIT)
 
 AC_OUTPUT(\
        ./Make.inc \
index 55f35bf9136bb834848d78c9f7c160373da4f7c0..2d9fa18f3c08d43051e4ba4d0f11b614e1c00c58 100644 (file)
@@ -19,10 +19,15 @@ INCLUDES    = ../include/autoconf.h ../include/conf.h    \
 CFLAGS         += -I$(top_builddir)/src
 CFLAGS         += -DHOSTINFO=\"${HOSTINFO}\"
 CFLAGS         += -DRADIUSD_VERSION=\"${RADIUSD_VERSION}\"
+CFLAGS         += -DRADIUSD_VERSION_STRING=\"${RADIUSD_VERSION_STRING}\"
+ifdef RADIUSD_VERSION_COMMIT
+CFLAGS         += -DRADIUSD_VERSION_COMMIT=\"${RADIUSD_VERSION_COMMIT}\"
+endif
 CFLAGS         += $(SNMP_INCLUDE)
 CFLAGS         += $(OPENSSL_INCLUDE)
 VFLAGS         = -DRADIUSD_MAJOR_VERSION=$(RADIUSD_MAJOR_VERSION)
 VFLAGS         += -DRADIUSD_MINOR_VERSION=$(RADIUSD_MINOR_VERSION)
+VFLAGS         += -DRADIUSD_INCRM_VERSION=$(RADIUSD_INCRM_VERSION)
 MODULE_LIBS    = $(STATIC_MODULES)
 BINARIES       = radiusd$(EXEEXT) radwho$(EXEEXT) radclient$(EXEEXT) radmin$(EXEEXT) radconf2xml$(EXEEXT)
 
index a11ae6669e9420cb23f06ba0c6dfdf78bf2a8919..655518b3e2ab8a186cf70d82d18017de0d82fbd7 100644 (file)
@@ -85,6 +85,11 @@ typedef struct radclient_t {
 static radclient_t *radclient_head = NULL;
 static radclient_t *radclient_tail = NULL;
 
+const char *radclient_version = "radclient version " RADIUSD_VERSION_STRING
+#ifdef RADIUSD_VERSION_COMMIT
+" (git #" RADIUSD_VERSION_COMMIT ")"
+#endif
+", built on " __DATE__ " at " __TIME__;
 
 static void NEVER_RETURNS usage(void)
 {
@@ -929,7 +934,7 @@ int main(int argc, char **argv)
                        timeout = atof(optarg);
                        break;
                case 'v':
-                       printf("radclient: " RADIUSD_VERSION " built on " __DATE__ " at " __TIME__ "\n");
+                       printf(radclient_version);
                        exit(0);
                        break;
                case 'x':
index 9db0cfa91f68a034c07c4a6ff3acf9d06f32d081..4651052ab81bc5654808d19758e6049bde483819 100644 (file)
@@ -65,7 +65,11 @@ int log_stripped_names;
 int debug_flag = 0;
 int check_config = FALSE;
 
-const char *radiusd_version = "FreeRADIUS Version " RADIUSD_VERSION ", for host " HOSTINFO ", built on " __DATE__ " at " __TIME__;
+const char *radiusd_version = "FreeRADIUS Version " RADIUSD_VERSION_STRING
+#ifdef RADIUSD_VERSION_COMMIT
+" (git #" RADIUSD_VERSION_COMMIT ")"
+#endif
+", for host " HOSTINFO ", built on " __DATE__ " at " __TIME__;
 
 pid_t radius_pid;
 
index e23864443e7ee15b4bce96216527dd10dd023b2b..805276ff8c034dcb933ef29fa6af6ca2e44c531c 100644 (file)
@@ -74,6 +74,12 @@ RCSID("$Id$")
  */
 const char *radius_dir = RADDBDIR;
 const char *progname = "radmin";
+const char *radmin_version = "radmin version " RADIUSD_VERSION_STRING
+#ifdef RADIUSD_VERSION_COMMIT
+" (git #" RADIUSD_VERSION_COMMIT ")"
+#endif
+;
+
 
 /*
  *     The rest of this is because the conffile.c, etc. assume
@@ -502,7 +508,7 @@ int main(int argc, char **argv)
        }
 
        if (!done_license && !quiet) {
-               printf("radmin " RADIUSD_VERSION " - FreeRADIUS Server administration tool.\n");
+               printf("%s - FreeRADIUS Server administration tool.\n", radmin_version);
                printf("Copyright (C) 2008-2012 The FreeRADIUS server project and contributors.\n");
                printf("There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n");
                printf("PARTICULAR PURPOSE.\n");
index 47f104bb6273d92bbbe771c2a02d6c4fa37a30c9..a14719ed4215d4ed0a03aba79a63852dd334bc21 100644 (file)
@@ -27,7 +27,7 @@ TARGET                = $(LIBPREFIX)freeradius-eap
 all: $(TARGET).la
 
 $(TARGET).la: $(LT_OBJS)
-       $(LIBTOOL) --mode=link $(CC) -release $(RADIUSD_VERSION) \
+       $(LIBTOOL) --mode=link $(CC) -release $(RADIUSD_VERSION_STRING) \
        $(LDFLAGS) $(LINK_MODE) -o $@ -rpath $(libdir) $^ \
        $(LIBRADIUS) $(LIBS)
        @for x in .libs/* $^; do \
@@ -44,5 +44,5 @@ clean:
 install: all
        $(LIBTOOL) --mode=install $(INSTALL) -c $(TARGET).la \
                $(R)$(libdir)/$(TARGET).la
-       rm -f $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION).la;
-       ln -s $(TARGET).la $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION).la
+       rm -f $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION_STRING).la;
+       ln -s $(TARGET).la $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION_STRING).la
index d75284a5caa2a46a9cc97dcf0fca7db1d483c61b..05e9930bc09ecc83f71d5cd407f814abf0262f9e 100644 (file)
@@ -101,7 +101,7 @@ build-module: $(TARGET).la
        done
 
 $(TARGET).la: $(LT_OBJS)
-       $(LIBTOOL) --mode=link $(CC) -release $(RADIUSD_VERSION) \
+       $(LIBTOOL) --mode=link $(CC) -release $(RADIUSD_VERSION_STRING) \
        -module $(LINK_MODE) $(LDFLAGS) $(RLM_SQL_LDFLAGS) -o $@ \
        -rpath $(libdir) $^ $(RLM_SQL_LIBS)
 
@@ -147,6 +147,6 @@ install:
        if [ "x$(TARGET)" != "x" ]; then \
            $(LIBTOOL) --mode=install $(INSTALL) -c \
                $(TARGET).la $(R)$(libdir)/$(TARGET).la || exit $$?; \
-           rm -f $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION).la; \
-           ln -s $(TARGET).la $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION).la || exit $$?; \
+           rm -f $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION_STRING).la; \
+           ln -s $(TARGET).la $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION_STRING).la || exit $$?; \
        fi
index 7c213d8bab42963bac59b0c5ff8233095729de18..b7e2141556c573f2b001460bce5e889df8d46e45 100644 (file)
@@ -120,7 +120,7 @@ build-module: $(TARGET).la $(RLM_UTILS)
        done
 
 $(TARGET).la: $(RLM_SUBDIRS) $(LT_OBJS)
-       $(LIBTOOL) --mode=link $(CC) -release $(RADIUSD_VERSION) \
+       $(LIBTOOL) --mode=link $(CC) -release $(RADIUSD_VERSION_STRING) \
        -module $(LINK_MODE) $(LDFLAGS) $(RLM_LDFLAGS) -o $@     \
        -rpath $(libdir) $^ $(LIBRADIUS) $(RLM_LIBS) $(LIBS)
 
@@ -170,6 +170,6 @@ install:
        if [ "x$(TARGET)" != "x" ]; then \
            $(LIBTOOL) --mode=install $(INSTALL) -c \
                $(TARGET).la $(R)$(libdir)/$(TARGET).la || exit $$?; \
-           rm -f $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION).la; \
-           ln -s $(TARGET).la $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION).la || exit $$?; \
+           rm -f $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION_STRING).la; \
+           ln -s $(TARGET).la $(R)$(libdir)/$(TARGET)-$(RADIUSD_VERSION_STRING).la || exit $$?; \
        fi