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

Bug#819830: marked as done (apt: unhelpful error message when trying to install build-dependencies for cargo in testing)



Your message dated Fri, 15 Apr 2016 11:16:43 +0200
with message-id <20160415091643.GB11507@crossbow>
and subject line Re: Bug#819830: apt: unhelpful error message when trying to install build-dependencies for cargo in testing
has caused the Debian Bug report #819830,
regarding apt: unhelpful error message when trying to install build-dependencies for cargo in testing
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
819830: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=819830
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: apt
Version: 1.2.9

Dear maintainers:

On a stretch chroot I'm unable to do this:


# apt-get build-dep cargo
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 builddeps:cargo : Depends: libcurl4-openssl-dev but it is not going to be installed
 E: Unable to correct problems, you have held broken packages.


Ok, let's try to install libcurl4-openssl-dev by hand:


# apt-get install libcurl4-openssl-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
[...]
Do you want to continue? [Y/n]


I answer "yes" and the libcurl4-openssl-dev package is now installed.

Let's try again:


# apt-get build-dep cargo
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 builddeps:cargo : Depends: libcurl4-openssl-dev but it is not going to be installed
 E: Unable to correct problems, you have held broken packages.


But it's installed! How is this possible?


Information that may be relevant: "apt-cache showsrc cargo" shows this:

Package: cargo
[...]
Build-Depends: debhelper (>= 9.20141010), dpkg-dev (>= 1.17.14), rustc (>= 1.1), curl, pkg-config, cmake, git, cargo (>= 0.7.0) <stage2>, python-dulwich <!stage2>, python-pytoml <!stage2>, ca-certificates, bash-completion, libhttp-parser-dev, libcurl4-openssl-dev, libssh2-1-dev, libgit2-dev, libssl-dev, zlib1g-dev
[...]


I believe testing is inconsistent right now, because installing
libgit2-dev by hand removes libcurl4-openssl-dev.

But even in such case, the message from apt is very misleading, as it
says libcurl4-openssl-dev may not be installed, which, alone, is not true.

It should probably say that libgit2-dev and libcurl4-openssl-dev may
not be both installed.


Thanks.

--- End Message ---
--- Begin Message ---
On Sat, Apr 02, 2016 at 10:54:23PM +0200, Santiago Vila wrote:
> # apt-get build-dep cargo
> Reading package lists... Done
> Reading package lists... Done
> Building dependency tree
> Reading state information... Done
> Some packages could not be installed. This may mean that you have
> requested an impossible situation or if you are using the unstable
> distribution that some required packages have not yet been created
> or been moved out of Incoming.
> The following information may help to resolve the situation:
> 
> The following packages have unmet dependencies:
>  builddeps:cargo : Depends: libcurl4-openssl-dev but it is not going to be installed
>  E: Unable to correct problems, you have held broken packages.
> 
> 
> But it's installed! How is this possible?

It is installed before the apt command, but after the apt command "it is
not *going to be* installed" (anymore), which is a problem as we wanted
the command to install it (or in that case keep it installed) so apt
errors out.

Held broken packages you have because the (made up) package
'builddeps:cargo' which is the one the "some packages couldn't be
installed" is referring to and has all build-dependencies as depends is
broken (= its dependencies can't be satisfied). Every package mentioned
on the commandline is held in the requested state (apt would usually
remove packages it can't fix, but that would be pointless here, so its
forbidden with a hold).

So, the summary is: "you have requested an impossible situation".

Why it is impossible is hard to figure out. Humans can waste hours
figure such things out, a program like apt isn't very good at doing it
either as it wants to find a working solution and not find the "best"
solution which doesn't work (after all, what makes a non-working
solution which [not] removes dpkg any better than any other non-working
solution?).

So what apt does is to tell the user what it hasn't managed to achieve
and in this case it is satisfying the builddeps:cargo depends on
libcurl4-openssl-dev as the only "solution" it came up with includes not
installing this package.

So, the message is as helpful as it can be in the general case if it is
carefully read and understood. Therefore closing as not a bug.

(I recognize that in this very specific case slightly different text
might be easier to understand, but that text/code has to work for all
kinds of possible problems where the situation isn't as clear cut, not
just this one – that apt displays such a detailed message at all can be
considered a feature already as other solvers just say "deps not
satisfied" and be done)


Best regards

David Kalnischkies

Attachment: signature.asc
Description: PGP signature


--- End Message ---

Reply to: