Whisperfish is an advanced but unofficial Signal client. Whisperfish should be in a usable state for many users, but is still considered beta quality software ; make sure to always have the latest version! Also, check our Wiki and feel free to contribute to it! Currently, mimimum supported SailfishOS version is 3.4. We intend to keep compatibility with 3.3 for as long as humanly possible. The build for SailfishOS 3.x is located in a separate OpenRepos application.
Do not ever contact the Signal developers about a Whisperfish issue. You will annoy them and make them dislike us. Contact us instead (see below).
Whisperfish is a project by volunteers. Lots of stuff works, lots of other stuff does not work. If you find something that does not work, file an issue or reply to this thread.
- Migration fails if the previous version was started but not registered (beta.11)
Workaround: Migrate (move) the
storagefolder by hand, or rename the old folder
- Workaround: Migrate (move) the
Whisperfish beta.11 white screen on Sailfish 3.4
- Workaround: Use beta.10 for now
- Previously installed emojis are not shown anymore
- This occurs when updating from beta.9 (or older) to beta.10 (or newer)
- Caused by version bump to Emoji 14
- Fix: Remove the old emojis and re-install the new set(s)
Sending the first message to a contact gives a 404 Not Found error:
- Use Signal Desktop to send the first message.
- Ask your contact via another way to send you the first message.
Creating groups, inviting new members, deleting members (planned for later)
Workaround: use Signal Desktop.
- Getting invited to a group. Ask to be added to the group instead.
Workaround: use Signal Desktop.
- Message quotes (the UI element is there, but the implementation currently lacks)
- Many other UI features are just stubs at this point.
- Registration if registration lock is enabled.
- Wait 7 days, or;
- Disable the registration lock on the old device in the Settings menu of the Signal app:
- For Android, this seems to be: Settings → Privacy → Registration lock,
- and for iOS this is seemingly: Account → Signal PIN → Registration lock.
The intention is to keep as many versions of SailfishOS supported for as long as possible. Some versions show bugs specific to that SailfishOS version. If it is not possible to upgrade to the version mentioned below, you can use the workarounds mentioned here.
Current highest tested SailfishOS version: SailfishOS 4.4
In principle, Whisperfish works on SailfishOS 3.3, except for registration.
- Registration on SailfishOS 3.3. As a workaround, register on another device, and move over your data.
Since the release of SailfishOS 4.3, there has been an ABI-incompatible change between 3.x and 4.x. Whisperfish is now built separately for 3.x and 4.x, and both packages are available on OpenRepos. If Storeman cannot figure out the correct version for your 3.x installation, you can install Whisperfish via the commandline (after adding the repository):
zypper install harbour-whisperfish-0.6.0.beta.10-0.sf3.armv7hl
The Sailfish 4.x series introduced a few issues, and possibly new features; notably.
If the app behaves strangely or slow (I have a strong dislike for slow software) to you, please get in touch on Matrix #whisperfish:rubdos.be or on Libera.Chat #whisperfish, file an issue, or email whisperfish [at] rubdos [dot] be, or post on this forum thread. If it works well already, also let me know! That’s good for morale.
Follow the progress of the rework in the 0.6 milestone on Gitlab. If you are interested in contributing, contact me on Gitlab. If you want to discuss development, join the discussion on Matrix #whisperfish:rubdos.be.
There are nightly builds (in form of RPM) available on Gitlab. Nighlies eat batteries for breakfast, break up with your girlfriend, and use magic to turn phones into bricks. If you want to use them, please come and chat on Matrix or IRC. Whenever there is a version that makes sense, and has a low probability of tearing apart the very fabric of the universe, it’ll be here on Open Repos!
Thanks for the support, feel free to buy me a coffee! Liberapay allows for donations via PayPal or credit card. While I do appreciate the donations, please consider matching your donation towards Signal themselves. They need it more than I do, now more than ever! Also consider donating to Weblate, because they provide their translation hosting service to us and many other SailfishOS applications at no cost!
The original Whisperfish 0.5.0, by Andrew, was released under GPLv3+. Since we are using the upstream code of Signal themselves, partly licensed under AGPLv3+, the whole of Whisperfish 0.6.0 falls under AGPLv3+.
Mostly bugfixes for bugs that we introduced in beta.10, but also implements Whisperfish as secondary device. This release is basically completely due to direc85 and Gabriel Margiani; thank you both!
sailfish-qmlto dependencies for registration to work on new installs (thanks to direc85!)
- Fix config.yml migration code (thanks to direc85!)
- Improve handling SMS verification field input (#444 and #443, thanks to direc85!)
- Implement secondary device mode (thanks to Gabriel Margiani and ntninja!)
- Fix background mode (thanks to Gabriel Margiani and direc85!)
- Start a Catalan translation (thanks to Jaume Singlavalls!)
- Play a quiet message when a message arrives when the application is active (thanks to direc85)
- Fix sending to UUID-only contacts (thanks to Gabriel Margiani, fixed in an unrelated MR)
- Keep up with technical debt (several merge requests and pushes)
This is a huge release, thanks to the hackathon we did a month ago with @direc85 (see picture at Whisperfish - The unofficial SailfishOS Signal client - #595 by rubdos).
There’s a ton of useful changes for the users, and there’s also a lot of technical debt fixed that will make the next releases even more awesome. Diffstat since beta.9:
127 files changed, 11795 insertions(+), 5464 deletions(-) (and that’s huge)
- Update to Emoji 14 (thanks to @direc85)
- Correct attachment showing for out-of-order downloads
- Allow resetting identity key through developer options
- Cover page design showing messages showing typing indicators (in cooperation with direc85)
- Implement typing indicators for groups and direct messages (turn on in settings)
- Implement captcha rendering through external application, and hence fix registration (thanks to @direc85 and Gabriel Margiani)
- Spit share plugin and compile them separately for Sailfish 3 or 4 (thanks to @direc85)
- Fix message queuing and resending
- Migrate session records and identity storage to database
- Update libsignal-client (long overdue, only possible since the session record/identity record storage refactoring, cooperation with Gabriel Féron)
- Redesign registration page to combat phone number entry confusion (thanks to @direc85)
- Work around Signal-Desktop issue with JPEG’s sent as PNG’s (thanks to @direc85)
- Optimize Emoji rendering (thanks to @direc85 and @ichthyosaurus )
- Add RemovableMedia to privileges for sending Pictures from the SD card
- Implement archiving and pinning of sessions (thanks to @direc85)
- Multiple UI fixes (thanks to @direc85)
- Allow sending pictures directly from within Whisperfish (thanks to @direc85)
- Give a warning for old Whisperfish versions (thanks to @direc85)
- Show multiple attachments up to five
- Registration should work again! Thanks @direc85 and Gabriel Margiani !
- Cover page is awesome!
- Typing notifications are cute!
- Display multiple attachments!
- Resending failed messages!
This is quite a milestone. The next big milestone will be porting Rust 1.61 to SailfishOS, because that will allow us to further push the dependencies and implement all the new GroupV2 and sealed sending features more easily.
Today I’m feeling healthy and confident enough to start a thread about Whisperfish, the Signal client originally built by Andrew E. Bruno in 2016 (thank you so much, Andrew). In February 2019, aebruno announced the EOL of his Whisperfish. I have then, four months later, volunteered to take the lead and rewrite the whole thing against
libsignal-protocol-c, the official and upstream ratchet/axolotl/e2ee library.
It’s taken me a long time, and during the time I switched to Rust, which turned out to be a radical choice back then, but has since paid of: Signal themselves started switching the protocol library to Rust, and SailfishOS introduced preliminary Rust support in 3.4. I had to DIY my Rust SDK (and haven’t migrated yet).
What followed was a painful rewrite of many things, but it is now starting to pay off. I’d like to thank Markus Törnqvist and Gabriel Féron for their efforts in respectively the Sailfish part and the back end part. I have (re)written the bulk of the application, including a very experimental (but very much working)
await-enabled Qt interface, which I want to get cleaned up by Whisperfish 1.0.0.
The result of our efforts is, currently, Whisperfish 0.6-alpha.3. While I am confident many more people can use the “new” Whisperfish, be aware that this is an alpha release. This means that things will fail and you might lose data. That being said: I have many reports of people losing data with Whisperfish 0.5, data that is not lost on my rewrite. This is due to the new cryptographic library, and many updated API calls. If you install this software (thanks!) please leave feedback, both positive and negative in this thread.
- Sending and receiving messages
- Receiving attachments
- Sending attachments
- Starting conversations with new people
- Altering groups
The above means, that if you can wait with sending pictures (my priority number one) and if you have a working Whisperfish 0.5 installation, you can probably start using the Whisperfish 0.6-alpha’s. Be prepared to send me feedback, either through the forum, Matrix or IRC (freenode#whisperfish). Bug reports and feature requests are more than welcome on the Gitlab issue tracker
Before downloading any of this, please read the above paragraph.
All RPMs are published on the Gitlab package archive.
Published versions can be found on my OpenRepos account.