[Distutils] Re: [Python-checkins] CVS: distutils/distutils/command bdist_wininst.py,1.12,1.13

Greg Ward gward@python.net
Tue Sep 19 20:16:01 2000


On 19 September 2000, Thomas Heller said:
> 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.

Ahh good, I was hoping you'd take care of this.  But:

> *** 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)

I think we can get rid of this hack by changing the INSTALL_SCHEMES
dictionary in install.py to store paths in Unix form, and then convert
to native when they're needed.  That is, the install path "templates" in
install.py would be treated just like install paths in the setup script
(or on the command line) -- convert from foo/bar/baz to foo\bar\baz on
Windows, and foo:bar:baz on Mac OS.  (Modulo Mac OS' peculiar convention
for absolute/relative directories: not sure if 'convert_path()' handles
that completely right.)

        Greg
        Greg
-- 
Greg Ward                                      gward@python.net
http://starship.python.net/~gward/