Skip to content

Wrong libcurl version on arch-linux #1225

@Hufschmidt

Description

@Hufschmidt

Installing nodegit on archlinux failes while building with:

Error: /usr/lib/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by node_modules/nodegit/build/Release/nodegit.node)

I think this was introduced by PR #1195

The issue is, that nodegit wants libcurl abi-3, while archlinux default libcurl is abi-4.

How to fix

At least on arch-linux nodegit should link against libcurl-compat (which is abi-3 and provides libcurl.so.3 as well as libcurl-compat.so), not libcurl (which is abi-4 and is incompatible with CURL_OPENSSL_3).

How to reproduce

  • Grab and boot a manjaro live-cd (https://manjaro.github.io/), which should be easier/faster then bootstrapping arch
  • Install nodejs with pacman/yaourt
  • Try to install nodegit with npm

Sidenote

Effected third-party tools are for example GitKraken on arch (see comments) which comes with prebuild nodegit binaries but fails to load because of missing/wrong symbols in libcurl.so.4. This can be fixed by loading libcurl-compat before libcurl using the LD_PRELOAD trick.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions