zip/reproducible.patch
Martin Pluskal ff67f8ed8f Accepting request 700402 from home:bmwiedemann:reproducible:test
- Add reproducible.patch to allow to override mtime values
  stored in .zip (boo#1047218)
- Add zip-3.0-fix-doc.patch for the --strip-extra param

replace URL to conform to LICENSE

OBS-URL: https://build.opensuse.org/request/show/700402
OBS-URL: https://build.opensuse.org/package/show/Archiving/zip?expand=0&rev=19
2019-05-06 07:48:30 +00:00

38 lines
1.1 KiB
Diff

Author: Bernhard M. Wiedemann <bwiedemann suse de>
Date: 2019-05-03
Override mtime with zip -X
and SOURCE_DATE_EPOCH
to allow for reproducible builds of .zip files
See https://reproducible-builds.org/ for why this is good
and https://reproducible-builds.org/specs/source-date-epoch/
for the definition of this variable.
Index: zip30/zipup.c
===================================================================
--- zip30.orig/zipup.c
+++ zip30/zipup.c
@@ -414,6 +414,7 @@ struct zlist far *z; /* zip entry to
ush tempcext = 0;
char *tempextra = NULL;
char *tempcextra = NULL;
+ const char *source_date_epoch;
#ifdef WINDLL
@@ -674,6 +675,13 @@ struct zlist far *z; /* zip entry to
} /* strcmp(z->name, "-") == 0 */
+ if (extra_fields == 0 && (source_date_epoch = getenv("SOURCE_DATE_EPOCH")) != NULL) {
+ time_t epoch = strtoull(source_date_epoch, NULL, 10);
+ if (epoch > 0) {
+ ulg epochtim = unix2dostime(&epoch);
+ if (z->tim > epochtim) z->tim = epochtim;
+ }
+ }
if (extra_fields == 2) {
unsigned len;
char *p;