Aanok / jftui

Jellyfin Terminal User Interface
The Unlicense
149 stars 7 forks source link

incorrect libmpv version detection on OpenBSD #35

Closed ghost closed 1 year ago

ghost commented 1 year ago

jftui version any

Describe the bug jftui fails to run due to incorrect libmpv version being detected for mpv-0.34 on OpenBSD. According to this table the detected for client api seems to be wrong: FATAL: found libmpv version 0.2, but 1.24 or greater is required

To Reproduce

  1. install dependencies
  2. git clone
  3. make && doas make install
  4. run jftui:

Expected behavior Jftui runs without problems

Temporary workaround

  1. (remove any previous jftui install)
  2. git clone
  3. remove line 244 to 260 in main.c
  4. make && doas make install

Jftui will then work without problems / as expected.

Aanok commented 1 year ago

Hmm. Something's really fishy here, if you'd been on mpv 0.35 it would have meant libmpv 2.0 and I'd have thought some error in the version extraction logic was swapping around major and minor numbers (maybe due to endianness nonsense if you had an unusual processor). But mpv 0.34 should have libmpv 1.109.

Are you sure you're linking to a good libmpv binary? If you ldd jftui | grep libmpv and then strings XXX | grep libmpv\.so where XXX is the lib binary what do you get?

EDIT - In fact, since the mpv binary does not link to libmpv (I guess it's directly compiled against the codebase) it's possible the package on your system providing libmpv is very out of date and the library and executable versions don't match up. But then again jftui working at all under these conditions would be absolutely whack so that's probably not it :grin:

ghost commented 1 year ago

Apologies for the late response. Totally forgot this as jftui has been running without issues.

Anywho:

Are you sure you're linking to a good libmpv binary?

Not sure. I have tried the prebuilt package and installing from ports (build from source). Same result.

If you ldd jftui | grep libmpv and then strings XXX | grep libmpv.so where XXX is the lib binary what do you get?

0000080b62c76000 0000080b62ee8000 rlib 0 1 0 /usr/local/lib/libmpv.so.1.0

In fact, since the mpv binary does not link to libmpv (I guess it's directly compiled against the codebase) it's possible the package on your system providing libmpv is very out of date and the library and executable versions don't match up

Should be quite up to date as its from the latest branch (0.34+) with patches for compability.

EDIT: The mpv port has been updated to 0.35, and as you mentioned, includes libmpv2. The correct version is now reported and jftui installs without problems.

Works like a charm. Thanks :)

Aanok commented 1 year ago

Ah, sweet. Usual Linux distro ecosystem shenanigans at work :stuck_out_tongue: