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

ncurses 5 -> 6 transition means we probably need to drop some libraries from the manylinux whitelist #286

Closed
njsmith opened this issue Feb 7, 2017 · 8 comments · Fixed by #287

Comments

@njsmith
Copy link
Member

njsmith commented Feb 7, 2017

The PEP 513 whitelist includes libpanelw.so.5 and libncursesw.so.5, both of which are part of ncurses version 5.

But apparently the new hostness is ncurses 6, which breaks ABI with ncurses 5. I'm told that Fedora 24 and successors have already switched to ncurses 6, with the ncurses 5 libraries being available in a compatibility package, but not installed by default. So... I guess these have to be dropped from the whitelist.

@njsmith
Copy link
Member Author

njsmith commented Feb 7, 2017

Confirmation:
https://gist.github.com/squeaky-pl/8867a701eec5af1eb989f0fc47574924

(Thanks to @squeaky-pl for pointing this out)

@njsmith
Copy link
Member Author

njsmith commented Feb 7, 2017

This might cause some "fun" for people, but so it goes...:

<squeaky_pl> njs, actually distributions don't agree about where to put terminal database files
<squeaky_pl> so it's not trivial either
<njs> .......of course they don't.
<squeaky_pl> I had to patch ncurses for portable pypy to make things work
<squeaky_pl> njs, there are aparently ways to bundle some terminal database info inside ncurses without relying on external databases but I failed to make it work with Python's curses module

I guess anaconda must have noticed this already given that they're now shipping ncurses: https://anaconda.org/anaconda/ncurses

@ogrisel
Copy link
Contributor

ogrisel commented Feb 7, 2017

Is there an easy way to check which projects on pypi rely on ncurses 5 being part of the PEP513 whitelist to be able to notify the maintainers?

@squeaky-pl
Copy link

I manually walked top 20 results for curses and ncurses on pypi and didn't find any manylinux wheels. But of course that doesn't mean they are not there.

@njsmith
Copy link
Member Author

njsmith commented Feb 7, 2017

I don't know of an easy way. I suppose it wouldn't be hard to get a list of all manylinux wheels (via the API or the bigquery download logs – assuming all wheels are downloaded at least once – or asking Donald) and then writing some script to grovel over them to see what libraries they link to. But it would be annoying :-)

Is it a high priority? I guess the default if we do nothing is that projects will be notified by a combination of (a) complaints from Fedora users, and (b) complaints from auditwheel when they try to release a new version.

@ogrisel
Copy link
Contributor

ogrisel commented Feb 15, 2017

(b) complaints from auditwheel when they try to release a new version.

+1

@squeaky-pl
Copy link

squeaky-pl commented Mar 10, 2017

Apparently Sabayon Linux is also using ncurses6. See conda-forge/ncurses-feedstock#29 (comment)

@mayeut
Copy link
Member

mayeut commented May 2, 2020

ncurses has been dropped since manylinux2010.
Shall it be dropped in auditwheel for manylinux1 ?

@mayeut mayeut transferred this issue from pypa/manylinux Feb 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants