Whisperfish - The unofficial SailfishOS Signal client

“How can I synchronize my phone book contacts similar to TG (Telegram) and WA (WhatsApp) with SG (Signal) , or is that still not possible and I have to enter each number individually?”

I’m trying to register my first account and got HTTP 422 error and lots of library not found error messages. I have a fresh install of Sailfish on Xperia 10 iii (trial version) and Whisperfish 0.6.0.beta.21-0 from Storeman.
I got verification code after Captcha but after typing it Whisperfish just informs to close the application and send a bug report.

,---
| Sailfish OS 4.5.0.24 (Struven ketju)
'---
[defaultuser@Xperia10III ~]$ harbour-whisperfish
library "libutils.so" not found
library "libcutils.so" not found
library "libhardware.so" not found
library "android.hardware.graphics.mapper@2.0.so" not found
library "android.hardware.graphics.mapper@2.1.so" not found
library "android.hardware.graphics.mapper@3.0.so" not found
library "android.hardware.graphics.mapper@4.0.so" not found
library "libc++.so" not found
library "libhidlbase.so" not found
library "libgralloctypes.so" not found
library "android.hardware.graphics.common@1.2.so" not found
library "libion.so" not found
library "libz.so" not found
library "libhidlmemory.so" not found
library "android.hidl.memory@1.0.so" not found
library "vendor.qti.qspmhal@1.0.so" not found
2023-12-23 13:50:32.235 [WARN] src/sailfishapp.rs:211:int __cpp_closure_14317703314545309294_impl(QmlApplicationHolder* const&)(): Failed to load translator for ("en-US") Searched "/usr/share/harbour-whisperfish/translations" for "harbour-whisperfish"
2023-12-23 13:50:32.496 [WARN] "Failed to attach key memory region for qtcontacts-sqlite-np: QSharedMemory::attach (shmget): doesn't exist"
2023-12-23 13:50:32.496 [WARN] "Failed to open contacts transient store"
2023-12-23 13:50:32.496 [WARN] "Unable to open synchronous engine database connection"
2023-12-23 13:50:32.496 [WARN] QSqlQuery::prepare: database not open
2023-12-23 13:50:32.497 [WARN] "Failed to prepare distinct display label group selection query:  \n SELECT DISTINCT DisplayLabelGroup FROM DisplayLabels ORDER BY DisplayLabelGroupSortOrder ASC"
[D] unknown:0 - Using Wayland-EGL
library "libutils.so" not found
library "libcutils.so" not found
library "libhardware.so" not found
library "android.hardware.graphics.mapper@2.0.so" not found
library "android.hardware.graphics.mapper@2.1.so" not found
library "android.hardware.graphics.mapper@3.0.so" not found
library "android.hardware.graphics.mapper@4.0.so" not found
library "libc++.so" not found
library "libhidlbase.so" not found
library "libgralloctypes.so" not found
library "android.hardware.graphics.common@1.2.so" not found
library "libion.so" not found
library "libz.so" not found
library "libhidlmemory.so" not found
library "android.hidl.memory@1.0.so" not found
library "vendor.qti.qspmhal@1.0.so" not found
[W] unknown:0 - "/home/defaultuser/.cache/be.rubdos/harbour-whisperfish/.mozilla/ua-update.json" parse error "illegal value" at offset 0
greHome from GRE_HOME:/usr/bin
libxul.so is not found, in /usr/bin/libxul.so
Created LOG for EmbedLiteTrace
[D] onUrlChanged:120 - Url changed to: https://signalcaptchas.org/registration/generate.html
Created LOG for EmbedLite
Created LOG for EmbedPrefs
Created LOG for EmbedLiteLayerManager
=============== Preparing offscreen rendering context ===============
[D] onUrlChanged:120 - Url changed to: https://signalcaptchas.org/registration/generate
[D] onRecvAsyncMessage:128 - CaptchaDone Received!
[D] onRecvAsyncMessage:128 - CaptchaDone Received!
[D] onRecvAsyncMessage:128 - CaptchaDone Received!
[D] :108 - Captcha code sent!
[D] onUrlChanged:120 - Url changed to: 
2023-12-23 13:52:00.564 [ERROR] Error in registration: Unexpected response: HTTP 422
2023-12-23 13:58:06.239 [WARN] <Unknown File>: QML DBusAdaptor: Failed to unregister service be.rubdos.whisperfish
1 Like

That would be 422 Unprocessable Content. I haven’t seen that before during regiatration, and generally that is one of the codes that should not happen…

I can be wrong, and I hope I am, but one possibility is that the registration API has changed. I’m away from my secondary SIM so I can’t immediately test this, and fixing that requires some actual effort anyway.

Meanwhile - could you set verbose: true (and perhaps logfile: true), try registration again, and send the logs privately to me? (But only try it once - it will not work, and it’s not “polite” to repeat 422 requests.) You can find me at the Matrix channel, see the opening post for details!

Logs received, thanks @Alfh!

Unfortunately I was right – the registration API has changed. We’ll have to update Whisperfish accordingly. So…

PSA: Registering a new Whisperfish install is currently broken. Please do not attempt registration until the fixed version has been released (let’s be polite towards Signal servers). Sorry for the inconvenience!

