As mentioned on Getting, Launchpad is not currently supported on Ubuntu Karmic Koala, primarily because it currently has a hard dependency on Python 2.4, which is no longer included in Karmic.
This page is a place to collect notes written for and by people living on the bleeding edge and attempting to get Launchpad working on Karmic / Python 2.5
launchpad-dependencies
First, there is the issue that the ~launchpad PPA doesn't have any packages for Karmic. I (maxb) have tweaked the launchpad-dependencies package to have a first approximation of suitable dependencies for Python 2.5, and uploaded it to my PPA https://launchpad.net/~maxb/+archive/ppa, and copied the geoip-data-city-lite package from the ~launchpad PPA there as well for convenience.
Launchpad code itself
https://code.launchpad.net/~maxb/launchpad/python2.5 contains a few fixes:
- Adjusting the Python version in the Makefiles
- Adjusting import statements to handle the built-in location of cElementTree in Python 2.5
- Making buildmailman.py compatible with Python 2.5 sys.path_importer_cache behaviour
Fixing Launchpad's TestCase subclass for method renames in unittest in Python 2.5
Launchpad source dependencies - Zope
https://code.launchpad.net/~maxb/zope3/launchpad-3.4-py2.5 contains backports of some changes to zope.proxy and zope.security in post-3.4 Zope releases which are required for Python 2.5 compatibility (possibly only on 64-bit architectures). Without these, Launchpad produces perplexing MemoryErrors. It also contains a patch to zope.sendmail working around a change in the ordering of atexit vs. waiting for non-main non-daemon threads to shut down which otherwise caused various Python processes to hang on shutdown.
Launchpad source dependencies - Twisted
I used to have a Twisted branch mentioned here. It's now obsoleted by the above patch to zope.sendmail.
Test Status
unit tests: Ran 1328 tests with 9 failures and 1 errors
canonical.testing.layers.BaseLayer tests: Ran 250 tests with 0 failures and 1 errors
canonical.testing.layers.LibrarianLayer tests: Ran 8 tests with 0 failures and 1 errors
canonical.testing.layers.DatabaseLayer tests: Ran 48 tests with 0 failures and 1 errors
canonical.testing.layers.LaunchpadLayer tests: Ran 23 tests with 0 failures and 1 errors
canonical.testing.layers.ZopelessLayer tests: Ran 17 tests with 0 failures and 1 errors
canonical.testing.layers.LaunchpadScriptLayer tests: Ran 72 tests with 0 failures and 2 errors
canonical.testing.layers.LaunchpadZopelessLayer tests: Ran 3110 tests with 5 failures and 10 errors
canonical.launchpad.ftests.test_system_documentation.ProcessMailLayer tests: Ran 269 tests with 0 failures and 1 errors
canonical.testing.layers.FunctionalLayer tests: Ran 164 tests with 0 failures and 0 errors
canonical.testing.layers.LaunchpadFunctionalLayer tests: Ran 8116 tests with 11 failures and 0 errors
canonical.testing.layers.AppServerLayer tests: Ran 128 tests with 0 failures and 0 errors
canonical.testing.layers.DatabaseFunctionalLayer tests: Ran 3054 tests with 1 failures and 0 errors
canonical.testing.layers.PageTestLayer tests: ...
canonical.testing.layers.TwistedLayer tests: ...
canonical.testing.layers.TwistedLaunchpadZopelessLayer tests: ...
canonical.testing.layers.TwistedAppServerLayer tests: ...
canonical.testing.layers.ZopelessAppServerLayer tests: ...
canonical.testing.layers.ZopelessDatabaseLayer tests: ...
- lp.codehosting.tests.test_acceptance.SSHServerLayer tests: ...
Other Related Work
Launchpad currently depends on a monolithic Zope source distribution. Zope upstream has since restructured itself as a group of separated modular eggs. Gary Poster is working on migrating Launchpad to this new structure at https://code.launchpad.net/~gary/launchpad/zbuildout - this is a prerequisite to upgrading to newer Zope, which would then avoid the need to cherrypick backports into the existing Zope sourcedep.