Source: evolution-ews Severity: normal Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: buildpath X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org
Builds in a different source directory trigger reproducibility issues with libecalbackendews.so and the RPATH of various other binaries also have different BuildId: https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/diffoscope-results/evolution-ews.html /usr/lib/evolution-data-server/calendar-backends/libecalbackendews.so /build/1st/evolution-ews-3.42.3/src/EWS/calendar vs. /build/2/evolution-ews-3.42.3/2nd/src/EWS/calendar The first patch fixes this by removing the source directory from the CMakeLists.txt that is used to build libecalbackendews.so. I have not tested that this is a correct fix, per se, but it seems unlikely that a transient build directory for an installed .deb package would be present on any end-user system in any useful way. The second patch fixes this by passing arguments to configure to use a relative RPATH instead of embedding the full path. With these patches applied, evolution-ews should build reproducibly on tests.reproducible-builds.org! Thanks for maintaining evolution-ews! live well, vagrant
From 7c50659c1eaa7eab31b887d47f82030ad7dbdba4 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian <vagr...@reproducible-builds.org> Date: Thu, 20 Jan 2022 00:50:56 +0000 Subject: [PATCH 1/2] src/EWS/calendar/CMakeLists.txt: Blank out EXCHANGE_EWS_SRCDIR. The full path to the source gets embedded in libecalbackendews.so, which could not usefully be used on the end-user's installed system when installed from a .deb package. --- src/EWS/calendar/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/EWS/calendar/CMakeLists.txt b/src/EWS/calendar/CMakeLists.txt index 3a6ce02..3530504 100644 --- a/src/EWS/calendar/CMakeLists.txt +++ b/src/EWS/calendar/CMakeLists.txt @@ -26,7 +26,7 @@ target_compile_definitions(ecalbackendews PRIVATE -DG_LOG_DOMAIN=\"ecalbackendews\" -DEXCHANGE_EWS_DATADIR=\"${ewsdatadir}\" -DEXCHANGE_EWS_LOCALEDIR=\"${LOCALE_INSTALL_DIR}\" - -DEXCHANGE_EWS_SRCDIR=\"${CMAKE_CURRENT_SOURCE_DIR}\" + -DEXCHANGE_EWS_SRCDIR=\"\" ) target_compile_options(ecalbackendews PUBLIC -- 2.34.1
From 94874050b068f6c156f989622e4ec065a384cded Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian <vagr...@reproducible-builds.org> Date: Thu, 20 Jan 2022 00:50:11 +0000 Subject: [PATCH 2/2] debian/rules: Pass -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON via dh_auto_configure override. This avoids embedding the full path in RPATH, which triggers BuildId differences. https://tests.reproducible-builds.org/debian/issues/unstable/cmake_rpath_contains_build_path_issue.html --- debian/rules | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/rules b/debian/rules index db3a81a..741f2dc 100755 --- a/debian/rules +++ b/debian/rules @@ -16,6 +16,7 @@ EVO_NEXTVERSION = $(shell pkg-config --modversion evolution-shell-3.0 | awk -F' override_dh_auto_configure: dh_auto_configure -- \ + -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON \ -DSYSCONF_INSTALL_DIR=/etc override_dh_makeshlibs: -- 2.34.1
signature.asc
Description: PGP signature