signalapp / Signal-Desktop

A private messenger for Windows, macOS, and Linux.
https://signal.org/download
GNU Affero General Public License v3.0
14.51k stars 2.63k forks source link

Packages for rpm-based linux distributions #1630

Closed nikwen closed 2 years ago

nikwen commented 6 years ago

Currently, Signal-Desktop is only available for Debian-based distros with the APT package manager. Please provide pre-built packages for rpm-based distributions such as Fedora or RHEL.

phrxmd commented 3 years ago

@sikand OpenSUSE Leap 42 is hardly a modern OpenSUSE. It was released in 2015 and manufacturer support ended several years ago.

For OpenSUSE Tumbleweed and Leap 15.2 there are packages that you can find at https://software.opensuse.org/package/signal-desktop - they're labeled "experimental" (which means mainly they haven't made their way into the main distribution yet), but I'm running it right now under OpenSUSE TW and it runs fine.

m5shiv commented 3 years ago

@phrxmd Thanks for the reality check. Upgraded to 15.2 and all is well

coldserenity commented 3 years ago

Just donated to Signal with comment Sponsoring "Packages for rpm-based linux distributions like Fedora" #1630

cmpunches commented 3 years ago

Just donated to Signal with comment Sponsoring "Packages for rpm-based linux distributions like Fedora" #1630

@coldserenity In appreciation for your financial support and validation of this issue, I will now perform a dance for you.

You can't see it since this is a text-based medium, but I am dancing, and it is a spectacular performance.

Thanks again.

5x3 commented 3 years ago

Please do not donate for it. From a security standpoint the developer HAVE TO provide statically linked (not dynamically linked with other libs) binaries without packaging to RPM or DEB for a such "secure" messenger since user may download trojan wile searching RPM package.

Take a look at the Telegram approach for Linux and do the same.

leukimi commented 3 years ago

EDIT August 5, 2021: OpenSUSE repository providing working RPM for Fedora 34.

The following recipe could serve as a plan B.


An approach to building signal-desktop branch 5.12.x on Fedora 34

Fedora 34 is actually quite newbie friendly compared to for instance Ubuntu (Budgie) 20.04 and runs better on some machines than for instance Ubuntu (Budgie) 20.04, which has a bug in the installer making grub and shims quarreling a bit, resulting in a black screen sometimes. Fedora 34 doesn't have that installer bug, which makes these machines run better on Fedora. The drawback is that many programs that exist on Ubuntu (Budgie) 20.04 in gnome-software you have to compile yourself on Fedora 34. It's not always super easy to accomplish it as newbie.

In case someone would benefit from it, the following approach did prove successful on a fresh Fedora 34 install.

All you need is a "bit of patience", since it can take around ten minutes before you are a happy Fedora (signal-desktop) user.

Agree that it would be "convenient" to have a trusted repository for Fedora 34 as mentioned by others before, just like the Ubuntu 20.04 has a repository/PPA, which would maybe have similar security related questions one could think. For a newbie it is not easy to understand why Ubuntu can provide a DEB package and Fedora cannot provide an RPM package. Maybe someone with skill can elaborate (comment) on why there is a difference between Ubuntu and Fedora when it comes to signal-desktop so that every newbie reading it can understand the reason behind not providing signal-desktop for Fedora 34 as a "convenient" rpm from a trusted repository.

Just in case someone doesn't know what the following code is doing, it is a bash script that will help you to build and install signal-desktop branch $LATEST_BRANCH. You can adapt the script to your needs and copy the bash script to a file which you can give the file name:

build_signal-desktop.sh

Make this file build_signal-desktop.sh executable in some way. This is how to do it using a terminal:

chmod +x build_signal-desktop.sh

Run:

./build_signal-desktop.sh

Watch the magic take place.


1. First step after the fresh install is to update Fedora 34.

# Update the newly installed Fedora 34.
sudo dnf update

# Reboot Fedora 34 to be on the safe side, since you probably installed a new kernel.
reboot

2. Second step is to install dependencies.

Fedora 34 already has most of the tools you will need. You can type this in the terminal to check:

echo "--------------------------------"
gcc --version
echo "--------------------------------"
git --version
echo "--------------------------------"
curl --version
echo "--------------------------------"

nvm

nvm does not come preinstalled on Fedora 34. nvm is the Node Version Manager used to manage multiple Node.js versions on a single system. nvm can install any version of Node.js. nvm tool installs on your system by typing this into terminal, so we will include it in the build script further down to make sure it gets installed automatically if it is not present:

curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
source ~/.bashrc

3. Putting it all together in a script build_signal-desktop.sh

#!/bin/bash
##
## Script: build_signal-desktop.sh
##
## Description:
## Downloads the selected branch to $HOME/src/Signal-Desktop
## from git source.
## Compiles signal-desktop.
## Creates an RPM package.
##

VOICE_SOUND=true
REQUIRE_USER_CHECK=false
INSTALL_RPM=false
RUN_APPIMAGE=false

# Edit this to select the branch you want to compile
#
# Previous branches:
# "5.1.x"
# "5.2.x"
# "5.3.x
# "5.4.x"
# "5.5.x"
# "5.6.x"
# "5.7.x"
# "5.8.x"
# "5.9.x"
# "5.10.x"
# "5.11.x"
LATEST_BRANCH="5.12.x"
echo
echo "You have selected to use branch:"
echo \"$LATEST_BRANCH\"
echo
echo LATEST_BRANCH=$LATEST_BRANCH
echo
sleep 2

# Building Signal Desktop (5.v.x) version on Fedora 34
# Edit the branch names when new releases are made available

mkdir -p $HOME/src
cd $HOME/src
echo "Changed directory to:"
pwd
echo

# Check latest branch
if [ -d Signal-Desktop ]; then
    # Check if you have the latest branch
    cd Signal-Desktop
    echo "Changed directory to:"
    pwd
    echo
    echo "Checking the list of branches that are available remotely:"

    git ls-remote | grep heads
    sleep 3
    echo
    echo "Your current (local) branches are:"
    git branch -a

    echo
    echo "If you want to delete a branch (I will do it for you):"
    echo "   git branch -D 5.1.x"
    echo "   git branch -D 5.2.x"
    echo "   git branch -D 5.3.x"
    echo "   git branch -D 5.4.x"
    echo "   git branch -D 5.5.x"
    echo "   git branch -D 5.6.x"
    echo "   git branch -D 5.7.x"
    echo "   git branch -D 5.8.x"
    echo "   git branch -D 5.9.x"
    echo "   git branch -D 5.10.x"
    echo "   git branch -D 5.11.x"
    echo
    echo

    git branch -D 5.1.x
    git branch -D 5.2.x
    git branch -D 5.3.x
    git branch -D 5.4.x
    git branch -D 5.5.x
    git branch -D 5.6.x
    git branch -D 5.7.x
    git branch -D 5.8.x
    git branch -D 5.9.x
    git branch -D 5.10.x
    git branch -D 5.11.x

    echo
    echo "If the latest branch you have"
    sleep 2
    echo "is not the latest branch on the remote,"
    sleep 2
    echo "consider hitting Ctrl + C to stop this script now."
    sleep 3
    echo
    echo "I will wait ten seconds before I start building."
    echo "..."
    sleep 10

    # Add signal-desktop branch $LATEST_BRANCH
    git fetch https://github.com/signalapp/Signal-Desktop.git $LATEST_BRANCH:$LATEST_BRANCH

    # If you get a complaint about that you have unsaved work:
    # error: Your local changes to the following files would be overwritten by checkout:
    #   package.json
    # Please commit your changes or stash them before you switch branches.
    # Aborting
    # Do the following:
    git stash
    # To delete all stashes in git, we need to run the git stash command followed by the clear option.
    git stash clear
    # Now it should work to switch to the new branch

    # Check out $LATEST_BRANCH
    git checkout $LATEST_BRANCH

    # Update $LATEST_BRANCH
    git fetch --all
    git pull --rebase
    # git rebase $LATEST_BRANCH
    git reset --hard $LATEST_BRANCH
    # Now you should be sure to have the latest files in $LATEST_BRANCH

    # Update existing branch
    # git fetch origin
    # git fetch main
    # git rebase
    # git reset --hard
    # git reset --hard origin
    # git reset --hard main

    # If you made any changes, git will ask you to stash them:
    # git stash
    # git stash clear
    # git pull --rebase
    # git reset --hard

    # Delete all files that are not version controled
    git clean -dfx
    # git submodule foreach --recursive "git clean -dfx"
    git branch -a
