-
Notifications
You must be signed in to change notification settings - Fork 246
Fix CMP0153 warnings from diskquota's pg_config probing - #1975
Open
tuhaihe wants to merge 1 commit into
Open
Conversation
cmake/Gpdb.cmake queries pg_config through exec_program(), which is deprecated. CMake 3.30 added CMP0153 for it, so each of the eleven calls now prints a developer warning: CMake Warning (dev) at cmake/Gpdb.cmake:30 (exec_program): Policy CMP0153 is not set: The exec_program command should not be called. Run "cmake --help-policy CMP0153" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Use execute_process() instead. Call Stack (most recent call first): CMakeLists.txt:15 (include) This warning is for project developers. Use -Wno-dev to suppress it. Route the queries through a pg_config_var() macro over execute_process(). The one behavioural difference that matters is that execute_process() keeps the trailing newline where exec_program() stripped it, so OUTPUT_STRIP_TRAILING_WHITESPACE is required; without it every path would carry a newline into include_directories() and the libpq link line. Today the warning is only noise, since configure still succeeds. It stops being noise if the declared minimum ever reaches 3.30, because CMP0153's NEW behaviour turns exec_program() into a hard error. Verified on CMake 3.30.5, where the warning appears: all eleven warnings go away, and the fourteen variables Gpdb.cmake derives, PG_INCLUDE_DIR through GP_VERSION, come out byte-identical before and after. diskquota still builds clean on Rocky 8 with CMake 3.26.5. Assisted-by: Claude Code Backpatch-through: REL_2_STABLE
leborchuk
leborchuk
approved these changes
Sep 9, 2026
@leborchuk
leborchuk
left a comment
Contributor
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
cmake/Gpdb.cmake queries pg_config through exec_program(), which is deprecated. CMake 3.30 added CMP0153 for it, so each of the eleven calls now prints a developer warning:
Route the queries through a pg_config_var() macro over execute_process(). The one behavioural difference that matters is that execute_process() keeps the trailing newline where exec_program() stripped it, so OUTPUT_STRIP_TRAILING_WHITESPACE is required; without it every path would carry a newline into include_directories() and the libpq link line.
Today the warning is only noise, since configure still succeeds. It stops being noise if the declared minimum ever reaches 3.30, because CMP0153's NEW behaviour turns exec_program() into a hard error.
Verified on CMake 3.30.5, where the warning appears: all eleven warnings go away, and the fourteen variables Gpdb.cmake derives, PG_INCLUDE_DIR through GP_VERSION, come out byte-identical before and after. diskquota still builds clean on Rocky 8 with CMake 3.26.5.
Assisted-by: Claude Code
Backpatch-through: REL_2_STABLE
Fixes #ISSUE_Number
What does this PR do?
Type of Change
Breaking Changes
Test Plan
make installcheckmake -C src/test installcheck-cbdb-parallelImpact
Performance:
User-facing changes:
Dependencies:
Checklist
Additional Context
CI Skip Instructions