savoirfairelinux issueshttps://git.jami.net/groups/savoirfairelinux/-/issues2021-08-05T17:15:28Zhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/488jami-qt does not start on Arch/GNOME2021-08-05T17:15:28ZIvan Shapovalovjami-qt does not start on Arch/GNOME### Versions
* jami-daemon 4.0.0.r2333.g3212ddf46-1
* libjamiclient (libringclient) 1.0.0.r1038.g110c8d8b-1
* jami-client-qt r582.a3aea50-1
* qt5 5.15.2
### Environment
Arch Linux, GNOME 40.3, Wayland session.
### Problem
`jami-qt` ...### Versions
* jami-daemon 4.0.0.r2333.g3212ddf46-1
* libjamiclient (libringclient) 1.0.0.r1038.g110c8d8b-1
* jami-client-qt r582.a3aea50-1
* qt5 5.15.2
### Environment
Arch Linux, GNOME 40.3, Wayland session.
### Problem
`jami-qt` immediately exits with exit code 0 and no error logging:
```
$ jami-qt; echo "rc=$?"
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
QSocketNotifier: Can only be used with threads started with QThread
"notify server name: gnome-shell, vendor: GNOME, version: 40.3, spec: 1.2"
Destroying connectivity monitor
rc=0
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/604Video conf: bad mute status2021-08-05T19:41:06ZSébastien BlinVideo conf: bad mute status+ Alice is a rendez-vous
+ Bob joins
+ Carla joins
+ Bob is muted by a moderator
+ Bob leaves
+ Bob joins
# Expected result
+ Bob should not be shown as muted because it's not anymore
# Current
Bob is shown as muted+ Alice is a rendez-vous
+ Bob joins
+ Carla joins
+ Bob is muted by a moderator
+ Bob leaves
+ Bob joins
# Expected result
+ Bob should not be shown as muted because it's not anymore
# Current
Bob is shown as mutedAline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/487Video conf: bad mute status2021-08-04T19:07:20ZSébastien BlinVideo conf: bad mute status+ Alice is a rendez-vous
+ Bob joins
+ Carla joins
+ Bob is muted by a moderator
+ Bob leaves
+ Bob joins
# Expected result
+ Bob should not be shown as muted because it's not anymore
# Current
Bob is shown as muted+ Alice is a rendez-vous
+ Bob joins
+ Carla joins
+ Bob is muted by a moderator
+ Bob leaves
+ Bob joins
# Expected result
+ Bob should not be shown as muted because it's not anymore
# Current
Bob is shown as mutedhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/603Extract conversation's code from jamiaccount2021-09-13T17:03:00ZSébastien BlinExtract conversation's code from jamiaccountJamiAccount is too big. Split this classJamiAccount is too big. Split this classSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/486Profile picture: small improvments2021-08-16T20:56:04ZAndreas TraczykProfile picture: small improvments* Remove the "Select file" button during the camera picture-taking process
* Add missing cancel (x) button during the first step of the camera picture-taking process* Remove the "Select file" button during the camera picture-taking process
* Add missing cancel (x) button during the first step of the camera picture-taking processMing Rui ZhangMing Rui Zhanghttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/485Drag and drop files from chatview and send to other contacts2023-05-19T14:50:07ZAndreas TraczykDrag and drop files from chatview and send to other contacts1. Direct send
2. No conversation selection1. Direct send
2. No conversation selectionhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/602Deadlock with sendBeacon2021-08-17T20:19:30ZSébastien BlinDeadlock with sendBeacon[gdb.txt](/uploads/e9900d59f519af011c3af4eec22deb0c/gdb.txt)[gdb.txt](/uploads/e9900d59f519af011c3af4eec22deb0c/gdb.txt)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-project/-/issues/1283Do not add [nightly] repos to sources.list.d2021-08-03T15:22:22ZIaroslav GridinDo not add [nightly] repos to sources.list.dCurrently, jami-all package from https://dl.jami.net/ adds jami's key and repo to sources.list.d. Moreover, if package is installed from "internal" repo, it adds "nightly" still and overwrites the internal sources list. This seems likely...Currently, jami-all package from https://dl.jami.net/ adds jami's key and repo to sources.list.d. Moreover, if package is installed from "internal" repo, it adds "nightly" still and overwrites the internal sources list. This seems likely to cause issues to me and adding repo and key is not necessarily wanted by repository uses.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/601ICE - disable aggressive nomination2021-09-02T15:00:33ZMohamed ChibaniICE - disable aggressive nominationMohamed ChibaniMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/484Superposition of 2 contacts2021-12-22T20:38:31ZovariSuperposition of 2 contacts1. Call yourself, then end the conversation.
2. `Find a user or search for a conversation` and type a contact in your list, say `amarok` (but not yourself)<br>
![image](/uploads/3491ac8542ef2c695c658a23cad7ac61/image.png)
3. Click on the...1. Call yourself, then end the conversation.
2. `Find a user or search for a conversation` and type a contact in your list, say `amarok` (but not yourself)<br>
![image](/uploads/3491ac8542ef2c695c658a23cad7ac61/image.png)
3. Click on the contact<br>
![image](/uploads/d0574ea281da42fb8303ecbd905d4d6a/image.png)
4. Press the `×` which has the tooltip `Clear Text`<br>
![image](/uploads/dc6d045b25d8ac344076e9c1081b5186/image.png)
5. Bug: the first item in the list is an overlap of 2 contacts, i.e. yourself and amarok.<br>
a) Light theme<br>
![Light theme](/uploads/8e5a17b3ac3cd778b6d8fbb0dee0fd0f/image.png)<br>
b) Dark theme<br>
![Dark theme](/uploads/c86eb11dd94fd00a4d5b636d38c048ca/image.png)
Are you able to reproduce and fix?
Thank you
Jami-client-qt Version: 202106061341 deb edition<br>
Linux Mint 20.2 Cinnamonhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/600TrustRequest: add signal for conversationRequest removed, and ensure it's cor...2021-08-09T14:35:49ZSébastien BlinTrustRequest: add signal for conversationRequest removed, and ensure it's correctly syncedRelated to https://git.jami.net/savoirfairelinux/ring-project/-/issues/1282Related to https://git.jami.net/savoirfairelinux/ring-project/-/issues/1282Swarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/599Account preferences: add preferences to send or not displayed status2021-08-09T13:30:43ZSébastien BlinAccount preferences: add preferences to send or not displayed statusFor now clients are doing their own logic. This should be moved into the daemon. This allow us to group code from differnt clients.For now clients are doing their own logic. This should be moved into the daemon. This allow us to group code from differnt clients.Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-project/-/issues/1282Swarm: Beta follow up2022-02-04T19:22:16ZSébastien BlinSwarm: Beta follow upTest | Qt | Android | Gnome | iOS | macOS
---------------------------------------------------------...Test | Qt | Android | Gnome | iOS | macOS
-----------------------------------------------------------------------------------|----|--------------------------------------------------|------|-------------------------|----
Create account | ✔ | ✔ | ✔ | ✔ | ✔
Sync account with some invitations | ✔ | ✔ | ✔ | ✔ | X
Sync account with some swarm | ✔ | ✔ | ✔ | ✔ | ✔
Import account: Sync Avatar with connected devices | ✔ | X | ✔ | X | ✔
Multi-device add outgoing message | ✔ | ✔ | ✔ | ✔ | ✔
Auto accept files (incoming) | ✔ | ✔ | ✔ | ✔ | ✔
Auto accept files (outgoing from other) | ✔ | ✔ | ✔ | ✔ | ✔
Auto accept files when showing history after sync | ✔ | X (not wanted) | ✔ | X | ✔
Receive multi device call | ✔ | ✔ | ✔ | ✔ | ✔
Show syncing view while syncing | ✔ | ✔ | X | ✔ | ✔
Receive conversation request in multidevice | ✔ | ✔ | ✔ | ✔ | ✔
Accept conversation request in multidevice | ✔ | ✔ | X (at restart it's not shown) | ✔
Remove conversation in multidevice | ✔ | ✔ | ✔ | X | ✔
Decline conversation request in multidevice | ✔ | ✔ | X | ✔ | ✔
Read-only with contact left | ✔ | X | X | X | X
Set message Displayed (swarm) | ✔ | ✔ | ✔ | ✔ | ✔
Set message Displayed (not swarm) | ✔ | ✔ | ✔ | ✔ | ✔
Read status after restart | ✔ | X | ✔ | ✔ | ✔
Fallback on DHT message (old client) | ✔ | ✔ | ✔ | ✔ | ✔
Migrate from stable to Swarm | ✔ | ? | ✔ | ✔ | ✔
Send file to non swarm | ✔ | ✔ | ✔ | ✔ | ✔
Recv file to non swarm | ✔ | ✔ | ✔ | ✔ | ✔
Send file to swarm | ✔ | ✔ | ✔ | ✔ | ✔
Receiving file to swarm | ✔ | ✔ | ✔ | ✔ | ✔
Can download file from other device (multi device) | ✔ | ✔ | ✔ | ? | ✔
Remove contact or one to one conversation call removeContact | ✔ | ✔ | ✔ | ✔ | ✔
Import from old backup with another connected device => sync the new conversations | ✔ | ✔ | ✔ | no import from backup | ✔
Save file | ✔ | ✔ | ✔ | ✔ | X (not found)
Other bugs:
+ client-gnome: some history glitch after syncing
+ macOS: while syncing, call buttons and bar at bottom should be hidden
+ macOS: in Swarm, file transfer should show "Downloads"
+ macOS: composing status from self is shown (multi-device)
+ macOS: bug when a conversation request is declined, red bubble on conversations is still shown if bar hidden
+ macOS: sometimes weird smartlist with invisible contacts
+ macOS: no contact details (to differentiate swarm/contacts)
+ macOS: should use display name to show file in Swarm
To determine:
Que faire si syncing infinite? (Show time added + re-add contact)Swarm-chatSébastien BlinAdrien BéraudAndreas TraczykAmin BandaliSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/486Links surrounded by <> (e.g. "<https://git.jami.net>") are not linkified prop...2023-05-05T19:37:15ZMaxime DevosLinks surrounded by <> (e.g. "<https://git.jami.net>") are not linkified properly.I type "text \<https://git.jami.net> text" in the chat.
The following appears in the area above the input field:
text \<https://git.jami.net>; text
where "\<https://git.jami.net>;" is a hyperlink pointing to "\<https://git.jami.net>;...I type "text \<https://git.jami.net> text" in the chat.
The following appears in the area above the input field:
text \<https://git.jami.net>; text
where "\<https://git.jami.net>;" is a hyperlink pointing to "\<https://git.jami.net>;" (without the " quotes).
There are two problems here:
- the ";" should not be present
- the ">" should not be part of the link
I noticed "linkify" is used, and typing the same input in https://soapbox.github.io/linkifyjs/ results in properly linkified text. So maybe the bundled copy of linkify needs to be updated? Looking at this git repo, the copy of 'linkify' appears to be from 2016 and there has been a release of linkify in 2020 (v2.1.9).
I'm using "jami-gnome" (version 20210606.1.e2f9490 as packaged in Guix).
(Edit: apparently \<http://...> is Markdown mark-up, so I added a few \\, and now this text is formatted properly (including the <>).)https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/483Conversations: typing indicator doesn't show when peer is typing2021-12-16T20:51:34ZAndreas TraczykConversations: typing indicator doesn't show when peer is typinghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/598jamiaccount: SHA256 regression2021-08-18T20:29:23ZOlivier Dionjamiaccount: SHA256 regressionStore on misaligned address of type `uint16_t`
See [backtrace](/uploads/d4f3ad2b7b84544a4ca1313db2a1e0e4/bt.txt).
Git bisect shows that commit 95280b19b88ae5c13e5dfa318d38feeef408ae82 introduced the bug.
To find the regression on your...Store on misaligned address of type `uint16_t`
See [backtrace](/uploads/d4f3ad2b7b84544a4ca1313db2a1e0e4/bt.txt).
Git bisect shows that commit 95280b19b88ae5c13e5dfa318d38feeef408ae82 introduced the bug.
To find the regression on your own, run [this](/uploads/97df2ce05ff2f310893ff244cfb2e79b/find-regression) script.https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/482Swarm: newly added conversation displays 2x "Contact Added" and unread badge2021-08-03T12:56:02ZAndreas TraczykSwarm: newly added conversation displays 2x "Contact Added" and unread badge![image](/uploads/2a9f451800b47165fc144c00efcf24e5/image.png)![image](/uploads/2a9f451800b47165fc144c00efcf24e5/image.png)https://git.jami.net/savoirfairelinux/jami-client-gnome/-/issues/1271Links surrounded by <> (e.g. "<https://git.jami.net>") are not linkified prop...2021-07-30T14:46:21ZMaxime DevosLinks surrounded by <> (e.g. "<https://git.jami.net>") are not linkified properly.I type "text \<https://git.jami.net> text" in the chat.
The following appears in the area above the input field:
text \<https://git.jami.net>; text
where "\<https://git.jami.net>;" is a hyperlink pointing to "\<https://git.jami.net>;...I type "text \<https://git.jami.net> text" in the chat.
The following appears in the area above the input field:
text \<https://git.jami.net>; text
where "\<https://git.jami.net>;" is a hyperlink pointing to "\<https://git.jami.net>;" (without the " quotes).
There are two problems here:
- the ";" should not be present
- the ">" should not be part of the link
I noticed "linkify" is used, and typing the same input in https://soapbox.github.io/linkifyjs/ results in properly linkified text. So maybe the bundled copy of linkify needs to be updated? Looking at this git repo, the copy of 'linkify' appears to be from 2016 and there has been a release of linkify in 2020 (v2.1.9).
I'm using "jami-gnome" (version 20210606.1.e2f9490 as packaged in Guix).
(Edit: apparently \<http://...> is Markdown mark-up, so I added a few \\, and now this text is formatted properly (including the <>).)https://git.jami.net/savoirfairelinux/jami-libclient/-/issues/485Links surrounded by <> (e.g. "<https://git.jami.net>") are not linkified prop...2021-07-29T13:03:08ZMaxime DevosLinks surrounded by <> (e.g. "<https://git.jami.net>") are not linkified properly.I type "text <https://git.jami.net> text" in the chat.
The following appears in the area above the input field:
text <https://git.jami.net>; text
where "<https://git.jami.net>;" is a hyperlink pointing to "<https://git.jami.net>;" (w...I type "text <https://git.jami.net> text" in the chat.
The following appears in the area above the input field:
text <https://git.jami.net>; text
where "<https://git.jami.net>;" is a hyperlink pointing to "<https://git.jami.net>;" (without the " quotes).
There are two problems here:
- the ";" should not be present
- the ">" should not be part of the link
I noticed "linkify" is used, and typing the same input in https://soapbox.github.io/linkifyjs/ results in properly linkified text. So maybe the bundled copy of linkify needs to be updated? Looking at this git repo, the copy of 'linkify' appears to be from 2016 and there has been a release of linkify in 2020 (v2.1.9).
I'm using "jami-gnome" (version 20210606.1.e2f9490 as packaged in Guix).https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/597Regression 2.11 - should stop in less than 30 secs if turn fails2021-07-30T20:03:34ZSébastien BlinRegression 2.11 - should stop in less than 30 secs if turn fails```cpp
void
IceTest::testFail()
{
const auto& addr4 = dht_->getPublicAddress(AF_INET);
CPPUNIT_ASSERT(addr4.size() != 0);
CPPUNIT_ASSERT(turnV4_);
IceTransportOptions ice_config;
ice_config.upnpEnable = true;
ice_...```cpp
void
IceTest::testFail()
{
const auto& addr4 = dht_->getPublicAddress(AF_INET);
CPPUNIT_ASSERT(addr4.size() != 0);
CPPUNIT_ASSERT(turnV4_);
IceTransportOptions ice_config;
ice_config.upnpEnable = true;
ice_config.tcpEnable = true;
std::shared_ptr<IceTransport> ice_master, ice_slave;
std::mutex mtx, mtx_create, mtx_resp, mtx_init;
std::unique_lock<std::mutex> lk {mtx}, lk_create {mtx_create}, lk_resp {mtx_resp},
lk_init {mtx_init};
std::condition_variable cv, cv_create, cv_resp, cv_init;
std::string init = {};
std::string response = {};
bool iceMasterNotReady = false, iceSlaveNotReady = false;
ice_config.onInitDone = [&](bool ok) {
CPPUNIT_ASSERT(ok);
dht::ThreadPool::io().run([&] {
CPPUNIT_ASSERT(cv_create.wait_for(lk_create, std::chrono::seconds(10), [&] {
return ice_master != nullptr;
}));
auto iceAttributes = ice_master->getLocalAttributes();
std::stringstream icemsg;
icemsg << iceAttributes.ufrag << "\n";
icemsg << iceAttributes.pwd << "\n";
for (const auto& addr : ice_master->getLocalCandidates(1)) {
if (addr.find("relay") != std::string::npos) {
// We only want to add relayed + public ip
icemsg << addr << "\n";
JAMI_DBG() << "Added local ICE candidate " << addr;
} else {
// Replace host by non existing IP (we still need host to not fail the start)
std::regex e("((?:[0-9]{1,3}\\.){3}[0-9]{1,3})");
auto newaddr = std::regex_replace(addr, e, "100.100.100.100");
if (newaddr != addr)
icemsg << newaddr << "\n";
}
}
init = icemsg.str();
cv_init.notify_one();
CPPUNIT_ASSERT(cv_resp.wait_for(lk_resp, std::chrono::seconds(10), [&] {
return !response.empty();
}));
auto sdp = ice_master->parseIceCandidates(response);
CPPUNIT_ASSERT(
ice_master->startIce({sdp.rem_ufrag, sdp.rem_pwd}, std::move(sdp.rem_candidates)));
});
};
ice_config.onNegoDone = [&](bool ok) {
iceMasterNotReady = !ok;
cv.notify_one();
};
ice_config.accountPublicAddr = IpAddr(*addr4[0].get());
ice_config.accountLocalAddr = ip_utils::getLocalAddr(AF_INET);
ice_config.master = true;
ice_config.streamsCount = 1;
ice_config.compCountPerStream = 1;
ice_master = Manager::instance().getIceTransportFactory().createTransport("master ICE",
ice_config);
cv_create.notify_all();
ice_config.onInitDone = [&](bool ok) {
CPPUNIT_ASSERT(ok);
dht::ThreadPool::io().run([&] {
CPPUNIT_ASSERT(cv_create.wait_for(lk_create, std::chrono::seconds(10), [&] {
return ice_slave != nullptr;
}));
auto iceAttributes = ice_slave->getLocalAttributes();
std::stringstream icemsg;
icemsg << iceAttributes.ufrag << "\n";
icemsg << iceAttributes.pwd << "\n";
for (const auto& addr : ice_slave->getLocalCandidates(1)) {
if (addr.find("relay") != std::string::npos) {
// We only want to add relayed + public ip
icemsg << addr << "\n";
JAMI_DBG() << "Added local ICE candidate " << addr;
} else {
// Replace host by non existing IP (we still need host to not fail the start)
std::regex e("((?:[0-9]{1,3}\\.){3}[0-9]{1,3})");
auto newaddr = std::regex_replace(addr, e, "100.100.100.100");
if (newaddr != addr)
icemsg << newaddr << "\n";
}
}
response = icemsg.str();
cv_resp.notify_one();
CPPUNIT_ASSERT(
cv_init.wait_for(lk_resp, std::chrono::seconds(10), [&] { return !init.empty(); }));
auto sdp = ice_slave->parseIceCandidates(init);
CPPUNIT_ASSERT(
ice_slave->startIce({sdp.rem_ufrag, sdp.rem_pwd}, std::move(sdp.rem_candidates)));
});
};
ice_config.onNegoDone = [&](bool ok) {
iceSlaveNotReady = !ok;
cv.notify_one();
};
ice_config.turnServers.emplace_back(TurnServerInfo()
.setUri(turnV4_->toString(true))
.setUsername("ring")
.setPassword("ring")
.setRealm("ring"));
ice_config.master = false;
ice_config.streamsCount = 1;
ice_config.compCountPerStream = 1;
ice_slave = Manager::instance().getIceTransportFactory().createTransport("slave ICE",
ice_config);
cv_create.notify_all();
CPPUNIT_ASSERT(cv.wait_for(lk, std::chrono::seconds(120), [&] {
return iceMasterNotReady && iceSlaveNotReady;
}));
}
```
This should succeed. However seems not the case seems 2.11
Also we can change a bit the busy loop to test every 100 ms for TURN if refused instead of each 20msSébastien BlinSébastien Blin