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

abseil: update to 20230802.0 #19905

Merged
merged 3 commits into from
Aug 18, 2023
Merged

Conversation

judaew
Copy link
Member

@judaew judaew commented Aug 15, 2023

Description

Commits:

  • abseil: update to 20230802.0
  • apache-arrow,grpc,brotobuf3*,re2,s2geometry: Revbump after update abseil
Type(s)
  • bugfix
  • enhancement
  • security fix
Tested on

macOS 13.4.1 22F770820d x86_64
Xcode 15.0 15A5195m

Verification

Have you

  • followed our Commit Message Guidelines?
  • squashed and minimized your commits?
  • checked that there aren't other open pull requests for the same change?
  • referenced existing tickets on Trac with full URL?
  • checked your Portfile with port lint --nitpick?
  • tried existing tests with sudo port test?
  • tried a full install with sudo port -vst install?
  • tested basic functionality of all binary files?
  • checked that the Portfile's most important variants haven't been broken?

@macportsbot
Copy link

Notifying maintainers:
@mascguy for port protobuf3-cpp-upstream.
@herbygillot for port re2.
@barracuda156 for port s2geometry.

@macportsbot macportsbot added type: update maintainer maintainer: open Affects an openmaintainer port by: member Created by a member with commit rights labels Aug 15, 2023
Copy link
Member

@mascguy mascguy left a comment

Choose a reason for hiding this comment

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

Fine with me, assuming that CI passes

@barracuda156
Copy link
Contributor

barracuda156 commented Aug 15, 2023

@judaew abseil build is broken now:

/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_abseil/abseil/work/abseil-cpp-20230802.0/absl/base/internal/sysinfo.cc: In function 'pid_t absl::lts_20230802::base_internal::GetTID()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_abseil/abseil/work/abseil-cpp-20230802.0/absl/base/internal/sysinfo.cc:431:3: error: 'pthread_threadid_np' was not declared in this scope; did you mean 'pthread_is_threaded_np'?
  431 |   pthread_threadid_np(nullptr, &tid);
      |   ^~~~~~~~~~~~~~~~~~~
      |   pthread_is_threaded_np
