use CMake rpm macros and unset in-source builds #742
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.
The RPM CMake macros under
/usr/lib/rpm/macros.d/macros.cmake
are defined differently for RHEL / AlmaLinux 8 and 9. Specifically, under AlmaLinux 8 in-source builds are enabled via%__cmake_in_source_build 1
and AlmaLinux 9 turns of stripping via-DCMAKE_INSTALL_DO_STRIP:BOOL=OFF
.The effect is that the evaluation of the macros generates different spec files. This can be verified via:
On AlmaLinux 8 this evaluates to:
On AlmaLinux 9 this evaluates to:
Notice the difference in the build path (
-B
,--build
) for the configure and build procedure. On AlmaLinux 8, the build path is the source path due to%__cmake_in_source_build 1
, on AlmaLinux 9, there is a dedicated build folder.This PR fixes the issue by unsetting
__cmake_in_source_build
and thus reverting back to out-of-source builds for both distributions. I am also replacing the manual calls of the "make" macros with their "cmake" counterpart. See https://docs.fedoraproject.org/en-US/packaging-guidelines/CMake/#_available_macros.