Update of /cvsroot/wpdev/xmlscripts/python-lib/distutils/command
In directory sc8-pr-cvs1:/tmp/cvs-serv5168/distutils/command
Modified Files:
__init__.py bdist.py bdist_dumb.py bdist_rpm.py
bdist_wininst.py build.py build_clib.py build_ext.py
build_py.py build_scripts.py clean.py command_template
config.py install.py install_data.py install_headers.py
install_lib.py install_scripts.py sdist.py
Log Message:
Updated to Python 2.3.2
Index: __init__.py
===================================================================
RCS file: /cvsroot/wpdev/xmlscripts/python-lib/distutils/command/__init__.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** __init__.py 21 Dec 2002 14:52:55 -0000 1.2
--- __init__.py 10 Nov 2003 12:44:16 -0000 1.3
***************
*** 4,7 ****
--- 4,9 ----
commands."""
+ # This module should be kept compatible with Python 1.5.2.
+
__revision__ = "$Id$"
***************
*** 18,24 ****
--- 20,33 ----
'install_data',
'sdist',
+ 'register',
'bdist',
'bdist_dumb',
'bdist_rpm',
'bdist_wininst',
+ # These two are reserved for future use:
+ #'bdist_sdux',
+ #'bdist_pkgtool',
+ # Note:
+ # bdist_packager is not included because it only provides
+ # an abstract base class
]
Index: bdist.py
===================================================================
RCS file: /cvsroot/wpdev/xmlscripts/python-lib/distutils/command/bdist.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** bdist.py 21 Dec 2002 14:52:55 -0000 1.2
--- bdist.py 10 Nov 2003 12:44:16 -0000 1.3
***************
*** 4,8 ****
distribution)."""
! # created 2000/03/29, Greg Ward
__revision__ = "$Id$"
--- 4,8 ----
distribution)."""
! # This module should be kept compatible with Python 1.5.2.
__revision__ = "$Id$"
***************
*** 41,46 ****
--- 41,50 ----
"directory to put final built distributions in "
"[default: dist]"),
+ ('skip-build', None,
+ "skip rebuilding everything (for testing/debugging)"),
]
+ boolean_options = ['skip-build']
+
help_options = [
('help-formats', None,
***************
*** 49,65 ****
# The following commands do not take a format option from bdist
! no_format_option = ('bdist_rpm',)
# This won't do in reality: will need to distinguish RPM-ish Linux,
# Debian-ish Linux, Solaris, FreeBSD, ..., Windows, Mac OS.
default_format = { 'posix': 'gztar',
! 'nt': 'zip', }
# Establish the preferred order (for the --help-formats option).
format_commands = ['rpm', 'gztar', 'bztar', 'ztar', 'tar',
! 'wininst', 'zip']
# And the real information.
format_command = { 'rpm': ('bdist_rpm', "RPM distribution"),
'gztar': ('bdist_dumb', "gzip'ed tar file"),
'bztar': ('bdist_dumb', "bzip2'ed tar file"),
--- 53,75 ----
# The following commands do not take a format option from bdist
! no_format_option = ('bdist_rpm',
! #'bdist_sdux', 'bdist_pkgtool'
! )
# This won't do in reality: will need to distinguish RPM-ish Linux,
# Debian-ish Linux, Solaris, FreeBSD, ..., Windows, Mac OS.
default_format = { 'posix': 'gztar',
! 'nt': 'zip',
! 'os2': 'zip', }
# Establish the preferred order (for the --help-formats option).
format_commands = ['rpm', 'gztar', 'bztar', 'ztar', 'tar',
! 'wininst', 'zip',
! #'pkgtool', 'sdux'
! ]
# And the real information.
format_command = { 'rpm': ('bdist_rpm', "RPM distribution"),
+ 'zip': ('bdist_dumb', "ZIP file"),
'gztar': ('bdist_dumb', "gzip'ed tar file"),
'bztar': ('bdist_dumb', "bzip2'ed tar file"),
***************
*** 69,73 ****
"Windows executable installer"),
'zip': ('bdist_dumb', "ZIP file"),
! }
--- 79,86 ----
"Windows executable installer"),
'zip': ('bdist_dumb', "ZIP file"),
! #'pkgtool': ('bdist_pkgtool',
! # "Solaris pkgtool distribution"),
! #'sdux': ('bdist_sdux', "HP-UX swinstall depot"),
! }
***************
*** 77,80 ****
--- 90,94 ----
self.formats = None
self.dist_dir = None
+ self.skip_build = 0
# initialize_options()
***************
*** 125,131 ****
if cmd_name not in self.no_format_option:
sub_cmd.format = self.formats[i]
-
- print ("bdist.run: format=%s, command=%s, rest=%s" %
- (self.formats[i], cmd_name, commands[i+1:]))
# If we're going to need to run this command again, tell it to
--- 139,142 ----
Index: bdist_dumb.py
===================================================================
RCS file: /cvsroot/wpdev/xmlscripts/python-lib/distutils/command/bdist_dumb.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** bdist_dumb.py 21 Dec 2002 14:52:55 -0000 1.2
--- bdist_dumb.py 10 Nov 2003 12:44:16 -0000 1.3
***************
*** 5,9 ****
$exec_prefix)."""
! # created 2000/03/29, Greg Ward
__revision__ = "$Id$"
--- 5,9 ----
$exec_prefix)."""
! # This module should be kept compatible with Python 1.5.2.
__revision__ = "$Id$"
***************
*** 12,17 ****
from distutils.core import Command
from distutils.util import get_platform
! from distutils.dir_util import create_tree, remove_tree
from distutils.errors import *
class bdist_dumb (Command):
--- 12,18 ----
from distutils.core import Command
from distutils.util import get_platform
! from distutils.dir_util import create_tree, remove_tree, ensure_relative
from distutils.errors import *
+ from distutils import log
class bdist_dumb (Command):
***************
*** 31,40 ****
('dist-dir=', 'd',
"directory to put final built distributions in"),
]
! boolean_options = ['keep-temp']
default_format = { 'posix': 'gztar',
! 'nt': 'zip', }
--- 32,47 ----
('dist-dir=', 'd',
"directory to put final built distributions in"),
+ ('skip-build', None,
+ "skip rebuilding everything (for testing/debugging)"),
+ ('relative', None,
+ "build the archive using relative paths"
+ "(default: false)"),
]
! boolean_options = ['keep-temp', 'skip-build', 'relative']
default_format = { 'posix': 'gztar',
! 'nt': 'zip',
! 'os2': 'zip' }
***************
*** 45,49 ****
self.keep_temp = 0
self.dist_dir = None
!
# initialize_options()
--- 52,58 ----
self.keep_temp = 0
self.dist_dir = None
! self.skip_build = 0
! self.relative = 0
!
# initialize_options()
***************
*** 72,82 ****
def run (self):
! self.run_command('build')
install = self.reinitialize_command('install', reinit_subcommands=1)
install.root = self.bdist_dir
install.warn_dir = 0
! self.announce("installing to %s" % self.bdist_dir)
self.run_command('install')
--- 81,93 ----
def run (self):
! if not self.skip_build:
! self.run_command('build')
install = self.reinitialize_command('install', reinit_subcommands=1)
install.root = self.bdist_dir
+ install.skip_build = self.skip_build
install.warn_dir = 0
! log.info("installing to %s" % self.bdist_dir)
self.run_command('install')
***************
*** 85,94 ****
archive_basename = "%s.%s" % (self.distribution.get_fullname(),
self.plat_name)
! self.make_archive(os.path.join(self.dist_dir, archive_basename),
! self.format,
! root_dir=self.bdist_dir)
if not self.keep_temp:
! remove_tree(self.bdist_dir, self.verbose, self.dry_run)
# run()
--- 96,126 ----
archive_basename = "%s.%s" % (self.distribution.get_fullname(),
self.plat_name)
!
! # OS/2 objects to any ":" characters in a filename (such as when
! # a timestamp is used in a version) so change them to hyphens.
! if os.name == "os2":
! archive_basename = archive_basename.replace(":", "-")
!
! pseudoinstall_root = os.path.join(self.dist_dir, archive_basename)
! if not self.relative:
! archive_root = self.bdist_dir
! else:
! if (self.distribution.has_ext_modules() and
! (install.install_base != install.install_platbase)):
! raise DistutilsPlatformError, \
! ("can't make a dumb built distribution where "
! "base and platbase are different (%s, %s)"
! % (repr(install.install_base),
! repr(install.install_platbase)))
! else:
! archive_root = os.path.join(self.bdist_dir,
! ensure_relative(install.install_base))
!
! # Make the archive
! self.make_archive(pseudoinstall_root,
! self.format, root_dir=archive_root)
if not self.keep_temp:
! remove_tree(self.bdist_dir, dry_run=self.dry_run)
# run()
Index: bdist_rpm.py
===================================================================
RCS file: /cvsroot/wpdev/xmlscripts/python-lib/distutils/command/bdist_rpm.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** bdist_rpm.py 21 Dec 2002 14:52:55 -0000 1.2
--- bdist_rpm.py 10 Nov 2003 12:44:16 -0000 1.3
***************
*** 4,8 ****
distributions)."""
! # created 2000/04/25, by Harry Henry Gebel
__revision__ = "$Id$"
--- 4,8 ----
distributions)."""
! # This module should be kept compatible with Python 1.5.2.
__revision__ = "$Id$"
***************
*** 11,18 ****
import glob
from types import *
! from distutils.core import Command, DEBUG
from distutils.util import get_platform
from distutils.file_util import write_file
from distutils.errors import *
class bdist_rpm (Command):
--- 11,20 ----
import glob
from types import *
! from distutils.core import Command
! from distutils.debug import DEBUG
from distutils.util import get_platform
from distutils.file_util import write_file
from distutils.errors import *
+ from distutils import log
class bdist_rpm (Command):
***************
*** 67,71 ****
"list of documentation files (space or comma-separated)"),
('changelog=', None,
! "path to RPM changelog"),
('icon=', None,
"name of icon file"),
--- 69,73 ----
"list of documentation files (space or comma-separated)"),
('changelog=', None,
! "RPM changelog"),
('icon=', None,
"name of icon file"),
***************
*** 128,131 ****
--- 130,134 ----
self.install_script = None
self.clean_script = None
+ self.verify_script = None
self.pre_install = None
self.post_install = None
***************
*** 207,210 ****
--- 210,214 ----
self.ensure_filename('install_script')
self.ensure_filename('clean_script')
+ self.ensure_filename('verify_script')
self.ensure_filename('pre_install')
self.ensure_filename('post_install')
***************
*** 279,283 ****
# build package
! self.announce('building RPMs')
rpm_cmd = ['rpm']
if os.path.exists('/usr/bin/rpmbuild') or \
--- 283,287 ----
# build package
! log.info("building RPMs")
rpm_cmd = ['rpm']
if os.path.exists('/usr/bin/rpmbuild') or \
***************
*** 351,355 ****
spec_file.extend([
! 'Copyright: ' + self.distribution.get_license(),
'Group: ' + self.group,
'BuildRoot: %{_tmppath}/%{name}-buildroot',
--- 355,359 ----
spec_file.extend([
! 'License: ' + self.distribution.get_license(),
'Group: ' + self.group,
'BuildRoot: %{_tmppath}/%{name}-buildroot',
***************
*** 423,426 ****
--- 427,431 ----
"--record=INSTALLED_FILES") % self.python),
('clean', 'clean_script', "rm -rf $RPM_BUILD_ROOT"),
+ ('verifyscript', 'verify_script', None),
('pre', 'pre_install', None),
('post', 'post_install', None),
***************
*** 430,434 ****
for (rpm_opt, attr, default) in script_options:
! # Insert contents of file referred to, if no file is refered to
# use 'default' as contents of script
val = getattr(self, attr)
--- 435,439 ----
for (rpm_opt, attr, default) in script_options:
! # Insert contents of file referred to, if no file is referred to
# use 'default' as contents of script
val = getattr(self, attr)
Index: bdist_wininst.py
===================================================================
RCS file: /cvsroot/wpdev/xmlscripts/python-lib/distutils/command/bdist_wininst.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** bdist_wininst.py 21 Dec 2002 14:52:55 -0000 1.2
--- bdist_wininst.py 10 Nov 2003 12:44:16 -0000 1.3
***************
*** 4,8 ****
exe-program."""
! # created 2000/06/02, Thomas Heller
__revision__ = "$Id$"
--- 4,8 ----
exe-program."""
! # This module should be kept compatible with Python 1.5.2.
__revision__ = "$Id$"
***************
*** 13,16 ****
--- 13,18 ----
from distutils.dir_util import create_tree, remove_tree
from distutils.errors import *
+ from distutils.sysconfig import get_python_version
+ from distutils import log
class bdist_wininst (Command):
***************
*** 37,40 ****
--- 39,47 ----
('title=', 't',
"title to display on the installer background instead of default"),
+ ('skip-build', None,
+ "skip rebuilding everything (for testing/debugging)"),
+ ('install-script=', None,
+ "basename of installation script to be run after"
+ "installation or before deinstallation"),
]
***************
*** 51,54 ****
--- 58,63 ----
self.bitmap = None
self.title = None
+ self.skip_build = 0
+ self.install_script = None
# initialize_options()
***************
*** 62,66 ****
self.target_version = ""
if self.distribution.has_ext_modules():
! short_version = sys.version[:3]
if self.target_version and self.target_version != short_version:
raise DistutilsOptionError, \
--- 71,75 ----
self.target_version = ""
if self.distribution.has_ext_modules():
! short_version = get_python_version()
if self.target_version and self.target_version != short_version:
raise DistutilsOptionError, \
***************
*** 70,73 ****
--- 79,90 ----
self.set_undefined_options('bdist', ('dist_dir', 'dist_dir'))
+ if self.install_script:
+ for script in self.distribution.scripts:
+ if self.install_script == os.path.basename(script):
+ break
+ else:
+ raise DistutilsOptionError, \
+ "install_script '%s' not found in scripts" % \
+ self.install_script
# finalize_options()
***************
*** 81,88 ****
"must be compiled on a Windows 32 platform")
! self.run_command('build')
! install = self.reinitialize_command('install')
install.root = self.bdist_dir
install.warn_dir = 0
--- 98,107 ----
"must be compiled on a Windows 32 platform")
! if not self.skip_build:
! self.run_command('build')
! install = self.reinitialize_command('install', reinit_subcommands=1)
install.root = self.bdist_dir
+ install.skip_build = self.skip_build
install.warn_dir = 0
***************
*** 102,106 ****
value)
! self.announce("installing to %s" % self.bdist_dir)
install.ensure_finalized()
--- 121,125 ----
value)
! log.info("installing to %s", self.bdist_dir)
install.ensure_finalized()
***************
*** 123,131 ****
self.create_exe(arcname, fullname, self.bitmap)
# remove the zip-file again
! self.announce("removing temporary file '%s'" % arcname)
os.remove(arcname)
if not self.keep_temp:
! remove_tree(self.bdist_dir, self.verbose, self.dry_run)
# run()
--- 142,150 ----
self.create_exe(arcname, fullname, self.bitmap)
# remove the zip-file again
! log.debug("removing temporary file '%s'", arcname)
os.remove(arcname)
if not self.keep_temp:
! remove_tree(self.bdist_dir, dry_run=self.dry_run)
# run()
***************
*** 157,160 ****
--- 176,181 ----
# the installer runtime.
lines.append("\n[Setup]")
+ if self.install_script:
+ lines.append("install_script=%s" % self.install_script)
lines.append("info=%s" % repr(info)[1:-1])
lines.append("target_compile=%d" % (not self.no_target_compile))
***************
*** 215,570 ****
def get_exe_bytes (self):
! import base64
! return base64.decodestring(EXEDATA)
# class bdist_wininst
-
- if __name__ == '__main__':
- # recreate EXEDATA from wininst.exe by rewriting this file
- import re, base64
- moddata = open("bdist_wininst.py", "r").read()
- exedata = open("../../misc/wininst.exe", "rb").read()
- print "wininst.exe length is %d bytes" % len(exedata)
- print "wininst.exe encoded length is %d bytes" % len(base64.encodestring(exedata))
- exp = re.compile('EXE'+'DATA = """\\\\(\n.*)*\n"""', re.M)
- data = exp.sub('EXE' + 'DATA = """\\\\\n%s"""' %
- base64.encodestring(exedata), moddata)
- open("bdist_wininst.py", "w").write(data)
- print "bdist_wininst.py recreated"
-
- EXEDATA = """\
- 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
- OwXr+vmE5t5rSpj29PkHl441...
[truncated message content] |