question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Distribute binaries, including a drop-in replacement for the shared library

See original GitHub issue

Thanks for publishing this.

I see the release process is fairly automated, is it possible to use CI to automatically build binaries of this, and publish them as releases? I don’t have experience in Github Actions, but I do in Gitlab CI. Both containers take 3 GB, but the binaries themselves are only ~7 MB.

Another interesting build artefact would be to “bake in” the settings in curl_ff95 script in the build itself, and create a regular curl shared library. This could replace with the upstream libcurl file to use the new settings, or hacked around with LD_LIBRARY_PATH. It would need to be a different build per browser.

Now curl is built in static mode. The library itself is in lib/.libs/libcurl.a.

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:15 (9 by maintainers)

github_iconTop GitHub Comments

7reactions
lwthikercommented, Apr 6, 2022

I’m working on a Makefile-based build that will compile curl-impersonate natively, without the Docker containers. Once this is up and working it’ll be possible to add GitHub Action to automatically compile to MacOS and Linux and add the binaries to the releases

2reactions
lwthikercommented, Feb 22, 2022

Thanks for the suggestions.

I agree about libcurl, I believe many would find it useful. If we “bake in” all the settings directly it would result in many copies of libcurl, one for each browser version. If we support 10 Chrome versions then we’ll have 10 different libcurls. Maybe a better solution would be to add a function to libcurl that configures everything the right way? But then LD_LIBRARY_PATH wouldn’t work as you suggested.

I used GitHub Actions for small projects only; I don’t know if it supports our heavy builds for free. Worth a try I guess. Would be good to have it to automatically check PRs, together with the new testing infra (https://github.com/lwthiker/curl-impersonate/pull/9).

About publishing, I’m not sure whether the binaries would be useful by themselves, as they are compiled for a specific Ubuntu/Debian and have external dependencies. Maybe publishing a .deb/.rpm package? I’m really not a packaging expert though.

Read more comments on GitHub >

github_iconTop Results From Across the Web

LGPLv2.1: Distributing dynamically linked executable without ...
I would have to download the MSYS2 build scripts and all related source code, and make sure that I can produce the same...
Read more >
Distributing with Boost Library? - c++ - Stack Overflow
Many of the libraries are shared libraries, I'm not expecting my users to have boost installed, I'm only using a single library (regex)...
Read more >
Shared library versions - dcreager.net
With a shared library, you compile the library once, and install it ... compile times by distributing binary packages of popular libraries, ...
Read more >
Large-scale Debloating of Binary Shared Libraries
Nibbler generates thin versions of shared libraries, which can be used instead of the original, bloated ones with any of the analyzed applications....
Read more >
Chapter 4 Shared Objects (Linker and Libraries Guide)
A shared object is an indivisible unit that is generated from one or more relocatable objects. Shared objects can be bound with dynamic...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found