[Python-checkins] commit of r41673 - in sandbox/trunk/setuptools: EasyInstall.txt setuptools.txt setuptools/command/bdist_rpm.py setuptools/command/install.py

phillip.eby python-checkins at python.org
Wed Dec 14 19:10:12 CET 2005


Author: phillip.eby
Date: Wed Dec 14 19:10:11 2005
New Revision: 41673
Modified:
 sandbox/trunk/setuptools/EasyInstall.txt
 sandbox/trunk/setuptools/setuptools.txt
 sandbox/trunk/setuptools/setuptools/command/bdist_rpm.py
 sandbox/trunk/setuptools/setuptools/command/install.py
Log:
Added a ``--single-version-externally-managed`` option to the ``install``
command so that you can more easily wrap a "flat" egg in a system package.
Enhanced ``bdist_rpm`` so that it installs single-version eggs that
don't rely on a ``.pth`` file. The ``--no-egg`` option has been removed,
since all RPMs are now built in a more backwards-compatible format.
Some work is now needed for easy_install to recognize bdist_wininst 
.exe's that wrap these new flat eggs, as currently the .egg-info will 
not be recognized.
Modified: sandbox/trunk/setuptools/EasyInstall.txt
==============================================================================
--- sandbox/trunk/setuptools/EasyInstall.txt	(original)
+++ sandbox/trunk/setuptools/EasyInstall.txt	Wed Dec 14 19:10:11 2005
@@ -874,6 +874,10 @@
 the shortest one. This helps to avoid "table of contents" CGI URLs like the
 ones on effbot.org.
 
+ * Quote arguments to python.exe (including python's path) to avoid problems
+ when Python (or a script) is installed in a directory whose name contains
+ spaces on Windows.
+
 0.6a8
 * Update for changed SourceForge mirror format
 
Modified: sandbox/trunk/setuptools/setuptools.txt
==============================================================================
--- sandbox/trunk/setuptools/setuptools.txt	(original)
+++ sandbox/trunk/setuptools/setuptools.txt	Wed Dec 14 19:10:11 2005
@@ -1629,6 +1629,25 @@
 them in a ``[develop]`` section or on the command line.
 
 
+``easy_install`` - Find and install packages
+============================================
+
+This command runs the `EasyInstall tool
+<http://peak.telecommunity.com/DevCenter/EasyInstall>`_ for you. It is exactly
+equivalent to running the ``easy_install`` command. All command line arguments
+following this command are consumed and not processed further by the distutils,
+so this must be the last command listed on the command line. Please see
+the EasyInstall documentation for the options reference and usage examples.
+Normally, there is no reason to use this command via the command line, as you
+can just use ``easy_install`` directly. It's only listed here so that you know
+it's a distutils command, which means that you can:
+
+* create command aliases that use it,
+* create distutils extensions that invoke it as a subcommand, and
+* configure options for it in your ``setup.cfg`` or other distutils config
+ files.
+
+
 .. _egg_info:
 
 ``egg_info`` - Create egg metadata and set build tags
@@ -1717,6 +1736,47 @@
 no ``package_dir`` set, this option defaults to the current directory.
 
 
+``install`` - Run ``easy_install`` or old-style installation
+============================================================
+
+The setuptools ``install`` command is basically a shortcut to run the
+``easy_install`` command on the current project. However, for convenience
+in creating "system packages" of setuptools-based projects, you can also
+use this option:
+
+``--single-version-externally-managed``
+ This boolean option tells the ``install`` command to perform an "old style"
+ installation, with the addition of an ``.egg-info`` directory so that the
+ installed project will still have its metadata available and operate
+ normally. If you use this option, you *must* also specify the ``--root``
+ or ``--record`` options (or both), because otherwise you will have no way
+ to identify and remove the installed files.
+
+This option is automatically in effect when ``install`` is invoked by another
+distutils command, so that commands like ``bdist_wininst`` and ``bdist_rpm``
+will create system packages of eggs.
+
+
+``install_egg_info`` - Install an ``.egg-info`` directory in ``site-packages``
+==============================================================================
+
+Setuptools runs this command as part of ``install`` operations that use the
+``--single-version-externally-managed`` options. You should not invoke it
+directly; it is documented here for completeness and so that distutils
+extensions such as system package builders can make use of it. This command
+has only one option:
+
+``--install-dir=DIR, -d DIR``
+ The parent directory where the ``.egg-info`` directory will be placed.
+ Defaults to the same as the ``--install-dir`` option specified for the
+ ``install_lib`` command, which is usually the system ``site-packages``
+ directory.
+
+This command assumes that the ``egg_info`` command has been given valid options
+via the command line or ``setup.cfg``, as it will invoke the ``egg_info``
+command and use its options to locate the project's source ``.egg-info``
+directory.
+
 
 .. _rotate:
 
@@ -2185,6 +2245,13 @@
 ``install`` operations, that installs an ``.egg-info`` directory with the
 package.
 
+ * Added a ``--single-version-externally-managed`` option to the ``install``
+ command so that you can more easily wrap a "flat" egg in a system package.
+
+ * Enhanced ``bdist_rpm`` so that it installs single-version eggs that
+ don't rely on a ``.pth`` file. The ``--no-egg`` option has been removed,
+ since all RPMs are now built in a more backwards-compatible format.
+
 0.6a8
 * Fixed some problems building extensions when Pyrex was installed, especially
 with Python 2.4 and/or packages using SWIG.
Modified: sandbox/trunk/setuptools/setuptools/command/bdist_rpm.py
==============================================================================
--- sandbox/trunk/setuptools/setuptools/command/bdist_rpm.py	(original)
+++ sandbox/trunk/setuptools/setuptools/command/bdist_rpm.py	Wed Dec 14 19:10:11 2005
@@ -6,12 +6,6 @@
 
 class bdist_rpm(_bdist_rpm):
 
- user_options = _bdist_rpm.user_options + [
- ('no-egg', None, "Don't install as an egg (may break the package!)")
- ]
-
- boolean_options = _bdist_rpm.boolean_options + ['no-egg']
-
 def initialize_options(self):
 _bdist_rpm.initialize_options(self)
 self.no_egg = None
@@ -31,24 +25,16 @@
 "Source0: %{name}-%{version}.tar",
 "Source0: %{name}-%{unmangled_version}.tar"
 ).replace(
+ "setup.py install ",
+ "setup.py install --single-version-externally-managed "
+ ).replace(
 "%setup",
 "%setup -n %{name}-%{unmangled_version}"
 ).replace(line23,line24)
 for line in spec
 ]
 spec.insert(spec.index(line24)+1, "%define unmangled_version "+version)
