On 7 December 2013 08:19, Nick Coghlan <ncogh...@gmail.com> wrote:
> That means that you can ship relatively arbitrary software in a wheel
> file by dumping it in "{distribution}-{version}.data/data/<path>", and
> then installing it to the appropriate target location (e.g. if you use
> FHS paths inside the data directory, then you would just need to
> install the wheel as "pip install --root /" to get things into the
> desired location).
>
> However, you'd be forgiven for not realising that from the sysconfig
> docs - I certainly didn't realise it until Daniel pointed it out. From
> the sysconfig docs, I had expected "data" to mean "application data
> files" not "arbitrary, potentially executable, file with no assigned
> semantics".

The problem with what you're proposing (which isn't a change, as you
say, so much as a subtle reinterpretation) is that if you include
something in a wheel under <data>/etc or <data>/usr/include, you *are*
assigning semantics to it - and the semantics you are assigning is
POSIX. That's not a disaster, of course, but can make for a less than
ideal layout on Windows. For example, if packages started putting
config data under "etc" that would not be normal Windows practice.
It's not *bad* per se, just disconcerting (and TBH, when I've seen
this done, it gives the impression of a lazily-ported Unix package).

Also, this paves the way for people starting to put data files under
"<data>/usr/share" or whatever the FHS location is. That is definitely
*not* the Python convention, which is to put the data inside the
package and locate it via package_data(). It also makes the package
fail when used zipped or via tools like py2exe.

So while I have no issue with this practice as a means of dealing with
things like the RPM build issue for purely POSIX packages, I do think
we should be careful about raising its visibility too much.
Personally, I see it as a last resort "escape hatch" for data that
simply cannot be placed in any of the standard Python locations.

Paul
_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to