Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Signal-Desktop for Fedora #4530

Closed
sallyhaj opened this issue Sep 23, 2020 · 38 comments
Closed

Signal-Desktop for Fedora #4530

sallyhaj opened this issue Sep 23, 2020 · 38 comments

Comments

@sallyhaj
Copy link

Hello there!
I have searching a way to install the app on my Fedora system, once I saw 'Linux' on the download page, I thought that I'd reached my point, but unfortunately, there, only a package for debian.
In copr repositories, it's available, but the last version is in failed status, and as we know, in copr, the maintainer is only one person, then I checked flatpak hub, I saw the app with the latest version, I've installed it, but it was with almost 300 MB of data, which means a lot for a single application.
My question is that, is there any plan to add rpm repo/package to the official download section?
Thank you so much.

@josh-signal
Copy link
Contributor

@jalalsfs as you've noticed Signal is officially available for debian distros: https://support.signal.org/hc/en-us/articles/360008216551-Installing-Signal I'm going to mark this as a feature request, however I believe the best place for this sort of feedback/requests is the community forum: https://community.signalusers.org/

@x80486
Copy link

x80486 commented Sep 25, 2020

Alternatively, there is a Flatpak for Signal, unless you are looking specifically for an RPM.

@chiraag-nataraj
Copy link

I've installed it, but it was with almost 300 MB of data, which means a lot for a single application.

FWIW, that's going to be true in general (it's actually ~371MB uncompressed on my Debian system) because it's an electron-based program, so it includes a full Chromium runtime along with assets and whatnot.

@maitra
Copy link

maitra commented Sep 29, 2020

There is a copr repo for fedora, see here: https://www.addictivetips.com/ubuntu-linux-tips/install-signal-privacy-messenger-linux/
But, yes, would be nice to have this in the official repo.

@cmdrogogov
Copy link

+1 for this feature request.

Right now anyone using an RPM-based distribution can't even test the beta because there is no way to install it.

@charafau
Copy link

I think the best solution for this would be official flatpak on flathub - uploaded from github action on tag release

@x80486
Copy link

x80486 commented Oct 23, 2020

The "unofficial" Flatpak is updated as soon as a release is made. Now it would be great if Signal takes ownership of the Flatpak; I don't see a reason to not do it since it's been working now for years without (almost) any issues.

@hasufell
Copy link

I don't think flatpak is a solution for security aware users, see https://www.flatkill.org/2020/

@x80486
Copy link

x80486 commented Dec 13, 2020

Behind the Flatpak technology are a series of well-known companies and quite smart developers. Almost, if not the entire development/process is open-source (I hope you know what that means), and still, some paraflopi-who-knows-who writes a 1000 lines article and you folks try to put it aside because of that? 🙄

Now, Flatpak still have issues, like any other technology. I'm sure they are going to be fixed...and yes, not every single Flatpak application is hardened or implement every single requirement to make it work ideally, but the same would happen for that particular application installed from .deb, .rpm (you name it). On the other hand, there are TONS of applications released as Flatpaks that takes fully advantage of the technology.

@hasufell
Copy link

@x80486 I've been a linux distro developer for a decade, including gentoo maintenance for 5 years (the main repo). I'm very well aware what it takes to do proper packaging. Unless flatpak shows how they enforce quality (policies, QA, testers) and react to vulnerability reports (processes, workflow, tooling, communicating issues to users)... they are to be avoided.

@D4-Developer
Copy link

D4-Developer commented Jan 8, 2021

+1 for this feature request.
#official-repo
#Fedora #rpm

@mohitpalsingh
Copy link

+1 for this feature

@blalyasar
Copy link

+1 for this feature..

@shoeper
Copy link

shoeper commented Jan 10, 2021

Looks like this is a duplicate of #1630

@EvanHahn-Signal
Copy link
Contributor

I'm going to close this as it's a duplicate of #1630. Know that we hear this feature request and recommend installing community-maintained builds for now, but we'll keep an eye on supporting other Linux distributions officially.

@blalyasar
Copy link

For fedora desktop with dnf packed manager . https://copr.fedorainfracloud.org/coprs/luminoso/Signal-Desktop/

@yea-hung
Copy link

Here's what's working for me to build from scratch:

Install the build tools:

sudo dnf groupinstall 'Development Tools'
sudo dnf install g++ npm
npm install --global yarn

Note that you should not need to repeat the steps later (if and when you later update your install of Signal Desktop).

Download the Signal Desktop source code:

mkdir -p signal/
cd signal/
git clone https://github.com/signalapp/Signal-Desktop.git
cd Signal-Desktop/

Open package.json in a text editor and replace "deb" with "rpm" (line 391 for me, in my most recent build attempt). Save and close.

