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

The build path is embedded in /usr/bin/yersinia:

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

  /build/1st/yersinia-0.8.2/src/yersinia.c:104
  vs.
  /build/2/yersinia-0.8.2/2nd/src/yersinia.c:104

The attached patch to debian/rules fixes this by passing CFLAGS directly
to make, and adding -ffile-prefix-map to CFLAGS to avoid embedding build
paths.

According to my local tests, with this patch applied, yersinia should build
reproducibly on tests.reproducible-builds.org!

Thanks for maintaining yersinia!

live well,
  vagrant
From 07a0c305ca6db96371243184b2c4469fd30c3d11 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagr...@reproducible-builds.org>
Date: Sun, 9 Oct 2022 22:03:45 +0000
Subject: [PATCH] debian/rules: Pass CFLAGS directly to make, and add
 -ffile-prefix-map to CFLAGS to avoid embedding build paths.

https://reproducible-builds.org/docs/build-path/
---
 debian/rules | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/debian/rules b/debian/rules
index 5e53fa6..c2f3893 100755
--- a/debian/rules
+++ b/debian/rules
@@ -16,6 +16,8 @@ endif
 DPKG_EXPORT_BUILDFLAGS = 1
 include /usr/share/dpkg/buildflags.mk
 CFLAGS = -Wall -g
+# Avoid embedding build path for reproducible builds
+CFLAGS += -ffile-prefix-map=$(CURDIR)=.
 
 config.status:
 	dh_testdir
@@ -37,7 +39,7 @@ build-stamp:  config.status
 	dh_testdir
 
 	# Add here commands to compile the package.
-	$(MAKE)
+	$(MAKE) CFLAGS="$(CFLAGS)"
 	#docbook-to-man debian/yersinia.sgml > yersinia.1
 
 	touch build-stamp
-- 
2.37.2

Attachment: signature.asc
Description: PGP signature

Reply via email to