make[2]: *** [absl/base/CMakeFiles/base.dir/internal/sysinfo.cc.o] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_abseil/abseil/work/build'
make[1]: *** [absl/base/CMakeFiles/base.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Could you please include a patch, like what we used earlier in your other port, spdlog?
0379c87

@judaew
Copy link
Member Author

judaew commented Aug 15, 2023

@barracuda156, done

@barracuda156
Copy link
Contributor

@judaew Thank you! Build is working now.

P. S. The pthread issue affects SL PPC, but is not specific to it (and not arch-specific either): it also affects Rosetta, as well as 10.4–10.5 across all archs. May be worth changing related comment in the portfile, otherwise someone may assume that the fix is only needed on ppc.

@barracuda156
Copy link
Contributor

@judaew However, s2geometry does not build with this abseil version, as is:

In file included from /opt/local/include/absl/synchronization/mutex.h:74,
                 from /opt/local/include/absl/strings/internal/cordz_info.h:31,
                 from /opt/local/include/absl/strings/cord.h:91,
                 from /opt/local/include/absl/status/internal/status_internal.h:23,
                 from /opt/local/include/absl/status/status.h:59,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_s2geometry/s2geometry/work/s2geometry-7773d518b1f29caa1c2045eb66ec519e025be108/src/s2/s2coder.h:23,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_s2geometry/s2geometry/work/s2geometry-7773d518b1f29caa1c2045eb66ec519e025be108/src/s2/encoded_s2point_vector.h:31,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_s2geometry/s2geometry/work/s2geometry-7773d518b1f29caa1c2045eb66ec519e025be108/src/s2/encoded_s2point_vector.cc:18:
/opt/local/include/absl/synchronization/internal/kernel_timeout.h:94:45: error: 'clockid_t' has not been declared
   94 |   struct timespec MakeClockAbsoluteTimespec(clockid_t c) const;
      |                                             ^~~~~~~~~
In file included from /opt/local/include/absl/synchronization/mutex.h:74,
                 from /opt/local/include/absl/strings/internal/cordz_info.h:31,
                 from /opt/local/include/absl/strings/cord.h:91,
                 from /opt/local/include/absl/status/internal/status_internal.h:23,
                 from /opt/local/include/absl/status/status.h:59,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_s2geometry/s2geometry/work/s2geometry-7773d518b1f29caa1c2045eb66ec519e025be108/src/s2/s2coder.h:23,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_s2geometry/s2geometry/work/s2geometry-7773d518b1f29caa1c2045eb66ec519e025be108/src/s2/s2point.h:27,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_s2geometry/s2geometry/work/s2geometry-7773d518b1f29caa1c2045eb66ec519e025be108/src/s2/s1angle.h:28,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_s2geometry/s2geometry/work/s2geometry-7773d518b1f29caa1c2045eb66ec519e025be108/src/s2/s2cell_id.h:43,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_s2geometry/s2geometry/work/s2geometry-7773d518b1f29caa1c2045eb66ec519e025be108/src/s2/encoded_s2cell_id_vector.h:29,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_s2geometry/s2geometry/work/s2geometry-7773d518b1f29caa1c2045eb66ec519e025be108/src/s2/encoded_s2cell_id_vector.cc:18:
/opt/local/include/absl/synchronization/internal/kernel_timeout.h:94:45: error: 'clockid_t' has not been declared
   94 |   struct timespec MakeClockAbsoluteTimespec(clockid_t c) const;
      |                                             ^~~~~~~~~
make[2]: *** [CMakeFiles/s2.dir/src/s2/encoded_s2point_vector.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [CMakeFiles/s2.dir/src/s2/encoded_s2cell_id_vector.cc.o] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_s2geometry/s2geometry/work/build'
make[1]: *** [CMakeFiles/s2.dir/all] Error 2
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_s2geometry/s2geometry/work/build'
make: *** [all] Error 2

@judaew
Copy link
Member Author

judaew commented Aug 15, 2023

Thank you, @barracuda156
OK, I'll mark this PR as draft for now.

@judaew judaew marked this pull request as draft August 15, 2023 23:03
@barracuda156
Copy link
Contributor

@judaew I can open an issue with s2 upstream, if it has not been already fixed by them. Is this upstream-related or our legacy-support?

@judaew
Copy link
Member Author

judaew commented Aug 15, 2023

@barracuda156
Copy link
Contributor

barracuda156 commented Aug 15, 2023

@judaew I see, so it is upstream bug, and they do not care.

Well, we should find a fix for this.

UPD. Made a Trac ticket: https://trac.macports.org/ticket/67969

@judaew
Copy link
Member Author

judaew commented Aug 16, 2023

I just increased legacysupport.newest_darwin_requires_legacy to 15 to cover the stuff related to clock_gettime. Perhaps this option also will be required for s2geometry.

@mascguy
Copy link
Member

mascguy commented Aug 17, 2023

I just increased legacysupport.newest_darwin_requires_legacy to 15 to cover the stuff related to clock_gettime. Perhaps this option also will be required for s2geometry.

That covers the only known issue, correct?

Sergey, do your builds look good now?

@mascguy mascguy marked this pull request as ready for review August 17, 2023 22:47
@mascguy
Copy link
Member

mascguy commented Aug 17, 2023

@herbygillot , any concerns relative to re2?

@barracuda156
Copy link
Contributor

@mascguy I will try in an hour or so and update here.

@barracuda156
Copy link
Contributor

@mascguy Yes, it builds with legacysupport.

@judaew Could you please add legacysupport to s2geometry so that we do not revbump it twice?

PortSystem          1.0
PortGroup           active_variants 1.1
PortGroup           cmake 1.1
PortGroup           github 1.0
PortGroup           legacysupport 1.1
PortGroup           openssl 1.0

# clock_gettime pulled over from abseil, see: https://github.com/macports/macports-ports/pull/19905#issuecomment-1679736275
legacysupport.newest_darwin_requires_legacy 15

@judaew judaew deleted the update/abseil-20230802.0 branch August 18, 2023 22:56
@mascguy

This comment was marked as outdated.

@mascguy
Copy link
Member

mascguy commented Aug 18, 2023

I'm seeing various failures on the buildbots, for both abseil and re2. I'll create formal tickets to track these, but just a proactive heads-up:

For abseil, there are errors related to snprintf_l and asprintf_l; example:

build.macports.org/builders/ports-10.8_x86_64-builder/builds/144930/steps/install-port/logs/stdio

Thankfully this is only occurring on 10.7 and 10.8. However, this is also blocking all of the dependents we rev-bumped too.

For re2, there are errors related to clockid_t. Presumably that port also needs legacysupport, similar to s2geometry? Example:

build.macports.org/builders/ports-10.10_x86_64-builder/builds/236139/steps/install-port/logs/stdio

protobuf3-cpp-upstream has the same issue as re2. But given the number of dependents for abseil, cascading the use of legacysupport everywhere - simply because of one port - simply isn't sustainable.

So we need to engage with upstream, and/or see if it's feasible to work around this some other way.

mascguy added a commit that referenced this pull request Aug 18, 2023
mascguy added a commit that referenced this pull request Aug 18, 2023
@mascguy

This comment was marked as outdated.

@mascguy

This comment was marked as outdated.

@mascguy
Copy link
Member

mascguy commented Aug 19, 2023

For now, I've fixed re2 and protobuf3-cpp-upstream, via legacysupport. We might have to do the same for apache-arrow and grpc too...

p.s. I've queued rebuilds for apache-arrow and grpc, for 10.6 thru 10.11 (minus 10.7/10.8, as abseil fails there). Let's see if they exhibit the same issue...

apache-arrow is blocked by other dependencies, so no worries there. And grpc already uses legacysupport, which explains why it's building fine too.

@mascguy
Copy link
Member

mascguy commented Aug 19, 2023

Okay, abseil is fixed for 10.7/10.8, so I'll re-queue builds there too. Crisis Averted! :-)

@barracuda156
Copy link
Contributor

@mascguy apache-arrow needs legacysupport now:

In file included from /opt/local/include/absl/synchronization/mutex.h:74,
                 from /opt/local/include/absl/strings/internal/cordz_info.h:31,
                 from /opt/local/include/absl/strings/cord.h:91,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/internal/hash_function.h:21,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/internal/object_requests.h:23,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/idempotency_policy.h:24,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/options.h:18,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/client_options.h:19,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/client_options.cc:15:
/opt/local/include/absl/synchronization/internal/kernel_timeout.h:94:45: error: 'clockid_t' has not been declared
   94 |   struct timespec MakeClockAbsoluteTimespec(clockid_t c) const;
      |                                             ^~~~~~~~~
[98/188] /opt/local/bin/g++-mp-12  -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep -isystem /opt/local/include -isystem /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep-build -isystem /opt/local/libexec/openssl3/include -isystem /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/crc32c_ep-install/include -pipe -I/opt/local/libexec/boost/1.81/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.81/include -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -fdiagnostics-color=always -fPIC -O3 -DNDEBUG -O2 -ftree-vectorize -mmacosx-version-min=10.6 -Wall -Wextra -Wconversion -Wno-sign-conversion -MD -MT google/cloud/storage/CMakeFiles/google_cloud_cpp_storage.dir/client.cc.o -MF google/cloud/storage/CMakeFiles/google_cloud_cpp_storage.dir/client.cc.o.d -o google/cloud/storage/CMakeFiles/google_cloud_cpp_storage.dir/client.cc.o -c /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/client.cc
FAILED: google/cloud/storage/CMakeFiles/google_cloud_cpp_storage.dir/client.cc.o 
/opt/local/bin/g++-mp-12  -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep -isystem /opt/local/include -isystem /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep-build -isystem /opt/local/libexec/openssl3/include -isystem /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/crc32c_ep-install/include -pipe -I/opt/local/libexec/boost/1.81/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.81/include -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -fdiagnostics-color=always -fPIC -O3 -DNDEBUG -O2 -ftree-vectorize -mmacosx-version-min=10.6 -Wall -Wextra -Wconversion -Wno-sign-conversion -MD -MT google/cloud/storage/CMakeFiles/google_cloud_cpp_storage.dir/client.cc.o -MF google/cloud/storage/CMakeFiles/google_cloud_cpp_storage.dir/client.cc.o.d -o google/cloud/storage/CMakeFiles/google_cloud_cpp_storage.dir/client.cc.o -c /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/client.cc
In file included from /opt/local/include/absl/synchronization/mutex.h:74,
                 from /opt/local/include/absl/strings/internal/cordz_info.h:31,
                 from /opt/local/include/absl/strings/cord.h:91,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/internal/hash_function.h:21,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/internal/object_requests.h:23,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/idempotency_policy.h:24,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/options.h:18,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/client_options.h:19,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/internal/raw_client.h:19,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/internal/logging_client.h:18,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/client.h:19,
                 from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep/google/cloud/storage/client.cc:15:
/opt/local/include/absl/synchronization/internal/kernel_timeout.h:94:45: error: 'clockid_t' has not been declared
   94 |   struct timespec MakeClockAbsoluteTimespec(clockid_t c) const;
      |                                             ^~~~~~~~~
ninja: build stopped: subcommand failed.


-- stderr output is:

CMake Error at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_apache-arrow/apache-arrow/work/build/google_cloud_cpp_ep-prefix/src/google_cloud_cpp_ep-stamp/google_cloud_cpp_ep-build-RELEASE.cmake:47 (message):
  Stopping after outputting logs.


ninja: build stopped: subcommand failed.

mascguy added a commit that referenced this pull request Aug 20, 2023
@mascguy
Copy link
Member

mascguy commented Aug 20, 2023

@mascguy apache-arrow needs legacysupport now

Fixed in master

@barracuda156
Copy link
Contributor

@mascguy Thank you!

@neverpanic
Copy link
Sponsor Member

@mascguy @barracuda156 @judaew This update changed the names and versions of the installed libraries and broke the Bear and mtxclient ports:

Could not open /opt/local/lib/libabsl_time_zone.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_log_severity.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_raw_logging_internal.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_throw_delegate.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_int128.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_spinlock_wait.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_base.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_strings_internal.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_strings.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_civil_time.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_time.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_malloc_internal.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_demangle_internal.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_debugging_internal.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_symbolize.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_stacktrace.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_graphcycles_internal.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_synchronization.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_str_format_internal.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_bad_optional_access.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_exponential_biased.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_hashtablez_sampler.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_raw_hash_set.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_low_level_hash.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_bad_variant_access.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_city.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_hash.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_crc_cpu_detect.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_crc_internal.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_crc32c.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_crc_cord_state.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_cordz_handle.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_cordz_functions.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_cord_internal.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_cordz_info.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_cord.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_flags_program_name.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_flags_config.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_flags_commandlineflag_internal.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_flags_commandlineflag.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_flags_private_handle_accessor.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_flags_reflection.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_flags_marshalling.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_flags_internal.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_flags.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/lib/libmatrix_client.0.9.2.dylib)
Could not open /opt/local/lib/libabsl_strerror.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/bin/bear)
Could not open /opt/local/lib/libabsl_status.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/bin/bear)
Could not open /opt/local/lib/libabsl_statusor.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/bin/bear)
Could not open /opt/local/lib/libabsl_random_seed_gen_exception.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/bin/bear)
Could not open /opt/local/lib/libabsl_random_internal_seed_material.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/bin/bear)
Could not open /opt/local/lib/libabsl_random_internal_platform.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/bin/bear)
Could not open /opt/local/lib/libabsl_random_internal_randen_slow.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/bin/bear)
Could not open /opt/local/lib/libabsl_random_internal_randen_hwaes_impl.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/bin/bear)
Could not open /opt/local/lib/libabsl_random_internal_randen_hwaes.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/bin/bear)
Could not open /opt/local/lib/libabsl_random_internal_randen.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/bin/bear)
Could not open /opt/local/lib/libabsl_random_internal_pool_urbg.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/bin/bear)
Could not open /opt/local/lib/libabsl_random_seed_sequences.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/bin/bear)
Could not open /opt/local/lib/libabsl_random_distributions.2301.0.0.dylib: Error opening or reading file (referenced from /opt/local/bin/bear)

There already is a line in the Portfile that warns about this: "Ports that depend on this port must be revbump after update".

Please revbump everything that depends on abseil. That list can be obtained using

:) clemens@cBookMax:~$ port echo depends:abseil
apache-arrow
grpc
protobuf3-cpp-upstream
py37-grpcio
py37-grpcio-tools
py38-grpcio
py38-grpcio-tools
py39-grpcio
py39-grpcio-tools
py39-pyarrow
py310-grpcio
py310-grpcio-tools
py310-pyarrow
py311-pyarrow
re2
s2geometry

@mascguy
Copy link
Member

mascguy commented Aug 26, 2023

@mascguy @barracuda156 @judaew This update changed the names and versions of the installed libraries and broke the Bear and mtxclient ports

Everything else was rev-bumped as part of this update, but bear/mtxclient were missed. I'll take care of those ASAP.

Thanks for the heads-up Clemens!

@mascguy
Copy link
Member

mascguy commented Aug 26, 2023

@mascguy @barracuda156 @judaew This update changed the names and versions of the installed libraries and broke the Bear and mtxclient ports

Everything else was rev-bumped as part of this update, but bear/mtxclient were missed. I'll take care of those ASAP.

Hmmmm... actually, if these ports are dependent on abseil - and they certainly appear to be linked to it - then they also need to declare a lib dep on it. Their absence from the list of dependents proves my point:

