• Julian Andres Klode's avatar
    Import Debian version 1.8.2 · ea2896fb
    Julian Andres Klode authored
    python-apt (1.8.2) unstable; urgency=medium
      * Add a init_defaults() method to apt_pkg.Policy
      * Document what's new in 1.8
    python-apt (1.8.1) unstable; urgency=medium
      * python/arfile.cc: Fix FTBFS due to copying of FileFd
      * Revert "debian/rules: Build with pybuild"
      * Adjust typing for mypy 0.660
    python-apt (1.8.0) unstable; urgency=medium
      [ Julian Andres Klode ]
      * templates: Add Ubuntu 19.04 'Disco Dingo'
      * travis: Disable CI on debian:stretch and ubuntu:bionic
      * Switch to python3-distutils-extra from python2 one
      * Drop unnecessary python3-distutils build-depend workaround
      * debian/rules: Build with pybuild
      * travis: Test on disco
      [ Jeremy Bicha ]
      * data/templates/Debian.info.in: Add Buster and Bullseye
        (Closes: #919613, #919615)
    python-apt (1.7.0) unstable; urgency=medium
      * Fix escaping in regular expressions and ignore some pep8 warnings
      * as usual; updated mirror lists
    python-apt (1.7.0~rc1) unstable; urgency=medium
      * Release to unstable
    python-apt (1.7.0~alpha3) experimental; urgency=medium
      * Fix __iter__ yielding different Packages than __getitem__
      * apt.Cache: Reinstate locks in a finally / run dpkg inside try
      * travis: Run tests on ubuntu:cosmic too
      * Revert "debian/control: Drop obsolete Python-Versions fields"
      * Accept Version objects in apt_pkg.Policy.get_priority(), deprecate Package
      * Return correct pin in apt.package.Version.policy_priority
      * typehinting: apt_pkg.PackageFile is not an iterable
      * Introduce frontend locking
      * Convert apt.Cache.commit and apt_pkg.DepCache.commit to FE lock
    python-apt (1.7.0~alpha2) experimental; urgency=medium
      * gitlab-ci: Set DEBIAN_FRONTEND=noninteractive
      * Add more extensive test cases for cache remapping
      * Do not override __hash__ in apt.package.Package (LP: #1780099)
      * debian/python-apt.docs: README is README.md since some time
      * apt.Cache: Avoid unneccessary double weakref checks for __getitem__
      * apt.Cache: Use weakref.setdefault to find existing Package objects
      * debian/control: Point to salsa instead of anonscm
      * debian/control: Drop obsolete Python-Versions fields
      * Switch to python3-sphinx
    python-apt (1.7.0~alpha1) experimental; urgency=medium
      [ Julian Andres Klode ]
      * data/templates/Ubuntu.info.in: Add cosmic cuttlefish template
      * apt.Cache: Fix error in apt.Package caching
      * apt: Correctly annotate Optional types
      * apt: Fix typing error related to apt_pkg
      * tests/test_pep484.py: Check everything
      * Correctly handle missing candidate in Package.get_changelog
      * types: Don't make apt_pkg.Cache a dict, and fix apt.Cache.__contains__
      * apt.package.Dependency: Fix __init__ type annotation
      * Add all possible annotations that were FIXME
      * Various type fixes
      * Fix some more type annotations for apt_pkg, complete apt.utils typing
      * apt.Cache: Remap objects when reopening cache
        (LP: #1773316)
      * apt_pkg.DepCache: Raise CacheMismatchError if argument belongs to diff. cache
      * apt.Cache: Complete types
      * Completely type apt.progress
      * typehinting: Add missing type hints for unattended-upgrades
      * Complete typing for apt.auth
      * apt.debfile: Avoid exception in replaces_real_pkg for no-candidate packages
      * apt.debfile.DebPackage: Handle no-candidate package in _maybe_append_multiarch_suffix
      * Completely type apt.debfile
      * utils/get_debian_mirrors.py: Get data from salsa
      * apt.package: Add almost complete typing
      * tests/test_pep484.py: Pass --strict --implicit-optional to mypy
      * apt.Cache: Introduce fix_broken() binding
      * Add support for custom fields to apt_pkg.PackageRecords
      * Introduce gitlab ci
      * Document whatsnew in 1.6 and 1.7
      * apt.Cache: Keep / Re-establish the system lock in commit()
      * apt.Cache: Keep archive locked during commit()/ in fetch_archives()
      [ Evgeni Golov ]
      * fix SourceRecordsFile class reference
    python-apt (1.6.0) unstable; urgency=medium
      * Final release, no further changes.
    python-apt (1.6.0~rc3) unstable; urgency=medium
      * Revert change to make apt.Cache subclass of dict
      * Fix get_changelog() to correctly decode non-unicode changelogs
      * Try to work around memory corruption in PackageRecords.*_hash
      * apt/auth.py: Protect against race with gpg when removing tmpdir
        (Closes: #871585)
      * Document Architecture: all handling in Package.{fullname,architecture()}
        (Closes: #863193)
      * python/tag.cc: Fix invalid read in TagFileNext
      * Raise ValueError if objects passed to DepCache are from different cache
        (LP: #1737441)
      * DepCache: Check that candidate we are setting belongs to package
      * debian/gbp.conf: Default branch is master now
    python-apt (1.6.0~rc2) unstable; urgency=medium
      * Add some weird python3-distutils build-depends (Closes: #893837)
      * Document apt_pkg.SourceRecordsFile
    python-apt (1.6.0~rc1) unstable; urgency=medium
      [ Michael Vogt ]
      * add info how to run the tests
      * Fix the remaining pep8 erorrs
      * README: add intro how to use python-apt with mypy
      * tests/old: update to py3
      * apt: make Version.fetch_binary() less noisy
      * README: make markdown and add info about building/testing
      * apt: add support for pep484 (type hints)
      * fix tests
      * python: add pkgsrcrecord.Files.{hashes,size,path,type} getters
      * python: stop using deprecated hash access (and drive by indent fixes)
      [ Julian Andres Klode ]
      * pkgsrcrecords: Fix off-by-one error in OR group handling
      * data/templates/Ubuntu.info.in: Add bionic template
      * apt/cache.py: Fix pep8
      * Switch travis to use Docker based tests
      * tests: Make test_sourcerecords.py more reliable
    python-apt (1.4.0~beta3) unstable; urgency=medium
      * apt.auth: Fix check of fingerprint length
      * data/templates/Ubuntu.info.in: Add artful template
      * Debian template: Adopt MatchUri to match base, switch BaseUri to CDN
        (Closes: #859672)
      * Update translation template
    python-apt (1.4.0~beta2) unstable; urgency=medium
      [ Julian Andres Klode ]
      * templates: Debian: Add stretch
      * Skip os-release test for now (Closes: #851039)
      [ Martin Pitt ]
      * data/templates/Ubuntu.info.in: Add zesty template
    python-apt (1.4.0~beta1) unstable; urgency=medium
      [ Harald Sitter ]
      * add fancy os-release support to pick up its ID_LIKE feature
      [ Julian Andres Klode ]
      * Add optional 'architecture' argument to parse_src_depends()
      * Allow keyword arguments for parse_depends() and parse_src_depends()
      * Migrate python-apt priority from standard to optional
      * Bump version number, we require APT 1.4 series for the architecture
        thing above.
    python-apt (1.1.0~beta5) unstable; urgency=medium
        NOTE: apt.auth is about to be deprecated, do not use it. It will
        be removed in a later version.
      * Fix gpg breakage (Closes: #835465)
        - Use --fixed-list-mode for apt-key gpg invocations.
          Thanks to Daniel Kahn Gillmor for the initial patch
        - test_auth: Normalize public key blocks before comparing
        -  Adjust dependencies for apt.auth on gnupg and dirmngr
        - Work around broken debfile multiarch test cases
    python-apt (1.1.0~beta4) unstable; urgency=medium
      * Fix test failures causing FTBFS (Closes: #830995)
        - tests/test_lp659438.py: Set allow-insecure
        - tests: Completely reset config environment in setUp
    python-apt (1.1.0~beta3) unstable; urgency=medium
      [ Adam Conrad ]
      * data/templates/Ubuntu.info.in: Add Yakkety Yak (16.10) template
      [ Julian Andres Klode ]
      * Set allow-unauthenticated for our local sources
      * Update Vcs-Git and Vcs-Browser fields to https
      * copyright: Update to copyright-format 1.0
      * Drop the XS-Testsuite control field, not needed anymore
      * copyright: Remove nonexisting files
      * Bump Standards-Version to 3.9.8
      * Build with full hardening enabled
      * Fix typo classes reported by lintian
      * rules: Do not use pie
    python-apt (1.1.0~beta2) unstable; urgency=medium
      [ Julian Andres Klode ]
      * tests/test_all.py: Only use test files starting with test_
      * tests: Rename test_pep8 to testmanual_pep8
      * pre-build.sh: Run PEP8 check
      * apt/README.apt: Drop it, we cannot pretend unstable API anymore
      * depcache: Call SetLog() and GetLock on Acquire instead of Setup
      * Fix regression from previous commit WRT Py_None reference count
      * pkgsrcrecords: Use Files2 instead of Files, part1: Size
      * Introduce apt_pkg.HashStringList()
      * pkgrecords: Use hashes instead of deprecated MD5Hash and friends
      * whatsnew: 1.1: Document HashStringList and PackageRecords changes
      * hashstring: Constify where possible
      * Drop deprecated uses of Hashes, add hashes attribute
      * HashStringList: Check for negative index, fix signed vs unsigned
      * acquire: Call SetLog() instead of Setup()
      * apt_pkg: Deprecate rewrite_section
      * arfile, tarfile: Decode member names using filesystem encoding
        (Closes: #806596)
      * CppPyString: Use an const std::string reference instead of value
      * Make Safe_FromString an overloaded version of CppPyString
      * Use CppPyString instead of PyString_FromString everywhere
      * Drop compat macros for python2 (< 2.6)
      * Drop deprecation-ignore macros, use APT ones instead
      * Use CppPyPath for returning (hopefully) all paths
      * apt_inst: Do not mention deprecated functions, except for porting
        (Closes: #807103)
      * control: Suggest apt, so reportbug reports apt version
      * Drop binding for SmartTargetPkg() (Closes: #791345)
      * debfile: Mention dpkg --add-architecture when arch is wrong
        (Closes: #725720)
      * Introduce apt_pkg.Error class replacing SystemError
      * CppPyObject_NEW: Make template variadic
      * Revert "CppPyObject_NEW: Make template variadic"
      * Add apt_pkg.Tag and subclasses (one per kind of tag)
      * TagSection: Check for NUL bytes in the tag section input
      * python-apt-common: Drop python | python3 depends (Closes: #812099)
      * apt.Cache: Provide get()
      [ Felix Dietrich ]
      * doc: Fix typo (Closes: #807105)
      * Use print function from __future__ in examples (Closes: #807104)
      [ Brian Murray ]
      * Fix typo regarding upgradeable packages.
    python-apt (1.1.0~beta1) unstable; urgency=medium
      * Upload to unstable
      [ Michael Vogt ]
      * Do not show pulse progress when the output is not a tty
      * Fix build-dependencies parsing from debian/control
      * Print the failed function name in PyPkgManager::res()
      [ Julian Andres Klode ]
      * test_paths.py: Catch the IndexRecords warning
      * Release 1.0.1
      * changelog: Fix up the uploader name and close Barry's bug
      * doc: tutorials: contribution: Rewrite for git and other changes
        (Closes: #802084)
      * Build with cleaner headers
      * Use pkgCache::Version::No instead of pkgCache::Version::None
      * apt.utils: Support parsing InRelease files (LP: #1503979)
        Thanks to Brian Murray <brian@ubuntu.com> for the initial patch.
      * apt.utils: Open the release files using a 'with' statement
      [ Jakub Wilk ]
      * apt/debfile.py: Fix typo
      * apt/debfile.py: Fix typo
      [ Martin Pitt ]
      * ./data/templates/Ubuntu.info.in: Add Xenial template.
      * doc/source/examples/apt-cdrom.py: Fix PEP-8 errors.
    python-apt (1.1.0~alpha3) experimental; urgency=medium
      [ Michael Schaller ]
      * apt.Cache: Add Cache._rawpkg_to_pkg method to consolidate duplicated code
      * apt.Version: Compare against package name and version (if available)
      * apt/package.py: Add target_versions method to [Base]Dependency
      * Add helpers/filters for installed packages/versions
      [ Julian Andres Klode ]
      * Document the new additions in 1.0
      * doc/source/conf.py: Do not set html_style, broken with recent sphinx
      * Merge 1.0.0
      * Keep apt_pkg.IndexRecords dropped
    python-apt (1.1.0~alpha2) experimental; urgency=medium
      * Fix a typo in a member access.
    python-apt (1.1.0~alpha1) experimental; urgency=medium
      [ Michael Vogt ]
      * apt/debfile.py: use apt_pkg.open_maybe_clear_signed_file() when opening a .dsc file
      [ Julian Andres Klode ]
      * Drop apt_pkg.IndexRecords, it has been dropped in experimental
      * Support APT_PKG_MAJOR >= 5
      * test_paths: Drop the indexrecord test
      * Fix pep8 1.6.2 issues
      * setup.py: Pass -std=c++11 and -Wno-write-strings to the compiler
      * Convert from SPtr and SPtrArray to unique_ptr and array
      * Replace pkgDistUpgrade and friend with APT::Upgrade::Upgrade
      * AcquireItem: Deprecate mode and introduce active_subprocess
      [ John R. Lenton ]
      * Discard stderr when calling system-image-cli (LP: #267935)
    python-apt (1.0.1) unstable; urgency=medium
      [ Michael Vogt ]
      * Do not show pulse progress when the output is not a tty
      * Fix build-dependencies parsing from debian/control
      [ Julian Andres Klode ]
      * test_paths.py: Catch the IndexRecords warning (Closes: #800624)
    python-apt (1.0.0) unstable; urgency=medium
      [ Julian Andres Klode ]
      * Fix pep8 1.6.2 issues
      * setup.py: Pass -std=c++11 and -Wno-write-strings to the compiler
      * Convert from SPtr and SPtrArray to unique_ptr and array
      * Replace pkgDistUpgrade and friend with APT::Upgrade::Upgrade
      * AcquireItem: Deprecate mode and introduce active_subprocess
      * APT 1.1: Fix a typo in a member access.
      * Deprecate IndexRecords
      * Document the new additions in 1.0
      * doc/source/conf.py: Do not set html_style, broken with recent sphinx
      * Revert the temporary build-deps on APT 1.0.10 and the new gcc,
        as they are not needed anymore.
      [ John R. Lenton ]
      * Discard stderr when calling system-image-cli (LP: #267935)
      [ Michael Schaller ]
      * apt.Cache: Add Cache._rawpkg_to_pkg method to consolidate duplicated code
      * apt.Version: Compare against package name and version (if available)
      * apt/package.py: Add target_versions method to [Base]Dependency
      * Add helpers/filters for installed packages/versions
    python-apt (1.0.0~beta3.1) unstable; urgency=medium
      [ Michael Vogt ]
      * fix py3 issue with auto .gz decompression and add test
      * updated for the gcc5 transition
      [ Julian Andres Klode ]
      * doc/source/conf.py: Reproducibility: Set html_last_updated_fmt = None
      [ Michael Schaller ]
      * BaseDependency.__repr__: Replace pre_depend with rawtype
      * apt/package.py: Add rawtype property to Dependency class
      * Add dependency comparison (aka. relation) type in Debian notation
      * apt/package.py: Add missing __str__ and __repr__ methods
      * doc/source/library/apt_pkg.rst: Remove trailing whitespace
      * apt_pkg.Dependency.all_targets: Fix the documentation
      [ Barry Warsaw ]
      * python-apt: Python 3.5 and PEP 479 support (Closes: #792606)
    python-apt (1.0.0~beta3) unstable; urgency=medium
      * tests/test_paths.py: Catch and assert the DeprecationWarning
      * setup.py: If no version is in the environment, return None
      * doc/source/library/apt_pkg.rst: Fix an example from old API to new API
      * apt.cache.FilteredCache: Fix multi-arch package lookups
      * apt.Cache: Introduce a connect2() callback connector
      * Break the FilteredCache <-> Cache reference cycle
      * apt.Cache: Issue a RuntimeWarning in connect()
      * doc: whatsnew: Document what's new in beta3
    python-apt (1.0.0~beta2) unstable; urgency=low
      * debian/control: Build-Depend on apt (>= for Files2()
      * Handle the symlink to directory transition correctly (Closes: #788571)
    python-apt (1.0.0~beta1) unstable; urgency=low
      [ Julian Andres Klode ]
      * tests/test_tagfile.py: Close files we opened to prevent leakage
        (Closes: #785337)
      * doc/source/c++/api.rst: Upgrade syntax to use the new domain stuff
      * doc/source/library/apt_pkg.rst: Fix indentation (Closes: #736119)
      * sphinx docs: Fix remaining instances of old C syntax to use domains
      * python/cache.cc: Handle deprecation of pkgCache::PkgIterator::Section()
      * doc: Prepare for 1.0 release
      * TagFile: Provide close() and context manager (Closes: #748922)
      * doc: Document apt_pkg.TagFile additions
      * doc: templates: layout: Remove invalid icon links
      * debian/control: Build-Depend on dh-python
      * Do not link documentation from Architecture: all to Architecture: any
      * Use ${python:Depends} and friends for the debug packages
      * apt.debfile: Fix splitting of multi-lines Binary fields in dsc files
        (Closes: #751770)
      * Remove apt.progress.gtk2
      * apt_pkg.Package: Drop the unset 'auto' attribute (Closes: #565364)
      * Update POTFILES.in and the pot
      * apt/cache.py: Work around a cyclic reference from Cache to its methods
        (Closes: #745487)
      * apt/debfile.py: Arch-qualify in compare_to_version_in_cache()
        (Closes: #750189)
      * apt.package: Only reference Launchpad for missing changelogs on Ubuntu
        (Closes: #781270)
      * apt/cache.py: Support :all and other special architecture specifies
      * apt/debfile: Stop special-casing all when looking for a package in the cache
      * apt/debfile.py: Allow downgrading packages in check() with a parameter
        (Closes: #613974)
      * Acquire: Document that items may have transient errors on run() success
        (Closes: #680997)
      * Large file support (Closes: #742885)
        - python/arfile.cc: Do not allow files larger than SIZE_MAX to be mapped
        - python/arfile.cc: LFS: Use long long instead of long for file sizes
        - python/tarfile.cc: LFS: Handle too large file
      * setup.py: Translate version number from Debian to PEP0440 (LP: #1445949)
      [ Michael Vogt ]
      * apt_pkg.rst: improve documentation for AcquireFile() hash and add
        sha512 to the documentation
      * rename "md5" keyword argument in AcquireFile() to "hash" and add
        backward compatiblity
      * Fix apt.Package.installed_files for multi-arch packages (LP: #1313699)
      [ von ]
      * Remove the "-Wstrict-prototypes" compiler option (Closes: #785261)
      * Set Standards-Version to 3.9.6 (Closes: #785431)
      * Fix indentation and docstring problems (Closes: #784910)
      [ Michael Schaller ]
      * Fixed docstring of BaseDependency.version property.
      * Improved docstring of the Version.get_dependencies method.
    python-apt (0.9.4) unstable; urgency=medium
      [ Michael Vogt ]
      * add apt_pkg.sha512sum()
      * Add binding for apt_pkg.maybe_open_clear_signed_file()
      * apt/debfile.py: use apt_pkg.open_maybe_clear_signed_file() when opening a .dsc file
      * Update doc/example/action.py for py3 and latest API (closes: #782335)
      * Add MULTI_ARCH_NO constant and deprecate MULTI_ARCH_NONE (closes: #782802)
      * Fix dead links in python-apt documentation (Closes: #779426)
      [ Martin Pitt ]
      * ./data/templates/Ubuntu.info.in: Add Wily template. Don't copy extras.u.c.
        stanza as that's gone since 15.04.
      [ von ]
      * Update the print_uris.py example to use the new API (Closes: #779217)
    python-apt ( unstable; urgency=low
      [ Colin Watson ]
      * Add template for the "Ubuntu-RTM" derived distribution.
      * Detect whether a system is running Ubuntu-RTM by way of
        "system-image-cli -i".  Not perfect but close enough.
      [ Julian Andres Klode ]
      * Embed changelog entry date and time instead of build date and time
        (Closes: #762674)
      [ Michael Vogt ]
      * python/tarfile.cc: use long long in Process() for APT >= 4.14
      * Merged UbuntuRTMDistribution detection from ubuntu
      * Add Ubuntu 15.04 (Vivid Vervet) to the template
    python-apt ( unstable; urgency=medium
      * python/tag.cc: ensure that the final \n is there when 
        duplicating section data
      * apt/debfile.py:
        - Stop reading after the "Format" stanza in a .dsc file
        - Add support for apt.debfile.DscSrcPackage.filelist
        - Read all tags from a dsc file and improve tests
      * fix tests when gnupg is < 1.4.18
      * update python-apt.pot
    python-apt ( unstable; urgency=medium
      [ Michael Vogt ]
      * fix another pep8 failure
      [ Julian Andres Klode ]
      * doc/source/tutorials/apt-get.rst: Remove -s from --print-uris invocation
        (LP: #1308670)
      [ Mauricio Faria de Oliveira ]
      * tests/test_pep8.py: --ignore E129 too (fix FTBFS with pep8 >= 1.5)
      * tests/test_auth.py: update for gnupg 1.4.18 (Closes: #755342)
    python-apt ( unstable; urgency=medium
      * pep8 fixes to fix autopkgtest failure with the most recent
        pep8 package
    python-apt ( unstable; urgency=medium
      * Include "Blankon" template (Closes: #747498)
      * Add apt_pkg.SourceRecords.step() to step through all SrcRecords
      * debian/control:
        - update build-dependency for libapt-pkg-dev to 1.0.4 for
    python-apt ( unstable; urgency=medium
      [ Johannes Schauer ]
      * Add support for build profiles (Closes: 744243)
      [ Michael Vogt ]
      * debian/control: 
        - update build-depends on libapt-pkg-dev for build-profile support
      * data/templates/Ubuntu.info.in:
        - add ubuntu utopic
    python-apt ( unstable; urgency=medium
      * utils/get_ubuntu_mirrors.py: Drop, its unused and broken
      * doc/source/conf.py: Do not use 'u' and 'r' prefixes together
      * tests: Drop some more Python 2.6 cruft
      * debian/control: Drop X{B,S}-Python-Version and use X-Python-Version
      * debian/pycompat: Drop, it's not used anymore
      * python/tag.cc: Ignore missing 'encoding' attribute in file objects
      * apt/package.py: Do not shadow _
    python-apt ( unstable; urgency=medium
      * python/progress.cc: Fix InstallProgress to set child_pid (LP: #1177720)
      * python/progress.cc: Remove invalid checks for mixedCase methods
      * utils/get_*_mirrors*.py: Ensure failure if no mirrors were read
      * utils/get_*_mirrors*.py: Use sys.stderr.write instead of print
      * Support all compressors for data.tar/control.tar (Closes: #718330)
      * Revert "aptsources/sourceslist.py: ensure that our sources are opened with UTF-8"
        (Closes: #742118)
    python-apt ( unstable; urgency=medium
      [ Steve Langasek ]
      * aptsources/sourceslist.py: ensure that our sources are opened with UTF-8
        encoding, regardless of the current locale, and handle the sources lines
        as Unicode internally for consistency between python2 and python3.
        LP: #1069019.
      [ Brian Murray ]
      * Fix pep8 error.
    python-apt ( unstable; urgency=high
      * Revert "* apt/cache.py:" (rootdir change) (Closes: #741251) (LP: #1288171)
        We cannot reset the configuration when rootdir is specified in
        apt.Cache(). This reopens: #728274.
    python-apt ( unstable; urgency=medium
      * debian/rules: Do not run dh_sphinxdoc -a
    python-apt (0.9.3) unstable; urgency=medium
      * doc/source/conf.py: Python 3 support
      * debian/rules: Use dh_sphinxdoc integration
      * utils/doclint.py: Drop, not working anymore.
      * python/generic.h: Fix MkPyNumber to work if char is unsigned.
      * data: Add Tanglu distribution information
      * debian/python3-apt-dbg.files: Fix pattern for kFreeBSD
      * tests/test_policy.py: Disable, uses system state (FTBFS on ppc64)
      * tests/data/aptsources/sources.list.testDistribution: Add tanglu
      * tests/test_policy.py: Fix comment to conform to PEP8
    python-apt (0.9.2) unstable; urgency=medium
      [ Michael Vogt ]
      * apt/cache.py:
        - when using apt.Cache(rootdir=/some/dir) only read the APT
          configuration from this rootdir instead of /etc (closes: #728274)
      * make pep8 test part of the unittests
      * add pyflakes test
      * add .travis.yml & update python3 dependency to 3.3
      [ Barry Warsaw ]
      * debian/tests/control: Add python-all and python3-all as Depends for the
        autopkgtests so all the supported Python versions are pulled in.
        (closes: #734500)
      [ Michael Schaller]
      * apt/cache.py:
        - Fixed PEP8 issues
        - Fixed pyflakes issue: Removed unused local variable 'transient'
      * apt/package.py:
        - Fixed PEP8 issues
        - Fixed pyflakes issue: Removed unused import 'warnings'
        - Improved readability and documentation of BaseDependency.__dstr().
      [ Julian Andres Klode ]
      * apt/cache.py: Call os.path.abspath() on a supplied rootdir (LP: #792295)
      * apt/package.py: Fix BaseDependency.__dstr.__ne__()
      * apt/package.py: Pass an apt_pkg.Dependency to BaseDependency
      * tests: Add back test_hashsums from old and update
      * Style fixes:
        - Style fix: Do not use "is True" / "is False"
        - debian/control: Replace a tab with spaces
        - tests/test_deps.py: Remove an invalid blank line
      * Use a single code base for Python 2 and 3
        - Use print_function everywhere
        - Drop support for Python 2.6
        - tests: Remove checks for Python older than 2.7
      * Documentation fixes:
        - apt, doc: Fix the list of comp_type values
        - Unify list of comparison type values everywhere
      * Static analysis fixes:
        - (cppcheck) python/pkgmanager.cc: Do not create temporary CppPyRef
      * Packaging changes:
        - debian/README.source: Drop it, it's useless bzr
        - debian/gbp.conf: Set sign-tags = True
        - debian/control: Set Standards-Version to 3.9.5
        - debian/control: Drop python-{unittest2,debian} build deps
    python-apt (0.9.1) unstable; urgency=low
      * data/templates/Ubuntu.info.in: It's 'Tahr', not 'Thar'
      * data/templates/Debian.info.in: Add jessie
      * data/templates/Debian.info.in: Change wheezy version from 7.0 to 7
      * python/*.cc: Get rid of the easy-to-replace deprecated APT functions
      * python/{depcache.cc,string.cc}: Ignore deprecation warnings for some calls
      * python/depcache.cc: Add more error handling to PkgDepCacheCommit
      * python/cache.cc: Remove a check for an unsigned long value < 0
      * python/arfile.cc: (C++11) Explicitly cast unsigned long to time_t in {}
      * python/apt_instmodule.cc: Make RETURN(x) be return on Python 2
      * python/policy.cc: (scan-build): Fix a dead assignment
      * python/progress.cc: (scan-build): Fix some uninitialized values
      * debian: Upgrade to debhelper 9 (and dpkg-buildflags)
      * debian/python-apt-doc.links: Replace bundled underscore.js by symlink
      * po: Update the template
    python-apt (0.9.0) unstable; urgency=low
      [ Michael Vogt ]
      * some fixes from the "coverity" scan
      * merge from Ubuntu:
        - data/templates/Ubuntu.info.in: add "Saucy Salamander" to 
        - debian/control: add "Multi-Arch: allowed"
      [ Julian Andres Klode ]
      * Completely remove all old-API support code
      * Accept bytes object for file names (Closes: #680971)
      * aptsources/sourceslist.py
        - Document correct use of uniq and hide it using __all__ (Closes: #723815)
        - Correctly parse multiple options (LP: #1103200)
      * python/apt_pkgmodule.cc:
        - Fix documentation of version_compare (Closes: #680891)
      * python/cache.cc:
        - Set NoDelete=true when creating Policy, fixes segfault in destructor
      * apt/package.py:
        - Add a Package.has_config_files property (Closes: #712749)
      * tests:
        - Do not set dir::etc::sourceparts to /tmp
      * apt, aptsources:
        - Only call init_config() if not already initialized (Closes: #686403)
      * apt/debfile.py:
        - Pass strip_multi_arch=False to parse_depends. Patch by Michael, tests
          derived from the ones provided by the reporter.
          Closes: #717859. Closes: #717861.
      * doc/source/examples/dpkg-info.py:
        - Use apt_inst.DebFile (Closes: #671784)
      * doc/examples/*.py:
        - Update examples to the new API (Closes: #639022)
      * tests/old/*.py:
        - Update to new API as well
      * data/templates/Ubuntu.info.in:
        - Add "Trusty Thar"
      * debian/control:
        - Set Standards-Version to 3.9.4
      [ Jeremy Bicha ]
      * data/templates/Ubuntu.info.in: add 'devel' series (Closes: #722961)
      [ Jakub Wilk ]
      * python-apt: formatting error in library/index.rst (Closes: #692484)
      [ Daniel Hartwig ]
      * apt/package.py:
        - mark_upgrade misuses FromUser to set auto-installed (Closes: #686726)
    python-apt ( unstable; urgency=low
      [ Michael Vogt ]
      * debian/control:
        - updated Vcs field to point to 
      * replace .bzr-builddeb/default.conf with debian/gbp.conf
      [ Julian Andres Klode ]
      * Update the Vcs fields to use Vcs-Git with git protocol, and gitweb
        for Vcs-Browser
      [ Colin Watson ]
      * add support for "key in apt.debfile.DebPackage" (closes: #710541)
    python-apt (0.8.9) unstable; urgency=low
      * upload previous experimental upload to sid
    python-apt (0.8.9~exp2) experimental; urgency=low
      * apt/package.py:
        - export codename in apt.package.Origin as well
          (closes: #703401)
    python-apt (0.8.9~exp1) experimental; urgency=low
      [ Michael Vogt ]
      * python/tag.cc:
        - make TagSecString_FromStringAndSize, TagSecString_FromString
          static, thanks to jcristau
      * python/cache.cc:
        - add "Codename" to PackageFile object
      * add dep8 style autopkgtest support
      * build fixes for python3.3
      * data/templates/Ubuntu.info.in:
        - add raring
      * tests/test_all.py, aptsources/distro.py:
        - python2.6 compat fixes
      [ Jason Conti ]
      * lp:~jconti/python-apt/closeable-cache:
        - add apt.Cache.close() method
      [ Martin Pitt ]
      * tests/*.py: Do not prepend None to sys.path, Python 3.3 redeems that with
        an unintelligible crash.
      * tests/test_auth.py: In test_add_key_from_server_mitm(), show the exception
        if it does not match the expectation, so that this becomes possible to
      * aptsources/distro.py: Replace the deprecated getiterator() ElementTree
        method with iter(), to avoid raising a PendingDeprecationWarning.
      * tests/test_auth.py: Temporarily disable $http_proxy for the tests, as
        gnupg does not get along with proxies (LP #789049)
      [ Colin Watson ]
      * tests/test_apt_cache.py, tests/test_lp659438.py, tests/test_progress.py:
        - Clear out APT::Update::Post-Invoke and
          APT::Update::Post-Invoke-Success in tests that call cache.update to
          avoid pollution from the host system.
      * tests/test_auth.py:
        - Discard stderr from gpg.
        - Try successive keyserver ports if 19191 is already in use.
      * aptsources/distinfo.py, aptsources/distro.py, aptsources/sourceslist.py,
        tests/test_apt_cache.py, tests/test_debfile_multiarch.py:
        - Use logging.warning rather than the deprecated logging.warn.
      * tests/test_debfile_multiarch.py:
        - Don't log warnings when skipping tests; the resulting stderr output
          causes autopkgtest to fail.
      * tests/test_all.py:
        - Write general test status output to stdout, not stderr.
      * tests/test_aptsources.py:
        - Clean up file object in test_enable_component.
      * tests/test_lp659438.py:
        - Add an Architecture: line to the test Packages file so that apt
          doesn't get upset with it.
      * data/templates/Ubuntu.info.in:
        - Fix descriptions of quantal and raring.
    python-apt ( unstable; urgency=low
      [ David Prévot ]
      * po/no.po: Remove useless translation (superseded by nb.po)
      [ Julian Andres Klode ]
      * apt/package.py: Try both filenames for package file lists
        (Closes: #700715)
    python-apt ( unstable; urgency=low
      * python/tag.cc:
        - make TagSecString_FromStringAndSize, TagSecString_FromString
          static, thanks to jcristau
      * tests/test_lp659438.py:
        - fix missing architecture to make the tests pass again during
          build with the latest apt
    python-apt (0.8.8) unstable; urgency=low
      [ Program translation updates ]
      * po/pl.po: Polish (Michał Kułach) (closes: #684308)
      * po/da.po: Danish (Joe Hansen) (closes: #689827)
      [ Michael Vogt ]
      * merged lp:~sampo555/python-apt/fix_1042916 reuse existing but
        disabled sources.list entries instead of duplicating them.
        Thanks to "sampo555", LP: #1042916
      * lp:~mvo/python-apt/fix-debfile-crash:
        - fix crash on missing candidates in the multiarch check
      * lp:~mvo/python-apt/recv-key-lp1016643:
        - Only support long (v4) keyids when downloading keys and
          check the keys fingerprint before importing. This avoids
          man-in-the-middle attacks (LP: #1016643)
      * consolidate tests/test_lp1030278.py into the new 
      * apt/auth.py:
        - support importing long keyids with leading 0x and mixed case
      * debian/control:
        - build-depend on python-unittest2 to get "with TestCase.assertRaises"
          support in python2.6
      [ Barry Warsaw ]
      * python/string.cc, tests/test_lp1030278.py: Fix StrSizeToStr() so that
        1) it first checks for PyLong-ness so that in Python 3 on i386, it
        will be able to convert larger numbers (via doubles rather than ints);
        2) before doing the conversions through the apt API, check to see if a
        Python exception occurred, e.g. OverflowError, and return an error
        condition in that case instead of masking it.  (LP: #1030278)
      [ James Hunt ]
      * python/cache.cc: PkgCacheGetIsMultiArch(): Return calculated
        value rather than a random one.
      * lp:~jamesodhunt/python-apt/test-for-size_to_str:
        - add test for size_to_str() to help with finding LP: #1030278
    python-apt (0.8.7) unstable; urgency=low
      [ Translation updates ]
      * po/es.po: Spanish translation updated by Omar Campagne (closes: #679285)
      * po/ja.po: Japanese translation updated by Kenshi Muto (closes: #679652)
      [ Jakub Wilk ]
      * Fix typos: the the -> the (closes: #679432)
      [ Julian Andres Klode ]
      * apt/auth.py:
        - Do not merge stdout and stderr (Closes: #678706)
        - Forward stderr from apt-key to our stderr if non-empty
    python-apt (0.8.6) unstable; urgency=low
      [ Michael Vogt ]
      * debian/control:
        - add build-dep for apt (>= 0.9.6) to make test_auth.py test
          work reliable
      [ Julian Andres Klode ]
      * apt/auth.py:
        - Use tempfile.NamedTemporaryFile to create temporary file
        - Use Popen.communicate() instead of stdin, stdout
      * tests/fakeroot-apt-key:
        - exec apt-key, otherwise we ignore the return value
      * debian/control:
        - Build-depend on fakeroot, needed for the apt.auth tests
      * data/templates/Debian.info.in:
        - Add wheezy
        - Add wheezy-updates as Recommended Updates
        - Order wheezy-proposed-updates after wheezy/updates and wheezy-updates
      * po:
        - Fixup the translations for wheezy again
    python-apt (0.8.5) unstable; urgency=low
      [ Michael Vogt ]
      * python/cache.cc:
        - ensure that pkgApplyStatus is called when the cache is opened
          (thanks to Sebastian Heinlein for finding this bug), LP: #659438
      [ Stéphane Graber ]
      * data/templates/Ubuntu.info.in:
        - add quantal
      [ Steve Langasek ]
      * utils/get_ubuntu_mirrors_from_lp.py: move this script to python3
      * pre-build.sh: call dpkg-checkbuilddeps with the list of our 
        source-build-dependencies; this may save someone else an hour down the
        line scratching their head over gratuitous test-suite failures...
      [ Sebastian Heinlein ]
      * lp:~glatzor/python-apt/auth:
        - this is a port of the software-properties AptAuth module to python-apt
          with some cleanups. It provides a wrapper API for the apt-key command
      [ David Prévot ]
      * po/*.po: update PO files against current POT file
      * po/be.po: Belarusian translation by Viktar Siarheichyk (closes: #678286)
      * po/de.po: German translation updated by Holger Wansing (closes: #677916)
      * po/el.po: Greek translation updated by Thomas Vasileiou (closes: #677331)
      * po/en_GB.po: Remove useless file <20120610190618.GA1387@burratino>
      * po/eo.po: Esperanto translation by Kristjan Schmidt and Michael Moroni
      * po/fi.po: Finnish translation updated by Timo Jyrinki
      * po/fr.po: French translation updated (closes: #567765)
      * po/hu.po: Hungarian translation updated by Gabor Kelemen
      * po/id.po: Indonesian translation by Andika Triwidada (closes: #676960)
      * po/nl.po: Dutch translation updated by Jeroen Schot (closes: #652335)
      * po/pt_BR.po: Brazilian translation updated by Sérgio Cipolla
      * po/ru.po: incomplete Russian translation updated by Andrey
      * po/sk.po: Slovak translation updated by Ivan Masár (closes: #676973)
      * po/sl.po: Slovenian translation updated by Matej Urbančič
      * po/sr.po: incomplete Serbian translation updated by Nikola Nenadic
      * po/tl.po: Tagalog translation updated by Ariel S. Betan
      * po/am.po po/br.po po/et.po po/eu.po po/fa.po po/fur.po po/hi.po
        po/mr.po po/ms.po po/nn.po po/pa.po po/ps.po po/qu.po po/rw.po po/ta.po
        po/ur.po po/xh.po: remove useless (empty) translations
      [ Julian Andres Klode ]
      * Merge patch from Colin Watson to handle non-UTF8 tag files in
        Python 3, by using bytes instead of str when requested; and
        document this in the RST documentation (Closes: #656288)
      * debian/control:
        - Drop Recommends on python2.6 (Closes: #645970)
        - Replace xz-lzma Recommends by xz-utils (Closes: #677934)
      * python/configuration.cc:
        - Handle the use of "del" on configuration values. Those are represented
          by calling the setter with NULL, which we did not handle before, causing
          a segmentation fault (Closes: #661062)
      * python/tag.cc:
        - Correctly handle file descriptor 0 aka stdin (Closes: #669458)
      * python/acquire.cc:
        - Use pkgAcquire::Setup() to setup the acquire class and handle errors
          from this (Closes: #629624)
      * debian/control:
        - Set Standards-Version to 3.9.3
      * utils/get_ubuntu_mirrors_from_lp.py:
        - Revert move to Python 3, python3-feedparser is not in the archive yet
      * tests:
        - Fix new tests from Sebastian to work with Python 2.6
    python-apt (0.8.4) unstable; urgency=low
      [ Michael Vogt ]
      * doc/examples/build-deps.py:
        - update the build-deps.py example to use the apt API more
      * add support for apt_pkg.Policy.get_priority(PkgFileIterator)
      * apt/debfile.py:
        - use apt_inst for reading the control_filelist
      * debian/control:
        - remove no longer needed dependency on python-debian
      * tests/test_tagfile.py:
        - add test for apt_pkg.TagFile() both for compressed/uncompressed
      * python/tag.cc, tests/test_tagfile.py:
        - add support a filename argument in apt_pkg.TagFile() (in addition
          to the file object currently supported)
      * apt/package.py:
        - if there is no Version.uri return None
      * apt/cache.py:
        - fix _have_multi_arch flag (thanks to Sebastian Heinlein)
      * build against apt 0.9.0
      [Julian Andres Klode ]
      * python/apt_pkgmodule.cc:
        - Fix apt_pkg.Dependency.TYPE_RECOMMENDS, had Suggests value previously
    python-apt (0.8.4~exp1) experimental; urgency=low
      * tests/test_apt_cache.py:
        - fix tests on kfreebsd/ia64
      * apt/debfile.py: 
        - fix crash in dep multiarch handling
    python-apt (0.8.3ubuntu9) UNRELEASED; urgency=low
      [ Steve Langasek ]
      * Don't leak file descriptors.
      [ Colin Watson ]
      * aptsources/*.py, setup.py: Make aptsources modules work directly in
        either Python 2 or 3, and exclude the "future" 2to3 fixer so that 2to3
        doesn't need to modify them.  This makes life a little easier for the
        strange tricks update-manager plays with its dist-upgrader tarball.
    python-apt (0.8.3) unstable; urgency=low
      [ Alexey Feldgendler ] 
      * handle architecture-specific conflicts correctly (LP: #829138)
      [ Michael Vogt ]
      * lp:~mvo/python-apt/debfile-multiarch:
        - add multiarch support to the debfile.py code
      * tests/test_apt_cache.py:
        - add additional check if provides test can actually be run
    python-apt (0.8.2) unstable; urgency=low
      [ Michael Vogt ]
      * merged from ubuntu:
        - use logging instead of print
        - update distro template Ubuntu.info.in
        - add xz compression support
      * po/python-apt.pot:
        - refreshed
      * po/pt_BR.po:
        - updated, thanks to Sergio Cipolla (closes: #628398)
      * po/da.po:
        - updated, thanks to Joe Dalton (closes: #631309)
      * po/sr.po:
        - updated, thanks to Nikola Nenadic (closes: #638308)
      * python/apt_pkgmodule.cc:
        - add apt_pkg.get_architectures() call
      * apt/cache.py:
        - remove "print" when creating dirs in apt.Cache(rootdir=dir),
          thanks to Martin Pitt
        - add __lt__ to apt.Package so that sort() sorts by name
          on list of package objects
      * debian/control:
        - add recommends to xz-lzma to ensure we have the unlzma command
      * apt/cache.py:
        - set Dir::bin::dpkg if a alternate rootdir is given
          (LP: #885895)
      * build fixes for the apt in experimental
      * apt/debfile.py: 
        - raise error when accessing require_changes and 
          missing_deps without calling check() before, thanks to 
          Tshepang Lekhonkhobe (closes: #624379)
      * apt/package.py:
        - add new "suggests" property, thanks to Christop Groth
        - allow Dependency object to be iteratable, this allows to write
          code like:
          for or_dep_group in pkg.candidate.dependencies:
              for dep in or_dep_group: 
          (thanks to Christop Groth)
      * apt/progress/base.py:
        - write exception text to stderr to avoid hidding exceptions
          like "pre-configure failed" from libapt (thanks to Jean-Baptiste
      [ Tshepang Lekhonkhobe ]
      * rm usage of camelcase in cache.py doc (closes: #626617)
      * grammar fix in the cache.py doc (closes: #626610)
      [ Nikola Pavlović ]
      * fixed a typo, changed "Open Source software" to 
        "free and open-source software"  (LP: #500940)
    python-apt (0.8.1) unstable; urgency=low
      [ Julian Andres Klode ]
      * Breaks: debsecan (<< 0.4.15) [not only << 0.4.14] (Closes: #629512)
      [ Michael Vogt ]
      * python/arfile.cc:
        - use APT::Configuration::getCompressionTypes() instead of duplicating
          the supported methods here
      * tests/test_debfile.py:
        - add test for raise on unknown data.tar.xxx
      * tests/test_aptsources_ports.py, tests/test_aptsources.py:
        - use tmpdir during the tests to fix test failure with apt from
      * tests/test_apt_cache.py:
        - fix test by providing proper fixture data
        - fix test if sources.list is not readable (as is the case on some
          PPA buildds)
      * apt/package.py:
        - fix py3 compatiblity with print
      * tests/test_all.py:
        - skip all tests if sources.list is not readable (as is the case on
          some builds)
        - packages in marked_install state can also be auto-removable
      * add concept of "ParentComponent" for e.g. ubuntu/multiverse
        that needs universe enabled as well (plus add test)
      * apt/progress/gtk2.py:
        - update to the latest vte API for child-exited (LP: #865388)
    python-apt (0.8.0) unstable; urgency=low
      * Upload to unstable
      [ Julian Andres Klode ]
      * Increase Breaks for update-notifier to 0.99.3debian9
      * utils/get_debian_mirrors.py: Adjust for new Alioth SCM urls
      * debian/control: Standards-Version 3.9.2
      * Fix Lintian overrides
      * Fix spelling errors reported by Lintian (sep[a->e]rated, overrid[d]en)
      * po/urd.po: Remove, ur.po is the correct file
      * debian/source/format: Add, set it to "3.0 (native)"
      [ Tshepang Lekhonkhobe ]
      * Fix get_changelog in Python 3 (Closes: #626532)
      * apt/package.py: fix a few typos [formated->formatted] (Closes: #597054)
      * doc/source/tutorials/contributing.rst: minor improvements (Closes: #625225)
        - one typo [2to => 2to3], one broken link [pep8.py link]
      [ Translation updates ]
      * Esperanto (Closes: #626430)
    python-apt (0.8.0~exp4) experimental; urgency=low
      * apt_pkg: Add OrderList, wanted for mancoosi (Closes: #623485)
      * apt_pkg: Add subclassing fun to PackageManager, for #623485 as well
      * apt.cache: Emit change signals in ProblemResolver
      * apt.Cache: Add a _changes_count member for later use
    python-apt (0.8.0~exp3) experimental; urgency=low
      [ Stéphane Graber ]
      * Update enable_component to also apply to -src entries (LP: #758732)
      [ Julian Andres Klode ]
      * apt_pkg: Add apt_pkg.Version.multi_arch and friends
    python-apt (0.8.0~exp2) experimental; urgency=low
      * aptsources: Parse multi-arch sources.list files correctly
      * aptsources: Allow insertion of new multi-arch entries
      * aptsources: Various cleanup work
      * all: Fix all instances of ResourceWarning about unclosed files
      * tests/test_apt_cache.py: Use assertTrue() instead of assert_()
      * apt_pkg: Raise error when parse_commandline gets empty argv (LP: #707416)
      * apt_pkg: Fix time_to_str, time_rfc1123 to accept more correct values
        (time_to_str accepts unsigned long, time_rfc1123 long long, y2k31-correct).
      * apt.progress: Use long for ETA, natural type for size (LP: #377375)
      * aptsources/sourceslist.py: s/aptsource.py/sourceslist.py/ (LP: #309603)
      * doc/examples: Add example on how to get architecture names (LP: #194374)
      * apt_pkg: Fix unsigned/long-vs-int issues (LP: #610820)
      * apt.cache: Document that update() may need an open() (Closes: #622342)
      * apt.cache: Add a fetch_archives() method (Closes: #622347)
      * doc: Fix a minor formatting error, patch by Jakub Wilk (Closes: #608914)
      * apt.package: Add 'tasks' to Version, improve doc (Closes: #619574)
      * doc: Fix documentation of BaseDependency.relation (Closes: #607031)
    python-apt (0.8.0~exp1) experimental; urgency=low
      * Disable the old-style API, and break all packages using it
      * Add an 'is_multi_arch' attribute to apt_pkg.Cache
      * Add apt_pkg.Group class, wrapping pkgCache::GrpIterator
      * Change apt_pkg.Cache() so that passing None for 'progress' results in
        no progress output
      * Support (name, arch) tuples in apt_pkg.Cache mappings, wrapping
        FindPkg() with two string parameters.
      * Introduce apt_pkg.Cache.groups and apt_pkg.Cache.group_count
      * Fix debian/rules to work correctly with tilde in version number
    python-apt ( unstable; urgency=low
      [ Barry Warsaw ]
      * PyFetchProgress::Pulse(): When ignoring a false return value from
        PyArg_Parse() after running the simple callback pulse(), there can be
        an exception on the stack, which must be cleared.  (LP: #711225)
      [ Michael Vogt ]
      * python/arfile.cc, apt/debfile.py:
        - add support for .xz archives
      * tests/test_debfile.py:
        - add test for xz compression
      * update priority of python3-apt to match the archive
      [ Julian Andres Klode ]
      * python/cache.cc:
        - Add Package.get_fullname() and Package.architecture
      * apt/cache.py, apt/package.py:
        - Add architecture property to apt.Package (LP: #703472)
        - Change apt.Package.name to use get_fullname(pretty=True) (LP: #740072)
      * tests/test_debfile.py:
        - Disable multi-arch for the test, it fails when run via test_all.py
        - Fix mixed tab/spaces indentation in xz test
      * tests/test_apt_cache.py:
        - Package records 'Package' field now corresponds to shortname
      * debian/python3-apt-dbg.install
        - Do not try to install old-style debugging files.
      * debian/rules:
        - Support the nocheck build option and ignore test failures on hurd
          (Closes: #610448)
        - Move Python 3 debug files before installing other files (Closes: #619528)
      [ Scott Kitterman ]
       * Removed ${python:Breaks} - No longer used in dh_python2
    python-apt ( unstable; urgency=low
      * apt/progress/text.py:
        - only run ioctl for termios.TIOCGWINSZ if the fd is a tty
      * apt/debfile.py, tests/test_debfile.py:
        - strip "./" from _get_content and add tests, this fixes a control
          file extraction bug in gdebi
      * python/depcache.cc:
        - when using the actiongroup as a contextmanager incref/decref
          on enter and leave. this should fix the instablity issues
          that aptdaemon runs into (LP: #691134)
      * debian/python3-apt.install:
        - fix py3 extension module install location (thanks to
      * python/depcache.cc:
        - provide bindings for new libapt SetCandidateRelease()
      * debian/control:
        - require new libapt-pkg-dev SetCandidateRelease()
      * py3 compatible exception handline
      * debian/control:
        - bump minimal python version to >= 2.6
      * python/apt_pkgmodule.cc:
        - strip multiarch by default in RealParseDepends
        - add optional parameter to allow parse_depends() to keep the
          multiarch parameter
      * tests/test_deps.py:
        - add test forapt_pkg.parse_depends(strip_multiarch=True)
    python-apt ( unstable; urgency=low
      [ Julian Andres Klode ]
      * python/generic.h: Fix a memory leak (leaking on every unicode string).
      * debian/control: add Replaces to python-apt-common, python3-apt; to
        avoid file conflicts with files previously in python-apt (Closes: #605136).
      [ Michael Vogt ]
      * python/generic.h:
        - set Object to NULL in CppDeallocPtr
      * python/depcache.cc:
        - don't run "actiongroup.release()" if the object was already
      * tests/test_apt_cache.py:
        - fix tests to work if apt compressed indexes are enabled
    python-apt (0.7.100) unstable; urgency=low
      * Final 0.7.100 release; targeted at Squeeze.
      * apt/debfile.py:
        - Replace (undocumented) use of python-debian debfile.DebFile API with
          the equivalent apt_inst.DebFile API (Closes: #603043)
      * apt/package.py:
        - Fix docstring of Package.mark_delete() (Closes: #599042)
      * doc:
        - Various documentation updates.
        - The C++ API/ABI is stable now.
      * po
        - Update sl.po (Closes: #603359)
    python-apt ( unstable; urgency=low
      [ Piotr Ozarowski ]
      * Use dh_python3 to handle Python 3 files
        - bump minimum required versions of python-central and python3-all-dev
        - add new python3-apt, python3-apt-bdg and python-common binary packages
      * Replace python-central with dh_python2
    python-apt (0.7.98) unstable; urgency=low
      [ Michael Vogt ]
      * python/acquire.cc:
        - return long long when calling TotalNeeded(), FetchNeeded() and
          PartialPresent() from pkgAcquire(). This follows the change
          in libapt.
      * apt/debfile.py:
        - add missing init for _installed_conflicts (LP: #618597)
      * add "provides" property to the apt.Version objects
      * apt/debfile.py:
        - fix error when reading binary content and add regresion test
      * merged patch from Samuel Lidén Borell to fix crash if there utf8 
        in the control file (LP: #624290) and add test
      * apt/cache.py:
        - add "sources_list" parameter to cache.update() to force updating
          a single sources.list entry only
      * debian/control:
        - add missing build-depends on python-debian (needed to run the
          tests for apt.debfile.DebPackage()
      * data/templates/Ubuntu.info.in:
        - add extras.ubuntu.com and archvie.canonical.com to the
      * aptsources/distinfo.py, aptsources/distro.py:
        - support non-official templates (like extras.ubuntu.com)
      * fix return type of DebSize() and UsrSize(), thanks to
        Sebastian Heinlein, LP: #642936
      * merge fix from Steven Chamberlain <steven@pyro.eu.org> for
        crash in unattended-upgrades, many many thanks (closes: #596408)
      * python/acquire-item.cc:
        - fix two more int -> long long change to follow the changes
          from libapt
        - do use PyString_FromFormat(), in python versions below 2.7 it
          does not support long long (%llu), use strprintf() from libapt
      [ Kiwinote ]
      * apt/debfile:
        - don't fail if we conflict with the pkgs we are reinstalling
    python-apt ( unstable; urgency=low
      * tests/test_apt_cache.py:
        - Do not insert ".." into sys.path, fixes FTBFS
    python-apt (0.7.97) unstable; urgency=low
      [ Julian Andres Klode ]
      * python/tag.cc:
        - Support gzip compression for control files (Closes: #383617),
          requires APT (>> 0.7.26~exp10) to work.
      * doc/conf.py:
        - Correctly handle non-digit characters in version (ignore everything
          after them).
      * python/apt_pkgmodule.cc:
        - Bind pkgAcquire::Item::StatTransientNetworkError (Closes: #589010)
      * doc/library/apt_pkg.rst:
        - Document Configuration.dump().
      * debian/control:
        - Adapt to new Python 3 handling (Closes: #593042)
        - Build-depend on APT >= 0.8 to get gzip compression enabled (optional,
          can be reverted for backports)
        - Set Standards-Version to 3.9.1
      [ Michael Vogt ]
      * python/configuration.cc:
        - add binding for the "dump()" method to configruation objects
      * apt/debfile.py:
        - fix crash in DscFile handling and add regression test
      * po/pt_BR.po:
        - updated, thanks to Sergio Cipolla (Closes: #593754)
    python-apt ( unstable; urgency=low
      * tests/test_debfile.py:
       - properly setup fixture data to make debfile test pass 
         (closes: #588796)
    python-apt (0.7.96) unstable; urgency=low
      [ Michael Vogt ]
      * data/templates/gNewSense.info.in,
        - add gNewSense template and mirrors, thanks to Karl Goetz
      * data/templates/Ubuntu.info.in, 
        - updated for Ubuntu maverick
      * doc/source/conf.py:
        - do not fail on non-digits in the version number
      * utils/get_debian_mirrors.py:
        - ignore mirrors without a county
      * apt/cache.py:
        - add new "dpkg_journal_dirty" property that can be used to
          detect a interrupted dpkg (the famous 
         "E: dpkg was interrupted, you must manually run 'dpkg --configure -a'")
      * merged lp:~kiwinote/python-apt/merge-gdebi-changes, this port the
        DebPackage class fixes from gdebi into python-apt so that gdebi can
        use the class from python-apt directly
      * apt/debfile.py:
        - check if the debfiles provides are in conflict with the systems
        - fix py3 compatibility
      * tests/test_debs/*.deb, tests/test_debfile.py:
        - add automatic test based on the test debs from gdebi
      * python/progress.cc:
        - deal with missing return value from the acquire progress in pulse()
      [ Martin Pitt ]
      * tests/test_apt_cache.py: Test accessing the record of all packages during
        iteration. This both ensures that it's well-formatted and structured, and
        also that accessing it does not take an inordinate amount of time. This
        exposes a severe performance problem when using gzip compressed package
      * apt/cache.py: When iterating over the cache, do so sorted by package name.
        With this we read the the package lists linearly if we need to access the
        package records, instead of having to do thousands of random seeks; the
        latter is disastrous if we use compressed package indexes, and slower than
        necessary for uncompressed indexes.
      [ Julian Andres Klode ]
      * Re-enable Python 3 support for latest python-default changes (hack).
    python-apt (0.7.95) unstable; urgency=low
      [ Julian Andres Klode ]
      * apt/cache.py:
        - Make Cache.get_changes() much (~35x) faster (Closes: #578074).
        - Make Cache.req_reinstall_pkgs much faster as well.
        - Make Cache.get_providing_packages() about 1000 times faster.
        - Use has_versions and has_provides from apt_pkg.Package where possible.
      * apt/package.py:
        - Decode using utf-8 in installed_files (LP: #407953).
        - Fix fetch_source() to work when source name = binary name (LP: #552400).
        - Merge a patch from Sebastian Heinlein to make get_changelog() only
          check sources where source version >= binary version (Closes: #581831).
        - Add Version.source_version and enhance Sebastian's patch to make use
          of it, in order to find the best changelog for the package.
      * python:
        - Return bool instead of int to Python where possible, looks better.
        - Document every class, function, property.
      * python/cache.cc:
        - Check that 2nd argument to Cache.update() really is a SourceList object.
        - Fix PackageFile.not_automatic to use NotAutomatic instead of NotSource.
        - Add Package.has_versions to see which packages have at least one version,
          and Package.has_provides for provides.
        - Add rich compare methods to the Version object.
      * python/generic.cc:
        - Fix a memory leak when using old attribute names.
        - Map ArchiveURI property to archive_uri
      * python/progress.cc:
        - Do not pass arguments to InstallProgress.wait_child().
      * doc:
        - Update the long documentation.
      * debian/control:
        - Change priority to standard, keep -doc and -dev on optional.
      * utils/migrate-0.8.py:
        - Open files in universal newline support and pass filename to ast.parse.
        - Add has_key to the list of deprecated functions.
        - Don't abort if parsing failed.
        - do not require files to end in .py if they are passed on the command
          line or if they contain python somewhere in the shebang line.
      [ Michael Vogt ]
      * apt/cache.py:
        - make cache open silent by default (use apt.progress.base.OpProgress)
      * tests/data/aptsources_ports/sources.list:
        - fix ports test-data
      * tests/test_apt_cache.py:
        - add simple test for basic cache/dependency iteration
    python-apt ( unstable; urgency=low
      * Revert and just set APT::Architecture to i386 for
        test_aptsources; fixes FTBFS on powerpc.
    python-apt ( unstable; urgency=low
      * Pass --exclude=migrate-0.8.py to dh_pycentral; in order to not depend
        on python2.6; but recommend python2.6.
      * Use dh_link instead of ln for python-apt-doc (Closes: #573523).
      * Pass --link-doc=python-apt to dh_installdocs.
      * Install examples to python-apt-doc instead of python-apt.
      * tests/test_all.py: Write information header to stderr, not stdout.
      * Build documentation only when needed (when building python-apt-doc).
    python-apt (0.7.94) unstable; urgency=low
      * Move documentation into python-apt-doc (Closes: #572617)
      * Build documentation only once on the default Python version.
      * python/acquire-item.cc:
        - Add AcquireItem.partialsize member.
      * python/apt_pkgmodule.cc:
        - Treat '>>' and '>', '<<' and '<' as identical in check_dep (LP: #535667).
      * python/generic.cc:
        - Map UntranslatedDepType to dep_type_untranslated.
      * python/tag.cc:
        - Hack the TagFile iterator to not use shared storage (Closes: #572596):
          Scan once, duplicate the section data, and scan again.
      * apt/package.py:
        - Create a string class BaseDependency.__dstr which makes '>' equal to
          '>>' and '<' equal to '<<' (compatibility).
        - Use the binary package version in Version.fetch_source() if the
          source version is not specified (i.e. in the normal case).
        - Always return unicode strings in Package.get_changelog (Closes: #572998).
      * apt/progress/text.py:
        - Drop InstallProgress, it's useless to keep this alias around.
      * apt/progress/old.py:
        - Let the new method call the old one; e.g. status_update() now calls
          self.statusUpdate(). This improves compatibility for sub classes.
      * Merge with Ubuntu:
        - util/get_ubuntu_mirrors_from_lp.py:
          + rewritten to use +archivemirrors-rss and feedburner
        - pre-build.sh: update ubuntu mirrors on bzr-buildpackage (and also do this
          for Debian mirrors)
        - add break for packagekit-backend-apt (<= 0.4.8-0ubuntu4)
      * tests:
        - test_deps: Add tests for apt_pkg.CheckDep, apt_pkg.check_dep,
          apt_pkg.parse_depends and apt_pkg.parse_src_depends.
      * tests/data/aptsources/sources.list.testDistribution:
        - change one mirror which is not on the mirror list anymore.
      * utils/get_debian_mirrors.py:
        - Parse Mirrors.masterlist instead of the HTML web page.
      * utils/get_ubuntu_mirrors_from_lp.py:
        - Sort the mirror list of each country.
    python-apt ( unstable; urgency=low
      * data/templates/Ubuntu.info.in:
        - Use generic MirrorsFile key instead of per-architecture ones in
          order to fix FTBFS on !amd64 !i386 (Closes: #571752)
    python-apt ( unstable; urgency=low
      [ Julian Andres Klode ]
      * Fix some places where the old API was still used:
        - apt/utils.py: Completely ported, previous one was old-API from Ubuntu.
        - apt/cache.py: Use the new progress classes instead of the old ones.
        - apt/package.py: Various smaller issues fixed, probably caused by merge.
      * utils/migrate-0.8.py:
        - Improve C++ parsing and add apt.progress.old to the modules, reduces
          false positives.
        - Ship the list of deprecated things in the apt_pkg and apt_inst modules
          inside the script itself, so we don't have to parse the source code
      * python:
        - Handle deprecated attributes and methods in the tp_gettattro slot, this
          allows us to easily warn if a deprecated function is used.
      * python/tagfile.cc:
        - Implement the iterator protocol in TagFile.
      * python/cache.cc:
        - Implement Cache.__len__() and Cache.__contains__() (Closes: #571443).
      * data/templates/Debian.info.in:
        - Replace the MatchURI with one that really matches something.
      * aptsources/distro.py:
        - Call lsb_release with -idrc instead of --all.
      * tests:
        - Fix aptsources tests to use local data files if available.
        - test_all.py: Use local modules instead of system ones if possible.
      * data/templates/*.in: Switch MirrorsFile to relative filenames.
        - setup.py: Copy the mirror lists to the build directory
        - aptsources/distinfo.py: Support relative filenames for MirrorsFile.
      * debian/rules:
        - Run tests during build time.
      * debian/python-apt.install:
        - Install utils/migrate-0.8.py to /usr/share/python-apt/.
      [ Michael Vogt ]
      * apt/cache.py:
        - call install_progress.startUpdate()/finishUpdate() to keep
          compatibility with older code
      * apt/progress/base.py:
        - restore "self.statusfd, self.writefd" type, provide additional
          self.status_stream and self.write_stream file like objects
      * python/progress.cc:
        - try to call compatibility functions first, then new functions
    python-apt ( unstable; urgency=low
      [ Julian Andres Klode ]
      * Fix reference counting for old progress classes (Closes: #566370).
      * apt/cache.py:
        - Fix Cache.update() to not raise errors on successful updates.
      * python/progress.cc:
        - Fix some threading issues (add some missing PyCbObj_BEGIN_ALLOW_THREADS)
      * python/acquire-item.cc:
        - Support items without an owner set.
      * python/tarfile.cc:
        - When extracting, only allocate a new buffer if the old one was too small.
        - Do not segfault if TarFile.go() is called without a member name.
        - Clone all pkgDirStream::Item's so apt_pkg.TarMember object can be used
          outside of the callback function passed to go().
        - If only one member is requested, extract just that one.
      * Drop the segfault prevention measures from the Acquire code, as they fail
        to work. A replacement will be added once destruction callbacks are added
        in APT.
      * Merge the CppOwnedPyObject C++ class into CppPyObject.
      * Remove inline functions from the C++ API, export them instead.
      * Localization
        - de.po: Update against new template
      * python/arfile.cc:
        - Handle the case where ararchive_new returns NULL in debfile_new.
      * apt/progress/base.py:
        - select.error objects do not have an errno attribute (Closes: #568005)
      * doc/client-example.cc: Update against the new API.
      * Fix typos of separated in multiple files (reported by lintian).
      * debian/control:
        - Make python-apt-dev depend on ${misc:Depends} and recommend python-dev.
        - Set Standards-Version to 3.8.4.
      [ Michael Vogt ]
      * apt/utils.py:
        - add some misc utils like get_release_filename_for_pkg()
    python-apt (0.7.93) unstable; urgency=low
      [ Julian Andres Klode ]
      * Merge debian-sid and debian-experimental.
      * Add a tutorial on how to do things which are possible with apt-get,
        like apt-get --print-uris update (cf. #551164).
      * Build for Python 2.5, 2.6 and 3.1; 2.6 and 3.1 hit unstable on Jan 16.
        - Use DH_PYCENTRAL=nomove for now because include-links seems broken
      * Merge lp:~forest-bond/python-apt/cache-is-virtual-package-catch-key-error
        - Return False in Cache.is_virtual_package if the package does not exist.
      * Make all class-level constants have uppercase names.
      * Rewrite apt.progress.gtk2 documentation by hand and drop python-gtk2
        build-time dependency.
      * aptsources:
        - Make all classes subclasses of object.
        - distro.py: Support Python 3, decode lsb_release results using utf-8.
      * apt/progress/base.py:
        - Fix some parsing of dpkg status fd.
      * apt/progress/text.py:
        - Replace one print statement with a .write() call.
      * Rename apt_pkg.PackageIndexFile to apt_pkg.IndexFile.
      [ Colin Watson ]
      * apt/progress/__init__.py:
        - Fix InstallProgress.updateInterface() to cope with read() returning 0
          on non-blocking file descriptors (LP: #491027).
      [ Michael Vogt ]
      * apt/cache.py: 
        - improved docstring for the cache
        - add "enhances" property
      * data/templates/Ubuntu.info.in:
        - add lucid
      * python/cache.cc:
        - add UntranslatedDepType attribute to DependencyType
        - add DepTypeEnum that returns a value from 
          {DepDepends, DepPreDepends, ...}
      * python/apt_pkgmodule.cc:
        - add DepDpkgBreaks, DepEnhances constants
      * doc/source/apt_pkg/{cache.rst, index.rst}:
        - update documentation as well
    python-apt (0.7.92) experimental; urgency=low
      * New features:
        - Provide a C++ API in the package python-apt-dev (Closes: #334923).
        - Add apt_pkg.HashString and apt_pkg.IndexRecords (Closes: #456141).
        - Add apt_pkg.Policy class (Closes: #382725).
        - Add apt_pkg.Hashes class.
        - Allow types providing __new__() to be subclassed.
        - Add apt_pkg.DepCache.mark_auto() and apt.Package.mark_auto() methods to
          mark a package as automatically installed.
        - Make AcquireFile a subclass of AcquireItem, thus inheriting attributes.
        - New progress handling in apt.progress.base and apt.progress.text. Still
          missing Qt4 progress handlers.
        - Classes in apt_inst (Closes: #536096)
          + You can now use apt_inst.DebFile.data to access the data.tar.* member
            regardless of its compression (LP: #44493)
      * Unification of dependency handling:
        - apt_pkg.parse_[src_]depends() now use CompType instead of CompTypeDeb
          (i.e. < instead of <<) to match the interface of Version.depends_list_str
        - apt_pkg.SourceRecords.build_depends matches exactly the interface of
          Version.depends_list_str just with different keys (e.g. Build-Depends).
          + Closes: #468123 - there is no need anymore for binding CompType or
            CompTypeDeb, because we don't return integer values for CompType
      * Bugfixes:
        - Delete pointers correctly, fixing memory leaks (LP: #370149).
        - Drop open() and close() in apt_pkg.Cache as they cause segfaults.
        - Raise ValueError in AcquireItem if the Acquire process is shut down
          instead of segfaulting.
      * Other stuff:
        - Merge releases - from unstable.
        - Merge Configuration,ConfigurationPtr,ConfigurationSub into one type.
        - Simplify the whole build process by using a single setup.py.
        - The documentation has been restructured and enhanced with tutorials.
        - Only recommend lsb-release instead of depending on it. Default to
          Debian unstable if lsb_release is not available.
    python-apt (0.7.91) experimental; urgency=low
      [ Julian Andres Klode ]
      * Rename where needed according to PEP 8 conventions (Closes: #481061)
      * Where possible, derive apt.package.Record from collections.Mapping.
      * ActionGroups can be used as a context manager for the 'with' statement.
      * utils/migrate-0.8.py: Helper to check Python code for deprecated functions,
        attributes,etc. Has to be run from the python-apt source tree, but can be
        used for all Python code using python-apt.
      * debian/control: Only recommend libjs-jquery (Closes: #527543).
      [ Stefano Zacchiroli ]
      * debian/python-apt.doc-base: register the documentation with the
        doc-base system (Closes: #525134)
      [ Sebastian Heinlein ]
      * apt/package.py: Add Package.get_version() which returns a Version instance
        for the given version string or None (Closes: #523998)
    python-apt (0.7.90) experimental; urgency=low
      * Introduce support for Python 3 (Closes: #523645)
      * Support the 'in' operator (e.g. "k in d") in Configuration{,Ptr,Sub}
        objects (e.g. apt_pkg.Config) and in TagSections (apt_pkg.ParseSection())
      * Replace support for file objects with a more generic support for any object
        providing a fileno() method and for file descriptors (integers).
      * Add support for the Breaks fields
      * Only create Package objects when they are requested, do not keep them in
        a dict. Saves 10MB for 25,000 packages on my machine.
      * apt/package.py: Allow to set the candidate of a package (Closes: #523997)
        - Support assignments to the 'candidate' property of Package objects.
        - Initial patch by Sebastian Heinlein
    python-apt ( unstable; urgency=low
      [ Michael Vogt ]
      * po/zh_CN.po:
        - updated, thanks to Feng Chao
      * python/progress.cc:
        - if the mediaChange() does not return anything or is not implemented
          send "false" to libapt
      [ Julian Andres Klode ]
      * apt/package.py: Fix dictionary access of VersionList, patch
        by Sebastian Heinlein (Closes: #554895).
    python-apt ( unstable; urgency=low
      [ Michael Vogt ]
      * apt/cache.py:
        - add actiongroup() method (backport from 0.7.92)
        - re-work the logic in commit() to fail if installArchives() returns
          a unexpected result
      * apt/progress/__init__.py:
        - catch exceptions in pm.DoInstall()
      [ Sebastian Heinlein ]
      * apt/package.py:
        - Export if a package is an essential one (Closes: #543428)
      [ Julian Andres Klode ]
      * python/depcache.cc:
        - Make ActionGroups context managers so apt.Cache.actiongroup() has
          the same behavior as in 0.7.92
      * apt/cache.py:
        - Add raiseOnError option to Cache.update() (Closes: #545474)
      * apt/package.py:
        - Use the source version instead of the binary version in fetch_source().
      * apt/progress/__init__.py:
        - Correctly ignore ECHILD by checking before EINTR (Closes: #546007)
    python-apt ( unstable; urgency=low
      * apt/cache.py:
       - Convert argument to str in __getitem__() (Closes: #542965).
    python-apt ( unstable; urgency=low
      * apt/package.py:
       - Fix Version.get_dependencies() to not ignore the arguments.
    python-apt ( unstable; urgency=low
      [ Michael Vogt ]
      * apt/package.py:
        - add "recommends" property
      * apt/cache.py, python/cache.cc:
        - add optional pulseInterval option to "update()"
      [ Sebastian Heinlein ]
      * apt/cache.py:
       - Fix the (inst|keep|broken|del)_count attributes (Closes: #542773).
      [ Julian Andres Klode ]
      * apt/package.py:
       - Introduce Version.get_dependencies() which takes one or more types
         of dependencies and returns a list of Dependency objects.
       - Do not mark the package as manually installed on upgrade (Closes: #542699)
       - Add Package.is_now_broken and Package.is_inst_broken.
      * apt/cache.py:
       - Introduce ProblemResolver class (Closes: #542705)
      * python/pkgsrcrecords.cc:
       - Fix spelling error (begining should be beginning).
      * po:
       - Update template and the translations de.po, fr.po (Closes: #467120),
         ja.po (Closes: #454293).
      * debian/control:
       - Update Standards-Version to 3.8.3.
      * debian/rules:
       - Build with DH_PYCENTRAL=include-links instead of nomove.
    python-apt ( unstable; urgency=low
      * apt/debfile.py:
        - Fix missing space in message (Closes: #539704)
      * apt/package.py:
        - Add missing argument to Version.__le__() and Version.__ge__()
      * debian/control:
        - Do not build-depend on python-gtk2 and python-vte on kfreebsd-*.
      * setup.py:
        - Always build documentation, even if python-gtk2 is not installed.
    python-apt ( unstable; urgency=low
      [ Julian Andres Klode ]
      * python/cache.cc:
        - Support Breaks, Enhances dependency types (Closes: #416247)
      * debian/control:
        - Only recommend libjs-jquery (Closes: #527543)
        - Build-depend on libapt-pkg-dev (>= 0.7.22~)
        - Update Standards-Version to 3.8.2
      * apt/cache.py:
        - Correctly handle rootdir on second and later invocations of
          open(), by calling InitSystem again. (LP: #320665).
        - Provide broken_count, delete_count, install_count, keep_count
          properties (Closes: #532338)
        - Only create Package objects when they are requested, do not keep them in
          a dict. Saves 10MB for 25,000 packages on my machine.
      * apt/package.py:
        - Allow to set the candidate of a package (Closes: #523997)
          + Support assignments to the 'candidate' property of Package objects.
          + Initial patch by Sebastian Heinlein
        - Make comparisons of Version object more robust.
        - Return VersionList objects in Package.versions, which are sequences
          and also provide features of mappings. (partial API BREAK)
          + Allows to get a specific version (Closes: #523998)
      * apt/progress/__init__.py:
        - Do not break out of InstallProgress.waitChild()'s loop just because it
          is hitting EINTR, but only on child exit or on ECHILD.
      * Use debhelper 7 instead of CDBS
      [ Stefano Zacchiroli ]
      * debian/python-apt.doc-base: register the documentation with the
        doc-base system (Closes: #525134)
      [ Sebastian Heinlein ]
      * apt/progress.py: Extract the package name from the status message
        (Closes: #532660)
    python-apt ( unstable; urgency=low
      [ Stephan Peijnik ]
      * apt/progress/__init__.py:
        - Exception handling fixes in InstallProgress class.
      [ Michael Vogt ]
      * python/tag.cc:
        - merge patch from John Wright that adds FindRaw method
          (closes: #538723)
    python-apt ( unstable; urgency=low
      [ Julian Andres Klode ]
      * data/templates/Debian.info.in: Squeeze will be 6.0, not 5.1
      [ Stephan Peijnik ]
      * apt/progress/__init__.py:
        - add update_status_full() that takes file_size/partial_size as
          additional callback arguments
        - add pulse_items() that takes a addtional "items" tuple that
          gives the user full access to the individual items that are
      * python/progress.cc:
        - low level code for update_status_full and pulse_items()
        - better threading support
      [ Michael Vogt ]
      * aptsources/distro.py:
        - fix indent error that causes incorrect sources.list additons
          (LP: #372224)
      * python/progress.cc:
        - fix crash in RunSimpleCallback()
      * apt/cache.py:
        - when the cache is run with a alternative rootdir, create
          required dirs/files automatically
    python-apt ( unstable; urgency=low
      [ Michael Vogt ]
      * data/templates/Ubuntu.info.in:
        - updated for the new ubuntu karmic version
      * data/templates/Debian.info.in:
        - add squeeze
      [ Otavio Salvador ]
      * utils/get_debian_mirrors.py: updated to support current mirror page.
      * Update Debian mirrors. (Closes: #518071)
    python-apt ( unstable; urgency=low
      * apt/package.py: Handle cases where no candidate is available, by returning
        None in the candidate property. (Closes: #523801)
    python-apt ( unstable; urgency=low
      * apt/package.py: Handle cases where no candidate is available and
        one of the deprecated properties (e.g. candidateVersion) is
        requested. (Closes: #523801)
      * setup.py, debian/rules: Support version in setup.py again by getting
        the value from the variable DEBVER (defined in debian/rules), falling
        back to None.
    python-apt ( unstable; urgency=low
      * Fix FTBFS with python-debian (>= 0.1.13) on Python 2.4 by not using it to
        get a version number in setup.py (Closes: #523473)
      * apt/package.py:
        - (Package.candidateRecord): Fix missing 'd' in 'record'
        - (DeprecatedProperty.__get__): Only warn when used on objects, this
          makes it easier to use e.g. pydoc,sphinx,pychecker.
    python-apt (0.7.10) unstable; urgency=low
      * Build-Depend on python-debian, use it to get version number from changelog
      * Depend on libjs-jquery, and remove internal copy (Closes: #521532)
      * apt/package.py:
        - Introduce Version.{uri,uris,fetch_binary()}
      * debian/control:
        - Remove mdz from Uploaders (Closes: #521477), add myself.
        - Update Standards-Version to 3.8.1
        - Use ${binary:Version} instead of ${Source-Version}
        - Fix spelling error: python -> Python
      * debian/copyright: Switch to machine-interpretable copyright
      * Fix documentation building
        - doc/source/conf.py: Only include directories for current python version.
        - debian/control: Build-Depend on python-gtk2, python-vte.
        - setup.py: If pygtk can not be imported, do not build the documentation.
      * Breaks: debdelta (<< 0.28~) to avoid more problems due to the internal
        API changes from 0.7.9.
    python-apt (0.7.9) unstable; urgency=low
      [ Julian Andres Klode ]
      * apt/gtk/widgets.py:
        - Handle older versions of python-gobject which do not ship glib
      * apt/package.py: Introduce the Version class
        - Deprecate Package.candidate*() and Package.installed*(), except for
        - Provide Version.get_source() (LP: #118788)
        - Provide Package.versions (Closes: #513236)
      * apt/progress/: New package, replaces apt.progress and apt.gtk
        - apt/progress/gtk2.py: Moved here from apt/gtk/widgets.py
        - apt/progress/__init__.py: Move here from apt/progress.py
      * doc/source/*: Improve the documentation
        - Document more attributes and functions of apt_pkg (they are all listed)
      [ Michael Vogt ]
      * aptsources/distro.py:
        - use iso_3166.xml instead of iso_3166.tab
        - fix incorrect indent
      * debian/control:
        - add Recommends to iso-codes (for iso_3166.xml)
      * apt/package.py:
        - make sure to set the defaulttimeout back to the
          original value (in getChangelog(), LP: #314212)
          Closes: #513315
      * apt/cache.py:
        - when setting a alternative rootdir, read the
          config from it as well
      * python/configuration.cc, python/apt_pkgmodule.cc:
        - add apt_pkg.ReadConfigDir()
      * python/cache.cc, tests/getcache_mem_corruption.py:
        - test if progress objects have the right methods
          and raise error if not (thanks to Emanuele Rocca)
          closes: #497049
      * apt/package.py:
        - avoid uneeded interal references in the Package objects
      * aptsources/sourceslist.py:
        - fix bug in invalid lines detection (LP: #324614)
    python-apt (0.7.9~exp2) experimental; urgency=low
      [ Julian Andres Klode ]
      * apt/*.py:
        - Almost complete cleanup of the code
        - Remove inconsistent use of tabs and spaces (Closes: #505443)
        - Improved documentation
      * apt/debfile.py:
        - Drop get*() methods, as they are deprecated and were
          never in a stable release
        - Make DscSrcPackage working
      * apt/gtk/widgets.py:
        - Fix the code and document the signals
      * Introduce new documentation build with Sphinx
        - Contains style Guide (Closes: #481562)
        - debian/rules: Build the documentation here
        - setup.py: Remove pydoc building and add new docs.
        - debian/examples: Include examples from documentation
        - debian/python-apt.docs:
          + Change html/ to build/doc/html.
          + Add build/doc/text for the text-only documentation
      * setup.py:
        - Only create build/data when building, not all the time
        - Remove build/mo and build/data on clean -a
      * debian/control:
        - Remove the Conflicts on python2.3-apt, python2.4-apt, as
          they are only needed for oldstable (sarge)
        - Build-Depend on python-sphinx (>= 0.5)
      * aptsources/distinfo.py:
        - Allow @ in mirror urls (Closes: #478171) (LP: #223097)
      * Merge Ben Finney's whitespace changes (Closes: #481563)
      * Merge Ben Finney's do not use has_key() (Closes: #481878)
      * Do not use deprecated form of raise statement (Closes: #494259)
      * Add support for PkgRecords.SHA256Hash (Closes: #456113)
      [ Michael Vogt ]
      * apt/package.py:
        - fix bug in candidateInstalledSize property
      * aptsources/distinfo.py:
        - fix too restrictive mirror url check
      * aptsources/distro.py:
        - only add nearest_server and server to the mirrors if
          they are defined
    python-apt (0.7.9~exp1) experimental; urgency=low
      * Merged python-apt consolidation branch by Sebastian
        Heinlein (many thanks)
      * apt/cache.py:
        - new method "isVirtualPackage()"
        - new method "getProvidingPackages()"
        - new method "getRequiredDownload()"
        - new method "additionalRequiredSpace()"
      * apt/debfile.py:
        - move a lot of the gdebi code into this file, this
          provides interfaces for querrying and installing
          .deb files and .dsc files
      * apt/package.py:
        - better description parsing
        - new method "installedFiles()"
        - new method "getChangelog()"
      * apt/gtk/widgets.py:
        - new gobject GOpProgress
        - new gobject GFetchProgress
        - new gobject GInstallProgress
        - new gobject GDpkgInstallProgress
        - new widget GtkAptProgress
      * doc/examples/gui-inst.py:
        - updated to use the new widgets
      * debian/control:
        - add suggests for python-gtk2 and python-vte
      * setup.py:
        - build html/ help of the apt and aptsources modules
          into /usr/share/doc/python-apt/html
      * apt/__init__.py:
        - remove the future warning
    python-apt (0.7.8) unstable; urgency=low
      [ Michael Vogt ]
      * python/cache.cc:
        - fix crash if Ver.PriorityType() returns NULL
        - fix GetCandidateVer() reporting incorrect versions after
          SetCandidateVer() was used. Thanks to Julian Andres Klode for
          the test-case (LP: #237372)
      * python/apt_instmodule.cc:
        - do not change working dir in debExtractArchive() (LP: #184093)
      * apt/cache.py:
        - support "in" in apt.Cache() (LP: #251587)
      * apt/package.py:
        - do not return None in sourcePackageName (LP: #123062)
      * python/progress.cc:
        - when pulse() does not return a boolean assume "true"
          (thanks to Martin Pitt for telling me about the problem)
      * python/apt_pkgmodule.cc:
        - add "SelState{Unknown,Install,Hold,DeInstall,Purge}" constants
      * aptsources/__init__.py, aptsources/distinfo.py:
        - run apt_pkg.init() when aptsources gets imported and not
          the distinfo function
        - fix detection of cdrom sources and add test for it
      * python/metaindex.cc
        - fix crash when incorrect attribute is given
      * data/templates/Ubuntu.info.in:
        - updated
      * aptsources/distro.py:
        - add parameter to get_distro() to make unit testing easier
      * tests/test_aptsources_ports.py:
        - add test for arch specific handling (when sub arch is on
          a different mirror than "main" arches)
      [ Julian Andres Klode ]
      * python/acquire.cc (GetPkgAcqFile): Support DestDir and DestFilename.
    python-apt ( unstable; urgency=medium
      * Non-maintainer upload.
      * data/templates/Debian.info.in: Set the BaseURI to security.debian.org for
        lenny/updates, etch/updates and sarge/updates. (Closes: #503237)
    python-apt ( unstable; urgency=low
      * data/templates/Debian.info.in:
        - add 'lenny' template info (closes: #476364)
      * aptsources/distinfo.py:
        - fix template matching for arch specific code (LP: #244093)
    python-apt (0.7.7) unstable; urgency=low
      [ Emanuele Rocca ]
      * data/templates/Debian.info.in:
        - s/MatchUri/MatchURI/. Thanks, Gustavo Noronha Silva (closes: #487673)
      * python/cache.cc:
        - Throw an exception rather than segfaulting when GetCache() is called
          before InitSystem() (closes: #369147)
      * doc/examples/config.py:
        - Fix config.py --help (closes: #257007)
      [ Michael Vogt ]
      * python/apt_pkgmodule.cc:
        - fix bug in hashsum calculation when the original string
          contains \0 charackters (thanks to Celso Providelo and
          Ryan Hass for the test-case) LP: #243630
      * tests/test_hashsums.py:
        - add tests for the hashsum code
      * apt/package.py:
        - add "isAutoRemovable()" method
      * python/pkgsrcrecords.cc:
        - add "Record" attribute to the PkgSrcRecord to access the
          full source record
      * debian/rules:
        - remove the arch-build target, we have bzr-builddeb now
    python-apt (0.7.6) unstable; urgency=low
      * apt/cache.py:
        - add "memonly" option to apt.Cache() to force python-apt to
          not touch the pkgcache.bin file (this works around a possible
          race condition in the pkgcache.bin handling)
      * data/templates/Ubuntu.info.in:
        - added ubuntu 'intrepid'
      * debian/README.source:
        - added (basic) documentation how to build python-apt
      * aptsources/distinfo.py:
        - support arch specific BaseURI, MatchURI and MirrosFile fields
          in the distinfo template
      * debian/control:
        - move bzr branch to bzr.debian.org and update Vcs-Bzr
    python-apt (0.7.5) unstable; urgency=low
      * use the new ListUpdate() code
      * add example in doc/examples/update.py
      * python/pkgrecords.cc:
        - export the Homepage field
      * python/tar.cc:
        - fix .lzma extraction (thanks to bigjools)
      * python/sourcelist.cc:
        - support GetIndexes() GetAll argument to implement
          something like --print-uris
      * python/apt_pkgmodule.cc:
        - add InstState{Ok,ReInstReq,Hold,HoldReInstReq} constants
      * apt/cache.py:
        - add reqReinstallPkgs property that lists all packages in
          ReInstReq or HoldReInstReq
    python-apt (0.7.4) unstable; urgency=low
      * apt/debfile.py:
        - added wrapper around apt_inst.debExtract()
        - support dictionary like access
      * apt/package.py:
        - fix apt.package.Dependency.relation initialization
      * python/apt_instmodule.cc:
        - added arCheckMember()
        - fix typo
      * aptsources/distro.py:
        - throw NoDistroTemplateException if not distribution template
          can be found
      * python/string.cc:
        - fix overflow in SizeToStr()
      * python/metaindex.cc:
        - added support for the metaIndex objects
      * python/sourceslist.cc:
        - support new "List" attribute that returns the list of
          metaIndex source entries
      * python/depcache.cc:
        - be more threading friendly
      * python/tag.cc
        - support "None" as default in
          ParseSection(control).get(field, default), LP: #44470
      * python/progress.cc:
        - fix refcount problem in OpProgress
        - fix refcount problem in FetchProgress
        - fix refcount problem in CdromProgress
      * apt/README.apt:
        - fix typo (thanks to Thomas Schoepf, closes: #387787)
      * po/fr.po:
        - merge update, thanks to Christian Perrier (closes:  #435918)
      * data/templates/:
        - update templates
    python-apt ( unstable; urgency=low
      * NMU
      * Fix version to not use CPU and OS since it's not available on APT
        anymore (closes: #435653, #435674)
    python-apt (0.7.3) unstable; urgency=low
      * apt/package.py:
        - added Record class that can be accessed like a dictionary
          and return it in candidateRecord and installedRecord
          (thanks to Alexander Sack for discussing this with me)
      * doc/examples/records.py:
        - added example how to use the new Records class
      * apt/cache.py:
        - throw FetchCancelleException, FetchFailedException,
          LockFailedException exceptions when something goes wrong
      * aptsources/distro.py:
        - generalized some code, bringing it into the Distribution
          class, and wrote some missing methods for the DebianDistribution
          one (thanks to Gustavo Noronha Silva)
      * debian/control:
        - updated for python-distutils-extra (>= 1.9.0)
      * debian/python-apt.install:
        - fix i18n files
      * python/indexfile.cc:
        - increase str buffer in PackageIndexFileRepr
    python-apt (0.7.2) unstable; urgency=low
      * build against the new apt
      * support for new "aptsources" pythn module
        (thanks to Sebastian Heinlein)
      * merged support for translated package descriptions
      * merged support for automatic removal of unused dependencies
    python-apt (0.7.1) experimental; urgency=low
      * merged http://glatzor.de/bzr/python-apt/sebi:
        - this means that the new aptsources modules is available
    python-apt (0.7.0) experimental; urgency=low
      * support translated pacakge descriptions
      * support automatic dependency information
    python-apt (0.6.22) unstable; urgency=low
      * python/apt_pkgmodule.cc:
        - added pkgCache::State::PkgCurrentState enums
      * python/pkgrecords.cc:
        - added SourceVer
    python-apt (0.6.21) unstable; urgency=low
      * apt/cdrom.py:
        - better cdrom handling support
      * apt/package.py:
        - added candidateDependencies, installedDependencies
        - SizeToString supports PyLong too
        - support pkg.architecture
        - support candidateRecord, installedRecord
      * apt/cache.py:
        - fix rootdir
      * apt/cdrom.py:
        - fix bug in cdrom mountpoint handling
    python-apt (0.6.20) unstable; urgency=low
      * python/generic.h:
        - fix incorrect use of PyMem_DEL(), use pyObject_DEL()
          instead. This fixes a nasty segfault with python2.5
          (lp: 63226)
      * python/pkgrecords.cc:
        - export SHA1Hash() as well
      * debian/rules: Remove dh_python call.
      * apt/progress.cc:
        - protect against not-parsable strings send from dpkg (lp: 68553)
      * python/pkgmanager.cc:
        - fix typo (closes: #382853)
      * debian/control:
        - tightend dependency (closes: #383478)
      * apt/progress.py:
        - use os._exit() in the child (lp: #53298)
        - use select() when checking for statusfd (lp: #53282)
      * acknoledge NMU (closes: #378048, #373512)
      * python/apt_pkgmodule.cc:
        - fix missing docstring (closes: #368907),
          Thanks to Josh Triplett
      * make it build against python2.5
      * python/progress.cc:
        - fix memleak (lp: #43096)
    python-apt (0.6.19) unstable; urgency=low
      [ Michael Vogt ]
      * doc/examples/print_uris.py:
        - added a example to show how the indexfile.ArchiveURI() can be used
          with binary packages
      * python/apt_pkgmodule.cc:
        - export sha256 generation
      [ Otavio Salvador ]
      * apt/cache.py:
        - fix commit doc string to also cite the open related callbacks
        - allow change of rootdir for APT database loading
        - add dh_installexamples in package building Closes: #376014
      * python/depcache.cc:
        - "IsGarbage()" method added (to support auto-mark)
    python-apt (0.6.18-0.2) unstable; urgency=low
      * Non-maintainer upload.
      * Add ${shlibs:Depends} and ${misc:Depends} (Closes: #377615).
    python-apt (0.6.18-0.1) unstable; urgency=high
      * Non-maintainer upload.
      * Call dh_pycentral and dh_python before dh_installdeb, to make sure
        the dh_pycentral snippets are put into the maintainer scripts; patch from
        Sam Morris. (Closes: #376416)
    python-apt (0.6.18) unstable; urgency=low
      * Non-maintainer upload.
      * Update for the new Python policy. Closes: #373512
    python-apt (0.6.17) unstable; urgency=low
      * apt/progress.py:
        - initialize FetchProgress.eta with the correct type
        - strip the staus str before passing it to InstallProgress.statusChanged()
        - added InstallProgress.statusChange(pkg, percent, status)
        - make DumbInstallProgress a new-style class
          (thanks to kamion for the suggestions)
        - fix various pychecker warnings
      * apt/cache.py:
        - return useful values on Cache.update()
        - Release locks on failure (thanks to Colin Watson)
        - fix various pychecker warnings
      * apt/package.py:
        - fix various pychecker warnings
        - check if looupRecords succeeded
        - fix bug in the return statement of _downloadable()
      * python/srcrecords.cc:
        - add "Restart" method
        - don't run auto "Restart" before performing a Lookup
        - fix the initalization (no need to pass a PkgCacheType to the records)
        - added "Index" attribute
      * python/indexfile.cc:
        - added ArchiveURI() method
    python-apt ( unstable; urgency=low
      * Non-maintainer upload.
      * debian/control:
        + Replaces: python-apt (<< 0.6.11), instead of Conflicts which is not
          correct here. (closes: #308586).
    python-apt ( unstable; urgency=low
      * memleak fixed when pkgCache objects are deallocated
      * typos fixed (thanks to Gustavo Franco)
      * pkgRecords.Record added to get raw record data
      * python/cache.cc: "key" in pkgCache::VerIterator.DependsList[key] is
                         no longer locale specific but always english
    python-apt (0.6.16) unstable; urgency=low
      * added GetPkgAcqFile to queue individual file downloads with the
        system (dosn't make use of the improved pkgAcqFile yet)
      * added SourceList.GetIndexes()
      * rewrote apt.cache.update() to use the improved aquire interface
      * apt/ API change: apt.Package.candidateOrigin returns a list of origins
        now instead of a single one
      * apt_pkg.Cdrom.Add() returns a boolean now, CdromProgress has totalSteps
      * added support for pkgIndexFile and added SourcesList.FindIndex()
      * added "trusted" to the Origin class
    python-apt (0.6.15) unstable; urgency=low
      * rewrote cache.Commit() and make it raise proper Exception if stuff
        goes wrong
      * fix a invalid return from cache.commit(), fail if a download failed
      * apt.Package.candidateOrigin returns a class now
      * added pkgAcquire, pkgPackageManager and a example (acquire.py)
      * tightend build-dependencies for new apt and the c++ transition
    python-apt (0.6.14) unstable; urgency=low
      * doc/examples/build-deps.py:
        - fixed/improved (thanks to Martin Michlmayr, closes: #321507)
      * apt_pkg.Cache.Update() does no longer reopen the cache
        (this is the job of the caller now)
      * python/srcrecords.cc:
        - support for "srcrecords.Files" added
        - always run "Restart" before performing a Lookup
      * export locking via: GetLock(),PkgSystem{Lock,UnLock}
      * apt/cache.py:
        - added  __iter__ to make "for pkg in apt.Cache:" stuff possible
    python-apt (0.6.13) unstable; urgency=low
      * support for depcache added
      * support for the PkgProblemResolver added
      * support for PkgSrcRecord.BuildDepends added
      * support for cdrom handling (add, ident) added
      * support for progress reporting from operations added
        (e.g. OpProgress, FetchProgress, InstallProgress, CdromProgress)
      * added tests/ directory with various tests for the code
      * native apt/ python directory added that contains
        a more pythonic interface to apt_pkg
      * made the apt/ python code PEP08 conform
      * python exceptions return the apt error message now
        (thanks to Chris Halls for the patch)
    python-apt ( unstable; urgency=low
       * rebuild against the latest apt (c++ transition)
    python-apt ( unstable; urgency=low
       * rebuild against the latest apt
    python-apt (0.6.12ubuntu1) breezy; urgency=low
      * Greek0@gmx.net--2005-main/python-apt--debian--0.6:
        - python2.{3,4}-apt conflicts with python-apt (<< 0.6.11)
          (closes: #308586)
          (closes ubuntu: #11380)
    python-apt (0.6.12) breezy; urgency=low
      * added a tests/ directory
      * added tests/pkgsrcrecords.py that will check if the pkgsrcrecords
        interface does not segfault
      * new native python "apt" interface that hides the details of apt_pkg
    python-apt (0.6.11) experimental; urgency=low
      * fixed some reference count problems in the depcache and
        pkgsrcrecords code
      * DepCache.Init() is never called implicit now
      * merged with python-apt tree from Greek0@gmx.net--2005-main
    python-apt (0.5.36ubuntu2) hoary; urgency=low
      * return "None" in GetCandidateVer() if no Candidate is found
    python-apt (0.5.36ubuntu1) hoary; urgency=low
      * DepCache.ReadPinFile() added
      * Fixed a bug in DepCache.Upgrade()
    python-apt (0.5.36) hoary; urgency=low
      * Fix build-depends, somehow lost in merge
    python-apt (0.5.35) hoary; urgency=low
      * Target hoary this time
    python-apt (0.5.34) unstable; urgency=low
      * Restore Ubuntu changes
        - Build python 2.4 as default, add python2.3-apt
        - Typo fix (Ubuntu #4677)
    python-apt (0.5.33) unstable; urgency=low
      * Merge michael.vogt@ubuntu.com--2005/python-apt--pkgDepCache--0
        - Basic depcache API (Ubuntu #6889)
    python-apt (0.5.32) unstable; urgency=low
      * Update to work with apt 0.5.32 (bzip2 deb support)
    python-apt (0.5.10) unstable; urgency=low
      * Recompile with apt 0.5
    python-apt (0.5.9) unstable; urgency=low
      * Fix broken object initialization in sourcelist.cc and srcrecords.cc
        (Closes: #215792)
    python-apt (0.5.8) unstable; urgency=low
      * Adjust build-depends to build with python2.3.  No other changes.
      * This seems to break the new source package support, probably because
        the new source package support is buggy.
    python-apt ( unstable; urgency=low
      * Add myself to Uploaders so that bugs don't get tagged as NMU-fixed anymore
      * Initial support for working with source packages (Closes: #199716)
    python-apt ( unstable; urgency=low
      * DepIterator::GlobOr increments the iterator; don't increment it again.
        This caused every other dependency to be skipped (Closes: #195805)
      * Avoid a null pointer dereference when calling keys() on an empty
        configuration (Closes: #149380)
    python-apt (0.5.5) unstable; urgency=low
      * Rebuild with apt 0.5.5
    python-apt ( unstable; urgency=low
      * Parse /var/lib/dpkg/status in examples/tagfile.py, so that it works
        out of the box (Closes: #175340)
      * Rebuild with apt (libapt-pkg-libc6.3-5-3.3)
    python-apt ( unstable; urgency=low
      * Fix for memory leak with TmpGetCache.
        Closes: #151489
      * Include additional examples from Moshe Zadka <m@moshez.org>
        Closes: #150091, #152048
      * Rebuild for python2.2, which is now the default version
        Closes: #158460
      * No CVS directories in source tarball
        Closes: #157773
    python-apt ( unstable; urgency=low
      * #include <new> in python/generic.h so that we can build on ia64, which
        uses g++-2.96 (Closes: #137467)
    python-apt ( unstable; urgency=high
      * Fix g++-3.0 compilation issues (Closes: #134020)
    python-apt ( unstable; urgency=low
      * Add apt-utils to build-depends, since libapt-pkg-dev doesn't pull it
        in.  This should allow python-apt to be autobuilt more readily.
    python-apt (0.5.4) unstable; urgency=low
      * Initial release.
      * Initial packaging by Jason Gunthorpe, et al.
This project is licensed under the GNU General Public License v2.0. Learn more