bdist_wininst: data and scripts

I just check in the following patch for bdist_wininst: (This should fix Bastian's complaints about not including data and scripts into the windows installer)
Modified Files: bdist_wininst.py Log Message: Set the 'nt' installation scheme for the install command even if run on other systems, so that data, headers, scripts are included in the installer.
Index: bdist_wininst.py =================================================================== RCS file: /cvsroot/python/distutils/distutils/command/bdist_wininst.py,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** bdist_wininst.py 2000/09/16 15:56:32 1.12 --- bdist_wininst.py 2000/09/19 11:10:23 1.13 *************** *** 75,78 **** --- 75,89 ---- install = self.reinitialize_command('install') install.root = self.bdist_dir + if os.name != 'nt': + # must force install to use the 'nt' scheme + install.select_scheme ('nt') + # change the backslash to the current pathname separator + for key in ('purelib', 'platlib', 'headers', 'scripts', + 'data'): + attrname = 'install_' + key + attr = getattr (install, attrname) + if attr: + attr = string.replace (attr, '\', os.sep) + setattr (install, attrname, attr)
install_lib = self.reinitialize_command('install_lib') *************** *** 100,111 **** "%s.win32" % fullname)
! # XXX hack! Our archive MUST be relative to sys.prefix ! # XXX What about .install_data, .install_scripts, ...? ! # [Perhaps require that all installation dirs be under sys.prefix ! # on Windows? this will be acceptable until we start dealing ! # with Python applications, at which point we should zip up ! # the application directory -- and again everything can be ! # under one dir --GPW] ! root_dir = install.install_lib arcname = self.make_archive (archive_basename, "zip", root_dir=root_dir) --- 111,128 ---- "%s.win32" % fullname)
! # Our archive MUST be relative to sys.prefix, which is the ! # same as install_lib in the 'nt' scheme. ! root_dir = os.path.normpath (install.install_lib) ! ! # Sanity check: Make sure everything is included ! for key in ('purelib', 'platlib', 'headers', 'scripts', 'data'): ! attrname = 'install_' + key ! install_x = getattr (install, attrname) ! # (Use normpath so that we can string.find to look for ! # subdirectories) ! install_x = os.path.normpath (install_x) ! if string.find (install_x, root_dir) != 0: ! raise DistutilsInternalError \ ! ("'%s' not included in install_lib" % key) arcname = self.make_archive (archive_basename, "zip", root_dir=root_dir)
Thomas
participants (1)
-
Thomas Heller