-
-
- if not self.no_egg:
- return spec
-
- # Hack the spec file so that we install old-style
- return [
- line.replace(
- "setup.py install ","setup.py install --old-and-unmanageable "
- ) for line in spec
- ]
-
+ return spec
 
 
 
Modified: sandbox/trunk/setuptools/setuptools/command/install.py
==============================================================================
--- sandbox/trunk/setuptools/setuptools/command/install.py	(original)
+++ sandbox/trunk/setuptools/setuptools/command/install.py	Wed Dec 14 19:10:11 2005
@@ -1,29 +1,47 @@
 import setuptools, sys
 from distutils.command.install import install as _install
+from distutils.errors import DistutilsArgError
 
 class install(_install):
 """Use easy_install to install the package, w/dependencies"""
 
 user_options = _install.user_options + [
 ('old-and-unmanageable', None, "Try not to use this!"),
+ ('single-version-externally-managed', None,
+ "used by system package builders to create 'flat' eggs"),
 ]
 
- boolean_options = _install.boolean_options + ['old-and-unmanageable']
+ boolean_options = _install.boolean_options + [
+ 'old-and-unmanageable', 'single-version-externally-managed',
+ ]
+
+ sub_commands = _install.sub_commands + [
+ ('install_egg_info', lambda self: True),
+ ]
 
 def initialize_options(self):
 _install.initialize_options(self)
 self.old_and_unmanageable = None
+ self.single_version_externally_managed = None
 self.no_compile = None # make DISTUTILS_DEBUG work right!
 
+ def finalize_options(self):
+ _install.initialize_options(self)
+ if self.single_version_externally_managed:
+ if not self.root and not self.record:
+ raise DistutilsArgError(
+ "You must specify --record or --root when building system"
+ " packages"
+ )
+
 def handle_extra_path(self):
- # We always ignore extra_path, because we always install eggs
- # (you can always use install_* commands directly if needed)
+ # We always ignore extra_path, because we install as .egg or .egg-info
 self.path_file = None
 self.extra_dirs = ''
 
 def run(self):
- if (self.old_and_unmanageable or
- sys._getframe(1).f_globals.get('__name__','') != 'distutils.dist'
+ if (self.old_and_unmanageable or self.single_version_externally_managed
+ or sys._getframe(1).f_globals.get('__name__','') != 'distutils.dist'
 ):
 # Either we were asked for the old behavior, or we're not being
 # run from the command line. This is a bit kludgy, because a
@@ -50,24 +68,6 @@
 cmd.run()
 setuptools.bootstrap_install_from = None
 
- sub_commands = _install.sub_commands + [
- ('install_egg_info', lambda self: True),
- ]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 
 
 


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /