Source: pacman
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/games/pacman:

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

  /build/1st/pacman-10/pac.cc:85
  vs.
  /build/2/pacman-10/2nd/pac.cc:85

The attached patch fixes this adjusting the generated Makefile from
debian/rules to include -ffile-prefix-map in the CXXFLAGS_DEFINES
variable.

Alternately, it might be worth using "dpkg-buildflags --get CXXFLAGS"
instead of hard-coding -ffile-prefix-map, and will benefit from other
useful flags as well.

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

Thanks for maintaining pacman!

live well,
  vagrant
From c2c6a41d218ae21765360832814e1d61d887f529 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagr...@reproducible-builds.org>
Date: Sun, 9 Oct 2022 00:20:22 +0000
Subject: [PATCH 1/2] debian/rules: Add -ffile-prefix-map to CXXEXTRA_DEFINES
 in generated Makefile to avoid embedding build paths.

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

diff --git a/debian/rules b/debian/rules
index 406e691..5092f98 100755
--- a/debian/rules
+++ b/debian/rules
@@ -10,6 +10,8 @@ build-indep: build-stamp
 build-stamp:
 	dh_testdir
 	xmkmf -a
+	# Avoid embedding build path
+	sed -i -e "s,CXXEXTRA_DEFINES =,CXXEXTRA_DEFINES = -ffile-prefix-map=$(CURDIR)=.,g" Makefile
 	$(MAKE)
 	touch build-stamp
 
-- 
2.37.2

Attachment: signature.asc
Description: PGP signature

Reply via email to