Titus Stahl

Creating an Ubuntu package of Wire (an encrypted messenger)

Update: 21 November 2016 – I now recommend Riot (which is based on Matrix) as the best encrypted messenger, as it has similar security to Wire / Signal and it is decentralized, making users independent from any particular provider.

The encrypted messaging app Wire recently open-sourced its client code. Wire is a very well-made messenger with many more features than Signal; and it has end-to-end encrypted multi-party audio calls and video chats which makes it a useful addition to Signal and other encrypted messengers. While they offer desktop apps for Windows and OS X for download, no packaged apps exist for Linux. In this post, I will briefly explain how to create an installable Ubuntu package of the Wire desktop app.

It has to be said, first, that the Wire client code is no Free Software – it does not allow for all the rights that go with genuine open source licenses –, the server is still closed-source, and there is no decentralization. In these respects, I am still putting my hopes on Matrix, once they’ve implemented end-to-end encryption, to provide a more usable and more open form of messaging and group calls.

But until that happens, Wire might be the only usable Skype alternative for someone like me who has to participate regularly in group calls as part of my job. Signal does not have group call functionality and programs like Tox and Ring are not usable enough for recommending them to less technically inclined colleagues. They also don’t have mobile versions that are ready for everyday use.

Thus, for people who want to leave Skype for a more secure alternative, Wire is very attractive. However, for Linux users, the only option so far has been to login via the Wire web app (which defeats the point of end-to-end encryption to some extent).

As Wire has now published the source code for its desktop app, it is really easy to create a .deb package for Ubuntu.

Update Feb 2017: The instructions below are outdated. Wire now seemingly provides Linux packages on their download page.

~~You need to have Git, Node, Grunt and electron-installer-debian installed for this to work.

If you don’t you can install these packages as follows in Ubuntu:

sudo apt-get install nodejs git
sudo npm install -g grunt-cli electron-installer-debian

After having done this, you have to perform the following steps:

git clone https://github.com/wireapp/wire-desktop.git
cd wire-desktop
npm install
grunt linux
electron-installer-debian --src wrap/build/Wire-linux-x64 --dest wrap/installers/ --arch amd64

This will leave you (if everything works) with a .deb file in the wrap/installers directory that you then can install with sudo dpkg -i wrap/installers/*.deb. Afterwards, you will can start the desktop app with /usr/share/wireinternal/Wire. For some reason, it does not get added to the desktop menu, but under Unity you can pin it to your quick start panel once you have started it once manually.~~