-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
KTOR-6754 Use static libcurl build with conan #4445
Conversation
Some notes:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
note: libz should be statically linked on mingw, without it, mingw build binaries will not work on Windows. Context: whyoleg/cryptography-kotlin#13
@whyoleg, could you check compilation errors on linux x64? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fails locally for linuxX64
let me check if I can fix it |
It looks like the problem is with version of open SSL or build flags. I have found similar issues referring to the version bump: @whyoleg, could you tell me what versions and flags are used to build libssl? |
Full information can be found in build log: /~https://github.com/whyoleg/openssl-builds/actions/runs/11719854910/job/32643991499
so mostly all default flags. Here are the options which are configurable with Conan. I've also rerun the job to copy all transitive libraries (previously I've taken openssl from other build). Let's see if it will make any sense. UPDATE: no difference, same failure Though, it's really strange, that it works locally on macOS. May be there is some native cache on CI? |
@e5l I've disabled native caches via ( |
thanks, will check soon |
ce83e36
to
ccb920f
Compare
Hey @olme04, lgtm! Could you rebase it on 3.1.0-eap? |
@e5l I've rebased on 3.1.0-eap and also moved |
Hey @whyoleg, thank you for the nice contribution! btw, it would be great to have an action in the Ktor repo, so we can regenerate dependencies from time to time |
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
I have been away the past few weeks. This looks good! I could have a look at setting up the pipeline to build curl if needed? Would be good to do this, as I started looking at getting curl with web sockets implemented too. What do you think would be the best way to do it so that when the curl version changes it updates all the static libraries for all of the platforms? |
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
@whyoleg, @e5l could you check if this failure on CI is connected to this PR? |
@osipxd yes, this is the same error which was before I disabled the caches there. |
@whyoleg thanks for your work. Is it possible to enable WebSockets in these curl builds? |
This reverts commit ea06356.
@dtretyakov, yeah, sure: #4564 |
@whyoleg thank you for such a fast update. |
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
* Test libcurl build with conan * Take both curl and openssl from the same build * test no linux cache * Move K/N linux cache disabling to just `ktor-client-curl` module
Subsystem
ktor-client-curl
Motivation
Simplify depending on
libcurl
.Similar to #3981 but with different way of building libcurl
Solution
libcurl was built on GitHub actions via Conan and produced libraries are copied.
I have only Mac and linking for all targets was successful. Probably some flags will need to be adopted during libcurl building so that all features are supported.