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.

classification
Title: python-config breaks when symlinked to another location
Type: behavior Stage: needs patch
Components: Build Versions: Python 3.11, Python 3.10, Python 3.9
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: christian.heimes, iritkatriel, tobik
Priority: normal Keywords:

Created on 2018-07-14 11:21 by tobik, last changed 2022-04-11 14:59 by admin.

Files
File name Uploaded Description Edit
patch-Misc__python-config.sh.in tobik, 2018-07-14 11:21
Messages (4)
msg321650 - (view) Author: (tobik) Date: 2018-07-14 11:21
When symlinking python3.6-config to another location, it starts
outputting bogus paths.  It's convenient to symlink the system
python3.6-config to somewhere else in PATH to make sure the build
of an application with a hardcoded use of python3-config is using
the right Python version.  This is something that we would like to
do in FreeBSD Ports instead of having to patch build files.

It works fine with python2.7-config.  However when I try a similar
thing with python3.6-config it starts outputting bogus paths.  For
example

$ pwd
/home/tobias
$ python2.7-config --includes
-I/usr/local/include/python2.7 -I/usr/local/include/python2.7
$ ln -s /usr/local/bin/python2.7-config python2-config
$ ./python2-config --includes
-I/usr/local/include/python2.7 -I/usr/local/include/python2.7
$ python3.6-config --includes
-I/usr/local/include/python3.6m -I/usr/local/include/python3.6m
$ ln -s /usr/local/bin/python3.6-config python3-config
$ ./python3-config --includes
-I/home/include/python3.6m -I/home/include/python3.6m

It would be nice if this could just work.  This was on FreeBSD but
the same problem exists on e.g. Void Linux too.

The problem seems to be that the path to the original script is not
resolved properly when trying to determine the install prefix.
Adding realpath(1) to python-config seems to solve it.
msg408055 - (view) Author: Irit Katriel (iritkatriel) * (Python committer) Date: 2021-12-08 23:44
tobik, 3.4/3.5 are no longer maintained. Do you know whether this is impacting current versions (>= 3.9)?
msg408066 - (view) Author: (tobik) Date: 2021-12-09 02:39
Yes, the bug still exists and all Python versions are affected.

We patch them all in FreeBSD Ports:
https://cgit.freebsd.org/ports/tree/lang/python36/files/patch-Misc__python-config.sh.in
https://cgit.freebsd.org/ports/tree/lang/python37/files/patch-Misc__python-config.sh.in
https://cgit.freebsd.org/ports/tree/lang/python38/files/patch-Misc__python-config.sh.in
https://cgit.freebsd.org/ports/tree/lang/python39/files/patch-Misc__python-config.sh.in
https://cgit.freebsd.org/ports/tree/lang/python310/files/patch-Misc__python-config.sh.in
https://cgit.freebsd.org/ports/tree/lang/python311/files/patch-Misc__python-config.sh.in
msg408080 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2021-12-09 08:02
Could you open a PR, please? The fix looks trivial.
History
Date User Action Args
2022-04-11 14:59:03adminsetgithub: 78292
2021-12-09 08:02:36christian.heimessetversions: - Python 3.4, Python 3.5, Python 3.6, Python 3.7, Python 3.8
nosy: + christian.heimes

messages: + msg408080

components: + Build
stage: needs patch
2021-12-09 02:39:14tobiksetstatus: pending -> open

messages: + msg408066
versions: + Python 3.8, Python 3.9, Python 3.10, Python 3.11
2021-12-08 23:44:46iritkatrielsetstatus: open -> pending
nosy: + iritkatriel
messages: + msg408055

2018-07-14 11:21:50tobikcreate