From 2a8ebdca535aed431d51270a2bdcafce0b55bb12 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 17 Jul 2008 12:25:31 +0200 Subject: Simplify samba_version_string. This adds a new macro for a vender version function which will be returned by the samba_version_string() function if defined. Signed-off-by: Andreas Schneider Signed-off-by: Stefan Metzmacher (This used to be commit 8b9301fbc73f28c657ec81c605760a0ff7a1973a) --- source3/VERSION | 30 ++++++++++++++++++------------ source3/lib/version.c | 45 +++++++++++---------------------------------- source3/script/mkversion.sh | 6 ++++++ 3 files changed, 35 insertions(+), 46 deletions(-) diff --git a/source3/VERSION b/source3/VERSION index c8206c804f..758956e9f7 100644 --- a/source3/VERSION +++ b/source3/VERSION @@ -72,8 +72,6 @@ SAMBA_VERSION_IS_GIT_SNAPSHOT=yes ######################################################## # This can be set by vendors if they want... # -# This can be a string constant or a function which # -# returns a string (const char *) # # # # ..[...]- # # # @@ -82,18 +80,26 @@ SAMBA_VERSION_IS_GIT_SNAPSHOT=yes # e.g. SAMBA_VERSION_VENDOR_SUFFIX="VendorVersion" # # -> "CVS 3.0.0rc2-VendorVersion" # # # -# Note: If you want to use a function, # -# then patch lib/version.c and add this function # -# there, because the symbol must be available in # -# binary. # +# Note: If you want to use a function, take a look at # +# SAMBA_VERSION_VENDOR_FUNCTION # # # -# const char *vendor_version(void) # +######################################################## +SAMBA_VERSION_VENDOR_SUFFIX="test" +SAMBA_VERSION_VENDOR_PATCH= + +######################################################## +# This can be set by vendors if they want.. # +# This have to be a function which returns a string # +# (const char *). # +# # +# Patch for example lib/version.c and add something # +# like the following example: # +# # +# const char *samba_vendor_version(void) # # { # -# return "VendorVersion"; # +# return SAMBA_VERSION_OFFICIAL_STRING "-ENREDO-1.0" # # } # # # -# e.g. SAMBA_VERSION_VENDOR_SUFFIX=vendor_version() # -# -> "CVS 3.0.0rc2-VendorVersion" # +# -> "Version 3.2.0-ENREDO-1.0 # ######################################################## -SAMBA_VERSION_VENDOR_SUFFIX="test" -SAMBA_VERSION_VENDOR_PATCH= +SAMBA_VERSION_VENDOR_FUNCTION= diff --git a/source3/lib/version.c b/source3/lib/version.c index 3cae02ad2e..3982646f56 100644 --- a/source3/lib/version.c +++ b/source3/lib/version.c @@ -23,39 +23,16 @@ const char *samba_version_string(void) { -#ifndef SAMBA_VERSION_VENDOR_SUFFIX +#ifdef SAMBA_VERSION_VENDOR_FUNCTION + return SAMBA_VERSION_VENDOR_FUNCTION; +#else /* SAMBA_VERSION_VENDOR_FUNCTION */ + #ifdef SAMBA_VERSION_VENDOR_SUFFIX + #ifdef SAMBA_VERSION_VENDOR_PATCH + return SAMBA_VERSION_OFFICIAL_STRING "-" SAMBA_VERSION_VENDOR_SUFFIX \ + "-" SAMBA_VERSION_VENDOR_PATCH; + #endif /* SAMBA_VERSION_VENDOR_PATCH */ + return SAMBA_VERSION_OFFICIAL_STRING "-" SAMBA_VERSION_VENDOR_SUFFIX; + #endif /* SAMBA_VERSION_VENDOR_SUFFIX */ +#endif /* SAMBA_VERSION_VENDOR_FUNCTION */ return SAMBA_VERSION_OFFICIAL_STRING; -#else - static char *samba_version; - int res; -#ifdef SAMBA_VERSION_VENDOR_PATCH - char *tmp_version; -#endif - - if (samba_version != NULL) - return samba_version; - - res = asprintf(&samba_version, "%s-%s", - SAMBA_VERSION_OFFICIAL_STRING, - SAMBA_VERSION_VENDOR_SUFFIX); - /* - * Can't use smb_panic here due to dependencies - */ - assert(res != -1); - -#ifdef SAMBA_VERSION_VENDOR_PATCH - res = asprintf(&tmp_version, "%s-%d", samba_version, - SAMBA_VERSION_VENDOR_PATCH); - /* - * Can't use smb_panic here due to dependencies - */ - assert(res != -1); - - SAFE_FREE(samba_version); - - samba_version = tmp_version; -#endif - - return samba_version; -#endif } diff --git a/source3/script/mkversion.sh b/source3/script/mkversion.sh index b678476976..695fc7dd9c 100755 --- a/source3/script/mkversion.sh +++ b/source3/script/mkversion.sh @@ -30,6 +30,8 @@ SAMBA_VERSION_RELEASE_NICKNAME=`sed -n 's/^SAMBA_VERSION_RELEASE_NICKNAME=//p' $ SAMBA_VERSION_VENDOR_SUFFIX=`sed -n 's/^SAMBA_VERSION_VENDOR_SUFFIX=//p' $SOURCE_DIR$VERSION_FILE` SAMBA_VERSION_VENDOR_PATCH=`sed -n 's/^SAMBA_VERSION_VENDOR_PATCH=//p' $SOURCE_DIR$VERSION_FILE` +SAMBA_VERSION_VENDOR_FUNCTION=`sed -n 's/^SAMBA_VERSION_VENDOR_FUNCTION=//p' $SOURCE_DIR$VERSION_FILE` + echo "/* Autogenerated by script/mkversion.sh */" > $OUTPUT_FILE echo "#define SAMBA_VERSION_MAJOR ${SAMBA_VERSION_MAJOR}" >> $OUTPUT_FILE @@ -101,6 +103,10 @@ echo "#define SAMBA_VERSION_OFFICIAL_STRING \"${SAMBA_VERSION_STRING}\"" >> $OUT ## ## Add the vendor string if present ## +if test -n "${SAMBA_VERSION_VENDOR_FUNCTION}"; then + echo "#define SAMBA_VERSION_VENDOR_FUNCTION ${SAMBA_VERSION_VENDOR_FUNCTION}" >> $OUTPUT_FILE +fi + if test -n "${SAMBA_VERSION_VENDOR_SUFFIX}";then echo "#define SAMBA_VERSION_VENDOR_SUFFIX ${SAMBA_VERSION_VENDOR_SUFFIX}" >> $OUTPUT_FILE SAMBA_VERSION_STRING="${SAMBA_VERSION_STRING}-${SAMBA_VERSION_VENDOR_SUFFIX}" -- cgit