Maemo Package Management Tools

February 21, 2006 on 8:38 pm | In maemo, nokia770, packaging |

I looked at the dearth of GNU Maemo packages and recall the vast number of comparable packages for the Zaurus. I then recall that the Zaurus packages are a special flavor of debian packages designed to be lightweight and without ‘extras’. And they are arm binaries. My favorite source of packages was at IpkgFind. I did some research and found that standard deb packages are basically a pair of tar.gz files inside of an ar package. Ipk packages started out as a the same tar.gz files inside of a tar.gz archive instead of an ar archive. But that changed over time, and the ipk file format changed back to a standard deb file format. The net result is that most ipk packages are structurally the same as deb packages and work with dpkg-deb.

Then is started thinking about the arm packages at the packages.debian.org So at this point i have access to two relatively large debian ARM binary package sources, but neither of them will work directly on the Nokia 770 (mostly the dependancies and the pre/post scripts).

My thoughts were that it should be relatively straightforward to extract the packages from the ipkg feed or the debian arm packages, restructure the contents, rewrite the control file for maemo and repackage. Towards this end i have written a few scripts that do the easy parts of this. These scripts are:

These 4 files are packaged into a deb package or available separately.
The process is to:

  1. Get the desired package from some ARM debian source.
  2. Extract it to a directory using ‘mug-pkgextract.sh packagename targetdir’
  3. Run ‘mug-pkgcleanup.sh targetdir’ to cleanup.
  4. Copy the mug.control.template file into the targetdir/DEBIAN directory and edit appropriately.
  5. Overwrite the old control file with the new control file.
  6. Go into the targetdir/usr directories and make sure that the organization is consistent with maemo packages. This may be the challenging part.
  7. After all of the touch work has been done, run the mug-packager.sh script to build the maemo package.

This process and these tools are not intended to port GUI or hardware specific binaries to the maemo. It won’t work and may break something. This process is good for things like GCC, make, thttpd, etc. Stuff that runs as a service or within a bash console.

ubergEEk

PS - Like everything else on this blog, use at your own risk. Just because it worked for me, does not mean i assume responsibility for anything you do.

No Comments yet »

RSS feed for comments on this post. TrackBack URI

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^