Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package python-qtawesome An important bug was found on the QtAwesome Python library but was wrongly assigned to spyder at the time of the freeze (#844601). Upstream then released version 0.4.4, which only contains the fix for the said bug. I have prepared an update including the new upstream release fixing this bug, also merged a downstream fix from Ubuntu and improved the DEP-8 tests to cover all supported Python versions. The corresponding debdiff is attached with this email. I would like to request your approval for pushing this update to unstable and letting it migrate to Stretch. Best regards, Ghis unblock python-qtawesome/0.4.4+ds1-1 -- System Information: Debian Release: 9.0 APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 4.9.0-2-amd64 (SMP w/8 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system)
diff -Nru python-qtawesome-0.4.3/CHANGELOG.md python-qtawesome-0.4.4+ds1/CHANGELOG.md --- python-qtawesome-0.4.3/CHANGELOG.md 2017-01-22 13:13:15.000000000 +0000 +++ python-qtawesome-0.4.4+ds1/CHANGELOG.md 2017-01-28 22:03:42.000000000 +0000 @@ -1,5 +1,19 @@ # History of changes +## Version 0.4.4 (2017-01-28) + +### Bugs fixed + +**Pull requests** + +* [PR 70](https://github.com/spyder-ide/qtawesome/pull/70) - PR: Prevent segfaults when importing QtAwesome out of a of QApplication + +In this release 1 pull request was merged + + +---- + + ## Version 0.4.3 (2017-01-22) ### Bugs fixed diff -Nru python-qtawesome-0.4.3/debian/changelog python-qtawesome-0.4.4+ds1/debian/changelog --- python-qtawesome-0.4.3/debian/changelog 2017-01-24 00:47:22.000000000 +0000 +++ python-qtawesome-0.4.4+ds1/debian/changelog 2017-03-27 14:50:02.000000000 +0100 @@ -1,3 +1,14 @@ +python-qtawesome (0.4.4+ds1-1) unstable; urgency=medium + + * Filter spurious bytecode files from tarball + * New upstream release (Closes: #844601) + * Call xvfb-run with -a -s "-screen 0 1024x768x24 +extension GLX" to fix + segfaults on Ubuntu. + Thanks to Dmitry Shachnev + * Run autopkgtests for all supported Python versions + + -- Ghislain Antony Vaillant <ghisv...@gmail.com> Mon, 27 Mar 2017 14:50:02 +0100 + python-qtawesome (0.4.3-1) unstable; urgency=medium * Switch to git-dpm diff -Nru python-qtawesome-0.4.3/debian/copyright python-qtawesome-0.4.4+ds1/debian/copyright --- python-qtawesome-0.4.3/debian/copyright 2017-01-24 00:47:22.000000000 +0000 +++ python-qtawesome-0.4.4+ds1/debian/copyright 2017-03-27 14:50:02.000000000 +0100 @@ -1,6 +1,8 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: qtawesome Source: https://github.com/spyder-ide/qtawesome +Comment: Spurious bytecode files are excluded. +Files-Excluded: qtawesome/tests/__pycache__/* Files: * Copyright: 2015 The Spyder Development Team diff -Nru python-qtawesome-0.4.3/debian/.git-dpm python-qtawesome-0.4.4+ds1/debian/.git-dpm --- python-qtawesome-0.4.3/debian/.git-dpm 2017-01-24 00:47:22.000000000 +0000 +++ python-qtawesome-0.4.4+ds1/debian/.git-dpm 2017-03-27 14:50:02.000000000 +0100 @@ -1,11 +1,11 @@ # see git-dpm(1) from git-dpm package -a699b9288646c00802eaaa95c0d1e353decd6364 -a699b9288646c00802eaaa95c0d1e353decd6364 -503eba56b88b7cb3cd3930dbb13ccc91ce5057ff -503eba56b88b7cb3cd3930dbb13ccc91ce5057ff -python-qtawesome_0.4.3.orig.tar.gz -c03d11d444a1c8ce704c40720e36125d01a3cf6b -158547 +bd70c9f1881f0a3bede47757db183a7a2ddc7cff +bd70c9f1881f0a3bede47757db183a7a2ddc7cff +1852c97f07a08c89330741387f9ea36dee74a8bf +1852c97f07a08c89330741387f9ea36dee74a8bf +python-qtawesome_0.4.4+ds1.orig.tar.gz +528605f1d2ba0e760508b73153d9bd45da88283e +158896 debianTag="debian/%e%v" patchedTag="patched/%e%v" upstreamTag="upstream/%e%u" diff -Nru python-qtawesome-0.4.3/debian/patches/0001-Make-intersphinx-link-with-system-documentation.patch python-qtawesome-0.4.4+ds1/debian/patches/0001-Make-intersphinx-link-with-system-documentation.patch --- python-qtawesome-0.4.3/debian/patches/0001-Make-intersphinx-link-with-system-documentation.patch 2017-01-24 00:47:22.000000000 +0000 +++ python-qtawesome-0.4.4+ds1/debian/patches/0001-Make-intersphinx-link-with-system-documentation.patch 2017-03-27 14:50:02.000000000 +0100 @@ -1,4 +1,4 @@ -From 797dd345de78a16bd7cf50b38cbabc4f494554d4 Mon Sep 17 00:00:00 2001 +From f63f0017409f13b480f535e07be54671f2a15048 Mon Sep 17 00:00:00 2001 From: Ghislain Antony Vaillant <ghisv...@gmail.com> Date: Mon, 11 Jul 2016 15:12:19 +0100 Subject: Make intersphinx link with system documentation diff -Nru python-qtawesome-0.4.3/debian/patches/0002-Use-system-fonts.patch python-qtawesome-0.4.4+ds1/debian/patches/0002-Use-system-fonts.patch --- python-qtawesome-0.4.3/debian/patches/0002-Use-system-fonts.patch 2017-01-24 00:47:22.000000000 +0000 +++ python-qtawesome-0.4.4+ds1/debian/patches/0002-Use-system-fonts.patch 2017-03-27 14:50:02.000000000 +0100 @@ -1,4 +1,4 @@ -From a699b9288646c00802eaaa95c0d1e353decd6364 Mon Sep 17 00:00:00 2001 +From bd70c9f1881f0a3bede47757db183a7a2ddc7cff Mon Sep 17 00:00:00 2001 From: Ghislain Antony Vaillant <ghisv...@gmail.com> Date: Mon, 23 Jan 2017 23:31:11 +0000 Subject: Use system fonts @@ -8,10 +8,10 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qtawesome/iconic_font.py b/qtawesome/iconic_font.py -index 597bd59..704d957 100644 +index af67000..0ab618e 100644 --- a/qtawesome/iconic_font.py +++ b/qtawesome/iconic_font.py -@@ -28,7 +28,7 @@ from six import unichr +@@ -30,7 +30,7 @@ from six import unichr # Linux packagers, please set this to True if you want to make qtawesome # use system fonts diff -Nru python-qtawesome-0.4.3/debian/rules python-qtawesome-0.4.4+ds1/debian/rules --- python-qtawesome-0.4.3/debian/rules 2017-01-24 00:47:22.000000000 +0000 +++ python-qtawesome-0.4.4+ds1/debian/rules 2017-03-27 14:50:02.000000000 +0100 @@ -20,5 +20,5 @@ ifeq (,$(findstring nocheck,$(DEB_BUILD_PROFILES))) PYBUILD_SYSTEM=custom \ PYBUILD_TEST_ARGS="cd {build_dir}; {interpreter} {dir}/example.py" \ - xvfb-run dh_auto_test + xvfb-run -a -s "-screen 0 1024x768x24 +extension GLX" dh_auto_test endif diff -Nru python-qtawesome-0.4.3/debian/tests/control python-qtawesome-0.4.4+ds1/debian/tests/control --- python-qtawesome-0.4.3/debian/tests/control 2017-01-24 00:47:22.000000000 +0000 +++ python-qtawesome-0.4.4+ds1/debian/tests/control 2017-03-27 14:50:02.000000000 +0100 @@ -1,5 +1,23 @@ -Test-Command: xvfb-run python example.py -Depends: python-qtawesome, xauth, xvfb +Test-Command: set -e + ; cp example.py "$AUTOPKGTEST_TMP" + ; for py in $(pyversions -r 2>/dev/null) + ; do cd "$AUTOPKGTEST_TMP" + ; echo "Testing with $py:" + ; xvfb-run -a -s "-screen 0 1024x768x24 +extension GLX" $py example.py + ; done +Depends: python-all, + python-qtawesome, + xauth, + xvfb -Test-Command: xvfb-run python3 example.py -Depends: python3-qtawesome, xauth, xvfb +Test-Command: set -e + ; cp example.py "$AUTOPKGTEST_TMP" + ; for py in $(py3versions -r 2>/dev/null) + ; do cd "$AUTOPKGTEST_TMP" + ; echo "Testing with $py:" + ; xvfb-run -a -s "-screen 0 1024x768x24 +extension GLX" $py example.py + ; done +Depends: python3-all, + python3-qtawesome, + xauth, + xvfb diff -Nru python-qtawesome-0.4.3/debian/watch python-qtawesome-0.4.4+ds1/debian/watch --- python-qtawesome-0.4.3/debian/watch 2017-01-24 00:47:22.000000000 +0000 +++ python-qtawesome-0.4.4+ds1/debian/watch 2017-03-27 14:50:02.000000000 +0100 @@ -1,3 +1,5 @@ version=4 -opts=uversionmangle=s/(rc|a|b|c)/~$1/ \ +opts=repacksuffix=+ds1,\ +dversionmangle=s/\+(debian|dfsg|ds|deb)(\.?\d+)?$//,\ +uversionmangle=s/(rc|a|b|c)/~$1/ \ https://pypi.debian.net/QtAwesome/QtAwesome@ANY_VERSION@@ARCHIVE_EXT@ diff -Nru python-qtawesome-0.4.3/MANIFEST.in python-qtawesome-0.4.4+ds1/MANIFEST.in --- python-qtawesome-0.4.3/MANIFEST.in 2017-01-22 13:11:27.000000000 +0000 +++ python-qtawesome-0.4.4+ds1/MANIFEST.in 2017-01-28 00:24:20.000000000 +0000 @@ -3,3 +3,4 @@ exclude docs/*.yml include CHANGELOG.md LICENSE README.md include example.py +recursive-include qtawesome/tests * diff -Nru python-qtawesome-0.4.3/PKG-INFO python-qtawesome-0.4.4+ds1/PKG-INFO --- python-qtawesome-0.4.3/PKG-INFO 2017-01-22 13:16:00.000000000 +0000 +++ python-qtawesome-0.4.4+ds1/PKG-INFO 2017-01-28 22:06:02.000000000 +0000 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: QtAwesome -Version: 0.4.3 +Version: 0.4.4 Summary: FontAwesome icons in PyQt and PySide applications Home-page: https://github.com/spyder-ide/qtawesome Author: Sylvain Corlay diff -Nru python-qtawesome-0.4.3/qtawesome/iconic_font.py python-qtawesome-0.4.4+ds1/qtawesome/iconic_font.py --- python-qtawesome-0.4.3/qtawesome/iconic_font.py 2017-01-19 16:14:22.000000000 +0000 +++ python-qtawesome-0.4.4+ds1/qtawesome/iconic_font.py 2017-01-28 00:24:20.000000000 +0000 @@ -18,11 +18,13 @@ import json import os import hashlib +import warnings # Third party imports from qtpy.QtCore import QObject, QPoint, QRect, qRound, Qt from qtpy.QtGui import (QColor, QFont, QFontDatabase, QIcon, QIconEngine, QPainter, QPixmap) +from qtpy.QtWidgets import QApplication from six import unichr @@ -205,38 +207,41 @@ os.path.dirname(os.path.realpath(__file__)), 'fonts') # Load font - id_ = QFontDatabase.addApplicationFont(os.path.join(directory, - ttf_filename)) - loadedFontFamilies = QFontDatabase.applicationFontFamilies(id_) - if(loadedFontFamilies): - self.fontname[prefix] = loadedFontFamilies[0] - else: - raise FontError(u"Font at '{0}' appears to be empty. " - "If you are on Windows 10, please read " - "https://support.microsoft.com/en-us/kb/3053676 " - "to know how to prevent Windows from blocking " - "the fonts that come with QtAwesome.".format( - os.path.join(directory, ttf_filename))) - - with open(os.path.join(directory, charmap_filename), 'r') as codes: - self.charmap[prefix] = json.load(codes, object_hook=hook) - - # Verify that vendorized fonts are not corrupt - if not SYSTEM_FONTS: - md5_hashes = {'fontawesome-webfont.ttf': - 'a3de2170e4e9df77161ea5d3f31b2668', - 'elusiveicons-webfont.ttf': - '207966b04c032d5b873fd595a211582e'} - ttf_hash = md5_hashes.get(ttf_filename, None) - if ttf_hash is not None: - hasher = hashlib.md5() - with open(os.path.join(directory, ttf_filename), 'rb') as f: - content = f.read() - hasher.update(content) - ttf_calculated_hash_code = hasher.hexdigest() - if ttf_calculated_hash_code != ttf_hash: - raise FontError(u"Font is corrupt at: '{0}'".format( - os.path.join(directory, ttf_filename))) + if QApplication.instance() is not None: + id_ = QFontDatabase.addApplicationFont(os.path.join(directory, + ttf_filename)) + loadedFontFamilies = QFontDatabase.applicationFontFamilies(id_) + if(loadedFontFamilies): + self.fontname[prefix] = loadedFontFamilies[0] + else: + raise FontError(u"Font at '{0}' appears to be empty. " + "If you are on Windows 10, please read " + "https://support.microsoft.com/" + "en-us/kb/3053676 " + "to know how to prevent Windows from blocking " + "the fonts that come with QtAwesome.".format( + os.path.join(directory, ttf_filename))) + + with open(os.path.join(directory, charmap_filename), 'r') as codes: + self.charmap[prefix] = json.load(codes, object_hook=hook) + + # Verify that vendorized fonts are not corrupt + if not SYSTEM_FONTS: + md5_hashes = {'fontawesome-webfont.ttf': + 'a3de2170e4e9df77161ea5d3f31b2668', + 'elusiveicons-webfont.ttf': + '207966b04c032d5b873fd595a211582e'} + ttf_hash = md5_hashes.get(ttf_filename, None) + if ttf_hash is not None: + hasher = hashlib.md5() + with open(os.path.join(directory, ttf_filename), + 'rb') as f: + content = f.read() + hasher.update(content) + ttf_calculated_hash_code = hasher.hexdigest() + if ttf_calculated_hash_code != ttf_hash: + raise FontError(u"Font is corrupt at: '{0}'".format( + os.path.join(directory, ttf_filename))) def icon(self, *names, **kwargs): """Return a QIcon object corresponding to the provided icon name.""" @@ -247,17 +252,22 @@ error = '"options" must be a list of size {0}'.format(len(names)) raise Exception(error) - parsed_options = [] - for i in range(len(options_list)): - specific_options = options_list[i] - parsed_options.append(self._parse_options(specific_options, - general_options, - names[i])) + if QApplication.instance() is not None: + parsed_options = [] + for i in range(len(options_list)): + specific_options = options_list[i] + parsed_options.append(self._parse_options(specific_options, + general_options, + names[i])) - # Process high level API - api_options = parsed_options + # Process high level API + api_options = parsed_options - return self._icon_by_painter(self.painter, api_options) + return self._icon_by_painter(self.painter, api_options) + else: + warnings.warn("You need to have a running " + "QApplication to use QtAwesome!") + return QIcon() def _parse_options(self, specific_options, general_options, name): options = dict(_default_options, **general_options) diff -Nru python-qtawesome-0.4.3/qtawesome/tests/test_qtawesome.py python-qtawesome-0.4.4+ds1/qtawesome/tests/test_qtawesome.py --- python-qtawesome-0.4.3/qtawesome/tests/test_qtawesome.py 1970-01-01 01:00:00.000000000 +0100 +++ python-qtawesome-0.4.4+ds1/qtawesome/tests/test_qtawesome.py 2017-01-28 00:24:20.000000000 +0000 @@ -0,0 +1,16 @@ +r""" +Tests for QtAwesome. +""" +# Standard library imports +import subprocess + +# Test Library imports +import pytest + +def test_segfault_import(): + output_number = subprocess.call('python -c "import qtawesome ' + '; qtawesome.icon()"', shell=True) + assert output_number == 0 + +if __name__ == "__main__": + pytest.main() diff -Nru python-qtawesome-0.4.3/qtawesome/_version.py python-qtawesome-0.4.4+ds1/qtawesome/_version.py --- python-qtawesome-0.4.3/qtawesome/_version.py 2017-01-22 13:14:54.000000000 +0000 +++ python-qtawesome-0.4.4+ds1/qtawesome/_version.py 2017-01-28 22:05:23.000000000 +0000 @@ -1,2 +1,2 @@ -version_info = (0, 4, 3) +version_info = (0, 4, 4) __version__ = '.'.join(map(str, version_info)) diff -Nru python-qtawesome-0.4.3/QtAwesome.egg-info/PKG-INFO python-qtawesome-0.4.4+ds1/QtAwesome.egg-info/PKG-INFO --- python-qtawesome-0.4.3/QtAwesome.egg-info/PKG-INFO 2017-01-22 13:16:00.000000000 +0000 +++ python-qtawesome-0.4.4+ds1/QtAwesome.egg-info/PKG-INFO 2017-01-28 22:06:01.000000000 +0000 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: QtAwesome -Version: 0.4.3 +Version: 0.4.4 Summary: FontAwesome icons in PyQt and PySide applications Home-page: https://github.com/spyder-ide/qtawesome Author: Sylvain Corlay diff -Nru python-qtawesome-0.4.3/QtAwesome.egg-info/SOURCES.txt python-qtawesome-0.4.4+ds1/QtAwesome.egg-info/SOURCES.txt --- python-qtawesome-0.4.3/QtAwesome.egg-info/SOURCES.txt 2017-01-22 13:16:00.000000000 +0000 +++ python-qtawesome-0.4.4+ds1/QtAwesome.egg-info/SOURCES.txt 2017-01-28 22:06:02.000000000 +0000 @@ -24,4 +24,6 @@ qtawesome/fonts/elusiveicons-webfont-charmap.json qtawesome/fonts/elusiveicons-webfont.ttf qtawesome/fonts/fontawesome-webfont-charmap.json -qtawesome/fonts/fontawesome-webfont.ttf \ No newline at end of file +qtawesome/fonts/fontawesome-webfont.ttf +qtawesome/tests/test_qtawesome.py +qtawesome/tests/__pycache__/test_qtawesome.cpython-35-PYTEST.pyc \ No newline at end of file