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

Bug#695546: apt: can't download source package when same-name binary pkg from different-name src pkg exists



Control: severity -1 normal

On 10 December 2012 07:53, Thorsten Glaser <tg@mirbsd.de> wrote:
> root@ara3:~ # apt-get -d source konsole=4:4.8.4-2

This command is the correct form to use when there is no corresponding
binary package yet available.  From apt-get(8):
> A specific source version can be retrieved by postfixing the source
> name with an equals and then the version to fetch, similar to the
> mechanism used for the package files. This enables exact matching
> of the source package name and version, implicitly enabling the
> APT::Get::Only-Source option.

> Reading package lists... Done
> Building dependency tree
> Reading state information... Done
> Picking 'kdebase' as source package instead of 'konsole'
> E: Ignore unavailable version '4:4.8.4-2' of package 'konsole'
> E: Unable to find a source package for kdebase

This is maybe wrong according to the documentation.  There is a source
package matching that name and version available, as demonstrated by
your apt-cache showsrc output.

However, can you try this command:
$ apt-get -d source --only-source konsole=4:4.8.4-2

> 100|root@ara3:~ # apt-get -d source src:konsole=4:4.8.4-2
> Reading package lists... Done
> Building dependency tree
> Reading state information... Done
> E: Ignore unavailable version '4:4.8.4-2' of package 'src:konsole'
> E: Unable to find a source package for src:konsole
>
> I don’t know why apt insists on overriding me telling it that
> I want a *source* package. The root cause here is probably
> that the archive knows of a binary package named konsole,
> which is made from a source package named kdebase:

Note that unless you use the “--only-source” option (although implicit
with “source pkg=ver”) you have not told apt to look for a specific
source package name.  The commands “source” and “build-dep” are
documented to search for binary package names first.

I don't know where you got the idea to use the “src:” prefix, but that
is not a documented syntax.

Anyway, this should only be a temporary problem and happens in
either of two rare situations:
- a binary package moves from one source to another; and
- a source package is newer than the correspondingly available
  binary or source package.

Both of which have happened to you at the same time, though you do
have quite a mixture of repositories in your sources.list.

It has exposed what may be a real bug in apt-get's selection of source
packages when given --only-source and a version.

> I think the selection mechanism is mapping the binary→source name
> too early.

That is documented and ok for the vast majority of cases where there
is no overlap between source package names and the binary package
names supplied by another source.

To avoid the mapping you should use “--only-source”, which is implicit
when a version is specified, so indeed something is afoul here.

> I should be able to get what I want from explicitly
> specifying a version.

Yes.

> I should also be able to get what I want
> from prefixing “src:” (even without telling it a version number,
> but, as you can see, even with one *and* src: it doesn’t work).

See “--only-source”.

Regards


Reply to: