Zandronum Chat on our Discord Server Get the latest version: 3.0
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003256Doomseeker[All Projects] Bugpublic2017-09-07 21:552019-06-12 00:23
Assigned ToPol M 
Platformx86_64OSDebian GNU/LinuxOS Versionbuster/sid
Product Version1.1 
Target VersionFixed in Version 
Summary0003256: Failure to reproduce builds with variations in build path
DescriptionThe build system is not entirely deterministic, or the build environment of officially released binaries is not recorded or pre-defined.

Variations in build path create different binary results.
Steps To ReproduceTo keep this simple, I have to abstract this a little bit. On the high level, consider two paths: "1st" and "2nd".

  1. Path "1st" is build normally.

  2. Path "2nd" is built from a clean environment and renamed to "2nd.orig" for future reference.

  3. Path "2nd" is re-created and built from a clean environment.

To make sure my build environment was clean, I always extracted from the source distribution to a path and did not exercise running make clean.

"1st" and "2nd" binaries differ. "2nd.orig" and "2nd" binaries are identical.

dpkg.log has the full list of packages in the environment.
Additional InformationCMake's -C option for initial cache was not used. I ignored the differences in CMake's output and error logs as out of scope.

Doomseeker and libwadseeker have no special documentation about reproducible builds.
Attached Fileslog file icon dpkg.log [^] (152,943 bytes) 2017-09-07 21:55
log file icon doomseeker-diff.log [^] (21,211 bytes) 2017-09-07 21:55
log file icon libwadseeker-diff.log [^] (3,326 bytes) 2017-09-07 21:56
diff file icon CMakeCache.diff [^] (658 bytes) 2017-09-07 22:06 [Show Content]
diff file icon doomseeker-2nd-2nd_orig.diff [^] (258 bytes) 2017-09-07 22:21 [Show Content]
diff file icon libwadseeker-2nd-2nd_orig.diff [^] (266 bytes) 2017-09-07 22:21 [Show Content]
gz file icon diffoscope-v86.log.gz [^] (333,690 bytes) 2017-09-08 00:41
gz file icon diffoscope-deb.log.gz [^] (13,319 bytes) 2017-09-08 01:32

- Relationships
related to 0003239closedZalewa engines/ Defines RPATH from somewhere 
child of 0003255confirmed Support reproducible, deterministic builds 

-  Notes
User avatar (0018239)
WubTheCaptain (developer)
2017-09-07 21:57

For clarification: I followed only the instructions provided in COMPILE.txt:

mkdir build
cd build
cmake ..
User avatar (0018243)
WubTheCaptain (developer)
2017-09-08 00:45
edited on: 2017-09-08 00:46

The underlying cause seems to be RPATH or RUNPATH: 0003239

User avatar (0018245)
WubTheCaptain (developer)
2017-09-08 01:33

Uploaded a diffoscope v86 from .deb builds, it's a bit cleaner.
User avatar (0018446)
WubTheCaptain (developer)
2017-10-05 01:52

Needs to be tested with 0003239.
User avatar (0018468)
WubTheCaptain (developer)
2017-10-07 11:56

Per comments in 0003239, – though I did not explicitly test this – I believe this is still unresolved because the resulting Doomseeker executable gets a RUNPATH pre-install.

One step closer now, however.
User avatar (0020730)
Pol M (developer)
2019-06-05 19:11

Compared sha512 of two compilations with variations of path and without using QT_HASH_SEED, the binaries are equal. What is left to do? I don't quite get what you mean with:
Quote from Wub

...because the resulting Doomseeker executable gets a RUNPATH pre-install.

Maybe you could elavorate? is there something more apart from binaries being the same?
User avatar (0020744)
WubTheCaptain (developer)
2019-06-12 00:23

I will have to revisit this later.

Issue Community Support
Only registered users can voice their support. Click here to register, or here to log in.
Supporters: No one explicitly supports this issue yet.
Opponents: No one explicitly opposes this issue yet.

- Issue History
Date Modified Username Field Change
2017-09-07 21:55 WubTheCaptain New Issue
2017-09-07 21:55 WubTheCaptain File Added: dpkg.log
2017-09-07 21:55 WubTheCaptain File Added: doomseeker-diff.log
2017-09-07 21:56 WubTheCaptain File Added: libwadseeker-diff.log
2017-09-07 21:57 WubTheCaptain Note Added: 0018239
2017-09-07 22:06 WubTheCaptain File Added: CMakeCache.diff
2017-09-07 22:21 WubTheCaptain File Added: doomseeker-2nd-2nd_orig.diff
2017-09-07 22:21 WubTheCaptain File Added: libwadseeker-2nd-2nd_orig.diff
2017-09-08 00:41 WubTheCaptain File Added: diffoscope-v86.log.gz
2017-09-08 00:45 WubTheCaptain Note Added: 0018243
2017-09-08 00:46 WubTheCaptain Note Edited: 0018243 View Revisions
2017-09-08 01:32 WubTheCaptain File Added: diffoscope-deb.log.gz
2017-09-08 01:33 WubTheCaptain Note Added: 0018245
2017-09-08 01:53 Blzut3 Relationship added child of 0003255
2017-09-09 01:56 Blzut3 Relationship added related to 0003239
2017-10-05 01:52 WubTheCaptain Note Added: 0018446
2017-10-05 01:52 WubTheCaptain Status new => needs testing
2017-10-07 11:56 WubTheCaptain Note Added: 0018468
2017-10-07 11:56 WubTheCaptain Status needs testing => new
2018-10-05 06:36 WubTheCaptain Priority normal => low
2019-06-05 19:11 Pol M Note Added: 0020730
2019-06-12 00:23 WubTheCaptain Note Added: 0020744
2019-06-12 00:23 WubTheCaptain Assigned To => Pol M
2019-06-12 00:23 WubTheCaptain Status new => feedback

Questions or other issues? Contact Us.


Copyright © 2000 - 2021 MantisBT Team
Powered by Mantis Bugtracker