mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-20 05:28:04 +00:00
Bundle setuptools-0.6c16dev (with Windows script changes, and the change to only warn if site.py wasn't generated by setuptools) instead of 0.6c15dev. addresses #565, #1073, #1074
This commit is contained in:
parent
907a7feeb8
commit
c045241a55
@ -1,183 +0,0 @@
|
|||||||
Metadata-Version: 1.0
|
|
||||||
Name: setuptools
|
|
||||||
Version: 0.6c15dev
|
|
||||||
Summary: Download, build, install, upgrade, and uninstall Python packages -- easily!
|
|
||||||
Home-page: http://pypi.python.org/pypi/setuptools
|
|
||||||
Author: Phillip J. Eby
|
|
||||||
Author-email: distutils-sig@python.org
|
|
||||||
License: PSF or ZPL
|
|
||||||
Description: ===============================
|
|
||||||
Installing and Using Setuptools
|
|
||||||
===============================
|
|
||||||
|
|
||||||
.. contents:: **Table of Contents**
|
|
||||||
|
|
||||||
|
|
||||||
-------------------------
|
|
||||||
Installation Instructions
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
Windows
|
|
||||||
=======
|
|
||||||
|
|
||||||
Install setuptools using the provided ``.exe`` installer. 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.
|
|
||||||
|
|
||||||
If you are upgrading a previous version of setuptools that was installed using
|
|
||||||
an ``.exe`` installer, please be sure to also *uninstall that older version*
|
|
||||||
via your system's "Add/Remove Programs" feature, BEFORE installing the newer
|
|
||||||
version.
|
|
||||||
|
|
||||||
Once installation is complete, you will find an ``easy_install.exe`` program in
|
|
||||||
your Python ``Scripts`` subdirectory. Be sure to add this directory to your
|
|
||||||
``PATH`` environment variable, if you haven't already done so.
|
|
||||||
|
|
||||||
|
|
||||||
RPM-Based Systems
|
|
||||||
=================
|
|
||||||
|
|
||||||
Install setuptools using the provided source RPM. The included ``.spec`` file
|
|
||||||
assumes you are installing using the default ``python`` executable, and is not
|
|
||||||
specific to a particular Python version. The ``easy_install`` executable will
|
|
||||||
be installed to a system ``bin`` directory such as ``/usr/bin``.
|
|
||||||
|
|
||||||
If you wish to install to a location other than the default Python
|
|
||||||
installation's default ``site-packages`` directory (and ``$prefix/bin`` for
|
|
||||||
scripts), please use the ``.egg``-based installation approach described in the
|
|
||||||
following section.
|
|
||||||
|
|
||||||
|
|
||||||
Cygwin, Mac OS X, Linux, Other
|
|
||||||
==============================
|
|
||||||
|
|
||||||
1. Download the appropriate egg for your version of Python (e.g.
|
|
||||||
``setuptools-0.6c9-py2.4.egg``). Do NOT rename it.
|
|
||||||
|
|
||||||
2. Run it as if it were a shell script, e.g. ``sh setuptools-0.6c9-py2.4.egg``.
|
|
||||||
Setuptools will install itself using the matching version of Python (e.g.
|
|
||||||
``python2.4``), and will place the ``easy_install`` executable in the
|
|
||||||
default location for installing Python scripts (as determined by the
|
|
||||||
standard distutils configuration files, or by the Python installation).
|
|
||||||
|
|
||||||
If you want to install setuptools to somewhere other than ``site-packages`` or
|
|
||||||
your default distutils installation locations for libraries and scripts, you
|
|
||||||
may include EasyInstall command-line options such as ``--prefix``,
|
|
||||||
``--install-dir``, and so on, following the ``.egg`` filename on the same
|
|
||||||
command line. For example::
|
|
||||||
|
|
||||||
sh setuptools-0.6c9-py2.4.egg --prefix=~
|
|
||||||
|
|
||||||
You can use ``--help`` to get a full options list, but we recommend consulting
|
|
||||||
the `EasyInstall manual`_ for detailed instructions, especially `the section
|
|
||||||
on custom installation locations`_.
|
|
||||||
|
|
||||||
.. _EasyInstall manual: http://peak.telecommunity.com/DevCenter/EasyInstall
|
|
||||||
.. _the section on custom installation locations: http://peak.telecommunity.com/DevCenter/EasyInstall#custom-installation-locations
|
|
||||||
|
|
||||||
|
|
||||||
Cygwin Note
|
|
||||||
-----------
|
|
||||||
|
|
||||||
If you are trying to install setuptools for the **Windows** version of Python
|
|
||||||
(as opposed to the Cygwin version that lives in ``/usr/bin``), you must make
|
|
||||||
sure that an appropriate executable (``python2.3``, ``python2.4``, or
|
|
||||||
``python2.5``) is on your **Cygwin** ``PATH`` when invoking the egg. For
|
|
||||||
example, doing the following at a Cygwin bash prompt will install setuptools
|
|
||||||
for the **Windows** Python found at ``C:\\Python24``::
|
|
||||||
|
|
||||||
ln -s /cygdrive/c/Python24/python.exe python2.4
|
|
||||||
PATH=.:$PATH sh setuptools-0.6c9-py2.4.egg
|
|
||||||
rm python2.4
|
|
||||||
|
|
||||||
|
|
||||||
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#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
|
|
||||||
`0.6 branch`_ are available as well.
|
|
||||||
|
|
||||||
.. _0.6 branch: http://svn.python.org/projects/sandbox/branches/setuptools-0.6/#egg=setuptools-dev06
|
|
||||||
|
|
||||||
.. _Python SVN sandbox: http://svn.python.org/projects/sandbox/trunk/setuptools/#egg=setuptools-dev
|
|
||||||
|
|
||||||
--------------------------------
|
|
||||||
Using Setuptools and EasyInstall
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
Here are some of the available manuals, tutorials, and other resources for
|
|
||||||
learning about Setuptools, Python Eggs, and EasyInstall:
|
|
||||||
|
|
||||||
* `The EasyInstall user's guide and reference manual`_
|
|
||||||
* `The setuptools Developer's Guide`_
|
|
||||||
* `The pkg_resources API reference`_
|
|
||||||
* `Package Compatibility Notes`_ (user-maintained)
|
|
||||||
* `The Internal Structure of Python Eggs`_
|
|
||||||
|
|
||||||
Questions, comments, and bug reports should be directed to the `distutils-sig
|
|
||||||
mailing list`_. If you have written (or know of) any tutorials, documentation,
|
|
||||||
plug-ins, or other resources for setuptools users, please let us know about
|
|
||||||
them there, so this reference list can be updated. If you have working,
|
|
||||||
*tested* patches to correct problems or add features, you may submit them to
|
|
||||||
the `setuptools bug tracker`_.
|
|
||||||
|
|
||||||
.. _setuptools bug tracker: http://bugs.python.org/setuptools/
|
|
||||||
.. _Package Compatibility Notes: http://peak.telecommunity.com/DevCenter/PackageNotes
|
|
||||||
.. _The Internal Structure of Python Eggs: http://peak.telecommunity.com/DevCenter/EggFormats
|
|
||||||
.. _The setuptools Developer's Guide: http://peak.telecommunity.com/DevCenter/setuptools
|
|
||||||
.. _The pkg_resources API reference: http://peak.telecommunity.com/DevCenter/PkgResources
|
|
||||||
.. _The EasyInstall user's guide and reference manual: http://peak.telecommunity.com/DevCenter/EasyInstall
|
|
||||||
.. _distutils-sig mailing list: http://mail.python.org/pipermail/distutils-sig/
|
|
||||||
|
|
||||||
|
|
||||||
-------
|
|
||||||
Credits
|
|
||||||
-------
|
|
||||||
|
|
||||||
* The original design for the ``.egg`` format and the ``pkg_resources`` API was
|
|
||||||
co-created by Phillip Eby and Bob Ippolito. Bob also implemented the first
|
|
||||||
version of ``pkg_resources``, and supplied the OS X operating system version
|
|
||||||
compatibility algorithm.
|
|
||||||
|
|
||||||
* Ian Bicking implemented many early "creature comfort" features of
|
|
||||||
easy_install, including support for downloading via Sourceforge and
|
|
||||||
Subversion repositories. Ian's comments on the Web-SIG about WSGI
|
|
||||||
application deployment also inspired the concept of "entry points" in eggs,
|
|
||||||
and he has given talks at PyCon and elsewhere to inform and educate the
|
|
||||||
community about eggs and setuptools.
|
|
||||||
|
|
||||||
* Jim Fulton contributed time and effort to build automated tests of various
|
|
||||||
aspects of ``easy_install``, and supplied the doctests for the command-line
|
|
||||||
``.exe`` wrappers on Windows.
|
|
||||||
|
|
||||||
* Phillip J. Eby is the principal author and maintainer of setuptools, and
|
|
||||||
first proposed the idea of an importable binary distribution format for
|
|
||||||
Python application plug-ins.
|
|
||||||
|
|
||||||
* Significant parts of the implementation of setuptools were funded by the Open
|
|
||||||
Source Applications Foundation, to provide a plug-in infrastructure for the
|
|
||||||
Chandler PIM application. In addition, many OSAF staffers (such as Mike
|
|
||||||
"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:
|
|
||||||
|
|
||||||
Keywords: CPAN PyPI distutils eggs package management
|
|
||||||
Platform: UNKNOWN
|
|
||||||
Classifier: Development Status :: 3 - Alpha
|
|
||||||
Classifier: Intended Audience :: Developers
|
|
||||||
Classifier: License :: OSI Approved :: Python Software Foundation License
|
|
||||||
Classifier: License :: OSI Approved :: Zope Public License
|
|
||||||
Classifier: Operating System :: OS Independent
|
|
||||||
Classifier: Programming Language :: Python
|
|
||||||
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
||||||
Classifier: Topic :: System :: Archiving :: Packaging
|
|
||||||
Classifier: Topic :: System :: Systems Administration
|
|
||||||
Classifier: Topic :: Utilities
|
|
Binary file not shown.
100
setuptools-0.6c16dev.egg/EGG-INFO/PKG-INFO
Normal file
100
setuptools-0.6c16dev.egg/EGG-INFO/PKG-INFO
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
Metadata-Version: 1.0
|
||||||
|
Name: setuptools
|
||||||
|
Version: 0.6c16dev
|
||||||
|
Summary: Download, build, install, upgrade, and uninstall Python packages -- easily! (zetuptoolz fork)
|
||||||
|
Home-page: http://pypi.python.org/pypi/setuptools
|
||||||
|
Author: Phillip J. Eby
|
||||||
|
Author-email: distutils-sig@python.org
|
||||||
|
License: PSF or ZPL
|
||||||
|
Description: ======================
|
||||||
|
This is not Setuptools
|
||||||
|
======================
|
||||||
|
|
||||||
|
This is the ``zetuptoolz`` fork of setuptools, which is used to install
|
||||||
|
`Tahoe-LAFS`_. It has a `darcs source repository`_ and `issue tracker`_.
|
||||||
|
|
||||||
|
For a list of differences between this fork and setuptools, see zetuptoolz.txt.
|
||||||
|
|
||||||
|
Note that, to avoid interfering with any setuptools installation, zetuptoolz
|
||||||
|
does not install a script called ``easy_install``. There is an ``easy_install_z``
|
||||||
|
script, but that is intended only for developers to test differences between
|
||||||
|
setuptools and zetuptoolz.
|
||||||
|
|
||||||
|
.. _Tahoe-LAFS: http://tahoe-lafs.org/
|
||||||
|
.. _darcs source repository: http://tahoe-lafs.org/source/zetuptoolz/trunk
|
||||||
|
.. _issue tracker: http://tahoe-lafs.org/trac/zetuptoolz
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------------
|
||||||
|
Using Setuptools and EasyInstall
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
Here are some of the available manuals, tutorials, and other resources for
|
||||||
|
learning about Setuptools, Python Eggs, and EasyInstall:
|
||||||
|
|
||||||
|
* `The EasyInstall user's guide and reference manual`_
|
||||||
|
* `The setuptools Developer's Guide`_
|
||||||
|
* `The pkg_resources API reference`_
|
||||||
|
* `Package Compatibility Notes`_ (user-maintained)
|
||||||
|
* `The Internal Structure of Python Eggs`_
|
||||||
|
|
||||||
|
Questions, comments, and bug reports should be directed to the `distutils-sig
|
||||||
|
mailing list`_. If you have written (or know of) any tutorials, documentation,
|
||||||
|
plug-ins, or other resources for setuptools users, please let us know about
|
||||||
|
them there, so this reference list can be updated. If you have working,
|
||||||
|
*tested* patches to correct problems or add features, you may submit them to
|
||||||
|
the `setuptools bug tracker`_.
|
||||||
|
|
||||||
|
.. _setuptools bug tracker: http://bugs.python.org/setuptools/
|
||||||
|
.. _Package Compatibility Notes: http://peak.telecommunity.com/DevCenter/PackageNotes
|
||||||
|
.. _The Internal Structure of Python Eggs: http://peak.telecommunity.com/DevCenter/EggFormats
|
||||||
|
.. _The setuptools Developer's Guide: http://peak.telecommunity.com/DevCenter/setuptools
|
||||||
|
.. _The pkg_resources API reference: http://peak.telecommunity.com/DevCenter/PkgResources
|
||||||
|
.. _The EasyInstall user's guide and reference manual: http://peak.telecommunity.com/DevCenter/EasyInstall
|
||||||
|
.. _distutils-sig mailing list: http://mail.python.org/pipermail/distutils-sig/
|
||||||
|
|
||||||
|
|
||||||
|
-------
|
||||||
|
Credits
|
||||||
|
-------
|
||||||
|
|
||||||
|
* The original design for the ``.egg`` format and the ``pkg_resources`` API was
|
||||||
|
co-created by Phillip Eby and Bob Ippolito. Bob also implemented the first
|
||||||
|
version of ``pkg_resources``, and supplied the OS X operating system version
|
||||||
|
compatibility algorithm.
|
||||||
|
|
||||||
|
* Ian Bicking implemented many early "creature comfort" features of
|
||||||
|
easy_install, including support for downloading via Sourceforge and
|
||||||
|
Subversion repositories. Ian's comments on the Web-SIG about WSGI
|
||||||
|
application deployment also inspired the concept of "entry points" in eggs,
|
||||||
|
and he has given talks at PyCon and elsewhere to inform and educate the
|
||||||
|
community about eggs and setuptools.
|
||||||
|
|
||||||
|
* Jim Fulton contributed time and effort to build automated tests of various
|
||||||
|
aspects of ``easy_install``, and supplied the doctests for the command-line
|
||||||
|
``.exe`` wrappers on Windows.
|
||||||
|
|
||||||
|
* Phillip J. Eby is the principal author and maintainer of setuptools, and
|
||||||
|
first proposed the idea of an importable binary distribution format for
|
||||||
|
Python application plug-ins.
|
||||||
|
|
||||||
|
* Significant parts of the implementation of setuptools were funded by the Open
|
||||||
|
Source Applications Foundation, to provide a plug-in infrastructure for the
|
||||||
|
Chandler PIM application. In addition, many OSAF staffers (such as Mike
|
||||||
|
"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:
|
||||||
|
|
||||||
|
Keywords: CPAN PyPI distutils eggs package management
|
||||||
|
Platform: UNKNOWN
|
||||||
|
Classifier: Development Status :: 3 - Alpha
|
||||||
|
Classifier: Intended Audience :: Developers
|
||||||
|
Classifier: License :: OSI Approved :: Python Software Foundation License
|
||||||
|
Classifier: License :: OSI Approved :: Zope Public License
|
||||||
|
Classifier: Operating System :: OS Independent
|
||||||
|
Classifier: Programming Language :: Python
|
||||||
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||||
|
Classifier: Topic :: System :: Archiving :: Packaging
|
||||||
|
Classifier: Topic :: System :: Systems Administration
|
||||||
|
Classifier: Topic :: Utilities
|
@ -34,6 +34,7 @@ setuptools/command/install_scripts.py
|
|||||||
setuptools/command/register.py
|
setuptools/command/register.py
|
||||||
setuptools/command/rotate.py
|
setuptools/command/rotate.py
|
||||||
setuptools/command/saveopts.py
|
setuptools/command/saveopts.py
|
||||||
|
setuptools/command/scriptsetup.py
|
||||||
setuptools/command/sdist.py
|
setuptools/command/sdist.py
|
||||||
setuptools/command/setopt.py
|
setuptools/command/setopt.py
|
||||||
setuptools/command/test.py
|
setuptools/command/test.py
|
@ -4,6 +4,7 @@ rotate = setuptools.command.rotate:rotate
|
|||||||
develop = setuptools.command.develop:develop
|
develop = setuptools.command.develop:develop
|
||||||
setopt = setuptools.command.setopt:setopt
|
setopt = setuptools.command.setopt:setopt
|
||||||
build_py = setuptools.command.build_py:build_py
|
build_py = setuptools.command.build_py:build_py
|
||||||
|
scriptsetup = setuptools.command.scriptsetup:scriptsetup
|
||||||
saveopts = setuptools.command.saveopts:saveopts
|
saveopts = setuptools.command.saveopts:saveopts
|
||||||
egg_info = setuptools.command.egg_info:egg_info
|
egg_info = setuptools.command.egg_info:egg_info
|
||||||
register = setuptools.command.register:register
|
register = setuptools.command.register:register
|
||||||
@ -30,8 +31,8 @@ entry_points.txt = setuptools.command.egg_info:write_entries
|
|||||||
depends.txt = setuptools.command.egg_info:warn_depends_obsolete
|
depends.txt = setuptools.command.egg_info:warn_depends_obsolete
|
||||||
|
|
||||||
[console_scripts]
|
[console_scripts]
|
||||||
easy_install = setuptools.command.easy_install:main
|
easy_install_z-2.6 = setuptools.command.easy_install:main
|
||||||
easy_install-2.5 = setuptools.command.easy_install:main
|
easy_install_z = setuptools.command.easy_install:main
|
||||||
|
|
||||||
[setuptools.file_finders]
|
[setuptools.file_finders]
|
||||||
svn_cvs = setuptools.command.sdist:_default_revctrl
|
svn_cvs = setuptools.command.sdist:_default_revctrl
|
@ -13,7 +13,7 @@ The package resource API is designed to work with normal filesystem packages,
|
|||||||
method.
|
method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sys, os, zipimport, time, re, imp, new, pkgutil # XXX
|
import sys, os, zipimport, time, re, imp
|
||||||
|
|
||||||
try:
|
try:
|
||||||
frozenset
|
frozenset
|
@ -7,7 +7,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.6c15'
|
__version__ = '0.6c16dev'
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'setup', 'Distribution', 'Feature', 'Command', 'Extension', 'Require',
|
'setup', 'Distribution', 'Feature', 'Command', 'Extension', 'Require',
|
||||||
'find_packages'
|
'find_packages'
|
@ -2,7 +2,7 @@ __all__ = [
|
|||||||
'alias', 'bdist_egg', 'bdist_rpm', 'build_ext', 'build_py', 'develop',
|
'alias', 'bdist_egg', 'bdist_rpm', 'build_ext', 'build_py', 'develop',
|
||||||
'easy_install', 'egg_info', 'install', 'install_lib', 'rotate', 'saveopts',
|
'easy_install', 'egg_info', 'install', 'install_lib', 'rotate', 'saveopts',
|
||||||
'sdist', 'setopt', 'test', 'upload', 'install_egg_info', 'install_scripts',
|
'sdist', 'setopt', 'test', 'upload', 'install_egg_info', 'install_scripts',
|
||||||
'register', 'bdist_wininst',
|
'register', 'bdist_wininst', 'scriptsetup',
|
||||||
]
|
]
|
||||||
|
|
||||||
import sys
|
import sys
|
@ -19,6 +19,12 @@ class build_py(_build_py):
|
|||||||
if 'data_files' in self.__dict__: del self.__dict__['data_files']
|
if 'data_files' in self.__dict__: del self.__dict__['data_files']
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
self.old_run()
|
||||||
|
if sys.platform == "win32":
|
||||||
|
from setuptools.command.scriptsetup import do_scriptsetup
|
||||||
|
do_scriptsetup()
|
||||||
|
|
||||||
|
def old_run(self):
|
||||||
"""Build modules, packages, and copy data files to build directory"""
|
"""Build modules, packages, and copy data files to build directory"""
|
||||||
if not self.py_modules and not self.packages:
|
if not self.py_modules and not self.packages:
|
||||||
return
|
return
|
@ -12,6 +12,7 @@ __ http://peak.telecommunity.com/DevCenter/EasyInstall
|
|||||||
import sys, os.path, zipimport, shutil, tempfile, zipfile, re, stat, random
|
import sys, os.path, zipimport, shutil, tempfile, zipfile, re, stat, random
|
||||||
from glob import glob
|
from glob import glob
|
||||||
from setuptools import Command
|
from setuptools import Command
|
||||||
|
from setuptools import __version__ as setuptools_version
|
||||||
from setuptools.sandbox import run_setup
|
from setuptools.sandbox import run_setup
|
||||||
from distutils import log, dir_util
|
from distutils import log, dir_util
|
||||||
from distutils.sysconfig import get_python_lib
|
from distutils.sysconfig import get_python_lib
|
||||||
@ -573,7 +574,7 @@ Please make the appropriate changes for your system and try again.
|
|||||||
|
|
||||||
def install_wrapper_scripts(self, dist):
|
def install_wrapper_scripts(self, dist):
|
||||||
if not self.exclude_scripts:
|
if not self.exclude_scripts:
|
||||||
for args in get_script_args(dist):
|
for args in get_script_args(dist, script_dir=self.script_dir):
|
||||||
self.write_script(*args)
|
self.write_script(*args)
|
||||||
|
|
||||||
|
|
||||||
@ -1086,10 +1087,13 @@ these changes you will not be able to run the installed code.
|
|||||||
log.debug("Checking existing site.py in %s", self.install_dir)
|
log.debug("Checking existing site.py in %s", self.install_dir)
|
||||||
current = open(sitepy,'rb').read()
|
current = open(sitepy,'rb').read()
|
||||||
if not current.startswith('def __boot():'):
|
if not current.startswith('def __boot():'):
|
||||||
raise DistutilsError(
|
print ("**********************************************************************\n"
|
||||||
"%s is not a setuptools-generated site.py; please"
|
"Warning: %s is not a setuptools-generated site.py\n"
|
||||||
" remove it." % sitepy
|
"It will not be overwritten.\n"
|
||||||
)
|
"**********************************************************************\n"
|
||||||
|
) % (sitepy,)
|
||||||
|
self.sitepy_installed = True
|
||||||
|
return
|
||||||
|
|
||||||
if current != source:
|
if current != source:
|
||||||
log.info("Creating %s", sitepy)
|
log.info("Creating %s", sitepy)
|
||||||
@ -1564,86 +1568,85 @@ def fix_jython_executable(executable, options):
|
|||||||
return executable
|
return executable
|
||||||
|
|
||||||
|
|
||||||
def get_script_args(dist, executable=sys_executable, wininst=False):
|
def get_script_args(dist, executable=sys_executable, wininst=False, script_dir=None):
|
||||||
"""Yield write_script() argument tuples for a distribution's entrypoints"""
|
"""Yield write_script() argument tuples for a distribution's entrypoints"""
|
||||||
spec = str(dist.as_requirement())
|
spec = str(dist.as_requirement())
|
||||||
header = get_script_header("", executable, wininst)
|
header = get_script_header("", executable, wininst)
|
||||||
|
generated_by = "# generated by zetuptoolz %s" % (setuptools_version,)
|
||||||
|
|
||||||
for group in 'console_scripts', 'gui_scripts':
|
for group in 'console_scripts', 'gui_scripts':
|
||||||
for name, ep in dist.get_entry_map(group).items():
|
for name, ep in dist.get_entry_map(group).items():
|
||||||
script_text = (
|
script_head, script_tail = ((
|
||||||
"# EASY-INSTALL-ENTRY-SCRIPT: %(spec)r,%(group)r,%(name)r\n"
|
"# EASY-INSTALL-ENTRY-SCRIPT: %(spec)r,%(group)r,%(name)r\n"
|
||||||
|
"%(generated_by)s\n"
|
||||||
"__requires__ = %(spec)r\n"
|
"__requires__ = %(spec)r\n"
|
||||||
"import sys\n"
|
"import sys\n"
|
||||||
"from pkg_resources import load_entry_point\n"
|
"from pkg_resources import load_entry_point\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
) % locals(), (
|
||||||
"sys.exit(\n"
|
"sys.exit(\n"
|
||||||
" load_entry_point(%(spec)r, %(group)r, %(name)r)()\n"
|
" load_entry_point(%(spec)r, %(group)r, %(name)r)()\n"
|
||||||
")\n"
|
")\n"
|
||||||
) % locals()
|
) % locals())
|
||||||
if sys.platform=='win32' or wininst:
|
|
||||||
# On Windows/wininst, add a .py extension and an .exe launcher
|
if wininst or sys.platform == "win32":
|
||||||
|
# On Windows/wininst, add a .py[w] extension. Delete any existing
|
||||||
|
# -script.py[w], .exe, and .exe.manifest.
|
||||||
if group=='gui_scripts':
|
if group=='gui_scripts':
|
||||||
ext, launcher = '-script.pyw', 'gui.exe'
|
ext = '.pyw'
|
||||||
old = ['.pyw']
|
old = ['','.pyw','-script.pyw','.exe','.exe.manifest']
|
||||||
new_header = re.sub('(?i)python.exe','pythonw.exe',header)
|
which_python = 'pythonw.exe'
|
||||||
|
new_header = re.sub('(?i)python.exe', which_python, header)
|
||||||
else:
|
else:
|
||||||
ext, launcher = '-script.py', 'cli.exe'
|
ext = '.pyscript'
|
||||||
old = ['.py','.pyc','.pyo']
|
old = ['','.pyscript','.py','.pyc','.pyo','-script.py','.exe','.exe.manifest']
|
||||||
new_header = re.sub('(?i)pythonw.exe','python.exe',header)
|
which_python = 'python.exe'
|
||||||
|
new_header = re.sub('(?i)pythonw.exe', which_python, header)
|
||||||
|
|
||||||
|
len_ext = len(ext)
|
||||||
|
script_head += (
|
||||||
|
"# If this script doesn't work for you, make sure that the %(ext)s\n"
|
||||||
|
"# extension is included in the PATHEXT environment variable, and is\n"
|
||||||
|
"# associated with %(which_python)s in the registry.\n"
|
||||||
|
"\n"
|
||||||
|
"if sys.argv[0].endswith(%(ext)r):\n"
|
||||||
|
" sys.argv[0] = sys.argv[0][:-%(len_ext)r]\n"
|
||||||
|
"\n"
|
||||||
|
) % locals()
|
||||||
|
|
||||||
if os.path.exists(new_header[2:-1]) or sys.platform != 'win32':
|
if os.path.exists(new_header[2:-1]) or sys.platform != 'win32':
|
||||||
hdr = new_header
|
hdr = new_header
|
||||||
else:
|
else:
|
||||||
hdr = header
|
hdr = header
|
||||||
yield (name+ext, hdr+script_text, 't', [name+x for x in old])
|
yield (name+ext, hdr + script_head + script_tail, 't', [name+x for x in old])
|
||||||
yield (
|
|
||||||
name+'.exe', resource_string('setuptools', launcher),
|
# Also write a shell script that runs the .pyscript, for cygwin.
|
||||||
'b') # write in binary mode
|
#
|
||||||
yield (name+'.exe.manifest', _launcher_manifest % (name,), 't')
|
# We can't use a Python script, because the Python interpreter that we want
|
||||||
|
# to use is the native Windows one, which won't understand a cygwin path.
|
||||||
|
# Windows paths written with forward slashes are universally understood
|
||||||
|
# (by native Python, cygwin Python, and bash), so we'll use 'cygpath -m' to
|
||||||
|
# get the directory from which the script was run in that form. This makes
|
||||||
|
# the cygwin script and .pyscript position-independent, provided they are
|
||||||
|
# in the same directory.
|
||||||
|
|
||||||
|
def quote_path(s):
|
||||||
|
return "\\'".join("'" + p.replace('\\', '/') + "'" for p in s.split("'"))
|
||||||
|
|
||||||
|
pyscript = quote_path("/"+name+ext)
|
||||||
|
python_path = quote_path(sys.executable)
|
||||||
|
shell_script_text = (
|
||||||
|
'#!/bin/sh\n'
|
||||||
|
'%(generated_by)s\n'
|
||||||
|
'\n'
|
||||||
|
'ScriptDir=`cygpath -m "$0/.."`\n'
|
||||||
|
'%(python_path)s "${ScriptDir}"%(pyscript)s "$@"\n'
|
||||||
|
) % locals()
|
||||||
|
yield (name, shell_script_text, 'b')
|
||||||
else:
|
else:
|
||||||
# On other platforms, we assume the right thing to do is to
|
# On other platforms, we assume the right thing to do is to
|
||||||
# just write the stub with no extension.
|
# just write the stub with no extension.
|
||||||
yield (name, header+script_text)
|
yield (name, header + script_head + script_tail)
|
||||||
|
|
||||||
_launcher_manifest = """
|
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
||||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
|
||||||
<assemblyIdentity version="1.0.0.0"
|
|
||||||
processorArchitecture="X86"
|
|
||||||
name="%s.exe"
|
|
||||||
type="win32"/>
|
|
||||||
|
|
||||||
<!-- Identify the application security requirements. -->
|
|
||||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
|
||||||
<security>
|
|
||||||
<requestedPrivileges>
|
|
||||||
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
|
|
||||||
</requestedPrivileges>
|
|
||||||
</security>
|
|
||||||
</trustInfo>
|
|
||||||
</assembly>"""
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def rmtree(path, ignore_errors=False, onerror=auto_chmod):
|
def rmtree(path, ignore_errors=False, onerror=auto_chmod):
|
@ -49,8 +49,13 @@ class install(_install):
|
|||||||
self.path_file = None
|
self.path_file = None
|
||||||
self.extra_dirs = ''
|
self.extra_dirs = ''
|
||||||
|
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
self.old_run()
|
||||||
|
if sys.platform == "win32":
|
||||||
|
from setuptools.command.scriptsetup import do_scriptsetup
|
||||||
|
do_scriptsetup()
|
||||||
|
|
||||||
|
def old_run(self):
|
||||||
# Explicit request for old-style install? Just do it
|
# Explicit request for old-style install? Just do it
|
||||||
if self.old_and_unmanageable or self.single_version_externally_managed:
|
if self.old_and_unmanageable or self.single_version_externally_managed:
|
||||||
return _install.run(self)
|
return _install.run(self)
|
||||||
@ -75,11 +80,6 @@ class install(_install):
|
|||||||
else:
|
else:
|
||||||
self.do_egg_install()
|
self.do_egg_install()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def do_egg_install(self):
|
def do_egg_install(self):
|
||||||
|
|
||||||
easy_install = self.distribution.get_command_class('easy_install')
|
easy_install = self.distribution.get_command_class('easy_install')
|
84
setuptools-0.6c16dev.egg/zetuptoolz.txt
Normal file
84
setuptools-0.6c16dev.egg/zetuptoolz.txt
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
This is the "zetuptoolz" fork of setuptools. This version is forked from
|
||||||
|
setuptools trunk r80621 (which is current as of 2010-08-31), with the following
|
||||||
|
differences:
|
||||||
|
|
||||||
|
|
||||||
|
* Zooko's patches for the following bugs and features have been applied:
|
||||||
|
|
||||||
|
<http://bugs.python.org/setuptools/issue17>
|
||||||
|
"easy_install will install a package that is already there"
|
||||||
|
|
||||||
|
<http://bugs.python.org/setuptools/issue54>
|
||||||
|
"be more like distutils with regard to --prefix="
|
||||||
|
|
||||||
|
<http://bugs.python.org/setuptools/issue53>
|
||||||
|
"respect the PYTHONPATH"
|
||||||
|
|
||||||
|
|
||||||
|
* The following patch to setuptools introduced bugs, and has been reverted
|
||||||
|
in zetuptoolz:
|
||||||
|
|
||||||
|
$ svn log -r 45514
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r45514 | phillip.eby | 2006-04-18 04:03:16 +0100 (Tue, 18 Apr 2006) | 9 lines
|
||||||
|
|
||||||
|
Backport pkgutil, pydoc, and doctest from the 2.5 trunk to setuptools
|
||||||
|
0.7 trunk. (Sideport?) Setuptools 0.7 will install these in place of
|
||||||
|
the 2.3/2.4 versions (at least of pydoc and doctest) to let them work
|
||||||
|
properly with eggs. pkg_resources now depends on the 2.5 pkgutil, which
|
||||||
|
is included here as _pkgutil, to work around the fact that some system
|
||||||
|
packagers will install setuptools without overriding the stdlib modules.
|
||||||
|
But users who install their own setuptools will get them, and the system
|
||||||
|
packaged people probably don't need them.
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
* The scripts written by zetuptoolz have the following extra line:
|
||||||
|
|
||||||
|
# generated by zetuptoolz <version number>
|
||||||
|
|
||||||
|
after the header.
|
||||||
|
|
||||||
|
|
||||||
|
* Windows-specific changes (native Python):
|
||||||
|
|
||||||
|
Python distributions may have command-line or GUI scripts.
|
||||||
|
On Windows, setuptools creates an executable wrapper to run each
|
||||||
|
script. zetuptools uses a different approach that does not require
|
||||||
|
an .exe wrapper. It writes approximately the same script file that
|
||||||
|
is used on other platforms, but with a .pyscript extension.
|
||||||
|
It also writes a shell-script wrapper (without any extension) that
|
||||||
|
is only used when the command is run from a Cygwin shell.
|
||||||
|
|
||||||
|
Some of the advantages of this approach are:
|
||||||
|
|
||||||
|
* Unicode arguments are preserved (although the program will
|
||||||
|
need to use some Windows-specific code to get at them in
|
||||||
|
current versions of Python);
|
||||||
|
* it works correctly on 64-bit Windows;
|
||||||
|
* the zetuptoolz distribution need not contain either any
|
||||||
|
binary executables, or any C code that needs to be compiled.
|
||||||
|
|
||||||
|
See setuptools\tests\win_script_wrapper.txt for further details.
|
||||||
|
|
||||||
|
Installing or building any distribution on Windows will automatically
|
||||||
|
associate .pyscript with the native Python interpreter for the current
|
||||||
|
user. It will also add .pyscript and .pyw to the PATHEXT variable for
|
||||||
|
the current user, which is needed to allow scripts to be run without
|
||||||
|
typing any extension.
|
||||||
|
|
||||||
|
There is an additional setup.py command that can be used to perform
|
||||||
|
these steps separately (which isn't normally needed, but might be
|
||||||
|
useful for debugging):
|
||||||
|
|
||||||
|
python setup.py scriptsetup
|
||||||
|
|
||||||
|
Adding the --allusers option, i.e.
|
||||||
|
|
||||||
|
python setup.py scriptsetup --allusers
|
||||||
|
|
||||||
|
will make the .pyscript association and changes to the PATHEXT variable
|
||||||
|
for all users of this Windows installation, except those that have it
|
||||||
|
overridden in their per-user environment. In this case setup.py must be
|
||||||
|
run with Administrator privileges, e.g. from a Command Prompt whose
|
||||||
|
shortcut has been set to run as Administrator.
|
Loading…
Reference in New Issue
Block a user