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

Library reqwest depends on OpenSSL 1.1 causing packaging issues for some distributions #42

Open
dreamer opened this issue Sep 9, 2019 · 1 comment
Assignees
Labels
bug Something isn't working

Comments

@dreamer
Copy link
Owner

dreamer commented Sep 9, 2019

Usage of reqwest library was quick and easy way to introduce package downloads, but it had unwanted consequences, as our official builds now started to depend on libssl ABI 1.1.

While OpenSSL 1.1 is widely packaged throughout distros already (it's in Fedora, Debian, Arch, Ubuntu, etc), there are still some OSes stuck on 1.0, namely:

  • Ubuntu 16.04, older and derivatives
  • Mint
  • Solus

Steam Runtime also includes only 1.0.

At the same time, new distributions do not provide ABI 1.0 by default any more; depending on old build bundled with SR for new software is not a good idea.

Solution

Dependency reqwest will be replaced by libcurl-rust. There are several reasons for this decision:

  • We don't need full functionality of reqwest, only a tiny subset
  • Using curl-rust reduces number of dependencies from 202 to 115
  • … in result cutting clean build time from 60s to ~38s (on my machine); incremental builds are as fast as they were before (~2s).
  • curl-rust is able to dynamically load libcurl, which is pretty neat considering Steam already pins the system-installed version for better compatibility. It also provides an easy option for statically bundling libcurl if needed, so that's neat.
@dreamer dreamer added the bug Something isn't working label Sep 9, 2019
@dreamer dreamer self-assigned this Sep 9, 2019
@ghost
Copy link

ghost commented Dec 9, 2019

This is currently an issue on NixOS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant