Source: xdmf
Severity: normal
Tags: patch
User: reproducible-bui...@lists.alioth.debian.org
Usertags: buildpath usrmerge kernel
X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org

The build path, kernel version and path to the uname binary are
embedded in /usr/lib/x86_64-linux-gnu/cmake/Xdmf/XdmfConfig.cmake,
which cause reproducibility issues.

  
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/diffoscope-results/xdmf.html

  set(XDMF_CMAKE_BINARY_DIR 
"/build/1st/xdmf-3.0+git20190531/debian/build-mpi-python3.9")
  vs.
  set(XDMF_CMAKE_BINARY_DIR 
"/build/2/xdmf-3.0+git20190531/2nd/debian/build-mpi-python3.9")

The attached patch fixes this by sanitizing these values in the
XdmfConfig.cmake file.

It is unclear if XdmfConfig.cmake actually needs to be included in the
package; a better course of action might be to remove the file entirely.


With this patch applied(or removing XdmfConfig.cmake from the package),
xdmf should become reproducible on tests.reproducible-builds.org.


Thanks for maintaining xdmf!


live well,
  vagrant
From 143591a985b25b0baf340537af7a00d51ac9fde1 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagr...@reproducible-builds.org>
Date: Mon, 27 Sep 2021 00:04:08 +0000
Subject: [PATCH] debian/rules: Sanitize XdmfConfig.cmake to fix
 reproducibility issues.

The build path, kernel version and path to the uname binary are
embedded in /usr/lib/x86_64-linux-gnu/cmake/Xdmf/XdmfConfig.cmake,
which cause reproducibility issues.

https://tests.reproducible-builds.org/debian/issues/captures_build_path_issue.html
https://tests.reproducible-builds.org/debian/issues/captures_kernel_version_via_CMAKE_SYSTEM_issue.html
https://tests.reproducible-builds.org/debian/issues/paths_vary_due_to_usrmerge_issue.html
---
 debian/rules | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/debian/rules b/debian/rules
index 321ae850..c95f8b43 100755
--- a/debian/rules
+++ b/debian/rules
@@ -91,6 +91,12 @@ override_dh_auto_install:
 		cp debian/build-serial-$$p/lib/__*.so   $(PY3DEST)/usr/lib/$$p/dist-packages/xdmf/NoMpi ; \
 		cp debian/build-mpi-$$p/lib/__*.so   $(PY3DEST)/usr/lib/$$p/dist-packages/xdmf ; \
 		done
+	# Remove build path and kernel version, and adjust path to
+	# uname to make build reproducible
+	sed -i -e "s,$(CURDIR),BUILDDIR,g" \
+		-e "s,/usr/bin/uname,/bin/uname,g" \
+		-e "s,$(shell uname -r),,g" \
+		debian/tmp/usr/lib/x86_64-linux-gnu/cmake/Xdmf/XdmfConfig.cmake
 
 override_dh_auto_fixperms:
 	dh_auto_fixperms
-- 
2.30.2

Attachment: signature.asc
Description: PGP signature

Reply via email to