MantisBT - Doomseeker
View Issue Details
0003256Doomseeker[All Projects] Bugpublic2017-09-07 21:552019-06-12 00:23
WubTheCaptain 
Pol M 
lowminorsometimes
feedbackopen 
x86_64Debian GNU/Linuxbuster/sid
1.1 
 
0003256: Failure to reproduce builds with variations in build path
The 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.
To 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.
CMake'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.
No tags attached.
related to 0003239closed Zalewa engines/libzandronum.so: Defines RPATH from somewhere 
child of 0003255confirmed  Support reproducible, deterministic builds 
log dpkg.log (152,943) 2017-09-07 21:55
/tracker/file_download.php?file_id=2192&type=bug
log doomseeker-diff.log (21,211) 2017-09-07 21:55
/tracker/file_download.php?file_id=2193&type=bug
log libwadseeker-diff.log (3,326) 2017-09-07 21:56
/tracker/file_download.php?file_id=2194&type=bug
diff CMakeCache.diff (658) 2017-09-07 22:06
/tracker/file_download.php?file_id=2195&type=bug
diff doomseeker-2nd-2nd_orig.diff (258) 2017-09-07 22:21
/tracker/file_download.php?file_id=2196&type=bug
diff libwadseeker-2nd-2nd_orig.diff (266) 2017-09-07 22:21
/tracker/file_download.php?file_id=2197&type=bug
gz diffoscope-v86.log.gz (333,690) 2017-09-08 00:41
/tracker/file_download.php?file_id=2198&type=bug
gz diffoscope-deb.log.gz (13,319) 2017-09-08 01:32
/tracker/file_download.php?file_id=2199&type=bug
Issue History
2017-09-07 21:55WubTheCaptainNew Issue
2017-09-07 21:55WubTheCaptainFile Added: dpkg.log
2017-09-07 21:55WubTheCaptainFile Added: doomseeker-diff.log
2017-09-07 21:56WubTheCaptainFile Added: libwadseeker-diff.log
2017-09-07 21:57WubTheCaptainNote Added: 0018239
2017-09-07 22:06WubTheCaptainFile Added: CMakeCache.diff
2017-09-07 22:21WubTheCaptainFile Added: doomseeker-2nd-2nd_orig.diff
2017-09-07 22:21WubTheCaptainFile Added: libwadseeker-2nd-2nd_orig.diff
2017-09-08 00:41WubTheCaptainFile Added: diffoscope-v86.log.gz
2017-09-08 00:45WubTheCaptainNote Added: 0018243
2017-09-08 00:46WubTheCaptainNote Edited: 0018243bug_revision_view_page.php?bugnote_id=18243#r10906
2017-09-08 01:32WubTheCaptainFile Added: diffoscope-deb.log.gz
2017-09-08 01:33WubTheCaptainNote Added: 0018245
2017-09-08 01:53Blzut3Relationship addedchild of 0003255
2017-09-09 01:56Blzut3Relationship addedrelated to 0003239
2017-10-05 01:52WubTheCaptainNote Added: 0018446
2017-10-05 01:52WubTheCaptainStatusnew => needs testing
2017-10-07 11:56WubTheCaptainNote Added: 0018468
2017-10-07 11:56WubTheCaptainStatusneeds testing => new
2018-10-05 06:36WubTheCaptainPrioritynormal => low
2019-06-05 19:11Pol MNote Added: 0020730
2019-06-12 00:23WubTheCaptainNote Added: 0020744
2019-06-12 00:23WubTheCaptainAssigned To => Pol M
2019-06-12 00:23WubTheCaptainStatusnew => feedback

Notes
(0018239)
WubTheCaptain   
2017-09-07 21:57   
For clarification: I followed only the instructions provided in COMPILE.txt:

mkdir build
cd build
cmake ..
make
(0018243)
WubTheCaptain   
2017-09-08 00:45   
(edited on: 2017-09-08 00:46)
The underlying cause seems to be RPATH or RUNPATH: 0003239

(0018245)
WubTheCaptain   
2017-09-08 01:33   
Uploaded a diffoscope v86 from .deb builds, it's a bit cleaner.
(0018446)
WubTheCaptain   
2017-10-05 01:52   
Needs to be tested with 0003239.
(0018468)
WubTheCaptain   
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.
(0020730)
Pol M   
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?
(0020744)
WubTheCaptain   
2019-06-12 00:23   
I will have to revisit this later.