Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python SDK incompatible with old GLIBC #2628

Open
emilk opened this issue Jul 7, 2023 · 9 comments
Open

Python SDK incompatible with old GLIBC #2628

emilk opened this issue Jul 7, 2023 · 9 comments
Labels
🐧 linux Linux-specific problems 🐍 Python API Python logging API ⛴ release Related to shipping or publishing
Milestone

Comments

@emilk
Copy link
Member

emilk commented Jul 7, 2023

In short

The Rerun Python SDK is incompatible with GLIBC 2.17, and therefore CentOS 7.

I don't know what is our minimum required GLIBC version.

Problem

A user reported trying to use the Rerun Python SDK in a university cluster running CentOS 7, which uses GLIBC 2.17 (released 2012-12-25). The result:

ERROR: Could not find a version that satisfies the requirement rerun-sdk (from versions: none)

The user further reports:

I see that the wheel file on PyPy specifies the platform tag manylinux_2_31 which is incompatible with my GLIBC version (2.17)

Solution

I think the solution is building the wheels on a machine with an old glibc version.

There are some clues here:

We should at least try, and we should also figure out what is the exact minimum GLIBC version required by the Rerun Python SDK.

@emilk emilk added 🐍 Python API Python logging API 🐧 linux Linux-specific problems ⛴ release Related to shipping or publishing labels Jul 7, 2023
@nchodosh
Copy link

nchodosh commented Oct 3, 2023

Hi,

I'm the user who originally created this issue.

My university cluster was updated to CentOS 8 finally but our GLIBC is still only 2.28. I'd really like to try out your tool so I'm wondering if there's any progress on this?

@jleibs
Copy link
Member

jleibs commented Nov 7, 2023

@nchodosh when we tried to do this before we ran into some issues with build environments that were old enough to include the older glibc not having access to a recent enough libgtk3.

However, I just found out that the packages we build for conda-forge are built using an older glibc that should be compatible with centos8.

Is there any possibility you could use the Conda package instead of the pypi wheel?

@Parskatt
Copy link

Ubuntu 18 is still stuck at glibc 2.28 (2.27?), can we get this on pip? Don't like conda installs.

@ducha-aiki
Copy link

My university cluster was updated to CentOS 8 finally but our GLIBC is still only 2.28. I

Exactly my situation as well.

@alexanderswerdlow
Copy link

Same here; our cluster is still on CentOS 7.

I'd imagine that most users on very old glibc versions (maybe not Ubuntu 18, but likely CentOS 7) care less about display support, especially given the excellent support for streaming w/re-run, if that makes things any easier!

@jleibs
Copy link
Member

jleibs commented May 18, 2024

We actually made some good progress on this recently. The viewer is no longer linked into the wheel .so. Instead we bundle a separately built rerun executable which we launch via subprocess. This means these deps shouldn't be necessary for building the wheel anymore.

I think this makes it possible to try moving the wheel-building environment to a manylinux container with an older glibc. I'll try taking a look at this again sometime soon.

@abey79
Copy link
Member

abey79 commented Jul 18, 2024

I noticed that our latest 0.17.0 wheels (linux x86) affectively use 2.29 max. We should consider advertising that version instead of 2.31 as we currently do.

~/Downloads/rerun_sdk-0.17.0-cp38-abi3-manylinux_2_31_x86_64.whl
❯ greadelf -W -s rerun_sdk/rerun_cli/rerun  |  rg -o "@GLIBC_2.[0-9]{2,}[.0-9]*" | sort | uniq
@GLIBC_2.10
@GLIBC_2.12
@GLIBC_2.14
@GLIBC_2.15
@GLIBC_2.17
@GLIBC_2.18
@GLIBC_2.25
@GLIBC_2.27
@GLIBC_2.28
@GLIBC_2.29

~/Downloads/rerun_sdk-0.17.0-cp38-abi3-manylinux_2_31_x86_64.whl
❯ greadelf -W -s rerun_bindings/rerun_bindings.abi3.so |  rg -o "@GLIBC_2.[0-9]{2,}[.0-9]*" | sort | uniq
@GLIBC_2.10
@GLIBC_2.12
@GLIBC_2.14
@GLIBC_2.15
@GLIBC_2.17
@GLIBC_2.18
@GLIBC_2.25
@GLIBC_2.28
@GLIBC_2.29

@teh-cmc
Copy link
Member

teh-cmc commented Sep 23, 2024

@emilk emilk closed this as completed Oct 21, 2024
@emilk emilk reopened this Oct 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐧 linux Linux-specific problems 🐍 Python API Python logging API ⛴ release Related to shipping or publishing
Projects
None yet
Development

No branches or pull requests

8 participants