From 1e06bb68bed84e525c55022f789416ffd4793e8d Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Mon, 13 Apr 2020 08:22:43 +0300 Subject: [PATCH 1/5] Drop unused CLIENT_VERSION_SUFFIX macro --- src/clientversion.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/clientversion.cpp b/src/clientversion.cpp index 5d9eaea6d0c..404483231d6 100644 --- a/src/clientversion.cpp +++ b/src/clientversion.cpp @@ -14,11 +14,6 @@ */ const std::string CLIENT_NAME("Satoshi"); -/** - * Client version number - */ -#define CLIENT_VERSION_SUFFIX "" - /** * The following part of the code determines the CLIENT_BUILD variable. @@ -33,7 +28,6 @@ const std::string CLIENT_NAME("Satoshi"); * * if BUILD_DESC is defined, use that literally (output of git-describe) * * if not, but GIT_COMMIT is defined, use v[maj].[min].[rev].[build]-g[commit] * * otherwise, use v[maj].[min].[rev].[build]-unk - * finally CLIENT_VERSION_SUFFIX is added */ //! First, include build.h if requested @@ -66,7 +60,7 @@ const std::string CLIENT_NAME("Satoshi"); #endif #endif -const std::string CLIENT_BUILD(BUILD_DESC CLIENT_VERSION_SUFFIX); +const std::string CLIENT_BUILD(BUILD_DESC); static std::string FormatVersion(int nVersion) { From dc1fba9389de130809834b7832d780ecf4161496 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Sat, 2 May 2020 00:37:44 +0300 Subject: [PATCH 2/5] scripted-diff: Rename share/genbuild.sh macros to more meaningful ones -BEGIN VERIFY SCRIPT- sed -i 's/\bDESC\b/GIT_TAG/' share/genbuild.sh sed -i 's/\bSUFFIX\b/GIT_COMMIT/g' share/genbuild.sh -END VERIFY SCRIPT- --- share/genbuild.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/share/genbuild.sh b/share/genbuild.sh index 81fa2ed5d00..3664c75f4b5 100755 --- a/share/genbuild.sh +++ b/share/genbuild.sh @@ -18,8 +18,8 @@ else exit 1 fi -DESC="" -SUFFIX="" +GIT_TAG="" +GIT_COMMIT="" if [ "${BITCOIN_GENBUILD_NO_GIT}" != "1" ] && [ -e "$(command -v git)" ] && [ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]; then # clean 'dirty' status of touched files that haven't been modified git diff >/dev/null 2>/dev/null @@ -27,18 +27,18 @@ if [ "${BITCOIN_GENBUILD_NO_GIT}" != "1" ] && [ -e "$(command -v git)" ] && [ "$ # 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 2>/dev/null)" ]; then - git diff-index --quiet HEAD -- && DESC=$RAWDESC + git diff-index --quiet HEAD -- && GIT_TAG=$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" + GIT_COMMIT=$(git rev-parse --short HEAD) + git diff-index --quiet HEAD -- || GIT_COMMIT="$GIT_COMMIT-dirty" fi -if [ -n "$DESC" ]; then - NEWINFO="#define BUILD_DESC \"$DESC\"" -elif [ -n "$SUFFIX" ]; then - NEWINFO="#define BUILD_SUFFIX $SUFFIX" +if [ -n "$GIT_TAG" ]; then + NEWINFO="#define BUILD_DESC \"$GIT_TAG\"" +elif [ -n "$GIT_COMMIT" ]; then + NEWINFO="#define BUILD_SUFFIX $GIT_COMMIT" else NEWINFO="// No build information available" fi From 35f1189ea7365c1fdaf7dd9ac5e90fc8af69eae7 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Sat, 2 May 2020 00:44:26 +0300 Subject: [PATCH 3/5] build: Rename BUILD_* macros and the code self-descriptive --- share/genbuild.sh | 4 ++-- src/clientversion.cpp | 29 ++++++++++------------------- 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/share/genbuild.sh b/share/genbuild.sh index 3664c75f4b5..1cf480b4113 100755 --- a/share/genbuild.sh +++ b/share/genbuild.sh @@ -36,9 +36,9 @@ if [ "${BITCOIN_GENBUILD_NO_GIT}" != "1" ] && [ -e "$(command -v git)" ] && [ "$ fi if [ -n "$GIT_TAG" ]; then - NEWINFO="#define BUILD_DESC \"$GIT_TAG\"" + NEWINFO="#define BUILD_GIT_TAG \"$GIT_TAG\"" elif [ -n "$GIT_COMMIT" ]; then - NEWINFO="#define BUILD_SUFFIX $GIT_COMMIT" + NEWINFO="#define BUILD_GIT_COMMIT $GIT_COMMIT" else NEWINFO="// No build information available" fi diff --git a/src/clientversion.cpp b/src/clientversion.cpp index 404483231d6..86f28e01c84 100644 --- a/src/clientversion.cpp +++ b/src/clientversion.cpp @@ -15,24 +15,13 @@ const std::string CLIENT_NAME("Satoshi"); -/** - * The following part of the code determines the CLIENT_BUILD variable. - * Several mechanisms are used for this: - * * first, if HAVE_BUILD_INFO is defined, include build.h, a file that is - * generated by the build environment, possibly containing the output - * of git-describe in a macro called BUILD_DESC - * * secondly, if this is an exported version of the code, GIT_ARCHIVE will - * be defined (automatically using the export-subst git attribute), and - * GIT_COMMIT will contain the commit id. - * * then, three options exist for determining CLIENT_BUILD: - * * if BUILD_DESC is defined, use that literally (output of git-describe) - * * if not, but GIT_COMMIT is defined, use v[maj].[min].[rev].[build]-g[commit] - * * otherwise, use v[maj].[min].[rev].[build]-unk - */ - -//! First, include build.h if requested #ifdef HAVE_BUILD_INFO #include +// The , which is generated by the build environment (share/genbuild.sh), +// could contain only one line of the following: +// - "#define BUILD_GIT_TAG ...", if the top commit is tagged +// - "#define BUILD_GIT_COMMIT ...", if the top commit is not tagged +// - "// No build information available", if proper git information is not available #endif //! git will put "#define GIT_ARCHIVE 1" on the next line inside archives. $Format:%n#define GIT_ARCHIVE 1$ @@ -50,9 +39,11 @@ const std::string CLIENT_NAME("Satoshi"); #define BUILD_DESC_FROM_UNKNOWN(maj, min, rev, build) \ "v" DO_STRINGIZE(maj) "." DO_STRINGIZE(min) "." DO_STRINGIZE(rev) "." DO_STRINGIZE(build) "-unk" -#ifndef BUILD_DESC -#ifdef BUILD_SUFFIX -#define BUILD_DESC BUILD_DESC_WITH_SUFFIX(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD, BUILD_SUFFIX) +#ifdef BUILD_GIT_TAG +#define BUILD_DESC BUILD_GIT_TAG +#else +#ifdef BUILD_GIT_COMMIT +#define BUILD_DESC BUILD_DESC_WITH_SUFFIX(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD, BUILD_GIT_COMMIT) #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 From 8f9f4ba5e2b738fb63c2d6cdcfdce5c169d4e88c Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Sat, 2 May 2020 00:48:35 +0300 Subject: [PATCH 4/5] refactor: Remove duplicated code --- share/genbuild.sh | 2 +- src/clientversion.cpp | 30 ++++++++++++------------------ 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/share/genbuild.sh b/share/genbuild.sh index 1cf480b4113..1153df933fa 100755 --- a/share/genbuild.sh +++ b/share/genbuild.sh @@ -38,7 +38,7 @@ fi if [ -n "$GIT_TAG" ]; then NEWINFO="#define BUILD_GIT_TAG \"$GIT_TAG\"" elif [ -n "$GIT_COMMIT" ]; then - NEWINFO="#define BUILD_GIT_COMMIT $GIT_COMMIT" + NEWINFO="#define BUILD_GIT_COMMIT \"$GIT_COMMIT\"" else NEWINFO="// No build information available" fi diff --git a/src/clientversion.cpp b/src/clientversion.cpp index 86f28e01c84..cd8eebc7601 100644 --- a/src/clientversion.cpp +++ b/src/clientversion.cpp @@ -30,28 +30,22 @@ 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 - -#define BUILD_DESC_FROM_UNKNOWN(maj, min, rev, build) \ - "v" DO_STRINGIZE(maj) "." DO_STRINGIZE(min) "." DO_STRINGIZE(rev) "." DO_STRINGIZE(build) "-unk" - #ifdef BUILD_GIT_TAG -#define BUILD_DESC BUILD_GIT_TAG + #define BUILD_DESC BUILD_GIT_TAG + #define BUILD_SUFFIX "" #else -#ifdef BUILD_GIT_COMMIT -#define BUILD_DESC BUILD_DESC_WITH_SUFFIX(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD, BUILD_GIT_COMMIT) -#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) -#endif + #define BUILD_DESC "v" STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) \ + "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD) + #ifdef BUILD_GIT_COMMIT + #define BUILD_SUFFIX "-" BUILD_GIT_COMMIT + #elif defined(GIT_COMMIT_ID) + #define BUILD_SUFFIX "-g" GIT_COMMIT_ID + #else + #define BUILD_SUFFIX "-unk" + #endif #endif -const std::string CLIENT_BUILD(BUILD_DESC); +const std::string CLIENT_BUILD(BUILD_DESC BUILD_SUFFIX); static std::string FormatVersion(int nVersion) { From c269e618cf53634d3cf270273ab1b0354dc3c119 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Sat, 2 May 2020 01:07:34 +0300 Subject: [PATCH 5/5] Drop unused GIT_COMMIT_DATE macro --- src/clientversion.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/clientversion.cpp b/src/clientversion.cpp index cd8eebc7601..993967a1807 100644 --- a/src/clientversion.cpp +++ b/src/clientversion.cpp @@ -24,11 +24,7 @@ const std::string CLIENT_NAME("Satoshi"); // - "// No build information available", if proper git information is not available #endif -//! git will put "#define GIT_ARCHIVE 1" on the next line inside archives. $Format:%n#define GIT_ARCHIVE 1$ -#ifdef GIT_ARCHIVE -#define GIT_COMMIT_ID "$Format:%H$" -#define GIT_COMMIT_DATE "$Format:%cD$" -#endif +//! git will put "#define GIT_COMMIT_ID ..." on the next line inside archives. $Format:%n#define GIT_COMMIT_ID "%H"$ #ifdef BUILD_GIT_TAG #define BUILD_DESC BUILD_GIT_TAG