Recent engines do not work on Manjaro/Arch Linux.

Recent engines do not work on Manjaro/Arch Linux.

Discuss the source code and development of Spring Engine in general from a technical point of view. Patches go here too.

Moderator: Moderators

Post Reply
varikonniemi
Posts: 451
Joined: 03 Jul 2011, 11:54

Recent engines do not work on Manjaro/Arch Linux.

Post by varikonniemi »

Recent engine versions have started depending on an outdated? library, to make spring work on Arch based distros one has to install libcurl-compat and make a launch script like this

Code: Select all

#! /bin/bash

LD_PRELOAD=/usr/lib/libcurl.so.3 '/home/varikonniemi/.spring/engine/104.0.1-531-gab3f84f maintenance/spring' $1
otherwise:

Code: Select all

[varikonniemi@varikonniemi-pc ~]$ springlobby
...
/home/varikonniemi/.spring/engine/104.0.1-557-g1487736 maintenance/spring: /usr/lib/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by /home/varikonniemi/.spring/engine/104.0.1-557-g1487736 maintenance/spring)
The last known good version i have seen is 104.0.1-413-gd902a7b with 104.0.1-531-gab3f84f being broken.
abma
Spring Developer
Posts: 3798
Joined: 01 Jun 2009, 00:08

Re: Recent engines do not work on Manjaro/Arch Linux.

Post by abma »

its vice versa:

newer spring versions link to libcurl.so.4 which means on a debian based system libcurl4 must be installed.
gajop
Moderator
Posts: 3051
Joined: 05 Aug 2009, 20:42

Re: Recent engines do not work on Manjaro/Arch Linux.

Post by gajop »

New Ubuntu also uses new libcurl. It's clear to me this should be distributed. Asking users to install *any* libcurl is a barrier.

I tried to make it statically compile but I failed. I'll try again later.
varikonniemi
Posts: 451
Joined: 03 Jul 2011, 11:54

Re: Recent engines do not work on Manjaro/Arch Linux.

Post by varikonniemi »

The question people should be asking is wtf is wrong with libcurl, if a version compiled with one version is not working with a system that has version+1 ? Breaking backwards compatibility is insane, it should be curl2 or something.
kazhad
Posts: 1
Joined: 22 Sep 2018, 13:51

Re: Recent engines do not work on Manjaro/Arch Linux.

Post by kazhad »

I have the same problem on Ubuntu 18.04 and cannot start recent engine versions. I tried 104.0.1-567-gc484c10 and 104.0.1-718-gc76769c. (104.0 is starting.)
On Ubuntu 18.04 there is no libcurl-compat package and libcurl3 cannot be installed parallel to libcurl4. Therefore, I did not find a workaround to start spring.

I get the following error:
.spring/engine/104.0.1-718-gc76769c maintenance/spring: /usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by .spring/engine/104.0.1-718-gc76769c maintenance/spring)


I looked into the bug report in Ubuntu https://bugs.launchpad.net/ubuntu/+sour ... ug/1754294 which reveals that the issue affects many programs.
What I got from there
  • libcurl3 already provided the symlink 'libcurl.so.4'
  • libcurl3 has a 'curl_version@@CURL_OPENSSL_3' (symbol)
  • libcurl4 provides the symlink 'libcurl.so.4'
  • libcurl4 has a 'curl_version@@CURL_OPENSSL_4' (symbol)
  • libcurl3 and libcurl4 cannot be installed together (because of the 'libcurl.so.4' symlink)
  • It is a packaging issue (ubuntu or debian), curl itself (source) is backwards compatible.
I do not fully understand the version symbol, but I think a solution would be to use CURL_OPENSSL_4 when linking against 'libcurl.so.4' and not CURL_OPENSSL_3.
Can you check again if such a change would be possible?
Kloot
Spring Developer
Posts: 1867
Joined: 08 Oct 2006, 16:58

Re: Recent engines do not work on Manjaro/Arch Linux.

Post by Kloot »

Nope: until someone updates the linux buildbots (which will fix the situation for users on any distro shipping libcurl4, but break it in the other direction for all older systems with libcurl3 installed), your only workaround is to compile Spring from source.
User avatar
ThinkSome
Posts: 387
Joined: 14 Jun 2015, 13:36

Re: Recent engines do not work on Manjaro/Arch Linux.

Post by ThinkSome »

Can't we have two buildbots in parallel? Checking for libcurl version before downloading engine would also be rather simple.
Post Reply

Return to “Engine”