MailSpring cannot be installed on Centos8+ or RHEL 8+

Description

MailSpring cannot be installed on Centos8+ or RHEL 8+ due to broken dependency.

Screenshots

Not required. Log:

Error: 
 Problem: conflicting requests
  - nothing provides libappindicator needed by mailspring-1.7.8-0.1.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

Setup

  • OS and Version: Centos and RHEL 8+
    • Installation Method: .rpm
  • Mailspring Version: 1.7.4

Additional Context

Possible bug fix

In file ./app/build/resources/linux/redhat/mailspring.spec.in

%ifarch i386 i486 i586 i686
Requires: lsb-core-noarch, libXss.so.1, libsecret-1.so.0, ca-certificates
%if 0%{?rhel} >= 8
Requires: libappindicator-gtk3
%else
Requires: libappindicator
%endif
%else
Requires: lsb-core-noarch, libXss.so.1()(64bit), libsecret-1.so.0()(64bit), ca-certificates
%if 0%{?rhel} == 8
Requires: libappindicator-gtk3
%else
Requires: libappindicator
%endif
%endif

Note: I just copied this bug report from #1870 and included @dillonforrest 's suggestion from that bug after it was closed since it seems like it might have escaped your notice. Specifically, it looks like the >= operator didn’t work, but the == apparently does work.


(Originally posted by lambdaknight on GitHub.)

Unfortunately, I have no RHEL installation running to test this. If there is anybody who would be willing to try a out a build, I am happy to take a look at this.

Hi @Phylu

I do have a RHEL 8.3 System running. I would love to test.

sudo yum localinstall mailspring-1.8.0-0.1.x86_64.rpm
result:
nothing provides libappindicator needed by mailspring-1.8.0-0.1.x86_64

Using

‘–skip-broken’ to skip uninstallable packages or ‘–nobest’

does not change anything.

I did install libappindicator-gtk3.
So where to start now?

1 Like

I will create a custom rpm package and provide it here. Thank you can try it the dependencies do work there.

1 Like

I built a custom package for you which you can download here: Nextcloud

This is built from the current master branch with the proposed suggestion. Please let me know if this package is installable for you on RHEL and/or if you get another error message than before.

Fingers crossed!

Hi,

ibappindicator-gtk3 does not seem to be used…

unfortunately results are as following:

Here is another try: Nextcloud

Unfortunately, I cannot see how the variables from the mailspring.spec file are evaluated and why. You can also try to run yum with the -v flag for verbose output. Maybe this helps me figuring out the exact problem.

Hi @Phylu,

sorry for getting back so late.
Here we go.


So what essentially worked is
sudo rpm -ivh --nodeps mailspring-rhel-8_1.rpm

But that results in following ‘window errors’ when opening Mailspring

So I still guess, libappindicator-gtk3-12.10.0-19.el8.x86_64 ist not used for Mailspring.
Is there a way to provide a AppImage instead of a rpm package?

@Morpheus I created two new versions for testing:

  1. Version that simply uses the libappindicator-gtk3 dependency. This should work in any case (if not, I don’t understand how this build works): Nextcloud
  2. Version where I exchanged the if/else statement logic that checks for the RHEL Version. This should be more “future-proof” if it works, but might break for older versions. So if there is anybody with a RHEL version < 8, it would be great to see if this works here as well: Nextcloud

@Phylu

  1. Version that simply uses the libappindicator-gtk3 dependency. This should work in any case (if not, I don’t understand how this build works)

That installation was successful.
But still some window issues?
Do you understand what is going on?
Many thanks for packaging mailspring and testing around!


@Morpheus What about the second package? Is this installable as well?

The white screen seems to be a different problem that the packaging itself. Either there is a(nother) dependency missing, or it is something unrelated. Are there any errors in the developer console? Do you see any errors when starting Mailspring via commandline?

Hi @Phylu

What about the second package? Is this installable as well?

I couldn’t install the second package.
result:
Problem: conflicting requests

  • nothing provides libappindicator needed by mailspring-1.9.1-0.1.x86_64
    (try to add ‘–skip-broken’ to skip uninstallable packages or ‘–nobest’ to use not only best candidate packages)

Either there is a(nother) dependency missing, or it is something unrelated.
You are right.
glibc-devel Version on RHEL 8.3 is 2.28


ksnip_20210507-142223

Any ideas what can be done?

Thanks. It seems that this is caused by this commit: Use a custom build of sqlite that sets HAVE_USLEEP to resolve UI time… · Foundry376/Mailspring@5a9d59d · GitHub

Better-SQlite 3 seems to be dependend on glibc 2.29 which is not available for RHEL 8.3. I don’t know if @bengotow has any idea what to do here.

That the second package could not be installed is really strange. Either I just don’t understand how the dependency check works, or there is something seriously wrong. I am officially out of ideas here. My suggestion would be that we try to fix the white screen issue and then you should at least be able to install the latest Mailspring with the ignore dependencies flag if you have libappindicator-gtk3 installed manually.

That the second package could not be installed is really strange.
I really don’t know what is going on here as well.

I don’t know if @bengotow has any idea what to do here.
Let’s wait.

My suggestion would be that we try to fix the white screen issue and then you should at least be able to install the latest Mailspring with the ignore dependencies flag if you have libappindicator-gtk3 installed manually.
Let’s do it … That’s fine!
Maybe @bengotow knows what to do.

Hey folks! Ahh man that’s really strange - we had to upgrade SQLite in order to use Electron 8, but it sounds like it’s building with too new a version of glibc? Do you know what version is available on RHEL 8.3? I can try to have our build flow use a prebuilt binary or compile it against an older version, will give it a try tonight.

Hi @bengotow

Do you know what version is available on RHEL 8.3?
Yes, sure. Here we go…
ksnip_20210507-142223