Initiate the build:

yarn install --frozen-lockfileyarn

This should throw an error about the version of nvm. For the most recent version of Signal Desktop, the requested version is nvm install 16.13.0. Make note of the requested version, and install it:

nvm install 16.13.0

You should replace 16.13.0 here with whatever version was mentioned in the error message.

Complete the build:

yarn generate
yarn build-release

If all works, you should end up with an RPM file in release. You can then install that as you normally would:

cd release
sudo rpm -Uvh signal-desktop-5.37.0-beta.1.x86_64

All credit for these steps goes to michelamarie's amazing guide. I've applied just some slight changes. Please feel free to draw attention to any corrections or suggestions in any of the above.

For what it's worth, despite the above, I totally support the request for an official RPM.

@BarbossHack
Copy link

BarbossHack commented Mar 27, 2022

Thanks @yea-hung 👍 I made a Dockerfile to build Signal-Desktop RPM based on your advices (and @michelamarie's ones)

https://github.com/BarbossHack/Signal-Desktop-Fedora

-> Simply run

make
make install

@techsk8
Copy link

techsk8 commented Jan 22, 2023

That's neat! Thank you! @BarbossHack 😸

Works like a charm 🤩

@sallyhaj
Copy link
Author

Thank you @BarbossHack , I have a question, does that builder applied for aarch64? like PRi4.

@BarbossHack
Copy link

BarbossHack commented Jan 23, 2023

Thank you @BarbossHack , I have a question, does that builder applied for aarch64? like PRi4.

My builder uses x86_64 docker images to build, so it does not applied for aarch64 @sallyahaj

But you can try to modify my Dockerfile to set an arm64v8 (aarch64) image, for example:

FROM docker.io/arm64v8/fedora:37

and then try to run

make
make install

@sallyhaj
Copy link
Author

sallyhaj commented Mar 29, 2023

Thank you @BarbossHack , I tried your docker config, in both ways, with default settings and with adding "FROM docker.io/arm64v8/fedora:37", same results, as the follow:

[build:release   ] Fusing electron at /root/Signal-Desktop/release/linux-arm64-unpacked/signal-desktop inspect-arguments=false
[build:release   ] Copying en-US.pak to af-ZA.pak
[build:release   ] Copying en-US.pak to az-AZ.pak
[build:release   ] Copying en-US.pak to bg-BG.pak
[build:release   ] Copying en-US.pak to bn-BD.pak
[build:release   ] Copying en-US.pak to bs-BA.pak
[build:release   ] Copying en-US.pak to et-EE.pak
[build:release   ] Copying en-US.pak to eu.pak
[build:release   ] Copying en-US.pak to fa-IR.pak
[build:release   ] Copying en-US.pak to ga-IE.pak
[build:release   ] Copying en-US.pak to gl-ES.pak
[build:release   ] Copying en-US.pak to gu-IN.pak
[build:release   ] Copying en-US.pak to hi-IN.pak
[build:release   ] Copying en-US.pak to hr-HR.pak
[build:release   ] Copying en-US.pak to ka-GE.pak
[build:release   ] Copying en-US.pak to kk-KZ.pak
[build:release   ] Copying en-US.pak to km-KH.pak
[build:release   ] Copying en-US.pak to kn-IN.pak
[build:release   ] Copying en-US.pak to ky-KG.pak
[build:release   ] Copying en-US.pak to lt-LT.pak
[build:release   ] Copying en-US.pak to lv-LV.pak
[build:release   ] Copying en-US.pak to mk-MK.pak
[build:release   ] Copying en-US.pak to ml-IN.pak
[build:release   ] Copying en-US.pak to mr-IN.pak
[build:release   ] Copying en-US.pak to my.pak
[build:release   ] Copying en-US.pak to pa-IN.pak
[build:release   ] Copying en-US.pak to ro-RO.pak
[build:release   ] Copying en-US.pak to sk-SK.pak
[build:release   ] Copying en-US.pak to sl-SI.pak
[build:release   ] Copying en-US.pak to sq-AL.pak
[build:release   ] Copying en-US.pak to sr-RS.pak
[build:release   ] Copying en-US.pak to sr-YR.pak
[build:release   ] Copying en-US.pak to ta-IN.pak
[build:release   ] Copying en-US.pak to te-IN.pak
[build:release   ] Copying en-US.pak to tl-PH.pak
[build:release   ] Copying en-US.pak to ug.pak
[build:release   ] Copying en-US.pak to uk-UA.pak
[build:release   ] Copying en-US.pak to zh-HK.pak
[build:release   ] Copying en-US.pak to zh-YU.pak
[build:release   ] notarize: Skipping, not on macOS
[build:release   ]   • building        target=rpm arch=arm64 file=release/signal-desktop-6.11.0.aarch64.rpm
[build:release   ]   • downloading     url=https://github.com/electron-userland/electron-builder-binaries/releases/download/fpm-1.9.3-2.3.1-linux-x86/fpm-1.9.3-2.3.1-linux-x86.7z size=4.6 MB parts=1
[build:release   ]   • downloaded      url=https://github.com/electron-userland/electron-builder-binaries/releases/download/fpm-1.9.3-2.3.1-linux-x86/fpm-1.9.3-2.3.1-linux-x86.7z duration=2.08s
[build:release   ]   ⨯ cannot execute  cause=exit status 255
[build:release   ]                     errorOut=qemu-i386-static: Could not open '/lib/ld-linux.so.2': No such file or directory
[build:release   ] 
[build:release   ]                     command=/root/.cache/electron-builder/fpm/fpm-1.9.3-2.3.1-linux-x86/fpm -s dir --force -t rpm -d gtk3 -d libnotify -d nss -d libXScrnSaver -d libXtst -d xdg-utils -d at-spi2-core -d libuuid --rpm-os linux --rpm-compression xzmt --architecture arm64 --after-install /tmp/t-SrSBmG/0-after-install --after-remove /tmp/t-SrSBmG/1-after-remove --description 'Private messaging from your desktop' --version 6.11.0 --package /root/Signal-Desktop/release/signal-desktop-6.11.0.aarch64.rpm --name signal-desktop --maintainer 'Signal Messenger, LLC <support@signal.org>' --url 'https://github.com/signalapp/Signal-Desktop#readme' --vendor 'Signal Messenger, LLC <support@signal.org>' --license AGPL-3.0-only /root/Signal-Desktop/release/linux-arm64-unpacked/=/opt/Signal /root/Signal-Desktop/build/icons/png/16x16.png=/usr/share/icons/hicolor/16x16/apps/signal-desktop.png /root/Signal-Desktop/build/icons/png/24x24.png=/usr/share/icons/hicolor/24x24/apps/signal-desktop.png /root/Signal-Desktop/build/icons/png/32x32.png=/usr/share/icons/hicolor/32x32/apps/signal-desktop.png /root/Signal-Desktop/build/icons/png/48x48.png=/usr/share/icons/hicolor/48x48/apps/signal-desktop.png /root/Signal-Desktop/build/icons/png/64x64.png=/usr/share/icons/hicolor/64x64/apps/signal-desktop.png /root/Signal-Desktop/build/icons/png/128x128.png=/usr/share/icons/hicolor/128x128/apps/signal-desktop.png /root/Signal-Desktop/build/icons/png/256x256.png=/usr/share/icons/hicolor/256x256/apps/signal-desktop.png /root/Signal-Desktop/build/icons/png/512x512.png=/usr/share/icons/hicolor/512x512/apps/signal-desktop.png /root/Signal-Desktop/build/icons/png/1024x1024.png=/usr/share/icons/hicolor/1024x1024/apps/signal-desktop.png /tmp/t-SrSBmG/2-Signal.desktop=/usr/share/applications/signal-desktop.desktop
[build:release   ]                     workingDir=
[build:release   ] error Command failed with exit code 1.
[build:release   ] info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
[build:release   ] error Command failed with exit code 1.
[build:release   ] info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
ERROR: "build:release" exited with 1.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
make: *** [Makefile:12: build] Error 1

I found this comment
If that would be fixed the issue, where can I add the option?
Thank you.

@BarbossHack
Copy link

BarbossHack commented Apr 1, 2023

@sallyahaj sorry I don't have an aarch64 machine nor emulator to debug this...

This is the Signal-Forum discussion about this issue : https://community.signalusers.org/t/signal-desktop-on-arm64-aarch64/9001/

@BarbossHack
Copy link

BarbossHack commented Apr 1, 2023

@sallyahaj Can you try building with this branch please ? https://github.com/BarbossHack/Signal-Desktop-Fedora

@sallyhaj
Copy link
Author

sallyhaj commented Apr 1, 2023

I am starting building the new branch you've made, later, I'll inform you with the result. By the way, because of I only have RaspberryPi4 as a PC, I currently use this https://elagost.com/flatpak/ as a flatpak on Fedora37. which is I think a part project of https://gitlab.com/undef1/signal-desktop-builder .
Thank you.

@sallyhaj
Copy link
Author

sallyhaj commented Apr 1, 2023

@sallyahaj Can you try building with this branch please ? https://github.com/BarbossHack/Signal-Desktop-Fedora/tree/arm64v8

The building have completed with "output/signal-desktop-6.11.0.aarch64.rpm", I have installed the package, and everything seem okay. Thank you so much.

@sallyhaj
Copy link
Author

sallyhaj commented Apr 1, 2023

@BarbossHack I have updated to 6.12 by changing the file "SIGNAL_VERSION" content, it was an easy thing, thanks a lot.
I have a doubt, while this become possible on Fedora aarch64 with containerize method, is it possible with 'copr'? I can see the repo of @useidel on copr https://copr.fedorainfracloud.org/coprs/useidel/signal-desktop/ is up to date and active, asking if the process can apply with copr, can you @useidel please try adding arrch64 to your repo?
Thank you.

@useidel
Copy link

useidel commented Apr 1, 2023

@sallyahaj Ok, I will give it a try. As far as I can see it requires a bit more than just adding the aarch64 to build options of the copr repo. I need to amend the SPEC file as well based on the Docker file and entrypoint.sh from @BarbossHack

@BarbossHack
Copy link

@sallyahaj Ok, I will give it a try. As far as I can see it requires a bit more than just adding the aarch64 to build options of the copr repo. I need to amend the SPEC file as well based on the Docker file and entrypoint.sh from @BarbossHack

And I think you will have to build on an arm64 machine (or qemu emulator) to be able to build arm64 target (even with my Dockerfile)

@useidel
Copy link

useidel commented Apr 1, 2023

@BarbossHack Yes, sure. Copr provides me the needed platform.

@useidel
Copy link

useidel commented Apr 1, 2023

@sallyahaj : Should be good now. See the latest build https://copr.fedorainfracloud.org/coprs/useidel/signal-desktop/build/5735860/

@sallyhaj
Copy link
Author

sallyhaj commented Apr 1, 2023

@BarbossHack I see that you've merged arm64v8 branch with master, so I tried building the master branch, but it has the old problem:
[build:release ] • building target=rpm arch=arm64 file=release/signal-desktop-6.12.0.aarch64.rpm [build:release ] • downloading url=https://github.com/electron-userland/electron-builder-binaries/releases/download/fpm-1.9.3-2.3.1-linux-x86/fpm-1.9.3-2.3.1-linux-x86.7z size=4.6 MB parts=1 [build:release ] • downloaded url=https://github.com/electron-userland/electron-builder-binaries/releases/download/fpm-1.9.3-2.3.1-linux-x86/fpm-1.9.3-2.3.1-linux-x86.7z duration=3.697s [build:release ] ⨯ cannot execute cause=exit status 255 [build:release ] errorOut=qemu-i386-static: Could not open '/lib/ld-linux.so.2': No such file or directory
@useidel I'll try it later, thank you.

@BarbossHack
Copy link

BarbossHack commented Apr 1, 2023

@BarbossHack I see that you've merged arm64v8 branch with master, so I tried building the master branch, but it has the old problem

oh I made a mistake, thank you for testing ! it should be fixed now 👍

@sallyhaj
Copy link
Author

sallyhaj commented Apr 2, 2023

@sallyahaj : Should be good now. See the latest build https://copr.fedorainfracloud.org/coprs/useidel/signal-desktop/build/5735860/

Your built is working just fine, https://copr.fedorainfracloud.org/coprs/useidel/signal-desktop/
Thank you @useidel

@sallyhaj
Copy link
Author

sallyhaj commented Apr 2, 2023

@BarbossHack I see that you've merged arm64v8 branch with master, so I tried building the master branch, but it has the old problem

oh I made a mistake, thank you for testing ! it should be fixed now +1

Yes, it works now, thank you so much @BarbossHack

@useidel
Copy link

useidel commented Apr 2, 2023

@sallyahaj : Should be good now. See the latest build https://copr.fedorainfracloud.org/coprs/useidel/signal-desktop/build/5735860/

Your built is working just fine, https://copr.fedorainfracloud.org/coprs/useidel/signal-desktop/ Thank you @useidel

@sallyahaj Great. Unless things break any new version should be available for x86_64 and for aarch64.

@hasufell
Copy link

@sallyahaj : Should be good now. See the latest build https://copr.fedorainfracloud.org/coprs/useidel/signal-desktop/build/5735860/

Your built is working just fine, https://copr.fedorainfracloud.org/coprs/useidel/signal-desktop/ Thank you @useidel

These have been failing for over a month and now signal-desktop doesn't allow to send messages anymore due to the outdated version.

@useidel
Copy link

useidel commented Apr 16, 2024

It is "just" failing on Fedora 38, Fedora 39 which is the current version it works. Please keep in mind: Fedora 38 is currently scheduled to reach EOL (end-of-life) on 2024-05-14. So you better update your system.
Failure on Fedora is due to outdate packages there. Does not make sense to try to fix this if the entire Linux distro goes out of support soon. And Fedora 40 is around the corner.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests