diff options
| author | Jason R. Coombs <jaraco@jaraco.com> | 2013-05-12 12:04:43 +0100 |
|---|---|---|
| committer | Jason R. Coombs <jaraco@jaraco.com> | 2013-05-12 12:04:43 +0100 |
| commit | 062b9b955dc7f9f2acf0b8ffe79cee8f16eed011 (patch) | |
| tree | b1a61fa7c4e167b681545846d49de86713bfa464 | |
| parent | ff75a6cbdbcde8d9e3b979c30c3d6e64a1bc5374 (diff) | |
| parent | a6e8eec3e46dfa7e37259c63da244049ce08f603 (diff) | |
| download | python-setuptools-git-062b9b955dc7f9f2acf0b8ffe79cee8f16eed011.tar.gz | |
Merged remaining changes from 1aae1efe5733 (setuptools 0.6c12dev)
--HG--
branch : Setuptools-Distribute merge
| -rwxr-xr-x | EasyInstall.txt | 46 | ||||
| -rwxr-xr-x | README.txt | 15 | ||||
| -rwxr-xr-x | ez_setup.py | 45 | ||||
| -rwxr-xr-x | launcher.c | 11 | ||||
| -rwxr-xr-x | pkg_resources.txt | 20 | ||||
| -rwxr-xr-x | release.sh | 5 | ||||
| -rwxr-xr-x | setup.py | 4 | ||||
| -rwxr-xr-x | setuptools.egg-info/entry_points.txt | 3 | ||||
| -rwxr-xr-x | setuptools.txt | 34 | ||||
| -rwxr-xr-x | setuptools/cli.exe | bin | 6656 -> 7168 bytes | |||
| -rwxr-xr-x | setuptools/gui.exe | bin | 7168 -> 7168 bytes | |||
| -rwxr-xr-x | version.dat | 2 |
12 files changed, 127 insertions, 58 deletions
diff --git a/EasyInstall.txt b/EasyInstall.txt index b0341e88..753baf65 100755 --- a/EasyInstall.txt +++ b/EasyInstall.txt @@ -256,7 +256,7 @@ or directory (found in the installation directory). If you want to delete the currently installed version of a package (or all versions of a package), you should first run:: - easy_install -m PackageName + easy_install -mxN PackageName This will ensure that Python doesn't continue to search for a package you're planning to remove. After you've done this, you can safely delete the .egg @@ -427,7 +427,7 @@ below, and also the section on the `Package Index "API"`_. Password-Protected Sites ------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~ If a site you want to download from is password-protected using HTTP "Basic" authentication, you can specify your credentials in the URL, like so:: @@ -1218,6 +1218,48 @@ Release Notes/Change History ============================ 0.6final + * Fixed AttributeError under Python 2.3 when processing "HTTP authentication" + URLs (i.e., ones with a ``user:password@host``). + + * Fixed bogus AttributeError when no local or downloadable packages are + available + + * Fix for recent Sourceforge downloading changes + + * Handle .exe's containing .pyd or .dll files installed as "data" on win32 + + * Extract copies of hardlinked and symlinked files in tarballs when extracting + source + + * Support HTTP servers that return multiple 'Content-Length' headers + + * Support user/password credentials in Subversion (svnserve) URLs + + * Fixed problems accessing /dev/null inside the script sandbox, and the sandbox + swapping the ``open`` and file`` builtins. + + * Fixed skipping extraction of files or directories containing '..' in their + names + +0.6c11 + * Fix installed script .exe files not working with 64-bit Python on Windows + (wasn't actually released in 0.6c10 due to a lost checkin) + +0.6c10 + * Fix easy_install.exe giving UAC errors on Windows Vista + + * Support for the most recent Sourceforge download link insanity + + * Stop crashing on certain types of HTTP error + + * Stop re-trying URLs that already failed retrieval once + + * Fixes for various dependency management problems such as looping builds, + re-downloading packages already present on sys.path (but not in a registered + "site" directory), and semi-randomly preferring local "-f" packages over + local installed packages + +0.6c9 * Fixed ``win32.exe`` support for .pth files, so unnecessary directory nesting is flattened out in the resulting egg. (There was a case-sensitivity problem that affected some distributions, notably ``pywin32``.) @@ -12,7 +12,17 @@ Installation Instructions Windows ======= -Install setuptools using the provided ``.exe`` installer. If you've previously +32-bit version of Python + Install setuptools using the provided ``.exe`` installer. + +64-bit versions of Python + Download `ez_setup.py`_ and run it; it will download the appropriate .egg file and install it for you. (Currently, the provided ``.exe`` installer does not support 64-bit versions of Python for Windows, due to a `distutils installer compatibility issue`_ + +.. _ez_setup.py: http://peak.telecommunity.com/dist/ez_setup.py +.. _distutils installer compatibility issue: http://bugs.python.org/issue6792 + + +NOTE: Regardless of what sort of Python you're using, if you've previously installed older versions of setuptools, please delete all ``setuptools*.egg`` and ``setuptools.pth`` files from your system's ``site-packages`` directory (and any other ``sys.path`` directories) FIRST. @@ -90,7 +100,7 @@ Downloads All setuptools downloads can be found at `the project's home page in the Python Package Index`_. Scroll to the very bottom of the page to find the links. -.. _the project's home page in the Python Package Index: http://pypi.python.org/pypi/setuptools +.. _the project's home page in the Python Package Index: http://pypi.python.org/pypi/setuptools#files In addition to the PyPI downloads, the development version of ``setuptools`` is available from the `Python SVN sandbox`_, and in-development versions of the @@ -159,3 +169,4 @@ Credits "Code Bear" Taylor) contributed their time and stress as guinea pigs for the use of eggs and setuptools, even before eggs were "cool". (Thanks, guys!) +.. _files: diff --git a/ez_setup.py b/ez_setup.py index d24e845e..d8d25db1 100755 --- a/ez_setup.py +++ b/ez_setup.py @@ -14,37 +14,18 @@ the appropriate options to ``use_setuptools()``. This file can also be run as a script to install or upgrade setuptools. """ import sys -DEFAULT_VERSION = "0.6c9" +DEFAULT_VERSION = "0.6c12" DEFAULT_URL = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3] md5_data = { - 'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca', - 'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb', - 'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b', - 'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a', - 'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618', - 'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac', - 'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5', - 'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4', - 'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c', - 'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b', - 'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27', - 'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277', - 'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa', - 'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e', - 'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e', - 'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f', - 'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2', - 'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc', - 'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167', - 'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64', - 'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d', - 'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20', - 'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab', - 'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53', - 'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2', - 'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e', - 'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372', + 'setuptools-0.6c10-py2.3.egg': 'ce1e2ab5d3a0256456d9fc13800a7090', + 'setuptools-0.6c10-py2.4.egg': '57d6d9d6e9b80772c59a53a8433a5dd4', + 'setuptools-0.6c10-py2.5.egg': 'de46ac8b1c97c895572e5e8596aeb8c7', + 'setuptools-0.6c10-py2.6.egg': '58ea40aef06da02ce641495523a0b7f5', + 'setuptools-0.6c11-py2.3.egg': '2baeac6e13d414a9d28e7ba5b5a596de', + 'setuptools-0.6c11-py2.4.egg': 'bd639f9b0eac4c42497034dec2ec0c2b', + 'setuptools-0.6c11-py2.5.egg': '64c94f3bf7a72a13ec83e0b24f2749b2', + 'setuptools-0.6c11-py2.6.egg': 'bfa92100bd772d5a213eedd356d64086', 'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902', 'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de', 'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b', @@ -104,11 +85,11 @@ def use_setuptools( "\n\n(Currently using %r)" ) % (version, e.args[0]) sys.exit(2) - else: - del pkg_resources, sys.modules['pkg_resources'] # reload ok - return do_download() except pkg_resources.DistributionNotFound: - return do_download() + pass + + del pkg_resources, sys.modules['pkg_resources'] # reload ok + return do_download() def download_setuptools( version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, @@ -81,17 +81,18 @@ char *quoted(char *data) { char *loadable_exe(char *exename) { - HINSTANCE hPython; /* DLL handle for python executable */ + /* HINSTANCE hPython; DLL handle for python executable */ char *result; - hPython = LoadLibraryEx(exename, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); - if (!hPython) return NULL; + /* hPython = LoadLibraryEx(exename, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); + if (!hPython) return NULL; */ /* Return the absolute filename for spawnv */ result = calloc(MAX_PATH, sizeof(char)); - if (result) GetModuleFileName(hPython, result, MAX_PATH); + strncpy(result, exename, MAX_PATH); + /*if (result) GetModuleFileName(hPython, result, MAX_PATH); - FreeLibrary(hPython); + FreeLibrary(hPython); */ return result; } diff --git a/pkg_resources.txt b/pkg_resources.txt index 7d8afd37..03793b62 100755 --- a/pkg_resources.txt +++ b/pkg_resources.txt @@ -269,7 +269,7 @@ instance: the global ``working_set`` to reflect the change. This method is also called by the ``WorkingSet()`` constructor during initialization. - This method uses ``find_distributions(entry,False)`` to find distributions + This method uses ``find_distributions(entry, True)`` to find distributions corresponding to the path entry, and then ``add()`` them. `entry` is always appended to the ``entries`` attribute, even if it is already present, however. (This is because ``sys.path`` can contain the same value @@ -1661,14 +1661,10 @@ PEP 302 Utilities for obtaining an "importer" object. It first checks for an importer for the path item in ``sys.path_importer_cache``, and if not found it calls each of the ``sys.path_hooks`` and caches the result if a good importer is - found. If no importer is found, this routine returns an ``ImpWrapper`` - instance that wraps the builtin import machinery as a PEP 302-compliant - "importer" object. This ``ImpWrapper`` is *not* cached; instead a new - instance is returned each time. - - (Note: When run under Python 2.5, this function is simply an alias for - ``pkgutil.get_importer()``, and instead of ``pkg_resources.ImpWrapper`` - instances, it may return ``pkgutil.ImpImporter`` instances.) + found. If no importer is found, this routine returns a wrapper object + that wraps the builtin import machinery as a PEP 302-compliant "importer" + object. This wrapper object is *not* cached; instead a new instance is + returned each time. File/Path Utilities @@ -1692,7 +1688,11 @@ File/Path Utilities Release Notes/Change History ---------------------------- -0.6final +0.6c10 + * Prevent lots of spurious "already imported from another path" warnings (e.g. + when pkg_resources is imported late). + +0.6c9 * Fix ``resource_listdir('')`` always returning an empty list for zipped eggs. 0.6c7 @@ -7,11 +7,12 @@ # If your initials aren't PJE, don't run it. :) # -export VERSION="0.6c9" - +export VERSION="0.6c12" +python2.3 setup.py -q egg_info # force upload to be available python2.3 setup.py -q release source --target-version=2.3 upload && \ python2.4 setup.py -q release binary --target-version=2.4 upload && \ python2.5 setup.py -q release binary --target-version=2.5 upload && \ +python2.6 setup.py -q release binary --target-version=2.6 -p win32 upload && \ python2.3 ez_setup.py --md5update dist/setuptools-$VERSION*-py2.?.egg && \ cp ez_setup.py virtual-python.py ~/distrib/ && \ cp ez_setup.py ~/projects/ez_setup/__init__.py && \ @@ -7,7 +7,7 @@ d = {} execfile(convert_path('setuptools/command/__init__.py'), d) SETUP_COMMANDS = d['__all__'] -VERSION = "0.6c9" +VERSION = "0.6c12" from setuptools import setup, find_packages import sys @@ -53,8 +53,8 @@ setup( "include_package_data = setuptools.dist:assert_bool", "dependency_links = setuptools.dist:assert_string_list", "test_loader = setuptools.dist:check_importable", + "packages = setuptools.dist:check_packages", ], - "egg_info.writers": [ "PKG-INFO = setuptools.command.egg_info:write_pkg_info", "requires.txt = setuptools.command.egg_info:write_requirements", diff --git a/setuptools.egg-info/entry_points.txt b/setuptools.egg-info/entry_points.txt index f7367e0d..2642c316 100755 --- a/setuptools.egg-info/entry_points.txt +++ b/setuptools.egg-info/entry_points.txt @@ -31,7 +31,7 @@ depends.txt = setuptools.command.egg_info:warn_depends_obsolete [console_scripts] easy_install = setuptools.command.easy_install:main -easy_install-2.5 = setuptools.command.easy_install:main +easy_install-2.6 = setuptools.command.easy_install:main [setuptools.file_finders] svn_cvs = setuptools.command.sdist:_default_revctrl @@ -49,6 +49,7 @@ test_suite = setuptools.dist:check_test_suite eager_resources = setuptools.dist:assert_string_list zip_safe = setuptools.dist:assert_bool test_loader = setuptools.dist:check_importable +packages = setuptools.dist:check_packages tests_require = setuptools.dist:check_requirements [setuptools.installation] diff --git a/setuptools.txt b/setuptools.txt index d1b25302..c709a908 100755 --- a/setuptools.txt +++ b/setuptools.txt @@ -2569,6 +2569,27 @@ A few important points for writing revision control file finders: inform the user of the missing program(s). +A Note Regarding Dependencies +----------------------------- + +If the project *containing* your distutils/setuptools extension(s) depends on +any projects other than setuptools, you *must* also declare those dependencies +as part of your project's ``setup_requires`` keyword, so that they will +already be built (and at least temprorarily installed) before your extension +project is built. + +So, if for example you create a project Foo that includes a new file finder +plugin, and Foo depends on Bar, then you *must* list Bar in both the +``install_requires`` **and** ``setup_requires`` arguments to ``setup()``. + +If you don't do this, then in certain edge cases you may cause setuptools to +try to go into infinite recursion, trying to build your dependencies to resolve +your dependencies, while still building your dependencies. (It probably won't +happen on your development machine, but it *will* happen in a full build +pulling everything from revision control on a clean machine, and then you or +your users will be scratching their heads trying to figure it out!) + + Subclassing ``Command`` ----------------------- @@ -2611,7 +2632,18 @@ XXX Release Notes/Change History ---------------------------- -0.6final +0.6c11 + * Fix "bdist_wininst upload" trying to upload same file twice + +0.6c10 + * Fix for the Python 2.6.3 build_ext API change + + * Ensure C libraries (as opposed to extensions) are also built when doing + bdist_egg + + * Support for SVN 1.6 + +0.6c9 * Fixed a missing files problem when using Windows source distributions on non-Windows platforms, due to distutils not handling manifest file line endings correctly. diff --git a/setuptools/cli.exe b/setuptools/cli.exe Binary files differindex 3173b2b2..8906ff77 100755 --- a/setuptools/cli.exe +++ b/setuptools/cli.exe diff --git a/setuptools/gui.exe b/setuptools/gui.exe Binary files differindex 53d4ff81..474838d5 100755 --- a/setuptools/gui.exe +++ b/setuptools/gui.exe diff --git a/version.dat b/version.dat index 32144c8e..86f46575 100755 --- a/version.dat +++ b/version.dat @@ -1,6 +1,6 @@ [setuptools]
status = 'release candidate'
major = 0
-build = 9
+build = 12
minor = 6
|
