Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

could not find native static library ssl, perhaps an -L flag is missing? #141

Closed
ramiromagno opened this issue Feb 15, 2023 · 15 comments
Closed

Comments

@ramiromagno
Copy link

Hi Gábor,

Thanks for this really nice piece of software.

I am trying to install rig from source on Arch Linux with:

cd rig-0.5.2/
make linux

but I'm getting this error:

(...)
   Compiling native-tls v0.2.10
error: could not find native static library `ssl`, perhaps an -L flag is missing?

error: could not compile `openssl-sys` due to previous error
warning: build failed, waiting for other jobs to finish...
make: *** [Makefile:63: target/release/rig] Error 101

Can you help?

@gaborcsardi
Copy link
Member

Why not install the provided binary?

If you really need compile from source, then I think you need to install the system's ssl library.

@ramiromagno
Copy link
Author

Why not install the provided binary?

I was trying to make a system package for Arch and there are points for making it from source, although I can make a -bin package version too.

If you really need compile from source, then I think you need to install the system's ssl library.

This was my question really. Because I do have openssl installed on my system:

Name            : openssl
Version         : 3.0.7-4
Description     : The Open Source toolkit for Secure Sockets Layer and Transport Layer Security
Architecture    : x86_64
URL             : https://www.openssl.org
Licenses        : Apache
Groups          : None
Provides        : libcrypto.so=3-64  libssl.so=3-64
Depends On      : glibc
Optional Deps   : ca-certificates [installed]
                  perl [installed]
Required By     : bind  coreutils  cryptsetup  curl  dcmtk  erlang-nox  freerdp  gdal  git  gst-plugins-bad  kmod  ldns
                  lib32-openssl  libarchive  libcurl-compat  libevent  libgit2  librabbitmq-c  libsasl  libshout  libssh
                  libssh2  libtorrent-rasterbar  libvncserver  libzip  mariadb-libs  nmap  nodejs  ntp  openssh
                  perl-net-ssleay  postgresql-libs  ppp  python  rstudio-server-git  rsync  ruby  socat  srt  strongswan
                  sudo  systemd  tpm2-tss  unbound  vpnc  wimlib  wpa_supplicant  xmlsec
Optional For    : apr-util
Conflicts With  : None
Replaces        : openssl-perl  openssl-doc
Installed Size  : 10.69 MiB
Packager        : Pierre Schmitz <pierre@archlinux.org>
Build Date      : Wed 14 Dec 2022 05:22:44 PM WET
Install Date    : Mon 16 Jan 2023 10:08:22 PM WET
Install Reason  : Installed as a dependency for another package
Install Script  : No
Validated By    : Signature

@gaborcsardi
Copy link
Member

rig does not use openssl directly, but through the hyper-tls package, which in turn uses native-tls, and that uses a bunch of openssl packages:

rig/Cargo.lock

Lines 651 to 653 in 3cb2d1d

"openssl",
"openssl-probe",
"openssl-sys",

So I guess something goes wrong there.

@gaborcsardi
Copy link
Member

Maybe this is useful: sfackler/rust-openssl#1724

@gaborcsardi
Copy link
Member

Btw. also, rig does not support Arch Linux currently, so you cannot use it on Arch Linux to install R.

@ramiromagno
Copy link
Author

What a pity!

Do let me know when/if you plan to support it, and I'll be glad to test it.

@gaborcsardi
Copy link
Member

gaborcsardi commented Feb 18, 2023

Well, to make that possible, we would need to build several R versions on Arch, in a way that you can install them side by side, like we do for other distros: https://github.com/rstudio/r-builds/

It is unlikely that we would do that any time soon, but if somebody else were to do that, then adding support to rig would not take too much effort.

@ramiromagno
Copy link
Author

Okay, I got the hint.

@ramiromagno
Copy link
Author

I am wondering how one would do that with Arch Linux, because contrarily to these other distros you have in https://github.com/rstudio/r-builds/, Arch uses a rolling release model, meaning there are no "major releases" of completely new versions of the system.

@gaborcsardi
Copy link
Member

How does Arch ship binary packages?

@ramiromagno
Copy link
Author

ramiromagno commented Feb 18, 2023

Citing the Arch wiki:

Packages in the official repositories are constantly upgraded: when a package is upgraded, its old version is removed from the repository. There are no major Arch releases: each package is upgraded as new versions become available from upstream sources. Each repository is always coherent, i.e. the packages that it hosts always have reciprocally compatible versions.

For example, the Arch package for R: https://archlinux.org/packages/community/x86_64/r/.

The packaging is done through a PKGBUILD file: https://github.com/archlinux/svntogit-community/blob/packages/r/trunk/PKGBUILD.

Perhaps @foutrelis may help here.

Maybe an approach could be:

  1. Create a set of Arch packages, one for each R version you have here: https://cdn.posit.co/r/versions.json.
  2. Then create a package group bundling all those packages (for the different R versions)
  3. Create an Arch package for rig that would depend on that package group.

@gaborcsardi
Copy link
Member

Maybe, I don't really understand what this means, but I guess that all supported R builds would be recompiled constantly. It seems like a lot of work to maintain this, TBH.

@ramiromagno
Copy link
Author

ramiromagno commented Feb 18, 2023

Thanks anyway. I'll look a bit more into this to see if all that recompilation would indeed be needed.

@brancengregory
Copy link

Hi @ramiromagno, I'm extremely interested in finding a workable strategy to achieve archlinux compatibility with rig as well. I'll be watching this thread and will report back any information I find.

@ramiromagno
Copy link
Author

ramiromagno commented May 16, 2023

Thanks @brancengregory, it's good to know more people are interested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants