Commit 5ed7f988 authored by PJ Eby's avatar PJ Eby

0.5a3 bugfix release

--HG--
branch : setuptools
extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/trunk/setuptools%4041072
parent 0fd80962
...@@ -23,7 +23,7 @@ Installing "Easy Install" ...@@ -23,7 +23,7 @@ Installing "Easy Install"
------------------------- -------------------------
Windows users can just download and run the `setuptools binary installer for Windows users can just download and run the `setuptools binary installer for
Windows <http://peak.telecommunity.com/dist/setuptools-0.5a1.win32.exe>`_. Windows <http://peak.telecommunity.com/dist/setuptools-0.5a3.win32.exe>`_.
All others should just download `ez_setup.py All others should just download `ez_setup.py
<http://peak.telecommunity.com/dist/ez_setup.py>`_, and run it; this will <http://peak.telecommunity.com/dist/ez_setup.py>`_, and run it; this will
download and install the correct version of ``setuptools`` for your Python download and install the correct version of ``setuptools`` for your Python
...@@ -62,7 +62,7 @@ version, and automatically downloading, building, and installing it:: ...@@ -62,7 +62,7 @@ version, and automatically downloading, building, and installing it::
**Example 2**. Install or upgrade a package by name and version by finding **Example 2**. Install or upgrade a package by name and version by finding
links on a given "download page":: links on a given "download page"::
easy_install -f http://peak.telecommunity.com/dist "setuptools>=0.5a1" easy_install -f http://peak.telecommunity.com/dist "setuptools>=0.5a3"
**Example 3**. Download a source distribution from a specified URL, **Example 3**. Download a source distribution from a specified URL,
automatically building and installing it:: automatically building and installing it::
...@@ -442,6 +442,15 @@ Known Issues ...@@ -442,6 +442,15 @@ Known Issues
* There's no automatic retry for borked Sourceforge mirrors, which can easily * There's no automatic retry for borked Sourceforge mirrors, which can easily
time out or be missing a file. time out or be missing a file.
0.5a3
* Fixed not setting script permissions to allow execution.
* Improved sandboxing so that setup scripts that want a temporary directory
(e.g. pychecker) can still run in the sandbox.
0.5a2
* Fix stupid stupid refactoring-at-the-last-minute typos. :(
0.5a1 0.5a1
* Added support for converting ``.win32.exe`` installers to eggs on the fly. * Added support for converting ``.win32.exe`` installers to eggs on the fly.
EasyInstall will now recognize such files by name and install them. EasyInstall will now recognize such files by name and install them.
......
...@@ -238,10 +238,10 @@ class easy_install(Command): ...@@ -238,10 +238,10 @@ class easy_install(Command):
f = open(target,"w") f = open(target,"w")
f.write(script_text) f.write(script_text)
f.close() f.close()
try:
os.chmod(target,0755)
except (AttributeError, os.error):
pass
def install_eggs(self, dist_filename, zip_ok, tmpdir): def install_eggs(self, dist_filename, zip_ok, tmpdir):
......
...@@ -14,7 +14,7 @@ the appropriate options to ``use_setuptools()``. ...@@ -14,7 +14,7 @@ the appropriate options to ``use_setuptools()``.
This file can also be run as a script to install or upgrade setuptools. This file can also be run as a script to install or upgrade setuptools.
""" """
DEFAULT_VERSION = "0.5a1" DEFAULT_VERSION = "0.5a3"
DEFAULT_URL = "http://peak.telecommunity.com/dist/" DEFAULT_URL = "http://peak.telecommunity.com/dist/"
import sys, os import sys, os
......
#!/usr/bin/env python #!/usr/bin/env python
"""Distutils setup file, used to install or test 'setuptools'""" """Distutils setup file, used to install or test 'setuptools'"""
VERSION = "0.5a1" VERSION = "0.5a3"
from setuptools import setup, find_packages, Require from setuptools import setup, find_packages, Require
setup( setup(
...@@ -26,7 +26,7 @@ setup( ...@@ -26,7 +26,7 @@ setup(
"close. See the home page and download page for details and docs.", "close. See the home page and download page for details and docs.",
keywords = "CPAN PyPI distutils eggs package management", keywords = "CPAN PyPI distutils eggs package management",
url = "http://peak.telecommunity.com/PythonEggs", url = "http://peak.telecommunity.com/DevCenter/PythonEggs",
download_url = "http://peak.telecommunity.com/DevCenter/EasyInstall", download_url = "http://peak.telecommunity.com/DevCenter/EasyInstall",
test_suite = 'setuptools.tests.test_suite', test_suite = 'setuptools.tests.test_suite',
......
...@@ -8,7 +8,7 @@ from distutils.core import Command as _Command ...@@ -8,7 +8,7 @@ from distutils.core import Command as _Command
from distutils.util import convert_path from distutils.util import convert_path
import os.path import os.path
__version__ = '0.5a1' __version__ = '0.5a3'
__all__ = [ __all__ = [
'setup', 'Distribution', 'Feature', 'Command', 'Extension', 'Require', 'setup', 'Distribution', 'Feature', 'Command', 'Extension', 'Require',
......
...@@ -23,7 +23,7 @@ def parse_bdist_wininst(name): ...@@ -23,7 +23,7 @@ def parse_bdist_wininst(name):
if lower.endswith('.exe'): if lower.endswith('.exe'):
if lower.endswith('.win32.exe'): if lower.endswith('.win32.exe'):
base = name[:-10] base = name[:-10]
elif lower[-16:].startswith('.win32-py'): elif lower.startswith('.win32-py',-16):
py_ver = name[-7:-4] py_ver = name[-7:-4]
base = name[:-16] base = name[:-16]
......
import os, sys, __builtin__ import os, sys, __builtin__, tempfile
_os = sys.modules[os.name] _os = sys.modules[os.name]
_open = open _open = open
__all__ = [ __all__ = [
"AbstractSandbox", "DirectorySandbox", "SandboxViolation", "run_setup", "AbstractSandbox", "DirectorySandbox", "SandboxViolation", "run_setup",
] ]
def run_setup(setup_script, args): def run_setup(setup_script, args):
"""Run a distutils setup script, sandboxed in its directory""" """Run a distutils setup script, sandboxed in its directory"""
...@@ -15,8 +13,12 @@ def run_setup(setup_script, args): ...@@ -15,8 +13,12 @@ def run_setup(setup_script, args):
save_argv = sys.argv[:] save_argv = sys.argv[:]
save_path = sys.path[:] save_path = sys.path[:]
setup_dir = os.path.abspath(os.path.dirname(setup_script)) setup_dir = os.path.abspath(os.path.dirname(setup_script))
temp_dir = os.path.join(setup_dir,'temp')
if not os.path.isdir(temp_dir): os.makedirs(temp_dir)
save_tmp = tempfile.tempdir
try: try:
tempfile.tempdir = temp_dir
os.chdir(setup_dir) os.chdir(setup_dir)
try: try:
sys.argv[:] = [setup_script]+list(args) sys.argv[:] = [setup_script]+list(args)
...@@ -35,9 +37,7 @@ def run_setup(setup_script, args): ...@@ -35,9 +37,7 @@ def run_setup(setup_script, args):
os.chdir(old_dir) os.chdir(old_dir)
sys.path[:] = save_path sys.path[:] = save_path
sys.argv[:] = save_argv sys.argv[:] = save_argv
tempfile.tempdir = save_tmp
class AbstractSandbox: class AbstractSandbox:
"""Wrap 'os' module and 'open()' builtin for virtualizing setup scripts""" """Wrap 'os' module and 'open()' builtin for virtualizing setup scripts"""
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment