GithubHelp home page GithubHelp logo

taw00 / element-rpm Goto Github PK

View Code? Open in Web Editor NEW
100.0 3.0 17.0 320.8 MB

Providing the Element messaging desktop client packaged for the Fedora, Red Hat(IBM), and OpenSUSE families of linux desktop operating systems.

License: Apache License 2.0

Shell 100.00%
collaboration chat messaging fedora rpm-packages riot matrix desktop centos element

element-rpm's Introduction

Element: decentralized, encrypted chat & collaboration

. . . packaged for Fedora and OpenSUSE

What is this GitHub Repository?

The purpose of this repository is to store all the bits and pieces needed to build and package the Element application for various RPM flavors of Linux: CentOS, Fedora, and OpenSUSE. The binary (installable and runnable) packages are were then built on the Fedora Project's COPR build system.



SHUT DOWN NOTICE

I am closing down this project for two reasons:

  1. a core upstream component of Element (the Electron platform) embeds non-free software (a couple codecs in libffmpeg.so) and I have been asked (told) to stop using my preferred build system (COPR)
  2. builds for OpenSUSE are again super-challenging

As such, today—March 1, 2022, version 1.10.6—after almost four years of working on this project, I am ending my maintenance of Element builds for CentOS, Fedora, and OpenSUSE. Any change after this are for my own amusement and for no others. I may continue to experiment. Or maybe not. But, my builds for others are done. This makes me sad, but I am tired of fighting library versions, tired of fighting NodeJS and electron, and the build system I use no longer will permit me to build Element there. So, that's that.

I am a fan of the project and think they are clearly a superior solution in the groups-chat space, but I am tired of fighting all the technical debt baggage and complexity associated to NodeJS and Electron. At some point I will stop checking in changes and that will be that. If someone wants to use my spec files and start a new RPM build project, please do so. Just let me know so I can link to it here.

THERE IS AN ALTERNATIVE TO MY RPM BUILDS!

There is an alternative build out there that should work for everyone: a Flatpak! I am not a huge fan of the bloat and non-native-ness of Flatpak/Snap/AppData builds (they are a kludge), but like all kludges, they are often good enough. So ... instead of the RPM, just go ahead and install the Flatpak.

A big thank you goes out to all the good folks who supported and encouraged me over these four year. Cheers! -todd



What is Element? Decentralized, encrypted chat & collaboration powered by [matrix].

What is Matrix? An open network for secure, decentralized communication.

In short, Element is an open-source, decentralized, end-to-end encrypted, team collaboration platform who's often compared to IRC, Rocket Chat, Mattermost, Slack, and Discord.

More fully, Element is a desktop application implementing the client-side of the matrix protocol enabling decentralized, secure messaging for collaborative groups. This repository enables Element to be easily installed and maintained on the Fedora, Red Hat(IBM), and OpenSUSE family of Linux operating systems and tracks the source surrounding those builds. This GitHub repository maintains source RPM packages and spec files so you can rebuild Element if you are so inclined, though prebuilt binaries have been conveniently built for you. See below for how to install and run Element on your Linux desktop.

More about . . .

Questions or comments . . .

Contact: t0dd_at_protonmail.com or find me at @t0dd:matrix.org after you have installed Element!

element-rpm's People

Contributors

fantashley avatar taw00 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

element-rpm's Issues

Thank you

Thank you for 2 years of convenience that I and many others enjoyed, if you ever happen to be somewhere close to Munich/Germany, I'd be happy to buy you a beer. Packaging electron is a giant PITA.

Thank you!

Cheers 🍻

<ctrl><"click"> does not open the link anymore

cat: standard output: Bad file descriptor

Every time I click the link, in the terminal from which I launched element this messages appears, but the link does not open in firefox, my default browser.

Please add Fedora 32 target

With Fedora 32 beta coming up tomorrow, could you please build Riot and Riot testing on your COPR for Fedora 32? The targets have been enabled recently by the COPR team.

Use openSUSE OBS to build packages?

Hi there,

