[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