jami-daemon issues
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues
2022-01-05T18:21:57Z
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/672
auto-answer - handle media change request
2022-01-05T18:21:57Z
Mohamed Chibani
auto-answer - handle media change request
If an account is configured in auto-answer mode, media change requests must be automatically accepted too. This also means that if the original call was an audio-only call, and the caller added the video, the camera must be enabled, unle...
If an account is configured in auto-answer mode, media change requests must be automatically accepted too. This also means that if the original call was an audio-only call, and the caller added the video, the camera must be enabled, unless the video is disabled in the account settings.
Currently, when the call is an audio-only call, only the video of the caller is added.
Mohamed Chibani
Mohamed Chibani
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/671
Call re-invite - avoid negotiating new ICE media when muting/un-muting the video
2022-02-24T21:22:29Z
Mohamed Chibani
Call re-invite - avoid negotiating new ICE media when muting/un-muting the video
Currently, when a re-invite is requested to mute/un-mute the video, a new ICE media (if ICE is enabled) will be negotiated.
Renegotiating a new ICE session should be necessary only if the media transport needs to change; for instance, wh...
Currently, when a re-invite is requested to mute/un-mute the video, a new ICE media (if ICE is enabled) will be negotiated.
Renegotiating a new ICE session should be necessary only if the media transport needs to change; for instance, when adding the video to an audio-only call. In most other cases, the current ICE session can be re-used as is.
Mohamed Chibani
Mohamed Chibani
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/670
The build system ignores system argon2 library and tries to download its own'...
2021-12-08T21:23:45Z
Sergey Alirzaev
The build system ignores system argon2 library and tries to download its own's during the build process unconditionally.
Maing it awkward to package jami-daemon in a distro.
Maing it awkward to package jami-daemon in a distro.
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/669
videoInput: calling self lock daemon
2022-12-06T18:16:32Z
Sébastien Blin
videoInput: calling self lock daemon
# Scenario
Account A call account B on same device (in auto answer)
# Expected
It should not block
# Current result
Blocked
cc @aberaud
# Scenario
Account A call account B on same device (in auto answer)
# Expected
It should not block
# Current result
Blocked
cc @aberaud
Olivier Dion
Sébastien Blin
Olivier Dion
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/667
jami-daemon crashes while performing tls handshake
2021-11-17T22:34:36Z
FuchtelJockel
jami-daemon crashes while performing tls handshake
Continuation from issue #573
I compiled a lot of different versions of jami-daemon and found the first commit that introduced the tls issues. On this first broken commit the daemon didn't crash but couldn't perform a successful handshak...
Continuation from issue #573
I compiled a lot of different versions of jami-daemon and found the first commit that introduced the tls issues. On this first broken commit the daemon didn't crash but couldn't perform a successful handshake.
Log from commit 2053afe9 but the regression likely stems from 6d4630bf:
```
[1636931798.072| 182|tls_session.cpp :1059 ] [TLS] Start client session
[1636931798.080| 182|tls_session.cpp :530 ] [TLS] User identity loaded
[1636931798.080| 182|tls_session.cpp :1155 ] [TLS] handshake
...
[1636931827.631| 85|connectionmanager.cpp:334 ] no response from DHT to E2E request.
...
[1636931838.080| 182|tls_session.cpp :1163 ] [TLS] handshake failed: Die Zeit für den Vorgang wurde überschritten (time out)
[1636931838.081| 182|connectionmanager.cpp:710 ] TLS connection failure for peer 9cba26f5eb24ad71f8842c62ea5c5f2f577ef005326722789a69fc9f77168e3f - Initied by DHT request. Vid: 2958016247017314
```
Commit 2a676123 is first to crash jami-daemon with this error:
```
[1636933396.203| 146|tls_session.cpp :1059 ] [TLS] Start client session
[1636933396.211| 146|tls_session.cpp :530 ] [TLS] User identity loaded
[1636933396.212| 146|tls_session.cpp :1155 ] [TLS] handshake
/usr/include/c++/10.2.0/bits/stl_vector.h:1063: std::vector<_Tp, _Alloc>::const_reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) const [with _Tp = jami::IpAddr; _Alloc = std::allocator<jami::IpAddr>; std::vector<_Tp, _Alloc>::const_reference = const jami::IpAddr&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed.
```
To sum it up:
- 6d4630bf to b98db961 make tls handshakes fail
- 2a676123 and onward make jami-daemon crash
- the last working commit is: 43136e05
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/666
Call re-invite - restart media only after successful ICE negotiation
2022-01-05T18:21:56Z
Sébastien Blin
Call re-invite - restart media only after successful ICE negotiation
If media transport uses ICE, and when a new media session is negotiated (incoming or outgoing re-invite) the current ICE session must be kept until the new ICE session is successfully negotiated, and the media is stopped and restarted us...
If media transport uses ICE, and when a new media session is negotiated (incoming or outgoing re-invite) the current ICE session must be kept until the new ICE session is successfully negotiated, and the media is stopped and restarted using the new ICE session.
If the new session fails, the media transport must continue using the current ICE session.
# Scenario
+ In a call cut video
# Expected
+ the remote video should not be cut and retrieved a few secs after
# Current
During the negotiation remote video/audio is stopped and a glitch is seen
Mohamed Chibani
Mohamed Chibani
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/665
swarm: removeContact("self") removes all swarm
2021-11-26T15:15:24Z
Sébastien Blin
swarm: removeContact("self") removes all swarm
# Scenario
Click on remove contact on a conversation with self => it removes all conv
# Scenario
Click on remove contact on a conversation with self => it removes all conv
Sébastien Blin
Sébastien Blin
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/664
Swarm: Bad conversation re-appearing
2021-11-26T15:15:25Z
Sébastien Blin
Swarm: Bad conversation re-appearing
# Scenario
+ Alice 1 device, Bob 2 devices (bob1, bob2)
+ Alice adds Bob
+ Bob1 accepts
+ Now Alice, Bob1 and Bob2 see the conversation
+ Bob2 removes Alice
# Expected
Bob1 and Bob2 should not see Alice
# Current result
Bob2 see an ...
# Scenario
+ Alice 1 device, Bob 2 devices (bob1, bob2)
+ Alice adds Bob
+ Bob1 accepts
+ Now Alice, Bob1 and Bob2 see the conversation
+ Bob2 removes Alice
# Expected
Bob1 and Bob2 should not see Alice
# Current result
Bob2 see an invite from Alice for the previous conversation
Sébastien Blin
Sébastien Blin
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/663
Swarm: JAMS, conversation with self appears
2021-11-26T15:15:26Z
Sébastien Blin
Swarm: JAMS, conversation with self appears
Hard to reproduce, I will add details later, but I think it's something related to removeContact + multidevices.
Hard to reproduce, I will add details later, but I think it's something related to removeContact + multidevices.
Sébastien Blin
Sébastien Blin
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/661
unknown PortAudio functions
2023-12-27T18:02:17Z
Nick Econopouly
unknown PortAudio functions
Where are the functions `Pa_GetDefaultCommInputDevice()` and `Pa_GetDefaultCommOutputDevice();`? I can't find them in the PortAudio API.
(In `src/media/audio/portaudio/portaudiolayer.cpp` line 482)
If I replace them with their analogs...
Where are the functions `Pa_GetDefaultCommInputDevice()` and `Pa_GetDefaultCommOutputDevice();`? I can't find them in the PortAudio API.
(In `src/media/audio/portaudio/portaudiolayer.cpp` line 482)
If I replace them with their analogs `Pa_GetDefaultInputDevice()` and `Pa_GetDefaultOutputDevice`, I get a linking error:
```
FAILED: bin/dbus/jamid
c++ -o bin/dbus/jamid bin/dbus/jamid.p/dbuscallmanager.cpp.o bin/dbus/jamid.p/dbusclient.cpp.o bin/dbus/jamid.p/dbusconfigurationmanager.cpp.o bin/dbus/jamid.p/dbusinstance.cpp.o bin/dbus/jamid.p/dbuspresencemanager.cpp.o bin/dbus/jamid.p/main.cpp.o bin/dbus/jamid.p/dbusvideomanager.cpp.o bin/dbus/jamid.p/dbuspluginmanagerinterface.cpp.o -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group src/libjami.a /home/wrycode/build/jami-daemon-git/src/ring-daemon/contrib/x86_64-pc-linux-gnu/lib/libdbus-c++-1.a /usr/lib/libdbus-1.so -pthread /home/wrycode/build/jami-daemon-git/src/ring-daemon/contrib/x86_64-pc-linux-gnu/lib/libopendht.a /home/wrycode/build/jami-daemon-git/src/ring-daemon/contrib/x86_64-pc-linux-gnu/lib/libhttp_parser.a /usr/lib/libgnutls.so /usr/lib/libnettle.so /usr/lib/libargon2.so -lrt -ldl /usr/lib/libjsoncpp.so /usr/lib/libssl.so /usr/lib/libcrypto.so /home/wrycode/build/jami-daemon-git/src/ring-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjsua2-x86_64-pc-linux-gnu.a /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../lib/libstdc++.so /home/wrycode/build/jami-daemon-git/src/ring-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjsua-x86_64-pc-linux-gnu.a /home/wrycode/build/jami-daemon-git/src/ring-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjsip-ua-x
86_64-pc-linux-gnu.a /home/wrycode/build/jami-daemon-git/src/ring-daemon/contrib/x86_64-pc-linux-g
nu/lib/libpjsip-simple-x86_64-pc-linux-gnu.a /home/wrycode/build/jami-daemon-git/src/ring-daemon/c
ontrib/x86_64-pc-linux-gnu/lib/libpjsip-x86_64-pc-linux-gnu.a /home/wrycode/build/jami-daemon-git/
src/ring-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjmedia-codec-x86_64-pc-linux-gnu.a /home/wryco
de/build/jami-daemon-git/src/ring-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjmedia-videodev-x86_6
4-pc-linux-gnu.a /home/wrycode/build/jami-daemon-git/src/ring-daemon/contrib/x86_64-pc-linux-gnu/l
ib/libpjmedia-audiodev-x86_64-pc-linux-gnu.a /home/wrycode/build/jami-daemon-git/src/ring-daemon/c
ontrib/x86_64-pc-linux-gnu/lib/libpjmedia-x86_64-pc-linux-gnu.a /home/wrycode/build/jami-daemon-gi
t/src/ring-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjnath-x86_64-pc-linux-gnu.a /home/wrycode/bu
ild/jami-daemon-git/src/ring-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjlib-util-x86_64-pc-linux-
gnu.a /home/wrycode/build/jami-daemon-git/src/ring-daemon/contrib/x86_64-pc-linux-gnu/lib/libpj-x8
6_64-pc-linux-gnu.a /home/wrycode/build/jami-daemon-git/src/ring-daemon/contrib/x86_64-pc-linux-gn
u/lib/libsrtp-x86_64-pc-linux-gnu.a /home/wrycode/build/jami-daemon-git/src/ring-daemon/contrib/x8
6_64-pc-linux-gnu/lib/libyuv-x86_64-pc-linux-gnu.a /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../.
./../lib/libopus.so /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../lib/libvpx.so /usr/lib/gcc
/x86_64-pc-linux-gnu/11.1.0/../../../../lib/libuuid.so -lm -lpthread /usr/lib/gcc/x86_64-pc-linux-
gnu/11.1.0/../../../../lib/libgnutls.so /usr/lib/libgit2.so /usr/lib/libsecp256k1.so /usr/lib/liba
vcodec.so /usr/lib/libavfilter.so /usr/lib/libavdevice.so /usr/lib/libavformat.so /usr/lib/libswsc
ale.so /usr/lib/libswresample.so /usr/lib/libavutil.so /usr/lib/libspeexdsp.so /home/wrycode/build
/jami-daemon-git/src/ring-daemon/contrib/x86_64-pc-linux-gnu/lib/libfmt.a /usr/lib/libyaml-cpp.so
/usr/lib/libz.so /usr/lib/libasound.so /usr/lib/libpulse.so /usr/lib/libjack.so /usr/lib/libportau
dio.so /home/wrycode/build/jami-daemon-git/src/ring-daemon/contrib/x86_64-pc-linux-gnu/lib/libupnp
.a /home/wrycode/build/jami-daemon-git/src/ring-daemon/contrib/x86_64-pc-linux-gnu/lib/libixml.a -
lnatpmp /usr/lib/libwebrtc_audio_processing.so /usr/lib/libudev.so /usr/lib/libarchive.so -Wl,--en
d-group
/usr/bin/ld: src/libjami.a(jamidht_jamiaccount.cpp.o): in function `std::_MakeUniq<jami::TransferC
hannelHandler>::__single_object std::make_unique<jami::TransferChannelHandler, std::shared_ptr<jam
i::JamiAccount>, jami::ConnectionManager&>(std::shared_ptr<jami::JamiAccount>&&, jami::ConnectionM
anager&)':
/usr/include/c++/11.1.0/bits/unique_ptr.h:962: undefined reference to `jami::TransferChannelHandle
r::TransferChannelHandler(std::shared_ptr<jami::JamiAccount> const&, jami::ConnectionManager&)'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
```
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/660
Conference, various crash on peer exit
2021-11-24T14:58:45Z
Sébastien Blin
Conference, various crash on peer exit
# Scenario
+ Alice call Bob
+ Alice adds Carla to the conference
+ Bob stop
+ Crash
```
0x00007fffedfe7364 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator std::basic_string_view<char, std::c...
# Scenario
+ Alice call Bob
+ Alice adds Carla to the conference
+ Bob stop
+ Crash
```
0x00007fffedfe7364 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator std::basic_string_view<char, std::char_traits<char> >() const () from /lib64/libstdc++.so.6
(gdb) bt
#0 0x00007fffedfe7364 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator std::basic_string_view<char, std::char_traits<char> >() const () at /lib64/libstdc++.so.6
#1 0x00007fffec0f563c in std::less<void>::_S_cmp<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string_view<char, std::char_traits<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string_view<char, std::char_traits<char> > const&, std::integral_constant<bool, false>) (__t=<error reading variable: Cannot access memory at address 0x40>, __u="") at /usr/include/c++/10/bits/stl_function.h:601
#2 0x00007fffec0f569f in std::less<void>::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string_view<char, std::char_traits<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string_view<char, std::char_traits<char> > const&) const (this=0xc3c6c8, __t=<error reading variable: Cannot access memory at address 0x40>, __u="") at /usr/include/c++/10/bits/stl_function.h:586
#3 0x00007fffec0f0eeb in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::_Identity<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::less<void>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_lower_bound_tr<std::basic_string_view<char, std::char_traits<char> >, void>(std::basic_string_view<char, std::char_traits<char> > const&) const (this=0xc3c6c8, __k="") at /usr/include/c++/10/bits/stl_tree.h:1346
#4 0x00007fffec0eb35e in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::_Identity<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::less<void>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_find_tr<std::basic_string_view<char, std::char_traits<char> >, void>(std::basic_string_view<char, std::char_traits<char> > const&) const (this=0xc3c6c8, __k="") at /usr/include/c++/10/bits/stl_tree.h:1314
#5 0x00007fffec0e63b3 in std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<void>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::find<std::basic_string_view<char, std::char_traits<char> > >(std::basic_string_view<char, std::char_traits<char> > const&) const (this=0xc3c6c8, __x="") at /usr/include/c++/10/bits/stl_set.h:812
#6 0x00007fffec0d9002 in jami::Conference::isModerator(std::basic_string_view<char, std::char_traits<char> >) const (this=0xc3c4a0, uri="") at conference.cpp:946
#7 0x00007fffec0d327a in operator()() const (__closure=0x7ffe9e2422c0) at conference.cpp:100
#8 0x00007fffec0dc11a in operator()() (this=0x7ffe9e2422c0) at manager.h:1057
#9 0x00007fffec0de730 in std::__invoke_impl<void, jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/10/bits/invoke.h:60
#10 0x00007fffec0ddef4 in std::__invoke_r<void, jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#11 0x00007fffec0dd337 in std::_Function_handler<void(), jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
at /usr/include/c++/10/bits/std_function.h:291
#12 0x00007fffec1328d8 in std::function<void ()>::operator()() const (this=0x7ffe9e5d5e40) at /usr/include/c++/10/bits/std_function.h:622
#13 0x00007fffec205ce3 in jami::ScheduledExecutor::loop() (this=0xdc94a0) at scheduled_executor.cpp:137
#14 0x00007fffec2052a1 in operator()() const (__closure=0xe2e828) at scheduled_executor.cpp:32
#15 0x00007fffec207212 in std::__invoke_impl<void, jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#16 0x00007fffec2071c7 in std::__invoke<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(struct {...} &&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#17 0x00007fffec207174 in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0xe2e828) at /usr/include/c++/10/thread:264
#18 0x00007fffec207148 in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::operator()(void) (this=0xe2e828) at /usr/include/c++/10/thread:271
#19 0x00007fffec20712c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > > >::_M_run(void) (this=0xe2e820) at /usr/include/c++/10/thread:215
#20 0x00007fffedf38444 in execute_native_thread_routine () at /lib64/libstdc++.so.6
#21 0x00007fffed9513f9 in start_thread () at /lib64/libpthread.so.0
#22 0x00007fffedc354c3 in clone () at /lib64/libc.so.6
```
```
Thread 72 "jami-qt" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffebaffd640 (LWP 3232921)]
std::_Rb_tree<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*, std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*>, std::allocator<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_lower_bound (this=0x817f990, __x=0xc, __y=0x817f998, __k=@0x7ffebaff92f0: 0xd117170) at /usr/include/c++/10/bits/stl_tree.h:1937
1937 if (!_M_impl._M_key_compare(_S_key(__x), __k))
(gdb) bt
#0 std::_Rb_tree<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*, std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*>, std::allocator<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_lower_bound(std::_Rb_tree_node<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::_Rb_tree_node_base*, jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const&) (this=0x817f990, __x=0xc, __y=0x817f998, __k=@0x7ffebaff92f0: 0xd117170) at /usr/include/c++/10/bits/stl_tree.h:1937
#1 0x00007fffec0ea361 in std::_Rb_tree<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*, std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*>, std::allocator<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::find(jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const&) (this=0x817f990, __k=@0x7ffebaff92f0: 0xd117170)
at /usr/include/c++/10/bits/stl_tree.h:2555
#2 0x00007fffec0e6513 in std::map<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*>, std::allocator<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::find(jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const&) (this=0x817f990, __x=@0x7ffebaff92f0: 0xd117170)
at /usr/include/c++/10/bits/stl_map.h:1170
#3 0x00007fffec0d9af9 in jami::Conference::detachVideo(jami::Observable<std::shared_ptr<DRing::MediaFrame> >*) (this=0x817f860, frame=0xd117170) at conference.cpp:610
#4 0x00007fffec324a1a in jami::video::VideoRtpSession::setupConferenceVideoPipeline(jami::Conference&) (this=0xd120760, conference=...) at ./media/video/video_rtp_session.cpp:352
#5 0x00007fffec324795 in jami::video::VideoRtpSession::setupVideoPipeline() (this=0xd120760) at ./media/video/video_rtp_session.cpp:324
#6 0x00007fffec3242dc in jami::video::VideoRtpSession::start(std::unique_ptr<jami::IceSocket, std::default_delete<jami::IceSocket> >, std::unique_ptr<jami::IceSocket, std::default_delete<jami::IceSocket> >)
(this=0xd120760, rtp_sock=std::unique_ptr<jami::IceSocket> = {...}, rtcp_sock=std::unique_ptr<jami::IceSocket> = {...}) at ./media/video/video_rtp_session.cpp:271
#7 0x00007fffec37350e in jami::SIPCall::startAllMedia() (this=0xd117280) at ./sip/sipcall.cpp:2037
#8 0x00007fffec3756b4 in jami::SIPCall::onIceNegoSucceed() (this=0xd117280) at ./sip/sipcall.cpp:2472
#9 0x00007fffec378a1e in operator()() const (__closure=0x7ffb880099c0) at ./sip/sipcall.cpp:3129
#10 0x00007fffec37c878 in operator()() (this=0x7ffb880099c0) at ./manager.h:1057
#11 0x00007fffec3825e2 in std::__invoke_impl<void, jami::runOnMainThread<jami::SIPCall::initIceMediaTransport(bool, std::optional<jami::IceTransportOptions>)::<lambda(bool)>::<lambda()> >::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/10/bits/invoke.h:60
#12 0x00007fffec3813d2 in std::__invoke_r<void, jami::runOnMainThread<jami::SIPCall::initIceMediaTransport(bool, std::optional<jami::IceTransportOptions>)::<lambda(bool)>::<lambda()> >::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#13 0x00007fffec37f7c3 in std::_Function_handler<void(), jami::runOnMainThread<jami::SIPCall::initIceMediaTransport(bool, std::optional<jami::IceTransportOptions>)::<lambda(bool)>::<lambda()> >::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
at /usr/include/c++/10/bits/std_function.h:291
#14 0x00007fffec134480 in std::function<void ()>::operator()() const (this=0x7ffb880098f0) at /usr/include/c++/10/bits/std_function.h:622
#15 0x00007fffec20789d in jami::ScheduledExecutor::loop() (this=0xdcc320) at scheduled_executor.cpp:137
#16 0x00007fffec206e5b in operator()() const (__closure=0xdfcab8) at scheduled_executor.cpp:32
#17 0x00007fffec208dcc in std::__invoke_impl<void, jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#18 0x00007fffec208d81 in std::__invoke<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(struct {...} &&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#19 0x00007fffec208d2e in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0xdfcab8) at /usr/include/c++/10/thread:264
#20 0x00007fffec208d02 in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::operator()(void) (this=0xdfcab8) at /usr/include/c++/10/thread:271
#21 0x00007fffec208ce6 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > > >::_M_run(void) (this=0xdfcab0) at /usr/include/c++/10/thread:215
#22 0x00007fffedf38444 in execute_native_thread_routine () at /lib64/libstdc++.so.6
#23 0x00007fffed9513f9 in start_thread () at /lib64/libpthread.so.0
#24 0x00007fffedc354c3 in clone () at /lib64/libc.so.6
```
```
0x00007fffedf23e53 in std::_Rb_tree_increment(std::_Rb_tree_node_base const*) () from /lib64/libstdc++.so.6
(gdb) bt
#0 0x00007fffedf23e53 in std::_Rb_tree_increment(std::_Rb_tree_node_base const*) () at /lib64/libstdc++.so.6
#1 0x00007fffec0e6993 in std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::operator++() (this=0x7ffecaff92d8) at /usr/include/c++/10/bits/stl_tree.h:368
#2 0x00007fffec0dd8e7 in jami::Conference::isHost(std::basic_string_view<char, std::char_traits<char> >) const (this=0x9448cf0, uri="host") at conference.cpp:1158
#3 0x00007fffec0dc040 in jami::Conference::isHandRaised(std::basic_string_view<char, std::char_traits<char> >) const (this=0x9448cf0, uri="host") at conference.cpp:948
#4 0x00007fffec0d634d in operator()() const (__closure=0x7ffafc4be450) at conference.cpp:108
#5 0x00007fffec0dee4c in operator()() (this=0x7ffafc4be450) at manager.h:1057
#6 0x00007fffec0e045e in std::__invoke_impl<void, jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/10/bits/invoke.h:60
#7 0x00007fffec0e005c in std::__invoke_r<void, jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#8 0x00007fffec0dfa21 in std::_Function_handler<void(), jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
at /usr/include/c++/10/bits/std_function.h:291
#9 0x00007fffec134480 in std::function<void ()>::operator()() const (this=0x7ffb241e8d40) at /usr/include/c++/10/bits/std_function.h:622
#10 0x00007fffec20789d in jami::ScheduledExecutor::loop() (this=0xdcb3a0) at scheduled_executor.cpp:137
#11 0x00007fffec206e5b in operator()() const (__closure=0xde11c8) at scheduled_executor.cpp:32
#12 0x00007fffec208dcc in std::__invoke_impl<void, jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#13 0x00007fffec208d81 in std::__invoke<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(struct {...} &&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#14 0x00007fffec208d2e in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0xde11c8) at /usr/include/c++/10/thread:264
#15 0x00007fffec208d02 in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::operator()(void) (this=0xde11c8) at /usr/include/c++/10/thread:271
#16 0x00007fffec208ce6 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > > >::_M_run(void) (this=0xde11c0) at /usr/include/c++/10/thread:215
#17 0x00007fffedf38444 in execute_native_thread_routine () at /lib64/libstdc++.so.6
#18 0x00007fffed9513f9 in start_thread () at /lib64/libpthread.so.0
#19 0x00007fffedc354c3 in clone () at /lib64/libc.so.6
(gdb)
```
Sébastien Blin
Sébastien Blin
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/659
swarm: stay in "Already fetching for"
2021-12-01T21:30:50Z
Sébastien Blin
swarm: stay in "Already fetching for"
Sometime, communication between 2 same devices is blocked.
In the logs, I see "Already fetching for"
For now, no scenario is identified
Sometime, communication between 2 same devices is blocked.
In the logs, I see "Already fetching for"
For now, no scenario is identified
Sébastien Blin
Sébastien Blin
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/658
Lag with decodingAccelerated: true
2021-12-23T21:54:34Z
Sébastien Blin
Lag with decodingAccelerated: true
In fact I see 3 bugs:
1. In `SinkClient::update`
doTransfer is True even if video-split is not used yet (cf Conference::sendConferenceInfos(), no delay if createSinks is commented). This must be false if sink is not used. This means th...
In fact I see 3 bugs:
1. In `SinkClient::update`
doTransfer is True even if video-split is not used yet (cf Conference::sendConferenceInfos(), no delay if createSinks is commented). This must be false if sink is not used. This means that registerSinkClient is done in LRC even if sink is not used
2. HAVE_SHM is true if libwrap is true in LRC. We should change the configure to have enable-shm with dbus and not with libwrap.
3. `HardwareAccel::transferToMainMemory` is called for every participant, for every sink client. It should be done only once and then cropped by the sink clients.
Sébastien Blin
Sébastien Blin
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/657
conference/RDV - remote participant crash when changing layout
2021-11-16T22:04:31Z
Mohamed Chibani
conference/RDV - remote participant crash when changing layout
Scenario as reported:
- configure an account as RDV, and add participants
- the moderator toggles the layout between ONE_BIG and GRID (mosaic)
- sometimes, one of the remote participants crashes
[UPDATE] might be fixed by [#580](https:/...
Scenario as reported:
- configure an account as RDV, and add participants
- the moderator toggles the layout between ONE_BIG and GRID (mosaic)
- sometimes, one of the remote participants crashes
[UPDATE] might be fixed by [#580](https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/580), need confirmation \
[UPDATE 2] was not reproduced since the merge of [#580](https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/580)
Mohamed Chibani
Sébastien Blin
Mohamed Chibani
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/656
Use review.jami.net/pjproject
2021-11-01T19:16:08Z
Sébastien Blin
Use review.jami.net/pjproject
this will make our review quicker
this will make our review quicker
Sébastien Blin
Sébastien Blin
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/654
"SEGV on unknown address" For SIP
2021-10-27T21:56:02Z
vindicatorr
"SEGV on unknown address" For SIP
I built and installed master of everything a moment ago.
I ran jami-qt and enabled my SIP account I had previously set up (not sure I ever actually connected before from previous tests).
This caused the crash.
After everything sett...
I built and installed master of everything a moment ago.
I ran jami-qt and enabled my SIP account I had previously set up (not sure I ever actually connected before from previous tests).
This caused the crash.
After everything settled, I manually ran:
```
$ /usr/local/libexec/jamid -cd
Jami Daemon 10.1.0-68f1732948, by Savoir-faire Linux 2004-2019
https://jami.net/
[Video support enabled]
[Plugins support enabled]
[1634724962.374|16769|ringbuffer.cpp :55 ] Create new RingBuffer audiolayer_id
[1634724962.375|16769|manager.cpp :727 ] Not initialized
[1634724962.375|16769|manager.cpp :727 ] Not initialized
05:16:02.392 os_core_unix.c !pjlib 2.11 for POSIX initialized
[1634724962.392|16769|manager.cpp :798 ] Using PJSIP version 2.11 for x86_64-pc-linux-gnu
[1634724962.392|16769|manager.cpp :799 ] Using GnuTLS version 3.7.2
[1634724962.392|16769|manager.cpp :800 ] Using OpenDHT version 2.3.0
[1634724962.392|16769|manager.cpp :801 ] Using FFmpeg version n4.4
[1634724962.392|16769|manager.cpp :804 ] Using Libgit2 version 1.2.0
[1634724962.393|16769|sipvoiplink.cpp :659 ] Using SIP nameserver: 1.1.1.1
[1634724962.393|16769|sipvoiplink.cpp :659 ] Using SIP nameserver: 9.9.9.9
[1634724962.393|16769|sipvoiplink.cpp :659 ] Using SIP nameserver: 8.8.8.8
[1634724962.394|16769|sipvoiplink.cpp :753 ] SIPVoIPLink@<sanitized>
[1634724962.394|16769|manager.cpp :820 ] Configuration file path: /home/username/.config/jami/dring.yml
[1634724962.397|16769|accel.cpp :206 ] -- Starting encoding init for cuda with default device.
[AVHWDeviceContext @ 0x609000000700] Cannot load libcuda.so.1
[AVHWDeviceContext @ 0x609000000700] Could not dynamically load CUDA
[1634724962.397|16769|accel.cpp :171 ] Failed to create cuda device: -1313558101.
[1634724962.397|16769|accel.cpp :221 ] -- Init failed for cuda with default device.
[1634724962.398|16769|accel.cpp :228 ] -- Init encoding for cuda with device 1.
[AVHWDeviceContext @ 0x609000000a40] Cannot load libcuda.so.1
[AVHWDeviceContext @ 0x609000000a40] Could not dynamically load CUDA
[1634724962.398|16769|accel.cpp :171 ] Failed to create cuda device: -1313558101.
[1634724962.398|16769|accel.cpp :240 ] -- Init failed for cuda with device 1.
[1634724962.398|16769|accel.cpp :228 ] -- Init encoding for cuda with device 2.
[AVHWDeviceContext @ 0x609000000dc0] Cannot load libcuda.so.1
[AVHWDeviceContext @ 0x609000000dc0] Could not dynamically load CUDA
[1634724962.398|16769|accel.cpp :171 ] Failed to create cuda device: -1313558101.
[1634724962.398|16769|accel.cpp :240 ] -- Init failed for cuda with device 2.
[1634724962.403|16769|accel.cpp :206 ] -- Starting encoding init for vaapi with default device.
[1634724962.406|16769|accel.cpp :182 ] Device type vaapi successfully created.
[1634724962.406|16769|accel.cpp :215 ] -- Init passed for vaapi with default device.
[hevc_vaapi @ 0x61900002cb80] No usable encoding profile found.
[1634724962.407|16769|media_encoder.cpp :1178 ] Fail to open hardware encoder H265 with vaapi
[1634724962.407|16769|system_codec_container.cpp:197 ] Can't find a usable accelerated H265/HEVC codec, disabling.
[1634724962.407|16769|system_codec_container.cpp:232 ] Encoders found: H264 VP8 MP4V-ES H263-1998 opus G722 speex speex speex PCMA PCMU
[1634724962.408|16769|system_codec_container.cpp:233 ] Decoders found: H264 VP8 MP4V-ES H263-1998 opus G722 speex speex speex PCMA PCMU
[1634724962.408|16769|sipaccount.cpp :2407 ] All audio codecs disabled, enabling all
[1634724962.408|16769|sipaccount.cpp :2411 ] All video codecs disabled, enabling all
[1634724962.408|16769|upnp_context.cpp :39 ] Creating UPnPContext instance [<sanitized>]
[1634724962.408|16769|upnp_control.cpp :39 ] Controller@<sanitized>: Created UPnP Controller session
[1634724962.408|16770|upnp_context.cpp :409 ] Successfully registered controller <sanitized>
[1634724962.408|16770|upnp_context.cpp :131 ] Starting UPNP context
[1634724962.408|16769|sipaccount.cpp :1818 ] Set SIP registration EXPIRE to 60 - current 3600
[1634724962.408|16769|sipaccount.cpp :1870 ] Presence enabled for <sanitized> : false.
[1634724962.410|16774|jamiaccount.cpp :327 ] [Account <sanitized>] Can't load proxy URL from cache: Can't check write time for: /home/username/.cache/jami/<sanitized>/dhtproxy
[1634724962.414|16774|jamiaccount.cpp :1101 ] [Account <sanitized>] loading account
[1634724962.414|16774|namedirectory.cpp :475 ] Could not load /home/username/.cache/jami/namecache/ns.jami.net
[1634724962.414|16774|account_manager.cpp:57 ] Loading certificate from 'ring_device.crt' and key from 'ring_device.key' at /home/username/.local/share/jami/<sanitized>
[1634724962.434|16774|certstore.cpp :89 ] CertificateStore: loaded 36 local certificates.
[1634724962.436|16774|account_manager.cpp:143 ] [Auth] checking device receipt for <sanitized>
[1634724962.440|16774|contact_list.cpp :503 ] [Contacts] Found account device: computername <sanitized>
[1634724962.442|16774|contact_list.cpp :503 ] [Contacts] Found account device: <sanitized>
[1634724962.443|16774|account_manager.cpp:193 ] [Auth] Device <sanitized> receipt checked successfully for account <sanitized>
[1634724962.443|16774|jamiaccount.cpp :1207 ] [Account <sanitized>] loaded account identity
[1634724962.443|16774|conversation_module.cpp:678 ] [Account <sanitized>] Start loading conversations…
[1634724962.443|16774|conversation_module.cpp:1579 ] [convInfo] error loading convInfo: Can't read file: convInfo
[1634724962.443|16774|conversation_module.cpp:715 ] [Account <sanitized>] Conversations loaded!
[1634724962.443|16774|conversation_module.cpp:678 ] [Account <sanitized>] Start loading conversations…
[1634724962.443|16774|conversation_module.cpp:1579 ] [convInfo] error loading convInfo: Can't read file: convInfo
[1634724962.443|16774|conversation_module.cpp:715 ] [Account <sanitized>] Conversations loaded!
[1634724962.444|16769|ringbuffer.cpp :55 ] Create new RingBuffer urgentRingBuffer_id
[1634724962.447|16769|pulselayer.cpp :141 ] Waiting....
[1634724962.447|16779|pulselayer.cpp :141 ] Waiting....
[1634724962.447|16779|pulselayer.cpp :141 ] Waiting....
[1634724962.449|16779|pulselayer.cpp :145 ] Connection to PulseAudio server established
[1634724962.449|16779|pulselayer.cpp :175 ] Updating PulseAudio sink list
[1634724962.449|16779|pulselayer.cpp :192 ] Updating PulseAudio source list
[1634724962.449|16779|pulselayer.cpp :209 ] Updating PulseAudio server infos
[1634724962.451|16779|pulselayer.cpp :664 ] PulseAudio server info:
Server name: PulseAudio (on PipeWire 0.3.38)
Server version: 15.0.0
Default Sink bluez_output.00_02_76_64_A2_CF.a2dp-sink
Default Source alsa_input.pci-0000_00_1b.0.analog-stereo
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
[1634724962.451|16779|audiolayer.cpp :64 ] Hardware audio format available : {s16, 2 channels, 48000Hz} 0
[1634724962.451|16779|manager.cpp :2870 ] Audio format changed: {s16, 1 channels, 16000Hz} -> {s16, 2 channels, 48000Hz}
[1634724962.496|16769|sipaccount.cpp :903 ] doRegister <sipserver>
[1634724962.496|16769|sipaccount.cpp :907 ] UPnP: waiting for IGD to register SIP account
[1634724962.496|16769|upnp_context.cpp :309 ] Try to find mapping for port 5060 [UDP]
[1634724962.496|16769|upnp_context.cpp :341 ] Did not find any available mapping. Will request one now
[1634724962.496|16769|upnp_context.cpp :1137 ] No IGD available. Mapping will be requested when an IGD becomes available
[1634724962.496|16769|mapping.cpp :86 ] Changing mapping JAMI-UDP:5060 state from AVAILABLE to UNAVAILABLE
[1634724962.496|16769|sipaccount.cpp :835 ] [Account <sanitized>] Failed to open port 5060: registering SIP account anyway
[1634724962.496|16769|sipvoiplink.cpp :1491 ] try to resolve '<sipserver>' (port: 0)
[1634724962.496|16769|sipaccount.cpp :910 ] UPnP: UPNP request failed, try to register SIP account anyway
[1634724962.496|16769|sipvoiplink.cpp :1491 ] try to resolve '<sipserver>' (port: 0)
[1634724962.497|16769|jamiaccount.cpp :1763 ] [Account <sanitized>] Starting account..
[1634724962.497|16769|jamiaccount.cpp :2599 ] [Account <sanitized>] connecting…
[1634724962.497|16770|upnp_context.cpp :622 ] UPNP/NAT-PMP enabled, but no valid IGDs available
[1634724962.497|16775|jamiaccount.cpp :2779 ] Loading DhParams from file '/home/username/.cache/jami/<sanitized>/dhParams'
[1634724962.497|16770|jamiaccount.cpp :1953 ] [Account <sanitized>] Starting account...
[1634724962.500|16770|jamiaccount.cpp :1794 ] [Account <sanitized>] Bootstrap node: bootstrap.jami.net
[1634724962.502|16782|jamiaccount.cpp :2075 ] [Account <sanitized>] Dht status: IPv4 connecting; IPv6 disconnected
[1634724962.616|16782|jamiaccount.cpp :2075 ] [Account <sanitized>] Dht status: IPv4 connected; IPv6 disconnected
[1634724962.616|16782|jamiaccount.cpp :2595 ] [Account <sanitized>] connected
[1634724962.617|16782|jamiaccount.cpp :3554 ] [Account <sanitized>] Store DHT public IPv4 address : <sanitized>
[1634724962.669|16773|sipaccount.cpp :1005 ] Creating transport
[1634724962.670|16773|siptransport.cpp :329 ] Created UDP transport on address 0.0.0.0:5060
[1634724962.670|16773|siptransport.cpp :80 ] SipTransport@<sanitized> {tr=<sanitized> {rc=2}}
[1634724962.670|16773|sipaccount.cpp :1099 ] Using contact header "SIP Provider" <sip:<sanitized>@<deviceip>:5060> in registration
[1634724962.697|16782|jamiaccount.cpp :2075 ] [Account <sanitized>] Dht status: IPv4 connected; IPv6 connecting
[1634724962.733|16773|sipaccount.cpp :1599 ] Using published address <sanitized> and port 5060
AddressSanitizer:DEADLYSIGNAL
=================================================================
==278913==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000048 (pc 0x7f7fb357255b bp 0x7f7f9a9f7ae0 sp 0x7f7f9a9f7590 T4)
==278913==The signal is caused by a READ memory access.
==278913==Hint: address points to the zero page.
#0 0x7f7fb357255b in jami::SIPAccount::checkNATAddress(pjsip_regc_cbparam*, pj_pool_t*) (/usr/local/lib/libring.so.0+0x9f355b)
#1 0x7f7fb357b670 in jami::SIPAccount::onRegister(pjsip_regc_cbparam*) (/usr/local/lib/libring.so.0+0x9fc670)
#2 0x7f7fb3d6bd38 in regc_tsx_callback (/usr/local/lib/libring.so.0+0x11ecd38)
#3 0x7f7fb3d97256 in tsx_set_state (/usr/local/lib/libring.so.0+0x1218256)
#4 0x7f7fb3d985f7 in tsx_on_state_proceeding_uac (/usr/local/lib/libring.so.0+0x12195f7)
#5 0x7f7fb3d98825 in tsx_on_state_calling (/usr/local/lib/libring.so.0+0x1219825)
#6 0x7f7fb3d9ac9d in pjsip_tsx_recv_msg (/usr/local/lib/libring.so.0+0x121bc9d)
#7 0x7f7fb3d9ada4 in mod_tsx_layer_on_rx_response (/usr/local/lib/libring.so.0+0x121bda4)
#8 0x7f7fb3d845c6 in pjsip_endpt_process_rx_data (/usr/local/lib/libring.so.0+0x12055c6)
#9 0x7f7fb3d84785 in endpt_on_rx_msg (/usr/local/lib/libring.so.0+0x1205785)
#10 0x7f7fb3d8b7e8 in pjsip_tpmgr_receive_packet (/usr/local/lib/libring.so.0+0x120c7e8)
#11 0x7f7fb3d8e1ed in udp_on_read_complete (/usr/local/lib/libring.so.0+0x120f1ed)
#12 0x7f7fb3dd19d6 in ioqueue_dispatch_read_event (/usr/local/lib/libring.so.0+0x12529d6)
#13 0x7f7fb3dd343a in pj_ioqueue_poll (/usr/local/lib/libring.so.0+0x125443a)
#14 0x7f7fb3d842af in pjsip_endpt_handle_events2 (/usr/local/lib/libring.so.0+0x12052af)
#15 0x7f7fb35f5cf7 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::SIPVoIPLink::SIPVoIPLink()::{lambda()#1}> > >::_M_run() (/usr/local/lib/libring.so.0+0xa76cf7)
#16 0x7f7faf5f13c3 in execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:82
#17 0x7f7fb260e258 in start_thread (/usr/lib/libpthread.so.0+0x9258)
#18 0x7f7faf2f15e2 in __GI___clone (/usr/lib/libc.so.6+0xfe5e2)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/usr/local/lib/libring.so.0+0x9f355b) in jami::SIPAccount::checkNATAddress(pjsip_regc_cbparam*, pj_pool_t*)
Thread T4 created by T0 here:
#0 0x7f7fb4218fa7 in __interceptor_pthread_create /build/gcc/src/gcc/libsanitizer/asan/asan_interceptors.cpp:216
#1 0x7f7faf5f16aa in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663
#2 0x7f7fb2f244a2 in jami::Manager::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/local/lib/libring.so.0+0x3a54a2)
==278913==ABORTING
```
Mohamed Chibani
Mohamed Chibani
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/652
libring.so ?
2021-11-03T20:55:12Z
Bruno Pagani
libring.so ?
When building with autotools, it results (amongst other things) in a `libring.so` (also .0 and .0.0.0) library, while (almost?) everything else has been renamed to jami. Is that expected?
Especially since glancing at https://git.jami.ne...
When building with autotools, it results (amongst other things) in a `libring.so` (also .0 and .0.0.0) library, while (almost?) everything else has been renamed to jami. Is that expected?
Especially since glancing at https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/651, it seems meson is trying to build a `libjami.so` instead, with a different version (.10.1.0).
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/651
Linking failure
2023-09-29T10:02:15Z
Bruno Pagani
Linking failure
While compiling at commit 042ad25ca2174df18ca18bcaf39286259fe275bee, it failed during linking:
```
[151/153] Linking target src/libjami.so.10.1.0
FAILED: src/libjami.so.10.1.0
c++ -o src/libjami.so.10.1.0 src/libjami.so.10.1.0.p/client...
While compiling at commit 042ad25ca2174df18ca18bcaf39286259fe275bee, it failed during linking:
```
[151/153] Linking target src/libjami.so.10.1.0
FAILED: src/libjami.so.10.1.0
c++ -o src/libjami.so.10.1.0 src/libjami.so.10.1.0.p/client_callmanager.cpp.o src/libjami.so.10.1.0.p/client_configurationmanager.cpp.o src/libjami.so.10.1.0.p/client_datatransfer.cpp.o src/libjami.so.10.1.0.p/client_presencemanager.cpp.o src/libjami.so.10.1.0.p/client_ring_signal.cpp.o src/libjami.so.10.1.0.p/config_yamlparser.cpp.o src/libjami.so.10.1.0.p/im_instant_messaging.cpp.o src/libjami.so.10.1.0.p/im_message_engine.cpp.o src/libjami.so.10.1.0.p/jamidht_eth_libdevcore_Common.cpp.o src/libjami.so.10.1.0.p/jamidht_eth_libdevcore_CommonData.cpp.o src/libjami.so.10.1.0.p/jamidht_eth_libdevcore_FixedHash.cpp.o src/libjami.so.10.1.0.p/jamidht_eth_libdevcore_SHA3.cpp.o src/libjami.so.10.1.0.p/jamidht_eth_libdevcrypto_Common.cpp.o src/libjami.so.10.1.0.p/jamidht_accountarchive.cpp.o src/libjami.so.10.1.0.p/jamidht_account_manager.cpp.o src/libjami.so.10.1.0.p/jamidht_archive_account_manager.cpp.o src/libjami.so.10.1.0.p/jamidht_channeled_transfers.cpp.o src/libjami.so.10.1.0.p/jamidht_channeled_transport.cpp.o src/libjami.so.10.1.0.p/jamidht_connectionmanager.cpp.o src/libjami.so.10.1.0.p/jamidht_contact_list.cpp.o src/libjami.so.10.1.0.p/jamidht_jamiaccount.cpp.o src/libjami.so.10.1.0.p/jamidht_multiplexed_socket.cpp.o src/libjami.so.10.1.0.p/jamidht_namedirectory.cpp.o src/libjami.so.10.1.0.p/jamidht_p2p.cpp.o src/libjami.so.10.1.0.p/jamidht_server_account_manager.cpp.o src/libjami.so.10.1.0.p/media_audio_echo-cancel_null_echo_canceller.cpp.o src/libjami.so.10.1.0.p/media_audio_sound_audiofile.cpp.o src/libjami.so.10.1.0.p/media_audio_sound_dtmf.cpp.o src/libjami.so.10.1.0.p/media_audio_sound_dtmfgenerator.cpp.o src/libjami.so.10.1.0.p/media_audio_sound_tone.cpp.o src/libjami.so.10.1.0.p/media_audio_sound_tonelist.cpp.o src/libjami.so.10.1.0.p/media_audio_audiobuffer.cpp.o src/libjami.so.10.1.0.p/media_audio_audio_frame_resizer.cpp.o src/libjami.so.10.1.0.p/media_audio_audio_input.cpp.o src/libjami.so.10.1.0.p/media_audio_audiolayer.cpp.o src/libjami.so.10.1.0.p/media_audio_audioloop.cpp.o src/libjami.so.10.1.0.p/media_audio_audio_receive_thread.cpp.o src/libjami.so.10.1.0.p/media_audio_audio_rtp_session.cpp.o src/libjami.so.10.1.0.p/media_audio_audio_sender.cpp.o src/libjami.so.10.1.0.p/media_audio_dcblocker.cpp.o src/libjami.so.10.1.0.p/media_audio_dsp.cpp.o src/libjami.so.10.1.0.p/media_audio_resampler.cpp.o src/libjami.so.10.1.0.p/media_audio_ringbuffer.cpp.o src/libjami.so.10.1.0.p/media_audio_ringbufferpool.cpp.o src/libjami.so.10.1.0.p/media_audio_tonecontrol.cpp.o src/libjami.so.10.1.0.p/media_congestion_control.cpp.o src/libjami.so.10.1.0.p/media_libav_utils.cpp.o src/libjami.so.10.1.0.p/media_localrecorder.cpp.o src/libjami.so.10.1.0.p/media_localrecordermanager.cpp.o src/libjami.so.10.1.0.p/media_media_buffer.cpp.o src/libjami.so.10.1.0.p/media_media_codec.cpp.o src/libjami.so.10.1.0.p/media_media_decoder.cpp.o src/libjami.so.10.1.0.p/media_media_encoder.cpp.o src/libjami.so.10.1.0.p/media_media_filter.cpp.o src/libjami.so.10.1.0.p/media_media_io_handle.cpp.o src/libjami.so.10.1.0.p/media_media_player.cpp.o src/libjami.so.10.1.0.p/media_media_recorder.cpp.o src/libjami.so.10.1.0.p/media_recordable.cpp.o src/libjami.so.10.1.0.p/media_socket_pair.cpp.o src/libjami.so.10.1.0.p/media_srtp.c.o src/libjami.so.10.1.0.p/media_system_codec_container.cpp.o src/libjami.so.10.1.0.p/security_certstore.cpp.o src/libjami.so.10.1.0.p/security_diffie-hellman.cpp.o src/libjami.so.10.1.0.p/security_memory.cpp.o src/libjami.so.10.1.0.p/security_tls_session.cpp.o src/libjami.so.10.1.0.p/security_tlsvalidator.cpp.o src/libjami.so.10.1.0.p/sip_pres_sub_client.cpp.o src/libjami.so.10.1.0.p/sip_pres_sub_server.cpp.o src/libjami.so.10.1.0.p/sip_sdes_negotiator.cpp.o src/libjami.so.10.1.0.p/sip_sdp.cpp.o src/libjami.so.10.1.0.p/sip_sipaccountbase.cpp.o src/libjami.so.10.1.0.p/sip_sipaccount.cpp.o src/libjami.so.10.1.0.p/sip_sipcall.cpp.o src/libjami.so.10.1.0.p/sip_sippresence.cpp.o src/libjami.so.10.1.0.p/sip_siptransport.cpp.o src/libjami.so.10.1.0.p/sip_sip_utils.cpp.o src/libjami.so.10.1.0.p/sip_sipvoiplink.cpp.o src/libjami.so.10.1.0.p/upnp_protocol_igd.cpp.o src/libjami.so.10.1.0.p/upnp_protocol_mapping.cpp.o src/libjami.so.10.1.0.p/upnp_upnp_context.cpp.o src/libjami.so.10.1.0.p/upnp_upnp_control.cpp.o src/libjami.so.10.1.0.p/account.cpp.o src/libjami.so.10.1.0.p/account_factory.cpp.o src/libjami.so.10.1.0.p/archiver.cpp.o src/libjami.so.10.1.0.p/base64.cpp.o src/libjami.so.10.1.0.p/buildinfo.cpp.o src/libjami.so.10.1.0.p/call.cpp.o src/libjami.so.10.1.0.p/call_factory.cpp.o src/libjami.so.10.1.0.p/conference.cpp.o src/libjami.so.10.1.0.p/data_transfer.cpp.o src/libjami.so.10.1.0.p/fileutils.cpp.o src/libjami.so.10.1.0.p/ftp_server.cpp.o src/libjami.so.10.1.0.p/ice_transport.cpp.o src/libjami.so.10.1.0.p/ip_utils.cpp.o src/libjami.so.10.1.0.p/logger.cpp.o src/libjami.so.10.1.0.p/manager.cpp.o src/libjami.so.10.1.0.p/peer_connection.cpp.o src/libjami.so.10.1.0.p/preferences.cpp.o src/libjami.so.10.1.0.p/ring_api.cpp.o src/libjami.so.10.1.0.p/scheduled_executor.cpp.o src/libjami.so.10.1.0.p/smartools.cpp.o src/libjami.so.10.1.0.p/string_utils.cpp.o src/libjami.so.10.1.0.p/threadloop.cpp.o src/libjami.so.10.1.0.p/utf8_utils.cpp.o src/libjami.so.10.1.0.p/media_audio_alsa_alsalayer.cpp.o src/libjami.so.10.1.0.p/media_audio_pulseaudio_audiostream.cpp.o src/libjami.so.10.1.0.p/media_audio_pulseaudio_pulselayer.cpp.o src/libjami.so.10.1.0.p/media_audio_jack_jacklayer.cpp.o src/libjami.so.10.1.0.p/upnp_protocol_pupnp_pupnp.cpp.o src/libjami.so.10.1.0.p/upnp_protocol_pupnp_upnp_igd.cpp.o src/libjami.so.10.1.0.p/upnp_protocol_natpmp_nat_pmp.cpp.o src/libjami.so.10.1.0.p/upnp_protocol_natpmp_pmp_igd.cpp.o src/libjami.so.10.1.0.p/media_audio_echo-cancel_webrtc_echo_canceller.cpp.o src/libjami.so.10.1.0.p/client_videomanager.cpp.o src/libjami.so.10.1.0.p/media_video_filter_transpose.cpp.o src/libjami.so.10.1.0.p/media_video_sinkclient.cpp.o src/libjami.so.10.1.0.p/media_video_video_base.cpp.o src/libjami.so.10.1.0.p/media_video_video_device_monitor.cpp.o src/libjami.so.10.1.0.p/media_video_video_input.cpp.o src/libjami.so.10.1.0.p/media_video_video_mixer.cpp.o src/libjami.so.10.1.0.p/media_video_video_receive_thread.cpp.o src/libjami.so.10.1.0.p/media_video_video_rtp_session.cpp.o src/libjami.so.10.1.0.p/media_video_video_scaler.cpp.o src/libjami.so.10.1.0.p/media_video_video_sender.cpp.o src/libjami.so.10.1.0.p/media_video_accel.cpp.o src/libjami.so.10.1.0.p/media_video_v4l2_video_device_impl.cpp.o src/libjami.so.10.1.0.p/media_video_v4l2_video_device_monitor_impl.cpp.o src/libjami.so.10.1.0.p/client_plugin_manager_interface.cpp.o src/libjami.so.10.1.0.p/plugin_callservicesmanager.cpp.o src/libjami.so.10.1.0.p/plugin_chatservicesmanager.cpp.o src/libjami.so.10.1.0.p/plugin_jamipluginmanager.cpp.o src/libjami.so.10.1.0.p/plugin_pluginloader.cpp.o src/libjami.so.10.1.0.p/plugin_pluginmanager.cpp.o src/libjami.so.10.1.0.p/plugin_pluginpreferencesutils.cpp.o src/libjami.so.10.1.0.p/plugin_pluginsutils.cpp.o -flto -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,libjami.so.10 -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -D_FORTIFY_SOURCE=2 -pthread /usr/lib/libopendht.so /usr/lib/libgnutls.so /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjsua2-x86_64-pc-linux-gnu.a /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../lib/libstdc++.so /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjsua-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjsip-ua-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjsip-simple-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjsip-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjmedia-codec-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjmedia-videodev-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjmedia-audiodev-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjmedia-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjnath-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjlib-util-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpj-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libsrtp-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libyuv-x86_64-pc-linux-gnu.a /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../lib/libopus.so /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../lib/libvpx.so /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../lib/libuuid.so -lm -lrt -lpthread /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../lib/libgnutls.so /usr/lib/libsecp256k1.so /usr/lib/libavcodec.so /usr/lib/libavfilter.so /usr/lib/libavdevice.so /usr/lib/libavformat.so /usr/lib/libswscale.so /usr/lib/libswresample.so /usr/lib/libavutil.so /usr/lib/libspeex.so /usr/lib/libspeexdsp.so /usr/lib/libyaml-cpp.so /usr/lib/libjsoncpp.so /usr/lib/libz.so /usr/lib/libasound.so /usr/lib/libpulse.so /usr/lib/libjack.so /usr/lib/libupnp.so /usr/lib/libixml.so -lnatpmp /usr/lib/libssl.so /usr/lib/libcrypto.so /usr/lib/libwebrtc_audio_processing.so /usr/lib/libudev.so /usr/lib/libarchive.so -ldl -Wl,--end-group
/usr/bin/ld: /tmp/ccTsnSkF.ltrans0.ltrans.o: in function `DRing::downloadFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
<artificial>:(.text+0xc888): undefined reference to `jami::ConversationModule::downloadFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, unsigned long)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans2.ltrans.o: in function `jami::AccountArchive::serialize[abi:cxx11]() const':
<artificial>:(.text+0x6fc7): undefined reference to `jami::ConversationRequest::toJson() const'
/usr/bin/ld: <artificial>:(.text+0x718c): undefined reference to `jami::ConvInfo::toJson() const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans2.ltrans.o: in function `jami::AccountArchive::deserialize(std::vector<unsigned char, std::allocator<unsigned char> > const&)':
<artificial>:(.text+0x84ad): undefined reference to `jami::ConversationRequest::ConversationRequest(Json::Value const&)'
/usr/bin/ld: <artificial>:(.text+0x8c02): undefined reference to `jami::ConvInfo::ConvInfo(Json::Value const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans5.ltrans.o: in function `jami::ArchiveAccountManager::updateArchive(jami::AccountArchive&) const':
<artificial>:(.text+0x3ccd): undefined reference to `jami::ConversationModule::convInfosFromPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x3d79): undefined reference to `jami::ConversationModule::convRequestsFromPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans5.ltrans.o: in function `jami::ArchiveAccountManager::onArchiveLoaded(jami::ArchiveAccountManager::AuthContext&, jami::AccountArchive&&)':
<artificial>:(.text+0x668f): undefined reference to `jami::ConversationModule::saveConvInfosToPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, jami::ConvInfo, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::ConvInfo> > > const&)'
/usr/bin/ld: <artificial>:(.text+0x669f): undefined reference to `jami::ConversationModule::saveConvRequestsToPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, jami::ConversationRequest, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, jami::ConversationRequest> > > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans9.ltrans.o: in function `jami::JamiAccount::createSubCall(std::shared_ptr<jami::SIPCall> const&)':
<artificial>:(.text+0x4d8d): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans9.ltrans.o: in function `jami::JamiAccount::shutdownConnections()':
<artificial>:(.text+0x67fe): undefined reference to `jami::GitServer::stop()'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans10.ltrans.o: in function `jami::JamiAccount::SIPStartCall(jami::SIPCall&, jami::IpAddr const&)':
<artificial>:(.text+0x1f51): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: <artificial>:(.text+0x206b): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans10.ltrans.o: in function `jami::JamiAccount::loadAccount(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(jami::AccountInfo const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, std::vector<unsigned char, std::allocator<unsigned char> >&&)#10}::operator()(jami::AccountInfo const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, std::vector<unsigned char, std::allocator<unsigned char> >&&) const [clone .lto_priv.0]':
<artificial>:(.text+0x34a5): undefined reference to `jami::ConversationModule::loadConversations()'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans10.ltrans.o: in function `jami::JamiAccount::loadAccount(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
<artificial>:(.text+0x5997): undefined reference to `jami::ConversationModule::loadConversations()'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans10.ltrans.o: in function `jami::JamiAccount::onTrackedBuddyOnline(dht::Hash<20ul> const&)':
<artificial>:(.text+0x8f82): undefined reference to `jami::ConversationModule::getOneToOneConversation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::getToUri(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const':
<artificial>:(.text+0x3bd): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::getIsComposing(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
<artificial>:(.text+0x6f2): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::getDisplayed(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
<artificial>:(.text+0x8b8): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::setIsComposing(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
<artificial>:(.text+0x3ac6): undefined reference to `jami::Uri::Uri(std::basic_string_view<char, std::char_traits<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x3aec): undefined reference to `jami::Uri::scheme() const'
/usr/bin/ld: <artificial>:(.text+0x3b03): undefined reference to `jami::Uri::authority[abi:cxx11]() const'
/usr/bin/ld: <artificial>:(.text+0x401d): undefined reference to `jami::Uri::authority[abi:cxx11]() const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::convModule()':
<artificial>:(.text+0x432b): undefined reference to `jami::ConversationModule::ConversationModule(std::weak_ptr<jami::JamiAccount>&&, std::function<void ()>&&, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&&)>&&, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<bool (std::shared_ptr<jami::ChannelSocket> const&)>&&)>&&, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)>&&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::doRegister_()::{lambda(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#10}::operator()(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const [clone .lto_priv.0]':
<artificial>:(.text+0x449f): undefined reference to `jami::Uri::Uri(std::basic_string_view<char, std::char_traits<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x44ab): undefined reference to `jami::Uri::scheme() const'
/usr/bin/ld: <artificial>:(.text+0x49ff): undefined reference to `jami::ConversationModule::getConversationMembers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: <artificial>:(.text+0x55cc): undefined reference to `jami::ConversationModule::onFileChannelRequest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::doRegister_()::{lambda(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>)#11}::operator()(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>) const [clone .lto_priv.0]':
<artificial>:(.text+0x6273): undefined reference to `jami::ConversationModule::isBannedDevice(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: <artificial>:(.text+0x63ee): undefined reference to `jami::GitServer::GitServer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket> const&)'
/usr/bin/ld: <artificial>:(.text+0x6514): undefined reference to `jami::GitServer::setOnFetched(std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> const&)'
/usr/bin/ld: <artificial>:(.text+0x67b9): undefined reference to `jami::Uri::Uri(std::basic_string_view<char, std::char_traits<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x67cc): undefined reference to `jami::Uri::scheme() const'
/usr/bin/ld: <artificial>:(.text+0x6bd6): undefined reference to `jami::GitServer::~GitServer()'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::setMessageDisplayed(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)':
<artificial>:(.text+0x712c): undefined reference to `jami::Uri::Uri(std::basic_string_view<char, std::char_traits<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x7148): undefined reference to `jami::Uri::scheme() const'
/usr/bin/ld: <artificial>:(.text+0x720a): undefined reference to `jami::ConversationModule::onMessageDisplayed(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x7222): undefined reference to `jami::Uri::authority[abi:cxx11]() const'
/usr/bin/ld: <artificial>:(.text+0x7291): undefined reference to `jami::Uri::authority[abi:cxx11]() const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::syncModule()':
<artificial>:(.text+0x7404): undefined reference to `jami::SyncModule::SyncModule(std::weak_ptr<jami::JamiAccount>&&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::doRegister_()::{lambda(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>)#11}::operator()(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>) const [clone .lto_priv.0] [clone .cold]':
<artificial>:(.text.unlikely+0x1028): undefined reference to `jami::GitServer::~GitServer()'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::addContact(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
<artificial>:(.text+0x1148): undefined reference to `jami::ConversationModule::getOneToOneConversation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: <artificial>:(.text+0x120b): undefined reference to `jami::ConversationModule::startConversation(jami::ConversationMode, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::saveMembers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)':
<artificial>:(.text+0x12c5): undefined reference to `jami::ConversationModule::setConversationMembers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::sendInstantMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)':
<artificial>:(.text+0x1319): undefined reference to `jami::ConversationModule::getConversationMembers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::removeContact(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
<artificial>:(.text+0x1687): undefined reference to `jami::ConversationModule::removeContact(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::discardTrustRequest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
<artificial>:(.text+0x1f34): undefined reference to `jami::ConversationModule::declineConversationRequest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::acceptTrustRequest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
<artificial>:(.text+0x237a): undefined reference to `jami::ConversationModule::addConvInfo(jami::ConvInfo const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::sendSIPMessage(jami::JamiAccount::SipConnection&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void*, unsigned long, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, void (*)(void*, pjsip_event*))':
<artificial>:(.text+0x4527): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::sendTrustRequest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<unsigned char, std::allocator<unsigned char> > const&)':
<artificial>:(.text+0x5ce3): undefined reference to `jami::ConversationModule::getOneToOneConversation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: <artificial>:(.text+0x5ea3): undefined reference to `jami::ConversationModule::startConversation(jami::ConversationMode, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::handleMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&)':
<artificial>:(.text+0x6ced): undefined reference to `jami::ConversationModule::onNewCommit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x6edf): undefined reference to `jami::ConversationModule::onNeedConversationRequest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x6f1c): undefined reference to `jami::ConversationModule::checkIfRemoveForCompat(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x721c): undefined reference to `jami::ConversationModule::onConversationRequest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Json::Value const&)'
/usr/bin/ld: <artificial>:(.text+0x763c): undefined reference to `jami::ConversationModule::onMessageDisplayed(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans13.ltrans.o: in function `jami::JamiAccount::dataTransfer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
<artificial>:(.text+0x2a47): undefined reference to `jami::ConversationModule::dataTransfer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans13.ltrans.o: in function `jami::JamiAccount::sendFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda()#1}::operator()() const [clone .lto_priv.0]':
<artificial>:(.text+0x2ffe): undefined reference to `jami::ConversationModule::sendMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Json::Value&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, std::function<void (bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>&&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans13.ltrans.o: in function `jami::JamiAccount::cacheSIPConnection(std::shared_ptr<jami::ChannelSocket>&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, dht::Hash<32ul> const&)':
<artificial>:(.text+0x5a3c): undefined reference to `jami::ConversationModule::syncConversations(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans13.ltrans.o: in function `jami::JamiAccount::askForFileChannel(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, unsigned long)':
<artificial>:(.text+0x7b28): undefined reference to `jami::ConversationModule::getConversationMembers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans13.ltrans.o: in function `jami::JamiAccount::initConnectionManager()':
<artificial>:(.text+0x8017): undefined reference to `jami::ConversationChannelHandler::ConversationChannelHandler(std::weak_ptr<jami::JamiAccount>&&, jami::ConnectionManager&)'
/usr/bin/ld: <artificial>:(.text+0x80d7): undefined reference to `jami::SyncChannelHandler::SyncChannelHandler(std::weak_ptr<jami::JamiAccount>&&, jami::ConnectionManager&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans14.ltrans.o: in function `std::_Function_handler<void (), jami::JamiAccount::loadAccount(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#5}::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const::{lambda()#1}>::_M_invoke(std::_Any_data const&)':
<artificial>:(.text+0x42d2): undefined reference to `jami::ConversationModule::acceptConversationRequest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans14.ltrans.o: in function `std::_Function_handler<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), jami::JamiAccount::doRegister_()::{lambda(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>)#11}::operator()(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>) const::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#2}>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) [clone .lto_priv.0]':
<artificial>:(.text+0x43bf): undefined reference to `jami::ConversationModule::setFetched(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans14.ltrans.o: in function `std::_Function_handler<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<unsigned char, std::allocator<unsigned char> > const&, long), jami::JamiAccount::loadAccount(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<unsigned char, std::allocator<unsigned char> > const&, long)#3}>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<unsigned char, std::allocator<unsigned char> > const&, long&&) [clone .lto_priv.0]':
<artificial>:(.text+0x6091): undefined reference to `jami::ConversationModule::getOneToOneConversation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: <artificial>:(.text+0x60b5): undefined reference to `jami::ConversationModule::onTrustRequest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<unsigned char, std::allocator<unsigned char> > const&, long)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans14.ltrans.o: in function `std::_Function_handler<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), jami::JamiAccount::loadAccount(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#6}>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) [clone .lto_priv.0]':
<artificial>:(.text+0x6bea): undefined reference to `jami::ConversationModule::getOneToOneConversation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: <artificial>:(.text+0x6c18): undefined reference to `jami::ConversationModule::initReplay(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x6c2d): undefined reference to `jami::ConversationModule::removeConversation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x6c45): undefined reference to `jami::ConversationModule::cloneConversationFrom(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x6cbe): undefined reference to `jami::ConversationModule::checkIfRemoveForCompat(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans14.ltrans.o: in function `std::_Function_handler<void (std::shared_ptr<dht::crypto::Certificate> const&), jami::JamiAccount::trackPresence(dht::Hash<20ul> const&, jami::JamiAccount::BuddyInfo&)::{lambda(jami::DeviceAnnouncement&&, bool)#1}::operator()(jami::DeviceAnnouncement&&, bool) const::{lambda()#1}::operator()() const::{lambda(std::shared_ptr<dht::crypto::Certificate> const&)#1}>::_M_invoke(std::_Any_data const&, std::shared_ptr<dht::crypto::Certificate> const&) [clone .lto_priv.0]':
<artificial>:(.text+0x78fa): undefined reference to `jami::ConversationModule::needsSyncingWith(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans14.ltrans.o: in function `std::_Function_handler<void (std::shared_ptr<jami::ChannelSocket>, dht::Hash<32ul> const&), jami::JamiAccount::doRegister_()::{lambda(bool)#8}::operator()(bool) const::{lambda(std::shared_ptr<dht::crypto::Certificate> const&)#1}::operator()(std::shared_ptr<dht::crypto::Certificate> const&) const::{lambda(std::shared_ptr<jami::ChannelSocket>, dht::Hash<32ul> const&)#1}>::_M_invoke(std::_Any_data const&, std::shared_ptr<jami::ChannelSocket>&&, dht::Hash<32ul> const&)':
<artificial>:(.text+0x7a71): undefined reference to `jami::SyncModule::syncWith(dht::Hash<32ul> const&, std::shared_ptr<jami::ChannelSocket> const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans15.ltrans.o: in function `std::_Function_handler<void (), jami::runOnMainThread<jami::JamiAccount::doRegister_()::{lambda(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>)#11}::operator()(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>) const::{lambda()#3}::operator()() const::{lambda()#1}>(jami::JamiAccount::doRegister_()::{lambda(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>)#11}::operator()(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>) const::{lambda()#3}::operator()() const::{lambda()#1}&&)::{lambda()#1}>::_M_invoke(std::_Any_data const&) [clone .lto_priv.0]':
<artificial>:(.text+0x2b8d): undefined reference to `jami::GitServer::~GitServer()'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans15.ltrans.o: in function `std::_Function_handler<void (), jami::runOnMainThread<jami::JamiAccount::convModule()::{lambda()#1}::operator()() const::{lambda()#1}>(jami::JamiAccount::convModule()::{lambda()#1}::operator()() const::{lambda()#1}&&)::{lambda()#1}>::_M_invoke(std::_Any_data const&)':
<artificial>:(.text+0x78e1): undefined reference to `jami::SyncModule::syncWithConnected()'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans19.ltrans.o: in function `jami::DhtPeerConnector::requestConnection(DRing::DataTransferInfo const&, unsigned long const&, bool, std::function<void (std::shared_ptr<jami::ChanneledOutgoingTransfer> const&)> const&, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> const&)':
<artificial>:(.text+0x5bd5): undefined reference to `jami::ConversationModule::getConversationMembers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: <artificial>:(.text+0x5c5e): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: <artificial>:(.text+0x66c0): undefined reference to `jami::ConversationModule::conversationInfos(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans20.ltrans.o: in function `jami::operator<<(std::ostream&, jami::AudioFormat const&)':
<artificial>:(.text+0x32e7): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans21.ltrans.o: in function `jami::AudioLayer::hardwareInputFormatAvailable(jami::AudioFormat)':
<artificial>:(.text+0x17fb): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans21.ltrans.o: in function `jami::AudioLayer::hardwareFormatAvailable(jami::AudioFormat, unsigned long)':
<artificial>:(.text+0x1beb): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans23.ltrans.o: in function `jami::MediaDemuxer::openInput(jami::DeviceParams const&)':
<artificial>:(.text+0x5f0d): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans24.ltrans.o: in function `jami::MediaFilter::initialize(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<jami::MediaStream, std::allocator<jami::MediaStream> > const&)':
<artificial>:(.text+0x4d55): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans24.ltrans.o:<artificial>:(.text+0x4e72): more undefined references to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)' follow
/usr/bin/ld: /tmp/ccTsnSkF.ltrans28.ltrans.o: in function `jami::Sdp::addMediaDescription(jami::MediaAttribute const&)':
<artificial>:(.text+0x983f): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: <artificial>:(.text+0x9de9): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans29.ltrans.o: in function `jami::SIPAccount::newOutgoingCall(std::basic_string_view<char, std::char_traits<char> >, std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&)':
<artificial>:(.text+0x9849): undefined reference to `jami::MediaAttribute::buildMediaAttributesList(std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&, bool)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans31.ltrans.o: in function `jami::SIPCall::configureRtpSession(std::shared_ptr<jami::RtpSession> const&, std::shared_ptr<jami::MediaAttribute> const&, jami::MediaDescription const&, jami::MediaDescription const&)':
<artificial>:(.text+0x1382): undefined reference to `jami::MediaAttribute::mediaTypeToString(jami::MediaType)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans31.ltrans.o: in function `jami::SIPCall::answerMediaChangeRequest(std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&)':
<artificial>:(.text+0x2f76): undefined reference to `jami::MediaAttribute::buildMediaAttributesList(std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&, bool)'
/usr/bin/ld: <artificial>:(.text+0x3011): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: <artificial>:(.text+0x30e0): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans31.ltrans.o: in function `jami::SIPCall::SIPCall(std::shared_ptr<jami::SIPAccountBase> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, jami::Call::CallType, std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&)':
<artificial>:(.text+0x60ff): undefined reference to `jami::MediaAttribute::buildMediaAttributesList(std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&, bool)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans31.ltrans.o: in function `jami::SIPCall::answer(std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&)':
<artificial>:(.text+0x7f69): undefined reference to `jami::MediaAttribute::buildMediaAttributesList(std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&, bool)'
/usr/bin/ld: <artificial>:(.text+0x804e): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::muteMedia(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
<artificial>:(.text+0x1acd): undefined reference to `jami::MediaAttribute::stringToMediaType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x1b89): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::addLocalIceAttributes()':
<artificial>:(.text+0x2b12): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: <artificial>:(.text+0x2bc8): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: <artificial>:(.text+0x2dcd): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::initMediaStreams(std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> > const&)':
<artificial>:(.text+0x3db8): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::updateNegotiatedMedia()':
<artificial>:(.text+0x43d6): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::updateAllMediaStreams(std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> > const&)':
<artificial>:(.text+0x597e): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::requestMediaChange(std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&)':
<artificial>:(.text+0x5bfa): undefined reference to `jami::MediaAttribute::buildMediaAttributesList(std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&, bool)'
/usr/bin/ld: <artificial>:(.text+0x5cad): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::onReceiveReinvite(pjmedia_sdp_session const*, pjsip_rx_data*)':
<artificial>:(.text+0x6d1d): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: <artificial>:(.text+0x6ea5): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::monitor() const':
<artificial>:(.text+0x761e): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::toggleRecording()':
<artificial>:(.text+0x7937): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans33.ltrans.o: in function `jami::SIPPresence::publish_cb(pjsip_publishc_cbparam*)':
<artificial>:(.text+0x67c7): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans34.ltrans.o: in function `jami::transaction_request_cb(pjsip_rx_data*)':
<artificial>:(.text+0x5b7f): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans34.ltrans.o: in function `jami::sdp_create_offer_cb(pjsip_inv_session*, pjmedia_sdp_session**)':
<artificial>:(.text+0x77e5): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `int fmt::v8::detail::parse_nonnegative_int<char>(char const*&, char const*, int) [clone .part.0] [clone .lto_priv.0]':
<artificial>:(.text+0xa39): undefined reference to `fmt::v8::detail::assert_fail(char const*, int, char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `fmt::v8::detail::format_decimal_result<char*> fmt::v8::detail::format_decimal<char, unsigned int>(char*, unsigned int, int)':
<artificial>:(.text+0xafd): undefined reference to `fmt::v8::detail::assert_fail(char const*, int, char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `int fmt::v8::detail::get_dynamic_spec<fmt::v8::detail::width_checker, fmt::v8::basic_format_arg<fmt::v8::basic_format_context<fmt::v8::appender, char> >, fmt::v8::detail::error_handler>(fmt::v8::basic_format_arg<fmt::v8::basic_format_context<fmt::v8::appender, char> >, fmt::v8::detail::error_handler)':
<artificial>:(.text+0xe66): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: <artificial>:(.text+0xe86): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: <artificial>:(.text+0xecd): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `int fmt::v8::detail::get_dynamic_spec<fmt::v8::detail::precision_checker, fmt::v8::basic_format_arg<fmt::v8::basic_format_context<fmt::v8::appender, char> >, fmt::v8::detail::error_handler>(fmt::v8::basic_format_arg<fmt::v8::basic_format_context<fmt::v8::appender, char> >, fmt::v8::detail::error_handler)':
<artificial>:(.text+0xf26): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: <artificial>:(.text+0xf46): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o:<artificial>:(.text+0xf8d): more undefined references to `fmt::v8::detail::error_handler::on_error(char const*)' follow
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `void fmt::v8::detail::buffer<char>::append<char>(char const*, char const*)':
<artificial>:(.text+0x2f9e): undefined reference to `fmt::v8::detail::assert_fail(char const*, int, char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `std::make_unsigned<int>::type fmt::v8::detail::to_unsigned<int>(int) [clone .part.0] [clone .lto_priv.0]':
<artificial>:(.text+0x2fe9): undefined reference to `fmt::v8::detail::assert_fail(char const*, int, char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `char const* fmt::v8::detail::do_parse_arg_id<char, fmt::v8::detail::parse_width<char, fmt::v8::detail::specs_checker<fmt::v8::detail::dynamic_specs_handler<fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler> > >&>(char const*, char const*, fmt::v8::detail::specs_checker<fmt::v8::detail::dynamic_specs_handler<fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler> > >&)::width_adapter&>(char const*, char const*, fmt::v8::detail::specs_checker<fmt::v8::detail::dynamic_specs_handler<fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler> > >&)':
<artificial>:(.text+0x3208): undefined reference to `fmt::v8::detail::assert_fail(char const*, int, char const*)'
/usr/bin/ld: <artificial>:(.text+0x321a): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `char const* fmt::v8::detail::parse_precision<char, fmt::v8::detail::specs_checker<fmt::v8::detail::dynamic_specs_handler<fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler> > >&>(char const*, char const*, fmt::v8::detail::specs_checker<fmt::v8::detail::dynamic_specs_handler<fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler> > >&)':
<artificial>:(.text+0x34f5): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: <artificial>:(.text+0x3502): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `fmt::v8::appender fmt::v8::detail::write<char, fmt::v8::appender, unsigned int, 0>(fmt::v8::appender, unsigned int, fmt::v8::basic_format_specs<char> const&, fmt::v8::detail::locale_ref)':
<artificial>:(.text+0x3e5d): undefined reference to `fmt::v8::detail::thousands_sep_result<char> fmt::v8::detail::thousands_sep_impl<char>(fmt::v8::detail::locale_ref)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `void fmt::v8::detail::value<fmt::v8::basic_format_context<fmt::v8::appender, char> >::format_custom_arg<fmt::v8::join_view<__gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, char>, fmt::v8::formatter<fmt::v8::join_view<__gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, char>, char, void> >(void const*, fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler>&, fmt::v8::basic_format_context<fmt::v8::appender, char>&)':
<artificial>:(.text+0x49fa): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: <artificial>:(.text+0x53b2): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `jami::Account::serialize(YAML::Emitter&) const':
<artificial>:(.text+0x7faf): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `fmt::v8::appender fmt::v8::detail::write<char, fmt::v8::appender, unsigned int, 0>(fmt::v8::appender, unsigned int, fmt::v8::basic_format_specs<char> const&, fmt::v8::detail::locale_ref) [clone .cold]':
<artificial>:(.text.unlikely+0x29b): undefined reference to `vtable for fmt::v8::format_error'
/usr/bin/ld: <artificial>:(.text.unlikely+0x2a2): undefined reference to `fmt::v8::format_error::~format_error()'
/usr/bin/ld: <artificial>:(.text.unlikely+0x2ac): undefined reference to `typeinfo for fmt::v8::format_error'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `void fmt::v8::detail::value<fmt::v8::basic_format_context<fmt::v8::appender, char> >::format_custom_arg<fmt::v8::join_view<__gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, char>, fmt::v8::formatter<fmt::v8::join_view<__gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, char>, char, void> >(void const*, fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler>&, fmt::v8::basic_format_context<fmt::v8::appender, char>&) [clone .cold]':
<artificial>:(.text.unlikely+0x346): undefined reference to `vtable for fmt::v8::format_error'
/usr/bin/ld: <artificial>:(.text.unlikely+0x34d): undefined reference to `fmt::v8::format_error::~format_error()'
/usr/bin/ld: <artificial>:(.text.unlikely+0x357): undefined reference to `typeinfo for fmt::v8::format_error'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans38.ltrans.o: in function `jami::Conference::takeOverMediaSourceControl(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
<artificial>:(.text+0x776b): undefined reference to `jami::MediaAttribute::mediaTypeToString(jami::MediaType)'
/usr/bin/ld: <artificial>:(.text+0x78fe): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans39.ltrans.o: in function `jami::SubOutgoingFileTransfer::setOnRecv(std::function<void (std::basic_string_view<char, std::char_traits<char> >)>&&)':
<artificial>:(.text+0x7db1): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans41.ltrans.o: in function `jami::fileutils::sha3File(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
<artificial>:(.text+0x2668): undefined reference to `nettle_sha3_512_init'
/usr/bin/ld: <artificial>:(.text+0x2913): undefined reference to `nettle_sha3_512_update'
/usr/bin/ld: <artificial>:(.text+0x295b): undefined reference to `nettle_sha3_512_digest'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans41.ltrans.o: in function `jami::fileutils::sha3sum[abi:cxx11](std::vector<unsigned char, std::allocator<unsigned char> > const&)':
<artificial>:(.text+0x2a62): undefined reference to `nettle_sha3_512_init'
/usr/bin/ld: <artificial>:(.text+0x2a7d): undefined reference to `nettle_sha3_512_update'
/usr/bin/ld: <artificial>:(.text+0x2a8e): undefined reference to `nettle_sha3_512_digest'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans42.ltrans.o: in function `jami::IceTransport::getLocalCandidates[abi:cxx11](unsigned int) const':
<artificial>:(.text+0x3838): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans42.ltrans.o: in function `jami::IceTransport::getLocalCandidates[abi:cxx11](unsigned int, unsigned int) const':
<artificial>:(.text+0x3bf5): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans43.ltrans.o: in function `jami::Manager::finish()':
<artificial>:(.text+0x6d64): undefined reference to `git_libgit2_shutdown'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans43.ltrans.o: in function `jami::Manager::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
<artificial>:(.text+0x85fc): undefined reference to `git_libgit2_init'
/usr/bin/ld: <artificial>:(.text+0x8605): undefined reference to `p2p_transport_cb(git_transport**, git_remote*, void*)'
/usr/bin/ld: <artificial>:(.text+0x8612): undefined reference to `git_transport_register'
/usr/bin/ld: <artificial>:(.text+0x889e): undefined reference to `git_libgit2_version'
/usr/bin/ld: <artificial>:(.text+0x8e62): undefined reference to `giterr_last'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans44.ltrans.o: in function `jami::Manager::incomingCall(jami::Call&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
<artificial>:(.text+0x851a): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans44.ltrans.o: in function `jami::Manager::audioFormatUsed(jami::AudioFormat)':
<artificial>:(.text+0x8f72): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: <artificial>:(.text+0x8fc9): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o: in function `void fmt::v8::detail::value<fmt::v8::basic_format_context<fmt::v8::appender, char> >::format_custom_arg<fmt::v8::join_view<std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>, fmt::v8::formatter<fmt::v8::join_view<std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>, char, void> >(void const*, fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler>&, fmt::v8::basic_format_context<fmt::v8::appender, char>&)':
<artificial>:(.text+0x1a20): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: <artificial>:(.text+0x1a6a): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o: in function `jami::to_hex_string[abi:cxx11](unsigned long)':
<artificial>:(.text+0x4c63): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o: in function `jami::string_join(std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::basic_string_view<char, std::char_traits<char> >)':
<artificial>:(.text+0x50be): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o: in function `jami::AlsaLayer::buildDeviceTopo(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)':
<artificial>:(.text+0x5d5d): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o: in function `jami::AlsaLayer::soundCardIndexExists(int, jami::AudioDeviceType)':
<artificial>:(.text+0x5daf): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o: in function `jami::AlsaLayer::alsa_set_params(_snd_pcm*, jami::AudioFormat&)':
<artificial>:(.text+0x7193): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o:<artificial>:(.text+0x7ba4): more undefined references to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)' follow
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o: in function `void fmt::v8::detail::value<fmt::v8::basic_format_context<fmt::v8::appender, char> >::format_custom_arg<fmt::v8::join_view<std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>, fmt::v8::formatter<fmt::v8::join_view<std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>, char, void> >(void const*, fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler>&, fmt::v8::basic_format_context<fmt::v8::appender, char>&) [clone .cold]':
<artificial>:(.text.unlikely+0x1f3): undefined reference to `vtable for fmt::v8::format_error'
/usr/bin/ld: <artificial>:(.text.unlikely+0x1fa): undefined reference to `fmt::v8::format_error::~format_error()'
/usr/bin/ld: <artificial>:(.text.unlikely+0x204): undefined reference to `typeinfo for fmt::v8::format_error'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans50.ltrans.o: in function `jami::video::VideoDeviceMonitor::getCapabilities(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const':
<artificial>:(.text+0x3b03): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans50.ltrans.o: in function `jami::video::VideoDevice::applySettings(jami::video::VideoSettings)':
<artificial>:(.text+0x84d7): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans50.ltrans.o: in function `jami::video::VideoDevice::getSettings() const':
<artificial>:(.text+0x88c2): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans51.ltrans.o: in function `jami::video::VideoDeviceMonitor::addDevice(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&)':
<artificial>:(.text+0x4f69): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans52.ltrans.o: in function `jami::video::HardwareAccel::getCodecName[abi:cxx11]() const':
<artificial>:(.text+0xf94): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans54.ltrans.o: in function `std::_Function_handler<int (jami::DLPlugin const*, void*), jami::ChatServicesManager::registerChatService(jami::PluginManager&)::{lambda(jami::DLPlugin const*, void*)#1}>::_M_invoke(std::_Any_data const&, jami::DLPlugin const*&&, void*&&) [clone .lto_priv.0]':
<artificial>:(.text+0x514c): undefined reference to `jami::ConversationModule::sendMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, std::function<void (bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>&&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans55.ltrans.o: in function `jami::Call::Call(std::shared_ptr<jami::Account> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, jami::Call::CallType, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)::{lambda(jami::Call::CallState, jami::Call::ConnectionState, int)#1}::operator()(jami::Call::CallState, jami::Call::ConnectionState, int) const [clone .constprop.0]':
<artificial>:(.text+0x70cf): undefined reference to `jami::ConversationModule::addCallHistoryMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans57.ltrans.o: in function `decltype (({parm#2}.out)()) fmt::v8::formatter<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char, void>::format<fmt::v8::basic_format_context<fmt::v8::appender, char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, fmt::v8::basic_format_context<fmt::v8::appender, char>&) const [clone .isra.0]':
<artificial>:(.text+0x4892): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans58.ltrans.o: in function `fmt::v8::detail::dynamic_specs_handler<fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler> >::on_error(char const*) [clone .isra.0]':
<artificial>:(.text+0xbc6): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans58.ltrans.o: in function `std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::unique_ptr<jami::GitServer, std::default_delete<jami::GitServer> > >, std::_Select1st<std::pair<unsigned long const, std::unique_ptr<jami::GitServer, std::default_delete<jami::GitServer> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::unique_ptr<jami::GitServer, std::default_delete<jami::GitServer> > > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned long const, std::unique_ptr<jami::GitServer, std::default_delete<jami::GitServer> > > >*) [clone .isra.0]':
<artificial>:(.text+0x5f2b): undefined reference to `jami::GitServer::~GitServer()'
```
I will check if this is meson related or not by retrying with autotools.
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/650
Compilation failure with portaudio
2021-11-03T20:51:24Z
Bruno Pagani
Compilation failure with portaudio
While revamping my package, I’ve tried to enable portaudio but:
```
../jami-daemon/src/media/audio/portaudio/portaudiolayer.cpp: In member function ‘PaDeviceIndex jami::PortAudioLayer::PortAudioLayerImpl::getApiIndexByType(jami::AudioDev...
While revamping my package, I’ve tried to enable portaudio but:
```
../jami-daemon/src/media/audio/portaudio/portaudiolayer.cpp: In member function ‘PaDeviceIndex jami::PortAudioLayer::PortAudioLayerImpl::getApiIndexByType(jami::AudioDeviceType)’:
../jami-daemon/src/media/audio/portaudio/portaudiolayer.cpp:482:55: error: ‘Pa_GetDefaultCommInputDevice’ was not declared in this scope; did you mean ‘Pa_GetDefaultInputDevice’?
482 | return type == AudioDeviceType::CAPTURE ? Pa_GetDefaultCommInputDevice()
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Pa_GetDefaultInputDevice
../jami-daemon/src/media/audio/portaudio/portaudiolayer.cpp:483:55: error: ‘Pa_GetDefaultCommOutputDevice’ was not declared in this scope; did you mean ‘Pa_GetDefaultOutputDevice’?
483 | : Pa_GetDefaultCommOutputDevice();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Pa_GetDefaultOutputDevice
../jami-daemon/src/media/audio/portaudio/portaudiolayer.cpp: In member function ‘std::string jami::PortAudioLayer::PortAudioLayerImpl::getApiDefaultDeviceName(jami::AudioDeviceType, bool) const’:
../jami-daemon/src/media/audio/portaudio/portaudiolayer.cpp:501:36: error: ‘Pa_GetDefaultCommInputDevice’ was not declared in this scope; did you mean ‘Pa_GetDefaultInputDevice’?
501 | deviceIndex = commDevice ? Pa_GetDefaultCommInputDevice() : Pa_GetDefaultInputDevice();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Pa_GetDefaultInputDevice
../jami-daemon/src/media/audio/portaudio/portaudiolayer.cpp:503:36: error: ‘Pa_GetDefaultCommOutputDevice’ was not declared in this scope; did you mean ‘Pa_GetDefaultOutputDevice’?
503 | deviceIndex = commDevice ? Pa_GetDefaultCommOutputDevice() : Pa_GetDefaultOutputDevice();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Pa_GetDefaultOutputDevice
```
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/649
test/meson.build is outdated
2022-03-29T12:28:37Z
Bruno Pagani
test/meson.build is outdated
Since I’ve discovered you now provide meson for building, I’m switching Arch packages to it but I’ve encountered an issue:
```
jami-daemon/test/meson.build:59:0: ERROR: File unitTest/channel/testChannel.cpp does not exist.
```
The file s...
Since I’ve discovered you now provide meson for building, I’m switching Arch packages to it but I’ve encountered an issue:
```
jami-daemon/test/meson.build:59:0: ERROR: File unitTest/channel/testChannel.cpp does not exist.
```
The file seems to be gone a while ago, but `test/meson.build` wasn’t updated accordingly. For now, I will just keep tests disabled (they were already, but I thought redoing the package would be a good opportunity to enable them).