From 9efb0521641db03e0c0c8b4b3cbfd3199bcf6520 Mon Sep 17 00:00:00 2001 From: Curt Hagenlocher Date: Fri, 23 Oct 2026 16:33:13 -0700 Subject: [PATCH 1/3] Force newer versions of Brotli --- ci/vcpkg/ports.patch | 25 +++ cpp/subprojects/google-brotli.wrap | 14 +- .../packagefiles/google-brotli/LICENSE.build | 19 +++ .../packagefiles/google-brotli/meson.build | 153 ++++++++++++++++++ cpp/thirdparty/versions.txt | 4 +- 5 files changed, 204 insertions(+), 11 deletions(-) create mode 100644 cpp/subprojects/packagefiles/google-brotli/LICENSE.build create mode 100644 cpp/subprojects/packagefiles/google-brotli/meson.build diff --git a/ci/vcpkg/ports.patch b/ci/vcpkg/ports.patch index db38c25de3f8..75f180e972fb 100644 --- a/ci/vcpkg/ports.patch +++ b/ci/vcpkg/ports.patch @@ -1,3 +1,28 @@ +diff --git a/ports/brotli/portfile.cmake b/ports/brotli/portfile.cmake +index e55c69c3d1..7d7cb1d67e 100644 +--- a/ports/brotli/portfile.cmake ++++ b/ports/brotli/portfile.cmake +@@ -2,7 +2,7 @@ vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO google/brotli + REF v${VERSION} # v1.1.0 +- SHA512 f94542afd2ecd96cc41fd21a805a3da314281ae558c10650f3e6d9ca732b8425bba8fde312823f0a564c7de3993bdaab5b43378edab65ebb798cefb6fd702256 ++ SHA512 460591287d428c8b5a8a2766b5b424d14501fcda12c7118b8f3cc4bfae44b90ac75ca156557f07b6e22542612724d904533e5f70019be07dbbb604c46f03ab69 + HEAD_REF master + PATCHES + install.patch +diff --git a/ports/brotli/vcpkg.json b/ports/brotli/vcpkg.json +index c5bf679166..abaeb1caa8 100644 +--- a/ports/brotli/vcpkg.json ++++ b/ports/brotli/vcpkg.json +@@ -1,6 +1,6 @@ + { + "name": "brotli", +- "version": "1.2.0", ++ "version": "1.2.1", + "description": "a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling.", + "homepage": "https://github.com/google/brotli", + "license": "MIT", diff --git a/ports/curl/portfile.cmake b/ports/curl/portfile.cmake index 73f5aece46..68cdb3966f 100644 --- a/ports/curl/portfile.cmake diff --git a/cpp/subprojects/google-brotli.wrap b/cpp/subprojects/google-brotli.wrap index ec24d4417c46..fc01072c40f7 100644 --- a/cpp/subprojects/google-brotli.wrap +++ b/cpp/subprojects/google-brotli.wrap @@ -16,15 +16,11 @@ # under the License. [wrap-file] -directory = brotli-1.1.0 -source_url = https://github.com/google/brotli/archive/v1.1.0.tar.gz -source_filename = v1.1.0.tar.gz -source_hash = e720a6ca29428b803f4ad165371771f5398faba397edf6778837a18599ea13ff -patch_filename = google-brotli_1.1.0-1_patch.zip -patch_url = https://wrapdb.mesonbuild.com/v2/google-brotli_1.1.0-1/get_patch -patch_hash = 6826873a148c670d90a80715a7083284da7e19d59cda6a135fae6774411914dc -source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/google-brotli_1.1.0-1/v1.1.0.tar.gz -wrapdb_version = 1.1.0-1 +directory = brotli-1.1.1 +source_url = https://github.com/google/brotli/archive/v1.1.1.tar.gz +source_filename = v1.1.1.tar.gz +source_hash = 1a84dfaa740994d19254bf78aa7d74a4a8040d1638f3d5f2cdecb188fd520da8 +patch_directory = google-brotli [provide] libbrotlicommon = brotli_common_dep diff --git a/cpp/subprojects/packagefiles/google-brotli/LICENSE.build b/cpp/subprojects/packagefiles/google-brotli/LICENSE.build new file mode 100644 index 000000000000..b59833dedbe2 --- /dev/null +++ b/cpp/subprojects/packagefiles/google-brotli/LICENSE.build @@ -0,0 +1,19 @@ +Copyright (c) 2021 The Meson development team + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/cpp/subprojects/packagefiles/google-brotli/meson.build b/cpp/subprojects/packagefiles/google-brotli/meson.build new file mode 100644 index 000000000000..12e549b5a6b9 --- /dev/null +++ b/cpp/subprojects/packagefiles/google-brotli/meson.build @@ -0,0 +1,153 @@ +# Copyright © 2019-2020 Intel Corporation + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +project( + 'google-brotli', + 'c', + license: 'MIT', + version: '1.1.1', + meson_version: '>= 0.49', +) + +cc = meson.get_compiler('c') + +dep_m = cc.find_library('m', required: false) +if not cc.has_function('log2', dependencies: dep_m) + error('Cannot find required log2() function') +endif + +inc = include_directories('c/include') + +if host_machine.system() == 'linux' + add_project_arguments('-DOS_LINUX', language: 'c') +elif host_machine.system() == 'freebsd' + add_project_arguments('-DOS_FREEBSD', language: 'c') +elif host_machine.system() == 'darwin' + add_project_arguments('-DOS_MACOSX', language: 'c') +endif + +c_args = [] +bcs = [] +bds = [] +bes = [] +install = false +if get_option('default_library') == 'shared' + c_args += ['-DBROTLI_SHARED_COMPILATION', '-DBROTLI_BUILD_PORTABLE'] + install = true + bcs = '-DBROTLICOMMON_SHARED_COMPILATION' + bds = '-DBROTLIDEC_SHARED_COMPILATION' + bes = '-DBROTLIENC_SHARED_COMPILATION' +elif get_option('default_library') == 'both' + error('both not yet supported.') +endif + +common_src = files( + 'c/common/constants.c', + 'c/common/context.c', + 'c/common/dictionary.c', + 'c/common/platform.c', + 'c/common/shared_dictionary.c', + 'c/common/transform.c', +) + +libbrotli_common = library( + 'brotli_common', + common_src, + gnu_symbol_visibility: 'hidden', + c_args: [c_args, bcs], + include_directories: inc, + version: meson.project_version(), + install: install, +) + +dec_src = files( + 'c/dec/bit_reader.c', + 'c/dec/decode.c', + 'c/dec/huffman.c', + 'c/dec/state.c', +) + +libbrotli_decoder = library( + 'brotli_decoder', + dec_src, + gnu_symbol_visibility: 'hidden', + c_args: [c_args, bds], + include_directories: inc, + link_with: libbrotli_common, + version: meson.project_version(), + install: install, +) + +enc_src = files( + 'c/enc/backward_references.c', + 'c/enc/backward_references_hq.c', + 'c/enc/bit_cost.c', + 'c/enc/block_splitter.c', + 'c/enc/brotli_bit_stream.c', + 'c/enc/cluster.c', + 'c/enc/command.c', + 'c/enc/compound_dictionary.c', + 'c/enc/compress_fragment.c', + 'c/enc/compress_fragment_two_pass.c', + 'c/enc/dictionary_hash.c', + 'c/enc/encode.c', + 'c/enc/encoder_dict.c', + 'c/enc/entropy_encode.c', + 'c/enc/fast_log.c', + 'c/enc/histogram.c', + 'c/enc/literal_cost.c', + 'c/enc/memory.c', + 'c/enc/metablock.c', + 'c/enc/static_dict.c', + 'c/enc/utf8_util.c', +) + +libbrotli_encoder = library( + 'brotli_encoder', + enc_src, + c_args: [c_args, bes], + gnu_symbol_visibility: 'hidden', + include_directories: inc, + link_with: libbrotli_common, + dependencies: dep_m, + version: meson.project_version(), + install: install, +) + +brotli_common_dep = declare_dependency( + link_with: libbrotli_common, + include_directories: inc, +) + +brotli_encoder_dep = declare_dependency( + link_with: [libbrotli_common, libbrotli_encoder], + include_directories: inc, +) + +brotli_decoder_dep = declare_dependency( + link_with: [libbrotli_common, libbrotli_decoder], + include_directories: inc, +) + +executable( + 'brotli', + 'c/tools/brotli.c', + dependencies: [brotli_decoder_dep, brotli_encoder_dep], +) diff --git a/cpp/thirdparty/versions.txt b/cpp/thirdparty/versions.txt index e2f16c588e20..42125e32b553 100644 --- a/cpp/thirdparty/versions.txt +++ b/cpp/thirdparty/versions.txt @@ -58,8 +58,8 @@ ARROW_AZURE_SDK_BUILD_VERSION=azure-identity_1.9.0 ARROW_AZURE_SDK_BUILD_SHA256_CHECKSUM=97065bfc971ac8df450853ce805f820f52b59457bd7556510186a1569502e4a1 ARROW_BOOST_BUILD_VERSION=1.92.0 ARROW_BOOST_BUILD_SHA256_CHECKSUM=f51707c27359a0df0cac1beada86de31bb5eed5e8285592dadec384df99c2984 -ARROW_BROTLI_BUILD_VERSION=v1.0.9 -ARROW_BROTLI_BUILD_SHA256_CHECKSUM=f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46 +ARROW_BROTLI_BUILD_VERSION=v1.0.10 +ARROW_BROTLI_BUILD_SHA256_CHECKSUM=b517ebdb5266b963d28d6e639b973479874ec72086deb6ee4a2d639e1b13606b ARROW_BZIP2_BUILD_VERSION=1.0.8 ARROW_BZIP2_BUILD_SHA256_CHECKSUM=ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269 ARROW_CARES_BUILD_VERSION=1.34.6 From 747092e753058902b62151f40585806fdf8fa115 Mon Sep 17 00:00:00 2001 From: Curt Hagenlocher Date: Fri, 23 Oct 2026 16:50:50 -0700 Subject: [PATCH 2/3] Address review feedback: reformat meson.build and bump Windows wheel image - Apply meson-fmt to the vendored google-brotli meson.build (whitespace only). - Bump PYTHON_WHEEL_WINDOWS_IMAGE_REVISION so Windows wheel CI rebuilds its cached image with the patched vcpkg brotli 1.2.1 port instead of reusing the existing image built with 1.2.0. Co-Authored-By: Claude Opus 5.5 --- .env | 2 +- .../packagefiles/google-brotli/meson.build | 158 +++++++++--------- 2 files changed, 80 insertions(+), 80 deletions(-) diff --git a/.env b/.env index 4be5d436f2d7..68747af7e35f 100644 --- a/.env +++ b/.env @@ -98,6 +98,6 @@ VCPKG="9b965a116838c6cdcd36bca60d1b81b030c8ab8d" # 2026.05.27 (not release, u # ci/docker/python-*-windows-*.dockerfile or the vcpkg config. # This is a workaround for our CI problem that "archery docker build" doesn't # use pulled built images in dev/tasks/python-wheels/github.windows.yml. -PYTHON_WHEEL_WINDOWS_IMAGE_REVISION=2026-10-11 +PYTHON_WHEEL_WINDOWS_IMAGE_REVISION=2026-10-23 PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION=2026-11-11 diff --git a/cpp/subprojects/packagefiles/google-brotli/meson.build b/cpp/subprojects/packagefiles/google-brotli/meson.build index 12e549b5a6b9..26a1c5c992bc 100644 --- a/cpp/subprojects/packagefiles/google-brotli/meson.build +++ b/cpp/subprojects/packagefiles/google-brotli/meson.build @@ -19,28 +19,28 @@ # THE SOFTWARE. project( - 'google-brotli', - 'c', - license: 'MIT', - version: '1.1.1', - meson_version: '>= 0.49', + 'google-brotli', + 'c', + license: 'MIT', + version: '1.1.1', + meson_version: '>= 0.49', ) cc = meson.get_compiler('c') dep_m = cc.find_library('m', required: false) if not cc.has_function('log2', dependencies: dep_m) - error('Cannot find required log2() function') + error('Cannot find required log2() function') endif inc = include_directories('c/include') if host_machine.system() == 'linux' - add_project_arguments('-DOS_LINUX', language: 'c') + add_project_arguments('-DOS_LINUX', language: 'c') elif host_machine.system() == 'freebsd' - add_project_arguments('-DOS_FREEBSD', language: 'c') + add_project_arguments('-DOS_FREEBSD', language: 'c') elif host_machine.system() == 'darwin' - add_project_arguments('-DOS_MACOSX', language: 'c') + add_project_arguments('-DOS_MACOSX', language: 'c') endif c_args = [] @@ -49,105 +49,105 @@ bds = [] bes = [] install = false if get_option('default_library') == 'shared' - c_args += ['-DBROTLI_SHARED_COMPILATION', '-DBROTLI_BUILD_PORTABLE'] - install = true - bcs = '-DBROTLICOMMON_SHARED_COMPILATION' - bds = '-DBROTLIDEC_SHARED_COMPILATION' - bes = '-DBROTLIENC_SHARED_COMPILATION' + c_args += ['-DBROTLI_SHARED_COMPILATION', '-DBROTLI_BUILD_PORTABLE'] + install = true + bcs = '-DBROTLICOMMON_SHARED_COMPILATION' + bds = '-DBROTLIDEC_SHARED_COMPILATION' + bes = '-DBROTLIENC_SHARED_COMPILATION' elif get_option('default_library') == 'both' - error('both not yet supported.') + error('both not yet supported.') endif common_src = files( - 'c/common/constants.c', - 'c/common/context.c', - 'c/common/dictionary.c', - 'c/common/platform.c', - 'c/common/shared_dictionary.c', - 'c/common/transform.c', + 'c/common/constants.c', + 'c/common/context.c', + 'c/common/dictionary.c', + 'c/common/platform.c', + 'c/common/shared_dictionary.c', + 'c/common/transform.c', ) libbrotli_common = library( - 'brotli_common', - common_src, - gnu_symbol_visibility: 'hidden', - c_args: [c_args, bcs], - include_directories: inc, - version: meson.project_version(), - install: install, + 'brotli_common', + common_src, + gnu_symbol_visibility: 'hidden', + c_args: [c_args, bcs], + include_directories: inc, + version: meson.project_version(), + install: install, ) dec_src = files( - 'c/dec/bit_reader.c', - 'c/dec/decode.c', - 'c/dec/huffman.c', - 'c/dec/state.c', + 'c/dec/bit_reader.c', + 'c/dec/decode.c', + 'c/dec/huffman.c', + 'c/dec/state.c', ) libbrotli_decoder = library( - 'brotli_decoder', - dec_src, - gnu_symbol_visibility: 'hidden', - c_args: [c_args, bds], - include_directories: inc, - link_with: libbrotli_common, - version: meson.project_version(), - install: install, + 'brotli_decoder', + dec_src, + gnu_symbol_visibility: 'hidden', + c_args: [c_args, bds], + include_directories: inc, + link_with: libbrotli_common, + version: meson.project_version(), + install: install, ) enc_src = files( - 'c/enc/backward_references.c', - 'c/enc/backward_references_hq.c', - 'c/enc/bit_cost.c', - 'c/enc/block_splitter.c', - 'c/enc/brotli_bit_stream.c', - 'c/enc/cluster.c', - 'c/enc/command.c', - 'c/enc/compound_dictionary.c', - 'c/enc/compress_fragment.c', - 'c/enc/compress_fragment_two_pass.c', - 'c/enc/dictionary_hash.c', - 'c/enc/encode.c', - 'c/enc/encoder_dict.c', - 'c/enc/entropy_encode.c', - 'c/enc/fast_log.c', - 'c/enc/histogram.c', - 'c/enc/literal_cost.c', - 'c/enc/memory.c', - 'c/enc/metablock.c', - 'c/enc/static_dict.c', - 'c/enc/utf8_util.c', + 'c/enc/backward_references.c', + 'c/enc/backward_references_hq.c', + 'c/enc/bit_cost.c', + 'c/enc/block_splitter.c', + 'c/enc/brotli_bit_stream.c', + 'c/enc/cluster.c', + 'c/enc/command.c', + 'c/enc/compound_dictionary.c', + 'c/enc/compress_fragment.c', + 'c/enc/compress_fragment_two_pass.c', + 'c/enc/dictionary_hash.c', + 'c/enc/encode.c', + 'c/enc/encoder_dict.c', + 'c/enc/entropy_encode.c', + 'c/enc/fast_log.c', + 'c/enc/histogram.c', + 'c/enc/literal_cost.c', + 'c/enc/memory.c', + 'c/enc/metablock.c', + 'c/enc/static_dict.c', + 'c/enc/utf8_util.c', ) libbrotli_encoder = library( - 'brotli_encoder', - enc_src, - c_args: [c_args, bes], - gnu_symbol_visibility: 'hidden', - include_directories: inc, - link_with: libbrotli_common, - dependencies: dep_m, - version: meson.project_version(), - install: install, + 'brotli_encoder', + enc_src, + c_args: [c_args, bes], + gnu_symbol_visibility: 'hidden', + include_directories: inc, + link_with: libbrotli_common, + dependencies: dep_m, + version: meson.project_version(), + install: install, ) brotli_common_dep = declare_dependency( - link_with: libbrotli_common, - include_directories: inc, + link_with: libbrotli_common, + include_directories: inc, ) brotli_encoder_dep = declare_dependency( - link_with: [libbrotli_common, libbrotli_encoder], - include_directories: inc, + link_with: [libbrotli_common, libbrotli_encoder], + include_directories: inc, ) brotli_decoder_dep = declare_dependency( - link_with: [libbrotli_common, libbrotli_decoder], - include_directories: inc, + link_with: [libbrotli_common, libbrotli_decoder], + include_directories: inc, ) executable( - 'brotli', - 'c/tools/brotli.c', - dependencies: [brotli_decoder_dep, brotli_encoder_dep], + 'brotli', + 'c/tools/brotli.c', + dependencies: [brotli_decoder_dep, brotli_encoder_dep], ) From 8f4c06d63e5346687caf0dc7ca63d7c6b00fd2df Mon Sep 17 00:00:00 2001 From: Curt Hagenlocher Date: Mon, 26 Oct 2026 05:18:21 -0700 Subject: [PATCH 3/3] Address review feedback: bump vcpkg and bundled Brotli to 1.2.1 - Bump the vcpkg pin (.env, cpp/vcpkg.json, c_glib/vcpkg.json) to 61d7eaeb, the upstream commit that updates the brotli port to 1.2.1, and drop the brotli hunk from ci/vcpkg/ports.patch. - Drop the llvm hunk from ci/vcpkg/ports.patch: upstream restructured the port and the hunk no longer applies. - Revert the PYTHON_WHEEL_WINDOWS_IMAGE_REVISION bump; the image tag already changes with VCPKG. - Bump the bundled Brotli to v1.2.1. Brotli >= 1.1.0 names static libraries without the "-static" suffix and installs normally on Emscripten, so update build_brotli accordingly and stop building the CLI tool and tests. - Revert the Meson wrap changes; the C++ Meson build isn't used for any released artifact, so keep tracking WrapDB. Co-Authored-By: Claude Opus 5.5 --- .env | 4 +- c_glib/vcpkg.json | 2 +- ci/vcpkg/ports.patch | 38 ----- cpp/cmake_modules/ThirdpartyToolchain.cmake | 47 +----- cpp/subprojects/google-brotli.wrap | 14 +- .../packagefiles/google-brotli/LICENSE.build | 19 --- .../packagefiles/google-brotli/meson.build | 153 ------------------ cpp/thirdparty/versions.txt | 4 +- cpp/vcpkg.json | 2 +- 9 files changed, 23 insertions(+), 260 deletions(-) delete mode 100644 cpp/subprojects/packagefiles/google-brotli/LICENSE.build delete mode 100644 cpp/subprojects/packagefiles/google-brotli/meson.build diff --git a/.env b/.env index 68747af7e35f..f0884e6b7482 100644 --- a/.env +++ b/.env @@ -92,12 +92,12 @@ TZ=UTC # Used through compose.yaml and serves as the default version for the # ci/scripts/install_vcpkg.sh script. Prefer to use short SHAs to keep the # docker tags more readable. -VCPKG="9b965a116838c6cdcd36bca60d1b81b030c8ab8d" # 2026.05.27 (not release, upstream commit) +VCPKG="61d7eaeb094a6acbc23d9c2e54de9208175fda47" # 2026.10.24 (not release, upstream commit) # This must be updated when we update # ci/docker/python-*-windows-*.dockerfile or the vcpkg config. # This is a workaround for our CI problem that "archery docker build" doesn't # use pulled built images in dev/tasks/python-wheels/github.windows.yml. -PYTHON_WHEEL_WINDOWS_IMAGE_REVISION=2026-10-23 +PYTHON_WHEEL_WINDOWS_IMAGE_REVISION=2026-10-11 PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION=2026-11-11 diff --git a/c_glib/vcpkg.json b/c_glib/vcpkg.json index 522e6acf4f50..30d3e29bbc47 100644 --- a/c_glib/vcpkg.json +++ b/c_glib/vcpkg.json @@ -7,5 +7,5 @@ "pkgconf" ], "$comment": "We can update builtin-baseline by 'vcpkg x-update-baseline'", - "builtin-baseline": "9b965a116838c6cdcd36bca60d1b81b030c8ab8d" + "builtin-baseline": "61d7eaeb094a6acbc23d9c2e54de9208175fda47" } diff --git a/ci/vcpkg/ports.patch b/ci/vcpkg/ports.patch index 75f180e972fb..a8d0c2c0fee6 100644 --- a/ci/vcpkg/ports.patch +++ b/ci/vcpkg/ports.patch @@ -1,28 +1,3 @@ -diff --git a/ports/brotli/portfile.cmake b/ports/brotli/portfile.cmake -index e55c69c3d1..7d7cb1d67e 100644 ---- a/ports/brotli/portfile.cmake -+++ b/ports/brotli/portfile.cmake -@@ -2,7 +2,7 @@ vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO google/brotli - REF v${VERSION} # v1.1.0 -- SHA512 f94542afd2ecd96cc41fd21a805a3da314281ae558c10650f3e6d9ca732b8425bba8fde312823f0a564c7de3993bdaab5b43378edab65ebb798cefb6fd702256 -+ SHA512 460591287d428c8b5a8a2766b5b424d14501fcda12c7118b8f3cc4bfae44b90ac75ca156557f07b6e22542612724d904533e5f70019be07dbbb604c46f03ab69 - HEAD_REF master - PATCHES - install.patch -diff --git a/ports/brotli/vcpkg.json b/ports/brotli/vcpkg.json -index c5bf679166..abaeb1caa8 100644 ---- a/ports/brotli/vcpkg.json -+++ b/ports/brotli/vcpkg.json -@@ -1,6 +1,6 @@ - { - "name": "brotli", -- "version": "1.2.0", -+ "version": "1.2.1", - "description": "a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling.", - "homepage": "https://github.com/google/brotli", - "license": "MIT", diff --git a/ports/curl/portfile.cmake b/ports/curl/portfile.cmake index 73f5aece46..68cdb3966f 100644 --- a/ports/curl/portfile.cmake @@ -44,19 +19,6 @@ index 73f5aece46..68cdb3966f 100644 ) vcpkg_cmake_install() vcpkg_copy_pdbs() -diff --git a/ports/llvm/portfile.cmake b/ports/llvm/portfile.cmake -index 7764357a6d..da7374ecec 100644 ---- a/ports/llvm/portfile.cmake -+++ b/ports/llvm/portfile.cmake -@@ -302,6 +302,8 @@ vcpkg_cmake_configure( - ${FEATURE_OPTIONS} - MAYBE_UNUSED_VARIABLES - COMPILER_RT_ENABLE_IOS -+ BOLT_TOOLS_INSTALL_DIR -+ LIBOMP_INSTALL_ALIASES - ) - - vcpkg_cmake_install(ADD_BIN_TO_PATH) diff --git a/ports/orc/orc-fix-exception-propagation.diff b/ports/orc/orc-fix-exception-propagation.diff new file mode 100644 index 0000000000..25568e70cd diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 01e1ab147af7..f5387a6d4e76 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1540,36 +1540,19 @@ macro(build_brotli) set(BROTLI_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/brotli_ep/src/brotli_ep-install") set(BROTLI_INCLUDE_DIR "${BROTLI_PREFIX}/include") set(BROTLI_LIB_DIR "${BROTLI_PREFIX}/lib") + # Brotli >= 1.1.0 names its static libraries without a "-static" + # suffix when BUILD_SHARED_LIBS=OFF. set(BROTLI_STATIC_LIBRARY_ENC - "${BROTLI_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}brotlienc-static${CMAKE_STATIC_LIBRARY_SUFFIX}" + "${BROTLI_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}brotlienc${CMAKE_STATIC_LIBRARY_SUFFIX}" ) set(BROTLI_STATIC_LIBRARY_DEC - "${BROTLI_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}brotlidec-static${CMAKE_STATIC_LIBRARY_SUFFIX}" + "${BROTLI_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}brotlidec${CMAKE_STATIC_LIBRARY_SUFFIX}" ) set(BROTLI_STATIC_LIBRARY_COMMON - "${BROTLI_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}brotlicommon-static${CMAKE_STATIC_LIBRARY_SUFFIX}" + "${BROTLI_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}brotlicommon${CMAKE_STATIC_LIBRARY_SUFFIX}" ) - set(BROTLI_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} "-DCMAKE_INSTALL_PREFIX=${BROTLI_PREFIX}") - - set(BROTLI_EP_OPTIONS) - if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten") - # "cmake install" is disabled for Brotli on Emscripten, so the - # default INSTALL_COMMAND fails. We need to disable the default - # INSTALL_COMMAND. - list(APPEND - BROTLI_EP_OPTIONS - INSTALL_COMMAND - ${CMAKE_COMMAND} - -E - true) - - set(BROTLI_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/brotli_ep-prefix/src/brotli_ep-build) - set(BROTLI_BUILD_LIBS - "${BROTLI_BUILD_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}brotlienc-static${CMAKE_STATIC_LIBRARY_SUFFIX}" - "${BROTLI_BUILD_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}brotlidec-static${CMAKE_STATIC_LIBRARY_SUFFIX}" - "${BROTLI_BUILD_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}brotlicommon-static${CMAKE_STATIC_LIBRARY_SUFFIX}" - ) - endif() + set(BROTLI_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} "-DCMAKE_INSTALL_PREFIX=${BROTLI_PREFIX}" + -DBROTLI_BUILD_TOOLS=OFF -DBROTLI_DISABLE_TESTS=ON) externalproject_add(brotli_ep ${EP_COMMON_OPTIONS} @@ -1578,22 +1561,8 @@ macro(build_brotli) BUILD_BYPRODUCTS "${BROTLI_STATIC_LIBRARY_ENC}" "${BROTLI_STATIC_LIBRARY_DEC}" "${BROTLI_STATIC_LIBRARY_COMMON}" - ${BROTLI_BUILD_BYPRODUCTS} CMAKE_ARGS ${BROTLI_CMAKE_ARGS} - STEP_TARGETS headers_copy ${BROTLI_EP_OPTIONS}) - - if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten") - # Copy the libraries to our install directory manually. - set(BROTLI_BUILD_INCLUDE_DIR - ${CMAKE_CURRENT_BINARY_DIR}/brotli_ep-prefix/src/brotli_ep/c/include/brotli) - add_custom_command(TARGET brotli_ep - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${BROTLI_BUILD_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}*${CMAKE_STATIC_LIBRARY_SUFFIX} - ${BROTLI_LIB_DIR} - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${BROTLI_BUILD_INCLUDE_DIR} ${BROTLI_INCLUDE_DIR}/brotli) - endif() + STEP_TARGETS headers_copy) file(MAKE_DIRECTORY "${BROTLI_INCLUDE_DIR}") diff --git a/cpp/subprojects/google-brotli.wrap b/cpp/subprojects/google-brotli.wrap index fc01072c40f7..ec24d4417c46 100644 --- a/cpp/subprojects/google-brotli.wrap +++ b/cpp/subprojects/google-brotli.wrap @@ -16,11 +16,15 @@ # under the License. [wrap-file] -directory = brotli-1.1.1 -source_url = https://github.com/google/brotli/archive/v1.1.1.tar.gz -source_filename = v1.1.1.tar.gz -source_hash = 1a84dfaa740994d19254bf78aa7d74a4a8040d1638f3d5f2cdecb188fd520da8 -patch_directory = google-brotli +directory = brotli-1.1.0 +source_url = https://github.com/google/brotli/archive/v1.1.0.tar.gz +source_filename = v1.1.0.tar.gz +source_hash = e720a6ca29428b803f4ad165371771f5398faba397edf6778837a18599ea13ff +patch_filename = google-brotli_1.1.0-1_patch.zip +patch_url = https://wrapdb.mesonbuild.com/v2/google-brotli_1.1.0-1/get_patch +patch_hash = 6826873a148c670d90a80715a7083284da7e19d59cda6a135fae6774411914dc +source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/google-brotli_1.1.0-1/v1.1.0.tar.gz +wrapdb_version = 1.1.0-1 [provide] libbrotlicommon = brotli_common_dep diff --git a/cpp/subprojects/packagefiles/google-brotli/LICENSE.build b/cpp/subprojects/packagefiles/google-brotli/LICENSE.build deleted file mode 100644 index b59833dedbe2..000000000000 --- a/cpp/subprojects/packagefiles/google-brotli/LICENSE.build +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2021 The Meson development team - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/cpp/subprojects/packagefiles/google-brotli/meson.build b/cpp/subprojects/packagefiles/google-brotli/meson.build deleted file mode 100644 index 26a1c5c992bc..000000000000 --- a/cpp/subprojects/packagefiles/google-brotli/meson.build +++ /dev/null @@ -1,153 +0,0 @@ -# Copyright © 2019-2020 Intel Corporation - -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: - -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. - -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -project( - 'google-brotli', - 'c', - license: 'MIT', - version: '1.1.1', - meson_version: '>= 0.49', -) - -cc = meson.get_compiler('c') - -dep_m = cc.find_library('m', required: false) -if not cc.has_function('log2', dependencies: dep_m) - error('Cannot find required log2() function') -endif - -inc = include_directories('c/include') - -if host_machine.system() == 'linux' - add_project_arguments('-DOS_LINUX', language: 'c') -elif host_machine.system() == 'freebsd' - add_project_arguments('-DOS_FREEBSD', language: 'c') -elif host_machine.system() == 'darwin' - add_project_arguments('-DOS_MACOSX', language: 'c') -endif - -c_args = [] -bcs = [] -bds = [] -bes = [] -install = false -if get_option('default_library') == 'shared' - c_args += ['-DBROTLI_SHARED_COMPILATION', '-DBROTLI_BUILD_PORTABLE'] - install = true - bcs = '-DBROTLICOMMON_SHARED_COMPILATION' - bds = '-DBROTLIDEC_SHARED_COMPILATION' - bes = '-DBROTLIENC_SHARED_COMPILATION' -elif get_option('default_library') == 'both' - error('both not yet supported.') -endif - -common_src = files( - 'c/common/constants.c', - 'c/common/context.c', - 'c/common/dictionary.c', - 'c/common/platform.c', - 'c/common/shared_dictionary.c', - 'c/common/transform.c', -) - -libbrotli_common = library( - 'brotli_common', - common_src, - gnu_symbol_visibility: 'hidden', - c_args: [c_args, bcs], - include_directories: inc, - version: meson.project_version(), - install: install, -) - -dec_src = files( - 'c/dec/bit_reader.c', - 'c/dec/decode.c', - 'c/dec/huffman.c', - 'c/dec/state.c', -) - -libbrotli_decoder = library( - 'brotli_decoder', - dec_src, - gnu_symbol_visibility: 'hidden', - c_args: [c_args, bds], - include_directories: inc, - link_with: libbrotli_common, - version: meson.project_version(), - install: install, -) - -enc_src = files( - 'c/enc/backward_references.c', - 'c/enc/backward_references_hq.c', - 'c/enc/bit_cost.c', - 'c/enc/block_splitter.c', - 'c/enc/brotli_bit_stream.c', - 'c/enc/cluster.c', - 'c/enc/command.c', - 'c/enc/compound_dictionary.c', - 'c/enc/compress_fragment.c', - 'c/enc/compress_fragment_two_pass.c', - 'c/enc/dictionary_hash.c', - 'c/enc/encode.c', - 'c/enc/encoder_dict.c', - 'c/enc/entropy_encode.c', - 'c/enc/fast_log.c', - 'c/enc/histogram.c', - 'c/enc/literal_cost.c', - 'c/enc/memory.c', - 'c/enc/metablock.c', - 'c/enc/static_dict.c', - 'c/enc/utf8_util.c', -) - -libbrotli_encoder = library( - 'brotli_encoder', - enc_src, - c_args: [c_args, bes], - gnu_symbol_visibility: 'hidden', - include_directories: inc, - link_with: libbrotli_common, - dependencies: dep_m, - version: meson.project_version(), - install: install, -) - -brotli_common_dep = declare_dependency( - link_with: libbrotli_common, - include_directories: inc, -) - -brotli_encoder_dep = declare_dependency( - link_with: [libbrotli_common, libbrotli_encoder], - include_directories: inc, -) - -brotli_decoder_dep = declare_dependency( - link_with: [libbrotli_common, libbrotli_decoder], - include_directories: inc, -) - -executable( - 'brotli', - 'c/tools/brotli.c', - dependencies: [brotli_decoder_dep, brotli_encoder_dep], -) diff --git a/cpp/thirdparty/versions.txt b/cpp/thirdparty/versions.txt index 42125e32b553..89013f7a80ef 100644 --- a/cpp/thirdparty/versions.txt +++ b/cpp/thirdparty/versions.txt @@ -58,8 +58,8 @@ ARROW_AZURE_SDK_BUILD_VERSION=azure-identity_1.9.0 ARROW_AZURE_SDK_BUILD_SHA256_CHECKSUM=97065bfc971ac8df450853ce805f820f52b59457bd7556510186a1569502e4a1 ARROW_BOOST_BUILD_VERSION=1.92.0 ARROW_BOOST_BUILD_SHA256_CHECKSUM=f51707c27359a0df0cac1beada86de31bb5eed5e8285592dadec384df99c2984 -ARROW_BROTLI_BUILD_VERSION=v1.0.10 -ARROW_BROTLI_BUILD_SHA256_CHECKSUM=b517ebdb5266b963d28d6e639b973479874ec72086deb6ee4a2d639e1b13606b +ARROW_BROTLI_BUILD_VERSION=v1.2.1 +ARROW_BROTLI_BUILD_SHA256_CHECKSUM=98d35d11a78dc453aebb7d10c3748f3f73ff78c8267c0dc697b8631f67bf7e8f ARROW_BZIP2_BUILD_VERSION=1.0.8 ARROW_BZIP2_BUILD_SHA256_CHECKSUM=ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269 ARROW_CARES_BUILD_VERSION=1.34.6 diff --git a/cpp/vcpkg.json b/cpp/vcpkg.json index 5d1d5c019e08..f4d4d742f30d 100644 --- a/cpp/vcpkg.json +++ b/cpp/vcpkg.json @@ -59,5 +59,5 @@ "zstd" ], "$comment": "We can update builtin-baseline by 'vcpkg x-update-baseline'", - "builtin-baseline": "9b965a116838c6cdcd36bca60d1b81b030c8ab8d" + "builtin-baseline": "61d7eaeb094a6acbc23d9c2e54de9208175fda47" }