Skip to content

Add platlibdir to allow distinction between /usr/lib and /usr/lib64 for Linux #78213

Closed

Description

@mcepl
mannequin
BPO 34032
Nosy @doko42, @vstinner, @mcepl, @merwok
PRs
  • bpo-34032: Add platlibdir as an option for distinguishing /usr/lib and /usr/lib64 #8068
  • Superseder
  • bpo-1294959: Add sys.platlibdir and configure --with-platlibdir to use /usr/lib64 on Fedora and SuSE
  • Files
  • python-3.6.0-multilib-new.patch
  • python-3.6.0-multilib-new-3.patch: updated patch with "unix_home" lib/lib64
  • _log.txt: build logs
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = <Date 2020-02-12.01:15:18.537>
    created_at = <Date 2018-07-03.15:00:40.071>
    labels = ['build', '3.8']
    title = 'Add platlibdir to allow distinction between /usr/lib and /usr/lib64 for Linux'
    updated_at = <Date 2020-02-12.01:15:18.536>
    user = 'https://github.com/mcepl'

    bugs.python.org fields:

    activity = <Date 2020-02-12.01:15:18.536>
    actor = 'vstinner'
    assignee = 'none'
    closed = True
    closed_date = <Date 2020-02-12.01:15:18.537>
    closer = 'vstinner'
    components = ['Build']
    creation = <Date 2018-07-03.15:00:40.071>
    creator = 'mcepl'
    dependencies = []
    files = ['47668', '47766', '48002']
    hgrepos = []
    issue_num = 34032
    keywords = ['patch']
    message_count = 7.0
    messages = ['320985', '321052', '321056', '321180', '324218', '332025', '361848']
    nosy_count = 5.0
    nosy_names = ['doko', 'vstinner', 'mcepl', 'eric.araujo', 'carlos.velasco']
    pr_nums = ['8068']
    priority = 'normal'
    resolution = 'duplicate'
    stage = 'resolved'
    status = 'closed'
    superseder = '1294959'
    type = None
    url = 'https://bugs.python.org/issue34032'
    versions = ['Python 3.8']

    Activity

    1. mcepl commented on Jul 3, 2018

      mceplmannequin
      MannequinAuthor

      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.

    2. added
      buildThe build process and cross-build
      on Jul 3, 2018
    3. vstinner commented on Jul 4, 2018

      @vstinner
      Member
    4. vstinner commented on Jul 4, 2018

      @vstinner
      Member

      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)?

    5. merwok commented on Jul 6, 2018

      @merwok
      Member

      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
    6. carlosvelasco commented on Aug 28, 2018

      carlosvelascomannequin
      Mannequin

      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

    7. mcepl commented on Dec 17, 2018

      mceplmannequin
      MannequinAuthor

      @carlos.velasco ... OK, so build of 3.7.2rc1 on x86_64 doesn't pass the testsuite (see the attached log).

    8. vstinner commented on Feb 12, 2020

      @vstinner
      Member

      I mark this issue as a duplicate of bpo-1294959.

    9. transferred this issue fromon Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      3.8 (EOL)end of lifebuildThe build process and cross-build

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions