[Distutils] install_headers,install_data

Greg Ward gward@python.net
Tue, 20 Jun 2000 23:36:21 -0400


On 08 June 2000, Rene Liebscher said:
> when I tried to build a binary distribution
> I found that there were no headers in it.
> (But a normal install worked.)
> Also I found bdist_rpm didn't work with
> headers and data files.
> 
> There were two problems:
> Someone simply forgot the headers in the
> install command.
> 
> From install_headers and install_data
> you couldn't get the copied files (outfiles.)
> (rpm seems to use it.)

Good catch.  Thanks!

> And here is now a patch which solves both
> problems.

OK, I've checked in fixes that were "inspired" by your patch.  Note that
'copy_file()' returns the name of the output file, so there's no need to
override it and generate the filename ourselves; just get the value
returned from 'copy_file()' and append to 'outfiles'

> Shouldn't header files be installed in
> /usr/local/python1.5/include 
> instead of
> /usr/local/python/1.5/include ?

Already fixed, thanks.


> Another problem is that MANIFEST
> is build from two sources.
> 
> MANIFEST.in
>                          > MANIFEST
> parameters of setup()
> 
> If someone changes the parameter of setup()
> the MANIFEST file should be rebuild.

Duh, good point!  So-obvious-I-should-have-thought-of-it-myself.  Again
I checked in a fix strongly inspired by yours.  Another note: 'newer()'
doesn't mind if the *target* doesn't exist; it just returns true,
meaning that the target needs to be regenerated.  So the 'isfile()'
check on 'manifest' is unneeded.

> PS: I send the last version of my cygwin-compiler
> class with this mail.

OK, I just checked it in, unreviewed and untested.  (What the hell.)
Now at least others can try it and it'll get in the next code snapshot,
whenever I do that.

        Greg
-- 
Greg Ward - Unix nerd                                   gward@python.net
http://starship.python.net/~gward/
Laziness, Impatience, Hubris.