Skip to content

Navigation Menu

Sign in
Sign up

Fix CMP0153 warnings from diskquota's pg_config probing - #1975

Open
tuhaihe wants to merge 1 commit into
apache:main from
tuhaihe:fix-diskquota-cmp0153
Open

Fix CMP0153 warnings from diskquota's pg_config probing #1975
tuhaihe wants to merge 1 commit into
apache:main from
tuhaihe:fix-diskquota-cmp0153

Conversation

@tuhaihe

@tuhaihe tuhaihe commented Sep 9, 2026

Copy link
Copy Markdown
Member

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

Fixes #ISSUE_Number

What does this PR do?

Type of Change

  • Bug fix (non-breaking change)
  • New feature (non-breaking change)
  • Breaking change (fix or feature with breaking changes)
  • Documentation update

Breaking Changes

Test Plan

  • Unit tests added/updated
  • Integration tests added/updated
  • Passed make installcheck
  • Passed make -C src/test installcheck-cbdb-parallel

Impact

Performance:

User-facing changes:

Dependencies:

Checklist

Additional Context

CI Skip Instructions


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 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@leborchuk leborchuk leborchuk approved these changes

At least 2 approving reviews are required to merge this pull request.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

AltStyle によって変換されたページ (->オリジナル) /