On 07/17/2015 04:08 PM, Dhole wrote: > Source: gettext > Version: 0.19.4-1 > Severity: wishlist > Tags: patch > User: reproducible-bui...@lists.alioth.debian.org > Usertags: toolchain timestamps > X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org > > Hi, > > While working on the "reproducible builds" effort [1], we have noticed > that the xgettext tool from gettext embeds timestamps on the creation of > PO files. > > For the Reproducible Builds effort we are proposing an environment > variable (SOURCE_DATE_EPOCH) [2] that will contain a deterministic epoch > timestamp (based on the latest debian/changelog entry) that could be > used, which should be automatically exported by debhelper in the future [3]. > > The attached patch proposes a way to use this variable to get > reproducible timestamps in the PO files generated by xgettext, if the > variable has been set (if not, it falls back to the old behavior). > With the attached patch packages using xgettext would then automatically > generate reproducible translation files. > > > [1]: https://wiki.debian.org/ReproducibleBuilds > [2]: https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal > [3]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=791815 > > Regards, > > > > _______________________________________________ > Reproducible-builds mailing list > reproducible-bui...@lists.alioth.debian.org > http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds >
Hi I'm attaching an update of the submitted patch targeting the latest gettext version from Debian: 0.19.5.1-1 Regards, -- Dhole
diff -Nru gettext-0.19.5.1/debian/changelog gettext-0.19.5.1/debian/changelog --- gettext-0.19.5.1/debian/changelog 2015-08-02 21:41:33.000000000 +0200 +++ gettext-0.19.5.1/debian/changelog 2015-08-04 18:44:31.000000000 +0200 @@ -1,3 +1,11 @@ +gettext (0.19.5.1-1.0~reproducible1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Add support for reproducible builds by using $SOURCE_DATE_EPOCH as the + date on creation of PO files with xgettext. + + -- Eduard Sanou <dh...@openmailbox.org> Tue, 04 Aug 2015 18:43:52 +0200 + gettext (0.19.5.1-1) unstable; urgency=medium * New upstream release. diff -Nru gettext-0.19.5.1/debian/patches/04-Replace-timestamp-with-SOURCE_DATE_EPOCH gettext-0.19.5.1/debian/patches/04-Replace-timestamp-with-SOURCE_DATE_EPOCH --- gettext-0.19.5.1/debian/patches/04-Replace-timestamp-with-SOURCE_DATE_EPOCH 1970-01-01 01:00:00.000000000 +0100 +++ gettext-0.19.5.1/debian/patches/04-Replace-timestamp-with-SOURCE_DATE_EPOCH 2015-08-04 18:46:17.000000000 +0200 @@ -0,0 +1,45 @@ +Description: Replace date timestamp by SOURCE_DATE_EPOCH env var in xgettext + . + gettext (0.19.5.1-1.0~reproducible1) UNRELEASED; urgency=medium + . + * Non-maintainer upload. + * Add support for reproducible builds by using $SOURCE_DATE_EPOCH as the + date on creation of PO files with xgettext. +Author: Eduard Sanou <dh...@openmailbox.org> + +--- gettext-0.19.5.1.orig/gettext-tools/src/xgettext.c ++++ gettext-0.19.5.1/gettext-tools/src/xgettext.c +@@ -3516,6 +3516,7 @@ construct_header () + message_ty *mp; + char *msgstr; + char *comment; ++ char *source_date_epoch; + static lex_pos_ty pos = { __FILE__, __LINE__ }; + + if (package_name != NULL) +@@ -3537,7 +3538,24 @@ the MSGID_BUGS_ADDRESS variable there; o + specify an --msgid-bugs-address command line option.\n\ + "))); + +- time (&now); ++ /* Allow the date and time to be set externally by an exported ++ environment variable to enable reproducible builds. */ ++ source_date_epoch = getenv ("SOURCE_DATE_EPOCH"); ++ if (source_date_epoch) ++ { ++ errno = 0; ++ now = (time_t) strtol (source_date_epoch, NULL, 10); ++ if (errno != 0) ++ error (EXIT_FAILURE, errno, _("\ ++SOURCE_DATE_EPOCH=\"%s\" is not a valid number"), source_date_epoch); ++ ++ /* The function po_strftime uses localtime() to parse the timestamp, so ++ we need to fix the environment timezone to get reproducible results */ ++ setenv("TZ", "UTC", 1); ++ } ++ else ++ time (&now); ++ + timestring = po_strftime (&now); + + msgstr = xasprintf ("\ diff -Nru gettext-0.19.5.1/debian/patches/series gettext-0.19.5.1/debian/patches/series --- gettext-0.19.5.1/debian/patches/series 2015-08-02 20:37:20.000000000 +0200 +++ gettext-0.19.5.1/debian/patches/series 2015-08-04 18:45:51.000000000 +0200 @@ -1,3 +1,4 @@ 01-do-not-use-java-in-urlget 02-msgfmt-default-little-endian 03-fix-gettextize-version +04-Replace-timestamp-with-SOURCE_DATE_EPOCH
signature.asc
Description: OpenPGP digital signature