else
    # Download signal-desktop branch $LATEST_BRANCH
    echo
    echo "Downloading Signal-Desktop source code from git."
    echo "If you already have the software, you might see"
    echo "error messages. Don't worry, that's okay."
    sleep 5
    echo
    git clone -b $LATEST_BRANCH --single-branch https://github.com/signalapp/Signal-Desktop.git

    # Change directory
    cd Signal-Desktop
    echo "Changed directory to:"
    pwd
    echo
fi

# Remove prior packages
# rm -rf release

# Show which version of nvm is required:
echo
echo "Required nvm version:"
cat .nvmrc
sleep 1

# Source nvm
source $HOME/.nvm/nvm.sh
# Sometimes nvm is not found, run the command in terminal in such case
# nvm install v14.16.0
# or generic
cat .nvmrc | nvm install 
# Sometimes nvm is not found, run the command in terminal in such case
# nvm use v14.16.0
# or generic
cat .nvmrc | nvm use

# Verify which nvm is used
nvm list
sleep 2

# Check that npm is available
type npm >/dev/null 2>&1 || { echo >&2 echo; echo "Run this script again to start building signal-desktop."; exit 0; }

# To confirm that you have npm installed you can run this command in your terminal:
echo
echo "Confirm that you have npm installed:"
echo

npm -v
sleep 1

# Update npm
echo
echo "Update npm:"
echo

npm install -g npm
npm update -g

npm install --global yarn

# Edit package.json to add the options 'rpm' and 'AppImage'
python3 <<EOF
query = '''
      "target": [
        "deb"
      ],
'''
replacement = '''
      "target": [
        "rpm",
        "AppImage"
      ],
'''
data = None
with open("package.json",'r') as file:
    data = file.read()
    data = data.replace(query,replacement)
with open("package.json",'w') as file:
    file.write(data)
EOF

# Edit package.json to fix a bug:
# Error: Could not detect abi for version 13.1.6 and runtime electron.  Updating "node-abi" might help solve this issue if it is a new release of electron
# Solution described here:
# https://github.com/prebuild/prebuild-install/pull/42
the options 'rpm' and 'AppImage'
python3 <<EOF
query = '''
  "resolutions": {
    "@storybook/react/@storybook/core/node-fetch": "2.6.1",
    "fast-glob/glob-parent": "5.1.2",
    "read-last-lines/mz/thenify-all/thenify": "3.3.1",
    "sharp/color/color-string": "1.5.5"
  },
'''
replacement = '''
  "resolutions": {
    "node-abi": "^2.30",
    "@storybook/react/@storybook/core/node-fetch": "2.6.1",
    "fast-glob/glob-parent": "5.1.2",
    "read-last-lines/mz/thenify-all/thenify": "3.3.1",
    "sharp/color/color-string": "1.5.5"
  },
'''
data = None
with open("package.json",'r') as file:
    data = file.read()
    data = data.replace(query,replacement)
with open("package.json",'w') as file:
    file.write(data)
EOF

echo
echo "[OK] Source code downloaded."
echo "----------------------------"
echo
echo "Now you should have everything you need to build."
sleep 4
echo "The compilation will take a little while."
sleep 3
if hash espeak-ng 2>/dev/null; then
    # You have espeak-ng installed
    true
elif hash festival 2>/dev/null; then
    # You have festival installed
    true
else
    echo "If you want your computer to tell you with a sound when it is ready:"
    sleep 3
    echo "Install the packages:"
    sleep 2
    echo
    echo "+ espeak-ng"
    sleep 1
    echo "and/or"
    echo "+ festival festvox-slt-arctic-hts"
    sleep 2
    echo
    echo "You may have to remove:"
    echo "- festvox-clb-arctic-hts"
    sleep 3
    echo
    echo "Type this in the terminal if you wish:"
    echo
    echo "sudo dnf install espeak-ng festival festvox-slt-arctic-hts"
    echo "sudo dnf remove festvox-clb-arctic-hts"
    echo
    echo
    sleep 5
fi

echo
echo "The building of Signal-Desktop starts now."
sleep 2

yarn install --frozen-lockfile

yarn grunt

# The following is not working although it is mentioned in the install instructions to execute this command.
yarn icon-gen

yarn generate

