[Reproducible-builds] Bug#814280: qt4-x11: please support fixed timestamps in qhelpgenerator
Dhole
dhole at openmailbox.org
Tue Feb 9 22:05:17 UTC 2016
Source: qt4-x11
Version: 4:4.8.7+dfsg-5
Severity: wishlist
Tags: patch
User: reproducible-builds at lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-builds at lists.alioth.debian.org
While working on the "reproducible builds" effort [1], we have noticed
that the qhelpgenerator tool from qt4-x11 embeds timestamps on the
creation of qch files.
Some months ago I sent a patch to fix this issue by enabling
qhelpgenerator to use the environment variable SOURCE_DATE_EPOCH when
embedding timestamps [1].
Sune Vuorela suggested that it would be better to backport the solution
he implemented for qt5 to solve this same issue, which consists in
replacing the embedded timestamp by a fixed one [2] and which is already
upstream.
The attached patch solves the reproducible timestamps issue in the same
way as it is solved in qt5 upstream. With the attached patch packages
using qhelpgenerator would then automatically embed reproducible
timestamps in qch files.
[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=794681
[2] https://codereview.qt-project.org/#/c/106296/
Cheers
--
Dhole
-------------- next part --------------
diff -Nru qt4-x11-4.8.7+dfsg/debian/changelog qt4-x11-4.8.7+dfsg/debian/changelog
--- qt4-x11-4.8.7+dfsg/debian/changelog 2015-11-30 20:13:35.000000000 +0100
+++ qt4-x11-4.8.7+dfsg/debian/changelog 2016-02-09 18:43:42.000000000 +0100
@@ -1,3 +1,12 @@
+qt4-x11 (4:4.8.7+dfsg-5.0~reproducible0) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Backport patch from qttools5 [1] to make qch files reproducible by
+ replacing the current time by a fixed date.
+ [1] https://codereview.qt-project.org/#/c/106296/
+
+ -- Eduard Sanou <dhole at openmailbox.org> Tue, 09 Feb 2016 13:34:21 +0100
+
qt4-x11 (4:4.8.7+dfsg-5) unstable; urgency=medium
* Add no-ssl3.patch to avoid calling SSLv3 functions as they have been removed
diff -Nru qt4-x11-4.8.7+dfsg/debian/patches/replace_timestamps_with_fixed_date_in_qhelpgenerator.patch qt4-x11-4.8.7+dfsg/debian/patches/replace_timestamps_with_fixed_date_in_qhelpgenerator.patch
--- qt4-x11-4.8.7+dfsg/debian/patches/replace_timestamps_with_fixed_date_in_qhelpgenerator.patch 1970-01-01 01:00:00.000000000 +0100
+++ qt4-x11-4.8.7+dfsg/debian/patches/replace_timestamps_with_fixed_date_in_qhelpgenerator.patch 2016-02-09 18:49:02.000000000 +0100
@@ -0,0 +1,51 @@
+Description: Replace timestamps from qhelpgenerator by a fixed date
+ In order to make qhelpgenerator output reproducible, we need a way to get
+ deterministic embedded timestaps. Backport the patch from qttools5 [1] to
+ make qch files reproducible by replacing the current time by a fixed date.
+
+ [1] https://codereview.qt-project.org/#/c/106296/
+Author: Eduard Sanou <dhole at openmailbox.org>
+
+---
+
+Index: qt4-x11-4.8.7+dfsg/tools/assistant/lib/qhelpgenerator.cpp
+===================================================================
+--- qt4-x11-4.8.7+dfsg.orig/tools/assistant/lib/qhelpgenerator.cpp
++++ qt4-x11-4.8.7+dfsg/tools/assistant/lib/qhelpgenerator.cpp
+@@ -380,9 +380,7 @@ bool QHelpGenerator::createTables()
+
+ d->query->exec(QLatin1String("INSERT INTO MetaDataTable VALUES('qchVersion', '1.0')"));
+
+- d->query->prepare(QLatin1String("INSERT INTO MetaDataTable VALUES('CreationDate', ?)"));
+- d->query->bindValue(0, QDateTime::currentDateTime().toString(Qt::ISODate));
+- d->query->exec();
++ d->query->exec(QLatin1String("INSERT INTO MetaDataTable VALUES('CreationDate', '2012-12-20T12:00:00Z')"));
+
+ return true;
+ }
+Index: qt4-x11-4.8.7+dfsg/tools/assistant/tools/qcollectiongenerator/main.cpp
+===================================================================
+--- qt4-x11-4.8.7+dfsg.orig/tools/assistant/tools/qcollectiongenerator/main.cpp
++++ qt4-x11-4.8.7+dfsg/tools/assistant/tools/qcollectiongenerator/main.cpp
+@@ -521,7 +521,7 @@ int main(int argc, char *argv[])
+ CollectionConfiguration::setAddressBarVisible(helpEngine,
+ !config.hideAddressBar());
+ CollectionConfiguration::setCreationTime(helpEngine,
+- QDateTime::currentDateTime().toTime_t());
++ QDateTime::fromString("2012-12-20T12:00:00Z", Qt::ISODate).toUTC().toTime_t());
+ CollectionConfiguration::setFullTextSearchFallbackEnabled(helpEngine,
+ config.fullTextSearchFallbackEnabled());
+
+Index: qt4-x11-4.8.7+dfsg/tools/assistant/tools/shared/collectionconfiguration.cpp
+===================================================================
+--- qt4-x11-4.8.7+dfsg.orig/tools/assistant/tools/shared/collectionconfiguration.cpp
++++ qt4-x11-4.8.7+dfsg/tools/assistant/tools/shared/collectionconfiguration.cpp
+@@ -282,7 +282,7 @@ const QDateTime CollectionConfiguration:
+
+ void CollectionConfiguration::updateLastRegisterTime(QHelpEngineCore &helpEngine)
+ {
+- helpEngine.setCustomValue(LastRegisterTime, QDateTime::currentDateTime());
++ helpEngine.setCustomValue(LastRegisterTime, QDateTime::fromString("2012-12-20T12:00:00Z", Qt::ISODate).toUTC());
+ }
+
+ bool CollectionConfiguration::isNewer(const QHelpEngineCore &newer,
diff -Nru qt4-x11-4.8.7+dfsg/debian/patches/series qt4-x11-4.8.7+dfsg/debian/patches/series
--- qt4-x11-4.8.7+dfsg/debian/patches/series 2015-11-30 19:12:17.000000000 +0100
+++ qt4-x11-4.8.7+dfsg/debian/patches/series 2016-02-09 13:43:11.000000000 +0100
@@ -56,3 +56,4 @@
QtScript_x32_config.diff
x32.diff
no-ssl3.patch
+replace_timestamps_with_fixed_date_in_qhelpgenerator.patch
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/reproducible-builds/attachments/20160209/f66ee5df/attachment.sig>
More information about the Reproducible-builds
mailing list