http://buildd.emdebian.org/svn/browser/current/host/trunk/apt-cross/branches/apt-nc-cross I've completed the first part of the migration of apt-cross to NorthernCross - namely: 1. Migrating from ~/.dpkg-cross to ~/.apt-cross to disentangle the two configurations. (Allows users to remove ~/.apt-cross without breaking dpkg-cross - apt-cross will recreate the required data when necessary.) (Needs a note in NEWS.Debian closer to release.) 2. Removing all apt-conf* files and controlling all Apt options internally via a much modified NorthernCross::Config 3. Handling the apt-cache internally using a new NorthernCross::Cache module built from modified NorthernCross/Cache.pm code. Removes the need to fork `apt-cache` and removes large numbers of pattern matches on apt-cache output. 4. Adding a --force option to force the downloading and rebuilding of cross packages even if the same version is installed. (This is helpful when you want to inspect the original _arm.deb for other purposes but happen to have the cross version already installed). Currently, the cross package cannot be forcibly reinstalled by apt-cross, just manually. (See later). 5. Adding Class::Struct to make it easy to retrieve all package data from a single variable. Adding NorthernCross code will add a dependency on libapt-pkg-perl. 6. Bump to v0.2.9 during testing, to be 0.3.0 when ready. 0.2.x and maybe some other releases will continue to be used in Emdebian in the meantime. 7. Beginning to migrate some apt-cross code into NorthernCross::Config or NorthernCross::Cache to make the same code available to emdebian-tools (and therefore a dependency on apt-cross >= 0.3.0 in emdebian-tools 0.4.0). 8. Retain NorthernCross code within the apt-cross package unless there is any prospect of uploading the original NorthernCross to Debian as a separate package. Rename apt-cross code to AptCross::Config etc. if that becomes likely. (Or maybe do that anyway due to the level of changes from current NC code? I'm beginning to favour AptCross::Config and AptCross::Cache.) 9. Dependency handling is the next stage. Needs further modification of the NC code and the apt-cross branch versions. I envisage dropping as much as 40% of NC code and touching at least 70% of the remainder. 10. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=432132 > I'm not sure I can implement --simulate in the expected manner - dpkg > --simulate does not provide the kind of output that would be useful: > > $ sudo dpkg --no-act -i /opt/debian/pbuilder/result/foo-1_amd64.deb > Selecting previously deselected package foo. > (Reading database ... 134416 files and directories currently installed.) > Unpacking foo (from .../foo-1_amd64.deb) ... ... > dpkg just doesn't do what you expect from --simulate and therefore > neither can dpkg-cross or apt-cross. Depending on 8 & 9, it may be possible to detail the dependencies in a similar manner to apt: > apt-get --simulate DOES give the required information: > Inst texlive-common (2007-10 Debian:unstable) > Inst texlive-doc-base (2007-3 Debian:unstable) > Inst texlive-base-bin (2007-12 Debian:unstable) > Inst texlive-base (2007-10 Debian:unstable) > ... Hopefully, that will be satisfactory. It appears to be all that can be done without substantial changes in dpkg. At least it will be easier and quicker without having to fork `apt-cache` recursively. ;-) 10. apt-cross may need to migrate to debconf - taking/copying one of the emdebian-tools questions or otherwise handling the choice of whether to support Apt::Install-Recommends and whether to use apt-get or aptitude. Two questions, at least. If apt-cross asks whether to use apt-get or use aptitude, I don't see that emdebian-tools needs to ask that again? 11. No debian/ config is in the branch at this time - the branch can only be tested locally. These changes will not be uploaded until the branch can be merged back into trunk. 12. Support for arbitrary apt config options in any apt-cross (or emdebian-tools) operation becomes possible (but not yet fully implemented). 13. Data::Dumper is now in use when apt-cross is used in very verbose mode so that full details of the Apt options is visible. This provides a much more flexible method than constantly copying or modifying apt-conf files. 14. AptCrossPackage - a Class::Struct for convenient handling of package data - will continue to develop and a few more classes may need to be added so that the underlying AptPkg::PkgRecords data can be extended to include the needs of a cross-building environment. AptCrossPackage is bespoke to apt-cross - other scripts using the modified NorthernCross::Cache code will get AptPkg data and can use their own classes for their own extensions. 15. Better handling of skipping downloads using MD5 instead of just file size. This is possible because the Apt cache data includes the archive MD5sum and apt-cross can simply compare that. 16. Similarly, improved handling of downloads by retrieving the full path to the .deb in the relevant mirror directly from the Apt cache data provided by that mirror. 17. apt-cross --show and --list will be improved once the rest is fixed, outputting data directly from the cache instead of via dpkg. 18. Some method of combining this code with the cache support for repository scripts like cachecompare - I'm undecided on this one right now, it may be useful to change (8) to make two packages from the apt-cross source after all, allowing buildd.emdebian.org to install AptCross::Cache etc. independently of apt-cross (and its dependencies on dpkg-cross and dpkg-dev which are based on Lenny versions, not etch). 19. The final version will resemble apt-cross on the outside (with only one or two new options and all existing options retained) but beyond the option-handling code, it will be very different. virtuoso: Please take a look - just be aware that the changes to your NC code are both extensive and incomplete. ;-) -- Neil Williams ============= http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/
Attachment:
pgpOkFhc8bq6v.pgp
Description: PGP signature