Houston4444 / RaySession

Session manager for linux musical programs
GNU General Public License v2.0
177 stars 20 forks source link

Support pyliblo3 as well as liblo #234

Closed AdamWill closed 1 week ago

AdamWill commented 1 month ago

pyliblo has not been touched upstream since 2015 and doesn't work out of the box with Python releases since 3.11. There is an actively-maintained fork called 'pyliblo3' at https://github.com/gesellkammer/pyliblo3 which does work with current upstream Python releases. It provides a library called 'pyliblo3' rather than 'liblo'. Let's support it.

There are some odd cases of redundant importing here, but I decided not to 'fix' those, it could be done separately if wanted.

AdamWill commented 1 month ago

I am no kind of audio engineer - just a distribution qa/python guy - but I ran this locally and it does at least run successfully, seems to pick up the audio devices on my system, and let me drag them around. I didn't try doing anything else in case I broke something I wouldn't know how to fix. :D

Houston4444 commented 1 month ago

Hi ! thanks for your PR. I also use and ask to use pyliblo3, as you can see here : https://github.com/Houston4444/RaySession/blob/master/INSTALL.md#running . Original liblo does not works anymore since python3.11. I didn't know that the import name should be changed from liblo to pyliblo3, indeed it works with liblo for me (I use the python3-liblo debian package which use this lib).

There are some odd cases of redundant importing here, but I decided not to 'fix' those, it could be done separately if wanted.

Indeed, I'll largely prefer a little module where all liblo components are imported, then we import this module in the code. Because RaySession use several executables (ray-daemon, raysession, ray-jackpatch, etc...), this little module could be placed in src/shared and linked (relatively) in all projects.

AdamWill commented 1 month ago

AFAICS, Debian is still shipping the original pyliblo, patched to work with Python 3.11 - https://packages.debian.org/sid/python3-liblo . They are not shipping the pyliblo3 fork. This is what we were doing in Fedora until recently as well, but Python 3.13 breaks the original pyliblo even worse than Python 3.11 did, and we found it more convenient to just package the maintained fork than keep trying to patch the zombie original - see the discussion at https://bugzilla.redhat.com/show_bug.cgi?id=2248131 and https://bugzilla.redhat.com/show_bug.cgi?id=2307912 .

It would be possible to ship the fork with some kinda compat link or shim so it provided the liblo name, but I don't think we wanted to do that as it would be a bit unclear and against the intent of upstream.

Houston4444 commented 1 month ago

Ok, Thanks for theses informations !