Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package mingw64-binutils for 
openSUSE:Factory checked in at 2023-10-08 12:18:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mingw64-binutils (Old)
 and      /work/SRC/openSUSE:Factory/.mingw64-binutils.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mingw64-binutils"

Sun Oct  8 12:18:43 2023 rev:8 rq:1116192 version:2.39

Changes:
--------
--- /work/SRC/openSUSE:Factory/mingw64-binutils/mingw64-binutils.changes        
2022-09-13 15:11:09.196940611 +0200
+++ 
/work/SRC/openSUSE:Factory/.mingw64-binutils.new.28202/mingw64-binutils.changes 
    2023-10-08 12:22:13.694591819 +0200
@@ -1,0 +2,5 @@
+Fri Oct  6 12:31:44 UTC 2023 - Bernhard Wiedemann <bwiedem...@suse.com>
+
+- Add reproducible.patch to override build date (boo#1047218)
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/mingw64-binutils/mingw64-cross-binutils.changes  
2022-11-21 15:30:41.244980872 +0100
+++ 
/work/SRC/openSUSE:Factory/.mingw64-binutils.new.28202/mingw64-cross-binutils.changes
       2023-10-08 12:22:13.734593257 +0200
@@ -1,0 +2,5 @@
+Fri Oct  6 12:31:39 UTC 2023 - Bernhard Wiedemann <bwiedem...@suse.com>
+
+- Add reproducible.patch to override build date (boo#1047218)
+
+-------------------------------------------------------------------

New:
----
  reproducible.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mingw64-binutils.spec ++++++
--- /var/tmp/diff_new_pack.WBacoQ/_old  2023-10-08 12:22:15.530657833 +0200
+++ /var/tmp/diff_new_pack.WBacoQ/_new  2023-10-08 12:22:15.534657976 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package mingw64-binutils
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -30,6 +30,7 @@
 Patch0:         0001-PR29362-some-binutils-memory-leaks.patch
 Patch1:         0001-Fix-bug-not-showing-correct-path-with-objdump-WL-wit.patch
 Patch2:         0001-dllwrap-windres-and-dlltools-use-mktemp-which-should.patch
+Patch3:         reproducible.patch
 #!BuildIgnore: post-build-checks
 BuildRequires:  bison
 BuildRequires:  flex

++++++ mingw64-cross-binutils.spec ++++++
--- /var/tmp/diff_new_pack.WBacoQ/_old  2023-10-08 12:22:15.558658839 +0200
+++ /var/tmp/diff_new_pack.WBacoQ/_new  2023-10-08 12:22:15.558658839 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package mingw64-cross-binutils
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -29,6 +29,7 @@
 Patch0:         0001-PR29362-some-binutils-memory-leaks.patch
 Patch1:         0001-Fix-bug-not-showing-correct-path-with-objdump-WL-wit.patch
 Patch2:         0001-dllwrap-windres-and-dlltools-use-mktemp-which-should.patch
+Patch3:         reproducible.patch
 #!BuildIgnore:  post-build-checks
 #!BuildIgnore:  mingw64-cross-binutils-utils
 #!BuildIgnore:  mingw64-cross-pkgconf-utils

++++++ reproducible.patch ++++++
>From bdbdaf4f9dace4ba60cb3debe9afc876a6567ffa Mon Sep 17 00:00:00 2001
From: Johannes Schauer Marin Rodrigues <jo...@mister-muffin.de>
Date: Thu, 20 Jul 2023 07:11:44 +0200
Subject: [PATCH] bfd/peXXigen.c: respect SOURCE_DATE_EPOCH environment
 variable

Instead of obtaining the current time via time(0), use the seconds since
Unix epoch stored in the SOURCE_DATE_EPOCH environment variable to
create a reproducible timestamp.

Signed-off-by: Johannes Schauer Marin Rodrigues <jo...@mister-muffin.de>
---
 bfd/peXXigen.c             | 11 ++++++++++-
 binutils/doc/binutils.texi |  4 ++++
 ld/ld.texi                 |  5 ++++-
 ld/pe-dll.c                | 11 ++++++++++-
 4 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c
index da53f349dd0..7a5e5961162 100644
--- a/bfd/peXXigen.c
+++ b/bfd/peXXigen.c
@@ -838,7 +838,16 @@ _bfd_XXi_only_swap_filehdr_out (bfd * abfd, void * in, 
void * out)
   /* Use a real timestamp by default, unless the no-insert-timestamp
      option was chosen.  */
   if ((pe_data (abfd)->timestamp) == -1)
-    H_PUT_32 (abfd, time (0), filehdr_out->f_timdat);
+    {
+      time_t now;
+      char *source_date_epoch;
+      source_date_epoch = getenv("SOURCE_DATE_EPOCH");
+      if (source_date_epoch)
+       now = (time_t)strtoll(source_date_epoch, NULL, 10);
+      else
+       now = time(NULL);
+      H_PUT_32 (abfd, now, filehdr_out->f_timdat);
+    }
   else
     H_PUT_32 (abfd, pe_data (abfd)->timestamp, filehdr_out->f_timdat);
 
diff --git a/ld/ld.texi b/ld/ld.texi
index 75e82eda004..02ace7778d9 100644
--- a/ld/ld.texi
+++ b/ld/ld.texi
@@ -3569,7 +3569,10 @@ will result in slightly different images being produced 
each time the
 same sources are linked.  The option @option{--no-insert-timestamp}
 can be used to insert a zero value for the timestamp, this ensuring
 that binaries produced from identical sources will compare
-identically.
+identically. Instead of inserting a zero value for the timestamp,
+an arbitrary reproducible timestamp can be inserted by setting the
+@code{SOURCE_DATE_EPOCH} environment variable to the desired number of
+seconds since Unix epoch.
 
 @kindex --enable-reloc-section
 @item --enable-reloc-section
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index 02e03d16948..e1465d4d115 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -1231,7 +1231,16 @@ fill_edata (bfd *abfd, struct bfd_link_info *info 
ATTRIBUTE_UNUSED)
   memset (edata_d, 0, edata_sz);
 
   if (pe_data (abfd)->timestamp == -1)
-    H_PUT_32 (abfd, time (0), edata_d + 4);
+    {
+      time_t now;
+      char *source_date_epoch;
+      source_date_epoch = getenv("SOURCE_DATE_EPOCH");
+      if (source_date_epoch)
+       now = (time_t)strtoll(source_date_epoch, NULL, 10);
+      else
+       now = time(NULL);
+      H_PUT_32 (abfd, now, edata_d + 4);
+    }
   else
     H_PUT_32 (abfd, pe_data (abfd)->timestamp, edata_d + 4);
 
-- 
2.40.0

Reply via email to