if $REQUIRE_USER_CHECK; then
    # Help user to decide what to build:
    zenity --width 400 --warning --title "Do you want AppImage?" --text "Dont forget to alter the 'package.json' file to tell yarn to build deb, rpm, snap, AppImage in the \"linux\" section.\n\n \"target\": [\n        \"deb\",\n        \"rpm\",\n        \"snap\",\n        \"AppImage\"\n      ],"

    # The line where user has to edit:
    gedit package.json +362

    # Help user to decide what to build:
    zenity --width 400 --info --title "Do you want AppImage?" --text "Click OK when you are done editing package.json\n\n \"target\": [\n        \"deb\",\n        \"rpm\",\n        \"snap\",\n        \"AppImage\"\n      ],"
fi

yarn build-release

# Install rpm

if $INSTALL_RPM; then
    sudo dnf install release/signal-desktop*.rpm
else
    xdg-open release
fi

# Make AppImage executable

chmod +x release/*.AppImage

if $RUN_APPIMAGE; then
    # Run AppImage
    release/*.AppImage
else
    # Run linux-unpacked
    release/linux-unpacked/signal-desktop
fi
# Uninstall
# sudo dnf remove signal-desktop

# Tell compilation is done

if $VOICE_SOUND; then
    if hash espeak-ng 2>/dev/null; then
        espeak-ng -ven-us+f5 -s2 -s160 "Your signal desktop software package in format R P M is ready."
        espeak-ng -ven-us+f5 -s2 -s160 "This message! Will self destruct! In 5 seconds. ... five ... four ... threee ... two ... one ... BOOM."
    elif hash festival 2>/dev/null; then
        echo "Your signal desktop software package in format R P M is ready." | festival --tts
        echo "This message will self destruct in 5 seconds. ... five ... four ... threee ... two ... one ... BOOM."
    fi
fi
cryptomilk commented 3 years ago

As I've built the last bit from source for openSUSE now, nodejs-electron. I will look into Fedora:34 now. Should be hard to get everything built in the OBS.

mosssahel commented 3 years ago

I don't know why, but this script did not work for me on a fresh Fedora 34 install. Node.js was not installed by default and there is a need to use git-lfs. After a fair amount of tinkering and using the instructions on CONTRIBUTING.md I did eventually manage to build it. I used a Ubuntu VM and made an AppImage which runs on fedora. I've documented the procedure which worked for me in this script.

leukimi commented 3 years ago

@mosssahel Sorry I forgot to add the dependences.

Updated the script a bit with your comments, some parts of your code and used your query-replace script to add "rpm", "AppImage". I saw you had "deb" instead of "rpm" in your package.json.

Maybe the edited scripts will help to clarify dependencies. It seems on Fedora 34, only nvm is missing as you pointed out. The rest of the tools seems to come with Fedora from start. Although it is mentioned to install git-lfs, I haven't needed git-lfs to compile successfully on the test machine. yarn build:webpack was not needed either, yarn generate worked.

Since npm isn't detected first time the script runs, don't know why yet, a second launch of the same script does find npm and the build starts.

package.json would on line 366 look like this:

 "target": [
        "rpm",
        "AppImage"
      ],

There is also another yarn bug apparently. You get the error: Could not detect abi for version 13.1.6 and runtime electron. Updating "node-abi" might help solve this issue if it is a new release of electron

Solution

Edit package.json on line 286 to look like this:

  "resolutions": {
    "node-abi": "^2.30",
    "@storybook/react/@storybook/core/node-fetch": "2.6.1",
    "fast-glob/glob-parent": "5.1.2",
    "read-last-lines/mz/thenify-all/thenify": "3.3.1",
    "sharp/color/color-string": "1.5.5"
  },

I tried to create a fresh install virtual machine with Fedora 34 on Virtualbox 6.1, but signal-desktop didn't compile due to architecture being set to "linux" somehow, an arhitecture not supported in some of the modules. I assume there is a way to tell Virtualbox 6.1 that the machine is x86_x64 instead of "linux", in order to build the correct rpm, but I didn't manage to find out how to configure Virtualbox 6.1. On a Fedora 34 Workstation it does find a proper x86_x64 architecture and builds an rpm and AppImage as expected.

luminoso commented 3 years ago

I'm the owner of the repo mentioned multiple times above: https://copr.fedorainfracloud.org/coprs/luminoso/Signal-Desktop/ The rpmspec source code is also available here: https://github.com/luminoso/fedora-copr-signal-desktop

Note that:

I'm also tired of packaging Signal. The project itself is a PITA to package. I had numerous problems along the last 4 years managing the copr repo. It is not trivial to have a clean, generally-working build for rpm-based systems.

A few examples that I can remember:

If someone can guide me on how to do it, I am more than open to upstream the package from Corp to rpmfusion or to Fedora official mirrors and maintain it. (does even signal license allows distributions to do it?) And maybe who knows, to have someone to share the releases with.

cryptomilk commented 3 years ago

@luminoso I've already solved the issues you have. And probably you didn't run into a few as copr allows to do a build which has an internet connection!

For a reproducible build you you need to get rid of all the binary blobs. Then we come to libsignal-client which requires unstable features which are only in latest rust releases! This means all Distributions not providing an up to date rust compiler are out of the game.

The last thing I did was packaging nodejs-electron from source, currently it downloads pre-built binaries. So I have a singal-desktop 100% built from source! The next step is to build nodejs-electron for Fedora and then the rest.

https://build.opensuse.org/project/show/network:im:signal

5x3 commented 3 years ago

what builds you suggesting and discussing, 'Signal' - you have to provide statically linked binary suitable for all Linux distros like 'Telegram' without packaging into dep\rpm, just archiving like (zip/tar) of _singlebinary with self-update functionality. If your code incapable with such approach - this is major fault in application design - I can congrat you with it.

jacksongoode commented 3 years ago

@luminoso I've already solved the issues you have. And probably you didn't run into a few as copr allows to do a build which has an internet connection!

For a reproducible build you you need to get rid of all the binary blobs. Then we come to libsignal-client which requires unstable features which are only in latest rust releases! This means all Distributions not providing an up to date rust compiler are out of the game.

The last thing I did was packaging nodejs-electron from source, currently it downloads pre-built binaries. So I have a singal-desktop 100% built from source! The next step is to build nodejs-electron for Fedora and then the rest.

https://build.opensuse.org/project/show/network:im:signal

On Fedora 34 there is a missing dependency for libopenssl and couldn't install. This is a lib in OpenSUSE, should it be looking for openssl-static instead?

cryptomilk commented 3 years ago

About which package are you talking?

jacksongoode commented 3 years ago

The package for Fedora 34.

leukimi commented 3 years ago

OpenSUSE now provides a working RPM for Fedora 34!

For those of you who struggle to get signal-desktop to run on Fedora 34, OpenSUSE have created a repository for signal-desktop. Problems solved.

Thank you OpenSUSE!

How to install Signal-Desktop on Fedora 34 from OpenSUSE repository

In gnome-terminaltype the following:

sudo dnf config-manager --add-repo https://download.opensuse.org/repositories/network:im:signal/Fedora_34/network:im:signal.repo && sudo dnf install signal-desktop

Enjoy the magic.

There is a possibility you might need to enable openh264 on Fedora:

sudo dnf config-manager --set-enabled fedora-cisco-openh264 && sudo dnf install gstreamer1-plugin-openh264 mozilla-openh264

This information should probably be put on https://signal.org/download/ by someone authorized to update the Debian-based instructions for installation there.

This thread was started on Nov 1, 2017 and on August 5, 2021 it finally exists a repository for Fedora.

ajtpxn commented 3 years ago

I just got signal-desktop working on my Fedora 34 workstation using an OpenSUSE repository! I had tried the snap and the flatpak and neither of them had worked for me. I am very happy!

This is what I used:

dnf config-manager --add-repo https://download.opensuse.org/repositories/home:ithod:signal/Fedora_34/home:ithod:signal.repo dnf install signal-desktop

In the future I might remove this repo and change to network:im:signal but for now I am just so happy that it is finally working!

janvlug commented 3 years ago

I just got signal-desktop working on my Fedora 34 workstation using an OpenSUSE repository! I had tried the snap and the flatpak and neither of them had worked for me.

Good to hear this. I am also a Fedora 34 workstation user, and, I have been using the Signal flatpak from Flathub for a long time without issues. But I really would like to see Signal in the official Fedora repo or an official Signal rpm or flatpak.

leukimi commented 3 years ago

Agree it would be nice to have an official Fedora och Signal RPM. The alternative is to compile Signal-Desktop from source, for instance with the script above. The OpenSUSE developer ithod as indicated in this message above, builds it from the source code in a similar way as you would if you compile it yourself with the script above, maybe even better. It has taken almost four years to get this far, can we still hope that there will be official Fedora 34 releases? Maybe yes, maybe no, but history shows it probably isn't going to happen soon unless someone who can does it. Maybe the community of Fedora 34 users is to small for anybody to put down the effort. Maybe we should move to OpenSUSE, I don't know what is the best strategy long term. For now, ithod's build helps. Instead of all of us compiling ourselves, ithod does it. Of course, its about trusting ithod's work. Given how soon there is a new version at OpenSUSE after Signal-Desktop has a new release, there is little possibility to modify the source code. Chances are it is a script that fetches the source code and builds the RPM right away. OpenSUSE has a release which apparently builds it all from source code directly, but that doesn't work for Fedora 34 yet. Many possibilities, but it all requires that an experienced packager for Fedora helps out with the Signal-Desktop packaging RPM, my wildest guess.

leukimi commented 3 years ago

I just got signal-desktop working on my Fedora 34 workstation using an OpenSUSE repository! I had tried the snap and the flatpak and neither of them had worked for me. I am very happy!

This is what I used:

dnf config-manager --add-repo https://download.opensuse.org/repositories/home:ithod:signal/Fedora_34/home:ithod:signal.repo dnf install signal-desktop

In the future I might remove this repo and change to network:im:signal but for now I am just so happy that it is finally working!

Seems ithod is behind both this main repo as well as the repo you are using. It's probably the same source behind the scene, but one of them is probably a testing repo.

indutny-signal commented 2 years ago

Ref: https://github.com/signalapp/Signal-Desktop/issues/2718

heyakyra commented 2 years ago

no close plz

phrxmd commented 2 years ago

I think closing this is appropriate. By now the discussion now mostly seems to revolve around distros' packaging issues. This is not a bug, it's a feature request. The developers asked to take this kind of discussion off the bug tracker, and take it to the community forum instead (see #5541), where there is a related discussion already.

cmpunches commented 2 years ago

I think closing this is appropriate. By now the discussion now mostly seems to revolve around distros' packaging issues. This is not a bug, it's a feature request. The developers asked to take this kind of discussion off the bug tracker, and take it to the community forum instead (see #5541), where there is a related discussion already.

Packaging your software for your target systems is a critical part of the SDLC not a nice-to-have or a "feature". It's part of the software. People who know this should be making decisions around it.

aklapper commented 2 years ago

@cmpunches You may want to look up what the work of distributions and their packagers traditionally is.

cmpunches commented 2 years ago

@cmpunches You may want to look up what the work of distributions and their packagers traditionally is.

I don't need to, it's 2021 and it is common sense to package software for target. I understand some large corporate-backed projects are distributing containers to get around not knowing how to do this, but those are exceptions not rules.

Some projects are also trying to shoot for 3rd party package managers..which is a colossal waste of time that introduces a whole range of problems to the systems that use them to get around an already solved problem that simply involves interfacing with the distro communities they want using their software. Most competent projects automate this after a few conversations with systems people (not developers).

All this flatpak and appimage nonsense has the smell of using gmail accounts for company email. This is not that hard.

principis commented 2 years ago

Hi, I'll see if I can package signal for the official fedora repo's, I'll keep you posted!

cryptomilk commented 2 years ago

Hi, I'll see if I can package signal for the official fedora repo's, I'll keep you posted!

This is already work in progress. See https://build.opensuse.org/project/show/network:im:signal and the discussions around ffmpeg on fedora-devel malinglist. Contributions are welcome.

maitra commented 2 years ago

Hi, I'll see if I can package signal for the official fedora repo's, I'll keep you posted! Any update on this? Would be great, since Fedora is one of the most popular distributions not to have the app.

cryptomilk commented 2 years ago

This is still work in progress. I'm waiting for a ffmpeg package in official Fedora.

If you want to help, nodejs-electron doesn't build for Fedora right now:

https://build.opensuse.org/package/show/network:im:signal/nodejs-electron

dreua commented 2 years ago

I'm waiting for a ffmpeg package in official Fedora.

I thought ffmpeg was in rpmfusion for legal reasons (patents I guess), is this going to change?

cryptomilk commented 2 years ago

See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/YPXQTK27622JHYOACVAWD4JR4BHNXZ2D/#S3XRRYBOM63AFEMF2RGWVPGNBH4QQ4NM

maitra commented 2 years ago

I'm waiting for a ffmpeg package in official Fedora.

I thought ffmpeg was in rpmfusion for legal reasons (patents I guess), is this going to change?

I also thought so, perhaps compiling and putting signal-desktop in Fedora RPMfusion would be the right thing to do then? Btw, how does the copr signal-desktop app on luminoso work? It does not seem to need nodejs-electron, per the spec file here: https://github.com/luminoso/fedora-copr-signal-desktop/blob/master/signal.spec but I do not completely understand what goes on there.

cryptomilk commented 2 years ago

On Wednesday, January 26, 2022 3:10:57 PM CET maitra wrote:

I'm waiting for a ffmpeg package in official Fedora.

I thought ffmpeg was in rpmfusion for legal reasons (patents I guess), is this going to change? I also thought so, perhaps compiling and putting signal-desktop in Fedora RPMfusion would be the right thing to do then? Btw, how does the copr signal-desktop app on luminoso work? It does not seem to need nodejs-electron, per the spec file here: https://github.com/luminoso/fedora-copr-signal-desktop/blob/master/signal.s pec but I do not completely understand what goes on there.

It downloads electron prebuilt somewhere from the internet.

-- Andreas Schneider @.*** GPG-ID: 8DFF53E18F2ABC8D8F3C92237EE0FC4DCC014E3D

maitra commented 2 years ago

On Wednesday, January 26, 2022 3:10:57 PM CET maitra wrote: > > I'm waiting for a ffmpeg package in official Fedora. > > I thought ffmpeg was in rpmfusion for legal reasons (patents I guess), is > this going to change? I also thought so, perhaps compiling and putting signal-desktop in Fedora RPMfusion would be the right thing to do then? Btw, how does the copr signal-desktop app on luminoso work? It does not seem to need nodejs-electron, per the spec file here: https://github.com/luminoso/fedora-copr-signal-desktop/blob/master/signal.s pec but I do not completely understand what goes on there. It downloads electron prebuilt somewhere from the internet. -- Andreas Schneider @.*** GPG-ID: 8DFF53E18F2ABC8D8F3C92237EE0FC4DCC014E3D

I see, is nodejs-electron the only holdup then?

cryptomilk commented 2 years ago

I have nodejs-electron building for Fedora now. However we need ffmpeg in Fedora now.

maitra commented 2 years ago

I have nodejs-electron building for Fedora now. However we need ffmpeg in Fedora now.

Wonderful, thanks very much! But ffmpeg is available only on rpmfusion under rpmfusion-free. I am not sure what it means to be available as a free package. Perhaps Signal-desktop app has to go there as a result?

cryptomilk commented 2 years ago

This means we need an ffmpeg package in official Fedora!

I'm working on it ...

maitra commented 2 years ago

Excellent, thank you!

cryptomilk commented 2 years ago

I see, is nodejs-electron the only holdup then?

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=2051008

cryptomilk commented 2 years ago

I was finally able to build nodejs-electron and signal-desktop for Fedora.

https://build.opensuse.org/package/show/network:im:signal/signal-desktop

melonmouse commented 2 years ago

cryptomilk, thanks for the updates and the great work! I tried to install signal-desktop from the fedora rawhide repo to help testing, but it is not there yet. Any idea when the package could appear?

cryptomilk commented 2 years ago

I can see it:

https://download.opensuse.org/repositories/network:/im:/signal/Fedora_Rawhide/x86_64/signal-desktop-5.33.0-4.1.x86_64.rpm

piotr-dobrogost commented 2 years ago

@cryptomilk I guess opensuse.org is not the official source of Fedora's packages. Is Fedora using some services provided at opensuse.org? Is there any process in motion to have this package available through official Fedora repository?

cryptomilk commented 2 years ago

If you want to maintain the packages in Fedora, that would be great :-)

aklapper commented 2 years ago

As written before, https://github.com/luminoso/fedora-copr-signal-desktop/ exists and maybe folks could sync with luminoso to avoid duplicating efforts for no good reasons.

cryptomilk commented 2 years ago

As written before, https://github.com/luminoso/fedora-copr-signal-desktop/ exists and maybe folks could sync with luminoso to avoid duplicating efforts for no good reasons.

This package is not allowed to build in COPR for legal reasons.

dreua commented 2 years ago

In copr? Can you cite a source for that? I could imagine it's a problem in Fedora Main repsoitories but Rpm fusion and copr should be way more relaxed.

cryptomilk commented 2 years ago

https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-in-copr

cryptomilk commented 2 years ago

Btw. if you go to:

https://copr.fedorainfracloud.org/coprs/luminoso/Signal-Desktop/

Installation Instructions

⚠️ Before proceeding