Skip to content

Commit

Permalink
upstream patch to fix debugsource package creation
Browse files Browse the repository at this point in the history
introduce option to make -ffile-prefix-map flag conditional
from: catchorg/Catch2#2785
  • Loading branch information
jpalus committed Dec 28, 2023
1 parent 357e675 commit 4590f9c
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 1 deletion.
5 changes: 4 additions & 1 deletion catch2.spec
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ License: Boost v1.0
Group: Libraries
Source0: https://github.com/catchorg/Catch2/archive/v%{version}/%{name}-%{version}.tar.gz
# Source0-md5: 8e56bcccbc86e68e916cce0d43450116
Patch0: optional-reproducibility.patch
URL: https://github.com/catchorg/Catch2
BuildRequires: cmake >= 3.10
BuildRequires: libstdc++-devel
Expand All @@ -27,13 +28,15 @@ Header files for catch2 library.

%prep
%setup -q -n Catch2-%{version}
%patch0 -p1

%build
install -d build
cd build
%cmake .. \
-DPKGCONFIG_INSTALL_DIR:PATH="%{_pkgconfigdir}" \
-DCATCH_INSTALL_DOCS:BOOL=OFF
-DCATCH_INSTALL_DOCS:BOOL=OFF \
-DCATCH_ENABLE_REPRODUCIBLE_BUILD:BOOL=OFF

%{__make}

Expand Down
52 changes: 52 additions & 0 deletions optional-reproducibility.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
From 1512dac7e4c2fddadcc15f7ab316ce3d5b67e7f3 Mon Sep 17 00:00:00 2001
From: Jan Palus <[email protected]>
Date: Thu, 28 Dec 2023 00:41:54 +0100
Subject: [PATCH] Make compiler flags for reproducible builds optional

no change in default behavior: -ffile-prefix-map is still added if
supported by compiler but add option for disabling it as it breaks
generic tools for extracting debuginfo/debugsource from build artifacts
like: https://sourceware.org/git/?p=debugedit.git;a=blob;f=scripts/find-debuginfo.in
---
CMakeLists.txt | 1 +
src/CMakeLists.txt | 8 ++++++--
2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2cfb6cd143..20e4036e18 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,6 +11,7 @@ endif()
option(CATCH_INSTALL_DOCS "Install documentation alongside library" ON)
option(CATCH_INSTALL_EXTRAS "Install extras (CMake scripts, debugger helpers) alongside library" ON)
option(CATCH_DEVELOPMENT_BUILD "Build tests, enable warnings, enable Werror, etc" OFF)
+option(CATCH_ENABLE_REPRODUCIBLE_BUILD "Add compiler flags for improving build reproducibility" ON)

include(CMakeDependentOption)
cmake_dependent_option(CATCH_BUILD_TESTING "Build the SelfTest project" ON "CATCH_DEVELOPMENT_BUILD" OFF)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index d01aab2d5c..eb805ddd0b 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -348,7 +348,9 @@ source_group("generated headers"
)

add_library(Catch2 ${ALL_FILES})
-add_build_reproducibility_settings(Catch2)
+if (CATCH_ENABLE_REPRODUCIBLE_BUILD)
+ add_build_reproducibility_settings(Catch2)
+endif()
add_library(Catch2::Catch2 ALIAS Catch2)

if (ANDROID)
@@ -401,7 +403,9 @@ target_include_directories(Catch2
add_library(Catch2WithMain
${SOURCES_DIR}/internal/catch_main.cpp
)
-add_build_reproducibility_settings(Catch2WithMain)
+if (CATCH_ENABLE_REPRODUCIBLE_BUILD)
+ add_build_reproducibility_settings(Catch2WithMain)
+endif()
add_library(Catch2::Catch2WithMain ALIAS Catch2WithMain)
target_link_libraries(Catch2WithMain PUBLIC Catch2)
set_target_properties(Catch2WithMain

0 comments on commit 4590f9c

Please sign in to comment.