$ port echo depends:abseil
apache-arrow
grpc
protobuf3-cpp-upstream
py37-grpcio
py37-grpcio-tools
py38-grpcio
py38-grpcio-tools
py39-grpcio
py39-grpcio-tools
py39-pyarrow
py310-grpcio
py310-grpcio-tools
py310-pyarrow
py311-pyarrow
re2
s2geometry

@mascguy
Copy link
Member

mascguy commented Aug 26, 2023

@mascguy @barracuda156 @judaew This update changed the names and versions of the installed libraries and broke the Bear and mtxclient ports

Everything else was rev-bumped as part of this update, but bear/mtxclient were missed. I'll take care of those ASAP.

Hmmmm... actually, if these ports are dependent on abseil - and they certainly appear to be linked to it - then they also need to declare a lib dep on it. Their absence from the list of dependents proves my point.

So... the problem isn't that they were missed from this PR. Rather, they didn't declare the dependency in the first place, which is why they weren't included in the list of rev-bumps. ;-)

@mascguy
Copy link
Member

mascguy commented Aug 26, 2023

@neverpanic Clemens, it looks like you're missing a few more lib deps for Bear as well:

$ otool -L $(which bear) | ggrep --invert-match "libabsl_"
/opt/local/bin/bear:
	/opt/local/lib/libMacportsLegacySupport.dylib (compatibility version 1.0.0, current version 1.0.99)
	/opt/local/lib/libprotobuf.32.dylib (compatibility version 32.0.0, current version 3.21.12)
	/opt/local/lib/libgrpc++.1.48.dylib (compatibility version 1.48.0, current version 1.48.4)
	/opt/local/lib/libgrpc.26.dylib (compatibility version 26.0.0, current version 26.0.0)
	/opt/local/lib/libaddress_sorting.26.dylib (compatibility version 26.0.0, current version 26.0.0)
	/opt/local/lib/libre2.11.dylib (compatibility version 11.0.0, current version 11.0.0)
	/opt/local/lib/libupb.26.dylib (compatibility version 26.0.0, current version 26.0.0)
	/opt/local/lib/libcares.2.dylib (compatibility version 2.0.0, current version 2.6.1)
	/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.3.0)
	/opt/local/lib/libgpr.26.dylib (compatibility version 26.0.0, current version 26.0.0)
	/opt/local/libexec/openssl3/lib/libssl.3.dylib (compatibility version 3.0.0, current version 3.0.0)
	/opt/local/libexec/openssl3/lib/libcrypto.3.dylib (compatibility version 3.0.0, current version 3.0.0)
	/opt/local/lib/libfmt9/libfmt.9.dylib (compatibility version 9.0.0, current version 9.1.0)
	/opt/local/lib/libcxx/libc++.1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)

