Report forwarded
to debian-bugs-dist@lists.debian.org, alkmim@ic.unicamp.br, APT Development Team <deity@lists.debian.org>: Bug#722880; Package apt.
(Sat, 14 Sep 2013 06:21:06 GMT) (full text, mbox, link).
Acknowledgement sent
to Gustavo Prado Alkmim <alkmim@ic.unicamp.br>:
New Bug report received and forwarded. Copy sent to alkmim@ic.unicamp.br, APT Development Team <deity@lists.debian.org>.
(Sat, 14 Sep 2013 06:21:06 GMT) (full text, mbox, link).
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: apt: Apt fails to solve some dependencies in a multiarch scenario.
Date: Sat, 14 Sep 2013 03:19:39 -0300
Package: apt
Version: 0.9.9.4
Severity: important
Dear Maintainer,
I'm working in a multiarch scenario where amd64 is the architecture of my
machine and armhf is a foreign architecture. I found two cases where
apt fails to solve the dependencies of packages even where a solution exist.
First case: I was trying to crossbuild a source package A that build-depends
package B:armhf where the build architecture is amd64 and the host
architecture is armhf. Package B is multiarch: foreign. Apt install package
B:armhf instead of B:amd64 even B being a multiarch: foreign package. IMHO, apt
should install B:amd64 to solve the build-dependencies instead of B:armhf.
Second case: I was trying to crossbuild a source package A that build-depends
package B:any that depends package C:all where the build architecture is amd64
and the host architecture is armhf. Package B is multiarch: same and Package C
is multiarch: foreign. Apt fails to solve the dependencies because it tries to
install package C:armhf instead of Package C:all which is a multiarch: foreign
package. IMHO, apt should install Package C:all without returning error.
I'm not usually with reporting bugs. Please, be nice :-) .
Thanks,
Gustavo Alkmim
-- Package-specific info:
-- (no /etc/apt/preferences present) --
-- (/etc/apt/sources.list present, but not submitted) --
-- System Information:
Debian Release: jessie/sid
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages apt depends on:
ii debian-archive-keyring 2012.4
ii gnupg 1.4.14-1
ii libapt-pkg4.12 0.9.9.4
ii libc6 2.17-7
ii libgcc1 1:4.8.1-2
ii libstdc++6 4.8.1-2
apt recommends no packages.
Versions of packages apt suggests:
pn apt-doc <none>
ii aptitude 0.6.8.2-1
ii dpkg-dev 1.16.10
ii python-apt 0.8.9
ii synaptic 0.80.2
ii xz-utils 5.1.1alpha+20120614-2
-- no debconf information
Information forwarded
to debian-bugs-dist@lists.debian.org, APT Development Team <deity@lists.debian.org>: Bug#722880; Package apt.
(Thu, 26 Sep 2013 15:36:04 GMT) (full text, mbox, link).
Acknowledgement sent
to David Kalnischkies <kalnischkies+debian@gmail.com>:
Extra info received and forwarded to list. Copy sent to APT Development Team <deity@lists.debian.org>.
(Thu, 26 Sep 2013 15:36:04 GMT) (full text, mbox, link).
Hi Gustavo,
I have attached a small testcase which setups up an environment as you
seem to describe it (runable if you drop it into apt/test/integration).
"Unfortunately" the script has the expected output, so I suspect
I have misunderstood you, which, given that many terms in MultiArch
are overloaded isn't exactly hard, so don't worry, your bugreport is fine. :)
I will still comment on the two cases, even if I am wrong though:
On Sat, Sep 14, 2013 at 8:19 AM, Gustavo Prado Alkmim
<alkmim@ic.unicamp.br> wrote:
> First case: I was trying to crossbuild a source package A that build-depends
> package B:armhf where the build architecture is amd64 and the host
> architecture is armhf. Package B is multiarch: foreign. Apt install package
> B:armhf instead of B:amd64 even B being a multiarch: foreign package. IMHO, apt
> should install B:amd64 to solve the build-dependencies instead of B:armhf.
The explicit mentioning of an architecture is only for special cases and
in those special cases they should overrule the 'normal' behavior.
Why are you build-depending explicitly on a B:armhf if any B would do otherwise?
> Second case: I was trying to crossbuild a source package A that build-depends
> package B:any that depends package C:all where the build architecture is amd64
> and the host architecture is armhf. Package B is multiarch: same and Package C
> is multiarch: foreign. Apt fails to solve the dependencies because it tries to
> install package C:armhf instead of Package C:all which is a multiarch: foreign
> package. IMHO, apt should install Package C:all without returning error.
As the script shows, I can't reproduce this.
Note that arch:all packages are currently interpreted as being arch:any
(which are only available for your native architecture) by design.
It tends to confuse people, but was needed for transition reasons.
(There are discussions ongoing to resolve a few issues with that though.)
Best regards
David Kalnischkies
Information forwarded
to debian-bugs-dist@lists.debian.org, APT Development Team <deity@lists.debian.org>: Bug#722880; Package apt.
(Sat, 30 Jan 2016 00:48:04 GMT) (full text, mbox, link).
Acknowledgement sent
to Michal Suchanek <hramrach@gmail.com>:
Extra info received and forwarded to list. Copy sent to APT Development Team <deity@lists.debian.org>.
(Sat, 30 Jan 2016 00:48:04 GMT) (full text, mbox, link).
To: Debian Bug Tracking System <722880@bugs.debian.org>
Subject: /usr/bin/apt-get: Re: apt: Apt fails to solve some dependencies in a
multiarch scenario.
Date: Sat, 30 Jan 2016 01:15:27 +0100
Package: apt
Version: 1.0.9.8.2
Followup-For: Bug #722880
Hello,
I still cannot install arch:i386 package that depends on arch:all
package because apt wrongly tries to search for the arch:all package as
arch:i386.
# apt-get -m -d install libgtksourceview2.0-0:i386
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:
libgtksourceview2.0-0:i386 : Depends: libgtksourceview2.0-common:i386 (>= 2.10) but it is not installable
Depends: libgtksourceview2.0-common:i386 (< 2.11) but it is not installable
E: Unable to correct problems, you have held broken packages.
Package: libgtksourceview2.0-common
Status: install ok installed
Priority: optional
Section: libs
Installed-Size: 3079
Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
Architecture: all
Source: gtksourceview2
Version: 2.10.5-2
Description: common files for the GTK+ syntax highlighting widget
GtkSourceView is a text widget that extends the standard GTK+ 2.x text widget
GtkTextView. It improves GtkTextView by implementing syntax highlighting and
other features typical of a source editor.
.
This package contains the language specifications files for Ada, C, C++, C#,
CSS, ".desktop", ".diff" (patch), Fortran 95, GtkRC, Haskell, HTML, IDL,
".ini", Java, JavaScript, LaTeX, Lua, MSIL, Nemerle, Pascal, Perl, PHP, ".po"
(gettext), Python, R, Ruby, sh, SQL, Tcl, Texinfo, VB.NET, Verilog, VHDL and
XML.
Homepage: http://projects.gnome.org/gtksourceview/
-- System Information:
Debian Release: 8.3
APT prefers stable
APT policy: (901, 'stable'), (512, 'testing'), (510, 'unstable'), (505, 'experimental'), (500, 'oldstable')
Architecture: armhf (armv7l)
Foreign Architectures: i386
Kernel: Linux 4.5.0-rc1-00069-g44cb9f7 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)
Versions of packages apt depends on:
ii debian-archive-keyring 2014.3
ii gnupg 1.4.18-7
ii libapt-pkg4.12 1.0.9.8.2
ii libc6 2.19-18+deb8u2
ii libgcc1 1:4.9.2-10
ii libstdc++6 4.9.2-10
apt recommends no packages.
Versions of packages apt suggests:
pn apt-doc <none>
ii aptitude 0.6.11-1+b1
pn dpkg-dev <none>
ii python-apt 0.9.3.12
-- no debconf information
Information forwarded
to debian-bugs-dist@lists.debian.org, APT Development Team <deity@lists.debian.org>: Bug#722880; Package apt.
(Sat, 30 Jan 2016 09:33:21 GMT) (full text, mbox, link).
Acknowledgement sent
to Stepan Golosunov <stepan@golosunov.pp.ru>:
Extra info received and forwarded to list. Copy sent to APT Development Team <deity@lists.debian.org>.
(Sat, 30 Jan 2016 09:33:21 GMT) (full text, mbox, link).
To: Michal Suchanek <hramrach@gmail.com>, 722880@bugs.debian.org
Subject: Re: Bug#722880: /usr/bin/apt-get: Re: apt: Apt fails to solve some
dependencies in a multiarch scenario.
Date: Sat, 30 Jan 2016 13:22:26 +0400
30.01.2016 в 01:15:27 +0100 Michal Suchanek написал:
> I still cannot install arch:i386 package that depends on arch:all
> package because apt wrongly tries to search for the arch:all package as
> arch:i386.
>
> # apt-get -m -d install libgtksourceview2.0-0:i386
> 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:
> libgtksourceview2.0-0:i386 : Depends: libgtksourceview2.0-common:i386 (>= 2.10) but it is not installable
> Depends: libgtksourceview2.0-common:i386 (< 2.11) but it is not installable
> E: Unable to correct problems, you have held broken packages.
That's exactly the expected situation given that
libgtksourceview2.0-common package forbids installation of
foreign-arch reverse dependencies by not providing a
"Multi-Arch: foreign" header.
Lack of that header is probably a bug in libgtksourceview2.0-common.
> Architecture: armhf (armv7l)
> Foreign Architectures: i386
Information forwarded
to debian-bugs-dist@lists.debian.org, APT Development Team <deity@lists.debian.org>: Bug#722880; Package apt.
(Sat, 30 Jan 2016 21:54:18 GMT) (full text, mbox, link).
Acknowledgement sent
to Michal Suchanek <hramrach@gmail.com>:
Extra info received and forwarded to list. Copy sent to APT Development Team <deity@lists.debian.org>.
(Sat, 30 Jan 2016 21:54:18 GMT) (full text, mbox, link).
Subject: Re: Bug#722880: /usr/bin/apt-get: Re: apt: Apt fails to solve some
dependencies in a multiarch scenario.
Date: Sat, 30 Jan 2016 22:50:52 +0100
On 30 January 2016 at 10:22, Stepan Golosunov <stepan@golosunov.pp.ru> wrote:
> 30.01.2016 в 01:15:27 +0100 Michal Suchanek написал:
>> I still cannot install arch:i386 package that depends on arch:all
>> package because apt wrongly tries to search for the arch:all package as
>> arch:i386.
>>
>> # apt-get -m -d install libgtksourceview2.0-0:i386
>> 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:
>> libgtksourceview2.0-0:i386 : Depends: libgtksourceview2.0-common:i386 (>= 2.10) but it is not installable
>> Depends: libgtksourceview2.0-common:i386 (< 2.11) but it is not installable
>> E: Unable to correct problems, you have held broken packages.
>
> That's exactly the expected situation given that
> libgtksourceview2.0-common package forbids installation of
> foreign-arch reverse dependencies by not providing a
> "Multi-Arch: foreign" header.
>
> Lack of that header is probably a bug in libgtksourceview2.0-common.
>
Lack of multiarch headers is probably a bug in libgtksourceview2.0 all
right. That would prevent installing the library for two archs. I
install only Arch:i386 and Arch:all package so there should be nothing
preventing the installation. Arch:all is still Arch:all.
Thanks
Michal
Information forwarded
to debian-bugs-dist@lists.debian.org, APT Development Team <deity@lists.debian.org>: Bug#722880; Package apt.
(Sun, 31 Jan 2016 07:42:06 GMT) (full text, mbox, link).
Acknowledgement sent
to Stepan Golosunov <stepan@golosunov.pp.ru>:
Extra info received and forwarded to list. Copy sent to APT Development Team <deity@lists.debian.org>.
(Sun, 31 Jan 2016 07:42:06 GMT) (full text, mbox, link).
Subject: Re: Bug#722880: /usr/bin/apt-get: Re: apt: Apt fails to solve some
dependencies in a multiarch scenario.
Date: Sun, 31 Jan 2016 11:21:27 +0400
30.01.2016 в 22:50:52 +0100 Michal Suchanek написал:
> On 30 January 2016 at 10:22, Stepan Golosunov <stepan@golosunov.pp.ru> wrote:
> > 30.01.2016 в 01:15:27 +0100 Michal Suchanek написал:
> >> I still cannot install arch:i386 package that depends on arch:all
> >> package because apt wrongly tries to search for the arch:all package as
> >> arch:i386.
> >>
> >> # apt-get -m -d install libgtksourceview2.0-0:i386
> >> 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:
> >> libgtksourceview2.0-0:i386 : Depends: libgtksourceview2.0-common:i386 (>= 2.10) but it is not installable
> >> Depends: libgtksourceview2.0-common:i386 (< 2.11) but it is not installable
> >> E: Unable to correct problems, you have held broken packages.
> >
> > That's exactly the expected situation given that
> > libgtksourceview2.0-common package forbids installation of
> > foreign-arch reverse dependencies by not providing a
> > "Multi-Arch: foreign" header.
> >
> > Lack of that header is probably a bug in libgtksourceview2.0-common.
>
> Lack of multiarch headers is probably a bug in libgtksourceview2.0 all
> right. That would prevent installing the library for two archs. I
> install only Arch:i386 and Arch:all package so there should be nothing
> preventing the installation. Arch:all is still Arch:all.
Yes, lack of Multi-Arch header in libgtksourceview2.0 does prevent
installation of the library for two archs. But I am talking about lack
of Multi-Arch header in libgtksourceview2.0-common, not in
libgtksourceview2.0. And that one forbids installation of foreign
reverse dependencies of libgtksourceview2.0-common. And
libgtksourceview2.0-0:i386 happens to be such a foreign reverse
dependency on an armhf system.
And no, Arch:all is Arch:armhf on an armhf system. And dpkg does not
implement any mechanism to change that for one package.
Information forwarded
to debian-bugs-dist@lists.debian.org, APT Development Team <deity@lists.debian.org>: Bug#722880; Package apt.
(Sun, 31 Jan 2016 08:21:04 GMT) (full text, mbox, link).
Acknowledgement sent
to Johannes Schauer <josch@debian.org>:
Extra info received and forwarded to list. Copy sent to APT Development Team <deity@lists.debian.org>.
(Sun, 31 Jan 2016 08:21:05 GMT) (full text, mbox, link).
Hi,
Quoting Stepan Golosunov (2016-01-31 08:21:27)
> And no, Arch:all is Arch:armhf on an armhf system. And dpkg does not
> implement any mechanism to change that for one package.
to expand on Stepan's reply:
dpkg distinguishes between the native architecture and the set of foreign
architectures. All arch:all packages implicitly become packages of the
respective native architecture of the system. This in turn means that if a
foreign architecture package depends on an arch:all package, then that arch:all
package has to be marked as multi-arch:foreign because at this point, the
arch:all package is actually a native architecture package. You can read more
about this here:
https://wiki.ubuntu.com/MultiarchSpec#Dependencies_involving_Architecture:_all_packages
and in the cited footnote:
https://wiki.ubuntu.com/MultiarchSpec#fnref-b110b386874a9b24eaecd36fa24653a467ee27c4
So this was basically done because it would be very difficult to teach dpkg how
to do it otherwise and nobody has done the work.
If you want to know more about problems of multiarch and how it could be
improved, you can read these informative wiki pages:
https://wiki.debian.org/HelmutGrohne/MultiarchSpecChangeshttps://wiki.debian.org/Multiarch/InterpreterProposal
You might want to reassign this bug to libgtksourceview2.0-common to ask its
maintainers whether marking that package as Multi-Arch:foreign would make sense
or not.
Thanks!
cheers, josch
Debbugs is free software and licensed under the terms of the GNU
Public License version 2. The current version can be obtained
from https://bugs.debian.org/debbugs-source/.