Re: Installation layout of the PyPy 3.8 Fedora package

Miro Hrončok <[email protected]> Thu, 27 Jan 2022 16:03:08 +0100
Newsgroups gmane.comp.python.pypy
Message-ID <[email protected]>
On 27. 01. 22 15:54, Matti Picus wrote:
> 
> On 27/1/22 14:59, Miro Hrončok wrote:
>> ...
>> The only remaining thing is libpypy3.9-c.so in /usr/bin.
>> I'd like to move it to /usr/lib64 where it will be found.
>>
>> Technically, Fedora forbids an unversioned so file there.
>>
>> https://docs.fedoraproject.org/en-US/packaging-guidelines/#_downstream_so_name_versioning 
>>
>>
>> CPython has libpython3.9.so.1.0.
>>
>> $ objdump -p /usr/lib64/libpython3.9.so.1.0 | grep 'SONAME'
>>   SONAME               libpython3.9.so.1.0
>>
>> Do you think PyPy can do this as well? Or is there a reason not to?
>>
>> Thanks!
> 
> 
> (Previously replied privately, sorry about that).
> 
> 
> I tried moving the so to /usr/lib64/libpypy3-c.so.1.0 and adding a symlink to 
> /usr/lib64/libpypy3-c.so.
> 
> After running ldconfig to pick up the new file, I could run pypy3-c, and it 
> seems venv and virtualenv do not complain about missing the shared object.
> 
> 
> So it seems it JustWorks.

In order to be fully SONAME versioned, the file also needs to set SONAME in it. 
It seems it JustWorks as well:


# mv /usr/bin/libpypy3.9-c.so /usr/lib64/libpypy3.9-c.so.1.0
# ln -s libpypy3.9-c.so.1.0 /usr/lib64/libpypy3.9-c.so

# patchelf --set-soname libpypy3.9-c.so.1.0 /usr/lib64/libpypy3.9-c.so.1.0
# objdump -p /usr/lib64/libpypy3.9-c.so.1.0 | grep 'SONAME'
   SONAME               libpypy3.9-c.so.1.0

# pypy3
Python 3.9.10 (5bee8a8dce85, Jan 27 2022, 11:29:45)...


Awesome!
-- 
Miro Hrončok
-- 
Phone: +420777974800
IRC: mhroncok

_______________________________________________
pypy-dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-dev