Skip to content

Commit

Permalink
Change version constants to be more useful
Browse files Browse the repository at this point in the history
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
  • Loading branch information
arr2036 committed Oct 27, 2012
1 parent d3fa57c commit ae56c07
Show file tree
Hide file tree
Showing 10 changed files with 78 additions and 38 deletions.
3 changes: 3 additions & 0 deletions Make.inc.in
Original file line number Diff line number Diff line change
Expand Up @@ -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@
Expand Down
32 changes: 16 additions & 16 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -154,52 +154,52 @@ 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

#
# 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
Expand Down
37 changes: 27 additions & 10 deletions configure.in
Original file line number Diff line number Diff line change
Expand Up @@ -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 #############################################################
Expand Down Expand Up @@ -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)],
[
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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 \
Expand Down
5 changes: 5 additions & 0 deletions src/main/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
7 changes: 6 additions & 1 deletion src/main/radclient.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down Expand Up @@ -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':
Expand Down
6 changes: 5 additions & 1 deletion src/main/radiusd.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
8 changes: 7 additions & 1 deletion src/main/radmin.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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");
Expand Down
6 changes: 3 additions & 3 deletions src/modules/rlm_eap/libeap/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -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
6 changes: 3 additions & 3 deletions src/modules/rlm_sql/drivers/rules.mak
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down Expand Up @@ -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
6 changes: 3 additions & 3 deletions src/modules/rules.mak
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down Expand Up @@ -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

0 comments on commit ae56c07

Please sign in to comment.