summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/VERSION30
-rw-r--r--source3/lib/version.c45
-rwxr-xr-xsource3/script/mkversion.sh6
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 *) #
# #
# <MAJOR>.<MINOR>.<RELEASE>[...]-<VENDOR_SUFFIX> #
# #
@@ -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}"