[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#863193: python-apt: Package.fullname and Package.architecture() is wrong for packages with 'all' architecture.



That explanation makes sense but IMHO at least the docstrings should inform about this behavior. This is the first time that I've ever heard about this behavior...

On Tue, May 23, 2017 at 10:33 AM Julian Andres Klode <jak@debian.org> wrote:
On Tue, May 23, 2017 at 10:11:38AM +0200, Michael Schaller wrote:
> Package: python-apt
> Version: 1.4.0~beta3
> Severity: normal
>
> Dear Maintainer,
>
> apt.package.Package's fullname property and architecture method return the wrong architecture for packages with the 'all' architecture. A good example is the 'bash-completion' package:
>
> $ dpkg -l bash-completion
> ...
> ii  bash-completion         1:2.1-4.3        all              programmable completion for the bash shell
>
>
> $ python
> ...
> >>> cache = apt.Cache()
> >>> pkg = cache['bash-completion']
> >>> pkg.fullname
> 'bash-completion:amd64'
> >>> pkg.architecture()
> 'amd64'
> >>> pkg._pkg.architecture
> 'amd64'
> >>> pkg.versions
> <VersionList: ['1:2.1-4.3']>
> >>> pkg.installed.architecture
> 'all'
> >>> pkg.candidate.architecture
> 'all'

No, that's correct. 'all' versions are native packages. That's
how multi-arch works in apt. This also handles migration of
native -> all and all -> native. If you need to see if something
really is all, you have to use the 'architecture' field of the
version, as you noticed.

--
Debian Developer - deb.li/jak | jak-linux.org - free software dev
                  |  Ubuntu Core Developer |
When replying, only quote what is necessary, and write each reply
directly below the part(s) it pertains to ('inline').  Thank you.

Reply to: