Your message dated Tue, 5 Jul 2022 21:57:33 +0200 with message-id <6e238183-ac9c-26cf-e350-e4fa0414f86d@inventati.org> and subject line Re: qt4-x11: please support timestamps from environment has caused the Debian Bug report #794681, regarding qt4-x11: please support timestamps from environment to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 794681: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=794681 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: submit@bugs.debian.org
- Subject: qt4-x11: please support timestamps from environment
- From: Dhole <dhole@openmailbox.org>
- Date: Wed, 05 Aug 2015 18:03:38 +0200
- Message-id: <55C233DA.2000705@openmailbox.org>
Source: qt4-x11 Version: 4:4.8.7+dfsg-2 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Hi, 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. 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 qch files generated by qhelpgenerator, if the variable has been set (if not, it falls back to the old behavior). With the attached patch packages using qhelpgenerator would then automatically embed reproducible timestamps in qch 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, -- Dholediff -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-08-02 22:01:18.000000000 +0200 +++ qt4-x11-4.8.7+dfsg/debian/changelog 2015-08-04 15:19:05.000000000 +0200 @@ -1,3 +1,11 @@ +qt4-x11 (4:4.8.7+dfsg-2.0~reproducible1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Add support for reproducible builds by using $SOURCE_DATE_EPOCH as the + embedded timestamps in qch files generated with qhelpgenerator. + + -- Eduard Sanou <dhole@openmailbox.org> Tue, 04 Aug 2015 15:17:35 +0200 + qt4-x11 (4:4.8.7+dfsg-2) experimental; urgency=medium * Add Daniel Schepler's QtScript_x32_config.diff and x32.diff to let Qt4 diff -Nru qt4-x11-4.8.7+dfsg/debian/patches/Replace_timestamp_with_SOURCE_DATE_EPOCH_in_qhelpgenerator.patch qt4-x11-4.8.7+dfsg/debian/patches/Replace_timestamp_with_SOURCE_DATE_EPOCH_in_qhelpgenerator.patch --- qt4-x11-4.8.7+dfsg/debian/patches/Replace_timestamp_with_SOURCE_DATE_EPOCH_in_qhelpgenerator.patch 1970-01-01 01:00:00.000000000 +0100 +++ qt4-x11-4.8.7+dfsg/debian/patches/Replace_timestamp_with_SOURCE_DATE_EPOCH_in_qhelpgenerator.patch 2015-08-04 15:41:15.000000000 +0200 @@ -0,0 +1,102 @@ +Description: Allow the timestamps from qhelpgenerator to be externally set + In order to make qhelpgenerator output reproducible, we need a way to + set the embedded timestamps to other values than the current time. + We define a new method for QDateTime (reproducibleDateTime) that returns + a deterministic datetime object when the SOURCE_DATE_EPOCH environment + variable is set with a unix epoch timestamp, containing the datetime + defined by SOURCE_DATE_EPOCH in UTC. We replace some instances of + QDateTime::currentDateTime() by QDateTime::reproducibleDateTime() in the + sources of qhelpgenerator to make the output reproducible. +Author: Eduard Sanou <dhole@openmailbox.org> + +--- qt4-x11-4.8.7+dfsg.orig/src/corelib/tools/qdatetime.cpp ++++ qt4-x11-4.8.7+dfsg/src/corelib/tools/qdatetime.cpp +@@ -2892,6 +2892,15 @@ bool QDateTime::operator<(const QDateTim + */ + + /*! ++ \fn QDateTime QDateTime::reproducibleDateTime() ++ If the environment variable SOURCE_DATE_EPOCH containing a unix epoch date ++ is set, returns the datetime in SOURCE_DATE_EPOCH, in UTC. ++ If SOURCE_DATE_EPOCH is not set, behaves as QDateTime::currentDateTime(). ++ ++ \sa currentDateTimeUtc(), QDate::currentDate(), QTime::currentTime(), toTimeSpec() ++*/ ++ ++/*! + \fn QDateTime QDateTime::currentDateTimeUtc() + \since 4.7 + Returns the current datetime, as reported by the system clock, in +@@ -3120,6 +3129,29 @@ QDateTime QDateTime::currentDateTime() + return dt; + } + ++QDateTime QDateTime::reproducibleDateTime() ++{ ++ QByteArray env_date; ++ QDateTime date; ++ bool env_date_ok; ++ long timestamp; ++ ++ env_date = qgetenv("SOURCE_DATE_EPOCH"); ++ if (env_date.length() != 0) { ++ timestamp = env_date.toLong(&env_date_ok, 10); ++ if (!env_date_ok) { ++ // "SOURCE_DATE_EPOCH is not a number! ++ timestamp = 0; ++ } ++ date = QDateTime::fromTime_t(timestamp).toUTC(); ++ } else { ++ date = QDateTime::currentDateTime(); ++ } ++ ++ return date; ++} ++ ++ + QDateTime QDateTime::currentDateTimeUtc() + { + // posix compliant system +--- qt4-x11-4.8.7+dfsg.orig/src/corelib/tools/qdatetime.h ++++ qt4-x11-4.8.7+dfsg/src/corelib/tools/qdatetime.h +@@ -264,6 +264,7 @@ public: + int utcOffset() const; + + static QDateTime currentDateTime(); ++ static QDateTime reproducibleDateTime(); + static QDateTime currentDateTimeUtc(); + #ifndef QT_NO_DATESTRING + static QDateTime fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); +--- qt4-x11-4.8.7+dfsg.orig/tools/assistant/lib/qhelpgenerator.cpp ++++ qt4-x11-4.8.7+dfsg/tools/assistant/lib/qhelpgenerator.cpp +@@ -381,7 +381,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->bindValue(0, QDateTime::reproducibleDateTime().toString(Qt::ISODate)); + d->query->exec(); + + return true; +--- 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::reproducibleDateTime().toTime_t()); + CollectionConfiguration::setFullTextSearchFallbackEnabled(helpEngine, + config.fullTextSearchFallbackEnabled()); + +--- 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::reproducibleDateTime()); + } + + 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-08-02 20:14:37.000000000 +0200 +++ qt4-x11-4.8.7+dfsg/debian/patches/series 2015-08-04 15:34:59.000000000 +0200 @@ -55,3 +55,4 @@ parisc-atomic.patch QtScript_x32_config.diff x32.diff +Replace_timestamp_with_SOURCE_DATE_EPOCH_in_qhelpgenerator.patchAttachment: signature.asc
Description: OpenPGP digital signature
--- End Message ---
--- Begin Message ---
- To: 794681-done@bugs.debian.org
- Subject: Re: qt4-x11: please support timestamps from environment
- From: Philip Rinn <rinni@inventati.org>
- Date: Tue, 5 Jul 2022 21:57:33 +0200
- Message-id: <6e238183-ac9c-26cf-e350-e4fa0414f86d@inventati.org>
Hi, qt4-x11 is removed from Debian, let's close this bug to get it off our list. Best, PhilipAttachment: OpenPGP_signature
Description: OpenPGP digital signature
--- End Message ---