From 3d20cd5f61fff33fe5fffd6efddf2c942c8dd2f9 Mon Sep 17 00:00:00 2001 From: Warren Togami Date: Sat, 12 Apr 2014 14:06:07 -1000 Subject: [PATCH] VERSION obtained from source instead of the previous git tag. Drawback: The version string is no longer a valid git identifier. For this reason the 'g' short hash prefix has been removed. Exception: When building directly from a tag this behaves exactly like the previous behavior. This allows formatting release versions with precision i.e. v0.9.2 This also allows arbitrary topicbranch names i.e. v0.9.1-glibc-compat --- doc/README.md | 2 +- doc/README_windows.txt | 2 +- doc/release-process.md | 2 -- share/genbuild.sh | 14 ++++++++++++-- src/clientversion.h | 4 ++-- src/version.cpp | 7 ++++++- 6 files changed, 22 insertions(+), 9 deletions(-) diff --git a/doc/README.md b/doc/README.md index a21582458..f5aeb34a3 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,4 +1,4 @@ -Bitcoin 0.9.0 BETA +Bitcoin 0.9.99 BETA ===================== Copyright (c) 2009-2014 Bitcoin Developers diff --git a/doc/README_windows.txt b/doc/README_windows.txt index abca4894e..18fd4216f 100644 --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -1,4 +1,4 @@ -Bitcoin 0.9.0rc1 BETA +Bitcoin 0.9.99 BETA Copyright (c) 2009-2014 Bitcoin Core Developers diff --git a/doc/release-process.md b/doc/release-process.md index bf289805c..cd60684f4 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -8,8 +8,6 @@ Release Process ###update (commit) version in sources - - bitcoin-qt.pro contrib/verifysfbinaries/verify.sh doc/README* share/setup.nsi diff --git a/share/genbuild.sh b/share/genbuild.sh index afa4b4ccb..6890a6eba 100755 --- a/share/genbuild.sh +++ b/share/genbuild.sh @@ -14,13 +14,21 @@ else fi DESC="" +SUFFIX="" LAST_COMMIT_DATE="" if [ -e "$(which git)" -a -d ".git" ]; then # clean 'dirty' status of touched files that haven't been modified git diff >/dev/null 2>/dev/null - # get a string like "v0.6.0-66-g59887e8-dirty" - DESC="$(git describe --dirty 2>/dev/null)" + # if latest commit is tagged and not dirty, then override using the tag name + RAWDESC=$(git describe --abbrev=0 2>/dev/null) + if [ "$(git rev-parse HEAD)" = "$(git rev-list -1 $RAWDESC)" ]; then + git diff-index --quiet HEAD -- && DESC=$RAWDESC + fi + + # otherwise generate suffix from git, i.e. string like "59887e8-dirty" + SUFFIX=$(git rev-parse --short HEAD) + git diff-index --quiet HEAD -- || SUFFIX="$SUFFIX-dirty" # get a string like "2012-04-10 16:27:19 +0200" LAST_COMMIT_DATE="$(git log -n 1 --format="%ci")" @@ -28,6 +36,8 @@ fi if [ -n "$DESC" ]; then NEWINFO="#define BUILD_DESC \"$DESC\"" +elif [ -n "$SUFFIX" ]; then + NEWINFO="#define BUILD_SUFFIX $SUFFIX" else NEWINFO="// No build information available" fi diff --git a/src/clientversion.h b/src/clientversion.h index 8d0f89c71..29b4aa376 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -11,8 +11,8 @@ // These need to be macros, as version.cpp's and bitcoin-qt.rc's voodoo requires it #define CLIENT_VERSION_MAJOR 0 #define CLIENT_VERSION_MINOR 9 -#define CLIENT_VERSION_REVISION 0 -#define CLIENT_VERSION_BUILD 99 +#define CLIENT_VERSION_REVISION 99 +#define CLIENT_VERSION_BUILD 0 // Set to true for release, false for prerelease or test build #define CLIENT_VERSION_IS_RELEASE false diff --git a/src/version.cpp b/src/version.cpp index 904451ac5..51e34aa9c 100644 --- a/src/version.cpp +++ b/src/version.cpp @@ -40,6 +40,9 @@ const std::string CLIENT_NAME("Satoshi"); # define GIT_COMMIT_DATE "$Format:%cD$" #endif +#define BUILD_DESC_WITH_SUFFIX(maj,min,rev,build,suffix) \ + "v" DO_STRINGIZE(maj) "." DO_STRINGIZE(min) "." DO_STRINGIZE(rev) "." DO_STRINGIZE(build) "-" DO_STRINGIZE(suffix) + #define BUILD_DESC_FROM_COMMIT(maj,min,rev,build,commit) \ "v" DO_STRINGIZE(maj) "." DO_STRINGIZE(min) "." DO_STRINGIZE(rev) "." DO_STRINGIZE(build) "-g" commit @@ -47,7 +50,9 @@ const std::string CLIENT_NAME("Satoshi"); "v" DO_STRINGIZE(maj) "." DO_STRINGIZE(min) "." DO_STRINGIZE(rev) "." DO_STRINGIZE(build) "-unk" #ifndef BUILD_DESC -# ifdef GIT_COMMIT_ID +# ifdef BUILD_SUFFIX +# define BUILD_DESC BUILD_DESC_WITH_SUFFIX(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD, BUILD_SUFFIX) +# elif defined(GIT_COMMIT_ID) # define BUILD_DESC BUILD_DESC_FROM_COMMIT(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD, GIT_COMMIT_ID) # else # define BUILD_DESC BUILD_DESC_FROM_UNKNOWN(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD)