From 4f289b8d9d8e0786beab92d98119d780311aba26 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 13 Jun 2026 10:42:41 +1100 Subject: [PATCH 1/9] migrate to workflow_settings --- conda-forge.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/conda-forge.yml b/conda-forge.yml index fe62a582..cc6866d6 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,7 +1,3 @@ -azure: - free_disk_space: true - settings_linux: - swapfile_size: 10GiB build_platform: linux_aarch64: linux_64 linux_ppc64le: linux_64 @@ -13,3 +9,10 @@ github: branch_name: main tooling_branch_name: main test: native_and_emulated +workflow_settings: + free_disk_space: + - value: quick + os: linux + pagefile_size: + - value: 10 + os: linux From eebb60477c2b0fa404141ff3e98d0995d233c923 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 13 Jun 2026 10:46:02 +1100 Subject: [PATCH 2/9] go native for arm builds --- conda-forge.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/conda-forge.yml b/conda-forge.yml index cc6866d6..85e1333a 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,13 +1,14 @@ build_platform: - linux_aarch64: linux_64 linux_ppc64le: linux_64 - osx_arm64: osx_64 conda_build: pkg_format: '2' conda_forge_output_validation: true github: branch_name: main tooling_branch_name: main +provider: + linux_aarch64: default + osx_arm64: default test: native_and_emulated workflow_settings: free_disk_space: From 0fe0675b60555af05b8ccbd07265e37fde5cd59b Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 13 Jun 2026 10:47:46 +1100 Subject: [PATCH 3/9] grpc v1.82.0.pre1 --- recipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index f093de4e..0fefd38c 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.81.1" %} +{% set version = "1.82.0.pre1" %} # core package & vendored libs use different version scheme than CPP libs, see # top of https://github.com/grpc/grpc/blob/v{{ version }}/CMakeLists.txt @@ -19,7 +19,7 @@ package: source: - url: https://github.com/grpc/grpc/archive/v{{ version.replace(".pre", "-pre") }}.tar.gz - sha256: 48ae0d05f87206112d9e9144a923191ee1e482141a70686ec58dc86d0b40fddc + sha256: 7c91601663de3363887c57df1a4806f6f0cd2c7c4e6b208aca398496d014f7ee patches: - patches/0001-windows-ssl-lib-names.patch - patches/0002-fix-win-setup-cmds.patch From a11d8cfa1cb6d2e766320101a15bd010d6628503 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 13 Jun 2026 10:49:41 +1100 Subject: [PATCH 4/9] rebase patches --- recipe/meta.yaml | 6 +- .../patches/0001-windows-ssl-lib-names.patch | 6 +- recipe/patches/0002-fix-win-setup-cmds.patch | 6 +- .../0003-Link-against-grpc-and-abseil.patch | 6 +- .../0004-force-protoc-executable.patch | 6 +- ...inkages-of-grpc-_unsecure-as-private.patch | 10 +- ...-set-_DLL_EXPORTS-when-building-and-.patch | 16 +- ...ing-linkages-for-gRPC_BUILD_TESTS-ON.patch | 28 ++-- ...-add-enable_testing-so-tests-get-run.patch | 6 +- ...nd-utf8_range-use-protobuf-s-version.patch | 40 ++--- ...ildtests_cxx-target-to-end2end-tests.patch | 135 +++++++++------ .../0011-build-grpcio-tools-from-source.patch | 16 +- ...ol-explosion-with-autogenerated-expo.patch | 10 +- ...e-GRPC_DLL-instances-where-necessary.patch | 99 +++++------ .../0014-use-protobuf-s-libutf8_range.patch | 8 +- .../patches/0015-disable-grpc-_unsecure.patch | 42 ++--- ...alize_absl-into-separate-cython-modu.patch | 20 +-- ...c-registration-across-shared-librari.patch | 156 ------------------ ...exLock-pointer-deprecation-warnings.patch} | 12 +- ...ex-Lock-Unlock-deprecation-warnings.patch} | 18 +- 20 files changed, 264 insertions(+), 382 deletions(-) delete mode 100644 recipe/patches/0017-fix-double-metric-registration-across-shared-librari.patch rename recipe/patches/{0018-silence-absl-MutexLock-pointer-deprecation-warnings.patch => 0017-silence-absl-MutexLock-pointer-deprecation-warnings.patch} (91%) rename recipe/patches/{0019-silence-absl-Mutex-Lock-Unlock-deprecation-warnings.patch => 0018-silence-absl-Mutex-Lock-Unlock-deprecation-warnings.patch} (88%) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 0fefd38c..64b53a75 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -48,12 +48,10 @@ source: - patches/0015-disable-grpc-_unsecure.patch # backport https://github.com/grpc/grpc/pull/41909 - patches/0016-break-out-_initialize_absl-into-separate-cython-modu.patch - # backport https://github.com/grpc/grpc/pull/41910 - - patches/0017-fix-double-metric-registration-across-shared-librari.patch # silence absl::MutexLock(Mutex*) deprecation warnings on newer abseil - - patches/0018-silence-absl-MutexLock-pointer-deprecation-warnings.patch + - patches/0017-silence-absl-MutexLock-pointer-deprecation-warnings.patch # silence absl::Mutex::Lock()/Unlock() deprecation warnings on newer abseil - - patches/0019-silence-absl-Mutex-Lock-Unlock-deprecation-warnings.patch + - patches/0018-silence-absl-Mutex-Lock-Unlock-deprecation-warnings.patch {% if build_platform == target_platform and not win %} - folder: third_party/benchmark diff --git a/recipe/patches/0001-windows-ssl-lib-names.patch b/recipe/patches/0001-windows-ssl-lib-names.patch index b259341f..e418c63e 100644 --- a/recipe/patches/0001-windows-ssl-lib-names.patch +++ b/recipe/patches/0001-windows-ssl-lib-names.patch @@ -1,7 +1,7 @@ -From 415c093f41f56d8bf3f30b706225a46a90eb7459 Mon Sep 17 00:00:00 2001 +From e0c670d9544c7e8524cb94cbde5c58bc92f0cd4e Mon Sep 17 00:00:00 2001 From: Jonathan Helmus Date: Mon, 17 Feb 2020 15:45:06 -0600 -Subject: [PATCH 01/17] windows ssl lib names +Subject: [PATCH 01/18] windows ssl lib names Co-Authored-By: Julien Schueller Co-Authored-By: Nicholas Bollweg @@ -11,7 +11,7 @@ Co-Authored-By: Marius van Niekerk 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py -index 28860ec..7f46c44 100644 +index 28860ecf65..7f46c442b9 100644 --- a/setup.py +++ b/setup.py @@ -381,10 +381,10 @@ if "win32" in sys.platform: diff --git a/recipe/patches/0002-fix-win-setup-cmds.patch b/recipe/patches/0002-fix-win-setup-cmds.patch index a57bbf9c..71457998 100644 --- a/recipe/patches/0002-fix-win-setup-cmds.patch +++ b/recipe/patches/0002-fix-win-setup-cmds.patch @@ -1,7 +1,7 @@ -From 3e90c94d389edbecd9508835db9fc9c135b27ae3 Mon Sep 17 00:00:00 2001 +From 429b0243e5c15a4eff433b81cde7a1ae796eb380 Mon Sep 17 00:00:00 2001 From: Mike Sarahan Date: Tue, 18 Feb 2020 13:53:05 -0600 -Subject: [PATCH 02/17] fix win setup cmds +Subject: [PATCH 02/18] fix win setup cmds Co-Authored-By: Julien Schueller Co-Authored-By: Nicholas Bollweg @@ -12,7 +12,7 @@ Co-Authored-By: H. Vetinari 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py -index 7f46c44..d8e9bc2 100644 +index 7f46c442b9..d8e9bc256d 100644 --- a/setup.py +++ b/setup.py @@ -201,6 +201,9 @@ ENABLE_DOCUMENTATION_BUILD = _env_bool_value( diff --git a/recipe/patches/0003-Link-against-grpc-and-abseil.patch b/recipe/patches/0003-Link-against-grpc-and-abseil.patch index 5f5591b9..db224144 100644 --- a/recipe/patches/0003-Link-against-grpc-and-abseil.patch +++ b/recipe/patches/0003-Link-against-grpc-and-abseil.patch @@ -1,7 +1,7 @@ -From 7be184117e1de7960b3b82d742291eaa15592da7 Mon Sep 17 00:00:00 2001 +From 052c25e71a78bbac932126284bf34bfce051dfb0 Mon Sep 17 00:00:00 2001 From: Marius van Niekerk Date: Mon, 13 Jun 2022 17:13:07 -0400 -Subject: [PATCH 03/17] Link against grpc and abseil +Subject: [PATCH 03/18] Link against grpc and abseil Co-Authored-By: H. Vetinari --- @@ -9,7 +9,7 @@ Co-Authored-By: H. Vetinari 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/setup.py b/setup.py -index d8e9bc2..dbd69dc 100644 +index d8e9bc256d..dbd69dc50e 100644 --- a/setup.py +++ b/setup.py @@ -172,6 +172,8 @@ BUILD_WITH_STATIC_LIBSTDCXX = _env_bool_value( diff --git a/recipe/patches/0004-force-protoc-executable.patch b/recipe/patches/0004-force-protoc-executable.patch index 471f99ac..05901eaf 100644 --- a/recipe/patches/0004-force-protoc-executable.patch +++ b/recipe/patches/0004-force-protoc-executable.patch @@ -1,14 +1,14 @@ -From 9628c406c965112ef13dd35d41496a9ac2b2fb98 Mon Sep 17 00:00:00 2001 +From 1ea83128612eaed263855136d742d2b51251bbc8 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Fri, 11 Sep 2020 14:20:04 +0200 -Subject: [PATCH 04/17] force protoc executable +Subject: [PATCH 04/18] force protoc executable --- cmake/protobuf.cmake | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/cmake/protobuf.cmake b/cmake/protobuf.cmake -index ad80ca6..7bae8d9 100644 +index ad80ca6e46..7bae8d95bd 100644 --- a/cmake/protobuf.cmake +++ b/cmake/protobuf.cmake @@ -70,21 +70,8 @@ elseif(gRPC_PROTOBUF_PROVIDER STREQUAL "package") diff --git a/recipe/patches/0005-mark-linkages-of-grpc-_unsecure-as-private.patch b/recipe/patches/0005-mark-linkages-of-grpc-_unsecure-as-private.patch index 51745706..46969471 100644 --- a/recipe/patches/0005-mark-linkages-of-grpc-_unsecure-as-private.patch +++ b/recipe/patches/0005-mark-linkages-of-grpc-_unsecure-as-private.patch @@ -1,7 +1,7 @@ -From 6f2e3fcbfcbba0f49e89c7fbf51b6eda012caaa0 Mon Sep 17 00:00:00 2001 +From 938868cc0b2208ec882e7c41d48024b6d466808d Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 23 Aug 2022 11:45:20 +0200 -Subject: [PATCH 05/17] mark linkages of grpc{,_unsecure} as private +Subject: [PATCH 05/18] mark linkages of grpc{,_unsecure} as private except openssl & gpr, which are needed by dependents @@ -13,10 +13,10 @@ Co-Authored-By: Mark Harfouche 1 file changed, 58 insertions(+), 48 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 6825714..691f64f 100644 +index 27bb372c2e..46cdc6d35f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -3174,34 +3174,39 @@ target_include_directories(grpc +@@ -3182,34 +3182,39 @@ target_include_directories(grpc ${_gRPC_ZLIB_INCLUDE_DIR} ) target_link_libraries(grpc @@ -82,7 +82,7 @@ index 6825714..691f64f 100644 endif() foreach(_hdr -@@ -3915,31 +3920,36 @@ target_include_directories(grpc_unsecure +@@ -3924,31 +3929,36 @@ target_include_directories(grpc_unsecure ${_gRPC_ZLIB_INCLUDE_DIR} ) target_link_libraries(grpc_unsecure diff --git a/recipe/patches/0006-for-main-targets-set-_DLL_EXPORTS-when-building-and-.patch b/recipe/patches/0006-for-main-targets-set-_DLL_EXPORTS-when-building-and-.patch index bbbac2a4..7fe3c9d2 100644 --- a/recipe/patches/0006-for-main-targets-set-_DLL_EXPORTS-when-building-and-.patch +++ b/recipe/patches/0006-for-main-targets-set-_DLL_EXPORTS-when-building-and-.patch @@ -1,7 +1,7 @@ -From db63969f75605b00a074b2bed288e799d28c21bb Mon Sep 17 00:00:00 2001 +From eed04ec3db636c7d34728ad8662dd41db45f3106 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 29 Feb 2024 20:31:21 +1100 -Subject: [PATCH 06/17] for main targets, set *_DLL_EXPORTS when building and +Subject: [PATCH 06/18] for main targets, set *_DLL_EXPORTS when building and *_DLL_IMPORTS in interface --- @@ -9,10 +9,10 @@ Subject: [PATCH 06/17] for main targets, set *_DLL_EXPORTS when building and 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 691f64f..aaec62d 100644 +index 46cdc6d35f..7972c30b19 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -2119,10 +2119,8 @@ if(WIN32 AND MSVC) +@@ -2125,10 +2125,8 @@ if(WIN32 AND MSVC) COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) if(BUILD_SHARED_LIBS) @@ -25,7 +25,7 @@ index 691f64f..aaec62d 100644 endif() if(gRPC_INSTALL) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gpr.pdb -@@ -3147,11 +3145,8 @@ if(WIN32 AND MSVC) +@@ -3155,11 +3153,8 @@ if(WIN32 AND MSVC) COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) if(BUILD_SHARED_LIBS) @@ -39,7 +39,7 @@ index 691f64f..aaec62d 100644 endif() if(gRPC_INSTALL) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc.pdb -@@ -3893,11 +3888,8 @@ if(WIN32 AND MSVC) +@@ -3902,11 +3897,8 @@ if(WIN32 AND MSVC) COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) if(BUILD_SHARED_LIBS) @@ -53,7 +53,7 @@ index 691f64f..aaec62d 100644 endif() if(gRPC_INSTALL) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc_unsecure.pdb -@@ -5008,12 +5000,8 @@ if(WIN32 AND MSVC) +@@ -5018,12 +5010,8 @@ if(WIN32 AND MSVC) COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) if(BUILD_SHARED_LIBS) @@ -68,7 +68,7 @@ index 691f64f..aaec62d 100644 endif() if(gRPC_INSTALL) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++.pdb -@@ -5756,12 +5744,8 @@ if(WIN32 AND MSVC) +@@ -5767,12 +5755,8 @@ if(WIN32 AND MSVC) COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) if(BUILD_SHARED_LIBS) diff --git a/recipe/patches/0007-add-missing-linkages-for-gRPC_BUILD_TESTS-ON.patch b/recipe/patches/0007-add-missing-linkages-for-gRPC_BUILD_TESTS-ON.patch index dd9c2e86..409bc7dc 100644 --- a/recipe/patches/0007-add-missing-linkages-for-gRPC_BUILD_TESTS-ON.patch +++ b/recipe/patches/0007-add-missing-linkages-for-gRPC_BUILD_TESTS-ON.patch @@ -1,7 +1,7 @@ -From d2a9b89177b47388abad8a9d1c49941c8baa7453 Mon Sep 17 00:00:00 2001 +From 918ee89ce55a1b0b44265f3c24845768f574cdd1 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 26 Sep 2023 18:25:54 +1100 -Subject: [PATCH 07/17] add missing linkages for gRPC_BUILD_TESTS=ON +Subject: [PATCH 07/18] add missing linkages for gRPC_BUILD_TESTS=ON grpc_event_engine::experimental::MockEndpoint::MockEndpoint() sits in https://github.com/grpc/grpc/blob/v1.73.1/test/core/test_util/mock_endpoint.cc @@ -14,10 +14,10 @@ For some tests, re2 and c-ares have just been forgotten as dependencies. 1 file changed, 11 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index aaec62d..616885f 100644 +index 7972c30b19..ce9fa4c402 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -3337,6 +3337,7 @@ target_link_libraries(grpc_test_util +@@ -3345,6 +3345,7 @@ target_link_libraries(grpc_test_util ${_gRPC_ALLTARGETS_LIBRARIES} absl::failure_signal_handler absl::stacktrace @@ -25,7 +25,7 @@ index aaec62d..616885f 100644 absl::symbolize absl::log_initialize grpc -@@ -3411,6 +3412,7 @@ target_link_libraries(grpc_test_util_unsecure +@@ -3419,6 +3420,7 @@ target_link_libraries(grpc_test_util_unsecure ${_gRPC_ALLTARGETS_LIBRARIES} absl::failure_signal_handler absl::stacktrace @@ -33,7 +33,7 @@ index aaec62d..616885f 100644 absl::symbolize absl::log_initialize grpc_unsecure -@@ -8698,6 +8700,7 @@ target_include_directories(authorization_matchers_test +@@ -8713,6 +8715,7 @@ target_include_directories(authorization_matchers_test ) target_link_libraries(authorization_matchers_test @@ -41,7 +41,7 @@ index aaec62d..616885f 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -19208,6 +19211,7 @@ target_include_directories(grpc_authorization_engine_test +@@ -19567,6 +19570,7 @@ target_include_directories(grpc_authorization_engine_test ) target_link_libraries(grpc_authorization_engine_test @@ -49,7 +49,7 @@ index aaec62d..616885f 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -21477,6 +21481,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -21833,6 +21837,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ) target_link_libraries(httpcli_test @@ -57,7 +57,7 @@ index aaec62d..616885f 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc++_test_util -@@ -24784,6 +24789,7 @@ target_include_directories(matchers_test +@@ -25092,6 +25097,7 @@ target_include_directories(matchers_test ) target_link_libraries(matchers_test @@ -65,7 +65,7 @@ index aaec62d..616885f 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -30272,6 +30278,7 @@ target_include_directories(resolve_address_using_ares_resolver_test +@@ -30726,6 +30732,7 @@ target_include_directories(resolve_address_using_ares_resolver_test ) target_link_libraries(resolve_address_using_ares_resolver_test @@ -73,7 +73,7 @@ index aaec62d..616885f 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -30360,6 +30367,7 @@ target_include_directories(resolve_address_using_native_resolver_test +@@ -30814,6 +30821,7 @@ target_include_directories(resolve_address_using_native_resolver_test ) target_link_libraries(resolve_address_using_native_resolver_test @@ -81,7 +81,7 @@ index aaec62d..616885f 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -41436,6 +41444,7 @@ target_include_directories(xds_common_types_test +@@ -41964,6 +41972,7 @@ target_include_directories(xds_common_types_test ) target_link_libraries(xds_common_types_test @@ -89,7 +89,7 @@ index aaec62d..616885f 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest absl::fixed_array -@@ -42665,6 +42674,7 @@ target_include_directories(xds_credentials_test +@@ -43192,6 +43201,7 @@ target_include_directories(xds_credentials_test ) target_link_libraries(xds_credentials_test @@ -97,7 +97,7 @@ index aaec62d..616885f 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -47852,6 +47862,7 @@ target_include_directories(xds_listener_resource_type_test +@@ -48378,6 +48388,7 @@ target_include_directories(xds_listener_resource_type_test ) target_link_libraries(xds_listener_resource_type_test diff --git a/recipe/patches/0008-add-enable_testing-so-tests-get-run.patch b/recipe/patches/0008-add-enable_testing-so-tests-get-run.patch index 5db9cae4..23f15d1d 100644 --- a/recipe/patches/0008-add-enable_testing-so-tests-get-run.patch +++ b/recipe/patches/0008-add-enable_testing-so-tests-get-run.patch @@ -1,14 +1,14 @@ -From abc9e8ed02fa0fed4e3c21f53260755b39a6c836 Mon Sep 17 00:00:00 2001 +From e42f2aaceb00e6f76cf1cf1ba7c3cafe4bf66d93 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 28 Feb 2025 22:07:19 +1100 -Subject: [PATCH 08/17] add enable_testing so tests get run +Subject: [PATCH 08/18] add enable_testing so tests get run --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 616885f..c2975ee 100644 +index ce9fa4c402..60e0b95f8a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,6 +51,10 @@ option(gRPC_BUILD_TESTS "Build tests" OFF) diff --git a/recipe/patches/0009-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch b/recipe/patches/0009-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch index 8d018564..338fe13e 100644 --- a/recipe/patches/0009-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch +++ b/recipe/patches/0009-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch @@ -1,15 +1,15 @@ -From ef63d7d57e382570cde0a76a05400fa6235b57f6 Mon Sep 17 00:00:00 2001 +From 761d2f637a516d585a89c0b32fe81e20a1a534b7 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 28 Feb 2025 15:09:41 +1100 -Subject: [PATCH 09/17] unvendor upb and utf8_range, use protobuf's version +Subject: [PATCH 09/18] unvendor upb and utf8_range, use protobuf's version --- - CMakeLists.txt | 696 ++---------------------------------------------- + CMakeLists.txt | 789 +----------------------------------------------- cmake/upb.cmake | 4 +- - 2 files changed, 16 insertions(+), 684 deletions(-) + 2 files changed, 16 insertions(+), 777 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index c2975ee..8b170fb 100644 +index 60e0b95f8a..8b4b1cce9d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -354,11 +354,15 @@ else() @@ -29,7 +29,7 @@ index c2975ee..8b170fb 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX) find_library(LIBRT rt) if(LIBRT) -@@ -3177,8 +3181,6 @@ target_link_libraries(grpc +@@ -3185,8 +3189,6 @@ target_link_libraries(grpc PRIVATE ${_gRPC_ALLTARGETS_LIBRARIES} # vendored libs PRIVATE ${_gRPC_ADDRESS_SORTING_LIBRARIES} @@ -38,7 +38,7 @@ index c2975ee..8b170fb 100644 # external dependencies used within grpc PRIVATE ${_gRPC_CARES_LIBRARIES} PRIVATE ${_gRPC_RE2_LIBRARIES} -@@ -3922,7 +3924,6 @@ target_link_libraries(grpc_unsecure +@@ -3931,7 +3933,6 @@ target_link_libraries(grpc_unsecure PRIVATE ${_gRPC_ALLTARGETS_LIBRARIES} # vendored libs PRIVATE ${_gRPC_ADDRESS_SORTING_LIBRARIES} @@ -46,7 +46,7 @@ index c2975ee..8b170fb 100644 # external dependencies used within grpc PRIVATE ${_gRPC_ZLIB_LIBRARIES} PRIVATE ${_gRPC_CARES_LIBRARIES} -@@ -4092,763 +4093,6 @@ target_link_libraries(gtest +@@ -4101,765 +4102,6 @@ target_link_libraries(gtest endif() @@ -510,6 +510,7 @@ index c2975ee..8b170fb 100644 - -add_library(upb_mini_table_lib - third_party/upb/upb/mini_table/extension_registry.c +- third_party/upb/upb/mini_table/generated_registry.c - third_party/upb/upb/mini_table/internal/message.c - third_party/upb/upb/mini_table/message.c -) @@ -807,10 +808,11 @@ index c2975ee..8b170fb 100644 - ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR} - ) -endif() - +- if(gRPC_BUILD_TESTS) -@@ -6362,7 +5606,6 @@ target_include_directories(grpc_authorization_provider + if(gRPC_BUILD_CODEGEN) +@@ -6374,7 +5616,6 @@ target_include_directories(grpc_authorization_provider ) target_link_libraries(grpc_authorization_provider ${_gRPC_ALLTARGETS_LIBRARIES} @@ -818,7 +820,7 @@ index c2975ee..8b170fb 100644 ${_gRPC_RE2_LIBRARIES} ${_gRPC_ZLIB_LIBRARIES} absl::no_destructor -@@ -54968,8 +54211,8 @@ generate_pkgconfig( +@@ -55492,8 +54733,8 @@ generate_pkgconfig( "${gRPC_CORE_VERSION}" "absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr" "libcares openssl re2 zlib" @@ -829,7 +831,7 @@ index c2975ee..8b170fb 100644 "grpc.pc") # grpc_unsecure .pc file -@@ -54979,8 +54222,8 @@ generate_pkgconfig( +@@ -55503,8 +54744,8 @@ generate_pkgconfig( "${gRPC_CORE_VERSION}" "absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr" "libcares zlib" @@ -840,9 +842,9 @@ index c2975ee..8b170fb 100644 "grpc_unsecure.pc") # grpc++ .pc file -@@ -54990,8 +54233,8 @@ generate_pkgconfig( +@@ -55514,8 +54755,8 @@ generate_pkgconfig( "${gRPC_CPP_VERSION}" - "absl_absl_check absl_absl_log absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_dynamic_annotations absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_layout absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_prefetch absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_strings_internal absl_synchronization absl_time absl_type_traits absl_utility gpr grpc" + "absl_absl_check absl_absl_log absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_charset absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_dynamic_annotations absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_layout absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_prefetch absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_strings_internal absl_synchronization absl_time absl_type_traits absl_utility gpr grpc" "libcares openssl re2 zlib" - "-lgrpc++" - "-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_descriptor_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib" @@ -851,9 +853,9 @@ index c2975ee..8b170fb 100644 "grpc++.pc") # grpc++_unsecure .pc file -@@ -55001,8 +54244,8 @@ generate_pkgconfig( +@@ -55525,8 +54766,8 @@ generate_pkgconfig( "${gRPC_CPP_VERSION}" - "absl_absl_check absl_absl_log absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_dynamic_annotations absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_layout absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_prefetch absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_strings_internal absl_synchronization absl_time absl_type_traits absl_utility gpr grpc_unsecure" + "absl_absl_check absl_absl_log absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_charset absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_dynamic_annotations absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_layout absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_prefetch absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_strings_internal absl_synchronization absl_time absl_type_traits absl_utility gpr grpc_unsecure" "libcares zlib" - "-lgrpc++_unsecure" - "-laddress_sorting -lupb_textformat_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_descriptor_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib" @@ -862,9 +864,9 @@ index c2975ee..8b170fb 100644 "grpc++_unsecure.pc") if(gRPC_BUILD_GRPCPP_OTEL_PLUGIN) -@@ -55013,7 +54256,7 @@ if(gRPC_BUILD_GRPCPP_OTEL_PLUGIN) +@@ -55537,7 +54778,7 @@ if(gRPC_BUILD_GRPCPP_OTEL_PLUGIN) "${gRPC_CPP_VERSION}" - "absl_absl_check absl_absl_log absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_dynamic_annotations absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_layout absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_prefetch absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_strings_internal absl_synchronization absl_time absl_type_traits absl_utility gpr grpc grpc++ opentelemetry_api" + "absl_absl_check absl_absl_log absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_charset absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_dynamic_annotations absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_layout absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_prefetch absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_strings_internal absl_synchronization absl_time absl_type_traits absl_utility gpr grpc grpc++ opentelemetry_api" "libcares openssl re2 zlib" - "-lgrpcpp_otel_plugin" - "-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_descriptor_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib" @@ -873,7 +875,7 @@ index c2975ee..8b170fb 100644 "grpcpp_otel_plugin.pc") endif() diff --git a/cmake/upb.cmake b/cmake/upb.cmake -index 9156e5f..e6fa819 100644 +index 9156e5f48f..e6fa81932d 100644 --- a/cmake/upb.cmake +++ b/cmake/upb.cmake @@ -12,9 +12,7 @@ diff --git a/recipe/patches/0010-reduce-buildtests_cxx-target-to-end2end-tests.patch b/recipe/patches/0010-reduce-buildtests_cxx-target-to-end2end-tests.patch index f5c65eef..2d66f9c7 100644 --- a/recipe/patches/0010-reduce-buildtests_cxx-target-to-end2end-tests.patch +++ b/recipe/patches/0010-reduce-buildtests_cxx-target-to-end2end-tests.patch @@ -1,7 +1,7 @@ -From 40705cb0f14004e68be6599ebc94ade173453fe0 Mon Sep 17 00:00:00 2001 +From 1146932c40c9d42b8b2c0a34f067228abad36c66 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 2 Mar 2025 08:22:39 +1100 -Subject: [PATCH 10/17] reduce buildtests_cxx target to end2end tests +Subject: [PATCH 10/18] reduce buildtests_cxx target to end2end tests as of v1.69, the whole set of tests takes extremely long to build (>6h), so reduce it to only "end2end" tests. This has the advantage of being @@ -77,11 +77,11 @@ to compile, compare with the timings below. 2025-08-08T11:22:34.6749979Z [7901/8027] Creating library symlink third_party/benchmark/src/libbenchmark_main.so.1 third_party/benchmark/src/libbenchmark_main.so ``` --- - CMakeLists.txt | 767 +++---------------------------------------------- - 1 file changed, 43 insertions(+), 724 deletions(-) + CMakeLists.txt | 784 +++---------------------------------------------- + 1 file changed, 46 insertions(+), 738 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8b170fb..49be44f 100644 +index 8b4b1cce9d..5b089f177f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,11 +47,12 @@ set(gRPC_INSTALL_SHAREDIR "share/grpc" CACHE STRING "Installation directory for @@ -107,7 +107,7 @@ index 8b170fb..49be44f 100644 protobuf_generate_grpc_cpp_with_import_path_correction( src/proto/grpc/testing/benchmark_service.proto src/proto/grpc/testing/benchmark_service.proto ) -@@ -1276,173 +1277,16 @@ endif() +@@ -1276,174 +1277,16 @@ endif() if(gRPC_BUILD_TESTS) add_custom_target(buildtests_c) @@ -229,6 +229,7 @@ index 8b170fb..49be44f 100644 - if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) - add_dependencies(buildtests_cxx client_fork_test) - endif() +- add_dependencies(buildtests_cxx client_initial_metadata_outstanding_token_test) add_dependencies(buildtests_cxx client_interceptors_end2end_test) if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_dependencies(buildtests_cxx client_lb_end2end_test) @@ -281,10 +282,10 @@ index 8b170fb..49be44f 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_dependencies(buildtests_cxx end2end_chaotic_good_no_logging_test) endif() -@@ -1460,558 +1304,25 @@ if(gRPC_BUILD_TESTS) - add_dependencies(buildtests_cxx end2end_posix_no_logging_test) - add_dependencies(buildtests_cxx end2end_posix_test) +@@ -1463,561 +1306,26 @@ if(gRPC_BUILD_TESTS) add_dependencies(buildtests_cxx end2end_test) + add_dependencies(buildtests_cxx end2end_vrpc_no_logging_test) + add_dependencies(buildtests_cxx end2end_vrpc_test) - add_dependencies(buildtests_cxx endpoint_addresses_test) - add_dependencies(buildtests_cxx endpoint_config_test) - add_dependencies(buildtests_cxx endpoint_pair_test) @@ -400,7 +401,6 @@ index 8b170fb..49be44f 100644 - add_dependencies(buildtests_cxx idle_filter_state_test) - add_dependencies(buildtests_cxx if_list_test) - add_dependencies(buildtests_cxx if_test) -- add_dependencies(buildtests_cxx incoming_metadata_tracker_test) - if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) - add_dependencies(buildtests_cxx info_tool_test) - endif() @@ -464,6 +464,7 @@ index 8b170fb..49be44f 100644 - add_dependencies(buildtests_cxx metrics_test) - add_dependencies(buildtests_cxx minimal_stack_is_minimal_test) - add_dependencies(buildtests_cxx miscompile_with_no_unique_address_test) +- add_dependencies(buildtests_cxx mitigation_engine_provider_test) - add_dependencies(buildtests_cxx mock_stream_test) - add_dependencies(buildtests_cxx mock_test) - if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) @@ -548,8 +549,10 @@ index 8b170fb..49be44f 100644 add_dependencies(buildtests_cxx raw_end2end_test) - add_dependencies(buildtests_cxx rbac_service_config_parser_test) - add_dependencies(buildtests_cxx rbac_translator_test) +- add_dependencies(buildtests_cxx read_context_test) - add_dependencies(buildtests_cxx ref_counted_ptr_test) - add_dependencies(buildtests_cxx ref_counted_test) +- add_dependencies(buildtests_cxx regional_access_boundary_fetcher_test) - if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) - add_dependencies(buildtests_cxx remove_stream_from_stalled_lists_test) - endif() @@ -602,6 +605,7 @@ index 8b170fb..49be44f 100644 - add_dependencies(buildtests_cxx server_test) add_dependencies(buildtests_cxx service_config_end2end_test) - add_dependencies(buildtests_cxx service_config_test) + add_dependencies(buildtests_cxx session_end2end_test) - add_dependencies(buildtests_cxx session_endpoint_test) - add_dependencies(buildtests_cxx settings_timeout_manager_test) - add_dependencies(buildtests_cxx settings_timeout_test) @@ -840,7 +844,7 @@ index 8b170fb..49be44f 100644 add_custom_target(buildtests DEPENDS buildtests_c buildtests_cxx) -@@ -3278,7 +2589,7 @@ if(gRPC_INSTALL) +@@ -3286,7 +2594,7 @@ if(gRPC_INSTALL) ) endif() @@ -849,7 +853,7 @@ index 8b170fb..49be44f 100644 add_library(grpc_test_util test/core/event_engine/test_init.cc -@@ -4019,7 +3330,7 @@ if(gRPC_INSTALL) +@@ -4028,7 +3336,7 @@ if(gRPC_INSTALL) ) endif() @@ -858,7 +862,7 @@ index 8b170fb..49be44f 100644 add_library(gtest third_party/googletest/googlemock/src/gmock-cardinalities.cc -@@ -4745,7 +4056,7 @@ if(gRPC_INSTALL) +@@ -4754,7 +4062,7 @@ if(gRPC_INSTALL) endif() endif() @@ -867,7 +871,7 @@ index 8b170fb..49be44f 100644 add_library(grpc++_test src/cpp/client/channel_test_peer.cc -@@ -4818,7 +4129,7 @@ foreach(_hdr +@@ -4827,7 +4135,7 @@ foreach(_hdr endforeach() endif() @@ -876,7 +880,7 @@ index 8b170fb..49be44f 100644 add_library(grpc++_test_config test/cpp/util/test_config_cc.cc -@@ -4870,7 +4181,7 @@ target_link_libraries(grpc++_test_config +@@ -4879,7 +4187,7 @@ target_link_libraries(grpc++_test_config endif() @@ -885,7 +889,7 @@ index 8b170fb..49be44f 100644 add_library(grpc++_test_util src/core/util/subprocess_posix.cc -@@ -6257,7 +5568,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -6269,7 +5577,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -894,7 +898,7 @@ index 8b170fb..49be44f 100644 add_executable(admin_services_end2end_test ${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc -@@ -7748,7 +7059,7 @@ target_link_libraries(arena_test +@@ -7760,7 +7068,7 @@ target_link_libraries(arena_test endif() @@ -903,7 +907,7 @@ index 8b170fb..49be44f 100644 add_executable(async_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.cc -@@ -11787,7 +11098,7 @@ target_link_libraries(client_authority_filter_test +@@ -11801,7 +11109,7 @@ target_link_libraries(client_authority_filter_test endif() @@ -912,16 +916,16 @@ index 8b170fb..49be44f 100644 add_executable(client_callback_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -12024,7 +11335,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -12038,7 +11346,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() -if(gRPC_BUILD_TESTS) +if(gRPC_CF_TESTS) - add_executable(client_interceptors_end2end_test - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -12097,7 +11408,7 @@ target_link_libraries(client_interceptors_end2end_test + add_executable(client_initial_metadata_outstanding_token_test + test/core/transport/client_initial_metadata_outstanding_token_test.cc +@@ -12153,7 +11461,7 @@ target_link_libraries(client_interceptors_end2end_test endif() @@ -930,7 +934,7 @@ index 8b170fb..49be44f 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(client_lb_end2end_test -@@ -12854,7 +12165,7 @@ target_link_libraries(connectivity_state_test +@@ -12910,7 +12218,7 @@ target_link_libraries(connectivity_state_test endif() @@ -939,7 +943,7 @@ index 8b170fb..49be44f 100644 add_executable(context_allocator_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -13773,7 +13084,7 @@ target_link_libraries(duplicate_header_bad_client_test +@@ -13829,7 +13137,7 @@ target_link_libraries(duplicate_header_bad_client_test endif() @@ -948,7 +952,7 @@ index 8b170fb..49be44f 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(end2end_chaotic_good_no_logging_test -@@ -13878,7 +13189,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -13934,7 +13242,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -957,7 +961,7 @@ index 8b170fb..49be44f 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(end2end_chaotic_good_test -@@ -14072,7 +13383,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -14128,7 +13436,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -966,7 +970,7 @@ index 8b170fb..49be44f 100644 add_executable(end2end_http2_no_logging_test ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc -@@ -14175,7 +13486,7 @@ target_link_libraries(end2end_http2_no_logging_test +@@ -14231,7 +13539,7 @@ target_link_libraries(end2end_http2_no_logging_test endif() @@ -975,7 +979,7 @@ index 8b170fb..49be44f 100644 add_executable(end2end_http2_security_no_logging_test ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc -@@ -14278,7 +13589,7 @@ target_link_libraries(end2end_http2_security_no_logging_test +@@ -14334,7 +13642,7 @@ target_link_libraries(end2end_http2_security_no_logging_test endif() @@ -984,7 +988,7 @@ index 8b170fb..49be44f 100644 add_executable(end2end_http2_security_test ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc -@@ -14470,7 +13781,7 @@ target_link_libraries(end2end_http2_security_test +@@ -14526,7 +13834,7 @@ target_link_libraries(end2end_http2_security_test endif() @@ -993,7 +997,7 @@ index 8b170fb..49be44f 100644 add_executable(end2end_http2_test ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc -@@ -14662,7 +13973,7 @@ target_link_libraries(end2end_http2_test +@@ -14718,7 +14026,7 @@ target_link_libraries(end2end_http2_test endif() @@ -1002,7 +1006,7 @@ index 8b170fb..49be44f 100644 add_executable(end2end_inproc_no_logging_test ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc -@@ -14765,7 +14076,7 @@ target_link_libraries(end2end_inproc_no_logging_test +@@ -14821,7 +14129,7 @@ target_link_libraries(end2end_inproc_no_logging_test endif() @@ -1011,7 +1015,7 @@ index 8b170fb..49be44f 100644 add_executable(end2end_inproc_test ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc -@@ -14957,7 +14268,7 @@ target_link_libraries(end2end_inproc_test +@@ -15013,7 +14321,7 @@ target_link_libraries(end2end_inproc_test endif() @@ -1020,7 +1024,7 @@ index 8b170fb..49be44f 100644 add_executable(end2end_ph2_no_logging_test ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc -@@ -15355,7 +14666,7 @@ target_link_libraries(end2end_posix_no_logging_test +@@ -15411,7 +14719,7 @@ target_link_libraries(end2end_posix_no_logging_test endif() @@ -1029,7 +1033,7 @@ index 8b170fb..49be44f 100644 add_executable(end2end_posix_test ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc -@@ -15547,7 +14858,7 @@ target_link_libraries(end2end_posix_test +@@ -15603,7 +14911,7 @@ target_link_libraries(end2end_posix_test endif() @@ -1038,7 +1042,25 @@ index 8b170fb..49be44f 100644 add_executable(end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc -@@ -18006,7 +17317,7 @@ target_link_libraries(gcp_authentication_filter_test +@@ -15680,7 +14988,7 @@ target_link_libraries(end2end_test + + + endif() +-if(gRPC_BUILD_TESTS) ++if(gRPC_CF_TESTS) + + add_executable(end2end_vrpc_no_logging_test + ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc +@@ -15784,7 +15092,7 @@ target_link_libraries(end2end_vrpc_no_logging_test + + + endif() +-if(gRPC_BUILD_TESTS) ++if(gRPC_CF_TESTS) + + add_executable(end2end_vrpc_test + ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc +@@ -18363,7 +17671,7 @@ target_link_libraries(gcp_authentication_filter_test endif() @@ -1047,7 +1069,7 @@ index 8b170fb..49be44f 100644 add_executable(generic_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc -@@ -18509,7 +17820,7 @@ target_link_libraries(grpc_authorization_policy_provider_test +@@ -18866,7 +18174,7 @@ target_link_libraries(grpc_authorization_policy_provider_test endif() @@ -1056,7 +1078,7 @@ index 8b170fb..49be44f 100644 add_executable(grpc_authz_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -19521,7 +18832,7 @@ target_link_libraries(grpclb_api_test +@@ -19876,7 +19184,7 @@ target_link_libraries(grpclb_api_test endif() @@ -1065,7 +1087,7 @@ index 8b170fb..49be44f 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(grpclb_end2end_test -@@ -20011,7 +19322,7 @@ target_link_libraries(headers_bad_client_test +@@ -20366,7 +19674,7 @@ target_link_libraries(headers_bad_client_test endif() @@ -1074,7 +1096,7 @@ index 8b170fb..49be44f 100644 add_executable(health_service_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.cc -@@ -20784,7 +20095,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -21138,7 +20446,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1083,7 +1105,7 @@ index 8b170fb..49be44f 100644 add_executable(hybrid_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc -@@ -24130,7 +23441,7 @@ target_link_libraries(memory_quota_test +@@ -24436,7 +23744,7 @@ target_link_libraries(memory_quota_test endif() @@ -1092,7 +1114,7 @@ index 8b170fb..49be44f 100644 add_executable(memory_usage_test src/core/lib/debug/trace.cc -@@ -25137,7 +24448,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -25485,7 +24793,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1101,7 +1123,7 @@ index 8b170fb..49be44f 100644 add_executable(orca_service_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_service.pb.cc -@@ -26613,7 +25924,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -26962,7 +26270,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1110,7 +1132,7 @@ index 8b170fb..49be44f 100644 add_executable(port_sharing_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -29015,7 +28326,7 @@ target_link_libraries(random_early_detection_test +@@ -29364,7 +28672,7 @@ target_link_libraries(random_early_detection_test endif() @@ -1119,7 +1141,7 @@ index 8b170fb..49be44f 100644 add_executable(raw_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc -@@ -29623,7 +28934,7 @@ target_link_libraries(resolve_address_using_native_resolver_test +@@ -30075,7 +29383,7 @@ target_link_libraries(resolve_address_using_native_resolver_test endif() @@ -1128,7 +1150,7 @@ index 8b170fb..49be44f 100644 add_executable(resource_quota_end2end_stress_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -29940,7 +29251,7 @@ target_link_libraries(ring_hash_test +@@ -30392,7 +29700,7 @@ target_link_libraries(ring_hash_test endif() @@ -1137,7 +1159,7 @@ index 8b170fb..49be44f 100644 add_executable(rls_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls.pb.cc -@@ -30950,7 +30261,7 @@ target_link_libraries(server_early_return_test +@@ -31402,7 +30710,7 @@ target_link_libraries(server_early_return_test endif() @@ -1146,7 +1168,7 @@ index 8b170fb..49be44f 100644 add_executable(server_interceptors_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -31228,7 +30539,7 @@ target_link_libraries(server_test +@@ -31680,7 +30988,7 @@ target_link_libraries(server_test endif() @@ -1155,7 +1177,16 @@ index 8b170fb..49be44f 100644 add_executable(service_config_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc -@@ -31929,7 +31240,7 @@ target_link_libraries(sorted_pack_test +@@ -31798,7 +31106,7 @@ target_link_libraries(service_config_test + + + endif() +-if(gRPC_BUILD_TESTS) ++if(gRPC_CF_TESTS) + + add_executable(session_end2end_test + ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc +@@ -32453,7 +31761,7 @@ target_link_libraries(sorted_pack_test endif() @@ -1164,7 +1195,7 @@ index 8b170fb..49be44f 100644 add_executable(spiffe_bundle_map_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -33703,7 +33014,7 @@ target_link_libraries(test_core_credentials_transport_ssl_ssl_credentials_test +@@ -34228,7 +33536,7 @@ target_link_libraries(test_core_credentials_transport_ssl_ssl_credentials_test endif() @@ -1173,7 +1204,7 @@ index 8b170fb..49be44f 100644 add_executable(test_core_credentials_transport_tls_tls_credentials_test test/core/credentials/transport/tls/tls_credentials_test.cc -@@ -34282,7 +33593,7 @@ target_link_libraries(test_cpp_client_credentials_test +@@ -34807,7 +34115,7 @@ target_link_libraries(test_cpp_client_credentials_test endif() @@ -1182,7 +1213,7 @@ index 8b170fb..49be44f 100644 add_executable(test_cpp_end2end_ssl_credentials_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -34354,7 +33665,7 @@ target_link_libraries(test_cpp_end2end_ssl_credentials_test +@@ -34879,7 +34187,7 @@ target_link_libraries(test_cpp_end2end_ssl_credentials_test endif() @@ -1191,7 +1222,7 @@ index 8b170fb..49be44f 100644 add_executable(test_cpp_end2end_tls_credentials_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -35350,7 +34661,7 @@ target_link_libraries(tls_key_export_test +@@ -35875,7 +35183,7 @@ target_link_libraries(tls_key_export_test endif() diff --git a/recipe/patches/0011-build-grpcio-tools-from-source.patch b/recipe/patches/0011-build-grpcio-tools-from-source.patch index e929dd10..78959b15 100644 --- a/recipe/patches/0011-build-grpcio-tools-from-source.patch +++ b/recipe/patches/0011-build-grpcio-tools-from-source.patch @@ -1,18 +1,20 @@ -From a794018ce987609c5be112b1c4a28ba6371fd97b Mon Sep 17 00:00:00 2001 +From 1c44116116ab6f4682e44ba54655be3217e464b3 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 4 Mar 2025 08:53:30 +1100 -Subject: [PATCH 11/17] build grpcio-tools from source +Subject: [PATCH 11/18] build grpcio-tools from source --- .../python/grpcio_tools/protoc_lib_deps.py | 30 ++++++------ + .../grpcio_tools/protoc_lib_deps.py.rej | 39 +++++++++++++++ tools/distrib/python/grpcio_tools/setup.py | 49 ++++++++++++++----- - 2 files changed, 51 insertions(+), 28 deletions(-) + 3 files changed, 90 insertions(+), 28 deletions(-) + create mode 100644 tools/distrib/python/grpcio_tools/protoc_lib_deps.py.rej diff --git a/tools/distrib/python/grpcio_tools/protoc_lib_deps.py b/tools/distrib/python/grpcio_tools/protoc_lib_deps.py -index 21245be..8aeb7eb 100644 +index 8a42929c90..40ec0fc61d 100644 --- a/tools/distrib/python/grpcio_tools/protoc_lib_deps.py +++ b/tools/distrib/python/grpcio_tools/protoc_lib_deps.py -@@ -383,21 +383,21 @@ CC_FILES=[ +@@ -387,21 +387,21 @@ CC_FILES=[ ] PROTO_FILES=[ @@ -51,7 +53,7 @@ index 21245be..8aeb7eb 100644 CC_INCLUDES=[ diff --git a/tools/distrib/python/grpcio_tools/protoc_lib_deps.py.rej b/tools/distrib/python/grpcio_tools/protoc_lib_deps.py.rej new file mode 100644 -index 0000000..e2a9c30 +index 0000000000..e2a9c309ab --- /dev/null +++ b/tools/distrib/python/grpcio_tools/protoc_lib_deps.py.rej @@ -0,0 +1,39 @@ @@ -95,7 +97,7 @@ index 0000000..e2a9c30 + + CC_INCLUDES=[ diff --git a/tools/distrib/python/grpcio_tools/setup.py b/tools/distrib/python/grpcio_tools/setup.py -index 7370e97..3a8bb79 100644 +index f0d759dafb..32b5a4c92a 100644 --- a/tools/distrib/python/grpcio_tools/setup.py +++ b/tools/distrib/python/grpcio_tools/setup.py @@ -15,6 +15,7 @@ diff --git a/recipe/patches/0012-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch b/recipe/patches/0012-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch index f6a89ea9..9fef44d8 100644 --- a/recipe/patches/0012-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch +++ b/recipe/patches/0012-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch @@ -1,7 +1,7 @@ -From 3edfe3048d631b8c52acd5bf1b3233874c82482d Mon Sep 17 00:00:00 2001 +From 1c6ff996b00e38eb0f069a4a9b3640747e372a65 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 5 Mar 2025 13:21:01 +1100 -Subject: [PATCH 12/17] reduce grpc symbol explosion with autogenerated export +Subject: [PATCH 12/18] reduce grpc symbol explosion with autogenerated export definitions file Basically, WINDOWS_EXPORT_ALL_SYMBOLS is a nuclear option that includes all symbols @@ -38,10 +38,10 @@ other consumers end up linking to them. 1 file changed, 48 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 49be44f..e2d21c6 100644 +index 5b089f177f..64088d2a54 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -2452,6 +2452,30 @@ add_library(grpc +@@ -2457,6 +2457,30 @@ add_library(grpc src/core/xds/xds_client/xds_client.cc ) @@ -72,7 +72,7 @@ index 49be44f..e2d21c6 100644 target_compile_features(grpc PUBLIC cxx_std_17) set_target_properties(grpc PROPERTIES -@@ -3195,6 +3219,30 @@ add_library(grpc_unsecure +@@ -3201,6 +3225,30 @@ add_library(grpc_unsecure ${gRPC_ADDITIONAL_DLL_SRC} ) diff --git a/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch b/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch index 576d8bdb..1450f234 100644 --- a/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch +++ b/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch @@ -1,34 +1,35 @@ -From f2ebeb0672b8185fc0bd99f97bb1fc027f4f69b4 Mon Sep 17 00:00:00 2001 +From d0f338b1fcf3b909a04cecb29a594b57c0802b7c Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 2 Mar 2025 07:16:19 +1100 -Subject: [PATCH 13/17] update GRPC_DLL instances where necessary +Subject: [PATCH 13/18] update GRPC_DLL instances where necessary --- - include/grpc/event_engine/event_engine.h | 2 +- - src/core/config/core_configuration.h | 2 +- - src/core/credentials/call/json_util.h | 2 +- - src/core/credentials/transport/tls/spiffe_utils.h | 4 ++-- - src/core/ext/transport/chttp2/server/chttp2_server.h | 2 +- - src/core/ext/transport/inproc/inproc_transport.h | 2 +- + include/grpc/event_engine/event_engine.h | 2 +- + src/core/config/core_configuration.h | 2 +- + src/core/credentials/call/json_util.h | 2 +- + src/core/credentials/transport/tls/spiffe_utils.h | 4 ++-- + src/core/ext/transport/chttp2/server/chttp2_server.h | 2 +- + src/core/ext/transport/inproc/inproc_transport.h | 2 +- src/core/lib/channel/channel_args.h | 12 ++++++------ - src/core/lib/iomgr/endpoint.h | 2 +- - src/core/lib/debug/trace_flags.h | 2 +- - src/core/lib/experiments/config.h | 4 ++-- - src/core/lib/iomgr/iomgr.h | 2 +- - src/core/lib/iomgr/socket_mutator.h | 2 +- - src/core/lib/promise/activity.h | 2 +- - src/core/lib/resource_quota/thread_quota.h | 2 +- - src/core/lib/surface/call.h | 4 ++-- - src/core/lib/surface/completion_queue.h | 8 ++++---- - src/core/transport/auth_context.h | 2 +- - src/core/tsi/ssl_transport_security.h | 2 +- - src/core/util/json/json_reader.cc | 2 +- - src/core/util/json/json_reader.h | 2 +- - src/core/util/load_file.h | 2 +- - src/core/util/time.h | 4 ++-- - 22 files changed, 37 insertions(+), 37 deletions(-) + src/core/lib/debug/trace_flags.h | 2 +- + src/core/lib/experiments/config.h | 4 ++-- + src/core/lib/iomgr/endpoint.h | 2 +- + src/core/lib/iomgr/iomgr.h | 2 +- + src/core/lib/iomgr/socket_mutator.h | 2 +- + src/core/lib/promise/activity.h | 2 +- + src/core/lib/resource_quota/thread_quota.h | 2 +- + src/core/lib/surface/call.h | 4 ++-- + src/core/lib/surface/completion_queue.h | 8 ++++---- + src/core/transport/auth_context.h | 2 +- + src/core/tsi/ssl_transport_security.h | 2 +- + src/core/util/json/json_reader.cc | 2 +- + src/core/util/json/json_reader.h | 2 +- + src/core/util/load_file.h | 2 +- + src/core/util/time.h | 4 ++-- + 22 files changed, 34 insertions(+), 34 deletions(-) + diff --git a/include/grpc/event_engine/event_engine.h b/include/grpc/event_engine/event_engine.h -index 47bdc8f..db74428 100644 +index 47bdc8f7d7..db7442832c 100644 --- a/include/grpc/event_engine/event_engine.h +++ b/include/grpc/event_engine/event_engine.h @@ -148,7 +148,7 @@ class EventEngine : public std::enable_shared_from_this, @@ -41,7 +42,7 @@ index 47bdc8f..db74428 100644 /// Thin wrapper around a platform-specific sockaddr type. A sockaddr struct /// exists on all platforms that gRPC supports. diff --git a/src/core/config/core_configuration.h b/src/core/config/core_configuration.h -index a169f3e..64ec1c6 100644 +index a169f3efc2..64ec1c6964 100644 --- a/src/core/config/core_configuration.h +++ b/src/core/config/core_configuration.h @@ -40,7 +40,7 @@ namespace grpc_core { @@ -54,7 +55,7 @@ index a169f3e..64ec1c6 100644 CoreConfiguration(const CoreConfiguration&) = delete; CoreConfiguration& operator=(const CoreConfiguration&) = delete; diff --git a/src/core/credentials/call/json_util.h b/src/core/credentials/call/json_util.h -index da7ff0a..d1f6a52 100644 +index da7ff0a771..d1f6a52fdf 100644 --- a/src/core/credentials/call/json_util.h +++ b/src/core/credentials/call/json_util.h @@ -31,7 +31,7 @@ @@ -67,7 +68,7 @@ index da7ff0a..d1f6a52 100644 grpc_error_handle* error); diff --git a/src/core/credentials/transport/tls/spiffe_utils.h b/src/core/credentials/transport/tls/spiffe_utils.h -index 9bf4b6d..f4cdb63 100644 +index 9bf4b6dd59..f4cdb63489 100644 --- a/src/core/credentials/transport/tls/spiffe_utils.h +++ b/src/core/credentials/transport/tls/spiffe_utils.h @@ -80,7 +80,7 @@ class SpiffeBundleKey final { @@ -89,10 +90,10 @@ index 9bf4b6d..f4cdb63 100644 static const JsonLoaderInterface* JsonLoader(const JsonArgs&); void JsonPostLoad(const Json& json, const JsonArgs&, diff --git a/src/core/ext/transport/chttp2/server/chttp2_server.h b/src/core/ext/transport/chttp2/server/chttp2_server.h -index f0f50f9..193105a 100644 +index d1416b76dd..8880edc9c4 100644 --- a/src/core/ext/transport/chttp2/server/chttp2_server.h +++ b/src/core/ext/transport/chttp2/server/chttp2_server.h -@@ -234,7 +234,7 @@ class PassiveListenerImpl final : public PassiveListener { +@@ -243,7 +243,7 @@ class PassiveListenerImpl final : public PassiveListener { std::unique_ptr endpoint) override ABSL_LOCKS_EXCLUDED(mu_); @@ -102,7 +103,7 @@ index f0f50f9..193105a 100644 void ListenerDestroyed() ABSL_LOCKS_EXCLUDED(mu_); diff --git a/src/core/ext/transport/inproc/inproc_transport.h b/src/core/ext/transport/inproc/inproc_transport.h -index 05030d6..b1a9fe8 100644 +index 05030d6e40..b1a9fe8e9a 100644 --- a/src/core/ext/transport/inproc/inproc_transport.h +++ b/src/core/ext/transport/inproc/inproc_transport.h @@ -21,7 +21,7 @@ @@ -115,10 +116,10 @@ index 05030d6..b1a9fe8 100644 void* reserved); diff --git a/src/core/lib/channel/channel_args.h b/src/core/lib/channel/channel_args.h -index cfbc1b1..ee4414d 100644 +index 6450a9fa6a..727e938df4 100644 --- a/src/core/lib/channel/channel_args.h +++ b/src/core/lib/channel/channel_args.h -@@ -413,12 +413,12 @@ class ChannelArgs { +@@ -419,12 +419,12 @@ class ChannelArgs { using CPtr = std::unique_ptr; @@ -138,7 +139,7 @@ index cfbc1b1..ee4414d 100644 static ChannelArgs FromC(const grpc_channel_args* args); static ChannelArgs FromC(const grpc_channel_args& args) { diff --git a/src/core/lib/debug/trace_flags.h b/src/core/lib/debug/trace_flags.h -index 362f44a..a2be3f6 100644 +index 362f44ab25..a2be3f6080 100644 --- a/src/core/lib/debug/trace_flags.h +++ b/src/core/lib/debug/trace_flags.h @@ -50,7 +50,7 @@ extern DebugOnlyTraceFlag work_serializer_trace; @@ -151,7 +152,7 @@ index 362f44a..a2be3f6 100644 extern TraceFlag bdp_estimator_trace; extern TraceFlag call_trace; diff --git a/src/core/lib/experiments/config.h b/src/core/lib/experiments/config.h -index e74f7c6..8262e87 100644 +index e74f7c6b71..8262e87816 100644 --- a/src/core/lib/experiments/config.h +++ b/src/core/lib/experiments/config.h @@ -64,7 +64,7 @@ class ExperimentFlags { @@ -173,7 +174,7 @@ index e74f7c6..8262e87 100644 // Return true if experiment \a experiment_id is enabled. diff --git a/src/core/lib/iomgr/endpoint.h b/src/core/lib/iomgr/endpoint.h -index 77fb0d3..0497388 100644 +index 77fb0d3731..049738860b 100644 --- a/src/core/lib/iomgr/endpoint.h +++ b/src/core/lib/iomgr/endpoint.h @@ -87,7 +87,7 @@ void grpc_endpoint_write( @@ -186,7 +187,7 @@ index 77fb0d3..0497388 100644 // Add an endpoint to a pollset or pollset_set, so that when the pollset is // polled, events from this endpoint are considered diff --git a/src/core/lib/iomgr/iomgr.h b/src/core/lib/iomgr/iomgr.h -index 280471f..506c6e3 100644 +index 280471fae8..506c6e3682 100644 --- a/src/core/lib/iomgr/iomgr.h +++ b/src/core/lib/iomgr/iomgr.h @@ -42,7 +42,7 @@ void grpc_iomgr_shutdown_background_closure(); @@ -199,7 +200,7 @@ index 280471f..506c6e3 100644 /// Returns true if the caller is a worker thread for any background poller. bool grpc_iomgr_is_any_background_poller_thread(); diff --git a/src/core/lib/iomgr/socket_mutator.h b/src/core/lib/iomgr/socket_mutator.h -index 9ce180b..17f4846 100644 +index 9ce180b345..17f484660c 100644 --- a/src/core/lib/iomgr/socket_mutator.h +++ b/src/core/lib/iomgr/socket_mutator.h @@ -67,7 +67,7 @@ void grpc_socket_mutator_init(grpc_socket_mutator* mutator, @@ -212,7 +213,7 @@ index 9ce180b..17f4846 100644 /// Perform the file descriptor mutation operation of \a mutator on \a fd bool grpc_socket_mutator_mutate_fd(grpc_socket_mutator* mutator, int fd, diff --git a/src/core/lib/promise/activity.h b/src/core/lib/promise/activity.h -index 9de5780..9f63417 100644 +index 9de57809a5..9f63417587 100644 --- a/src/core/lib/promise/activity.h +++ b/src/core/lib/promise/activity.h @@ -75,7 +75,7 @@ struct Unwakeable final : public Wakeable { @@ -225,7 +226,7 @@ index 9de5780..9f63417 100644 static Unwakeable* unwakeable() { return NoDestructSingleton::Get(); diff --git a/src/core/lib/resource_quota/thread_quota.h b/src/core/lib/resource_quota/thread_quota.h -index 35a0514..98bd1e6 100644 +index 35a0514089..98bd1e68c1 100644 --- a/src/core/lib/resource_quota/thread_quota.h +++ b/src/core/lib/resource_quota/thread_quota.h @@ -45,7 +45,7 @@ class ThreadQuota : public RefCounted { @@ -238,10 +239,10 @@ index 35a0514..98bd1e6 100644 private: Mutex mu_; diff --git a/src/core/lib/surface/call.h b/src/core/lib/surface/call.h -index 76a9476..ec6d7f5 100644 +index 348b2f71b2..ae19026c3c 100644 --- a/src/core/lib/surface/call.h +++ b/src/core/lib/surface/call.h -@@ -316,9 +316,9 @@ grpc_compression_algorithm grpc_call_compression_for_level( +@@ -325,9 +325,9 @@ grpc_compression_algorithm grpc_call_compression_for_level( // Did this client call receive a trailers-only response // TODO(markdroth): This is currently available only to the C++ API. // Move to surface API if requested by other languages. @@ -254,7 +255,7 @@ index 76a9476..ec6d7f5 100644 #endif // GRPC_SRC_CORE_LIB_SURFACE_CALL_H diff --git a/src/core/lib/surface/completion_queue.h b/src/core/lib/surface/completion_queue.h -index d99c7a2..d68ce75 100644 +index d99c7a248c..d68ce75f8c 100644 --- a/src/core/lib/surface/completion_queue.h +++ b/src/core/lib/surface/completion_queue.h @@ -55,8 +55,8 @@ void grpc_cq_internal_unref(grpc_completion_queue* cq, const char* reason, @@ -283,7 +284,7 @@ index d99c7a2..d68ce75 100644 void (*done)(void* done_arg, grpc_cq_completion* storage), void* done_arg, grpc_cq_completion* storage, diff --git a/src/core/transport/auth_context.h b/src/core/transport/auth_context.h -index 33c6dc6..22a61a1 100644 +index 33c6dc6057..22a61a1a99 100644 --- a/src/core/transport/auth_context.h +++ b/src/core/transport/auth_context.h @@ -49,7 +49,7 @@ struct grpc_auth_property_array { @@ -296,7 +297,7 @@ index 33c6dc6..22a61a1 100644 #define GRPC_AUTH_CONTEXT_ARG "grpc.auth_context" diff --git a/src/core/tsi/ssl_transport_security.h b/src/core/tsi/ssl_transport_security.h -index 7626a43..cddc0f9 100644 +index 7626a4313e..cddc0f9ddc 100644 --- a/src/core/tsi/ssl_transport_security.h +++ b/src/core/tsi/ssl_transport_security.h @@ -461,7 +461,7 @@ tsi_result tsi_ssl_get_cert_chain_contents(STACK_OF(X509) * peer_chain, @@ -309,7 +310,7 @@ index 7626a43..cddc0f9 100644 #endif // GRPC_SRC_CORE_TSI_SSL_TRANSPORT_SECURITY_H diff --git a/src/core/util/json/json_reader.cc b/src/core/util/json/json_reader.cc -index d422cbb..795e355 100644 +index d422cbb26a..795e355b57 100644 --- a/src/core/util/json/json_reader.cc +++ b/src/core/util/json/json_reader.cc @@ -942,7 +942,7 @@ absl::StatusOr JsonReader::Parse(absl::string_view input) { @@ -322,7 +323,7 @@ index d422cbb..795e355 100644 } diff --git a/src/core/util/json/json_reader.h b/src/core/util/json/json_reader.h -index 7ba5220..c92f9c2 100644 +index 7ba5220a5e..c92f9c2d7c 100644 --- a/src/core/util/json/json_reader.h +++ b/src/core/util/json/json_reader.h @@ -26,7 +26,7 @@ @@ -335,7 +336,7 @@ index 7ba5220..c92f9c2 100644 } // namespace grpc_core diff --git a/src/core/util/load_file.h b/src/core/util/load_file.h -index 26163f5..8efaf08 100644 +index 26163f5100..8efaf085e6 100644 --- a/src/core/util/load_file.h +++ b/src/core/util/load_file.h @@ -26,7 +26,7 @@ namespace grpc_core { @@ -348,7 +349,7 @@ index 26163f5..8efaf08 100644 } // namespace grpc_core diff --git a/src/core/util/time.h b/src/core/util/time.h -index 1de2b4f..209f23a 100644 +index 1de2b4ff99..209f23af56 100644 --- a/src/core/util/time.h +++ b/src/core/util/time.h @@ -104,7 +104,7 @@ class Timestamp { diff --git a/recipe/patches/0014-use-protobuf-s-libutf8_range.patch b/recipe/patches/0014-use-protobuf-s-libutf8_range.patch index fab082e3..f2e86ac1 100644 --- a/recipe/patches/0014-use-protobuf-s-libutf8_range.patch +++ b/recipe/patches/0014-use-protobuf-s-libutf8_range.patch @@ -1,17 +1,17 @@ -From 6bf924a082559c50deb89c55d89e134c8ec59006 Mon Sep 17 00:00:00 2001 +From 45194add7cc7c18f7f92acf7d754a93a361b415b Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 10 Jan 2026 20:43:11 +1100 -Subject: [PATCH 14/17] use protobuf's libutf8_range +Subject: [PATCH 14/18] use protobuf's libutf8_range --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index e2d21c6..a9acf34 100644 +index 64088d2a54..65b5e0a6ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -5098,7 +5098,7 @@ target_include_directories(grpc_plugin_support +@@ -5105,7 +5105,7 @@ target_include_directories(grpc_plugin_support ) target_link_libraries(grpc_plugin_support ${_gRPC_ALLTARGETS_LIBRARIES} diff --git a/recipe/patches/0015-disable-grpc-_unsecure.patch b/recipe/patches/0015-disable-grpc-_unsecure.patch index f028e4b9..29bd3d69 100644 --- a/recipe/patches/0015-disable-grpc-_unsecure.patch +++ b/recipe/patches/0015-disable-grpc-_unsecure.patch @@ -1,7 +1,7 @@ -From 16f407dec4dc5d01d22f88a52673dd62811cdb38 Mon Sep 17 00:00:00 2001 +From ae445f0321c40a8e4b6f4878175abd6df79e828c Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 11 Jan 2026 22:45:25 +1100 -Subject: [PATCH 15/17] disable grpc{,++}_unsecure +Subject: [PATCH 15/18] disable grpc{,++}_unsecure there's no reason to ship the unsecure version (which has almost fully duplicated sources to grpc, except the parts that pull in openssl etc.) if we always bundle the full variant anyway. Same for @@ -19,10 +19,10 @@ the avoidance of which is the entire point of `grpc_unsecure`. 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index a9acf34..59cb355 100644 +index 65b5e0a6ab..0832c74900 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -2689,7 +2689,7 @@ endif() +@@ -2694,7 +2694,7 @@ endif() endif() @@ -31,7 +31,7 @@ index a9acf34..59cb355 100644 add_library(grpc_test_util_unsecure test/core/event_engine/test_init.cc -@@ -2765,6 +2765,7 @@ endif() +@@ -2770,6 +2770,7 @@ endif() endif() @@ -39,7 +39,7 @@ index a9acf34..59cb355 100644 add_library(grpc_unsecure src/core/call/call_arena_allocator.cc src/core/call/call_filters.cc -@@ -3309,6 +3310,7 @@ target_link_libraries(grpc_unsecure +@@ -3315,6 +3316,7 @@ target_link_libraries(grpc_unsecure if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC) target_link_libraries(grpc_unsecure PUBLIC "-framework CoreFoundation") endif() @@ -47,7 +47,7 @@ index a9acf34..59cb355 100644 foreach(_hdr include/grpc/byte_buffer.h -@@ -3369,7 +3371,7 @@ foreach(_hdr +@@ -3375,7 +3377,7 @@ foreach(_hdr endforeach() @@ -56,7 +56,7 @@ index a9acf34..59cb355 100644 install(TARGETS grpc_unsecure EXPORT gRPCTargets RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} -@@ -4294,6 +4296,7 @@ target_link_libraries(grpc++_test_util +@@ -4300,6 +4302,7 @@ target_link_libraries(grpc++_test_util endif() @@ -64,7 +64,7 @@ index a9acf34..59cb355 100644 add_library(grpc++_unsecure src/core/client_channel/virtual_channel.cc src/cpp/client/call_context_registry.cc -@@ -4388,6 +4391,7 @@ target_link_libraries(grpc++_unsecure +@@ -4395,6 +4398,7 @@ target_link_libraries(grpc++_unsecure grpc_unsecure ${_gRPC_PROTOBUF_LIBRARIES} ) @@ -72,7 +72,7 @@ index a9acf34..59cb355 100644 foreach(_hdr include/grpc++/alarm.h -@@ -4610,7 +4614,7 @@ foreach(_hdr +@@ -4617,7 +4621,7 @@ foreach(_hdr endforeach() @@ -81,7 +81,7 @@ index a9acf34..59cb355 100644 install(TARGETS grpc++_unsecure EXPORT gRPCTargets RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} -@@ -5564,7 +5568,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -5573,7 +5577,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -90,7 +90,7 @@ index a9acf34..59cb355 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(address_sorting_test_unsecure -@@ -6195,7 +6199,7 @@ target_link_libraries(admin_services_end2end_test +@@ -6204,7 +6208,7 @@ target_link_libraries(admin_services_end2end_test endif() @@ -99,7 +99,7 @@ index a9acf34..59cb355 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(alarm_test -@@ -16406,7 +16410,7 @@ target_link_libraries(filter_fusion_test +@@ -16756,7 +16760,7 @@ target_link_libraries(filter_fusion_test endif() @@ -108,7 +108,7 @@ index a9acf34..59cb355 100644 add_executable(filter_test_test ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc -@@ -25342,7 +25346,7 @@ target_link_libraries(parser_test +@@ -25687,7 +25691,7 @@ target_link_libraries(parser_test endif() @@ -117,7 +117,7 @@ index a9acf34..59cb355 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(party_mpsc_test -@@ -25386,7 +25390,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -25731,7 +25735,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -126,7 +126,7 @@ index a9acf34..59cb355 100644 add_executable(party_test test/core/promise/party_test.cc -@@ -29920,7 +29924,7 @@ target_link_libraries(server_builder_plugin_test +@@ -30369,7 +30373,7 @@ target_link_libraries(server_builder_plugin_test endif() @@ -135,7 +135,7 @@ index a9acf34..59cb355 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(server_builder_test -@@ -29995,7 +29999,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -30444,7 +30448,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -144,7 +144,7 @@ index a9acf34..59cb355 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(server_builder_with_socket_mutator_test -@@ -53574,6 +53578,7 @@ generate_pkgconfig( +@@ -54093,6 +54097,7 @@ generate_pkgconfig( "-laddress_sorting" "grpc.pc") @@ -152,7 +152,7 @@ index a9acf34..59cb355 100644 # grpc_unsecure .pc file generate_pkgconfig( "gRPC unsecure" -@@ -53584,6 +53589,7 @@ generate_pkgconfig( +@@ -54103,6 +54108,7 @@ generate_pkgconfig( "-lgrpc_unsecure -lupb" "-laddress_sorting" "grpc_unsecure.pc") @@ -160,7 +160,7 @@ index a9acf34..59cb355 100644 # grpc++ .pc file generate_pkgconfig( -@@ -53596,6 +53602,7 @@ generate_pkgconfig( +@@ -54115,6 +54121,7 @@ generate_pkgconfig( "-laddress_sorting" "grpc++.pc") @@ -168,7 +168,7 @@ index a9acf34..59cb355 100644 # grpc++_unsecure .pc file generate_pkgconfig( "gRPC++ unsecure" -@@ -53606,6 +53613,7 @@ generate_pkgconfig( +@@ -54125,6 +54132,7 @@ generate_pkgconfig( "-lgrpc++_unsecure -lupb" "-laddress_sorting" "grpc++_unsecure.pc") diff --git a/recipe/patches/0016-break-out-_initialize_absl-into-separate-cython-modu.patch b/recipe/patches/0016-break-out-_initialize_absl-into-separate-cython-modu.patch index d2a3e983..408d308b 100644 --- a/recipe/patches/0016-break-out-_initialize_absl-into-separate-cython-modu.patch +++ b/recipe/patches/0016-break-out-_initialize_absl-into-separate-cython-modu.patch @@ -1,7 +1,7 @@ -From 422f418559090eb91ff1609b2a7547ff9fee8b9a Mon Sep 17 00:00:00 2001 +From badad8b0e37085d42c0065a2f811c1ea2d8958e1 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 21 Feb 2026 14:29:28 +1100 -Subject: [PATCH 16/17] break out _initialize_absl into separate cython module +Subject: [PATCH 16/18] break out _initialize_absl into separate cython module --- setup.py | 3 ++- @@ -15,7 +15,7 @@ Subject: [PATCH 16/17] break out _initialize_absl into separate cython module rename src/python/grpcio/grpc/_cython/{_cygrpc/absl.pyx.pxi => cygrpc_absl_init.pyx} (98%) diff --git a/setup.py b/setup.py -index dbd69dc..ed32051 100644 +index dbd69dc50e..ed32051472 100644 --- a/setup.py +++ b/setup.py @@ -308,7 +308,7 @@ if BUILD_WITH_STATIC_LIBSTDCXX: @@ -36,12 +36,12 @@ index dbd69dc..ed32051 100644 libraries=list(EXTENSION_LIBRARIES), define_macros=list(DEFINE_MACROS), diff --git a/src/python/grpcio/grpc/__init__.py b/src/python/grpcio/grpc/__init__.py -index e053e4f..5cbf218 100644 +index efee8bcfcb..3d872c73dc 100644 --- a/src/python/grpcio/grpc/__init__.py +++ b/src/python/grpcio/grpc/__init__.py -@@ -19,6 +19,9 @@ import enum - import logging - import sys +@@ -21,6 +21,9 @@ import sys + import typing + from typing import Any, Protocol +# ensure _initialize_absl() gets called before anything else, c.f. #38703 +import grpc._cython.cygrpc_absl_init @@ -50,7 +50,7 @@ index e053e4f..5cbf218 100644 from grpc._cython import cygrpc as _cygrpc from grpc._runtime_protos import protos diff --git a/src/python/grpcio/grpc/_cython/cygrpc.pxd b/src/python/grpcio/grpc/_cython/cygrpc.pxd -index 2cf29d0..38d5500 100644 +index 2cf29d0816..38d5500ae4 100644 --- a/src/python/grpcio/grpc/_cython/cygrpc.pxd +++ b/src/python/grpcio/grpc/_cython/cygrpc.pxd @@ -17,8 +17,6 @@ cimport cpython @@ -63,7 +63,7 @@ index 2cf29d0..38d5500 100644 include "_cygrpc/call.pxd.pxi" include "_cygrpc/channel.pxd.pxi" diff --git a/src/python/grpcio/grpc/_cython/cygrpc.pyx b/src/python/grpcio/grpc/_cython/cygrpc.pyx -index b3acae4..79cd0f8 100644 +index b3acae4aa3..79cd0f878d 100644 --- a/src/python/grpcio/grpc/_cython/cygrpc.pyx +++ b/src/python/grpcio/grpc/_cython/cygrpc.pyx @@ -37,7 +37,6 @@ _LOGGER = logging.getLogger(__name__) @@ -82,7 +82,7 @@ diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/absl.pyx.pxi b/src/python/gr similarity index 98% rename from src/python/grpcio/grpc/_cython/_cygrpc/absl.pyx.pxi rename to src/python/grpcio/grpc/_cython/cygrpc_absl_init.pyx -index f38a8f5..859bd06 100644 +index f38a8f5b57..859bd062f1 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/absl.pyx.pxi +++ b/src/python/grpcio/grpc/_cython/cygrpc_absl_init.pyx @@ -12,6 +12,7 @@ diff --git a/recipe/patches/0017-fix-double-metric-registration-across-shared-librari.patch b/recipe/patches/0017-fix-double-metric-registration-across-shared-librari.patch deleted file mode 100644 index 17d86dc9..00000000 --- a/recipe/patches/0017-fix-double-metric-registration-across-shared-librari.patch +++ /dev/null @@ -1,156 +0,0 @@ -From 9d23935a1162f212cb94752525bc644d742b27b9 Mon Sep 17 00:00:00 2001 -From: "H. Vetinari" -Date: Fri, 20 Mar 2026 16:40:03 +1100 -Subject: [PATCH 17/17] fix double metric registration across shared libraries - (libgrpc/libgrpc++) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -ResourceQuotaDomain's 5 metrics were defined as `static inline` data -members in telemetry.h. Each DSO that transitively includes this header -(via memory_quota.h) gets its own copy of the initializers, causing -duplicate registration in InstrumentIndex when both libgrpc.so and -libgrpc++.so are loaded — even though libgrpc++ never uses the metrics. - -Convert to function-local statics (Meyers singletons), which are only -initialized on first call. Since libgrpc++ never calls these methods, -no registration occurs there. - -Co-Authored-By: Claude Opus 4.6 ---- - .../chttp2/transport/chttp2_transport.cc | 4 +- - .../ext/transport/chttp2/transport/parsing.cc | 2 +- - src/core/lib/resource_quota/memory_quota.cc | 4 +- - src/core/lib/resource_quota/telemetry.h | 67 ++++++++++++------- - 4 files changed, 49 insertions(+), 28 deletions(-) - -diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc -index 0a7828b..6744f46 100644 ---- a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc -+++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc -@@ -3431,7 +3431,7 @@ static void benign_reclaimer_locked( - // Channel with no active streams: send a goaway to try and make it - // disconnect cleanly - t->resource_quota_telemetry_storage->Increment( -- grpc_core::ResourceQuotaDomain::kConnectionsDropped); -+ grpc_core::ResourceQuotaDomain::kConnectionsDropped()); - GRPC_TRACE_LOG(resource_quota, INFO) - << "HTTP2: " << t->peer_string.as_string_view() - << " - send goaway to free memory"; -@@ -3463,7 +3463,7 @@ static void destructive_reclaimer_locked( - << "HTTP2: " << t->peer_string.as_string_view() - << " - abandon stream id " << s->id; - t->resource_quota_telemetry_storage->Increment( -- grpc_core::ResourceQuotaDomain::kCallsDropped); -+ grpc_core::ResourceQuotaDomain::kCallsDropped()); - grpc_chttp2_cancel_stream( - t.get(), s, - grpc_error_set_int( -diff --git a/src/core/ext/transport/chttp2/transport/parsing.cc b/src/core/ext/transport/chttp2/transport/parsing.cc -index 46d4419..05696d8 100644 ---- a/src/core/ext/transport/chttp2/transport/parsing.cc -+++ b/src/core/ext/transport/chttp2/transport/parsing.cc -@@ -676,7 +676,7 @@ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t, - // We have more streams allocated than we'd like, so apply some pushback - // by refusing this stream. - t->memory_owner.telemetry_storage()->Increment( -- grpc_core::ResourceQuotaDomain::kCallsRejected); -+ grpc_core::ResourceQuotaDomain::kCallsRejected()); - ++t->num_pending_induced_frames; - grpc_slice_buffer_add( - &t->qbuf, grpc_chttp2_rst_stream_create( -diff --git a/src/core/lib/resource_quota/memory_quota.cc b/src/core/lib/resource_quota/memory_quota.cc -index 3f2521a..4e06f9d 100644 ---- a/src/core/lib/resource_quota/memory_quota.cc -+++ b/src/core/lib/resource_quota/memory_quota.cc -@@ -717,9 +717,9 @@ BasicMemoryQuota::PressureInfo BasicMemoryQuota::GetPressureInfo() { - - void BasicMemoryQuota::PopulateGaugeData(GaugeSink& sink) { - auto pressure_info = GetPressureInfo(); -- sink.Set(ResourceQuotaDomain::kInstantaneousMemoryPressure, -+ sink.Set(ResourceQuotaDomain::kInstantaneousMemoryPressure(), - pressure_info.instantaneous_pressure); -- sink.Set(ResourceQuotaDomain::kMemoryPressureControlValue, -+ sink.Set(ResourceQuotaDomain::kMemoryPressureControlValue(), - pressure_info.pressure_control_value); - } - -diff --git a/src/core/lib/resource_quota/telemetry.h b/src/core/lib/resource_quota/telemetry.h -index 058471e..e16bb53 100644 ---- a/src/core/lib/resource_quota/telemetry.h -+++ b/src/core/lib/resource_quota/telemetry.h -@@ -25,29 +25,50 @@ class ResourceQuotaDomain final : public InstrumentDomain { - using Backend = HighContentionBackend; - static constexpr absl::string_view kName = "resource_quota"; - -- static inline const auto kCallsDropped = RegisterCounter( -- "grpc.resource_quota.calls_dropped", -- "EXPERIMENTAL. Number of calls dropped due to resource quota " -- "exceeded", -- "calls"); -- static inline const auto kCallsRejected = RegisterCounter( -- "grpc.resource_quota.calls_rejected", -- "EXPERIMENTAL. Number of calls rejected due to resource quota " -- "exceeded", -- "calls"); -- static inline const auto kConnectionsDropped = RegisterCounter( -- "grpc.resource_quota.connections_dropped", -- "EXPERIMENTAL. Number of connections dropped due to resource quota " -- "exceeded", -- "connections"); -- static inline const auto kInstantaneousMemoryPressure = RegisterDoubleGauge( -- "grpc.resource_quota.instantaneous_memory_pressure", -- "The current instantaneously measured memory pressure.", "ratio"); -- static inline const auto kMemoryPressureControlValue = RegisterDoubleGauge( -- "grpc.resource_quota.memory_pressure_control_value", -- "A control value that can be used to scale buffer sizes up or down to " -- "adjust memory pressure to our target set point.", -- "ratio"); -+ // Use function-local statics (Meyers singletons) instead of static inline -+ // data members to ensure lazy initialization on first use. This avoids -+ // duplicate metric registration when the header is transitively included by -+ // translation units compiled into different shared libraries (e.g. libgrpc -+ // and libgrpc++), where each DSO's .init_array would otherwise run its own -+ // copy of the static inline initializers. -+ static const auto& kCallsDropped() { -+ static const auto handle = RegisterCounter( -+ "grpc.resource_quota.calls_dropped", -+ "EXPERIMENTAL. Number of calls dropped due to resource quota " -+ "exceeded", -+ "calls"); -+ return handle; -+ } -+ static const auto& kCallsRejected() { -+ static const auto handle = RegisterCounter( -+ "grpc.resource_quota.calls_rejected", -+ "EXPERIMENTAL. Number of calls rejected due to resource quota " -+ "exceeded", -+ "calls"); -+ return handle; -+ } -+ static const auto& kConnectionsDropped() { -+ static const auto handle = RegisterCounter( -+ "grpc.resource_quota.connections_dropped", -+ "EXPERIMENTAL. Number of connections dropped due to resource quota " -+ "exceeded", -+ "connections"); -+ return handle; -+ } -+ static const auto& kInstantaneousMemoryPressure() { -+ static const auto handle = RegisterDoubleGauge( -+ "grpc.resource_quota.instantaneous_memory_pressure", -+ "The current instantaneously measured memory pressure.", "ratio"); -+ return handle; -+ } -+ static const auto& kMemoryPressureControlValue() { -+ static const auto handle = RegisterDoubleGauge( -+ "grpc.resource_quota.memory_pressure_control_value", -+ "A control value that can be used to scale buffer sizes up or down to " -+ "adjust memory pressure to our target set point.", -+ "ratio"); -+ return handle; -+ } - }; - - } // namespace grpc_core diff --git a/recipe/patches/0018-silence-absl-MutexLock-pointer-deprecation-warnings.patch b/recipe/patches/0017-silence-absl-MutexLock-pointer-deprecation-warnings.patch similarity index 91% rename from recipe/patches/0018-silence-absl-MutexLock-pointer-deprecation-warnings.patch rename to recipe/patches/0017-silence-absl-MutexLock-pointer-deprecation-warnings.patch index 888dbcfa..30b888e4 100644 --- a/recipe/patches/0018-silence-absl-MutexLock-pointer-deprecation-warnings.patch +++ b/recipe/patches/0017-silence-absl-MutexLock-pointer-deprecation-warnings.patch @@ -1,7 +1,7 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From 4bfb171bec6f2d306e80ef08f30252aa343e75d6 Mon Sep 17 00:00:00 2001 From: Julien Jerphanion -Date: Mon, 9 Jun 2026 12:00:00 +0000 -Subject: [PATCH 18/18] silence absl MutexLock pointer deprecation warnings +Date: Tue, 9 Jun 2026 12:00:00 +0000 +Subject: [PATCH 17/18] silence absl MutexLock pointer deprecation warnings Newer abseil versions deprecate absl::MutexLock(Mutex*) in favor of MutexLock(Mutex&). gRPC still uses the pointer form in hundreds of @@ -10,9 +10,9 @@ places, which spams -Wdeprecated-declarations during test builds. Provide thin grpc_core/grpc::internal wrappers that accept Mutex* but delegate to absl's reference-taking constructors. --- - include/grpcpp/impl/sync.h | 31 +++++++++++++++++++++++++++++-- - src/core/util/sync.h | 31 +++++++++++++++++++++++++++++-- - 2 files changed, 58 insertions(+), 4 deletions(-) + include/grpcpp/impl/sync.h | 33 +++++++++++++++++++++++++++++++-- + src/core/util/sync.h | 33 +++++++++++++++++++++++++++++++-- + 2 files changed, 62 insertions(+), 4 deletions(-) diff --git a/include/grpcpp/impl/sync.h b/include/grpcpp/impl/sync.h index dcd4dcd1e8..66001ec63e 100644 diff --git a/recipe/patches/0019-silence-absl-Mutex-Lock-Unlock-deprecation-warnings.patch b/recipe/patches/0018-silence-absl-Mutex-Lock-Unlock-deprecation-warnings.patch similarity index 88% rename from recipe/patches/0019-silence-absl-Mutex-Lock-Unlock-deprecation-warnings.patch rename to recipe/patches/0018-silence-absl-Mutex-Lock-Unlock-deprecation-warnings.patch index 716c5f09..1d537784 100644 --- a/recipe/patches/0019-silence-absl-Mutex-Lock-Unlock-deprecation-warnings.patch +++ b/recipe/patches/0018-silence-absl-Mutex-Lock-Unlock-deprecation-warnings.patch @@ -1,7 +1,7 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From 5d4f3aa5722da29f3bfe62832a028d95400acdc1 Mon Sep 17 00:00:00 2001 From: Julien Jerphanion -Date: Mon, 9 Jun 2026 12:30:00 +0000 -Subject: [PATCH 19/19] silence absl Mutex Lock/Unlock deprecation warnings +Date: Tue, 9 Jun 2026 12:30:00 +0000 +Subject: [PATCH 18/18] silence absl Mutex Lock/Unlock deprecation warnings Newer abseil versions deprecate absl::Mutex::Lock()/Unlock()/TryLock() in favor of lock()/unlock()/try_lock(). gRPC still uses the CamelCase names @@ -18,7 +18,7 @@ gpr_mu compatibility layer. 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/include/grpcpp/impl/sync.h b/include/grpcpp/impl/sync.h -index 66001ec63e..a1b2c3d4e5 100644 +index 66001ec63e..148ccc3d14 100644 --- a/include/grpcpp/impl/sync.h +++ b/include/grpcpp/impl/sync.h @@ -47,7 +47,16 @@ namespace internal { @@ -40,7 +40,7 @@ index 66001ec63e..a1b2c3d4e5 100644 // absl deprecated MutexLock(Mutex*) in favor of MutexLock(Mutex&), but grpc diff --git a/src/core/util/sync.h b/src/core/util/sync.h -index 33c7c13a73..b2c3d4e5f6 100644 +index 33c7c13a73..2d8d8ab136 100644 --- a/src/core/util/sync.h +++ b/src/core/util/sync.h @@ -43,7 +43,19 @@ namespace grpc_core { @@ -65,10 +65,12 @@ index 33c7c13a73..b2c3d4e5f6 100644 // absl deprecated MutexLock(Mutex*) in favor of MutexLock(Mutex&), but grpc diff --git a/src/core/util/sync_abseil.cc b/src/core/util/sync_abseil.cc -index 1234567890..abcdef1234 100644 +index d1cd7f71a3..8a38a24497 100644 --- a/src/core/util/sync_abseil.cc +++ b/src/core/util/sync_abseil.cc -@@ -45,11 +45,11 @@ void gpr_mu_destroy(gpr_mu* mu) { +@@ -43,15 +43,15 @@ void gpr_mu_destroy(gpr_mu* mu) { + } + void gpr_mu_lock(gpr_mu* mu) ABSL_NO_THREAD_SAFETY_ANALYSIS { - reinterpret_cast(mu)->Lock(); + reinterpret_cast(mu)->lock(); @@ -83,3 +85,5 @@ index 1234567890..abcdef1234 100644 - return reinterpret_cast(mu)->TryLock(); + return reinterpret_cast(mu)->try_lock(); } + + //---------------------------------------- From e44784108529f69c019eaf07c0bc97f9261b1723 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 13 Jun 2026 13:02:41 +1100 Subject: [PATCH 5/9] add abseil/protobuf 26q2 migration --- .../migrations/absl_grpc_proto_26Q2.yaml | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .ci_support/migrations/absl_grpc_proto_26Q2.yaml diff --git a/.ci_support/migrations/absl_grpc_proto_26Q2.yaml b/.ci_support/migrations/absl_grpc_proto_26Q2.yaml new file mode 100644 index 00000000..e5755675 --- /dev/null +++ b/.ci_support/migrations/absl_grpc_proto_26Q2.yaml @@ -0,0 +1,27 @@ +__migrator: + build_number: 1 + commit_message: Rebuild for libabseil 20260526, libgrpc 1.82 & libprotobuf 7.35.1 + kind: version + migration_number: 1 + paused: true + exclude: + # core deps + - abseil-cpp + - grpc-cpp + - libprotobuf + # required for building/testing + - protobuf + - re2 + # bazel stack + - bazel + - grpc_java_plugin + - singlejar + # built manually beforehand due to enormous build time + - pytorch-cpu +libabseil: +- 20260526 +libgrpc: +- "1.82" +libprotobuf: +- 7.35.1 +migrator_ts: 1775539322.336586 From fac4417bf4a53c7801078b72655856025a202082 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 13 Jun 2026 14:15:18 +1100 Subject: [PATCH 6/9] MNT: Re-rendered with conda-smithy 2026.5.30.dev72+g07b223c79 and conda-forge-pinning 2026.06.13.00.44.38 Other tools: - conda-build 26.5.0 - rattler-build 0.65.1 - rattler-build-conda-compat 1.4.14 --- .azure-pipelines/azure-pipelines-osx.yml | 16 +++-- .azure-pipelines/azure-pipelines-win.yml | 13 ++-- .ci_support/linux_64_.yaml | 6 +- .ci_support/linux_aarch64_.yaml | 8 +-- .ci_support/linux_ppc64le_.yaml | 6 +- .ci_support/osx_64_.yaml | 6 +- .ci_support/osx_arm64_.yaml | 6 +- .ci_support/win_64_.yaml | 6 +- .github/workflows/conda-build.yml | 89 +++++++++++++++--------- .scripts/create_pagefile.sh | 20 ++++++ .scripts/free_disk_space.sh | 62 +++++++++++++++++ README.md | 7 ++ build-locally.py | 5 +- 13 files changed, 186 insertions(+), 64 deletions(-) create mode 100755 .scripts/create_pagefile.sh create mode 100755 .scripts/free_disk_space.sh diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 3c3d6ba8..7b9a2cdc 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -13,13 +13,17 @@ jobs: UPLOAD_PACKAGES: 'True' VMIMAGE: macOS-15 build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 store_build_artifacts: false tools_install_dir: ~/miniforge3 osx_arm64_: CONFIG: osx_arm64_ UPLOAD_PACKAGES: 'True' - VMIMAGE: macOS-15 + VMIMAGE: macOS-15-arm64 build_workspace_dir: ~/miniforge3/conda-bld + free_disk_space: skip + pagefile_size: 0 store_build_artifacts: false tools_install_dir: ~/miniforge3 timeoutInMinutes: 360 @@ -28,15 +32,15 @@ jobs: steps: # TODO: Fast finish on azure pipelines? - script: | - export MINIFORGE_HOME=$(tools_install_dir) - export CONDA_BLD_PATH=$(build_workspace_dir) export CI=azure + export CONDA_BLD_PATH=$(build_workspace_dir) + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export MINIFORGE_HOME=$(tools_install_dir) + export OSX_FORCE_SDK_DOWNLOAD="1" export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) export remote_url=$(Build.Repository.Uri) export sha=$(Build.SourceVersion) - export OSX_FORCE_SDK_DOWNLOAD="1" - export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME - export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then export IS_PR_BUILD="True" else diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index cf75adb2..7308ffca 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -12,6 +12,8 @@ jobs: CONFIG: win_64_ UPLOAD_PACKAGES: 'True' build_workspace_dir: D:\\bld\\ + free_disk_space: skip + pagefile_size: 0 store_build_artifacts: false tools_install_dir: D:\Miniforge timeoutInMinutes: 360 @@ -19,21 +21,20 @@ jobs: UPLOAD_TEMP: D:\\tmp steps: - - script: | call ".scripts\run_win_build.bat" displayName: Run Windows build env: - MINIFORGE_HOME: $(tools_install_dir) + CI: azure + CONFIG: $(CONFIG) CONDA_BLD_PATH: $(build_workspace_dir) + MINIFORGE_HOME: $(tools_install_dir) PYTHONUNBUFFERED: 1 - CONFIG: $(CONFIG) - CI: azure + UPLOAD_PACKAGES: $(UPLOAD_PACKAGES) + UPLOAD_TEMP: $(UPLOAD_TEMP) flow_run_id: azure_$(Build.BuildNumber).$(System.JobAttempt) remote_url: $(Build.Repository.Uri) sha: $(Build.SourceVersion) - UPLOAD_PACKAGES: $(UPLOAD_PACKAGES) - UPLOAD_TEMP: $(UPLOAD_TEMP) BINSTAR_TOKEN: $(BINSTAR_TOKEN) FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index 6bf5d00b..ae1bbbed 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -19,11 +19,11 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 libabseil: -- '20260107' +- '20260526' libgrpc: -- '1.78' +- '1.82' libprotobuf: -- 6.33.5 +- 7.35.1 openssl: - '3.5' pin_run_as_build: diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml index abfa4770..8e2606bf 100644 --- a/.ci_support/linux_aarch64_.yaml +++ b/.ci_support/linux_aarch64_.yaml @@ -17,13 +17,13 @@ cxx_compiler: cxx_compiler_version: - '14' docker_image: -- quay.io/condaforge/linux-anvil-x86_64:alma9 +- quay.io/condaforge/linux-anvil-aarch64:alma9 libabseil: -- '20260107' +- '20260526' libgrpc: -- '1.78' +- '1.82' libprotobuf: -- 6.33.5 +- 7.35.1 openssl: - '3.5' pin_run_as_build: diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml index 3db68ba5..470d1bfe 100644 --- a/.ci_support/linux_ppc64le_.yaml +++ b/.ci_support/linux_ppc64le_.yaml @@ -19,11 +19,11 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 libabseil: -- '20260107' +- '20260526' libgrpc: -- '1.78' +- '1.82' libprotobuf: -- 6.33.5 +- 7.35.1 openssl: - '3.5' pin_run_as_build: diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index b9123cb5..b88d4cb9 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -21,11 +21,11 @@ cxx_compiler: cxx_compiler_version: - '19' libabseil: -- '20260107' +- '20260526' libgrpc: -- '1.78' +- '1.82' libprotobuf: -- 6.33.5 +- 7.35.1 macos_machine: - x86_64-apple-darwin13.4.0 openssl: diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index 80184e7a..50f695a5 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -21,11 +21,11 @@ cxx_compiler: cxx_compiler_version: - '19' libabseil: -- '20260107' +- '20260526' libgrpc: -- '1.78' +- '1.82' libprotobuf: -- 6.33.5 +- 7.35.1 macos_machine: - arm64-apple-darwin20.0.0 openssl: diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml index 808619d0..32653520 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_.yaml @@ -11,11 +11,11 @@ channel_targets: cxx_compiler: - vs2022 libabseil: -- '20260107' +- '20260526' libgrpc: -- '1.78' +- '1.82' libprotobuf: -- 6.33.5 +- 7.35.1 openssl: - '3.5' pin_run_as_build: diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index dcec2cbd..f8b185ea 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -23,98 +23,123 @@ jobs: matrix: include: - CONFIG: linux_64_ + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: quick os: ubuntu + pagefile_size: 10 runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: - CONFIG: linux_aarch64_ + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64:alma9 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True - os: ubuntu - runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 - tools_install_dir: ~/miniforge3 build_workspace_dir: build_artifacts docker_run_args: + free_disk_space: quick + os: ubuntu + pagefile_size: 10 + runs_on: ['ubuntu-24.04-arm'] + tools_install_dir: ~/miniforge3 - CONFIG: linux_ppc64le_ + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 STORE_BUILD_ARTIFACTS: False UPLOAD_PACKAGES: True + build_workspace_dir: build_artifacts + docker_run_args: + free_disk_space: quick os: ubuntu + pagefile_size: 10 runs_on: ['ubuntu-latest'] - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9 tools_install_dir: ~/miniforge3 - build_workspace_dir: build_artifacts - docker_run_args: steps: - name: Checkout code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Manage disk space + env: + FREE_DISK_SPACE: ${{ matrix.free_disk_space }} + OS: ${{ matrix.os }} + shell: bash + run: | + .scripts/free_disk_space.sh "${FREE_DISK_SPACE}" + + - name: Configure page file on Linux + if: matrix.os == 'ubuntu' && matrix.pagefile_size > 0 + shell: bash + env: + PAGEFILE_SIZE: ${{ matrix.pagefile_size }} + GHA_RUNS_ON: ${{ join(matrix.runs_on, ' ') }} + run: | + .scripts/create_pagefile.sh "${PAGEFILE_SIZE}" + - name: Configure binfmt_misc + if: matrix.os == 'ubuntu' + shell: bash + run: | + if [[ "$(uname -m)" == "x86_64" ]]; then + docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes + fi + - name: Build on Linux id: build-linux if: matrix.os == 'ubuntu' env: - MINIFORGE_HOME: ${{ matrix.tools_install_dir }} + CI: github_actions CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} + CONDA_FORGE_DOCKER_RUN_ARGS: ${{ matrix.docker_run_args }} CONFIG: ${{ matrix.CONFIG }} - UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + MINIFORGE_HOME: ${{ matrix.tools_install_dir }} DOCKER_IMAGE: ${{ matrix.DOCKER_IMAGE }} - CI: github_actions - CONDA_FORGE_DOCKER_RUN_ARGS: "${{ matrix.docker_run_args }}" + UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} shell: bash run: | - if [[ "$(uname -m)" == "x86_64" ]]; then - echo "::group::Configure binfmt_misc" - docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes - fi + export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}" + export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" + export GIT_BRANCH="$(basename $GITHUB_REF)" + export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}" export flow_run_id="github_$GITHUB_RUN_ID" export remote_url="https://github.com/$GITHUB_REPOSITORY" export sha="$GITHUB_SHA" - export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" - export GIT_BRANCH="$(basename $GITHUB_REF)" if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then export IS_PR_BUILD="True" else export IS_PR_BUILD="False" fi - export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}" - export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}" - echo "::endgroup::" ./.scripts/run_docker_build.sh - name: Build on macOS id: build-macos if: matrix.os == 'macos' env: - MINIFORGE_HOME: ${{ matrix.tools_install_dir }} + CI: github_actions CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} CONFIG: ${{ matrix.CONFIG }} + MINIFORGE_HOME: ${{ matrix.tools_install_dir }} UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} - CI: github_actions BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} shell: bash run: | + export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}" + export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" + export GIT_BRANCH="$(basename $GITHUB_REF)" + export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}" export flow_run_id="github_$GITHUB_RUN_ID" export remote_url="https://github.com/$GITHUB_REPOSITORY" export sha="$GITHUB_SHA" - export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" - export GIT_BRANCH="$(basename $GITHUB_REF)" if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then export IS_PR_BUILD="True" else export IS_PR_BUILD="False" fi - export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}" - export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}" ./.scripts/run_osx_build.sh - name: Build on windows @@ -127,11 +152,11 @@ jobs: set "sha=%GITHUB_SHA%" call ".scripts\run_win_build.bat" env: - MINIFORGE_HOME: ${{ matrix.tools_install_dir }} + CI: github_actions CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }} - PYTHONUNBUFFERED: 1 CONFIG: ${{ matrix.CONFIG }} - CI: github_actions + MINIFORGE_HOME: ${{ matrix.tools_install_dir }} + PYTHONUNBUFFERED: 1 UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} diff --git a/.scripts/create_pagefile.sh b/.scripts/create_pagefile.sh new file mode 100755 index 00000000..693a27a4 --- /dev/null +++ b/.scripts/create_pagefile.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +set -ex + +PAGEFILE_SIZE=${1} + +SWAPFILE=/swapfile +if [[ ${GHA_RUNS_ON} == *namespace-profile-* ]]; then + SWAPFILE=/namespace/scratch/swapfile +fi +# If there is already a swapfile, disable it and remove it +if swapon --show | grep -q "^${SWAPFILE}"; then + sudo swapoff "${SWAPFILE}" || true +fi +[[ -f ${SWAPFILE} ]] && sudo rm -f "${SWAPFILE}" + +sudo fallocate -l "${PAGEFILE_SIZE}GiB" "${SWAPFILE}" +sudo chmod 600 "${SWAPFILE}" +sudo mkswap "${SWAPFILE}" +sudo swapon "${SWAPFILE}" diff --git a/.scripts/free_disk_space.sh b/.scripts/free_disk_space.sh new file mode 100755 index 00000000..5c716a94 --- /dev/null +++ b/.scripts/free_disk_space.sh @@ -0,0 +1,62 @@ +#!/usr/bin/env bash + +set -ex + +FREE_DISK_SPACE=${1} + +if [[ ${FREE_DISK_SPACE} == skip ]]; then + exit 0 +fi + +df -h + +case ${OS} in + ubuntu) + DIRS_TO_REMOVE=( + /opt/ghc + /opt/hostedtoolcache + /usr/lib/jvm + /usr/local/.ghcup + /usr/local/lib/android + /usr/local/share/powershell + /usr/share/dotnet + /usr/share/swift + ) + + sudo rm -rf "${DIRS_TO_REMOVE[@]}" + + if type apt-get; then + BROWSERS="firefox google-chrome-stable microsoft-edge-stable" + BROWSERS_TO_REMOVE=$(dpkg --get-selections $BROWSERS 2>/dev/null | awk '{print $1}') + if [[ -n ${BROWSERS_TO_REMOVE} ]]; then + sudo apt-get remove --purge -y $BROWSERS_TO_REMOVE + fi + + sudo apt-get autoremove -y >& /dev/null + sudo apt-get autoclean -y >& /dev/null + fi + + if [[ ${FREE_DISK_SPACE} == max ]] && type docker; then + sudo docker image prune --all --force + fi + ;; + macos) + DIRS_TO_REMOVE=( + /Users/runner/Library/Android + /Users/runner/.dotnet + /Users/runner/hostedtoolcache + ) + rm -rf "${DIRS_TO_REMOVE[@]}" + ;; + windows) + DIRS_TO_REMOVE=( + C:/hostedtoolcache/windows + C:/Android + ) + + # rm is one of the fastest methods to remove files on Windows + rm -rf "${DIRS_TO_REMOVE[@]}" + ;; +esac + +df -h diff --git a/README.md b/README.md index b212affc..4b17d1fc 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,13 @@ Current build status variant + + osx_arm64 + + + variant + + win_64 diff --git a/build-locally.py b/build-locally.py index 05493e4d..3beb68cc 100755 --- a/build-locally.py +++ b/build-locally.py @@ -98,7 +98,10 @@ def main(args=None): p.add_argument( "--debug", action="store_true", - help="Setup debug environment using `conda debug`", + help=( + "Setup debug environment using `conda debug` " + "(or `rattler-build debug` for rattler-build recipes)" + ), ) p.add_argument("--output-id", help="If running debug, specify the output to setup.") From 5f261d48734aadf1f68afe94adcea08d5c4324d0 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Mon, 22 Jun 2026 19:41:42 +1100 Subject: [PATCH 7/9] remove mis-committed file --- .../0011-build-grpcio-tools-from-source.patch | 51 +------------------ ...ol-explosion-with-autogenerated-expo.patch | 2 +- ...e-GRPC_DLL-instances-where-necessary.patch | 2 +- .../0014-use-protobuf-s-libutf8_range.patch | 2 +- .../patches/0015-disable-grpc-_unsecure.patch | 2 +- ...alize_absl-into-separate-cython-modu.patch | 2 +- ...texLock-pointer-deprecation-warnings.patch | 2 +- ...tex-Lock-Unlock-deprecation-warnings.patch | 2 +- 8 files changed, 9 insertions(+), 56 deletions(-) diff --git a/recipe/patches/0011-build-grpcio-tools-from-source.patch b/recipe/patches/0011-build-grpcio-tools-from-source.patch index 78959b15..faa5993f 100644 --- a/recipe/patches/0011-build-grpcio-tools-from-source.patch +++ b/recipe/patches/0011-build-grpcio-tools-from-source.patch @@ -1,14 +1,12 @@ -From 1c44116116ab6f4682e44ba54655be3217e464b3 Mon Sep 17 00:00:00 2001 +From fb360213b69720f63b31ccf4f091e5f461b544e6 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 4 Mar 2025 08:53:30 +1100 Subject: [PATCH 11/18] build grpcio-tools from source --- .../python/grpcio_tools/protoc_lib_deps.py | 30 ++++++------ - .../grpcio_tools/protoc_lib_deps.py.rej | 39 +++++++++++++++ tools/distrib/python/grpcio_tools/setup.py | 49 ++++++++++++++----- - 3 files changed, 90 insertions(+), 28 deletions(-) - create mode 100644 tools/distrib/python/grpcio_tools/protoc_lib_deps.py.rej + 2 files changed, 51 insertions(+), 28 deletions(-) diff --git a/tools/distrib/python/grpcio_tools/protoc_lib_deps.py b/tools/distrib/python/grpcio_tools/protoc_lib_deps.py index 8a42929c90..40ec0fc61d 100644 @@ -51,51 +49,6 @@ index 8a42929c90..40ec0fc61d 100644 ] CC_INCLUDES=[ -diff --git a/tools/distrib/python/grpcio_tools/protoc_lib_deps.py.rej b/tools/distrib/python/grpcio_tools/protoc_lib_deps.py.rej -new file mode 100644 -index 0000000000..e2a9c309ab ---- /dev/null -+++ b/tools/distrib/python/grpcio_tools/protoc_lib_deps.py.rej -@@ -0,0 +1,39 @@ -+--- tools/distrib/python/grpcio_tools/protoc_lib_deps.py -++++ tools/distrib/python/grpcio_tools/protoc_lib_deps.py -+@@ -383,21 +383,21 @@ CC_FILES=[ -+ ] -+ -+ PROTO_FILES=[ -+- 'go/google/protobuf/go_features.proto', -+- 'java/core/src/main/resources/google/protobuf/java_features.proto', -+- 'src/google/protobuf/any.proto', -+- 'src/google/protobuf/api.proto', -+- 'src/google/protobuf/compiler/plugin.proto', -+- 'src/google/protobuf/cpp_features.proto', -+- 'src/google/protobuf/descriptor.proto', -+- 'src/google/protobuf/duration.proto', -+- 'src/google/protobuf/empty.proto', -+- 'src/google/protobuf/field_mask.proto', -+- 'src/google/protobuf/source_context.proto', -+- 'src/google/protobuf/struct.proto', -+- 'src/google/protobuf/timestamp.proto', -+- 'src/google/protobuf/type.proto', -+- 'src/google/protobuf/wrappers.proto' -++ 'google/protobuf/go_features.proto', -++ 'google/protobuf/java_features.proto', -++ 'google/protobuf/any.proto', -++ 'google/protobuf/api.proto', -++ 'google/protobuf/compiler/plugin.proto', -++ 'google/protobuf/cpp_features.proto', -++ 'google/protobuf/descriptor.proto', -++ 'google/protobuf/duration.proto', -++ 'google/protobuf/empty.proto', -++ 'google/protobuf/field_mask.proto', -++ 'google/protobuf/source_context.proto', -++ 'google/protobuf/struct.proto', -++ 'google/protobuf/timestamp.proto', -++ 'google/protobuf/type.proto', -++ 'google/protobuf/wrappers.proto' -+ ] -+ -+ CC_INCLUDES=[ diff --git a/tools/distrib/python/grpcio_tools/setup.py b/tools/distrib/python/grpcio_tools/setup.py index f0d759dafb..32b5a4c92a 100644 --- a/tools/distrib/python/grpcio_tools/setup.py diff --git a/recipe/patches/0012-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch b/recipe/patches/0012-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch index 9fef44d8..733809f3 100644 --- a/recipe/patches/0012-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch +++ b/recipe/patches/0012-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch @@ -1,4 +1,4 @@ -From 1c6ff996b00e38eb0f069a4a9b3640747e372a65 Mon Sep 17 00:00:00 2001 +From 9a8b13be8849b73dd4547fcd5ab106749b15b3b7 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 5 Mar 2025 13:21:01 +1100 Subject: [PATCH 12/18] reduce grpc symbol explosion with autogenerated export diff --git a/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch b/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch index 1450f234..d36c0f6f 100644 --- a/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch +++ b/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch @@ -1,4 +1,4 @@ -From d0f338b1fcf3b909a04cecb29a594b57c0802b7c Mon Sep 17 00:00:00 2001 +From 3e53dcb2a4aa7fe835bb264db2f9bf8222680020 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 2 Mar 2025 07:16:19 +1100 Subject: [PATCH 13/18] update GRPC_DLL instances where necessary diff --git a/recipe/patches/0014-use-protobuf-s-libutf8_range.patch b/recipe/patches/0014-use-protobuf-s-libutf8_range.patch index f2e86ac1..22f75dec 100644 --- a/recipe/patches/0014-use-protobuf-s-libutf8_range.patch +++ b/recipe/patches/0014-use-protobuf-s-libutf8_range.patch @@ -1,4 +1,4 @@ -From 45194add7cc7c18f7f92acf7d754a93a361b415b Mon Sep 17 00:00:00 2001 +From 98a8a881d8db626762e5e7f4e7810b2327d8aaef Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 10 Jan 2026 20:43:11 +1100 Subject: [PATCH 14/18] use protobuf's libutf8_range diff --git a/recipe/patches/0015-disable-grpc-_unsecure.patch b/recipe/patches/0015-disable-grpc-_unsecure.patch index 29bd3d69..8ddc5849 100644 --- a/recipe/patches/0015-disable-grpc-_unsecure.patch +++ b/recipe/patches/0015-disable-grpc-_unsecure.patch @@ -1,4 +1,4 @@ -From ae445f0321c40a8e4b6f4878175abd6df79e828c Mon Sep 17 00:00:00 2001 +From c3ce73eca20b3e10dcb1a809816e287ace93f40b Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 11 Jan 2026 22:45:25 +1100 Subject: [PATCH 15/18] disable grpc{,++}_unsecure diff --git a/recipe/patches/0016-break-out-_initialize_absl-into-separate-cython-modu.patch b/recipe/patches/0016-break-out-_initialize_absl-into-separate-cython-modu.patch index 408d308b..f97492f1 100644 --- a/recipe/patches/0016-break-out-_initialize_absl-into-separate-cython-modu.patch +++ b/recipe/patches/0016-break-out-_initialize_absl-into-separate-cython-modu.patch @@ -1,4 +1,4 @@ -From badad8b0e37085d42c0065a2f811c1ea2d8958e1 Mon Sep 17 00:00:00 2001 +From 9506087de3c749a0b081eb8518eba341ac4d9e98 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 21 Feb 2026 14:29:28 +1100 Subject: [PATCH 16/18] break out _initialize_absl into separate cython module diff --git a/recipe/patches/0017-silence-absl-MutexLock-pointer-deprecation-warnings.patch b/recipe/patches/0017-silence-absl-MutexLock-pointer-deprecation-warnings.patch index 30b888e4..9866a89e 100644 --- a/recipe/patches/0017-silence-absl-MutexLock-pointer-deprecation-warnings.patch +++ b/recipe/patches/0017-silence-absl-MutexLock-pointer-deprecation-warnings.patch @@ -1,4 +1,4 @@ -From 4bfb171bec6f2d306e80ef08f30252aa343e75d6 Mon Sep 17 00:00:00 2001 +From 43cce39c1c324528114b2bd7b35e332a021272fa Mon Sep 17 00:00:00 2001 From: Julien Jerphanion Date: Tue, 9 Jun 2026 12:00:00 +0000 Subject: [PATCH 17/18] silence absl MutexLock pointer deprecation warnings diff --git a/recipe/patches/0018-silence-absl-Mutex-Lock-Unlock-deprecation-warnings.patch b/recipe/patches/0018-silence-absl-Mutex-Lock-Unlock-deprecation-warnings.patch index 1d537784..5f77883b 100644 --- a/recipe/patches/0018-silence-absl-Mutex-Lock-Unlock-deprecation-warnings.patch +++ b/recipe/patches/0018-silence-absl-Mutex-Lock-Unlock-deprecation-warnings.patch @@ -1,4 +1,4 @@ -From 5d4f3aa5722da29f3bfe62832a028d95400acdc1 Mon Sep 17 00:00:00 2001 +From 2c846440f40e63a3ad7dbbec286fbe41e7e6feb9 Mon Sep 17 00:00:00 2001 From: Julien Jerphanion Date: Tue, 9 Jun 2026 12:30:00 +0000 Subject: [PATCH 18/18] silence absl Mutex Lock/Unlock deprecation warnings From eddf3248fe90c6f26bda9707be75c9bb0f35a2bb Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Mon, 22 Jun 2026 19:43:03 +1100 Subject: [PATCH 8/9] MNT: Re-rendered with conda-smithy 2026.6.14 and conda-forge-pinning 2026.06.21.23.35.32 Other tools: - conda-build 26.5.0 - rattler-build 0.66.1 - rattler-build-conda-compat 1.4.15 --- .azure-pipelines/azure-pipelines-osx.yml | 2 ++ .azure-pipelines/azure-pipelines-win.yml | 1 + .ci_support/osx_64_.yaml | 6 +++--- .ci_support/osx_arm64_.yaml | 6 +++--- .github/workflows/conda-build.yml | 9 ++++++++ .scripts/build_steps.sh | 27 ++++++++++++++++++------ .scripts/run_docker_build.sh | 25 ++++++++++++++++------ 7 files changed, 57 insertions(+), 19 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 7b9a2cdc..bfe94b16 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -15,6 +15,7 @@ jobs: build_workspace_dir: ~/miniforge3/conda-bld free_disk_space: skip pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: ~/miniforge3 osx_arm64_: @@ -24,6 +25,7 @@ jobs: build_workspace_dir: ~/miniforge3/conda-bld free_disk_space: skip pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: ~/miniforge3 timeoutInMinutes: 360 diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 7308ffca..f533bda6 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -14,6 +14,7 @@ jobs: build_workspace_dir: D:\\bld\\ free_disk_space: skip pagefile_size: 0 + resize_partitions: false store_build_artifacts: false tools_install_dir: D:\Miniforge timeoutInMinutes: 360 diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index b88d4cb9..0a854ad1 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -1,7 +1,7 @@ MACOSX_DEPLOYMENT_TARGET: -- '11.0' +- '12.0' MACOSX_SDK_VERSION: -- '11.0' +- '12.0' c_ares: - '1' c_compiler: @@ -11,7 +11,7 @@ c_compiler_version: c_stdlib: - macosx_deployment_target c_stdlib_version: -- '11.0' +- '12.0' channel_sources: - conda-forge channel_targets: diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index 50f695a5..325bd0e6 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -1,7 +1,7 @@ MACOSX_DEPLOYMENT_TARGET: -- '11.0' +- '12.0' MACOSX_SDK_VERSION: -- '11.0' +- '12.0' c_ares: - '1' c_compiler: @@ -11,7 +11,7 @@ c_compiler_version: c_stdlib: - macosx_deployment_target c_stdlib_version: -- '11.0' +- '12.0' channel_sources: - conda-forge channel_targets: diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index f8b185ea..f8b1efab 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -31,6 +31,7 @@ jobs: free_disk_space: quick os: ubuntu pagefile_size: 10 + resize_partitions: False runs_on: ['ubuntu-latest'] tools_install_dir: ~/miniforge3 - CONFIG: linux_aarch64_ @@ -42,6 +43,7 @@ jobs: free_disk_space: quick os: ubuntu pagefile_size: 10 + resize_partitions: False runs_on: ['ubuntu-24.04-arm'] tools_install_dir: ~/miniforge3 - CONFIG: linux_ppc64le_ @@ -53,6 +55,7 @@ jobs: free_disk_space: quick os: ubuntu pagefile_size: 10 + resize_partitions: False runs_on: ['ubuntu-latest'] tools_install_dir: ~/miniforge3 steps: @@ -95,6 +98,8 @@ jobs: MINIFORGE_HOME: ${{ matrix.tools_install_dir }} DOCKER_IMAGE: ${{ matrix.DOCKER_IMAGE }} UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + RATTLER_BUILD_COLOR: always + RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION: 'true' BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} @@ -123,6 +128,8 @@ jobs: CONFIG: ${{ matrix.CONFIG }} MINIFORGE_HOME: ${{ matrix.tools_install_dir }} UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + RATTLER_BUILD_COLOR: always + RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION: 'true' BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} @@ -158,6 +165,8 @@ jobs: MINIFORGE_HOME: ${{ matrix.tools_install_dir }} PYTHONUNBUFFERED: 1 UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }} + RATTLER_BUILD_COLOR: always + RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION: 'true' BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }} STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }} \ No newline at end of file diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index c83e212f..5c97f744 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -61,18 +61,33 @@ if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then fi if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" - fi - conda debug "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + # differences between conda-build vs. rattler-build + # - 1 step (conda debug + manually open shell) vs. 2 step (rb debug {setup, shell}) + # - recipe is positional vs. --recipe "${RECIPE_ROOT}" + # - --output-id vs. --output-name + # - --clobber-file vs. none + # - none vs. --target-platform + conda debug \ + "${RECIPE_ROOT}" \ + -m "${CI_SUPPORT}/${CONFIG}.yaml" \ ${EXTRA_CB_OPTIONS:-} \ + ${BUILD_OUTPUT_ID:+--output-id "${BUILD_OUTPUT_ID}"} \ --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" # Drop into an interactive shell /bin/bash else - conda-build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ + # differences between conda-build vs. rattler-build + # - recipe is positional vs. --recipe "${RECIPE_ROOT}" + # - --suppress-variables vs. none + # - --clobber-file vs. none + # - none vs. --target-platform + # - --extra-meta a=b c=d vs. --extra-meta a=b --extra-meta c=d + conda-build \ + "${RECIPE_ROOT}" \ + -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + ${EXTRA_CB_OPTIONS:-} \ + --suppress-variables \ --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" ( startgroup "Inspecting artifacts" ) 2> /dev/null diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 10d6a2af..17d983f1 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -96,6 +96,14 @@ if [ "${DOCKER_EXECUTABLE}" = "podman" ]; then fi fi +# When running on GitHub Actions, mount the step summary file into the container +# and point GITHUB_STEP_SUMMARY at it so that rattler-build's GitHub integration +# can write its summary. GitHub writes the file out to the job summary after the +# step finishes. +if [[ -n "${GITHUB_STEP_SUMMARY:-}" ]]; then + DOCKER_RUN_ARGS="${DOCKER_RUN_ARGS} -v ${GITHUB_STEP_SUMMARY}:/home/conda/github_step_summary:rw${VOLUME_SUFFIX},delegated -e GITHUB_STEP_SUMMARY=/home/conda/github_step_summary" +fi + ( endgroup "Configure Docker" ) 2> /dev/null ( startgroup "Start Docker" ) 2> /dev/null @@ -107,17 +115,20 @@ ${DOCKER_EXECUTABLE} pull "${DOCKER_IMAGE}" ${DOCKER_EXECUTABLE} run ${DOCKER_RUN_ARGS} \ -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw${VOLUME_SUFFIX},delegated \ -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw${VOLUME_SUFFIX},delegated \ + -e BUILD_OUTPUT_ID \ + -e BUILD_WITH_CONDA_DEBUG \ + -e CI \ -e CONFIG \ + -e CPU_COUNT \ + -e FEEDSTOCK_NAME \ + -e GIT_BRANCH \ + -e GITHUB_ACTIONS \ -e HOST_USER_ID \ - -e UPLOAD_PACKAGES \ -e IS_PR_BUILD \ - -e GIT_BRANCH \ + -e RATTLER_BUILD_COLOR \ + -e RATTLER_BUILD_ENABLE_GITHUB_INTEGRATION \ -e UPLOAD_ON_BRANCH \ - -e CI \ - -e FEEDSTOCK_NAME \ - -e CPU_COUNT \ - -e BUILD_WITH_CONDA_DEBUG \ - -e BUILD_OUTPUT_ID \ + -e UPLOAD_PACKAGES \ -e flow_run_id \ -e remote_url \ -e sha \ From 388202601395f76efe9f5ce04b4bf3b5575de973 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Fri, 3 Jul 2026 15:24:47 +0200 Subject: [PATCH 9/9] grpc 1.82.0 --- .ci_support/migrations/absl_grpc_proto_26Q2.yaml | 11 +++++++++-- recipe/meta.yaml | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.ci_support/migrations/absl_grpc_proto_26Q2.yaml b/.ci_support/migrations/absl_grpc_proto_26Q2.yaml index e5755675..7ebd5268 100644 --- a/.ci_support/migrations/absl_grpc_proto_26Q2.yaml +++ b/.ci_support/migrations/absl_grpc_proto_26Q2.yaml @@ -1,9 +1,13 @@ __migrator: build_number: 1 - commit_message: Rebuild for libabseil 20260526, libgrpc 1.82 & libprotobuf 7.35.1 + commit_message: | + Rebuild for libabseil 20260526, libgrpc 1.82 & libprotobuf 7.35.1 + + grpc v1.82 is currently in pre-release and thus not published yet. + Therefore, it is expected that feedstocks depending on libgrpc will + see resolver errors for now. kind: version migration_number: 1 - paused: true exclude: # core deps - abseil-cpp @@ -24,4 +28,7 @@ libgrpc: - "1.82" libprotobuf: - 7.35.1 +# https://github.com/protocolbuffers/protobuf/commit/66a9ea7540ad7d3d0822ace6fc8d9ba6cd088c4d +c_stdlib_version: # [osx] + - 12.0 # [osx] migrator_ts: 1775539322.336586 diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 64b53a75..c375310b 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "1.82.0.pre1" %} +{% set version = "1.82.0" %} # core package & vendored libs use different version scheme than CPP libs, see # top of https://github.com/grpc/grpc/blob/v{{ version }}/CMakeLists.txt @@ -19,7 +19,7 @@ package: source: - url: https://github.com/grpc/grpc/archive/v{{ version.replace(".pre", "-pre") }}.tar.gz - sha256: 7c91601663de3363887c57df1a4806f6f0cd2c7c4e6b208aca398496d014f7ee + sha256: d6851f59b9c4edb3218d2659a3abf1138e5bb4d2871c9e89c9330ed71756ed0b patches: - patches/0001-windows-ssl-lib-names.patch - patches/0002-fix-win-setup-cmds.patch