Bug 1194202 - binutils-mingw PE executables/dlls are not reproducible (Timestamp in header)
Summary: binutils-mingw PE executables/dlls are not reproducible (Timestamp in header)
Status: NEW
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Basesystem (show other bugs)
Version: Current
Hardware: Other Other
: P5 - None : Normal with 1 vote (vote)
Target Milestone: ---
Assignee: Michael Matz
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-01-01 18:13 UTC by Stefan Brüns
Modified: 2022-12-21 16:10 UTC (History)
3 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Brüns 2022-01-01 18:13:25 UTC
PE images have a timestamp in the header:

https://blog.beuc.net/posts/Practical_basics_of_reproducible_builds_2/

Debian has some patches to use SOURCE_DATE_EPOCH instead of the current time:

https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64/-/blob/master/debian/patches/specify-timestamp.patch
Comment 1 Bernhard Wiedemann 2022-01-02 08:41:06 UTC
I have done some patches with -Wl,--no-insert-timestamp in the past for efi, ipxe and wine-related stuff, but I just remembered that we have a whole OBS project for building w32 and w64 binaries and those could profit from toolchain patches.

I think for .dll files, the value has some significance, so using SOURCE_DATE_EPOCH there is better than -Wl,--no-insert-timestamp
Comment 2 Stefan Brüns 2022-01-03 01:48:33 UTC
Wine itself (i.e. its native dlls) is now also built as PE libraries (instead of ELF + stub dlls). Thus large parts of Wine are no longer reproducible.
Comment 3 Bernhard Wiedemann 2022-01-03 08:00:24 UTC
wine never was reproducible because of bug 1137320