Which native Sailfish Signal are you talking about? Whisperfish or some other more official one?
Yes, I´m talking about Wisperfish.
I don´t think, that there is going to be something official from Signal in the near future.
How did you use DC on SailfishOS? Is there an native app? Iâve missed it out completely.
@link2xt I see you have been working on kdeltachat in the last month or so.
I tried building it on my Arch laptop prior to building on Pinephone and ran into a couple of issues:
-
I installed deltachat-core-rust systemwide (as Pinephone is very resource-constrained I thought this would be simpler). The Deltachat libraries install into /usr/local and the cmake -B build . command for kdeltachat doesnât find them unless I force install into /usr/bin with âsudo cmake --install build --prefix /usrâ
-
The build command for kdeltachat fails with:
/home//build/kdeltachat/eventemitter.cpp: In member function âvoid DcAccountsEventEmitter::processEvent(DcEvent*)â:
/home/build/kdeltachat/eventemitter.cpp:65:14: error: âDC_EVENT_ERROR_NETWORKâ was not declared in this scope
65 | case DC_EVENT_ERROR_NETWORK:
| ^~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/kdeltachat.dir/build.make:252: CMakeFiles/kdeltachat.dir/eventemitter.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:101: CMakeFiles/kdeltachat.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
Apologies for putting this in a forum message but i couldnât work out how to send you a PM.
Side note: building deltachat-core-rust on the Pinephone takes about six hours and requires an 8GB extra swapfile on SDcardâŚ
Side note 2: I was able to build the Electron client deltachat-desktop on PP but the UI is not convenient for portrait screens and some functions, notably âImport Backupâ donât appear to work, probably because of missing libraries for the file dialogs.
This can be fixed by setting PKG_CONFIG_PATH
so it finds libdeltachat
in /usr/local. Whether it is done for you depends on the distribution, both installing into /usr
and configuring paths to search in /usr/local
are valid solutions. I am trying not to change the defaults in CMakeLists.txt
so package build systems, such as *BSD ports, Gentoo portage, Arch PKGBUILDs that have a âpresetâ to build cmake packages work out of the box.
This is because of breaking change https://github.com/deltachat/deltachat-core-rust/pull/2319 merged recently. You need a bit older libdeltachat
for now.
np, but there is a PM on the forum, click on your avatar then on the âmessagesâ tab (third from the left) twice, then âNew messageâ.
Itâs a sad state of the Rust compiler, hopefully it will be fixed with GCC Rust or some other alternative implementation. Anyway, itâs better to build a package with libdeltachat
on your desktop instead. You can also use Nix package manager which already has a package for libdeltachat
, see this topic about KDeltaChat:
Thanks!
Iâll try building with deltachat-core-rust 1.55.0
I tried to cross-compile on my desktop for aarch64, but without success, mainly due to unfamiliarity with rust/cargo. I will have to try though, in addition to time, PP storage doesnât really have space for GB of build files!
cross could help for the rust part â building libdeltachat.so.
You can use the core version 1.56, its the newest release. The missing constant / the api change is only on master (which can be thought of as becoming 1.57 someday)
Thank you!
Unfortunately cross fails with an obscure pkg-config-related error in the downloaded docker container, that I see from the Issues tab has baffled others too.
I was able to build kDeltachat on the Desktop system and it looks very promising, quite snappy and with a much more sane storage footprint for an embedded device than the Electron app. As mentioned above, the top new features to work on seem to be Attachments and the ability to open a new conversation. To those I would maybe add support for the system themes like other Qt applications can have.
Still building deltachat-core-rust natively on the Pinephone, it has a while to go yet.
@Simon @link2xt
deltachat-core-rust 1.55.0 eventually built on Pinephone (started before your advice to use 1.56). kDeltaChat built and installed.
PP is running Arch Linux Arm with SXMO Xwindows-based environment.
Here are some comments and observations which I hope will be helpful.
-
Startup is relatively rapid, about 1 second. Message backup imported OK though the file dialog was tricky to use with touch. Some button icons were missing
-
On the portrait screen only the conversation list is seen at first. The two buttons at the top ânavigate forwardâ and ânavigate backâ donât show the âarrowâ icons that are present on my laptop. I have not found out the reason yet. Maybe linked to the issue highlighted on the project webpage for Debian. But itâs possible to tap on a conversation or the blank buttons to move to messages. It takes a couple of seconds to load a long message thread. Button sizes are OK for touch use. PP screen is 720x1440.
-
qt5-multimedia package is required before the message list can be selected.
-
videos (h264) donât play. Until gst-libav is installed there are messages about missing Gstreamer plugins. After installation of gst-libav the message with the video is offset to the left so no âplayâ button is visible. This seems to be caused by the tall narrow window size: on laptop the same effect occurs with a tall narrow window. In landscape mode the play button is just visible and the video can be played.
-
scrolling the message view by touch is tricky because itâs easy to select text in messages if you are not careful to touch only the whitespace parts of the display. Scrolling is a bit jerky- the graphics hardware is only a Mali 400, though it is using the Lima driver.
Hope you find these comments useful.
edit: to make Kirigami pick up the installed system-wide icons for the buttons, itâs necessary to set the following environment variable on PP in ~/.profile with
export XDG_CURRENT_DESKTOP=GNOME
Eventually figured out how to use cross
to build the deltachat core library on an x86_64 Arch machine. If anyone else wants to test kDeltachat on Pinephone:
$ git clone https://github.com/deltachat/deltachat-core-rust.git
$ cd deltachat-core-rust
$ sudo pacman -S cross
(rather than cargo install cross
for some reason probably related to PATH)
$ cross build --target aarch64-unknown-linux-gnu -p deltachat_ffi --release
Plenty of ram/swap on the build machine is needed.
This might actually help with python wheel builds. Currently aarch64 builds at dc/master index are built under qemu and it takes several hours, because compiler runs under emulation.
I just tried on Debian, installed with cargo install cross
and ran cross build --target aarch64-unknown-linux-gnu -p deltachat_ffi --release
with podman
, it just works. Built target/aarch64-unknown-linux-gnu/release/libdeltachat.so
.
Just to update this conversation in March 2022 with experience of running kDeltaChat on the Pinephone, with the Arch Arm (danctnix) Phosh distribution, if anyone else wants to try:
- Cross-compiled libdeltachat (1.75, 19 Feb 2022) as above and installed files by manual copy
- built kDeltachat natively on PP
- import backup from deltachat-desktop
Set Environment variables to make more touch-friendly on low power hardware:
QT_WAYLAND_DISABLE_WINDOWDECORATION=1
QT_QUICK_CONTROLS_MOBILE=1
KIRIGAMI_LOWPOWER_HARDWARE=1
Also tested on Plasma Mobile image but segmentation fault encountered when selecting chats in list, (maybe due to incorrect manual installation of libdeltachat.so and deltachat.h), so reverted to Phosh and reinstalled.
- Startup is quite rapid but loading of lengthy chats takes a few seconds due to the low power hardware. Can me improved by âremove messages from server after xxâ option on other clients.
- Finger scrolling chats is a bit tricky, as touching blocks of text selects them. White space or intervals between messages must be used.
- Video clips auto-play but apparently without play/stop/seek controls
- Images crop on right-hand side but can be opened in Image Viewer if tapped.
Overall very usable considering the low power hardware. Thank you for this application!
Happy to help with further testing if beneficial.