mxlgv / dino Goto Github PK
View Code? Open in Web Editor NEWThis project forked from dino/dino
This is Dino+ A modern XMPP/Jabber client software, based on Dino
License: GNU General Public License v3.0
This project forked from dino/dino
This is Dino+ A modern XMPP/Jabber client software, based on Dino
License: GNU General Public License v3.0
Windows file names cannot contain certain characters: \/:*?"<>|
Files with these characters sent to users on Windows fail to transfer.
In order for Windows users to be able to receive these files, the file names must be sanitized when saved by Dino+ to local storage.
I've noticed that certain file downloads stall out on the client. For example, this screenshot gets stuck at 88% without fail.
Another screenshot I found gets stuck at 74%.
I am unsure what determines the exact % they get stuck at.
In my tests, they both eventually finish downloading after 14-15 minutes consistently. My assumption is something times out after a set 15 minutes and allows the download to finish. Currently, I'm not sure what is causing this. I can confirm without a doubt that it's a client issue after comparing against different clients on the same server, as they have no delay at all. A friend corroborates that this issue happens with the upstream project too.
I have also noticed other issues with the file system - there are often times where it takes unusually long to show or pick up that a file was received.
Installing the flatpak (Dino+ version 0.4.3.4) on up-to-date Armbian 24.2.1 (Debian 12), I get the following warning:
Info: runtime org.gnome.Platform branch 44 is end-of-life, with reason:
The GNOME 44 runtime is no longer supported as of March 20, 2024. Please ask your application developer to migrate to a supported platform.
Info: applications using this runtime:
im.dino.Dino
Hi,
I was wondering if you could merge dino#1212 ? This would help in group chats so you readily know the contact name instead of memorizing their JID.
Thank you
Look here to find out the reason for the failure: https://github.com/mxlgv/dino/actions/runs/8449074267/job/23142414308
Thank you for merging dino#1414 as #20! As I mentioned in a comment on the upstream PR:
Thanks for this PR! My two cents as a user of JMP (where encryption with the SMS bridge is pointless) is that an option to select "none" as default is an important addition.
Would you be willing to add such an option to this fork?
Thank you!! This fork is working very well on the pinephone and desktop!
Joseph
This is for the purpose of tracking our efforts of porting the build procedure to Meson. The goal here is to unify the process between OSes. As of now, it'll still require usage of mingw64 on Windows, since we're not going to drop GnuTLS in favor of OpenSSL for the time being.
Currently, the maximum file size for a preview download (automatically download instead of asking the user to manually accept the offer) is 5 MB by default. It would be nice to have a setting to adjust it higher.
There may be some good changes in the original dino that would be nice to transfer to dino-plus
When make calls from windows outgoing audio steam can have sound artifact.
Memory leak occurs during a call in both Windows and GNU\Linux.
Currently we are able to produce a build which will technically run. What's currently broken are voice calls (MacOS user hears their correspondent, but not the other way around) and notifications.
Hello it would be very cool if you could add XEP-0466 or a panic button to delete all messages of a conversation at once and a panic button to delete all data.
Thanks,
liverfail
Receiving the following message when updating my flatpaks:
Info: runtime org.gnome.Platform branch 44 is end-of-life, with reason:
The GNOME 44 runtime is no longer supported as of March 20, 2024. Please ask your application developer to migrate to a supported platform.
Info: applications using this runtime:
im.dino.Dino
Can this get updated to use a newer version?
After installing the Dino+ 0.4.3.4 flatpak on Armbian 24.2.1 (Debian 12) on an aarch64 machine, and rebooting, I tried running flatpak run im.dino.Dino
, but the output is:
Note that the directory
'/home/tim/.local/share/flatpak/exports/share'
is not in the search path set by the XDG_DATA_DIRS environment variable, so
applications installed by Flatpak may not appear on your desktop until the
session is restarted.
bwrap: execvp ldconfig: Exec format error
error: ldconfig failed, exit status 256
This may be related to flatpak/flatpak#5228
Unfortunately, I discovered that for Windows I could easily run the executable directly from Dino!
The only thing that can stop the launch is UAC and then if the program asks for administrator rights.
I think running executable files should be prohibited for security reasons.
Scaling up avatars and other elements would probably go along with this.
Currently Dino+ fails to properly minimize to taskbar when user presses the taskbar window, and fails to maximize when users does the same.
The larger the GIF file, the harder it impacts Dino+'s performance. In some cases, it causes a complete freeze and the program to stop responding. I first noticed this issue when sending/receiving 10+ MB GIF files.
The tags should now look like this: a.b.c.d
, where a.b.c
is the latest version of the original Dino. d
- changes made as part of the Dino+ project.
Thus the next release of Dino+ v0.4.3.4
Native building through msvc on windows is possible with openssl library.
It is recommended to use meson because it is native tool to build vala and glib-oriented projects.
Dino
can be built on windows using mingw + cmake or meson + gnutls.Dino
can be built though meson with openssl but w/o ICE plugin. That's why calling does not work now.The GnuTLS
library is used in the ICE plugin to establish encrypted session.
There are 2 parts in the plugin (dtls_srtp.vala
):
NORMAL:!VERS-TLS-ALL:+VERS-DTLS-ALL:+CTYPE-CLI-X509
.It seems all of the above features are supported by openssl.
There is no much information about DTLS handshaking between openssl and gnutls.
The first part (X509) can be easily ported on openssl.
The most unlear part is SRTP support, set priority string and handshaking.
Hello. Here is the output from the terminal when trying to build the package
~ ❯ LANG=en paru -S dino-plus-git
:: Resolving dependencies...
:: Calculating conflicts...
:: Calculating inner conflicts...
:: Conflicts found:
dino-plus-git: dino
:: Conflicting packages will have to be confirmed manually
Aur (1) dino-plus-git-v0.4.3.fork.3.r14.gbec8a5b6-1
:: Proceed to review? [Y/n]: y
:: Downloading PKGBUILDs...
PKGBUILDs up to date
nothing new to review
fetching devel info...
==> Making package: dino-plus-git v0.4.3.fork.3.r14.gbec8a5b6-1 (Sat Aug 17 17:37:01 2024)
==> Retrieving sources...
-> Updating dino git repo...
==> Validating source files with sha512sums...
dino ... Skipped
==> Making package: dino-plus-git v0.4.3.fork.3.r14.gbec8a5b6-1 (Sat Aug 17 17:37:03 2024)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Updating dino git repo...
==> Validating source files with sha512sums...
dino ... Skipped
==> Removing existing $srcdir/ directory...
==> Extracting sources...
-> Creating working copy of dino git repo...
Cloning into 'dino'...
done.
==> Starting pkgver()...
==> Updated version: dino-plus-git v0.4.3.4.r13.g80af0670-1
==> Sources are ready.
dino-plus-git-v0.4.3.fork.3.r14.gbec8a5b6-1: parsing pkg list...
==> Making package: dino-plus-git v0.4.3.4.r13.g80af0670-1 (Sat Aug 17 17:37:06 2024)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Starting pkgver()...
==> Removing existing $pkgdir/ directory...
==> Starting build()...
-!- CMake required.
==> ERROR: A failure occurred in build().
Aborting...
error: failed to build 'dino-plus-git-v0.4.3.fork.3.r14.gbec8a5b6-1':
error: packages failed to build: dino-plus-git-v0.4.3.fork.3.r14.gbec8a5b6-1
Distribution: Artix Linux with latest updates
paru version: v2.0.3
If a user downloads/uploads a file, and the file in local storage is later deleted, they cannot download it again. It only shows the file being offered and gives non-functional options to open/save it. While the option to locally delete a file/message is not yet implemented, it's still possible that users could lose files through other means.
After updating MinGW Dino+ does not build. One of the problems is with HINSTANCE
.
Suggested fix:
diff --git a/libdino/src/service/util.vala b/libdino/src/service/util.vala
index 496994c8..22708c74 100644
--- a/libdino/src/service/util.vala
+++ b/libdino/src/service/util.vala
@@ -6,7 +6,7 @@ namespace Dino {
public class Util {
#if _WIN32
[CCode (cname = "ShellExecuteA", cheader_filename = "windows.h")]
- private static extern int ShellExecuteA(int* hwnd, string operation, string file, string parameters, string directory, int showCmd);
+ private static extern int* ShellExecuteA(int* hwnd, string operation, string file, string parameters, string directory, int showCmd);
[CCode (cname = "CoInitialize", cheader_filename = "windows.h")]
private static extern int CoInitialize(void* reserved);
@@ -14,7 +14,7 @@ public class Util {
[CCode (cname = "CoUninitialize", cheader_filename = "windows.h")]
private static extern void CoUninitialize();
- private static int ShellExecute(string operation, string file) {
+ private static int* ShellExecute(string operation, string file) {
CoInitialize(null);
var result = ShellExecuteA(null, operation, file, null, null, 1);
CoUninitialize();
The second error is related to Yolort:
C:/msys64/home/user/dino/plugins/windows-notification/yolort/include/winrt/yolort_impl/winrt/Windows.UI.Notifications.h:554:173: error: conversion from 'winrt::impl::bind_in<std::chrono::time_point<winrt::clock, std::chrono::duration<long long int, std::ratio<1, 10000000
> > > >' to 'int64_t' {aka 'long long int'} is ambiguous
554 | check_hresult(WINRT_IMPL_SHIM(Windows::UI::Notifications::IScheduledToastNotificationFactory)->CreateScheduledToastNotificationRecurring(*(void**)(&content), impl::bind_in(deliveryTime), impl::bind_in(snoozeInterval), maximumSnoozeCount, &value));
There is no solution yet...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.