[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: next generation apt/dpkg-cross


I've uploaded a preliminary package to mentors[1]. Ignore all the
lintian warnings.  To be safe try this in a chroot. You've been warned.

I called the package "apt-ma-emu" (multiarch emulation) now. For it to
work you need a patched apt and need to recompile aptitude and synaptic
if you want to use them. The source contains the neccessary patch
(apt.patch). This is just a perliminary package since I didn't have time
to get everything done yet.

What is there:

- README.Debian - MUST read
- hook into apt so "apt-get update" renames in Packages.gz as needed
- hook into apt so "apt-get install" converts packages as needed
- /usr/lib/apt-ma-emu/dpkg wraper to call dpkg extend PATH (use by apt)
- /usr/lib/apt-ma-emu/dpkg-deb wrapper to convert during install
  + Actual conversion of data.tar.gz uses dpkg-cross so it only works
    for cross compile use

So when you install apt-ma-emu, configure i386 as foreign
architecture and run apt-get update you can run

mrvn@frosties:~% sudo apt-get install libgtk2.0-dev-i386-cross
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  lib32ncurses5 lib32z1 lib32z1-dev liba52-0.7.4-i386-cross
  libatk1.0-0-i386-cross libatk1.0-dev-i386-cross libavahi-client3-i386-cross
  libavahi-common-data-i386-cross libavahi-common3-i386-cross libc6-dev-i386
  libcairo2-dev-i386-cross libcairo2-i386-cross libcomerr2-i386-cross
  libcups2-i386-cross libdatrie1-i386-cross libdbus-1-3-i386-cross
  libdirectfb-1.2-0-i386-cross libdirectfb-dev-i386-cross
  libdirectfb-extra-i386-cross libexpat1-dev-i386-cross libexpat1-i386-cross
0 upgraded, 97 newly installed, 0 to remove and 5 not upgraded.
Need to get 26.6MB of archives.
After this operation, 73.7MB of additional disk space will be used.
Do you want to continue [Y/n]? 

If you say yes there it will download those 97 packages, convert each
with dpkg-cross and install them.

Note: The control.tar.gz is converted by me and not dpkg-cross. That
results in slightly different meta information. For example versions
have ~0.0 appended (the apt-ma-emu version) so that an apt-ma-emu update
with converion fixes will show all -cross packages as newer and
reinstall them.

Note2: maintainer scripts (postinst, postrm, ...) are left as is and
might be dangerous.

What is not there:

- Sources.gz are not converted yet to include source-<arch>-cross
  + I had some trouble there so I removed that function for the sake of
    releasing something that works.
- Hook support for control.tar.gz or data.tar.gz
- internal conversion of data.tar.gz to work for both execution and
  cross compile use
- passthrough of multiarch packages
- support for dummy debs needed for multi-arch packages
- Only append the major version so minor apt-ma-emu updates don't
  reinstall every -cross deb
- Replace maintainer scripts and let package.controll restore them if

But (other than the first) that is nothing you need for cross compile
use right now. I probably have some more time on tuesday to get the
Sources.gz support working.


[1] http://mentors.debian.net/cgi-bin/sponsor-pkglist?action=details;package=apt-ma-emu

Reply to: