cmake: Remove unnecessary `BITCOIN_GENBUILD_NO_GIT` environment variable
What changed, and why it matters
This commit removes an old environment variable used during Bitcoin Core's build process and replaces its behavior with a standard CMake option. It is a routine build-system cleanup with no security relevance.
No security action required. Treat as a normal build-system refactoring.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch removes the BITCOIN_GENBUILD_NO_GIT environment variable from cmake/script/GenerateBuildInfo.cmake. The same functionality is now provided by CMake’s built-in CMAKE_DISABLE_FIND_PACKAGE_Git variable. The logic is otherwise unchanged: git metadata is still collected when Git is available, and skipped when it is disabled. No executable code, network behavior, or cryptographic operations are modified.
Changed components
cmake/script/GenerateBuildInfo.cmakeInspect captured patch +50 / −52
diff --git a/cmake/script/GenerateBuildInfo.cmake b/cmake/script/GenerateBuildInfo.cmake
index 694961df..62773a3a 100644
--- a/cmake/script/GenerateBuildInfo.cmake
+++ b/cmake/script/GenerateBuildInfo.cmake
@@ -28,71 +28,69 @@ else()
set(WORKING_DIR ${CMAKE_CURRENT_SOURCE_DIR})
endif()
-set(GIT_TAG)
-set(GIT_COMMIT)
-if(NOT "$ENV{BITCOIN_GENBUILD_NO_GIT}" STREQUAL "1")
- if(GIT_EXECUTABLE)
+set(GIT_TAG "")
+set(GIT_COMMIT "")
+if(GIT_EXECUTABLE)
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} rev-parse --is-inside-work-tree
+ WORKING_DIRECTORY ${WORKING_DIR}
+ OUTPUT_VARIABLE IS_INSIDE_WORK_TREE
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET
+ )
+ if(IS_INSIDE_WORK_TREE)
+ # Clean 'dirty' status of touched files that haven't been modified.
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} diff
+ WORKING_DIRECTORY ${WORKING_DIR}
+ OUTPUT_QUIET
+ ERROR_QUIET
+ )
+
execute_process(
- COMMAND ${GIT_EXECUTABLE} rev-parse --is-inside-work-tree
+ COMMAND ${GIT_EXECUTABLE} describe --abbrev=0
WORKING_DIRECTORY ${WORKING_DIR}
- OUTPUT_VARIABLE IS_INSIDE_WORK_TREE
+ OUTPUT_VARIABLE MOST_RECENT_TAG
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
- if(IS_INSIDE_WORK_TREE)
- # Clean 'dirty' status of touched files that haven't been modified.
- execute_process(
- COMMAND ${GIT_EXECUTABLE} diff
- WORKING_DIRECTORY ${WORKING_DIR}
- OUTPUT_QUIET
- ERROR_QUIET
- )
- execute_process(
- COMMAND ${GIT_EXECUTABLE} describe --abbrev=0
- WORKING_DIRECTORY ${WORKING_DIR}
- OUTPUT_VARIABLE MOST_RECENT_TAG
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_QUIET
- )
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} rev-list -1 ${MOST_RECENT_TAG}
+ WORKING_DIRECTORY ${WORKING_DIR}
+ OUTPUT_VARIABLE MOST_RECENT_TAG_COMMIT
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET
+ )
- execute_process(
- COMMAND ${GIT_EXECUTABLE} rev-list -1 ${MOST_RECENT_TAG}
- WORKING_DIRECTORY ${WORKING_DIR}
- OUTPUT_VARIABLE MOST_RECENT_TAG_COMMIT
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_QUIET
- )
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
+ WORKING_DIRECTORY ${WORKING_DIR}
+ OUTPUT_VARIABLE HEAD_COMMIT
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET
+ )
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} diff-index --quiet HEAD --
+ WORKING_DIRECTORY ${WORKING_DIR}
+ RESULT_VARIABLE IS_DIRTY
+ )
+
+ if(HEAD_COMMIT STREQUAL MOST_RECENT_TAG_COMMIT AND NOT IS_DIRTY)
+ # If latest commit is tagged and not dirty, then use the tag name.
+ set(GIT_TAG ${MOST_RECENT_TAG})
+ else()
+ # Otherwise, generate suffix from git, i.e. string like "0e0a5173fae3-dirty".
execute_process(
- COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
+ COMMAND ${GIT_EXECUTABLE} rev-parse --short=12 HEAD
WORKING_DIRECTORY ${WORKING_DIR}
- OUTPUT_VARIABLE HEAD_COMMIT
+ OUTPUT_VARIABLE GIT_COMMIT
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
-
- execute_process(
- COMMAND ${GIT_EXECUTABLE} diff-index --quiet HEAD --
- WORKING_DIRECTORY ${WORKING_DIR}
- RESULT_VARIABLE IS_DIRTY
- )
-
- if(HEAD_COMMIT STREQUAL MOST_RECENT_TAG_COMMIT AND NOT IS_DIRTY)
- # If latest commit is tagged and not dirty, then use the tag name.
- set(GIT_TAG ${MOST_RECENT_TAG})
- else()
- # Otherwise, generate suffix from git, i.e. string like "0e0a5173fae3-dirty".
- execute_process(
- COMMAND ${GIT_EXECUTABLE} rev-parse --short=12 HEAD
- WORKING_DIRECTORY ${WORKING_DIR}
- OUTPUT_VARIABLE GIT_COMMIT
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_QUIET
- )
- if(IS_DIRTY)
- string(APPEND GIT_COMMIT "-dirty")
- endif()
+ if(IS_DIRTY)
+ string(APPEND GIT_COMMIT "-dirty")
endif()
endif()
endif()
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.