Your message dated Fri, 06 Mar 2015 05:34:05 +0000
with message-id <[email protected]>
and subject line Bug#774510: fixed in pyqt5 5.4.1+dfsg-1
has caused the Debian Bug report #774510,
regarding pyqt5: remove timestamps in generated files to enable reproducible
building
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 [email protected]
immediately.)
--
774510: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=774510
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: pyqt5
Version: 5.3.2+dfsg-3
Severity: wishlist
Tags: patch
User: [email protected]
Usertags: timestamps toolchain
Hi,
the uic python module and the pyrcc tool are currently embedding
timestamps into the comments of generated files.
This results in packages that can't be built reproducibly, because
the timestamp will be a different one on each build (see Qt4 exmaple in [1]).
The attached patch removes the timestamp writing in those tools,
as this is no useful information anyway.
Regards,
Reiner
[1]:
https://reproducible.debian.net/userContent/issues/timestamps_in_source_generated_by_pyqt4_ui_issue.html
diff --git a/debian/changelog b/debian/changelog
index 4a86a73..f541d79 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+pyqt5 (5.3.2+dfsg-3.0~reproducible1) UNRELEASED; urgency=low
+
+ * Added patch which removes embedding of timestamps in generated
+ files, to enable reproducible builds in packages build-depending
+ on pyqt5.
+
+ -- Reiner Herrmann <[email protected]> Sat, 03 Jan 2015 17:54:54 +0100
+
pyqt5 (5.3.2+dfsg-3) unstable; urgency=medium
* Fix a typo in debian/tests/control.
diff --git a/debian/patches/remove_timestamps.diff b/debian/patches/remove_timestamps.diff
new file mode 100644
index 0000000..41f6234
--- /dev/null
+++ b/debian/patches/remove_timestamps.diff
@@ -0,0 +1,59 @@
+Description: prevent embedding of timestamps in files generated by rcc and uic
+ Timestamps in generated files will make packages using those tools no longer
+ build reproducibly, because the files will differ in each build.
+ As those timestamps are no useful information, they can be left out.
+Author: Reiner Herrmann <[email protected]>
+
+Index: pyqt5-5.3.2+dfsg/pyrcc/rcc.cpp
+===================================================================
+--- pyqt5-5.3.2+dfsg.orig/pyrcc/rcc.cpp
++++ pyqt5-5.3.2+dfsg/pyrcc/rcc.cpp
+@@ -45,7 +45,6 @@
+ #include <qfile.h>
+ #include <qfileinfo.h>
+ #include <qlocale.h>
+-#include <qdatetime.h>
+ #include <qtextstream.h>
+ #include <qbytearray.h>
+ #include <qhash.h>
+@@ -421,8 +420,7 @@ RCCResourceLibrary::writeHeader(FILE *ou
+ fprintf(out, "# -*- coding: utf-8 -*-\n\n");
+ fprintf(out, "# Resource object code\n");
+ fprintf(out, "#\n");
+- fprintf(out, "# Created: %s\n", QDateTime::currentDateTime().toString().toUtf8().constData());
+- fprintf(out, "# by: The Resource Compiler for PyQt (Qt v%s)\n", QT_VERSION_STR);
++ fprintf(out, "# Created by: The Resource Compiler for PyQt (Qt v%s)\n", QT_VERSION_STR);
+ fprintf(out, "#\n");
+ fprintf(out, "# WARNING! All changes made in this file will be lost!\n");
+ fprintf(out, "\n");
+Index: pyqt5-5.3.2+dfsg/pyuic/uic/__init__.py
+===================================================================
+--- pyqt5-5.3.2+dfsg.orig/pyuic/uic/__init__.py
++++ pyqt5-5.3.2+dfsg/pyuic/uic/__init__.py
+@@ -47,8 +47,7 @@ _header = """# -*- coding: utf-8 -*-
+
+ # Form implementation generated from reading ui file '%s'
+ #
+-# Created: %s
+-# by: PyQt5 UI code generator %s
++# Created by: PyQt5 UI code generator %s
+ #
+ # WARNING! All changes made in this file will be lost!
+
+@@ -149,7 +148,6 @@ def compileUi(uifile, pyfile, execute=Fa
+ module is foo_rc.
+ """
+
+- from time import ctime
+ from PyQt5.QtCore import PYQT_VERSION_STR
+
+ try:
+@@ -159,7 +157,7 @@ def compileUi(uifile, pyfile, execute=Fa
+
+ indenter.indentwidth = indent
+
+- pyfile.write(_header % (uifname, ctime(), PYQT_VERSION_STR))
++ pyfile.write(_header % (uifname, PYQT_VERSION_STR))
+
+ winfo = compiler.UICompiler().compileUi(uifile, pyfile, from_imports, resource_suffix)
+
diff --git a/debian/patches/series b/debian/patches/series
index 422cb22..7ca589c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
+remove_timestamps.diff
add_dependency.diff
signature.asc
Description: OpenPGP digital signature
--- End Message ---
--- Begin Message ---
Source: pyqt5
Source-Version: 5.4.1+dfsg-1
We believe that the bug you reported is fixed in the latest version of
pyqt5, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Dmitry Shachnev <[email protected]> (supplier of updated pyqt5 package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.8
Date: Thu, 05 Mar 2015 22:14:15 +0300
Source: pyqt5
Binary: pyqt5-dev pyqt5-dev-tools pyqt5-doc pyqt5-examples python3-pyqt5
python3-pyqt5-dbg python3-dbus.mainloop.pyqt5 python3-dbus.mainloop.pyqt5-dbg
python3-pyqt5.enginio python3-pyqt5.enginio-dbg python3-pyqt5.qtopengl
python3-pyqt5.qtopengl-dbg python3-pyqt5.qtsql python3-pyqt5.qtsql-dbg
python3-pyqt5.qtwebkit python3-pyqt5.qtwebkit-dbg python3-pyqt5.qtwebsockets
python3-pyqt5.qtwebsockets-dbg python3-pyqt5.qtxmlpatterns
python3-pyqt5.qtxmlpatterns-dbg python3-pyqt5.qtsvg python3-pyqt5.qtsvg-dbg
python3-pyqt5.qtmultimedia python3-pyqt5.qtmultimedia-dbg python3-pyqt5.qtquick
python3-pyqt5.qtquick-dbg python3-pyqt5.qtserialport
python3-pyqt5.qtserialport-dbg python3-pyqt5.qtsensors
python3-pyqt5.qtsensors-dbg python3-pyqt5.qtx11extras
python3-pyqt5.qtx11extras-dbg python3-pyqt5.qtpositioning
python3-pyqt5.qtpositioning-dbg python-pyqt5 python-pyqt5-dbg
python-dbus.mainloop.pyqt5 python-dbus.mainloop.pyqt5-dbg python-pyqt5.enginio
python-pyqt5.enginio-dbg
python-pyqt5.qtopengl python-pyqt5.qtopengl-dbg python-pyqt5.qtsql
python-pyqt5.qtsql-dbg python-pyqt5.qtwebkit python-pyqt5.qtwebkit-dbg
python-pyqt5.qtwebsockets python-pyqt5.qtwebsockets-dbg
python-pyqt5.qtxmlpatterns python-pyqt5.qtxmlpatterns-dbg python-pyqt5.qtsvg
python-pyqt5.qtsvg-dbg python-pyqt5.qtmultimedia python-pyqt5.qtmultimedia-dbg
python-pyqt5.qtquick python-pyqt5.qtquick-dbg python-pyqt5.qtserialport
python-pyqt5.qtserialport-dbg python-pyqt5.qtsensors python-pyqt5.qtsensors-dbg
python-pyqt5.qtx11extras python-pyqt5.qtx11extras-dbg python-pyqt5.qtpositioning
python-pyqt5.qtpositioning-dbg
Architecture: source all
Version: 5.4.1+dfsg-1
Distribution: experimental
Urgency: medium
Maintainer: Debian Python Modules Team
<[email protected]>
Changed-By: Dmitry Shachnev <[email protected]>
Description:
pyqt5-dev - Development files for PyQt5
pyqt5-dev-tools - Development tools for PyQt5
pyqt5-doc - Documentation for PyQt5
pyqt5-examples - Examples and demos for PyQt5
python-dbus.mainloop.pyqt5 - D-Bus Support for PyQt5 with Python
python-dbus.mainloop.pyqt5-dbg - D-Bus Support for PyQt5 (debug extensions for
Python)
python-pyqt5 - Python bindings for Qt5
python-pyqt5-dbg - Python bindings for Qt5 (debug extensions)
python-pyqt5.enginio - Python 2 bindings for Enginio library
python-pyqt5.enginio-dbg - Python 2 bindings for Enginio library (debug
extension)
python-pyqt5.qtmultimedia - Python bindings for Qt5's Multimedia module
python-pyqt5.qtmultimedia-dbg - Python bindings for Qt5's Multimedia module
(debug extensions)
python-pyqt5.qtopengl - Python bindings for Qt5's OpenGL module
python-pyqt5.qtopengl-dbg - Python bindings for Qt5's OpenGL module (debug
extension)
python-pyqt5.qtpositioning - Python bindings for QtPositioning module
python-pyqt5.qtpositioning-dbg - Python bindings for QtPositioning module
(debug extension)
python-pyqt5.qtquick - Python bindings for QtQuick module
python-pyqt5.qtquick-dbg - Python bindings for QtQuick module (debug
extensions)
python-pyqt5.qtsensors - Python bindings for QtSensors module
python-pyqt5.qtsensors-dbg - Python bindings for QtSensors module (debug
extension)
python-pyqt5.qtserialport - Python bindings for QtSerialPort module
python-pyqt5.qtserialport-dbg - Python bindings for QtSerialPort module (debug
extension)
python-pyqt5.qtsql - Python bindings for Qt5's SQL module
python-pyqt5.qtsql-dbg - Python bindings for Qt5's SQL module (debug extension)
python-pyqt5.qtsvg - Python bindings for Qt5's SVG module
python-pyqt5.qtsvg-dbg - Python bindings for Qt5's SVG module (debug extension)
python-pyqt5.qtwebkit - Python bindings for Qt5's WebKit module
python-pyqt5.qtwebkit-dbg - Python bindings for Qt5's WebKit module (debug
extensions)
python-pyqt5.qtwebsockets - Python bindings for Qt5's WebSockets module
python-pyqt5.qtwebsockets-dbg - Python bindings for Qt5's WebSockets module
(debug extension)
python-pyqt5.qtx11extras - Python bindings for QtX11Extras module
python-pyqt5.qtx11extras-dbg - Python bindings for QtX11Extras module (debug
extension)
python-pyqt5.qtxmlpatterns - Python bindings for Qt5's XmlPatterns module
python-pyqt5.qtxmlpatterns-dbg - Python bindings for Qt5's XmlPatterns module
(debug extension)
python3-dbus.mainloop.pyqt5 - D-Bus Support for PyQt5 with Python 3
python3-dbus.mainloop.pyqt5-dbg - D-Bus Support for PyQt5 (debug extensions
for Python 3)
python3-pyqt5 - Python 3 bindings for Qt5
python3-pyqt5-dbg - Python 3 bindings for Qt5 (debug extensions)
python3-pyqt5.enginio - Python 3 bindings for Enginio library
python3-pyqt5.enginio-dbg - Python 3 bindings for Enginio library (debug
extension)
python3-pyqt5.qtmultimedia - Python 3 bindings for Qt5's Multimedia module
python3-pyqt5.qtmultimedia-dbg - Python 3 bindings for Qt5's Multimedia module
(debug extensions)
python3-pyqt5.qtopengl - Python 3 bindings for Qt5's OpenGL module
python3-pyqt5.qtopengl-dbg - Python 3 bindings for Qt5's OpenGL module (debug
extension)
python3-pyqt5.qtpositioning - Python 3 bindings for QtPositioning module
python3-pyqt5.qtpositioning-dbg - Python 3 bindings for QtPositioning module
(debug extension)
python3-pyqt5.qtquick - Python 3 bindings for QtQuick module
python3-pyqt5.qtquick-dbg - Python 3 bindings for QtQuick module (debug
extension)
python3-pyqt5.qtsensors - Python 3 bindings for QtSensors module
python3-pyqt5.qtsensors-dbg - Python 3 bindings for QtSensors module (debug
extension)
python3-pyqt5.qtserialport - Python 3 bindings for QtSerialPort module
python3-pyqt5.qtserialport-dbg - Python 3 bindings for QtSerialPort module
(debug extension)
python3-pyqt5.qtsql - Python 3 bindings for Qt5's SQL module
python3-pyqt5.qtsql-dbg - Python 3 bindings for Qt5's SQL module (debug
extension)
python3-pyqt5.qtsvg - Python 3 bindings for Qt5's SVG module
python3-pyqt5.qtsvg-dbg - Python 3 bindings for Qt5's SVG module (debug
extension)
python3-pyqt5.qtwebkit - Python 3 bindings for Qt5's WebKit module
python3-pyqt5.qtwebkit-dbg - Python 3 bindings for Qt5's WebKit module (debug
extensions)
python3-pyqt5.qtwebsockets - Python 3 bindings for Qt5's WebSockets module
python3-pyqt5.qtwebsockets-dbg - Python 3 bindings for Qt5's WebSockets module
(debug extensions)
python3-pyqt5.qtx11extras - Python 3 bindings for QtX11Extras module
python3-pyqt5.qtx11extras-dbg - Python 3 bindings for QtX11Extras module
(debug extension)
python3-pyqt5.qtxmlpatterns - Python 3 bindings for Qt5's XmlPatterns module
python3-pyqt5.qtxmlpatterns-dbg - Python 3 bindings for Qt5's XmlPatterns
module (debug extension)
Closes: 774510 779369
Changes:
pyqt5 (5.4.1+dfsg-1) experimental; urgency=medium
.
* New upstream release.
- No longer inserts timestamps into generated files (closes: #774510).
- Require sip 4.16.6 for building.
* Build against Qt 5.4.1.
* Update list of possible options in pylupdate5 manpage.
* Add some Suggests to pyqt5-examples package (closes: #779369).
* No-op wrap and sort.
* Bump years in debian/copyright.
* Remove .pyc and .DS_Store files when cleaning.
Checksums-Sha1:
1bf9b01677e11a416c12c90b46e1ec2cec7e94a8 7905 pyqt5_5.4.1+dfsg-1.dsc
09f2eae3e5771784b1afdf0bc970f915bed8e4f7 3071693 pyqt5_5.4.1+dfsg.orig.tar.gz
d5a57d34560998acf742ccfa1a4998cca7d94f6c 14620 pyqt5_5.4.1+dfsg-1.debian.tar.xz
12f34101cf9f0d9284c04c64248e58cd3ce54ed5 286742 pyqt5-dev_5.4.1+dfsg-1_all.deb
3785e38ee50977497ec7a0cedcee790180921f79 357602 pyqt5-doc_5.4.1+dfsg-1_all.deb
aa5a408533dea7089c352c25de288aef1b99bb77 1728722
pyqt5-examples_5.4.1+dfsg-1_all.deb
Checksums-Sha256:
5efe5ff6347a48133856b27cb427e97c1b193964985b063ec745e2c076f1b06c 7905
pyqt5_5.4.1+dfsg-1.dsc
60c3d806c7f78379a2825647408e5d0220a72477b86ea36ef91c32c90a22b275 3071693
pyqt5_5.4.1+dfsg.orig.tar.gz
2c5dae6e655a890f7daa6b0ddcbb6a3cd4434e667e62ab96dc181917ab9150cc 14620
pyqt5_5.4.1+dfsg-1.debian.tar.xz
317870a6b0f75744e37f2e3dbd6b29b2f72938819b0c583d8edfa6402ce76c42 286742
pyqt5-dev_5.4.1+dfsg-1_all.deb
2978c7b3e7f3465e0a1c7673bedc99ff1db65cabb386d82d6ca5713f742ee479 357602
pyqt5-doc_5.4.1+dfsg-1_all.deb
6f1cddf284b7e4c0b6bc3a007c596a28ebf389ce6e0f30f6342c8e222640c453 1728722
pyqt5-examples_5.4.1+dfsg-1_all.deb
Files:
334a6a60f3bab2e444c5c2c1ab30d9ec 7905 python optional pyqt5_5.4.1+dfsg-1.dsc
b4372ac2a89b01bb968c036ac711fa14 3071693 python optional
pyqt5_5.4.1+dfsg.orig.tar.gz
ad34591da4fe607f362d02d69a884b03 14620 python optional
pyqt5_5.4.1+dfsg-1.debian.tar.xz
35843a4683627362b53155d6b50ea346 286742 python optional
pyqt5-dev_5.4.1+dfsg-1_all.deb
7f9f4c31af7db7dc8ba2b0292c19c2e7 357602 doc optional
pyqt5-doc_5.4.1+dfsg-1_all.deb
5a4b9f0113cda7eeb1ac6e13c32f6cc9 1728722 python optional
pyqt5-examples_5.4.1+dfsg-1_all.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAEBAgAGBQJU+TtyAAoJENb+cQNj+F3ThFoP/1E/4XrdB6TJ2YZ+kiLgsrS7
2wxdiLXylqbBBj6AKJzU+J1lfHMiRFgTAi68iCnVq9nWgadv6y8VZs7BCkXwjhZj
b0tVCTF2FSs4vtxcvD8bpc3LZ99xO6xm51oxnY4xFTGbV0fXYy9nbnGIAHWlsbiH
Ofpt0Xz3/5LsXJvX4rnTKKzS7R8O9vvHC7oY9bsVvk5oCvl/busSF3Z/FCZIqHkI
uelOFz+VUwf3LgYaDTxH7jlzvVWwpbqyRvKMempJ4ShnjO6FcDkO9ZWfRoNZiPJs
QAL5EhWBZewblW/5nChTJ+BhLoMRN3UvWIGYpv0UDPTBOVTVFfUfxEiWDMt5VWiZ
z2eYpZtbPBqdEIgIc6/X8Q45v2H/Og4DvnH20TchWkUinfgFaYM8nXkbvgVNFher
9YTdN2SpndM/FeqRNGfAzFTnj/w0DR7eq7XpuMqvnZkZTyzGBU8EfqAS5/2OnkyO
D3kuwfe/37X6YMJ7ma0Wo8AwV7REunWBr828AdodhKdwZohF6rX/mKDKAbH0JAgw
DBa09XsxI5faQz54ceieTLIS1ZbdxqllVe6avm/dbCZXqEiB4c0tYE+P6adTjlcL
QfZKd2IPANd/nbp2Gjj8gaioC/mVj+P3Dvcb2cqoeMinonUyw7fGVqM7UdyCqbak
CdLQZqfPyBGbCq/CF5xQ
=WNd3
-----END PGP SIGNATURE-----
--- End Message ---