diff -Nru python-debian-0.1.29/debian/changelog python-debian-0.1.30/debian/changelog --- python-debian-0.1.29/debian/changelog 2016-08-18 13:27:48.000000000 +0000 +++ python-debian-0.1.30/debian/changelog 2017-01-25 01:18:27.000000000 +0000 @@ -1,3 +1,14 @@ +python-debian (0.1.30) unstable; urgency=medium + + * Add missing chardet dependency in setup.py.in (Closes: #838695, #841071). + * Add stretch, buster and bullseye to known releases (Closes: #849058). + * Allow iter_paragraphs to accept bytes under Python 3 (Closes: #833375). + * Don't suppress ChangelogParseError in strict mode when reading in a + changelog via the constructor (Closes: #844026). + * Add experimental API for ftp-master archive removals data (Closes: #473793). + + -- Stuart Prescott Wed, 25 Jan 2017 12:18:27 +1100 + python-debian (0.1.29) unstable; urgency=medium * Fix handling of gpgv output from gnupg 2 (Closes: #782904). diff -Nru python-debian-0.1.29/lib/debian/changelog.py python-debian-0.1.30/lib/debian/changelog.py --- python-debian-0.1.29/lib/debian/changelog.py 2016-08-18 13:27:48.000000000 +0000 +++ python-debian-0.1.30/lib/debian/changelog.py 2017-01-25 01:18:27.000000000 +0000 @@ -245,7 +245,7 @@ # TODO(jsw): Avoid masking the 'file' built-in. def __init__(self, file=None, max_blocks=None, - allow_empty_author=False, strict=True, encoding='utf-8'): + allow_empty_author=False, strict=False, encoding='utf-8'): """Initializer. Args: @@ -264,12 +264,9 @@ self._blocks = [] self.initial_blank_lines = [] if file is not None: - try: - self.parse_changelog(file, max_blocks=max_blocks, - allow_empty_author=allow_empty_author, - strict=strict) - except ChangelogParseError: - pass + self.parse_changelog(file, max_blocks=max_blocks, + allow_empty_author=allow_empty_author, + strict=strict) def _parse_error(self, message, strict): if strict: diff -Nru python-debian-0.1.29/lib/debian/deb822.py python-debian-0.1.30/lib/debian/deb822.py --- python-debian-0.1.29/lib/debian/deb822.py 2016-08-18 13:27:48.000000000 +0000 +++ python-debian-0.1.30/lib/debian/deb822.py 2017-01-25 01:18:27.000000000 +0000 @@ -37,6 +37,8 @@ import chardet import collections +import datetime +import email.utils import re import subprocess import sys @@ -381,7 +383,7 @@ yield paragraph else: - if isinstance(sequence, six.string_types): + if isinstance(sequence, six.string_types + (six.binary_type,)): sequence = sequence.splitlines() iterable = iter(sequence) while True: @@ -905,7 +907,7 @@ r'$') __comma_sep_RE = re.compile(r'\s*,\s*') __pipe_sep_RE = re.compile(r'\s*\|\s*') - __blank_sep_RE = re.compile(r'\s*') + __blank_sep_RE = re.compile(r'\s+') __restriction_sep_RE = re.compile(r'>\s*<') __restriction_RE = re.compile( r'(?P\!)?' @@ -1598,6 +1600,128 @@ return self.__data.dump(*args, **kwargs) +class Removals(Deb822): + """Represent an ftp-master removals.822 file + + Removal of packages from the archive are recorded by ftp-masters. + See https://ftp-master.debian.org/#removed + + Note: this API is experimental and backwards-incompatible changes might be + required in the future. Please use it and help us improve it! + """ + __sources_line_re = re.compile(r'\s*' + r'(?P.+?)' + r'_' + r'(?P[^\s]+)' + r'\s*' + ) + __binaries_line_re = re.compile(r'\s*' + r'(?P.+?)' + r'_' + r'(?P[^\s]+)' + r'\s+' + r'\[(?P.+)\]' + ) + + @property + def date(self): + """ a datetime object for the removal action """ + ts = email.utils.mktime_tz(email.utils.parsedate_tz(self['date'])) + return datetime.datetime.fromtimestamp(ts) + + @property + def bug(self): + """ list of bug numbers that had requested the package removal + + The bug numbers are returned as integers. + + Note: there is normally only one entry in this list but there may be + more than one. + """ + if 'bug' not in self: + return [] + return [int(b) for b in self['bug'].split(",")] + + @property + def also_wnpp(self): + """ list of WNPP bug numbers closed by the removal + + The bug numbers are returned as integers. + """ + if 'also-wnpp' not in self: + return [] + return [int(b) for b in self['also-wnpp'].split(" ")] + + @property + def also_bugs(self): + """ list of bug numbers in the package closed by the removal + + The bug numbers are returned as integers. + + Removal of a package implicitly also closes all bugs associated with + the package. + """ + if 'also-bugs' not in self: + return [] + return [int(b) for b in self['also-bugs'].split(" ")] + + @property + def sources(self): + """ list of source packages that were removed + + A list of dicts is returned, each dict has the form: + { + 'source': 'some-package-name', + 'version': '1.2.3-1' + } + + Note: There may be no source packages removed at all if the removal is + only of a binary package. An empty list is returned in that case. + """ + if hasattr(self, '_sources'): + return self._sources + + s = [] + if 'sources' in self: + for line in self['sources'].splitlines(): + matches = self.__sources_line_re.match(line) + if matches: + s.append({ + 'source': matches.group('package'), + 'version': matches.group('version'), + }) + self._sources = s + return s + + @property + def binaries(self): + """ list of binary packages that were removed + + A list of dicts is returned, each dict has the form: + { + 'package': 'some-package-name', + 'version': '1.2.3-1', + 'architectures': set(['i386', 'amd64']) + } + """ + if hasattr(self, '_binaries'): + return self._binaries + + b = [] + if 'binaries' in self: + for line in self['binaries'].splitlines(): + matches = self.__binaries_line_re.match(line) + if matches: + b.append({ + 'package': matches.group('package'), + 'version': matches.group('version'), + 'architectures': + set(matches.group('archs').split(', ')), + }) + self._binaries = b + return b + + class _CaseInsensitiveString(str): """Case insensitive string. """ diff -Nru python-debian-0.1.29/lib/debian/debian_support.py python-debian-0.1.30/lib/debian/debian_support.py --- python-debian-0.1.29/lib/debian/debian_support.py 2016-08-18 13:27:48.000000000 +0000 +++ python-debian-0.1.30/lib/debian/debian_support.py 2017-01-25 01:18:27.000000000 +0000 @@ -427,6 +427,9 @@ "squeeze", "wheezy", "jessie", + "stretch", + "buster", + "bullseye", "sid") for r in range(len(rels)): releases[rels[r]] = Release(rels[r], r) diff -Nru python-debian-0.1.29/setup.py python-debian-0.1.30/setup.py --- python-debian-0.1.29/setup.py 2016-08-18 13:27:48.000000000 +0000 +++ python-debian-0.1.30/setup.py 2017-01-25 01:18:27.000000000 +0000 @@ -19,7 +19,7 @@ from setuptools import setup setup(name='python-debian', - version='0.1.29', + version='0.1.30', description='Debian package related modules', url='http://packages.debian.org/sid/python-debian', package_dir={'': 'lib'}, @@ -27,5 +27,5 @@ py_modules=['deb822'], maintainer='Debian python-debian Maintainers', maintainer_email='pkg-python-debian-maint@lists.alioth.debian.org', - install_requires=['six'], + install_requires=['six', 'chardet'], ) diff -Nru python-debian-0.1.29/setup.py.in python-debian-0.1.30/setup.py.in --- python-debian-0.1.29/setup.py.in 2016-08-18 13:27:48.000000000 +0000 +++ python-debian-0.1.30/setup.py.in 2017-01-25 01:18:27.000000000 +0000 @@ -27,5 +27,5 @@ py_modules=['deb822'], maintainer='Debian python-debian Maintainers', maintainer_email='pkg-python-debian-maint@lists.alioth.debian.org', - install_requires=['six'], + install_requires=['six', 'chardet'], ) diff -Nru python-debian-0.1.29/tests/test_changelog.py python-debian-0.1.30/tests/test_changelog.py --- python-debian-0.1.29/tests/test_changelog.py 2016-08-18 13:27:48.000000000 +0000 +++ python-debian-0.1.30/tests/test_changelog.py 2017-01-25 01:18:27.000000000 +0000 @@ -28,6 +28,7 @@ import sys import unittest +import warnings import six @@ -253,6 +254,23 @@ self.assertEqual(bytes(block), six.text_type(block).encode('latin1')) + def test_malformed_date(self): + c_text = """package (1.0-1) codename; urgency=medium + + * minimal example reproducer of malformed date line + + -- John Smith Tue, 27 Sep 2016 14:08:04 -0600 + """ + # In strict mode, exceptions should be raised by the malformed entry + with self.assertRaises(changelog.ChangelogParseError): + c = changelog.Changelog(c_text, strict=True) + # In non-strict mode, warnings should be emitted by the malformed entry + # (but assertWarns is python 3.2+ only) + if not six.PY2: + with self.assertWarns(Warning): + c = changelog.Changelog(c_text, strict=False) + self.assertEqual(len(c), 1) + def test_block_iterator(self): f = open('test_changelog') c = changelog.Changelog(f) diff -Nru python-debian-0.1.29/tests/test_deb822.py python-debian-0.1.30/tests/test_deb822.py --- python-debian-0.1.29/tests/test_deb822.py 2016-08-18 13:27:48.000000000 +0000 +++ python-debian-0.1.30/tests/test_deb822.py 2017-01-25 01:18:27.000000000 +0000 @@ -19,6 +19,7 @@ from __future__ import absolute_import +import email.utils import io import os import re @@ -465,6 +466,16 @@ for d in deb822.Deb822.iter_paragraphs(text)]) self.assertEqual(2, count) + def test_iter_paragraphs_bytes(self): + text = (UNPARSED_PACKAGE + '\n\n\n' + UNPARSED_PACKAGE) + if six.PY2: + binary = text + else: + binary = text.encode('utf-8') + + for d in deb822.Deb822.iter_paragraphs(binary): + self.assertWellParsed(d, PARSED_PACKAGE) + def test_iter_paragraphs_with_extra_whitespace(self): """ Paragraphs not elided when stray whitespace is between @@ -951,6 +962,30 @@ changes = deb822.Changes(f) self.assertEqual('python-debian', changes['Source']) + def test_removals(self): + with open('test_removals.822') as f: + removals = deb822.Removals.iter_paragraphs(f) + r = next(removals) + self.assertEqual(r['suite'], 'unstable') + self.assertEqual(r['date'], u'Wed, 01 Jan 2014 17:03:54 +0000') + self.assertEqual(r.date.strftime('%s'), '1388595834') + self.assertEqual(len(r.binaries), 1) + self.assertEqual(r.binaries[0]['package'], 'libzoom-ruby') + self.assertEqual(r.binaries[0]['version'], '0.4.1-5') + self.assertEqual(r.binaries[0]['architectures'], set(['all'])) + r = next(removals) + self.assertEqual(len(r.binaries), 3) + r = next(removals) + self.assertEqual(r['bug'], '753912') + self.assertEqual(r.bug, [753912]) + self.assertEqual(r.also_wnpp, [123456]) + r = next(removals) + self.assertEqual(r.binaries[0]['architectures'], + set(['amd64', 'armel', 'armhf', 'hurd-i386', + 'i386', 'kfreebsd-amd64', 'kfreebsd-i386', + 'mips', 'mipsel', 'powerpc', 's390x', + 'sparc'])) + class TestPkgRelations(unittest.TestCase): # TODO(jsw): Stop overriding this for Python versions that actually include diff -Nru python-debian-0.1.29/tests/test_removals.822 python-debian-0.1.30/tests/test_removals.822 --- python-debian-0.1.29/tests/test_removals.822 1970-01-01 00:00:00.000000000 +0000 +++ python-debian-0.1.30/tests/test_removals.822 2017-01-25 01:18:27.000000000 +0000 @@ -0,0 +1,132 @@ +Date: Wed, 01 Jan 2014 17:03:54 +0000 +Ftpmaster: Ansgar Burchardt +Suite: unstable +Binaries: + libzoom-ruby_0.4.1-5 [all] +Reason: [auto-cruft] no longer built from source + +Date: Mon, 07 Jul 2014 11:52:03 +0000 +Ftpmaster: Scott Kitterman +Suite: experimental +Binaries: + gnustep-back0.22-art_0.22.0-1 [amd64] + gnustep-back0.22-cairo_0.22.0-1 [amd64] + gnustep-gpbs_0.22.0-1 [amd64] +Reason: [auto-cruft] NBS (no longer built by gnustep-back) + +Date: Mon, 07 Jul 2014 11:55:28 +0000 +Ftpmaster: Scott Kitterman +Suite: unstable +Sources: + redmine-plugin-markdown_2.0.1+git20130424-1 +Binaries: + redmine-plugin-markdown_2.0.1+git20130424-1 [all] +Reason: ROM; obsolete +Bug: 753912 +Also-WNPP: 123456 + +Date: Thu, 31 Jul 2014 12:17:40 +0000 +Ftpmaster: Scott Kitterman +Suite: unstable +Sources: + yafaray_0.1.5-3 +Binaries: + yafaray_0.1.5-3+b2 [amd64, armel, armhf, hurd-i386, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] +Reason: ROM; Dead upstream, unmaintained +Bug: 756408 +Also-WNPP: + +Date: Fri, 01 Aug 2014 10:45:41 +0000 +Ftpmaster: Scott Kitterman +Suite: experimental +Sources: + baloo-widgets_4:4.13.2-1 + brian_1.4.1-1 + gwenview_4:4.13.1-1 + kdepim_4:4.13.1-1 + kdepim-runtime_4:4.13.1-1 + nepomuk-core_4:4.13.1-1 + pykde4_4:4.13.1-1 +Binaries: + akonadiconsole_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + akregator_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + blogilo_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + gwenview_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + gwenview-dbg_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + kaddressbook_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + kaddressbook-mobile_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + kalarm_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + kdepim_4:4.13.1-1 [all] + kdepim-dbg_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + kdepim-kresources_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + kdepim-mobile_4:4.13.1-1 [all] + kdepim-mobileui-data_4:4.13.1-1 [all] + kdepim-runtime_4:4.13.1-1 [amd64, armel, armhf, hurd-i386, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + kdepim-runtime-dbg_4:4.13.1-1 [amd64, armel, armhf, hurd-i386, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + kjots_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + kleopatra_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + kmail_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + kmail-mobile_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + knode_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + knotes_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + konsolekalendar_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + kontact_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + korganizer_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + korganizer-mobile_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + ktimetracker_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libbaloowidgets-dev_4:4.13.2-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libbaloowidgets4_4:4.13.2-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libbaloowidgets4-dbg_4:4.13.2-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libcalendarsupport4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libcomposereditorng4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libeventviews4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libincidenceeditorsng4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libkdepim4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libkdepimdbusinterfaces4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libkdepimmobileui4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libkdgantt2-0_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libkleo4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libkmanagesieve4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libkpgp4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libksieve4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libksieveui4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libmailcommon4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libmailimporter4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libmessagecomposer4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libmessagecore4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libmessagelist4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libmessageviewer4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libnepomukcore4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libnoteshared4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libpimcommon4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libsendlater4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + libtemplateparser4_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + nepomuk-core-data_4:4.13.1-1 [all] + nepomuk-core-dbg_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + nepomuk-core-dev_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + nepomuk-core-runtime_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + notes-mobile_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + python-brian_1.4.1-1 [all] + python-brian-doc_1.4.1-1 [all] + python-brian-lib_1.4.1-1 [amd64, armel, armhf, hurd-i386, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + python-kde4_4:4.13.1-1 [amd64, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mipsel, powerpc, s390x] + python-kde4-dbg_4:4.13.1-1 [amd64, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mipsel, powerpc, s390x] + python-kde4-dev_4:4.13.1-1 [all] + python-kde4-doc_4:4.13.1-1 [all] + python3-pykde4_4:4.13.1-1 [amd64, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mipsel, powerpc, s390x] + python3-pykde4-dbg_4:4.13.1-1 [amd64, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mipsel, powerpc, s390x] + storageservicemanager_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] + tasks-mobile_4:4.13.1-1 [amd64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x, sparc] +Reason: [auto-cruft] NVIU + +Date: Fri, 01 Aug 2014 10:47:02 +0000 +Ftpmaster: Scott Kitterman +Suite: unstable +Sources: + mingw32-runtime_3.13-1 +Binaries: + mingw32-runtime_3.13-1 [all] +Reason: ROM; obsolete, superceded by mingw-w64 +Bug: 756732 +Also-Bugs: 429313 498529 521758 607215 607218 609869 648306 +Also-WNPP: