On Mon, Feb 02, 2015 at 05:32:19PM +0000, Dimitri John Ledkov wrote: > huh? I don't see a trivial one-line fix here, dropping M-A:foreign > from devtools will revoke cross-compilation of packages of all -dev > packages that depend on icu-dev, as well as a tonne of things that are > cross-compiled using multiarch on daily basis.
Funny, cross building libxml2 only works after dropping M-A:foreign, so your claim clearly is wrong. The reverse holds: Dropping M-A:foreign makes some reverse depends of libicu-dev cross-buildable! Also note that icu itself is not cross-buildable. I shall send a patch for this issue. Jokes aside, I do recognize that dropping M-A:foreign poses a regression and that we want to avoid this. I proposed it, because it disables functionality instead feeding wrong configuration to builds. The real solution of course involves keeping M-A:foreign on the devtools. > icu-config binary is not in the M-A:same package. That fact is not > hidden, but rather well known that one must use pkgconfig to > cross-compile things against icu. In that case, icu-devtools should simply not be containing icu-config. Furthermore, all packages using icu-config should be RC-buggy. If you agree, I shall clone bugs for the following packages (over-approximation): prelude-lml openttd 389-adminutil libfolia texlive-bin qt4-x11 libe-book xdvik-ja harfbuzz 389-dsgw gnustep-base iceweasel ncbi-blast+ dwdiff open-vm-tools chromium-browser autoconf-archive gnustep-gui libreoffice grcompiler qtwebkit libvisio yaz openjfx libcdr dee ibus-qt fis-gtm 389-admin 389-ds-base php5 webkitgtk libxml2 wine-gecko-2.24 an couchdb raptor2 0ad ucto phantomjs xerces-c python-apsw mozjs24 node-stringprep sword texlive-base icedove libmspub parrot qtwebkit-opensource-src frog > That buildlog is incomplete...... i can spin up buildd-from-hell and > fail a huge number of packages in Debian. See past efforts from Lucas. > > Could you please provide complete builldlog? Or steps that I can use > to reproduce that build you provide? It's a clean pbuilder chroot with i386 as a foreign architecture that selected icu-devtools:i386 instead of icu-devtools:amd64. If M-A:foreign were correct on icu-devtools, this wouldn't make a difference to the build. > The correct patch is to e.g. make libxml2 to use pkg-config. I agree. > One cannot have it all ways: > - dropping M-A:same on the icu-dev package breaks existing users that > cross-compile things against icu (e.g. Qt5 based apps) Can you elaborate what is broken by dropping M-A:same? Most of the time, you only need the development packages for the host architecture. At which point do you need it for multiple architectures? I know that this happens occasionally, so I'd like to learn where precisely. > - having things rely on icu-config prevents things to be cross-compilable > - dropping icu-config script will break a lot of native compilation > which is far worse at this point in the cycle. I agree that we cannot have all of the above. Still having icu-config in anything else but a M-A:no package is wrong and breaks things. If removing M-A:foreign is not an option, we should seek different solutions instead of denying the problem. > Please also see the huge amount of discussions we had on this issue in > the prior bug reports when icu-devtools package was introduced. Are you referring to #699763? Maybe I am missing something here. I see that all ways to move from here cause pain. From my perspective, the ideal outcome would be to remove icu-config, but clearly this is out of scope for jessie. The next solution I see may be out of scope for jessie as well: * Rename libicu-dev to libicu-dev-multiarch. * Introduce a new binary Arch:any M-A:no package libicu-dev that depends on libicu-dev-multiarch and takes icu-config over from icu-devtools. This has the following advantages: * All reverse dependencies of libicu-dev will keep working natively and some will become cross-buildable (e.g. libxml2). * Packages that know about pkg-config and need libicu-dev for multiple architectures (presumably a minority) can switch over to depending on libicu-dev-multiarch. So what do we do for jessie if dropping M-A:foreign is not an option? Clearly, icu-devtools is broken natively at this point and needs some fix. Helmut -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