1 Like

Sounds like PNI registration is mandatory now, which makes a lot of sense.

1 Like

Whisperfish 0.6.0-beta.22

Several cool fixes and features.

Changes

  • Fix a crash when downloading certain attachments
  • Update from Rust 1.52 to Rust 1.75 to allow for many many many new cool things!
  • Inline voice message player (highly overengineered!)
  • Show identified delivery status in debug mode for group messages on per-recipient basis
  • Fix a crash when messages are received on deleted group sessions
  • Performance improvements on loading sessions and receiving read receipts
  • Fix RUSTSEC-2020-0071 RUSTSEC-2021-0139 RUSTSEC-2021-0146 RUSTSEC-2021-0145 RUSTSEC-2021-0127 CVE-2023-42444 and CVE-2023-42447 (although unaffected by any of these)
  • Update Emoji s to version 15
  • Some initial work for receiving stories and distribution lists
  • Fix deleting messages with attachments
  • Decrypt attachments on a threadpool instead of on the executor (fixes lag/unresponsiveness on receiving attachments)
  • Update libsqlite/sqlcipher to 3.41/4.5.0
  • Rework logging subsystem for more concise and more useful logs

Currently, linking and registration is broken because Signal now mandates PNI/ACI support on clients. I will implement that next. There are several other cool new features upcoming too, stay tuned for a very soon update!

22 Likes

Really cool the list of changes!

2 Likes

Oh happy days! What a nice update! WF feels more and more robust app update after update. You’ve been hard at work. :heart:
Thank you for making voice messages work! :pray:

There might be a little bug though with playing…
One voice message conversation I made few weeks ago with Signal/Android…there is only the last message of them playable and shows the voice frequency in message bubble. Other messages look like empty and are not playable dispite the play button.

When is coming recording+sending of voice messages? :wink:

1 Like

Hmmmm, that’s interesting. Do you have logs, and can you elaborate on what device (Signal Android/iOS?) was used to send those messages?

Depending on how the weekend goes, might even be next week. But I have some other priorities to focus on first (PNI/ACI is a big one, username support soon, …)

2 Likes

Sorry, have not had time to answer before now.
Those messages were send with Android version of Signal which is on the same phone I have WF also (Xperia 10 III SFOS 4.5.0.24)
I tried one time reproduce the anomaly, but it didn’t appear then.
I can try once more here some day how it works again…

1 Like

I think what you see is a combination of two things: (1) attachments that don’t get downloaded completely; (2) voice messages that are received while the session is open don’t render until you reload the session.

1 Like

Whisperfish 0.6.0-beta.23 “FOSDEM release”

Sever cool new features! I tagged this during the Sailfish OS dinner on FOSDEM-Saturday :slight_smile:

(registration is still broken, but we’re working on the root cause!)

Changes

  • Implement disappearing messages (a huge effort by @direc85 and myself)
  • Implement message style rendering (mentions, bold/italics/…)
  • Implement receiving message edits
  • Preparatory work for phonenumber privacy (PNP/PNI)
  • Delete message notifications on remote message deletion
  • Some other small clean ups that were long overdue
16 Likes

Important note about disappearing messages: Any existing chats will now expose and actually respect the expiry period (if such is set). The “delete timer” for any old messages start when you open the chat with expiring messages and see the messages (again) – this means that old messages and attachments are not deleted until you open the chat. The expiry period is saved per-message, so history is obeyed in that sense.

This behavior gives users opportunity to save the attachments out of the messages (open the attachment and select export from top pulley menu) before they are deleted with the message – this is something Signal clients lets you do as well.

This is an important feature Whisperfish should have supported a long time ago, but all the puzzle pieces fell into place only now.

If you’re worried about losing data because of disappearing messages, making a backup of Whisperfish data folder is always a good, well, backup!

And as always, please report any issues and bugs you find!

11 Likes

Guys, you are incredible!
(this is a non-disappearing message :grin:)

7 Likes

Just a quick update: We’re preparing a small release to fix a few bugs and improve application performance. This will happen Soon™ :wink: This means now is the perfect time to translate Whisperfish using Weblate!

image

Whisperfish has had new translatable strings in most releases, the most recent notable addition being disappearing messages in beta.23 - that was 17 new strings if I remember correctly.

Help us get more languages completed! This is something only the community can make happen :slight_smile:

Thanks!

11 Likes

Yes indeed. I just did Dutch, so I remember that too :’-)

Just finished Greek :slight_smile:

2 Likes

Did a bit of German.

Tried to do:

  • Höfliches Sie → Du-Form
  • “Gespräch” or “Konversation” → Unterhaltung
  • less passive forms

So please review also existing strings.

4 Likes

My very impatient girlfriend didn’t bother to transfer her old Signal account to new iphone and created a new account with the same phone number and now I can’t send her messages on Whisperfish, though receiving them works fine. Any ideas how to fix this?

That doesn’t sound great. Can you send me logs for receiving and sending a message? I have seen similar things happen on new registrations, and I’m torn between prekey registration issues and PNI issues…

If it is indeed PNI: as a workaround, you should be able to respond in Signal Desktop, after which she will have your ACI/PNI linked together, and WF should understand again what’s happening.