Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade abseil to 20230802.1 #95

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions .github/workflows/dependencies.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Upgrade vendored dependencies

on:
workflow_dispatch:
schedule:
- cron: '15 3 1 * *'

jobs:
upgrade:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.2"
- name: Upgrade all vendored dependencies to their latest versions
run: ./scripts/update-dependencies
- uses: peter-evans/create-pull-request@v5
with:
branch: 'upgrade-vendored-dependencies'
title: 'Upgrade vendored dependencies'
commit-message: 'Upgrade vendored dependencies to latest versions'
labels: dependencies
body: |
- Upgrade RE2
- Upgrade Abseil
12 changes: 5 additions & 7 deletions dependencies.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
---
libre2:
version: "2023-09-01"
sha256: "5bb6875ae1cd1e9fedde98018c346db7260655f86fdb8837e3075103acd3649b"
# sha-256 hash provided in https://github.com/google/re2/releases/download/2023-09-01/re2-2023-09-01.tar.gz

version: '2023-09-01'
sha256: 5bb6875ae1cd1e9fedde98018c346db7260655f86fdb8837e3075103acd3649b
abseil:
version: "20230125.3"
sha256: 5366d7e7fa7ba0d915014d387b66d0d002c03236448e1ba9ef98122c13b35c36
# sha-256 hash provided in https://github.com/abseil/abseil-cpp/archive/refs/tags/20230125.3.tar.gz
version: "20230802.1"
sha256: "987ce98f02eefbaf930d6e38ab16aa05737234d7afbab2d5c4ea7adbe50c28ed"
8 changes: 6 additions & 2 deletions ext/re2/extconf.rb
Original file line number Diff line number Diff line change
Expand Up @@ -296,17 +296,18 @@ def build_with_system_libraries
-labsl_crc32c
-labsl_crc_internal
-labsl_crc_cpu_detect
-labsl_raw_hash_set
-labsl_hash
-labsl_city
-labsl_bad_variant_access
-labsl_low_level_hash
-labsl_raw_hash_set
-labsl_hashtablez_sampler
-labsl_exponential_biased
-labsl_bad_optional_access
-labsl_str_format_internal
-labsl_synchronization
-labsl_graphcycles_internal
-labsl_kernel_timeout_internal
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was hoping we could drop this workaround in #96, but the runners are still using pkgconf 1.9.3. 2.0.0 will fix this: pkgconf/pkgconf#268

-labsl_stacktrace
-labsl_symbolize
-ldbghelp
Expand All @@ -316,9 +317,10 @@ def build_with_system_libraries
-labsl_time
-labsl_civil_time
-labsl_strings
-labsl_string_view
-labsl_strings_internal
-ladvapi32
-labsl_base
-ladvapi32
-labsl_spinlock_wait
-labsl_int128
-labsl_throw_delegate
Expand Down Expand Up @@ -396,6 +398,8 @@ def build_with_vendored_libraries

process_recipe(abseil_recipe) do |recipe|
recipe.configure_options += ['-DABSL_PROPAGATE_CXX_STD=ON', '-DCMAKE_CXX_VISIBILITY_PRESET=hidden']
# Workaround for https://github.com/abseil/abseil-cpp/issues/1510
recipe.configure_options += ['-DCMAKE_CXX_FLAGS=-DABSL_FORCE_WAITER_MODE=4'] if windows?
end

process_recipe(re2_recipe) do |recipe|
Expand Down
2 changes: 1 addition & 1 deletion ext/re2/recipes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ def build_recipe(name, version)
recipe.target = File.join(PACKAGE_ROOT_DIR, 'ports')
recipe.configure_options += [
# abseil needs a C++14 compiler
'-DCMAKE_CXX_STANDARD=17',
'-DCMAKE_CXX_STANDARD=14',
# needed for building the C extension shared library with -fPIC
'-DCMAKE_POSITION_INDEPENDENT_CODE=ON',
# ensures pkg-config and installed libraries will be in lib, not lib64
Expand Down
35 changes: 35 additions & 0 deletions scripts/update-dependencies
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/usr/bin/env ruby

require "net/http"
require "digest/sha2"
require "yaml"

re2_response = Net::HTTP.get_response(URI("https://github.com/google/re2/releases/latest"))
exit 1 unless re2_response.is_a?(Net::HTTPRedirection)

re2_release = File.basename(URI(re2_response["Location"]).path)
re2_redirect = Net::HTTP.get_response(URI("https://github.com/google/re2/releases/download/#{re2_release}/re2-#{re2_release}.tar.gz"))
exit 1 unless re2_redirect.is_a?(Net::HTTPRedirection)

re2_archive = Net::HTTP.get_response(URI(re2_redirect["Location"]))
exit 1 unless re2_archive.is_a?(Net::HTTPSuccess)
re2_sha256sum = Digest::SHA2.hexdigest(re2_archive.body)

abseil_response = Net::HTTP.get_response(URI("https://github.com/abseil/abseil-cpp/releases/latest"))
exit 1 unless abseil_response.is_a?(Net::HTTPRedirection)

abseil_tag = File.basename(URI(abseil_response["Location"]).path)
abseil_redirect = Net::HTTP.get_response(URI("https://github.com/abseil/abseil-cpp/archive/refs/tags/#{abseil_tag}.tar.gz"))
exit 1 unless abseil_redirect.is_a?(Net::HTTPRedirection)

abseil_archive = Net::HTTP.get_response(URI(abseil_redirect["Location"]))
exit 1 unless abseil_archive.is_a?(Net::HTTPSuccess)
abseil_sha256sum = Digest::SHA2.hexdigest(abseil_archive.body)

File.write(
File.expand_path("../dependencies.yml", __dir__),
{
"libre2" => { "version" => re2_release, "sha256" => re2_sha256sum },
"abseil" => { "version" => abseil_tag, "sha256" => abseil_sha256sum }
}.to_yaml
)