Jeb Wilkins

Coding and climbing in Cumbria.

Bzr 1.1 on N800

UPDATE: It now works!

I’m a big fan of Bazaar and use it for a lot of my code, I’d previously managed to massage it onto my N800 using the ubuntu .debs, –force and some symlinks. After upgrading to OS2008 i’d lost the bzr install, so decided to have a shot at building a ‘proper’ package which others might benefit from. We’ll I’m nearly there, I’ve got a .deb which will install and run fine from the SDK but wont install from File Manager on the N800, giving a ‘Incompatible application package’ error. Installs just fine from the command line with ‘dpkg -i’ though. Bigger issue is though is I’m getting an internal error when I try to run bzr. I get the feeling its close to working though so hopefully in the next couple of weeks there should a be bzr package for maemo.

Bazaar 1.1 package as it stands

Update: The errors when running were caused by a missing getpass.py - current hack for the time being is just to include a copy in the bzrlib dir. The package listed above now works if manually installed via dpkg -i. Still need to make it work from application manager though, and also need to solve the file permissions, currently everything is owned by uid 1000 instead of root. Can’t see to get round this within scratchbox either, works fine though.

Update 2: Ok, solved application manager not liking my package. Turns out I needed to set the Section: part in the control file to be ‘user/something’ so its now categorised as ‘user/programming’ - that just leaves uid issue which is annoying but not actually a problem in reality.

Update 3: Solved the uid issue as well. Needed to run ‘fakeroot dpkg-deb –build’, then it thought all files owned by me were root owned - Link at the top is for the fully working copy

So the steps to build this were

  1. Get a working SDK environment with extras repo enabled and python2.5 and python2.5-dev installed.
  2. Get the bzr source distribution.
  3. Untar it and swap into the folder
  4. python2.5 setup.py bdist_dumb
  5. swap into the dist subfolder
  6. untar the resultant tar ball
  7. create directory with the name you want for your package, ie bzr-1.1.0.maemo-arm
  8. mv the files you extracted in step 6 into the new dir you’ve made
  9. cp /usr/lib/python2.5/getpass.py /usr/lib/python2.5/site-packages/bzrlib
  10. Create a DEBIAN dir inside your new package dir
  11. Create a DEBIAN/control file as listed below, edit where appropiate
  12. Run ‘fakeroot dpkg-deb –build ’, ie ‘fakeroot dpkg-deb –build bzr-1.1.0.maemo-arm’ - without the trailing slash
  13. Host the file somewhere!

DEBIAN/Control file -: Package: bzr Version: 1.1.0.maemo Section: user/programming Priority: optional Architecture: armel Depends: python2.5 Installed-Size: 21544 Maintainer: jebw user@email.com Description: Bazaar, the next-generation distributed version control system Open source distributed version control system that is powerful, friendly, and scalable. . It manages trees of files and subdirectories. In particular, it records revisions of trees, representing their state at a particular point in time, and information about those revisions and their relationships. Recording and retrieving tree revisions is useful in several ways if you are writing software or documents or doing similar creative work.