Re: Installation layout of the PyPy 3.8 Fedora package
Matti Picus <[email protected]> Sat, 4 Dec 2021 20:18:03 +0200
| Newsgroups | gmane.comp.python.pypy |
|---|---|
| Message-ID | <[email protected]> |
On 2/12/21 8:45 pm, Miro Hrončok wrote: > Hello PyPy folks, > > I co-maintain the PyPy and CPython interpreter packages in Fedora Thanks for supporting PyPy > We basically took the advice from > https://doc.pypy.org/en/latest/build.html > That documentation may now need some updating. > Several different versions of pypy (e.g. 3.6 and 3.7) could be > installed alongside each other, as long as only one of them "owned" > /usr/bin/pypy3. > > > This e.g. means that the standard library is installed in: > > /usr/lib64/pypy3.8/lib/pypy3.8/ > > Or the header files are in: > > /usr/lib64/pypy3.8/include/pypy3.8/ > > Double namespacing like this seems a bit overengineered, and since the > idea was to resemble CPython, I was aiming at this setup: > ... It seems reasonable that PyPy should follow CPython's lead in layout. > Which would be the exact copy of our CPython setup | sed s/python/pypy/ > Indeed, that is the goal. > However, I found 4 problems: > > 1) The PyPy install scheme only has "lib", not "lib64" > > I think we could sort this by a tiny patch that we used to carry in > CPython 3.8 before configurable platlibdir was introduced in 3.9. > If it is part of CPython 3.9, it should be part of PyPy 3.9 as well. Can you check that the latest nightly at https://buildbot.pypy.org/nightly/py3.9/ indeed no longer needs that change? > > 2) The /usr/include/PyPy.h file is *not* namespaced with PyPy Python > version > > I don't know if we even need to ship this file. It seems deprecated. > Maybe it can be in /usr/include/pypy3.8/PyPy.h? > I was confused by this as well. As Armin pointed out, it was part of the older cffi embedding code, and I think it can be dropped. See https://foss.heptapod.net/pypy/pypy/-/issues/3608 > > 3) /usr/bin/pypy3.8 is a symbolic link to /usr/bin/pypy3 > > I would expect it to be the other way around This makes sense. For testing, we need pypy3, but can create it as a symlink already as part of the build. > > 4) The /usr/bin/libpypy3-c.so file is *not* namespaced and seems > misplaced > > This is the one thing I cannot wrap my head around. I do not wish to > install this file "globally" to /usr/bin This also makes sense and some ideas were floated in other responses to this thread. It would be best if someone with a plan could open an issue for discussion, and even better a PR. > > So, I am asking on this list: How should we package PyPy 3.8 for > Fedora? Do we need to install it to /usr/lib64/pypy3.8/ prefix even > thou most (but not all) of the directories within would contain a > "pypy3.8" subdirectory? Or is there a better option I do not yet see? > While it is too late for pypy3.8, now is the time to tweak pypy3.9. I am not sure what support you expect from PyPy to recreate the same layout as the one used in CPython. Are there patches we can upstream? There are other repackagers: debian, BSD, and conda-forge, so any changes would need to be done with an eye toward not breaking their workflow as well. Matti _______________________________________________ pypy-dev mailing list [email protected] https://mail.python.org/mailman/listinfo/pypy-dev