On Tue, 28 Aug 2007 23:00:49 +0000 Debian Installer <[EMAIL PROTECTED]> wrote:
Originally sent to deban-embedded, resent to devel for a wider readership with a few clarifications for this list. Note that only pre1 has been uploaded - the diversions remain, for now, and pre2 (including the below NEWS item) only exists in CVS at this time. (If there are other bugs to be fixed in pre1, what is referred to here as pre2 may be pre3 or pre4.) > > Accepted: > dpkg-cross_1.99+2.0.0pre1.dsc pre2 is now waiting for patches to be included into dpkg-dev to provide the support removed from dpkg-cross since pre1. After a few discussions on IRC last night with the dpkg developers, I'm including this notice in NEWS for pre2: ======================= This version of dpkg-cross has been extensively refactored and includes a new Perl module with a new API. The dpkg-buildpackage and dpkg-shlibdeps diversions have been removed due to increased cross-building support in dpkg-dev. The customised versions of objcopy, objdump and strip have also been removed due to the new dependency on binutils-multiarch. As dpkg-cross is merged gradually back into dpkg, parts of the old dpkg-cross will be removed from the package and simply stored in CVS. Maintaining the old versions during the current changes in the Debian::DpkgCross module is impractical and it is unlikely that the CVS versions will be usable with the released package as the old code is increasingly left behind. Functions listed as "Legacy code" in the module are likely to be removed in due course. The next stage is expected to be the migration of the cross-config.$arch files into dpkg-dev along with a method to replicate the gccross script currently used by dpkg-cross. The dpkg-cross 'core' functionality of preparing Architecture:all packages of development headers and shared objects for use in a cross build is expected to be retained outside dpkg until such time as the other components are successfully merged and a suitable method is available to implement support for cross-building within dpkg and apt. This will then result in both dpkg-cross and apt-cross being removed from Debian in preference for the integrated cross building support within dpkg and apt. The 2.x series of dpkg-cross will therefore aim to achieve its own removal. Once this happens, dpkg-dev could conflict with and replace dpkg-cross to ensure the removal of the old code. ======================= I'm not sure how long this will take, especially the apt side. dpkg-cross will almost certainly still exist in the Lenny release, albeit in a reduced state, but I can't see it persisting into the next stable after Lenny. At that rate, apt-cross will only get one stable release: Lenny. So this pre2 marks the beginning of the long goodbye, it's been over ten years (since Bo [0]) but soon it will be SLATFATF [1]. :-) I'd recommend that anyone interested in how dpkg-cross migrates into dpkg-dev should subscribe to the debian-dpkg and debian-embedded mailing lists. I anticipate that the cross support in dpkg and apt will be generalised and is likely to need input from a variety of sources to ensure that sufficient flexibility and configurability is in place. Bespoke and customised usage cases of dpkg-cross code are likely to be increasingly broken by each round of changes during the migration. It is possible that new wrappers may be needed in a small number of cases where a general solution in dpkg would not be sufficient but the main objective is that all cross-building support will be within the standard tools: dpkg and apt/aptitude. Something along the lines of: $ sudo apt-get -aarm install libfoo-dev This would, IMHO, be worth having - even if the price is a loss of some flexibility. With the existing debconf support in dpkg-cross, it could be possible to just have: $ sudo apt-get -a install libfoo-dev or it may be simple enough to use an alias set: alias apt-cross='apt-get -a' alias cache-cross='apt-cache -a' alias dpkg-cross='dpkg -a' The general direction is that dpkg and apt *should* support cross-building directly without the need for enhancements or other wrappers 'in the general case'. i.e. "dpkg-buildpackage -a" should be usable and prepare working packages without assistance from external scripts. This much has been agreed with the dpkg maintainers and once dpkg carries a working method to support cross-building it will be much easier to get cross-build support in apt. (apt support is mainly concerned with turning off the list cleanup option in apt so that multiple architectures can have package lists in the same directory. Whilst the option exists already, the implementation isn't ideal because various other parts of apt tend to assume that the list cleanup default is 'on' and rely on that to do their garbage collection. Keeping list-cleanup off for long periods does tend to lead to corrupt package lists eventually. With list-cleanup on, switching from native to cross and back to native cache queries causes two complete apt-get update runs, changing from cross to native being especially slow because all the native package lists would have been removed.) This means that packages in Debian should then be expected to cross-build successfully with the standard dpkg and apt tools (and a suitable toolchain) and this will make it easier to report cross-building bugs against any package in Debian with an expectation that the bug is likely to be fixable (by being reproducible). It should also ease other parts of cross building like being able to use standard autobuilder code and simplifying cross building in a chroot. It may even make it practical to have an emdebian port in http://experimental.debian.net/ alongside armel and kfreebsd-i386 etc. I anticipate that having cross-building supported "as standard" will significantly reduce the need for customised and 'corner case' support in dpkg-cross itself, making the whole migration easier. Workarounds (i.e. hacks) that are currently part of dpkg-cross <= 1.39 will instead need to be filed as bugs in the relevant packages. Depending on how long it takes to close #439979 (dpkg-dev: Please support removal of dpkg-cross diversions) pre2 may actually end up being the dpkg-cross 2.0.0 release for unstable. [0] http://archive.debian.org/debian-archive/dists/bo/main/binary-all/utils/ [1] http://en.wikipedia.org/wiki/So_Long,_and_Thanks_for_All_the_Fish -- Neil Williams ============= http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/
pgpdYI1bIazuE.pgp
Description: PGP signature