-
-
Notifications
You must be signed in to change notification settings - Fork 5k
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
azure-sdk-for-cpp: core, identity, storage #23297
Changes from 2 commits
03642c5
a33c5f5
194b6f5
ab839f1
7bc1e2e
61eee6d
231ada6
b880a54
1353503
6540d80
56181b5
1572a20
d6651d3
d0dc6d7
4538b91
f8cb240
c32b753
e08102c
dc448f7
33ced17
7468c05
f9bc538
a5b3a22
1705a18
6effd14
97eca8c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
@echo on | ||
|
||
set "AZURE_SDK_DISABLE_AUTO_VCPKG=ON" | ||
|
||
cd sdk\core\azure-core | ||
|
||
mkdir build | ||
cd build | ||
cmake %CMAKE_ARGS% ^ | ||
-G "Ninja" ^ | ||
-D BUILD_SHARED_LIBS=ON ^ | ||
-D BUILD_TRANSPORT_WINHTTP=ON ^ | ||
.. | ||
if %ERRORLEVEL% neq 0 exit 1 | ||
|
||
cmake --build . --target install --config Release | ||
if %ERRORLEVEL% neq 0 exit 1 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
#!/bin/bash | ||
set -eux | ||
|
||
# Disable installing dependencies with vcpkg | ||
# https://github.com/Azure/azure-sdk-for-cpp/blob/main/CONTRIBUTING.md#customize-the-vcpkg-dependency-integration | ||
# https://github.com/search?utf8=%E2%9C%93&q=AZURE_SDK_DISABLE_AUTO_VCPKG&type=code | ||
export AZURE_SDK_DISABLE_AUTO_VCPKG=ON | ||
|
||
# https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk | ||
if [[ "${target_platform}" == osx-* ]] | ||
then | ||
CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" | ||
fi | ||
|
||
# For some reason CMAKE_BUILD_TYPE=Release isn't included in CMAKE_ARGS by | ||
# ctng-compiler-activation-feedstock, even though it is for vc-feedstock and | ||
# clang-compiler-activation-feedstock | ||
if [[ "${target_platform}" == linux-* ]] | ||
then | ||
CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_BUILD_TYPE=Release" | ||
fi | ||
|
||
cd sdk/core/azure-core | ||
|
||
# https://github.com/Azure/azure-sdk-for-cpp/blob/main/CONTRIBUTING.md#building-the-project | ||
mkdir build | ||
cd build | ||
cmake $CMAKE_ARGS \ | ||
-D BUILD_SHARED_LIBS=ON \ | ||
-D BUILD_TRANSPORT_CURL=ON \ | ||
.. | ||
cmake --build . --target install --config Release |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
{% set name = "azure-core-cpp" %} | ||
{% set version = "1.10.0" %} | ||
{% set sha256 = "e6ae26ad30376bef6272024564764ba7bf5756063dc94cc4b74180cd004ab75e" %} | ||
|
||
package: | ||
name: {{ name|lower }} | ||
version: {{ version }} | ||
|
||
source: | ||
url: https://github.com/Azure/azure-sdk-for-cpp/archive/refs/tags/azure-core_{{ version }}.tar.gz | ||
sha256: {{ sha256 }} | ||
|
||
build: | ||
number: 0 | ||
jdblischak marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
requirements: | ||
build: | ||
- {{ compiler("cxx") }} | ||
- cmake | ||
- make # [not win] | ||
jdblischak marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- ninja # [win] | ||
host: | ||
- libcurl | ||
- openssl # [not win] | ||
- wil # [win] | ||
run: | ||
- libcurl | ||
- openssl # [not win] | ||
- wil # [win] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This whole section shouldn't be needed. The first two come via run_exports and the last one is a header only library. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. According to conda/conda-build#3796 (comment) adding There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @teo-tsirpanis thanks for sharing the discussion in that Issue. @xhochy do you have a strong preference for either option?
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think 2 is an option because it would make There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. After discussing with an upstream Azure SDK developer, we decided to apply a patch to remove the exported dependency on For more context, see Azure/azure-sdk-for-cpp#4784 and Azure/azure-sdk-for-cpp#4785 |
||
|
||
test: | ||
commands: | ||
- test -f "${PREFIX}/include/azure/core.hpp" # [not win] | ||
- test -f "${PREFIX}/lib/libazure-core${SHLIB_EXT}" # [not win] | ||
- test -f "${PREFIX}/share/azure-core-cpp/azure-core-cppTargets.cmake" # [not win] | ||
- if not exist %PREFIX%\\Library\\bin\\azure-core.dll exit 1 # [win] | ||
- if not exist %PREFIX%\\Library\\include\\azure\\core.hpp exit 1 # [win] | ||
- if not exist %PREFIX%\\Library\\lib\\azure-core.lib exit 1 # [win] | ||
- if not exist %PREFIX%\\Library\\share\\azure-core-cpp\\azure-core-cppTargets.cmake exit 1 # [win] | ||
|
||
about: | ||
home: https://github.com/Azure/azure-sdk-for-cpp/ | ||
summary: Azure SDK Core Library for C++ | ||
description: >- | ||
Azure::Core (`azure-core`) provides shared primitives, abstractions, and | ||
helpers for modern Azure SDK client libraries written in the C++ | ||
license: MIT | ||
license_family: MIT | ||
license_file: | ||
- LICENSE.txt | ||
- sdk/core/azure-core/NOTICE.txt | ||
doc_url: https://azure.github.io/azure-sdk-for-cpp/ | ||
dev_url: https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/core/azure-core/ | ||
|
||
extra: | ||
recipe-maintainers: | ||
- jdblischak | ||
- Shelnutt2 | ||
jdblischak marked this conversation as resolved.
Show resolved
Hide resolved
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
@echo on | ||
|
||
set "AZURE_SDK_DISABLE_AUTO_VCPKG=ON" | ||
|
||
cd sdk\identity\azure-identity | ||
|
||
mkdir build | ||
cd build | ||
cmake %CMAKE_ARGS% ^ | ||
-G "Ninja" ^ | ||
-D BUILD_SHARED_LIBS=ON ^ | ||
-D BUILD_TRANSPORT_WINHTTP=ON ^ | ||
.. | ||
if %ERRORLEVEL% neq 0 exit 1 | ||
|
||
cmake --build . --target install --config Release | ||
if %ERRORLEVEL% neq 0 exit 1 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
#!/bin/bash | ||
set -eux | ||
|
||
# Disable installing dependencies with vcpkg | ||
# https://github.com/Azure/azure-sdk-for-cpp/blob/main/CONTRIBUTING.md#customize-the-vcpkg-dependency-integration | ||
# https://github.com/search?utf8=%E2%9C%93&q=AZURE_SDK_DISABLE_AUTO_VCPKG&type=code | ||
export AZURE_SDK_DISABLE_AUTO_VCPKG=ON | ||
|
||
# https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk | ||
if [[ "${target_platform}" == osx-* ]] | ||
then | ||
CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" | ||
fi | ||
|
||
# For some reason CMAKE_BUILD_TYPE=Release isn't included in CMAKE_ARGS by | ||
# ctng-compiler-activation-feedstock, even though it is for vc-feedstock and | ||
# clang-compiler-activation-feedstock | ||
if [[ "${target_platform}" == linux-* ]] | ||
then | ||
CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_BUILD_TYPE=Release" | ||
fi | ||
jdblischak marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
cd sdk/identity/azure-identity | ||
|
||
# https://github.com/Azure/azure-sdk-for-cpp/blob/main/CONTRIBUTING.md#building-the-project | ||
mkdir build | ||
cd build | ||
cmake $CMAKE_ARGS \ | ||
-D BUILD_SHARED_LIBS=ON \ | ||
-D BUILD_TRANSPORT_CURL=ON \ | ||
.. | ||
cmake --build . --target install --config Release |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
{% set name = "azure-identity-cpp" %} | ||
{% set version = "1.5.1" %} | ||
{% set sha256 = "651a660592540c267420b7e1c8dc98428a17396e45f7f6c92a864ab9a4fa028a" %} | ||
|
||
package: | ||
name: {{ name|lower }} | ||
version: {{ version }} | ||
|
||
source: | ||
url: https://github.com/Azure/azure-sdk-for-cpp/archive/refs/tags/azure-identity_{{ version }}.tar.gz | ||
sha256: {{ sha256 }} | ||
|
||
build: | ||
number: 0 | ||
|
||
requirements: | ||
build: | ||
- {{ compiler("cxx") }} | ||
- cmake | ||
- make # [not win] | ||
- ninja # [win] | ||
host: | ||
- azure-core-cpp >=1.9.0 | ||
carterbox marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- openssl | ||
run: | ||
- azure-core-cpp >=1.9.0 | ||
- openssl | ||
jdblischak marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
test: | ||
commands: | ||
- test -f "${PREFIX}/include/azure/identity.hpp" # [not win] | ||
- test -f "${PREFIX}/lib/libazure-identity${SHLIB_EXT}" # [not win] | ||
- test -f "${PREFIX}/share/azure-identity-cpp/azure-identity-cppTargets.cmake" # [not win] | ||
- if not exist %PREFIX%\\Library\\bin\\azure-identity.dll exit 1 # [win] | ||
- if not exist %PREFIX%\\Library\\include\\azure\\identity.hpp exit 1 # [win] | ||
- if not exist %PREFIX%\\Library\\lib\\azure-identity.lib exit 1 # [win] | ||
- if not exist %PREFIX%\\Library\\share\\azure-identity-cpp\\azure-identity-cppTargets.cmake exit 1 # [win] | ||
jdblischak marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
about: | ||
home: https://github.com/Azure/azure-sdk-for-cpp/ | ||
summary: Azure Identity client library for C++ | ||
description: >- | ||
The Azure Identity library provides Azure Active Directory token | ||
authentication support across the Azure SDK. It provides a set of | ||
`TokenCredential` implementations which can be used to construct Azure SDK | ||
clients which support AAD token authentication. | ||
license: MIT | ||
license_family: MIT | ||
license_file: | ||
- LICENSE.txt | ||
- sdk/identity/azure-identity/NOTICE.txt | ||
doc_url: https://azure.github.io/azure-sdk-for-cpp/ | ||
dev_url: https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/identity/azure-identity/ | ||
|
||
extra: | ||
recipe-maintainers: | ||
- jdblischak | ||
- Shelnutt2 | ||
jdblischak marked this conversation as resolved.
Show resolved
Hide resolved
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
@echo on | ||
|
||
set "AZURE_SDK_DISABLE_AUTO_VCPKG=ON" | ||
|
||
cd sdk\storage\azure-storage-blobs | ||
|
||
mkdir build | ||
cd build | ||
cmake %CMAKE_ARGS% ^ | ||
-G "Ninja" ^ | ||
-D BUILD_SHARED_LIBS=ON ^ | ||
-D BUILD_TRANSPORT_WINHTTP=ON ^ | ||
.. | ||
if %ERRORLEVEL% neq 0 exit 1 | ||
|
||
cmake --build . --target install --config Release | ||
if %ERRORLEVEL% neq 0 exit 1 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
#!/bin/bash | ||
set -eux | ||
|
||
# Disable installing dependencies with vcpkg | ||
# https://github.com/Azure/azure-sdk-for-cpp/blob/main/CONTRIBUTING.md#customize-the-vcpkg-dependency-integration | ||
# https://github.com/search?utf8=%E2%9C%93&q=AZURE_SDK_DISABLE_AUTO_VCPKG&type=code | ||
export AZURE_SDK_DISABLE_AUTO_VCPKG=ON | ||
|
||
# https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk | ||
if [[ "${target_platform}" == osx-* ]] | ||
then | ||
CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" | ||
fi | ||
|
||
# For some reason CMAKE_BUILD_TYPE=Release isn't included in CMAKE_ARGS by | ||
# ctng-compiler-activation-feedstock, even though it is for vc-feedstock and | ||
# clang-compiler-activation-feedstock | ||
if [[ "${target_platform}" == linux-* ]] | ||
then | ||
CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_BUILD_TYPE=Release" | ||
fi | ||
|
||
cd sdk/storage/azure-storage-blobs | ||
|
||
# https://github.com/Azure/azure-sdk-for-cpp/blob/main/CONTRIBUTING.md#building-the-project | ||
mkdir build | ||
cd build | ||
cmake $CMAKE_ARGS \ | ||
-D BUILD_SHARED_LIBS=ON \ | ||
-D BUILD_TRANSPORT_CURL=ON \ | ||
.. | ||
cmake --build . --target install --config Release |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
{% set name = "azure-storage-blobs-cpp" %} | ||
{% set version = "12.7.0" %} | ||
{% set sha256 = "a28a665c740ae510053afa2c9b794052aa4de11d122b3ac4eaa0bb3bccb8983e" %} | ||
|
||
package: | ||
name: {{ name|lower }} | ||
jdblischak marked this conversation as resolved.
Show resolved
Hide resolved
|
||
version: {{ version }} | ||
|
||
source: | ||
url: https://github.com/Azure/azure-sdk-for-cpp/archive/refs/tags/azure-storage-blobs_{{ version }}.tar.gz | ||
sha256: {{ sha256 }} | ||
|
||
build: | ||
number: 0 | ||
|
||
requirements: | ||
build: | ||
- {{ compiler("cxx") }} | ||
- cmake | ||
- make # [not win] | ||
- ninja # [win] | ||
host: | ||
- azure-storage-common-cpp >=12.3.1 | ||
run: | ||
- azure-core-cpp | ||
- azure-storage-common-cpp >=12.3.1 | ||
|
||
test: | ||
commands: | ||
- test -f "${PREFIX}/include/azure/storage/blobs/append_blob_client.hpp" # [not win] | ||
- test -f "${PREFIX}/lib/libazure-storage-blobs${SHLIB_EXT}" # [not win] | ||
- test -f "${PREFIX}/share/azure-storage-blobs-cpp/azure-storage-blobs-cppTargets.cmake" # [not win] | ||
- if not exist %PREFIX%\\Library\\bin\\azure-storage-blobs.dll exit 1 # [win] | ||
- if not exist %PREFIX%\\Library\\include\\azure\\storage\\blobs\\append_blob_client.hpp exit 1 # [win] | ||
- if not exist %PREFIX%\\Library\\lib\\azure-storage-blobs.lib exit 1 # [win] | ||
- if not exist %PREFIX%\\Library\\share\\azure-storage-blobs-cpp\\azure-storage-blobs-cppTargets.cmake exit 1 # [win] | ||
|
||
about: | ||
home: https://github.com/Azure/azure-sdk-for-cpp/ | ||
summary: Azure Storage Blobs Client Library for C++ | ||
description: >- | ||
Azure Blob storage is Microsoft's object storage solution for the cloud. | ||
Blob storage is optimized for storing massive amounts of unstructured data. | ||
Unstructured data is data that does not adhere to a particular data model or | ||
definition, such as text or binary data. | ||
license: MIT | ||
license_family: MIT | ||
license_file: | ||
- LICENSE.txt | ||
- sdk/storage/azure-storage-blobs/NOTICE.txt | ||
doc_url: https://azure.github.io/azure-sdk-for-cpp/ | ||
dev_url: https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/storage/azure-storage-blobs/ | ||
|
||
extra: | ||
recipe-maintainers: | ||
- jdblischak | ||
- Shelnutt2 | ||
jdblischak marked this conversation as resolved.
Show resolved
Hide resolved
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
@echo on | ||
|
||
set "AZURE_SDK_DISABLE_AUTO_VCPKG=ON" | ||
|
||
cd sdk\storage\azure-storage-common | ||
|
||
mkdir build | ||
cd build | ||
cmake %CMAKE_ARGS% ^ | ||
-G "Ninja" ^ | ||
-D BUILD_SHARED_LIBS=ON ^ | ||
-D BUILD_TRANSPORT_WINHTTP=ON ^ | ||
.. | ||
if %ERRORLEVEL% neq 0 exit 1 | ||
|
||
cmake --build . --target install --config Release | ||
if %ERRORLEVEL% neq 0 exit 1 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
#!/bin/bash | ||
set -eux | ||
|
||
# Disable installing dependencies with vcpkg | ||
# https://github.com/Azure/azure-sdk-for-cpp/blob/main/CONTRIBUTING.md#customize-the-vcpkg-dependency-integration | ||
# https://github.com/search?utf8=%E2%9C%93&q=AZURE_SDK_DISABLE_AUTO_VCPKG&type=code | ||
export AZURE_SDK_DISABLE_AUTO_VCPKG=ON | ||
|
||
# https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk | ||
if [[ "${target_platform}" == osx-* ]] | ||
then | ||
CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" | ||
fi | ||
|
||
cd sdk/storage/azure-storage-common | ||
|
||
# For some reason CMAKE_BUILD_TYPE=Release isn't included in CMAKE_ARGS by | ||
# ctng-compiler-activation-feedstock, even though it is for vc-feedstock and | ||
# clang-compiler-activation-feedstock | ||
if [[ "${target_platform}" == linux-* ]] | ||
then | ||
CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_BUILD_TYPE=Release" | ||
fi | ||
|
||
# https://github.com/Azure/azure-sdk-for-cpp/blob/main/CONTRIBUTING.md#building-the-project | ||
mkdir build | ||
cd build | ||
cmake $CMAKE_ARGS \ | ||
jdblischak marked this conversation as resolved.
Show resolved
Hide resolved
|
||
-D BUILD_SHARED_LIBS=ON \ | ||
-D BUILD_TRANSPORT_CURL=ON \ | ||
.. | ||
cmake --build . --target install --config Release |
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.
To be consistent with other packages, we should name this li azure-core
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.
What are you suggesting the name should be exactly? We can't call it
azure-core
because that is used by the Python SDK: https://anaconda.org/conda-forge/azure-coreSimilarly with the other SDK libraries: https://anaconda.org/conda-forge/azure-storage-common
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.
@xhochy Is your suggestion to name it
lib-azure-core
? If yes, what other packages follow this convention? The AWS SDK for C++ is namedaws-sdk-cpp
And in general, I think it would be potentially confusing if the conda-forge recipes all used different names than upstream
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.
I believe there is a typo in xhochy's comment. It should read
If the package is just headers, config, and libraries (no CLI tools or other binaries), then it should be named libazure-core because the package contains libazure-core.so/dylib.
Examples:
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.
I'm open to adding the prefix
lib
. My main concerns are consistency and transparency. I think there is an advantage to having the conda recipe names exactly match the upstream namesBut for this example, the upstream maintainers have also named it libclang, right? Same with libcurl. This seems like a slightly different situation than what we are discussing here, where the
lib
prefix name would only exist in conda-forgeMy understanding is that the prefixes
-cpp
(and-c
) communicate that the software contains no CLI tools or other binaries. Looking across the conda-forge ecosystem, the many various AWS libraries either end in-cpp
or start withaws-c-
(including the very similar aws-sdk-cpp). There are also Azure C libraries that either start withazure-c
or end in-c
(see the recipe for azure-iot-sdk-c for various iterations on the naming scheme). I see that thelib
prefix was added to libgoogle-cloud (conda-forge/google-cloud-cpp-feedstock#83), but the-cpp
was also dropped.Given the existence of the recipes for
aws-c-*
,aws-sdk-cpp
, etc. already in conda-forge, I'd argue that a name likeazure-core-cpp
already communicates that it is only a C++ library, with the added benefit that it matches the official upstream name.Is anyone somewhat convinced by my argument above? I don't feel that strongly about it, but I wanted to at least present the counter-argument before we deviate the name from upstream. And if we do decide to add the prefix
lib
, should we drop the suffix-cpp
?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.
I agree that the
lib
prefix is excessive. Names likeazure-core-cpp
unquestionably refer to C++ libraries. Moreover this is the official name of the libraries, and we use the official names in the other cloud SDKs.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.
It's not immediately apparent that the official name of the component is 'azure-core-cpp' when the components are bundled together under a project called 'azure-sdk-for-cpp'.
The upstream project's docs indicate that both the CMake package and vcpkg names are
azure-core-cpp
, so let's go with that because it is explicit evidence in the upstream projects docs/source that the upstream maintainers have named these packages in that way. In the future, let's lead with links instead of researching whether or not it's conda-forge convention to name C/CXX libraries with alib-
prefix.