Bazaar on the iPod Touch.

Because I was curious, and because it has Python, I figured I'ld give it a try, and see what happened...
The results are:

# ./bzr selftest
testing: /private/var/root/bzr-1.0/bzr
   /private/var/root/bzr-1.0/bzrlib (1.0.0 python2.5.1.final.0)

bzr: ERROR: exceptions.ImportError: No module named pyexpat

Traceback (most recent call last):
  File "/private/var/root/bzr-1.0/bzrlib/commands.py", line 802, in run_bzr_catch_errors
    return run_bzr(argv)
  File "/private/var/root/bzr-1.0/bzrlib/commands.py", line 758, in run_bzr
    ret = run(*run_argv)
  File "/private/var/root/bzr-1.0/bzrlib/commands.py", line 492, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/private/var/root/bzr-1.0/bzrlib/builtins.py", line 2659, in run
    coverage_dir=coverage,
  File "/private/var/root/bzr-1.0/bzrlib/tests/__init__.py", line 2373, in selftest
    suite = test_suite()
  File "/private/var/root/bzr-1.0/bzrlib/tests/__init__.py", line 2531, in test_suite
    suite.addTest(loader.loadTestsFromModuleNames(testmod_names))
  File "/private/var/root/bzr-1.0/bzrlib/tests/TestUtil.py", line 89, in loadTestsFromModuleNames
    _load_module_by_name(name)
  File "/private/var/root/bzr-1.0/bzrlib/tests/TestUtil.py", line 96, in _load_module_by_name
    module = __import__(mod_name)
  File "/private/var/root/bzr-1.0/bzrlib/tests/test_bundle.py", line 32, in <module>
    from bzrlib.bundle.bundle_data import BundleTree
  File "/private/var/root/bzr-1.0/bzrlib/bundle/bundle_data.py", line 42, in <module>
    from bzrlib.xml5 import serializer_v5
  File "/private/var/root/bzr-1.0/bzrlib/xml5.py", line 26, in <module>
    from bzrlib.xml_serializer import SubElement, Element, Serializer
  File "/private/var/root/bzr-1.0/bzrlib/xml_serializer.py", line 47, in <module>
    from xml.parsers.expat import ExpatError as ParseError
  File "/usr/lib/python2.5/xml/parsers/expat.py", line 4, in <module>
    from pyexpat import *
ImportError: No module named pyexpat

bzr 1.0.0 on python 2.5.1.final.0 (darwin)
arguments: ['./bzr', 'selftest']
encoding: 'ascii', fsenc: 'utf-8', lang: None
plugins:
  launchpad            /private/var/root/bzr-1.0/bzrlib/plugins/launchpad [unknown]
  multiparent          /private/var/root/bzr-1.0/bzrlib/plugins/multiparent.pyc [unknown]
*** Bazaar has encountered an internal error.
    Please report a bug at https://bugs.launchpad.net/bzr/+filebug
    including this traceback, and a description of what you
    were doing when the error occurred.

Doing a bit of googling led me here (or rather, the google cache of that page). which says:

# 1/ The python installation from the installer ("unjailed iphone") does not come with the pyexpat module.

So, that's a little surprising.

I tried to install easy_install, to try an "easy_install pyexpat", but because I'm missing a Makefile, that fails with the following:

# python ez_setup.py
Downloading http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c7-py2.5.egg
Traceback (most recent call last):
  File "ez_setup.py", line 229, in <module>
    main(sys.argv[1:])
  File "ez_setup.py", line 163, in main
    from setuptools.command.easy_install import main
  File "build/bdist.linux-i686/egg/setuptools/__init__.py", line 2, in <module>
  File "build/bdist.linux-i686/egg/setuptools/extension.py", line 2, in <module>
  File "build/bdist.linux-i686/egg/setuptools/dist.py", line 5, in <module>
  File "build/bdist.linux-i686/egg/setuptools/command/__init__.py", line 13, in <module>
  File "/usr/lib/python2.5/distutils/command/bdist.py", line 29, in <module>
    class bdist (Command):
  File "/usr/lib/python2.5/distutils/command/bdist.py", line 37, in bdist
    "(default: %s)" % get_platform()),
  File "/usr/lib/python2.5/distutils/util.py", line 78, in get_platform
    cfgvars = get_config_vars()
  File "/usr/lib/python2.5/distutils/sysconfig.py", line 493, in get_config_vars
    func()
  File "/usr/lib/python2.5/distutils/sysconfig.py", line 352, in _init_posix
    raise DistutilsPlatformError(my_msg)
distutils.errors.DistutilsPlatformError: invalid Python installation: unable to open /usr/lib/python2.5/config/Makefile (No such file or directory)

And that was the end of that. Interesting, though...

Oh, yeah, and I ended up going with the iPod Touch (hereafter referred to as the iTouch) to replace my Palm TX. It's not the perfect device, as the above stack traces show, but it's pretty good, and a fair bit closer than the Palm TX was.