python/dist/src/Lib/distutils/command bdist_wininst.py, 1.46, 1.47
Update of /cvsroot/python/python/dist/src/Lib/distutils/command In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28174 Modified Files: bdist_wininst.py Log Message: Patch #892660 from Mark Hammond, for distutils bdist_wininst command. install.c: support for a 'pre-install-script', run before anything has been installed. Provides a 'message_box' module function for use by either the pre-install or post-install scripts. bdist_wininst.py: support for pre-install script. Typo (build->built), fixes so that --target-version can still work, even when the distribution has extension modules - in this case, we insist on --skip-build, as we still can't actually build other versions. Index: bdist_wininst.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/distutils/command/bdist_wininst.py,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** bdist_wininst.py 12 Jun 2003 17:23:58 -0000 1.46 --- bdist_wininst.py 20 Feb 2004 14:43:03 -0000 1.47 *************** *** 44,47 **** --- 44,51 ---- "basename of installation script to be run after" "installation or before deinstallation"), + ('pre-install-script=', None, + "Fully qualified filename of a script to be run before " + "any files are installed. This script need not be in the " + "distribution"), ] *************** *** 60,63 **** --- 64,68 ---- self.skip_build = 0 self.install_script = None + self.pre_install_script = None # initialize_options() *************** *** 70,78 **** if not self.target_version: 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, \ ! "target version can only be" + short_version self.target_version = short_version --- 75,84 ---- if not self.target_version: self.target_version = "" ! if not self.skip_build and self.distribution.has_ext_modules(): short_version = get_python_version() if self.target_version and self.target_version != short_version: raise DistutilsOptionError, \ ! "target version can only be %s, or the '--skip_build'" \ ! " option must be specified" % (short_version,) self.target_version = short_version *************** *** 110,113 **** --- 116,134 ---- install_lib.compile = 0 install_lib.optimize = 0 + + # If we are building an installer for a Python version other + # than the one we are currently running, then we need to ensure + # our build_lib reflects the other Python version rather than ours. + # Note that for target_version!=sys.version, we must have skipped the + # build step, so there is no issue with enforcing the build of this + # version. + target_version = self.target_version + if not target_version: + assert self.skip_build, "Should have already checked this" + target_version = sys.version[0:3] + plat_specifier = ".%s-%s" % (get_platform(), target_version) + build = self.get_finalized_command('build') + build.build_lib = os.path.join(build.build_base, + 'lib' + plat_specifier) # Use a custom scheme for the zip-file, because we have to decide *************** *** 188,192 **** import time import distutils ! build_info = "Build %s with distutils-%s" % \ (time.ctime(time.time()), distutils.__version__) lines.append("build_info=%s" % build_info) --- 209,213 ---- import time import distutils ! build_info = "Built %s with distutils-%s" % \ (time.ctime(time.time()), distutils.__version__) lines.append("build_info=%s" % build_info) *************** *** 224,227 **** --- 245,253 ---- file.write(bitmapdata) + # Append the pre-install script + cfgdata = cfgdata + "\0" + if self.pre_install_script: + script_data = open(self.pre_install_script, "r").read() + cfgdata = cfgdata + script_data + "\n\0" file.write(cfgdata) header = struct.pack("<iii",
participants (1)
-
thellerï¼ users.sourceforge.net