Installing Fedora 1.30 rpm on Centos 7

I downloaded the Fedora 1.30 rpm from the website and proceeded to install on CentOS 7. It installed without any error messages but when starting the app it fails with:
“TypeError: DeltaChatController is not a constructor”

How can I fix this?

1 Like

what cpu architecture do you use? when starting via terminal is there more info on this error message?

The cpu architecture is:

Linux 3.10.0-1160.49.1.el7.x86_64 #1 SMP Tue Nov 30 15:51:32 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

When I start it in a terminal window I get the following error messages:

Fatal Error
The DeltaChat Module couldn’t be loaded.
Please check if all dependencies for deltachat-core are installed!
The Log file is located in this folder: /home/aa/.config/DeltaChat/logs

/lib64/libc.so.6: version `GLIBC_2.25’ not found (required by /opt/DeltaChat/resources/app.asar.unpacked/node_modules/deltachat-node/node/prebuilds/linux-x64/node.napi.node)
xdg-settings: unknown desktop environment
xdg-settings: unknown desktop environment
[47629:0619/125246.089928:ERROR:object_proxy.cc(623)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/portal/desktop: org.freedesktop.DBus.Error.InvalidArgs: No such interface ‘org.freedesktop.portal.FileChooser’
[47629:0619/125246.090204:ERROR:select_file_dialog_linux_portal.cc(242)] Failed to read portal version property
Gtk-Message: 12:52:46.120: GtkDialog mapped without a transient parent. This is discouraged.
[47668:0619/125246.245560:ERROR:sandbox_linux.cc(377)] InitializeSandbox() called with multiple threads in process gpu-process.
[47668:0619/125246.250623:ERROR:gbm_wrapper.cc(275)] Failed to export buffer to dma_buf: No such file or directory (2)

It seems it requires glibc 2.25 whereas CentOS 7 (including RHEL 7 and its siblings all use glibc 2.17).

Can it be recompiled to use glibc 2.17?

oh the too new glibc again…
https://sourceware.org/glibc/wiki/Glibc%20Timeline
glibc 2.25 is actually from 2018, so already like 4 years old…

Can it be recompiled to use glibc 2.17?

I won’t do it as it would be too complicated for me with the current build infrastructure right now, but I can help you compiling it yourself if you want:

you need rustup installed and Nodejs (min. version 16):

then clone the Deltachat-desktop repo, install dependencies and build it:

# download source code
git clone https://github.com/deltachat/deltachat-desktop.git
cd deltachat-desktop
# installs dependencies, the `--build-from-source` argument makes sure core is build again
# against the older system glibc instead of using a prebuild
npm install --build-from-source
# start desktop version
npm run dev
# package
npx electron-builder --config ./electron-builder.json5 --linux rpm

Understood about glibc but RHEL 7 and derivatives, including CentOS 7, only have glibc 2.17 available and are still supported until end of 2024 if I remember correctly.

I can try to compile it myself later this week but wonder about other dependencies’ requirements, including the ones you list above? Which versions are needed?

maybe perl and python for building, but those are preinstalled most of the time.
ah and sometimes the openssl source/ dev package. depends a bit, when you have npm, nodejs, and rustup you can start, when you encounter errors just post them here. :wink:

Also maybe you don’t need to compile it yourself when some other package like flatpak works? Though I don’t know the state of flatpak on centos tbh.

I do want to compile it myself and avoid flatpak, appimage etc.

Surely there are minimum versions of perl, python, npm electron-builder etc required?

try it with the default ones in your distro, if there is an error we can still look into it.

Hello,

I get the same error even when using Appimage. Shouldn’t the dependencies be incuded in AppImage?

Best regards,

Lucas

so glibc has the wrong version on your OS? what OS are you using? what architecture and what glib version/s are installed?

I’m using Linux Mint 18 Xfce 64bit.
glib version is shown as 2.48.2-1

But should it be important when using AppImage?

I think glib is not included in the AppImage, because it is considered too fundamental or sth like that. maybe we should manually build the appimages and include it in the future… electron-builder has many problems…

Also If I understood that correctly you had/have to build appimages on the oldest possible distro to make it work on as many distress as possible. That doesn’t sound like a good nor right solution, does it?

Mhhh. When thinking about it it could be true that it’s not possible to get rid of really every single dependency by using AppImage as it is still running in an operating system and even if - hardware would still develop and things have to get complicated after a while anyway.

So even if AppImage tries to get rid of dependency-problems - and I think it is the reason for the existence of AppImage and similar systems - it will probably not be possible for 100% of the cases.

The only solution would be to use another layer to manage these things like the Java environment, which has other disadvantages I don’t like :wink:

So, I guess there’s no solution for my problem except switching to a newer version of my operating system?

I’d try to build it myself first If I were you, instructions are above. If you don’t want to update your system that’s at-least worth a try, whatever is easier for you.

Thanks, I tried it. But it is not working.
I thought so. I think my system is to old for the dependencies…

I guess I have o goo chances, unless I would have all libraries included in some kin of package. But this is of course much to whish…

In fact I cannot find “nustrup” and there are errors when running npm …

rustup is here: https://rustup.rs
once you have rust installed, then you can install fem (GitHub - Schniz/fnm: 🚀 Fast and simple Node.js version manager, built in Rust) which is a node version manager, which you can use to download and setup the right version of npm and nodejs.

Hi Simon,

thank you for your instructions.
I managed to install rustup and npm/nodejs. I also found out a node version tu run fine with the installed glibc version as I guess. It was some kind of trial and error method…

Now I started the npm install build-from-source command and it makes many things, gives many warnings but at the end it fails with errors. These errors which I don’t understand. But I’ve attached a log file…
Perhaps you can see the problem?

Lucas

(Attachment 2023-01-20T18_51_57_256Z-debug-0.log is missing)

The log was rejected.
Here I try it again as txt file…

2023-01-20T18_51_57_256Z-debug-0.log.txt (234 KB)

you need a newer python it says: min 3.6.0:

1929 error gyp ERR! find Python Python is not set from command line or npm configuration
1929 error gyp ERR! find Python Python is not set from environment variable PYTHON
1929 error gyp ERR! find Python checking if "python3" can be used
1929 error gyp ERR! find Python - executable path is "/usr/bin/python3"
1929 error gyp ERR! find Python - version is "3.5.2"
1929 error gyp ERR! find Python - version is 3.5.2 - should be >=3.6.0
1929 error gyp ERR! find Python - THIS VERSION OF PYTHON IS NOT SUPPORTED
1929 error gyp ERR! find Python checking if "python" can be used
1929 error gyp ERR! find Python - executable path is "/usr/bin/python"
1929 error gyp ERR! find Python - version is "2.7.12"
1929 error gyp ERR! find Python - version is 2.7.12 - should be >=3.6.0
1929 error gyp ERR! find Python - THIS VERSION OF PYTHON IS NOT SUPPORTED
1929 error gyp ERR! find Python 
1929 error gyp ERR! find Python **********************************************************
1929 error gyp ERR! find Python You need to install the latest version of Python.
1929 error gyp ERR! find Python Node-gyp should be able to find and use Python. If not,
1929 error gyp ERR! find Python you can try one of the following options:
1929 error gyp ERR! find Python - Use the switch --python="/path/to/pythonexecutable"
1929 error gyp ERR! find Python   (accepted by both node-gyp and npm)
1929 error gyp ERR! find Python - Set the environment variable PYTHON
1929 error gyp ERR! find Python - Set the npm configuration variable python:
1929 error gyp ERR! find Python   npm config set python "/path/to/pythonexecutable"
1929 error gyp ERR! find Python For more information consult the documentation at:
1929 error gyp ERR! find Python https://github.com/nodejs/node-gyp#installation
1929 error gyp ERR! find Python **********************************************************
1929 error gyp ERR! find Python 

Thanks!

I have installed Python 3.6 and gave the executable to npm for all further commans.
I got only warnings then without errors and I tried to fix the warnings via npm audit --force which resulted in a lesser number of warnings.
I tried to tun Deltachat then with npm run dev --python=“python3.6” and there was a windows opening but besides some standard menu items the window was empty and white.

I guess there are some more dependencies or old libraries that prevent the application from running right. It took me hours to get here.
I think it owuld be better to use some package fomat which brings the needed libraries like Appimage or Flatpak - but unfortunately they don’t work either - I guess because not really all dependencies are included…