classification
Title: Add platlibdir to allow distinction between /usr/lib and /usr/lib64 for Linux
Type: Stage: patch review
Components: Build Versions: Python 3.8
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: carlos.velasco, doko, eric.araujo, mcepl, vstinner
Priority: normal Keywords: patch

Created on 2018-07-03 15:00 by mcepl, last changed 2018-12-17 21:23 by mcepl.

Files
File name Uploaded Description Edit
python-3.6.0-multilib-new.patch mcepl, 2018-07-03 15:00
python-3.6.0-multilib-new-3.patch carlos.velasco, 2018-08-28 07:58 updated patch with "unix_home" lib/lib64
_log.txt mcepl, 2018-12-17 21:22 build logs
Pull Requests
URL Status Linked Edit
PR 8068 open mcepl, 2018-07-03 16:41
Messages (6)
msg320985 - (view) Author: Matej Cepl (mcepl) * Date: 2018-07-03 15:00
Many Linux distribution (most of them) distinguish between library directory /usr/lib for noarch or 32bit libraries and /usr/lib64. This patch (originally from openSUSE) enables to capture this distinction.
msg321052 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2018-07-04 15:37
Fedora python3 patch: https://src.fedoraproject.org/rpms/python3/blob/master/f/00102-lib64.patch
msg321056 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2018-07-04 15:50
Hum. I'm not sure about "unix_home" scheme in distutils. It seems like Fedora still writes files into $HOME/.../lib/... and not $HOME/.../lib64/.... Example on Fedora 28:

vstinner@apu$ python3 -m pip install --user greenlet
Collecting greenlet
  Using cached https://files.pythonhosted.org/packages/dd/ce/7b3a19a3eb8c79e6237ba1fb7a8729b39034dd2de8753b8d27e5abc59fd5/greenlet-0.4.13-cp36-cp36m-manylinux1_x86_64.whl
Installing collected packages: greenlet
Successfully installed greenlet-0.4.13
vstinner@apu$ python3 -m pip uninstall greenlet
Uninstalling greenlet-0.4.13:
  Would remove:
    /home/vstinner/.local/include/python3.6m/greenlet/greenlet.h
    /home/vstinner/.local/lib/python3.6/site-packages/greenlet-0.4.13.dist-info/*
    /home/vstinner/.local/lib/python3.6/site-packages/greenlet.cpython-36m-x86_64-linux-gnu.so
Proceed (y/n)?
msg321180 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2018-07-06 16:24
I think there are open tickets discussing this, and the problem is more complex that a simple PR:

- Debian does multiarch that’s more than just lib/lib64
- some systems have lib32 I think
- recent systems merge / and /usr, is that relevant?
- how does virtualenv follow or customize install schemes
- doko patches Python in Debian and Ubuntu to edit sysconfig/distutils
msg324218 - (view) Author: Carlos Velasco (carlos.velasco) Date: 2018-08-28 07:58
This updated patch fix two missing lib/lib64
It works for me.

# python3-32 -c "import sys; print('\n'.join(sys.path))"
/usr/lib/python37.zip
/usr/lib/python3.7
/usr/lib/python3.7/lib-dynload
/root/.local/lib/python3.7/site-packages
/usr/lib/python3.7/site-packages


# python3-64 -c "import sys; print('\n'.join(sys.path))"  
/usr/lib64/python37.zip
/usr/lib64/python3.7
/usr/lib64/python3.7/lib-dynload
/root/.local/lib64/python3.7/site-packages
/usr/lib64/python3.7/site-packages
msg332025 - (view) Author: Matej Cepl (mcepl) * Date: 2018-12-17 21:22
@carlos.velasco ... OK, so build of 3.7.2rc1 on x86_64 doesn't pass the testsuite (see the attached log).
History
Date User Action Args
2018-12-17 21:23:47mceplsetfiles: + _log.txt

messages: + msg332025
2018-08-28 07:58:50carlos.velascosetfiles: + python-3.6.0-multilib-new-3.patch
nosy: + carlos.velasco
messages: + msg324218

2018-07-06 16:24:49eric.araujosetnosy: + eric.araujo, doko
messages: + msg321180
2018-07-04 15:50:34vstinnersetmessages: + msg321056
2018-07-04 15:37:33vstinnersetmessages: + msg321052
2018-07-03 16:41:14mceplsetstage: patch review
pull_requests: + pull_request7678
2018-07-03 15:00:40mceplcreate