From 4590f9ca9315ccf16d63df4aa91b28a953abdfb0 Mon Sep 17 00:00:00 2001 From: Jan Palus Date: Thu, 28 Dec 2023 21:30:11 +0100 Subject: [PATCH] upstream patch to fix debugsource package creation introduce option to make -ffile-prefix-map flag conditional from: https://github.com/catchorg/Catch2/pull/2785 --- catch2.spec | 5 +++- optional-reproducibility.patch | 52 ++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 optional-reproducibility.patch diff --git a/catch2.spec b/catch2.spec index c011885..fac53cb 100644 --- a/catch2.spec +++ b/catch2.spec @@ -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 @@ -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} diff --git a/optional-reproducibility.patch b/optional-reproducibility.patch new file mode 100644 index 0000000..ed2688e --- /dev/null +++ b/optional-reproducibility.patch @@ -0,0 +1,52 @@ +From 1512dac7e4c2fddadcc15f7ab316ce3d5b67e7f3 Mon Sep 17 00:00:00 2001 +From: Jan Palus +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