Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package reportbug This is the final upload for stretch: it contains several bugfixes and improvement that would make reportbug in stretch much more robust for our users. A source packages diff is attached unblock reportbug/7.1.7 -- System Information: Debian Release: stretch/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.2.0-1-amd64 (SMP w/8 CPU cores) Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8), LANGUAGE= (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system)
diff -Nru reportbug-7.1.6/bin/querybts reportbug-7.1.7/bin/querybts --- reportbug-7.1.6/bin/querybts 2017-04-18 21:12:02.000000000 -0400 +++ reportbug-7.1.7/bin/querybts 2017-05-29 16:00:17.000000000 -0400 @@ -168,16 +168,16 @@ url = debbugs.get_report_url(options.system, num, options.archived, mbox=True) try: report = urlutils.open_url(url, timeout=options.timeout) - sys.stdout.write(report.read()) - except urlutils.urllib2.URLError as ex: + sys.stdout.write(report) + except NoNetwork as ex: print("Error while accessing mbox report (%s)." % ex, file=sys.stderr) else: num = int(m.group(1)) url = debbugs.get_report_url(options.system, num, options.archived, mbox=True) try: report = urlutils.open_url(url, timeout=options.timeout) - sys.stdout.write(report.read()) - except urlutils.urllib2.URLError as ex: + sys.stdout.write(report) + except NoNetwork as ex: print("Error while accessing mbox report (%s)." % ex, file=sys.stderr) sys.exit(1) return diff -Nru reportbug-7.1.6/bin/reportbug reportbug-7.1.7/bin/reportbug --- reportbug-7.1.6/bin/reportbug 2017-04-18 21:12:02.000000000 -0400 +++ reportbug-7.1.7/bin/reportbug 2017-05-29 16:00:17.000000000 -0400 @@ -1051,7 +1051,7 @@ if options.draftpath: options.draftpath = os.path.expanduser(options.draftpath) if not os.path.exists(options.draftpath): - print("The directory % does not exist; exiting." % options.draftpath) + ewrite("The directory %s does not exist; exiting.\n" % options.draftpath) sys.exit(1) if options.mua and not options.template: diff -Nru reportbug-7.1.6/debian/changelog reportbug-7.1.7/debian/changelog --- reportbug-7.1.6/debian/changelog 2017-04-18 21:12:02.000000000 -0400 +++ reportbug-7.1.7/debian/changelog 2017-05-29 16:00:17.000000000 -0400 @@ -1,3 +1,51 @@ +reportbug (7.1.7) unstable; urgency=medium + + * reportbug/utils.py + - fix description regex to match only textual description (and not the MD5); + patch by Nis Martensen; Closes: #863322 + - switch to use apt-cache instead of dpkg --print-avail; patch by Nis + Martensen + - get_command_output() doesnt strip a trailing new-line, so deal with that + behavior when running lsb_release and dpkg --print-architecture; patch by + Nis Martensen; Closes: #861153 + - update suites names: fade out squeeze (wheezy is now oldoldstable) and + introduce buster (testing), bullseye (next-testing); Closes: #862801 + - in search_path_for, split PATH directories using ':'; patch by Kamaraju + Kusumanchi; Closes: #827088 + - strip arch-qualifier when looking up dependencies information; patch by + Nis Martensen; Closes: #749884 + - fix a crash when parsing the config files lines in the package + information; patch by Nis Martensen; Closes: #857013, #846053, #826534 + * reportbug/debbugs.py + - add manpages.debian.org to pseudo-packages list; Closes: #861859 + * debian/control + - update emacs dependencies to emacs24 (default) and emacs25 (alternative) + - remove Chris Lawrence from Uploaders, thanks for all you've done for + reportbug!! + - switch Vcs-* URLs to HTTPS + * remove double imports + * debian/desktop + - add Danish translation to desktop file; patch by scootergrisen; + Closes: #855973 + * reportbug/bugreport.py + - add LANGUAGE env var to locales bugreport section; Closes: #840898 + * bin/querybts + - url_open() now returns a string, no need to read() it anymore; also + replace URLError exception handling with NoNetwork; Closes: #859274 + * reportbug/debbugs.py, reportbug/utils.py + - Finish open_url return type conversion: url_open() now returns a string + and no longer an HTTPRespons object; patch by Nis Martensen; extends the + fix for #859274 + * bin/reportbug + - fix error formatting when printing the error for draft directory + non-existing; patch by Gaetano Guerriero; Closes: #816375 + * doc/README.source + - update README.source to the current source layout; Closes: #827002 + * debian/copyright + - switch the Format field to the URL in the packaging-manuals + + -- Sandro Tosi <mo...@debian.org> Mon, 29 May 2017 16:00:17 -0400 + reportbug (7.1.6) unstable; urgency=medium * reportbug/utils.py diff -Nru reportbug-7.1.6/debian/control reportbug-7.1.7/debian/control --- reportbug-7.1.6/debian/control 2017-04-18 21:12:02.000000000 -0400 +++ reportbug-7.1.7/debian/control 2017-05-29 16:00:17.000000000 -0400 @@ -2,18 +2,18 @@ Section: utils Priority: standard Maintainer: Reportbug Maintainers <reportbug-ma...@lists.alioth.debian.org> -Uploaders: Sandro Tosi <mo...@debian.org>, Chris Lawrence <lawre...@debian.org> +Uploaders: Sandro Tosi <mo...@debian.org> Standards-Version: 3.9.8 Build-Depends: debhelper (>= 9), python3, dh-python Build-Depends-Indep: python3-nose, python3-setuptools, python3-mock -Vcs-Git: git://anonscm.debian.org/reportbug/reportbug.git -Vcs-Browser: http://anonscm.debian.org/gitweb/?p=reportbug/reportbug.git +Vcs-Git: https://anonscm.debian.org/git/reportbug/reportbug.git +Vcs-Browser: https://anonscm.debian.org/cgit/reportbug/reportbug.git Homepage: http://alioth.debian.org/projects/reportbug/ Package: reportbug Architecture: all Depends: ${misc:Depends}, ${python3:Depends}, apt, python3-reportbug (= ${source:Version}) -Suggests: postfix | exim4 | mail-transport-agent, gnupg | pgp, debconf-utils (>> 1.1.0), debsums (>= 2.0.47), file (>> 1.30), dlocate, python3-urwid, python3-gi, python3-gi-cairo, gir1.2-gtk-3.0, gir1.2-vte-2.91, python3-gtkspellcheck, xdg-utils, emacs23-bin-common | emacs24-bin-common, claws-mail (>= 3.8.0) +Suggests: postfix | exim4 | mail-transport-agent, gnupg | pgp, debconf-utils (>> 1.1.0), debsums (>= 2.0.47), file (>> 1.30), dlocate, python3-urwid, python3-gi, python3-gi-cairo, gir1.2-gtk-3.0, gir1.2-vte-2.91, python3-gtkspellcheck, xdg-utils, emacs24-bin-common | emacs25-bin-common, claws-mail (>= 3.8.0) Description: reports bugs in the Debian distribution reportbug is a tool designed to make the reporting of bugs in Debian and derived distributions relatively painless. Its features include: diff -Nru reportbug-7.1.6/debian/copyright reportbug-7.1.7/debian/copyright --- reportbug-7.1.6/debian/copyright 2017-04-18 21:12:02.000000000 -0400 +++ reportbug-7.1.7/debian/copyright 2017-05-29 16:00:17.000000000 -0400 @@ -1,4 +1,4 @@ -Format-Specification: http://wiki.debian.org/Proposals/CopyrightFormat +Format-Specification: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Author: Chris Lawrence <lawre...@debian.org> Upstream-Author: Sandro Tosi <mo...@debian.org> Packaged-By: Chris Lawrence <lawre...@debian.org> diff -Nru reportbug-7.1.6/debian/desktop reportbug-7.1.7/debian/desktop --- reportbug-7.1.6/debian/desktop 2017-04-18 21:12:02.000000000 -0400 +++ reportbug-7.1.7/debian/desktop 2017-05-29 16:00:17.000000000 -0400 @@ -1,14 +1,18 @@ [Desktop Entry] Type=Application Name=Reportbug +Name[da]=Reportbug Name[ru]=Reportbug Name[zh_CN]=报告漏洞 Comment=Report bugs to the Debian BTS +Comment[da]=Rapportér fejl til Debian fejlrapporteringssystem Comment[ru]=Создание и отправка отчёта об ошибке в Debian BTS Comment[zh_CN]=向 Debian 缺陷跟踪系统报告漏洞 GenericName=Debian bug reporting tool +GenericName[da]=Debian fejlrapporteringsværktøj GenericName[ru]=Отчёт об ошибке Reportbug GenericName[zh_CN]=Debian 缺陷报告工具 +X-GNOME-FullName[da]=Debian fejlrapporteringsværktøj X-GNOME-FullName[ru]=Отчёт об ошибке Reportbug X-GNOME-FullName[zh_CN]=Debian 缺陷报告工具 Icon=debian-swirl @@ -16,4 +20,5 @@ Exec=reportbug --exit-prompt --ui gtk2 Categories=System; Keywords=Debian;Bug;Bugs;BTS; +Keywords[da]=Debian;Bug;Bugs;BTS;Fejlrapporteringssystem;Fejl; Keywords[zh_CN]=漏洞;报告;缺陷; diff -Nru reportbug-7.1.6/doc/README.source reportbug-7.1.7/doc/README.source --- reportbug-7.1.6/doc/README.source 2017-04-18 21:12:02.000000000 -0400 +++ reportbug-7.1.7/doc/README.source 2017-05-29 16:00:17.000000000 -0400 @@ -5,7 +5,7 @@ * Top level - * Manual pages. + * Installation tools * Debian packaging @@ -25,18 +25,16 @@ * `Unit testing framework`_ * ``test/`` contains the unit test suite. Unit test modules are - discovered and run using the ``nosetests`` program, and are named + discovered and run using the ``nosetests3`` program, and are named as ``test_*.py``. -* Internal checking framework +* Documentation - * ``checks/`` contains various scripts that ensure reportbug's - internals are up-to-date with the Debian BTS. + * ``doc/`` contains documentation for both users and developers. -* Internationalisation and localisation +* Manual pages - * ``po4a/`` contains configuration and data for localisation of - source files using the ``po4a`` tool. + * ``man/`` contains the manual pages for the programs. Unit testing framework ====================== @@ -47,14 +45,13 @@ files. New unit test modules should be added to this directory and named ``test_*.py``. -The unit test suite depends on the `python-nose` package being -installed, to make the ``nosetests`` command available. The unit tests -themselves can be written using either the `unittest` or `doctest` -modules in the standard Python library. - -The `scaffold` module (from the ``test/scaffold.py`` file) contains -some helper functionality for unit tests, including an extended -`TestCase` class. +The unit test suite depends on the `python3-nose` package being +installed, to make the ``nosetests3`` command available. The unit tests +themselves can be written using the `unittest` modules in the standard +Python library. + +The ``data/`` contains some additional files required by tests, such as +control files, scripts, etc. ``make`` targets for testing and quality checks ----------------------------------------------- @@ -62,29 +59,24 @@ The following ``make`` targets are useful for testing and related tasks. -* ``make test`` runs the unit test suite, preceded by a timestamp +* ``make tests`` runs the unit test suite, preceded by a timestamp banner, and reports any test failures or "OK" if all tests pass. -* ``make test-continuous`` starts a loop which clears the screen, runs - ``make test``, then waits for any of the tests or source code to - change, and starts the loop again. - - This is useful to run in a separate terminal during a development - session, so that whenever a change is made the test suite will be - run automatically. You might want to keep the window hidden while - actually editing files, and only look at it when you've created or - modified a file and want to check its effect on the test run. - - This uses the ``inotifywait`` command from the `inotify-tools` - package to wait for `create` and `modify` events. +* ``make quicktests`` runs the unit test suite, but only for those + tests that dont require network access, which can be slow sometimes + (hence the name) * ``make coverage`` runs the test suite and collects test coverage information, then reports the current statement coverage of the test suite. - This requires the `python-coverage` package to be installed. See its + This requires the `python3-coverage` package to be installed. See its documentation for more about its operation. +* ``make coverhtml`` runs the test suite and collects test coverage + information, then reports the current statement coverage using an HTML + output format. + * ``make pyflakes`` runs the `pyflakes` static code checker on all Python files found in the project tree. @@ -97,6 +89,9 @@ This requires the `pylint` package to be installed. See its documentation for more about its operation. +* ``make pep8`` runs the `pep8` static code checker. + + This requires the `pep8` package to be installed. .. Local Variables: diff -Nru reportbug-7.1.6/.idea/workspace.xml reportbug-7.1.7/.idea/workspace.xml --- reportbug-7.1.6/.idea/workspace.xml 2017-04-18 21:12:02.000000000 -0400 +++ reportbug-7.1.7/.idea/workspace.xml 2017-05-29 16:00:17.000000000 -0400 @@ -23,8 +23,8 @@ <file leaf-file-name="utils.py" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/reportbug/utils.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="5472"> - <caret line="307" column="52" lean-forward="false" selection-start-line="307" selection-start-column="52" selection-end-line="307" selection-end-column="52" /> + <state relative-caret-position="5598"> + <caret line="314" column="52" lean-forward="false" selection-start-line="314" selection-start-column="52" selection-end-line="314" selection-end-column="52" /> <folding /> </state> </provider> @@ -45,8 +45,8 @@ <file leaf-file-name="gtk2_ui.py" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/reportbug/ui/gtk2_ui.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="23976"> - <caret line="1332" column="62" lean-forward="false" selection-start-line="1332" selection-start-column="62" selection-end-line="1332" selection-end-column="62" /> + <state relative-caret-position="24084"> + <caret line="1338" column="62" lean-forward="false" selection-start-line="1338" selection-start-column="62" selection-end-line="1338" selection-end-column="62" /> <folding /> </state> </provider> @@ -88,8 +88,11 @@ <entry file="file://$PROJECT_DIR$/reportbug/submit.py"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="2862"> - <caret line="183" column="9" lean-forward="false" selection-start-line="183" selection-start-column="9" selection-end-line="183" selection-end-column="9" /> - <folding /> + <caret line="189" column="9" lean-forward="false" selection-start-line="189" selection-start-column="9" selection-end-line="189" selection-end-column="9" /> + <folding> + <marker date="1492563722401" expanded="true" signature="5349:5362" ph="..." /> + <marker date="1492563722401" expanded="true" signature="6422:6449" ph="..." /> + </folding> </state> </provider> </entry> @@ -166,6 +169,7 @@ <option value="$PROJECT_DIR$/reportbug/utils.py" /> <option value="$PROJECT_DIR$/share/script" /> <option value="$PROJECT_DIR$/reportbug/ui/gtk2_ui.py" /> + <option value="$PROJECT_DIR$/debian/control" /> </list> </option> </component> @@ -488,7 +492,7 @@ </component> <component name="ToolWindowManager"> <frame x="0" y="28" width="1366" height="713" extended-state="0" /> - <editor active="false" /> + <editor active="true" /> <layout> <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2522388" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32864675" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> @@ -760,8 +764,8 @@ <entry file="file://$PROJECT_DIR$/test/test_utils.py" /> <entry file="file://$PROJECT_DIR$/reportbug/utils.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="5472"> - <caret line="307" column="52" lean-forward="false" selection-start-line="307" selection-start-column="52" selection-end-line="307" selection-end-column="52" /> + <state relative-caret-position="5598"> + <caret line="314" column="52" lean-forward="false" selection-start-line="314" selection-start-column="52" selection-end-line="314" selection-end-column="52" /> <folding /> </state> </provider> @@ -778,8 +782,8 @@ </entry> <entry file="file://$PROJECT_DIR$/reportbug/ui/gtk2_ui.py"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="23976"> - <caret line="1332" column="62" lean-forward="false" selection-start-line="1332" selection-start-column="62" selection-end-line="1332" selection-end-column="62" /> + <state relative-caret-position="24084"> + <caret line="1338" column="62" lean-forward="false" selection-start-line="1338" selection-start-column="62" selection-end-line="1338" selection-end-column="62" /> <folding /> </state> </provider> @@ -813,8 +817,11 @@ <entry file="file://$PROJECT_DIR$/reportbug/submit.py"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="2862"> - <caret line="183" column="9" lean-forward="false" selection-start-line="183" selection-start-column="9" selection-end-line="183" selection-end-column="9" /> - <folding /> + <caret line="189" column="9" lean-forward="false" selection-start-line="189" selection-start-column="9" selection-end-line="189" selection-end-column="9" /> + <folding> + <marker date="1492563722401" expanded="true" signature="5349:5362" ph="..." /> + <marker date="1492563722401" expanded="true" signature="6422:6449" ph="..." /> + </folding> </state> </provider> </entry> diff -Nru reportbug-7.1.6/reportbug/bugreport.py reportbug-7.1.7/reportbug/bugreport.py --- reportbug-7.1.6/reportbug/bugreport.py 2017-04-18 21:12:02.000000000 -0400 +++ reportbug-7.1.7/reportbug/bugreport.py 2017-05-29 16:00:17.000000000 -0400 @@ -86,7 +86,7 @@ locinfo = [] langsetting = os.environ.get('LANG', 'C') allsetting = os.environ.get('LC_ALL', '') - for setting in ('LANG', 'LC_CTYPE'): + for setting in ('LANG', 'LC_CTYPE', 'LANGUAGE'): if setting == 'LANG': env = langsetting else: diff -Nru reportbug-7.1.6/reportbug/debbugs.py reportbug-7.1.7/reportbug/debbugs.py --- reportbug-7.1.6/reportbug/debbugs.py 2017-04-18 21:12:02.000000000 -0400 +++ reportbug-7.1.7/reportbug/debbugs.py 2017-05-29 16:00:17.000000000 -0400 @@ -180,6 +180,7 @@ 'installation-reports': 'Reports of installation problems with stable & testing', 'jenkins.debian.org': 'Issues with the jenkins.debian.org service', 'lists.debian.org': 'The mailing lists, debian-*@lists.debian.org', + 'manpages.debian.org': 'Issues with the Debian Manpages Website and coordination of maintenance', 'mirrors': 'Problems with the official mirrors', 'nm.debian.org': 'New Member process and nm.debian.org webpages', 'pet.debian.net': 'The Debian Package Entropy Tracker', @@ -967,16 +968,10 @@ return None parser = BTSParser(cgi=cgi, followups=followups) - for line in page: + for line in page.splitlines(): parser.feed(line) parser.close() - try: - page.fp._sock.recv = None - except: - pass - page.close() - items = parser.preblock title = "#%d: %s" % (number, parser.title) @@ -1011,13 +1006,7 @@ return None # Make this seekable - wholefile = io.StringIO(page.read()) - - try: - page.fp._sock.recv = None - except: - pass - page.close() + wholefile = io.StringIO(page) mbox = mailbox.UnixMailbox(wholefile, msgfactory) title = '' @@ -1131,14 +1120,9 @@ # return (0, None, None) parser = BTSParser() - for line in page: + for line in page.splitlines(): parser.feed(line) parser.close() - try: - page.fp._sock.recv = None - except: - pass - page.close() return parser.bugcount, parser.title, parser.hierarchy diff -Nru reportbug-7.1.6/reportbug/__init__.py reportbug-7.1.7/reportbug/__init__.py --- reportbug-7.1.6/reportbug/__init__.py 2017-04-18 21:12:02.000000000 -0400 +++ reportbug-7.1.7/reportbug/__init__.py 2017-05-29 16:00:17.000000000 -0400 @@ -25,7 +25,7 @@ __all__ = ['bugreport', 'utils', 'urlutils', 'checkbuildd', 'checkversions', 'debbugs', 'exceptions', 'submit', 'tempfile'] -VERSION_NUMBER = "7.1.6" +VERSION_NUMBER = "7.1.7" VERSION = "reportbug " + VERSION_NUMBER COPYRIGHT = VERSION + '\nCopyright (C) 1999-2008 Chris Lawrence <lawre...@debian.org>' + \ Binary files /tmp/1d7AWlZJLo/reportbug-7.1.6/reportbug/__init__.pyc and /tmp/1IujpqUNfa/reportbug-7.1.7/reportbug/__init__.pyc differ Binary files /tmp/1d7AWlZJLo/reportbug-7.1.6/reportbug/__pycache__/bugreport.cpython-35.pyc and /tmp/1IujpqUNfa/reportbug-7.1.7/reportbug/__pycache__/bugreport.cpython-35.pyc differ Binary files /tmp/1d7AWlZJLo/reportbug-7.1.6/reportbug/__pycache__/debbugs.cpython-35.pyc and /tmp/1IujpqUNfa/reportbug-7.1.7/reportbug/__pycache__/debbugs.cpython-35.pyc differ Binary files /tmp/1d7AWlZJLo/reportbug-7.1.6/reportbug/__pycache__/__init__.cpython-35.pyc and /tmp/1IujpqUNfa/reportbug-7.1.7/reportbug/__pycache__/__init__.cpython-35.pyc differ Binary files /tmp/1d7AWlZJLo/reportbug-7.1.6/reportbug/__pycache__/submit.cpython-35.pyc and /tmp/1IujpqUNfa/reportbug-7.1.7/reportbug/__pycache__/submit.cpython-35.pyc differ Binary files /tmp/1d7AWlZJLo/reportbug-7.1.6/reportbug/__pycache__/utils.cpython-35.pyc and /tmp/1IujpqUNfa/reportbug-7.1.7/reportbug/__pycache__/utils.cpython-35.pyc differ diff -Nru reportbug-7.1.6/reportbug/submit.py reportbug-7.1.7/reportbug/submit.py --- reportbug-7.1.6/reportbug/submit.py 2017-04-18 21:12:02.000000000 -0400 +++ reportbug-7.1.7/reportbug/submit.py 2017-05-29 16:00:17.000000000 -0400 @@ -27,7 +27,6 @@ import email import smtplib import socket -import email from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.audio import MIMEAudio diff -Nru reportbug-7.1.6/reportbug/ui/gtk2_ui.py reportbug-7.1.7/reportbug/ui/gtk2_ui.py --- reportbug-7.1.6/reportbug/ui/gtk2_ui.py 2017-04-18 21:12:02.000000000 -0400 +++ reportbug-7.1.7/reportbug/ui/gtk2_ui.py 2017-05-29 16:00:17.000000000 -0400 @@ -57,7 +57,6 @@ import sys import re -import os import traceback from queue import Queue import threading Binary files /tmp/1d7AWlZJLo/reportbug-7.1.6/reportbug/ui/__pycache__/gtk2_ui.cpython-35.pyc and /tmp/1IujpqUNfa/reportbug-7.1.7/reportbug/ui/__pycache__/gtk2_ui.cpython-35.pyc differ diff -Nru reportbug-7.1.6/reportbug/utils.py reportbug-7.1.7/reportbug/utils.py --- reportbug-7.1.6/reportbug/utils.py 2017-04-18 21:12:02.000000000 -0400 +++ reportbug-7.1.7/reportbug/utils.py 2017-05-29 16:00:17.000000000 -0400 @@ -92,11 +92,11 @@ '/usr/man', '/usr/doc', '/usr/bin'] # A map between codenames and suites -CODENAME2SUITE = {'squeeze': 'oldoldstable', - 'wheezy': 'oldstable', - 'jessie': 'stable', - 'stretch': 'testing', - 'buster': 'next-testing', +CODENAME2SUITE = {'wheezy': 'oldoldstable', + 'jessie': 'oldstable', + 'stretch': 'stable', + 'buster': 'testing', + 'bullseye': 'next-testing', 'sid': 'unstable', 'experimental': 'experimental'} SUITE2CODENAME = dict([(suite, codename) for codename, suite in list(CODENAME2SUITE.items())]) @@ -130,7 +130,7 @@ if d: return realpath(filename) - path = os.environ.get("PATH", os.defpath).split('/') + path = os.environ.get("PATH", os.defpath).split(':') for d in pathdirs: if d not in path: path.append(d) @@ -338,7 +338,7 @@ statusre = re.compile('Status: ') originre = re.compile('Origin: ') bugsre = re.compile('Bugs: ') - descre = re.compile('Description(?:-.*)?: ') + descre = re.compile('Description(?:-[a-zA-Z]+)?: ') fullre = re.compile(' ') srcre = re.compile('Source: ') sectionre = re.compile('Section: ') @@ -351,6 +351,7 @@ recommends = [] suggests = [] confmode = False + descmode = False state = '' try: @@ -361,7 +362,7 @@ packarg = pipes.quote(package) if avail: output = get_command_output( - "COLUMNS=79 dpkg --print-avail %s 2>/dev/null" % packarg) + "LC_ALL=C.UTF-8 apt-cache show %s 2>/dev/null" % packarg) else: output = get_command_output( "COLUMNS=79 dpkg --status %s 2>/dev/null" % packarg) @@ -371,12 +372,18 @@ if not line: continue + if descmode: + if line[0] == ' ': + fulldesc.append(line) + else: + descmode = False + if confmode: if line[:2] != ' /': confmode = False else: # re is used to identify also conffiles with spaces in the name - conffiles = conffiles + [re.findall(r' (.+) ([0-9a-f]+).*$', line)[0]] + conffiles += re.findall(r' (.+) ([0-9a-f]+).*$', line) if versionre.match(line): (crud, pkgversion) = line.split(": ", 1) @@ -392,6 +399,7 @@ (crud, bugs) = line.split(": ", 1) elif descre.match(line): (crud, desc) = line.split(": ", 1) + descmode = True elif dependsre.match(line): (crud, thisdepends) = line.split(": ", 1) # Remove versioning crud @@ -419,8 +427,6 @@ src_name = src_name.split()[0] elif sectionre.match(line): crud, section = line.split(": ", 1) - elif desc and line[0] == ' ': - fulldesc.append(line) installed = False if status: @@ -519,7 +525,7 @@ def available_package_description(package): data = get_command_output('apt-cache show ' + pipes.quote(package)) - descre = re.compile('^Description(?:-.*)?: (.*)$') + descre = re.compile('^Description(?:-[a-zA-Z]+)?: (.*)$') for line in data.split('\n'): m = descre.match(line) if m: @@ -593,7 +599,7 @@ packob = re.compile('^Package: (?P<pkg>.*)$', re.MULTILINE) statob = re.compile('^Status: (?P<stat>.*)$', re.MULTILINE) versob = re.compile('^Version: (?P<vers>.*)$', re.MULTILINE) - descob = re.compile('^Description(?:-.*)?: (?P<desc>.*)$', re.MULTILINE) + descob = re.compile('^Description(?:-[a-zA-Z]+)?: (?P<desc>.*)$', re.MULTILINE) ret = [] for p in packinfo: @@ -655,6 +661,8 @@ dependencies = [] for dep in depends: + # drop possible architecture qualifier from package names + dep = [d.split(':')[0] for d in dep] for bit in dep: dependencies.append((tuple(dep), bit)) @@ -783,11 +791,11 @@ def lsb_release_info(): - return get_command_output('lsb_release -a 2>/dev/null') + '\n' + return get_command_output('lsb_release -a 2>/dev/null') def get_arch(): - arch = get_command_output('COLUMNS=79 dpkg --print-architecture 2>/dev/null') + arch = get_command_output('COLUMNS=79 dpkg --print-architecture 2>/dev/null').strip() if not arch: un = os.uname() arch = un[4] @@ -1196,7 +1204,7 @@ return (fd, fname) = TempFile() try: - for line in mbox: + for line in mbox.splitlines(): fd.write(line) fd.close() if cmd is not None: Binary files /tmp/1d7AWlZJLo/reportbug-7.1.6/test/__pycache__/test_utils.cpython-35.pyc and /tmp/1IujpqUNfa/reportbug-7.1.7/test/__pycache__/test_utils.cpython-35.pyc differ diff -Nru reportbug-7.1.6/test/test_utils.py reportbug-7.1.7/test/test_utils.py --- reportbug-7.1.6/test/test_utils.py 2017-04-18 21:12:02.000000000 -0400 +++ reportbug-7.1.7/test/test_utils.py 2017-05-29 16:00:17.000000000 -0400 @@ -8,7 +8,6 @@ import debianbts import mock import subprocess -import subprocess class TestUtils(unittest.TestCase):