#770925 wanna-build patches to support foreign-arch Build-Depends

#770925#5
Date:
2014-11-25 09:18:33 UTC
From:
To:
Hi. The cross toolchains now in unstable (for instance
https://tracker.debian.org/pkg/cross-gcc-4.9-armhf) have Build-Depends
on both the host and target architecture. This was not supported by
wanna-build, and a patch series to add this support is available here:

http://anonscm.debian.org/cgit/users/dkogan-guest/wanna-build.git/

I developed and tested these by setting up a wanna-build instance as
described here:

https://wiki.debian.org/DebianWannaBuildInfrastructureOnOneServer
https://wiki.debian.org/SetupBuildServiceForWanna-build

The setup also required a patch posted earlier:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765111

I suspect this extra patch is only required because of my specific
setup, since presumably wanna-build has been working just fine in the
wild.

On my test box I see wanna-build refuse to set a cross-gcc source
package to Needs-Build unless all Build-Depends are satisfied, both
native and foreign. This is the test of basic functionality, and it
appears to work. I'll run more thorough tests if somebody has specific
requests along those lines.

#770925#12
Date:
2015-05-14 11:03:33 UTC
From:
To:
* Dima Kogan (dima@secretsauce.net) [150514 10:55]:

Thanks for the patches.  This contains two distinct set of patches,
some are code-cleanup, some are for foreign-arch build-deps.


Cleanup:

4ef0ff57c54982ea6eeb84fea1eadafdded3ee61
e19894f7c02b7fc5b65cd2d0bba980ff4b19defb
AFAIUI these should be applicable independend of the foreign-arch
things? (Otherwise the first one looks good to me but my perl is a bit
outdated, the second should if the dose documentation is correct.)



Foreign-Arch:

55f2b48a6d58dfb306a71ac4b588833d129563ca
This breaks semantics of merge-v3 with only two sets of package files.
I need to think a bit more if there are other semantic changes (and if
so if we want them or not).

f3221db8f5ec5b063d87b7ef25f45f224821fc71
First hunk, I would prefer if it would be written so it could be run
on an oldstable machine as well (see the one for vercmp two lines
below), perhaps with a reduced function set. Otherwise same comment as
above applies.



Andi

#770925#17
Date:
2015-05-14 18:16:42 UTC
From:
To:
Hi Andi. Thanks for the reply.

As you saw, there's some cleanup stuff mixed in with the actual
foreign-arch build-dep stuff. I did a rebase so that these aren't
interleaved anymore, and the cleanup can be evaluated somewhat
independently. The build-dep stuff does depend on the cleanup, however.

The new tree lives in a branch:

http://anonscm.debian.org/cgit/users/dkogan-guest/wanna-build.git/log/?h=770925_foreign_arch_bd

Same code as before, with a small, uninteresting bug fix:


I'm not sure what you mean here. If you need something changed once you
think about it more, please tell me.

On oldstable (wheezy) the dose-builddebcheck is too old to support the
foreign-arch stuff. If you want something reasonable to happen with
wheezy too, should we simply not even try to satisfy foreign-arch
build-deps there? If so, then we don't need deps_iterate. Let me know
and I'll put in the appropriate logic

#770925#34
Date:
2015-08-18 10:27:30 UTC
From:
To:
Hi,

Here is a status update on this issue, as I a currently working on it.
This has been merged a few months ago.
This doesn't work, as when passing Packages file from foreign
architectures, this also passes arch:all packages which might be at a
different version than on the native architecture. This would cause
some packages without cross-build-dependencies to be wrongly marked
as needs-build or bd-uninstallable.

I am currently working on an improve triggered code which passes the other
Packages file explicitely. That will also clean up a bit the arch:all
handling code.
This patch looks fine on principle, but the calls to dpkg triggers it to
determine its native architecture, which looks a bit scaring, given we
run it on an amd64 machine, not a buildd. This leads to this error messsages:
| sh: 1: gcc: not found
| wanna-build: warning: couldn't determine gcc system type, falling back to default (native compilation)

This has been merged a few months ago.

This has been merged a few months ago.


I am currently working on this, I really hope to get something working
by the end of the week.

Aurelien