http://lists.debian.org/debian-devel-announce/2010/06/msg00005.html 8.4 All shared library development files are no longer required to be in the `-dev' package, only be available when the `-dev' package is installed. This allows the `-dev' package to be split as long as it depends on the additional packages. I haven't looked into why Policy has changed this way, but this is a heads-up that apt-cross is now completely broken and unfixable as this change allows files that used to have to be in a -dev package to now appear in an Architecture:all -common package which apt-cross will deliberately ignore in a very intransigent and obstinate way. If *any* development package *anywhere* in the dependency chain of packages you need to use with apt-cross adopts this part of Policy 3.9.0 then apt-cross will cause one of two breakages: 0: apt-cross will simply fail to install all the necessary files but succeed at resolving the dependencies and your build will break with /path/foo.h: No such file or directory. 1: apt-cross will fail to install the cross-dependencies leaving the rest of your system in a broken state. apt-get -f install might be able to help but will probably "help" by simply removing all your (broken) -cross packages and possibly a large part of your cross-building toolchain. Fixing the system to allow the cross-build to work will mean manually downloading the Arch:all package with wget and manually passing that to dpkg-cross. apt-cross cannot be fixed to work around this issue because it has to ignore Architecture:all packages in order to be able to resolve *any* dependency chains without getting into a complete mess with packages like debconf and perl. apt-cross will continue to work with Lenny and will continue to work with packages which do not make use of this change in Policy. The problem is that there is no nothing to stop a package being uploaded to Sid and migrating to Squeeze which will suddenly and permanently break your cross build environment. This is not fixable. The only result of filing a bug against apt-cross for this issue will be a bump to Severity:grave (not compliant with Policy) and the removal of apt-cross from Sid and Squeeze. This Policy change also makes it impossible to automatically calculate the details that need to go into the xcontrol file. This isn't that surprising, it isn't possible to reliably calculate the Build-Depends line for debian/control without trial and error / detailed knowledge of the package build system. apt-cross is hanging by a thread, the only reason I haven't immediately filed an RM bug is that there simply isn't a drop-in replacement and it will continue to operate UNTIL someone, somewhere, thinks Policy 3.9.0.0:8.4 is a cool idea and uploads a package which is involved in your particular dependency chain. Emdebian has lost any pretence at cross-building support for Squeeze or Sid. Emdebian Crush 2.0 is unachievable, Emdebian Crush 3.0 (or any later version) depends on finding a replacement for apt-cross which is Policy-compliant. Use Lenny for all cross-build work or all bets are off. -- Neil Williams ============= http://www.data-freedom.org/ http://www.linux.codehelp.co.uk/ http://e-mail.is-not-s.ms/
Attachment:
pgplq0AiLlz8n.pgp
Description: PGP signature