Azure / azure-sdk-for-cpp

This repository is for active development of the Azure SDK for C++. For consumers of the SDK we recommend visiting our versioned developer docs at https://azure.github.io/azure-sdk-for-cpp.
MIT License
181 stars 126 forks source link

libcurl and openssl minimum requrements #5594

Open hqho opened 6 months ago

hqho commented 6 months ago

Query/Question What is the minimum liburl and openssl version that is needed for the SDK?

Why is this not a Bug or a feature Request? General question

Setup (please complete the following information if applicable):

github-actions[bot] commented 6 months ago

Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc @EmmaZhu @Jinming-Hu @vinjiang.

LarryOsterman commented 6 months ago

We should support all supported OpenSSL versions, which in practice means versions greater than 3.0.

It's easier to answer the libcurl question if you can let us know which version of libcurl you're interested in targeting.

hqho commented 6 months ago

We are currently targeting libcurl version 7.37.0.

LarryOsterman commented 6 months ago

We have functionality which depends on Curl 7.77, but it is conditionally compiled on LIBCURL_VERSION_NUM. So hopefully 7.37.0 should be supported.

However, 7.37.0 is an extremely old (9 years) version and it's highly likely there are security bugs in that version so using a newer version is likely a good idea.

hqho commented 6 months ago

Thanks!

herveyw-msft commented 4 months ago

@LarryOsterman : the Storage SDK does not build with OpenSSL 3.1 because it uses deprecated MD5 API, is this being tracked? How about libcurl 8.8?

LarryOsterman commented 3 months ago

Reflecting an offline conversation: Current revisions of the Storage SDK build with OpenSSL 3. Older versions do not due to deprecated API changes during the OpenSSL 1->OpenSSL 3 conversion.

In @herveyw-msft's case he consumes the storage SDK via a cmake fetch-content directive (effectively pulling the Azure SDK as a submodule), the version of the storage SDK that he uses predates the OpenSSL 3 conversion, and he has challenges with newer SDKs due to additional dependencies for non-storage packages.