Closed ProfP30 closed 1 year ago
Package "Librest" is available from the arch repo at current version 0.9.1-1 but not installed. Installing it changes nothing on the behaviour of Cawbird.
Is the librest package Arch provides compiled for libsoup 3? If yes, that's the issue: Cawbird still is on libsoup 2, and as far as I'm aware you can't mix libsoup 2 and 3 in the same program. However librest can only compiled for version 2 or 3, not both, so Arch probably picked the newer one.
Edit: Just checked on Arch's package website and yes, the librest package seems to use libsoup 3, so there's the issue.
See #464 as an related issue.
Yeah, sounds like it's a librest change if Arch has 0.9.1 in the repos (although the dependencies seem a bit broken if it's not pulled in a 0.8 version or said you've got to remove Cawbird, which is what I'd expect on Deb and RPM-based systems)
The problem is that all versions of Ubuntu up to 22.04, Debian up to Bullseye, all versions of CenOS, Fedora up to 36 and all openSUSE Leap versions still only have (and will only have) v0.8 and so migrating to 0.9 breaks our compatibility for them.
I understand they might have wanted to make breaking changes, but it's a very blinkered view that every app in a distro will be on one version of librest or the other and there won't be ones trying to use the newer/older version.
I had a quick poke around at this because it had been a while since I'd looked at librest and I'd forgotten where we were.
librest 0.9 removed OAuth1 support because "By today most providers should allow to authenticate with OAuth 2.0 and therefore i removed the OAuthProxy from librest" (emphasis mine). The Twitter v1 API doesn't support OAuth 2.
So we could have done conditional code to handle any API changes and supported both versions of the library. Except that librest killed off the part of the API that still works with Twitter v1 because most providers allow OAuth 2 authentication. Not all. Not even "all but the tiny, niche ones that are bit-rotting after five years of being unsupported and only have two regular users". But 'most'. Apparently Twitter isn't big enough for them to care about compatibility.
And Twitter (still?) haven't made Twitter v2 feature complete with v1, meaning that we couldn't migrate any sooner that CodedOre's rewrite.
I'm going to have to close this as "can't fix" and "external". People have to either wait for Cawbird 2.0 or get their distro to somehow package and release both versions of librest and libsoup (and hope that they don't conflict). Surely that's the point of .so numbers?
@IBBoard @ProfP30 My apologizes for pinging, but just wanted to mention that simply installing "rest" (the legacy one) from Arch's extra community repositories solves this!
That's good to know. I'm glad Arch had both versions available. It seems like some distros (like Debian, surprisingly) are dropping the old version and breaking everything that isn't updated at the same time, so I thought it might not work.
Does suggest that the dependencies in Arch aren't quite right, though. It might be good to tell the packager.
Thanks @Impeta for the info. Just wanted to confirm, that installing "rest" from Arch's extra community repository "workarounds" this issue, cawbird is useable again. Thanks a lot!
Describe the bug Program halts with following error message: "cawbird: error while loading shared libraries: librest-0.7.so.0: cannot open shared object file: No such file or directory"
To Reproduce Steps to reproduce the behavior:
Expected behavior Cawbird should open up normally.
Screenshots![cawbird_error](https://user-images.githubusercontent.com/41631425/196727976-51c68994-c9de-4eb2-be2d-c3e1453c4e05.png)
System details: