Skip to content

Building Signal Desktop on Fedora

In 2020-03-29 this guide was re-written from an old method and spec file to a new one fetched from here.

Here's how I build my own RPM for Signal Desktop. This guide has been evolving since Fedora 28.

Why?

The Signal org provides no official RPM and I don't trust 3rd parties building their own so I go through this process every time I need to update Signal Desktop.

Setup rpmbuild

Pick somwhere to build your RPMs, I've picked $HOME/src/rpmbuild and hard coded that into my .rpmmacros file. So it looks like this.

%_topdir %(echo $HOME)/src/rpmbuild
%_tmppath %(echo $HOME)/src/rpmbuild/tmp

%__arch_install_post \
    [ "%{buildarch}" = "noarch" ] || QA_CHECK_RPATHS=1 ; \
    case "${QA_CHECK_RPATHS:-}" in [1yY]*) /usr/lib/rpm/check-rpaths ;; esac \
    /usr/lib/rpm/check-buildroot

Don't ask me what the last part does, I don't remember. But the first two lines are pretty self-explanatory and used by the rpmbuild command later.

$ mkdir -p $HOME/src/rpmbuild
$ mkdir $HOME/src/rpmbuild/{SPECS,SOURCES}

Download SPEC and SOURCE for Signal

Clone the git repo with the SPEC and patch files

$ mkdir $HOME/src
$ cd $HOME/src
$ git clone https://github.com/negativo17/Signal-Desktop
$ cp Signal-Desktop/*.spec ~/src/rpmbuild/SPECS/
$ cp Signal-Desktop/*.{patch,desktop} ~/src/rpmbuild/SOURCES/
$ cd ~/src/rpmbuild

NOTE That the last working commit I've successfully built Signal-Desktop with is this one.

Download the source release tarball into the SOURCES directory

$ curl -Lo SOURCES/Signal-Desktop-1.32.3.tar.gz https://github.com/signalapp/Signal-Desktop/archive/v1.32.3.tar.gz

Install yarn

Some might install it using npm as a global package later but I prefer using official repos. So follow those instructions on installing the yarn repo.

Install dependency packages

$ sudo dnf install rpm-build nodejs
$ sudo dnf install gcc-c++ node-gyp yarn '@Development Tools'

Build

$ rpmbuild -bb SPECS/Signal-Desktop.spec

Install

$ sudo dnf install RPMS/x86_64/Signal-Desktop-1.32.3-1.fc31.x86_64.rpm

Last update: June 6, 2020