diff --git a/build-config.h.cmake b/build-config.h.cmake index b9300ed1217..6976d3eddf3 100644 --- a/build-config.h.cmake +++ b/build-config.h.cmake @@ -94,6 +94,14 @@ #define BUILD_VERSION_POINT ${HPCC_POINT} #endif +#ifndef BUILD_MATURITY + #define BUILD_MATURITY "${HPCC_MATURITY}" +#endif + +#ifndef BUILD_TAG_TIMESTAMP + #define BUILD_TAG_TIMESTAMP "${HPCC_TAG_TIMESTAMP}" +#endif + #ifndef BASE_BUILD_TAG #cmakedefine BASE_BUILD_TAG "${BASE_BUILD_TAG}" #endif diff --git a/esp/scm/ws_workunits_req_resp.ecm b/esp/scm/ws_workunits_req_resp.ecm index 96ea02740b1..d45d38c733a 100644 --- a/esp/scm/ws_workunits_req_resp.ecm +++ b/esp/scm/ws_workunits_req_resp.ecm @@ -936,6 +936,7 @@ ESPresponse [exceptions_inline] WUCreateZAPInfoResponse ESPrequest [nil_remove] WUCheckFeaturesRequest { + boolean IncludeFullVersion(false); }; ESPresponse [exceptions_inline] WUCheckFeaturesResponse @@ -945,6 +946,12 @@ ESPresponse [exceptions_inline] WUCheckFeaturesResponse int BuildVersionPoint; unsigned maxRequestEntityLength; ESPStruct DeploymentFeatures Deployment; + //The following fields are only generated if IncludeFullVersion is set. Normally the fields would be versioned, + //but this change is applied to a much earlier version and the version number has been incremented several times, + //so that approach cannot be used. + string BuildVersion; + string BuildMaturity; + string BuildTagTimestamp; }; ESPrequest [nil_remove] WUGetStatsRequest diff --git a/esp/services/ws_workunits/ws_workunitsService.cpp b/esp/services/ws_workunits/ws_workunitsService.cpp index f03f12460fa..1fc6d6b9b50 100644 --- a/esp/services/ws_workunits/ws_workunitsService.cpp +++ b/esp/services/ws_workunits/ws_workunitsService.cpp @@ -5068,6 +5068,13 @@ bool CWsWorkunitsEx::onWUCheckFeatures(IEspContext &context, IEspWUCheckFeatures resp.setBuildVersionMajor(hpccBuildInfo.buildVersionMajor); resp.setBuildVersionMinor(hpccBuildInfo.buildVersionMinor); resp.setBuildVersionPoint(hpccBuildInfo.buildVersionPoint); + //This does not check version because a consistent version could not be used for all the places it was included + if (req.getIncludeFullVersion()) + { + resp.setBuildVersion(hpccBuildInfo.buildTag); + resp.setBuildMaturity(hpccBuildInfo.buildMaturity); + resp.setBuildTagTimestamp(hpccBuildInfo.buildTagTimestamp); + } resp.setMaxRequestEntityLength(maxRequestEntityLength); resp.updateDeployment().setUseCompression(true); return true; diff --git a/system/jlib/jutil.cpp b/system/jlib/jutil.cpp index f4c2438835f..c8b1b615e32 100644 --- a/system/jlib/jutil.cpp +++ b/system/jlib/jutil.cpp @@ -109,6 +109,8 @@ static void initBuildVars() hpccBuildInfo.buildVersionMinor = BUILD_VERSION_MINOR; hpccBuildInfo.buildVersionPoint = BUILD_VERSION_POINT; hpccBuildInfo.buildVersion = estringify(BUILD_VERSION_MAJOR) "." estringify(BUILD_VERSION_MINOR) "." estringify(BUILD_VERSION_POINT); + hpccBuildInfo.buildMaturity = BUILD_MATURITY; + hpccBuildInfo.buildTagTimestamp = BUILD_TAG_TIMESTAMP; hpccBuildInfo.dirName = DIR_NAME; hpccBuildInfo.prefix = PREFIX; diff --git a/system/jlib/jutil.hpp b/system/jlib/jutil.hpp index acb43c486ec..c6b924b97d4 100644 --- a/system/jlib/jutil.hpp +++ b/system/jlib/jutil.hpp @@ -635,6 +635,8 @@ struct HPCCBuildInfo unsigned buildVersionMinor; unsigned buildVersionPoint; const char *buildVersion; + const char *buildMaturity; + const char *buildTagTimestamp; }; extern jlib_decl HPCCBuildInfo hpccBuildInfo; diff --git a/vcpkg b/vcpkg index 18c2f88e281..8e7b6f66fa9 160000 --- a/vcpkg +++ b/vcpkg @@ -1 +1 @@ -Subproject commit 18c2f88e28115aff24952cab5b6879c19b9bb1f3 +Subproject commit 8e7b6f66fa9458274b22e0b921e8c0e91b49bce0 diff --git a/version.cmake b/version.cmake index db2534f1fab..26035fd9815 100644 --- a/version.cmake +++ b/version.cmake @@ -8,4 +8,5 @@ set ( HPCC_MINOR 12 ) set ( HPCC_POINT 65 ) set ( HPCC_MATURITY "closedown" ) set ( HPCC_SEQUENCE 0 ) +set ( HPCC_TAG_TIMESTAMP "1970-01-01T01:00:00Z" ) ###