This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author indygreg
Recipients indygreg, paul.moore, steve.dower, tim.golden, zach.ware
Date 2020-08-30.21:48:06
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1598824086.3.0.112428112748.issue41669@roundup.psfhosted.org>
In-reply-to
Content
On Windows, `sysconfig.get_path('include')` returns `Include` (capital I).

However, the actual installation path is `include` (lowercase i).

I believe the reason for the case mismatch is in this code in PC/layout/main.py:

```
    if ns.include_dev:

        for dest, src in rglob(ns.source / "Include", "**/*.h"):
            yield "include/{}".format(dest), src
        src = ns.source / "PC" / "pyconfig.h"
        yield "include/pyconfig.h", src
```

The case mismatch is relevant for case sensitive filesystems. In my case, I was extracting a Windows Python install on Linux and then using the `sysconfig` value to locate directories within that install. Due to the case mismatch, Linux says `Include` doesn't exist since `sysconfig` points to "include."

Case only renames can be a bit wonky to perform. I would suggest preserving what is shipped today and changing `sysconfig` to advertise lowercase "include." However, this would create a mismatch between the cpython source repo and built distributions. So maybe attempting the case-only rename is doable.

Note that Windows will not allow you to have a file/directory varying only in case. i.e. you can have both an "include" and "Include." I can't recall if you can perform a case-only rename with a single system call (meaning it is atomic) or whether you need to go through a temporary directory.
History
Date User Action Args
2020-08-30 21:48:06indygregsetrecipients: + indygreg, paul.moore, tim.golden, zach.ware, steve.dower
2020-08-30 21:48:06indygregsetmessageid: <1598824086.3.0.112428112748.issue41669@roundup.psfhosted.org>
2020-08-30 21:48:06indygreglinkissue41669 messages
2020-08-30 21:48:06indygregcreate