So you're missing lib deps for c-ares and zlib too.

Do you mind if I go ahead and add lib deps for those as well, along with abseil?

@neverpanic
Copy link
Sponsor Member

Go ahead, thanks.

I guess those dependencies all come from the use of re2, and maybe aren't actually required, since linking against re2 would be enough. I need to check why those ports link against abseil, when they should only link against re2, really.

@neverpanic
Copy link
Sponsor Member

neverpanic commented Aug 26, 2023

It seems to me that the problem is this:

:) clemens@cBookMax:~$ pkg-config --libs re2 | sed -E 's/ +/\n/g'
-L/opt/local/lib
-pthread
-lre2
-labsl_flags
-labsl_flags_internal
-labsl_flags_marshalling
-labsl_flags_reflection
-labsl_flags_private_handle_accessor
-labsl_flags_commandlineflag
-labsl_flags_commandlineflag_internal
-labsl_flags_config
-labsl_flags_program_name
-labsl_cord
-labsl_cordz_info
-labsl_cord_internal
-labsl_cordz_functions
-labsl_cordz_handle
-labsl_crc_cord_state
-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_hashtablez_sampler
-labsl_exponential_biased
-labsl_bad_optional_access
-labsl_str_format_internal
-labsl_synchronization
-labsl_graphcycles_internal
-labsl_kernel_timeout_internal
-labsl_stacktrace
-labsl_symbolize
-labsl_debugging_internal
-labsl_demangle_internal
-labsl_malloc_internal
-labsl_time
-labsl_civil_time
-labsl_strings
-labsl_string_view
-labsl_strings_internal
-labsl_base
-labsl_spinlock_wait
-labsl_int128
-labsl_throw_delegate
-labsl_raw_logging_internal
-labsl_log_severity
-labsl_time_zone

