There are other files that do this, too, such as doc/en/admin-guide/introduction.txt; take a look at the results of this highly scientific grep: bzr ls -RV0 | xargs -0 grep -nH -e 'python.*2\.[0-5]' -i INSTALL:7:bzr requires Python2.4 and cElementTree: bzrlib/__init__.py:52:# Python version 2.0 is (2, 0, 0, 'final', 0)." Additionally we use a bzrlib/_btree_serializer_pyx.pyx:20:#python2.4 support bzrlib/_chk_map_pyx.pyx:18:#python2.4 support bzrlib/_chunks_to_lines_pyx.pyx:20:#python2.4 support bzrlib/_dirstate_helpers_pyx.pyx:43:#python2.4 support, and other platform-dependent includes bzrlib/_dirstate_helpers_pyx.pyx:1616: # on win32, python2.4 has e.errno == ERROR_DIRECTORY, but bzrlib/_dirstate_helpers_pyx.pyx:1617: # python 2.5 has e.errno == EINVAL, bzrlib/_export_c_api.h:48: /* (char *) is because python2.4 declares this api as 'char *' rather than bzrlib/_groupcompress_pyx.pyx:19:#python2.4 support bzrlib/_import_c_api.h:50: /* (char *) because Python2.4 defines this as (char *) rather than bzrlib/_patiencediff_py.py:233: # jam 20060525 This is the python 2.4.1 difflib get_matching_blocks bzrlib/_readdir_pyx.pyx:23:#python2.4 support bzrlib/_rio_pyx.pyx:19:#python2.4 support bzrlib/_walkdirs_win32.pyx:88: # We can't just declare this as 'readonly' because python2.4 doesn't define bzrlib/cethread.py:44: # compatibility thunk for python-2.4 and python-2.5... bzrlib/cleanup.py:163: # As correct as Python 2.4 allows. bzrlib/commands.py:841: # for python 2.5 and later, optparse raises this exception if a non-ascii bzrlib/diff.py:88: # Special workaround for Python2.3, where difflib fails if bzrlib/dirstate.py:3943: # on win32, python2.4 has e.errno == ERROR_DIRECTORY, but bzrlib/dirstate.py:3944: # python 2.5 has e.errno == EINVAL, bzrlib/errors.py:181: # exceptions are old-style classes in python2.4 (but new in 2.5). bzrlib/errors.py:721: # Python 2.4 have to be old-style classes so properties don't work. bzrlib/errors.py:3069: # nb: in python2.4 socket.error doesn't have a useful repr bzrlib/fifo_cache.py:43: # Python2.5's has deque.remove, but Python2.4 does not bzrlib/intset.py:194: File "/usr/lib/python2.4/doctest.py", line 1243, in __run bzrlib/library_state.py:53: BzrLibraryState implements the Python 2.5 Context Manager protocol bzrlib/osutils.py:289:# In Python 2.4.2 and older, os.path.abspath and os.path.realpath bzrlib/osutils.py:915: # Python 2.4 and later have os.urandom, bzrlib/osutils.py:1181: os.path.commonprefix (python2.4) has a bad bug that it works just bzrlib/osutils.py:1642: 2) Windows, Python2.4, uses errno == ERROR_DIRECTORY (267) bzrlib/osutils.py:1644: 3) Windows, Python2.5 uses errno == EINVAL and bzrlib/plugins/launchpad/lp_registration.py:57: # In python2.4 xmlrpclib.Transport is a old-style class, and does not bzrlib/plugins/launchpad/test_register.py:102: # Python 2.5's xmlrpclib looks for this. bzrlib/pyutils.py:71:# +SKIP is not recognized by python2.4 bzrlib/remote.py:3250: A replacement for extractall, which is not present in python2.4 bzrlib/repofmt/knitpack_repo.py:678: # Python 2.4 does not permit try:finally: in a generator. bzrlib/rio.py:127: ## value = str(value) # XXX: python2.4 without L-suffix bzrlib/tests/__init__.py:767: # Python 2.4 bzrlib/tests/__init__.py:1368: # On Win32 both 'dev' and 'ino' cannot be trusted. In python2.4 it bzrlib/tests/__init__.py:1369: # is 'dev' that varies, in python 2.5 (6?) it is st_ino that is bzrlib/tests/ftp_server/medusa_based.py:115: # (bialix 20070418) str(e) on Python 2.5 @ Windows bzrlib/tests/ftp_server/medusa_based.py:156: # (bialix 20070418) str(e) on Python 2.5 @ Windows bzrlib/tests/http_server.py:195: """Overrides base implementation to work around a bug in python2.5.""" bzrlib/tests/http_server.py:317: # do beginning with python 2.4.3: abandon query bzrlib/tests/test_errors.py:44: Python 2.5 uses a slot for StandardError.message. bzrlib/tests/test_errors.py:51: 'Requires Python 2.5 or later.') bzrlib/tests/test_errors.py:512: # python2.5 because that is a slot on the base Exception class bzrlib/tests/test_http.py:2150:Server: SimpleHTTP/0.6 Python/2.5.2\r bzrlib/tests/test_osutils.py:437: # dereferenced) in Python 2.4.1 and earlier bzrlib/transport/http/_urllib2_wrappers.py:635: # header names, but only python2.5 urllib2 use title() to fix them just bzrlib/transport/http/_urllib2_wrappers.py:636: # before sending the request. And not all versions of python 2.5 do bzrlib/transport/http/_urllib2_wrappers.py:995: # FIXME: python 2.5 urlparse provides a better _parse_proxy which can bzrlib/transport/http/_urllib2_wrappers.py:1547: # but python-2.4 urllib2.Request insist on using capitalize() bzrlib/transport/sftp.py:65:# Disable one particular warning that comes from paramiko in Python2.5; if bzrlib/transport/sftp.py:71:# /var/lib/python-support/python2.5/paramiko/message.py:226: DeprecationWarning: integer argument expected, got float bzrlib/tuned_gzip.py:102: python 2.4 stock GzipFile write: bzrlib/util/configobj/configobj.py:41: # Python 2.2 does not have these bzrlib/util/configobj/configobj.py:111: """enumerate for Python 2.2.""" bzrlib/util/configobj/configobj.py:951: retain compatibility with Python 2.2. bzrlib/util/configobj/configobj.py:2154: # For Python 2.2 compatibility bzrlib/xml_serializer.py:32: # it's in this package in python2.5 doc/developers/code-style.txt:80:Bazaar supports Python from 2.4 through 2.6, and in the future we want to doc/developers/code-style.txt:81:support Python 2.7 and 3.0. Avoid using language features added in 2.5, doc/developers/code-style.txt:91:* Don't use ``try/except/finally``, which is not supported in Python2.4, doc/developers/code-style.txt:393:``Exception`` (which excludes system errors in Python2.5 and later) would doc/developers/integration.txt:37:In Python 2.4 the ``with`` keyword is not supported and doc/developers/plugin-api.txt:141: #!/usr/bin/env python2.4 doc/developers/releasing.txt:213: # Python version 2.0 is (2, 0, 0, 'final', 0)." Additionally we use a doc/developers/tortoise-strategy.txt:282:FWIW, with a Python process at each end, my P4 2.4G machine can achieve doc/developers/ui.txt:124:good place to use them, but because python2.4 does not allow ``finally`` doc/developers/win32_build_setup.txt:46: b) python 2.5.4 http://www.python.org/ftp/python/2.5.4/python-2.5.4.msi doc/developers/win32_build_setup.txt:47: c) python 2.4.4 (there is no Windows installer for 2.4.5 or 2.4.6) doc/developers/win32_build_setup.txt:48: http://www.python.org/ftp/python/2.4.4/python-2.4.4.msi doc/developers/win32_build_setup.txt:73: all-in-one installer is built using python 2.5. We will likely soon switch doc/developers/win32_build_setup.txt:104: Currently they only seem to offer PyQt 4.4.3 for python 2.5 and PyQt doc/developers/win32_build_setup.txt:148:8) Fix distutils for the specific version of gcc. Distutils in python2.4.4 has doc/en/admin-guide/introduction.txt:34:In general, Bazaar requires only Python_ 2.4 or greater and the cElementTree_ doc/en/admin-guide/introduction.txt:35:package (included in Python 2.5 and later) to run. If you would *optionally* doc/en/release-notes/bzr-0.1.txt:508:* testbzr requires python2.4, but can be used to test bzr running doc/en/release-notes/bzr-0.1.txt:542:* Cope on Windows on python2.3 by using the weaker random seed. doc/en/release-notes/bzr-0.1.txt:650:* Workaround for difflib bug in Python 2.3 that causes an doc/en/release-notes/bzr-0.1.txt:734:* Fix time.localtime call to work with Python 2.3 (the minimum doc/en/release-notes/bzr-0.11.txt:134:* Fixes to run on Python 2.5 (Brian M. Carlson, Martin Pool, Marien Zwart) doc/en/release-notes/bzr-0.18.txt:37:* Work around python-2.4.1 inhability to correctly parse the doc/en/release-notes/bzr-0.92.txt:183: some other exceptions on Python 2.5. doc/en/release-notes/bzr-1.17.txt:29: api ``PyFrozenSet_New``. It turns out that python2.4 did not expose the doc/en/release-notes/bzr-1.8.txt:104:* The C extensions now build on python 2.4 (Robert Collins, #271939) doc/en/release-notes/bzr-1.9.txt:123: for python2.4. (John Arbash Meinel, #277484) doc/en/release-notes/bzr-2.1.txt:868:regression in python 2.4 compatibility in 2.1.0b2. Since this regression doc/en/release-notes/bzr-2.2.txt:437: context manager in the Python 2.5 and above sense. The bzrlib base class doc/en/release-notes/bzr-2.2.txt:921:This is a somewhat early second beta of the 2.2 series, to fix a python2.4 doc/en/release-notes/bzr-2.2.txt:960:* Fixed Python2.4 incompatibilities in the bzr2.2b1 source tarball. doc/en/release-notes/bzr-2.4.txt:262:improvements. Support for python 2.4 and 2.5 has been dropped, many large doc/en/release-notes/bzr-2.4.txt:694:* ``bzr-2.4`` has officially dropped support for python2.4 and python2.5. doc/en/user-guide/installing_bazaar.txt:36: 1. If it is not installed already, install Python 2.4 or later. doc/en/whats-new/whats-new-in-2.2.txt:289: context manager in the Python 2.5 and above sense. The bzrlib base class doc/en/whats-new/whats-new-in-2.4.txt:32:Dropping Python2.4 and Python2.5 support profile_imports.py:126: loc = scope_name.find('python2.4') tools/generate_docs.py:30: python2.4 generated-docs.py man tools/generate_docs.py:31: python2.4 generated-docs.py bash_completion tools/http_client.py:56:# Note that (as of ubuntu python 2.4.1) every socket.connect() call tools/win32/bzr.iss.cog:10:; # Python 2.5 compatibility code tools/win32/bzr.iss.cog:16:; #/Python 2.5 compatibility code