Bug#1059631: qhelpgenerator-qt5: nearly-reproducible LastRegisterTime value in .qch files is not timezone-normalized
James Addison
jay at jp-hosting.net
Sat Dec 30 17:12:52 GMT 2023
Package: qhelpgenerator-qt5
Followup-For: Bug #1059631
X-Debbugs-Cc: reproducible-bugs at lists.alioth.debian.org
My apologies: I had indeed misdiagnosed the problem here.
The code that inserts into the SettingsTable, where the problem reported here
manifests, is unrelated to the patch from bug #875847 - there is a separate
check for SOURCE_CODE_EPOCH in the src/assistant/qhelpgenerator/main.cpp file.
To test a fix, I used the following commands to replicate the problem:
$ SOURCE_DATE_EPOCH=1503951538 qhelpgenerator examples/assistant/simpletextviewer/documentation/simpletextviewer.qhcp -o foo.qch
$ TZ=GMT+8 SOURCE_DATE_EPOCH=1503951538 qhelpgenerator examples/assistant/simpletextviewer/documentation/simpletextviewer.qhcp -o bar.qch
Please find attached a patch to address the problem. Note that I decided to
patch both SOURCE_CODE_EPOCH locations for consistency, despite the fact that
only the main.cpp code site was confirmed affected.
-------------- next part --------------
Description: helpgenerator: clear UTC offset to zero when reading SOURCE_DATE_EPOCH value
Author: James Addison <jay at jp-hosting.net>
Bug-Debian: https://bugs.debian.org/1059631
--- qttools-opensource-src-5.15.10.orig/src/assistant/help/qhelpcollectionhandler.cpp
+++ qttools-opensource-src-5.15.10/src/assistant/help/qhelpcollectionhandler.cpp
@@ -2202,8 +2202,10 @@ bool QHelpCollectionHandler::registerInd
const QString sourceDateEpochStr = qEnvironmentVariable("SOURCE_DATE_EPOCH");
bool ok;
const qlonglong sourceDateEpoch = sourceDateEpochStr.toLongLong(&ok);
- if (ok && sourceDateEpoch < lastModified.toSecsSinceEpoch())
+ if (ok && sourceDateEpoch < lastModified.toSecsSinceEpoch()) {
+ lastModified.setOffsetFromUtc(0);
lastModified.setSecsSinceEpoch(sourceDateEpoch);
+ }
}
m_query->addBindValue(lastModified.toString(Qt::ISODate));
if (!m_query->exec())
--- qttools-opensource-src-5.15.10.orig/src/assistant/qhelpgenerator/main.cpp
+++ qttools-opensource-src-5.15.10/src/assistant/qhelpgenerator/main.cpp
@@ -116,6 +116,7 @@ int generateCollectionFile(const QByteAr
if (!config.filesToRegister().isEmpty()) {
if (Q_UNLIKELY(qEnvironmentVariableIsSet("SOURCE_DATE_EPOCH"))) {
QDateTime dt;
+ dt.setOffsetFromUtc(0);
dt.setSecsSinceEpoch(qEnvironmentVariableIntValue("SOURCE_DATE_EPOCH"));
CollectionConfiguration::updateLastRegisterTime(helpEngine, dt);
} else {
More information about the Reproducible-bugs
mailing list