![](https://seccdn.libravatar.org/avatar/000404b9c3cf99a2a21283776f57d3b5.jpg?s=120&d=mm&r=g)
Hello community, here is the log from the commit of package ghostscript for openSUSE:Factory checked in at 2017-02-04 15:15:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghostscript (Old) and /work/SRC/openSUSE:Factory/.ghostscript.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "ghostscript" Changes: -------- --- /work/SRC/openSUSE:Factory/ghostscript/ghostscript-mini.changes 2016-10-22 13:01:57.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.ghostscript.new/ghostscript-mini.changes 2017-02-04 17:57:08.913012190 +0100 @@ -1,0 +2,9 @@ +Thu Jan 12 17:13:58 UTC 2017 - stefan.bruens@rwth-aachen.de + +- Set SOURCE_DATE_EPOCH based on changelog head +- Add 0001-mkromfs-make-build-reproducible-use-buildtime-from-S.patch + * Use SOURCE_DATE_EPOCH for mkromfs output for reproducible build +- Add 0002-mkromfs-sort-gp_enumerate_files-output-for-determini.patch + * Sort ROM contents for deterministic output + +------------------------------------------------------------------- ghostscript.changes: same change New: ---- 0001-mkromfs-make-build-reproducible-use-buildtime-from-S.patch 0002-mkromfs-sort-gp_enumerate_files-output-for-determini.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghostscript-mini.spec ++++++ --- /var/tmp/diff_new_pack.J8Rwej/_old 2017-02-04 17:57:09.640908102 +0100 +++ /var/tmp/diff_new_pack.J8Rwej/_new 2017-02-04 17:57:09.640908102 +0100 @@ -1,7 +1,7 @@ # # spec file for package ghostscript-mini # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -96,6 +96,11 @@ # but the hunk for LCMS2 (lcms2/include/lcms2.h) is still needed # see http://bugs.ghostscript.com/show_bug.cgi?id=695544 Patch11: ppc64le-support.patch +# Patch12 adds a reproducible timestamp to the mkromfs output, using the +# SOURCE_DATE_EPOCH environment variable +Patch12: 0001-mkromfs-make-build-reproducible-use-buildtime-from-S.patch +# Patch13 sorts the ROM contents by name for deterministic contents +Patch13: 0002-mkromfs-sort-gp_enumerate_files-output-for-determini.patch # Source100...Source999 is for sources from SUSE which are not intended for upstream: # Patch100...Patch999 is for patches from SUSE which are not intended for upstream: # Patch100 remove-zlib-h-dependency.patch removes dependency on zlib/zlib.h @@ -199,6 +204,11 @@ # but the hunk for LCMS2 (lcms2/include/lcms2.h) is still needed # see http://bugs.ghostscript.com/show_bug.cgi?id=695544 %patch11 -p1 -b ppc64le-support.orig +# Patch12 adds a reproducible timestamp to the mkromfs output, using the +# SOURCE_DATE_EPOCH environment variable +%patch12 -p1 -b mkromfs-buildtime.orig +# Patch13 sorts the ROM contents by name for deterministic contents +%patch13 -p1 -b mkromfs-sort-contents.orig # Patch100 remove-zlib-h-dependency.patch removes dependency on zlib/zlib.h # in makefiles as we do not use the zlib sources from the Ghostscript upstream tarball: %patch100 -p1 -b remove-zlib-h-dependency.orig @@ -210,6 +220,8 @@ rm -rf freetype jpeg libpng tiff zlib %build +# Derive build timestamp from latest changelog entry +export SOURCE_DATE_EPOCH=$(date -d "$(head -n 2 %{_sourcedir}/%{name}.changes | tail -n 1 | cut -d- -f1 )" +%s) # Set our preferred architecture-specific flags for the compiler and linker: export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" ++++++ ghostscript.spec ++++++ --- /var/tmp/diff_new_pack.J8Rwej/_old 2017-02-04 17:57:09.660905242 +0100 +++ /var/tmp/diff_new_pack.J8Rwej/_new 2017-02-04 17:57:09.660905242 +0100 @@ -1,7 +1,7 @@ # # spec file for package ghostscript # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -116,6 +116,11 @@ # but the hunk for LCMS2 (lcms2/include/lcms2.h) is still needed # see http://bugs.ghostscript.com/show_bug.cgi?id=695544 Patch11: ppc64le-support.patch +# Patch12 adds a reproducible timestamp to the mkromfs output, using the +# SOURCE_DATE_EPOCH environment variable +Patch12: 0001-mkromfs-make-build-reproducible-use-buildtime-from-S.patch +# Patch13 sorts the ROM contents by name for deterministic contents +Patch13: 0002-mkromfs-sort-gp_enumerate_files-output-for-determini.patch # Source100...Source999 is for sources from SUSE which are not intended for upstream: # Patch100...Patch999 is for patches from SUSE which are not intended for upstream: # Patch100 remove-zlib-h-dependency.patch removes dependency on zlib/zlib.h @@ -335,6 +340,11 @@ # but the hunk for LCMS2 (lcms2/include/lcms2.h) is still needed # see http://bugs.ghostscript.com/show_bug.cgi?id=695544 %patch11 -p1 -b ppc64le-support.orig +# Patch12 adds a reproducible timestamp to the mkromfs output, using the +# SOURCE_DATE_EPOCH environment variable +%patch12 -p1 -b mkromfs-buildtime.orig +# Patch13 sorts the ROM contents by name for deterministic contents +%patch13 -p1 -b mkromfs-sort-contents.orig # Patch100 remove-zlib-h-dependency.patch removes dependency on zlib/zlib.h # in makefiles as we do not use the zlib sources from the Ghostscript upstream tarball: %patch100 -p1 -b remove-zlib-h-dependency.orig @@ -346,6 +356,8 @@ rm -rf freetype jpeg libpng tiff zlib %build +# Derive build timestamp from latest changelog entry +export SOURCE_DATE_EPOCH=$(date -d "$(head -n 2 %{_sourcedir}/%{name}.changes | tail -n 1 | cut -d- -f1 )" +%s) # Set our preferred architecture-specific flags for the compiler and linker: export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" ++++++ 0001-mkromfs-make-build-reproducible-use-buildtime-from-S.patch ++++++
From 495b79d8e9a44ad0ada965add3a046120646e7e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=83=C2=BCns?=
Date: Thu, 12 Jan 2017 18:04:57 +0100 Subject: [PATCH 1/2] mkromfs: make build reproducible, use buildtime from SOURCE_DATE_EPOCH MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit
The environment variable SOURCE_DATE_EPOCH is the common approach for
getting reproducible timestamps and thus builds. In case the variable
is not set, keep using the current time of the mkromfs run.
Signed-off-by: Stefan Brüns
From ec602a6eadfe7680e0a1008a67afa18903a07ad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?=
Date: Thu, 12 Jan 2017 20:55:11 +0100 Subject: [PATCH 2/2] mkromfs: sort gp_enumerate_files output for deterministic ROM contents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit
gp_enumerate_files_next returns dir entries in the same order as returned
by readdir. Sort by name to generate deterministic output.
Signed-off-by: Stefan Brüns