Open amad3v opened 1 year ago
ldd /path/to/ytui-music
will give you the list of shared library dependencies so you'll see where it's looking for libmpv.so.1
, and then you can put the symlink there.
ldd
won't provide a path if it doesn't exist and I believe it should be in /usr/lib
like the other libs.
The installed version (from AUR):
$ ldd $(which ytui-music)
linux-vdso.so.1 (0x00007ffdf42fd000)
libmpv.so.1 => not found
libssl.so.1.1 => /usr/lib/libssl.so.1.1 (0x00007fa9aeccb000)
libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0x00007fa9ae600000)
libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00007fa9ae4b3000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fa9aecab000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fa9ae9fb000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007fa9ae913000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fa9ae90e000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007fa9ae2cc000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fa9aed99000)
and
$ ldd -v $(which ytui-music) | grep -i libmpv
libmpv.so.1 => not found
The compiled version:
$ ldd ./ytui_music | grep -i libmpv
libmpv.so.2 => /usr/lib/libmpv.so.2 (0x00007fb646c00000)
Yeah, the latest 2.0.0-beta
depends on libmpv.so.1
which doesn't exist on arch anymore, mpv v1:0.35.0-2
provides libmpv.so.2
.
I guess the AUR package is marked out of date for a reason. I suggest you use the manually built binary.
I did link libmpv
in /usr/lib
, as well as libcrypto
and libssl
, but it still complains about their versions, so I don't think it's worth trying to hack it.
In that case even the the already built one won't work as it still require the shared librarylibmpv.so.1
.
I guess will wait for an update.
I meant the prebuilt one from the releases page doesn't work, if you build it manually, it'll depend on libmpv.so.2
, which is fine.
I already tried that as shown in the first post, I didn't post the error as it is the same as the binary one.
Here its log:
__ ___ _ _
\ \ / / |_ _ _(_) _ __ ___ _ _ ___(_) ___
\ V /| __| | | | |_____| '_ ` _ \| | | / __| |/ __|
| | | |_| |_| | |_____| | | | | | |_| \__ \ | (__
|_| \__|\__,_|_| |_| |_| |_|\__,_|___/_|\___|
Author(s): Sudip Ghimire <sudipghimire533@gmail.com>
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: VersionMismatch { linked: 65644, loaded: 131072 }', front-end/src/ui/utils.rs:496:38
stack backtrace:
0: 0x5599766d3dff - std::backtrace_rs::backtrace::libunwind::trace::he615646ea344481f
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x5599766d3dff - std::backtrace_rs::backtrace::trace_unsynchronized::h6ea8eaac68705b9c
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x5599766d3dff - std::sys_common::backtrace::_print_fmt::h7ac486a935ce0bf7
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/sys_common/backtrace.rs:65:5
3: 0x5599766d3dff - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h1b5a095d3db2e28f
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/sys_common/backtrace.rs:44:22
4: 0x5599765cfe8e - core::fmt::write::h445545b92224a1cd
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/core/src/fmt/mod.rs:1209:17
5: 0x5599766a9052 - std::io::Write::write_fmt::h55a43474c6520b00
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/io/mod.rs:1682:15
6: 0x5599766d4f2f - std::sys_common::backtrace::_print::h65d20526fdb736b0
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/sys_common/backtrace.rs:47:5
7: 0x5599766d4f2f - std::sys_common::backtrace::print::h6555fbe12a1cc41b
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/sys_common/backtrace.rs:34:9
8: 0x5599766d4b2d - std::panicking::default_hook::{{closure}}::hbdf58083140e7ac6
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:267:22
9: 0x5599766d5b71 - std::panicking::default_hook::haef8271c56b74d85
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:286:9
10: 0x5599766d5b71 - std::panicking::rust_panic_with_hook::hfd45b6b6c12d9fa5
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:688:13
11: 0x5599766d5662 - std::panicking::begin_panic_handler::{{closure}}::hf591e8609a75bd4b
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:579:13
12: 0x5599766d55ce - std::sys_common::backtrace::__rust_end_short_backtrace::h81899558795e4ff7
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/sys_common/backtrace.rs:137:18
13: 0x5599766d55a1 - rust_begin_unwind
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:575:5
14: 0x55997658ea52 - core::panicking::panic_fmt::h4235fa9b4675b332
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/core/src/panicking.rs:65:14
15: 0x55997658ecf2 - core::result::unwrap_failed::ha17dbf463031a5e1
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/core/src/result.rs:1791:5
16: 0x5599765b39f2 - ytui_music::main::h16da9c18381e226d
17: 0x5599765a10a3 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2327e09819c3047d
18: 0x55997670d769 - std::rt::lang_start::{{closure}}::hf9aaf19e366b42c2
19: 0x5599766a8e74 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h072eb4cd8da964ba
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/core/src/ops/function.rs:286:13
20: 0x5599766a8e74 - std::panicking::try::do_call::h8eca204fe9266946
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:483:40
21: 0x5599766a8e74 - std::panicking::try::h12574e1b7b2cbacb
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:447:19
22: 0x5599766a8e74 - std::panic::catch_unwind::hf71522d4448329d6
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panic.rs:137:14
23: 0x5599766a8e74 - std::rt::lang_start_internal::{{closure}}::h65b66ac9bff580f8
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/rt.rs:148:48
24: 0x5599766a8e74 - std::panicking::try::do_call::hfff61e33ca3db9f1
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:483:40
25: 0x5599766a8e74 - std::panicking::try::he48c8ecead279cad
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:447:19
26: 0x5599766a8e74 - std::panic::catch_unwind::hd510a26bfc950ccc
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panic.rs:137:14
27: 0x5599766a8e74 - std::rt::lang_start_internal::hc680b25eab888da9
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/rt.rs:148:20
28: 0x5599765b4774 - main
29: 0x7f82274ef290 - <unknown>
30: 0x7f82274ef34a - __libc_start_main
31: 0x5599765a0fa5 - _start
at /build/glibc/src/glibc/csu/../sysdeps/x86_64/start.S:115
32: 0x0 - <unknown>
[1] 13227 IOT instruction (core dumped) RUST_BACKTRACE=full ./ytui_music run
The error originated from a version check:
let mpv = libmpv::Mpv::new().unwrap();
which is a call to
Mpv::with_initializer(|_| Ok(()))
that checks the libmpv
version
let api_version = unsafe { libmpv_sys::mpv_client_api_version() };
if crate::MPV_CLIENT_API_MAJOR != api_version >> 16 {
return Err(Error::VersionMismatch {
linked: crate::MPV_CLIENT_API_VERSION,
loaded: api_version,
});
}
It works if I comment the last bit of the code and recompile but the sound is bit off...
Same issue here (starting from libmpv), I tried to build from source and getting
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: VersionMismatch { linked: 65644, loaded: 131072 }', front-end/src/ui/utils.rs:496:38
stack backtrace:
0: 0x55e697f7f8e6 - std::backtrace_rs::backtrace::libunwind::trace::h6982528d5cca6f90
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x55e697f7f8e6 - std::backtrace_rs::backtrace::trace_unsynchronized::h061c47d064ba9746
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x55e697f7f8e6 - std::sys_common::backtrace::_print_fmt::h340e5b18fcf1338e
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/sys_common/backtrace.rs:65:5
3: 0x55e697f7f8e6 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h411b55ca01d935c2
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/sys_common/backtrace.rs:44:22
4: 0x55e697e7497c - core::fmt::write::hd3958a6cee3e08c1
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/core/src/fmt/mod.rs:1209:17
5: 0x55e697f54564 - std::io::Write::write_fmt::hf48b1a8a092a15e1
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/io/mod.rs:1682:15
6: 0x55e697f80e9b - std::sys_common::backtrace::_print::h47b4320fc34f81e5
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/sys_common/backtrace.rs:47:5
7: 0x55e697f80e9b - std::sys_common::backtrace::print::h69fe66b3b80a68d1
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/sys_common/backtrace.rs:34:9
8: 0x55e697f8066f - std::panicking::default_hook::{{closure}}::h4332630e65e37bf3
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:267:22
9: 0x55e697f8170c - std::panicking::default_hook::h3433d803896c8bd9
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:286:9
10: 0x55e697f8170c - std::panicking::rust_panic_with_hook::he522607577f60554
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:688:13
11: 0x55e697f811c2 - std::panicking::begin_panic_handler::{{closure}}::ha5dcf4cab1a8dbd6
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:579:13
12: 0x55e697f81136 - std::sys_common::backtrace::__rust_end_short_backtrace::hd6b58a543a780286
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/sys_common/backtrace.rs:137:18
13: 0x55e697f81120 - rust_begin_unwind
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/std/src/panicking.rs:575:5
14: 0x55e697e32872 - core::panicking::panic_fmt::h13f856077d656cf7
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/core/src/panicking.rs:65:14
15: 0x55e697e32b12 - core::result::unwrap_failed::h0d4235e70e5f68f4
at /rustc/69f9c33d71c871fc16ac445211281c6e7a340943/library/core/src/result.rs:1791:5
16: 0x55e697e568cc - ytui_music::main::h12b17e0dcca333ca
17: 0x55e697e45ed3 - std::sys_common::backtrace::__rust_begin_short_backtrace::hf09f10fa5861dd02
18: 0x55e697e57af7 - main
19: 0x7fb732354290 - <unknown>
20: 0x7fb73235434a - __libc_start_main
21: 0x55e697e440c5 - _start
at /build/glibc/src/glibc/csu/../sysdeps/x86_64/start.S:115
22: 0x0 - <unknown>
Aborted (core dumped)
same problem, core dumped. Builded from source. OS: ArchLinux
$> mpv --version
mpv 0.35.0 Copyright © 2000-2022 mpv/MPlayer/mplayer2 projects
built on UNKNOWN
FFmpeg library versions:
libavutil 57.28.100
libavcodec 59.37.100
libavformat 59.27.100
libswscale 6.7.100
libavfilter 8.44.100
libswresample 4.7.100
FFmpeg version: n5.1.2
$> ldd -r /usr/bin/ytui-music|grep mpv
libmpv.so.2 => /usr/lib/libmpv.so.2 (0x00007f25f4800000)
@Junker does pacman -Ql | grep lib
list libmpv.so
somewhere?
$> pacman -Ql | grep libmpv
mpv /usr/lib/libmpv.so
mpv /usr/lib/libmpv.so.2
mpv /usr/lib/libmpv.so.2.0.0
$> pacman -Ql mpv | grep lib
mpv /usr/lib/
mpv /usr/lib/libmpv.so
mpv /usr/lib/libmpv.so.2
mpv /usr/lib/libmpv.so.2.0.0
...
Same problem with Debian testing, libmpv no more available.
I'm not sure if my issue is on the same context here, but I'm reporting anyways. I'm using MacOS, and downloaded the prebuilt version from https://github.com/sudipghimire533/ytui-music/releases/tag/v2.0.0-beta.
When I launch, it says "dyld[76289]: Library not loaded: /usr/local/opt/mpv/lib/libmpv.2.dylib
Referenced from:
It seems like libmpv-rs is a bit outdated and its last release was over 2 years ago.
This issue can be fixed by building libmpv-rs from git. I tested by playing some music and it seems to work fine.
--- a/front-end/Cargo.toml
+++ b/front-end/Cargo.toml
@@ -10,7 +10,7 @@
tui = { version = "0.16", features = ["crossterm"], default-features = false }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
-libmpv = "2.0"
+libmpv = { git = "https://github.com/ParadoxSpiral/libmpv-rs.git" }
fetcher = { path = "../fetcher" }
lazy_static = "1.4.0"
config = { path = "../config" }
M1 Max
✦ ❯ ytui_music-macos
dyld[97120]: Library not loaded: '/usr/local/opt/mpv/lib/libmpv.2.dylib'
Referenced from: '/usr/local/bin/ytui_music-macos'
Reason: tried: '/usr/local/opt/mpv/lib/libmpv.2.dylib' (no such file), '/usr/local/lib/libmpv.2.dylib' (no such file), '/usr/lib/libmpv.2.dylib' (no such file)
Abort trap: 6
I couldn't figure out where the problem is coming from, looking at the open issues on the mpv github.
I am on Gentoo, mpv
is emerged with libmpv flag, but
$ ldd ytui_music-linux-amd64
linux-vdso.so.1 (0x00007fff53ed0000)
libmpv.so.1 => not found
libssl.so.3 => not found
libcrypto.so.3 => not found
libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/12/libgcc_s.so.1 (0x00007f27dddd0000)
libm.so.6 => /lib64/libm.so.6 (0x00007f27ddcf5000)
libc.so.6 => /lib64/libc.so.6 (0x00007f27ddb20000)
/lib64/ld-linux-x86-64.so.2 (0x00007f27de245000)
I cannot build from source.
$ ls /usr/lib64/ | rg mpv
libmpv.so.2
libmpv.so.2.0.0
but
Compiling ytui_music v2.0.0-beta (/home/chriselrod/Documents/libraries/ytui-music/front-end)
error: linking with `cc` failed: exit status: 1
|
= note: LC_ALL="C" PATH="/usr/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/chriselrod/.local/bin/:/usr/local/bin/:/home/chriselrod/.cargo/bin/:/home/chriselrod/Documents/spack/bin/:/bin/:/usr/bin/" VSLANG="1033" "cc" "-m64" "/tmp/rustc73Eurx/symbols.o" "/home/chriselrod/Documents/libraries/ytui-music/target/release/deps/ytui_music-306af0a3c6719b27.ytui_music.aee20eee-cgu.7.rcgu.o" "-Wl,--as-needed" "-L" "/home/chriselrod/Documents/libraries/ytui-music/target/release/deps" "-L" "/usr/lib64/" "-L" "/home/chriselrod/Documents/libraries/ytui-music/target/release/build/libsqlite3-sys-b0b7e50ad01a63c7/out" "-L" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/tmp/rustc73Eurx/liblibsqlite3_sys-67b94b592e8a0d6f.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-9ecb324617e98731.rlib" "-Wl,-Bdynamic" "-lmpv" "-lssl" "-lcrypto" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/home/chriselrod/Documents/libraries/ytui-music/target/release/deps/ytui_music-306af0a3c6719b27" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs"
= note: /bin/ld: cannot find -lmpv: No such file or directory
collect2: error: ld returned 1 exit status
I tried
RUSTFLAGS="$RUSTFLAGS -L /usr/lib64/" cargo build --all --release
Not the exact same problem -- reports seem to be about finding libmpv with built binaries. But still about not finding libmpv.so
. I'm on latest main
.
Also
ldconfig -p | grep libmpv.so
(standard input): libmpv.so.2 (libc6,x86-64) => /usr/lib64/libmpv.so.2
Applying the patch
--- a/front-end/Cargo.toml
+++ b/front-end/Cargo.toml
@@ -10,7 +10,7 @@ crossterm = { version = "0.20", features = ["event-stream"] }
tui = { version = "0.16", features = ["crossterm"], default-features = false }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
-libmpv = { version = "2.0.1" }
+libmpv = { git = "https://github.com/ParadoxSpiral/libmpv-rs.git" }
fetcher = { path = "../fetcher" }
lazy_static = "1.4.0"
config = { path = "../config" }
did not fix it for me.
Error on run
RUST_BACKTRACE=full ytui-music run
outuputCreating a link to
libmpv.so.2
doesn't work.RUST_BACKTRACE=full ytui-music run
outuput