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

Bug#683786: apt-get cross build dependency resolution of arch:all, m-a:none packages



Hi David,

On Sat, Aug 04, 2012 at 11:36:18AM +0200, David Kalnischkies wrote:
> first of all: Thanks for the detailed report!

Thank you for your quick reply! I was stunned by the nearly 1000 open
bugs for apt so I feared I would never get a reply to this :D

> On Sat, Aug 4, 2012 at 1:03 AM, Johannes Schauer <j.schauer@email.de> wrote:
> > The following packages build-depend on a architecture:all, M-A: none
> > package. Dose3 correctly detected that they cannot satisfy the cross
> > build dependencies because they are not marked M-A: foreign. Apt decides
> 
> You mean the right thing, but for anyone else reading it:
> Meant is that the arch:all package isn't marked as M-A:foreign.
> And the "following packages" are all M-A: none packages itself with "normal"
> (aka no specific architecture or same, any, or whatever behind a colon)
> dependencies on the arch:all packages.

Exactly. Thanks for clarifying this.

> The fix is simply to add a ", false" to the end of the parameter list
> on the previously mentioned line. Bonuspoints for adding on line 3007
> to the check if the package exists also a check if the package has at
> least one version ("|| Pkg->VersionList == 0").

Then Patrick McDermott deserves those points as he told me the exact
same fix half an hour before your email :)

The downside is, that this change seems to break other dependency
resolutions. For example sed build depends on libselinux-dev which is
provided by libselinux1-dev.

Without the change you suggested, libselinux1-dev gets installed as
expected but with that change, apt-get now says:

josch@hoothoot> sudo chroot ~/debian-sid-minbase apt-get --simulate -aarmel build-dep sed
Reading package lists... Done
Building dependency tree... Done
E: Build-Depends dependency for sed cannot be satisfied because the package libselinux-dev cannot be found

Can you reproduce this behaviour?

> gzip Build-Depends-Indep: mingw-w64, so that mingw-w64:build is
> installed is fine as we don't need to cross-build arch:all packages.
> Looks for me like a bug in dose3 instead.

Yes it was indeed a bug in dose3. I discovered the apt-get behaviour I
reported here because I'm currently implementing cross compilation
dependency resolution support into dose3 as part of my GSoC project.
Dose3 was incorrectly treating the indep fields the same way as it
treated non-indep fields. This is now fixed and dose3 satisfies indep
dependencies with native packages. Thanks!

> > Maybe there is a connection to bug#666772 ?
> 
> No, and given that dpkg-maintainers haven't agreed to this plan yet,
> i guess it can be considered a "no", but Steve wanted to pursue this further.
> After all, it is not that important for wheezy, as APT and dpkg are far from
> the only places needing support for it, so it will only work out for jessie -
> if at all anyway (as other tools have no M-A support at all in wheezy).

Thanks for the info! I would also not like the proposed change to be
introduced in Debian. Having this exception only for dependency
resolution of cross build dependencies but nothing else doesnt seem to
be the right thing to do.

cheers, josch


Reply to: