From: Arran Cudbard-Bell Date: Sat, 27 Oct 2012 20:07:58 +0000 (+0100) Subject: Change version constants to be more useful X-Git-Tag: release_2_2_1~236 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ae56c07bd4b4f561a51e0def499ba07ab231db36;p=thirdparty%2Ffreeradius-server.git Change version constants to be more useful 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 --- diff --git a/Make.inc.in b/Make.inc.in index 98a303107e7..d4230397d12 100644 --- a/Make.inc.in +++ b/Make.inc.in @@ -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@ diff --git a/Makefile b/Makefile index bfd2e63773c..987d980127e 100644 --- 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 diff --git a/configure.in b/configure.in index cfa63bcc721..9cf88bd33d1 100644 --- a/configure.in +++ b/configure.in @@ -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 \ diff --git a/src/main/Makefile.in b/src/main/Makefile.in index 55f35bf9136..2d9fa18f3c0 100644 --- a/src/main/Makefile.in +++ b/src/main/Makefile.in @@ -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) diff --git a/src/main/radclient.c b/src/main/radclient.c index a11ae6669e9..655518b3e2a 100644 --- a/src/main/radclient.c +++ b/src/main/radclient.c @@ -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': diff --git a/src/main/radiusd.c b/src/main/radiusd.c index 9db0cfa91f6..4651052ab81 100644 --- a/src/main/radiusd.c +++ b/src/main/radiusd.c @@ -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; diff --git a/src/main/radmin.c b/src/main/radmin.c index e23864443e7..805276ff8c0 100644 --- a/src/main/radmin.c +++ b/src/main/radmin.c @@ -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"); diff --git a/src/modules/rlm_eap/libeap/Makefile b/src/modules/rlm_eap/libeap/Makefile index 47f104bb627..a14719ed421 100644 --- a/src/modules/rlm_eap/libeap/Makefile +++ b/src/modules/rlm_eap/libeap/Makefile @@ -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 diff --git a/src/modules/rlm_sql/drivers/rules.mak b/src/modules/rlm_sql/drivers/rules.mak index d75284a5caa..05e9930bc09 100644 --- a/src/modules/rlm_sql/drivers/rules.mak +++ b/src/modules/rlm_sql/drivers/rules.mak @@ -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 diff --git a/src/modules/rules.mak b/src/modules/rules.mak index 7c213d8bab4..b7e2141556c 100644 --- a/src/modules/rules.mak +++ b/src/modules/rules.mak @@ -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