Thanks very much for providing RPMs thus far for Element, it's extremely important for me. Have you considered using the openSUSE Build Service instead of Github? It will let you build RPMs and repositories for openSUSE and Fedora and even DEBs, and it has a huge set of mirror servers.

Thanks a lot!

Tray icon on KDE is off

When installing on Fedora KDE/Plasma: Instead of showing the correct "R" icon in tray that responds to with incoming messages, a purple flat icon was shown instead.

Following the instructions at element-hq/element-web#3133 (comment) seems to fix the issue, but it requires modification at every reinstall/upgrade. Is it possible to workaround at repo by specifying the env?

Renderer crash on Tumbleweed

For a couple days now I haven't been able to use element on an up-to-date instance of OpenSUSE TW. Running the program just results in a blank window. Looks like it can't find a localization file, resulting in the renderer crashing.

Does this look like an issue with the package, or something on my machine? I'm not familiar with Electron localization to know if those files are bundled or something. Runtime log below:

stryan@host:  element --enable-logging 
/home/stryan/.config/Element exists: no
/home/stryan/.config/Riot exists: yes
Using legacy user data path: /home/stryan/.config/Riot
[8308:1001/115056.978289:WARNING:archive.cc(151)] Opening /usr/share/io.element.element/resources/app.asar/webapp.asar: FILE_ERROR_NOT_A_DIRECTORY
No update_base_url is defined: auto update is disabled
Fetching translation json for locale: en_EN
Changing application language to en-us
Fetching translation json for locale: en-us
Could not fetch translation json for locale: 'en-us' Error: Cannot find module './i18n/strings/en-us.json'
Require stack:
- /usr/share/io.element.element/resources/app.asar/lib/language-helper.js
- /usr/share/io.element.element/resources/app.asar/lib/tray.js
- /usr/share/io.element.element/resources/app.asar/lib/electron-main.js
- 
    at Module._resolveFilename (internal/modules/cjs/loader.js:887:15)
    at Function.n._resolveFilename (electron/js2c/browser_init.js:257:1128)
    at Module._load (internal/modules/cjs/loader.js:732:27)
    at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
    at Module.require (internal/modules/cjs/loader.js:959:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at AppLocalization.fetchTranslationJson (/usr/share/io.element.element/resources/app.asar/lib/language-helper.js:76:20)
    at /usr/share/io.element.element/resources/app.asar/lib/language-helper.js:89:39
    at Array.forEach (<anonymous>)
    at AppLocalization.setAppLocale (/usr/share/io.element.element/resources/app.asar/lib/language-helper.js:88:17) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/usr/share/io.element.element/resources/app.asar/lib/language-helper.js',
    '/usr/share/io.element.element/resources/app.asar/lib/tray.js',
    '/usr/share/io.element.element/resources/app.asar/lib/electron-main.js',
    undefined
  ]
}
Resetting the UI components after locale change
Resetting the UI components after locale change
[8379:1001/115057.111513:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
Renderer process crashed - see https://www.electronjs.org/docs/tutorial/application-debugging for potential debugging information.

Unable to install on Fedora 35

Hello,

I have recently moved computers over and thus installed a fresh Fedora 35. I attempted to install by entering the required commands:

sudo dnf install -y dnf-plugins-core distribution-gpg-keys
sudo dnf copr enable taw/element
sudo dnf install -y element --refresh

However when running the final command to install element, it does no install and outputs the following:

No match for argument: element
Error: Unable to find a match: element

I can confirm the copr repo is there and is enabled.
image

I did notice the following note on the copr site but not on this git repo
image

If you require any further details do let me know.

RHEL7 404 Not Found

$ sudo yum install riot
<...snip...>
https://copr-be.cloud.fedoraproject.org/results/taw/Riot/epel-7Workstation-x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
<...snip...>
No package riot available.
Error: Nothing to do
$ cat /etc/redhat-release 
Red Hat Enterprise Linux Workstation release 7.6 (Maipo)

There is no Element package in OpenSUSE stable repo

Installing the element OpenSUSE repositories adds two repositories: stable and testing.
There is no Element package under stable, only testing.

releasever=15.3

[element-stable]
name=Element for OpenSUSE Leap $releasever - $basearch
enabled=1
autorefresh=1
baseurl=https://download.copr.fedorainfracloud.org/results/taw/element/opensuse-leap-$releasever-$basearch/
gpgcheck=1
repo_gpgcheck=0
gpgkey=https://download.copr.fedorainfracloud.org/results/taw/element/pubkey.gpg
[element-testing]
name=Element for OpenSUSE Leap $releasever - $basearch - testing
enabled=1
autorefresh=0
baseurl=https://download.copr.fedorainfracloud.org/results/taw/riot-testing/opensuse-leap-$releasever-$basearch/
type=rpm-md
gpgcheck=1
repo_gpgcheck=0
gpgkey=https://download.copr.fedorainfracloud.org/results/taw/riot-testing/pubkey.gpg

Fedora 27 + rawhide builds?

Fedora 27 has been branched, and a few of us are starting to test it; I forked your COPR to test, and 0.12.6 built just fine on both F27 and Rawhide.

Would you be interested in publishing a build for at least F27, and possibly adding rawhide? (Might want to check the branched option in settings as well.)

Fedora 33 is available in copr

Hi there!

I know that beta is coming up in quite a while, but Fedora 33 branched about a month ago and is available in copr.

So, my question is, do you mind flipping the switch in your copr to get F33 builds going?

Thanks!

Can't search encrypted messages

There is a tooltip in the search UI:

Use the Desktop app to search encrypted messages

and search returns no results in an encrypted room. Isn't it the Desktop app?

EL8 (RHEL8/CentOS8) builds fail for riot-1.6.0

  • EL8 has no sqlcipher packaging option.
  • EL8's version of rustc apparently has issues building Riot (I will list them in additional comments).

It is unclear whether I will be solving these problems. There does exist a Flatpak however:
https://flathub.org/apps/details/im.riot.Riot

Flatpaks are generally a last resort solution (the binaries are often non-native), but this is a desktop application where bulletproof reliability is not as critical. Consider using that instead. I may be recommending the Flatpak to all those older platforms in the future. We'll see. The listed problems are significant hurdles.

The futex facility returned an unexpected error code

Today, I can't start element on Fedora 33:

$ element 
/home/cassou/.config/Element exists: no
/home/cassou/.config/Riot exists: yes
Using legacy user data path: /home/cassou/.config/Riot
The futex facility returned an unexpected error code.
Aborted (core dumped)

It was working well before.

The version I'm using is:

$ which element
/usr/bin/element

$ dnf info element
Installed Packages
Name         : element
Version      : 1.7.30
Release      : 1.fc33.taw
Architecture : x86_64
Size         : 248 M
Source       : element-1.7.30-1.fc33.taw.src.rpm
Repository   : @System
From repo    : copr:copr.fedorainfracloud.org:taw:element
...

does not work on fedora 35

[oli@fedora ~]$ element
Seshat unexpected error: Error: libsqlcipher-3.15.2.so.0: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
at process.func [as dlopen] (electron/js2c/asar_bundle.js:5:1846)
at Object.Module._extensions..node (internal/modules/cjs/loader.js:1138:18)
at Object.func [as .node] (electron/js2c/asar_bundle.js:5:2073)
at Module.load (internal/modules/cjs/loader.js:935:32)
at Module._load (internal/modules/cjs/loader.js:776:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
at Module.require (internal/modules/cjs/loader.js:959:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object. (/usr/share/io.element.element/resources/app.asar/node_modules/matrix-seshat/lib/index.js:16:22)
at Module._compile (internal/modules/cjs/loader.js:1078:30)
/home/oli/.config/Element exists: yes
/home/oli/.config/Riot exists: no
No update_base_url is defined: auto update is disabled
Fetching translation json for locale: en_EN
Changing application language to de
Fetching translation json for locale: de
Resetting the UI components after locale change
Resetting the UI components after locale change
[15274:1002/132026.290449:FATAL:gpu_data_manager_impl_private.cc(415)] GPU process isn't usable. Goodbye.
Trace/Breakpoint ausgelöst (Speicherabzug geschrieben)

Audio/video does not work

Against an Iphone contact: I can pick up a voice or video call on web (matrix.org) or android, but answering on my F26 machine results in the call getting dropped without connecting. I tried building the electron app myself from 0.11, same thing. I got this from command line when running straight from npm/electron:

AudioRtpReceiver::OnSetVolume: No audio channel exists.

Hopefully relevant?

Encrypted message search broken due to sqlcipher linking conflict (with workaround)

In short, GTK3 depends on sqlite by way of its "Tracker" indexing component, which conflicts with Element trying to link to sqlcipher, since sqlcipher uses the same symbols as sqlite. This causes encrypted message search to fail to initialize, and the settings page displays the message Error opening the database: SqlCipherError("Sqlcipher support is missing").

This can be worked around by specifying libsqlcipher in LD_PRELOAD, as described in the Element issue. On Fedora 35, I have added LD_PRELOAD=/usr/lib64/libsqlcipher-3.34.1.so.0 to my copy of /usr/bin/io.element.element.wrapper.sh. (Note that after doing this, I got an "invalid passphrase" error instead of a "missing sqlcipher" error and had to reset the database anyway, but after that it worked fine.)

Old version rpm

Hi @taw00,

Where can I find 0.14.2 rpm version? 0.15.2 have serious bugs. Want to downgrade for some time. Thanks!

Bundled libffmpeg.so and libnode.so potentially conflict

Bundling libffmpeg.so and libnode.so in /usr/lib64 runs the risk of colliding with other libraries on the system (and specifically with other Electron apps that haven't mitigated this as well; I ran into this with a naive build of Signal-Desktop).

It might be worth relocating these (maybe turning /usr/bin/riot into a script that sets up LD_LIBRARY_PATH and launches the real riot executable), or better yet, see if it can be built against system libraries instead of bundling?

1.5.7+ don't build for OpenSUSE Leap 15.*

There is a library availability issue with Leap. I have not dug into it yet. Though ... there is a chance Riot 1.5.6 was the last version for the 15 series of Leap.

[1/4] Resolving packages...
[2/4] Fetching packages...
warning Pattern ["gemini-scrollbar@matrix-org/gemini-scrollbar#91e1e566"] is trying to unpack in the same destination "/builddir/.cache/yarn/v6/npm-gemini-scrollbar-1.4.3/node_modules/gemini-scrollbar" as pattern ["gemini-scrollbar@github:matrix-org/gemini-scrollbar#91e1e566"]. This could result in non-deterministic behavior, skipping.
warning [email protected]: Invalid bin entry for "r.js" (in "requirejs").
warning [email protected]: Invalid bin entry for "sha.js" (in "sha.js").
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
error [email protected]: The engine "node" is incompatible with this module. Expected version ">= 10.13.0". Got "8.17.0"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
. . .

1.6.4 for Tumbleweed?

Hi there, is there any chance of getting 1.6.4 for Tumbleweed? My version is still stuck on 1.6.2. Thanks a lot!

HEADS UP: Having issues with build 0.9.9

Working on this build but I am having issues where the application comes up but just gives me a blank white box. And then when I downgrade, that issue remains -- so it silently hoses my environment for whatever reason. Please be patient. I'm working on it.

And yes, I immediately pulled the build so you shouldn't see it.

Every user displays as offline

Tested on Fedora. Every user (including my own account) displays as offline at all times. I don't believe this is the result of any settings within Riot, as it was like this before I configured any settings.

Please publish fingerprint for key ID 4f38bde2

I'm on Fedora 26. I tried to install riot with:

dnf copr enable taw/Riot
dnf install distribution-gpg-keys-copr
dnf install riot.x86_64

The last command results in the question whether I want to import GPG key 0x4F38BDE2 from https://copr-be.cloud.fedoraproject.org/results/taw/Riot/pubkey.gpg. Also the fingerprint of key 0x4F38BDE2 is presented.

I would expect to be able to verify this fingerprint somewhere on the internet on one of the riot pages, or on the wiki of this project.

Could you please publish the fingerprint for GPG key 0x4F38BDE2?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.