mtxclient uses meson's dependency() function, which uses pkg-config by default. re2 should probably not export all these abseil libraries, since libre2.dylib already links against them.

@neverpanic
Copy link
Sponsor Member

The same problem seems to affect grpc, which causes most of the linking dependencies of Bear, too:

:) clemens@cBookMax:/opt/dports/devel/Bear$ pkg-config --libs grpc | sed -E 's/ +/\n/g'
-L/opt/local/lib
-L/opt/local/libexec/openssl3/lib
-L/opt/local/lib
-lgrpc
-laddress_sorting
-lre2
-lupb
-lcares
-lz
-lgpr
-lssl
-lcrypto
-labsl_raw_hash_set
-labsl_hashtablez_sampler
-labsl_hash
-labsl_city
-labsl_low_level_hash
-labsl_random_distributions
-labsl_random_seed_sequences
-labsl_random_internal_pool_urbg
-labsl_random_internal_randen
-labsl_random_internal_randen_hwaes
-labsl_random_internal_randen_hwaes_impl
-labsl_random_internal_randen_slow
-labsl_random_internal_platform
-labsl_random_internal_seed_material
-labsl_random_seed_gen_exception
-labsl_statusor
-labsl_status
-labsl_cord
-labsl_cordz_info
-labsl_cord_internal
-labsl_cordz_functions
-labsl_exponential_biased
-labsl_cordz_handle
-labsl_crc_cord_state
-labsl_crc32c
-labsl_crc_internal
-labsl_crc_cpu_detect
-labsl_bad_optional_access
-labsl_strerror
-labsl_str_format_internal
-labsl_synchronization
-labsl_graphcycles_internal
-labsl_kernel_timeout_internal
-labsl_stacktrace
-labsl_symbolize
-labsl_debugging_internal
-labsl_demangle_internal
-labsl_malloc_internal
-labsl_time
-labsl_civil_time
-labsl_strings
-labsl_string_view
-labsl_strings_internal
-labsl_base
-labsl_spinlock_wait
-labsl_int128
-labsl_throw_delegate
-labsl_time_zone
-labsl_bad_variant_access
-labsl_raw_logging_internal
-labsl_log_severity

mascguy added a commit that referenced this pull request Aug 26, 2023
mascguy added a commit that referenced this pull request Aug 26, 2023
@mascguy
Copy link
Member

mascguy commented Aug 26, 2023

Clemens, since this appears to be a case of over-linking, I didn't add lib deps for c-ares and zlib at this point. Unless you think this won't be easily fixable, in which case, I can add them as well.

Up to you!

@neverpanic
Copy link
Sponsor Member

I'll open a PR to grpc and re2 to fix the overlinking, at which point those should probably disappear, so they won't be necessary at this time.

Thank you for fixing the others.

@mascguy
Copy link
Member

mascguy commented Aug 26, 2023

I'll open a PR to grpc and re2 to fix the overlinking, at which point those should probably disappear, so they won't be necessary at this time.

Thank you for fixing the others.

You bet, thanks for letting us know!

@neverpanic
Copy link
Sponsor Member

#20161

herbygillot pushed a commit that referenced this pull request Aug 27, 2023
re2 exports a pkg-config file that instructs all users of re2 to link
against some libraries from libabseil when linking against re2. Because
abseil often changes its soversion, this requires many ports that use
re2 to be revbumped whenever abseil changes, even though they only use
symbols from re2.

Avoid this by using the Requires.private field in the re2 pkg-config
file as documented in [1]. See also [2], which explains the difference
in linking.

See: #19905

[1]: https://people.freedesktop.org/~dbn/pkg-config-guide.html#concepts
[2]: https://stackoverflow.com/a/61674208
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
by: member Created by a member with commit rights maintainer: open Affects an openmaintainer port maintainer type: update
Development

Successfully merging this pull request may close these issues.

6 participants