[MacPorts] #70048: nghttp2 now requires C++20 which introduces a dependency cycle with clang compilers (was: openslide at 4.0.0+universal: error: The following dependencies were not installed because all of them have unmet dependencies (likely due to a dependency cycle))

MacPorts noreply at macports.org
Tue May 21 16:28:17 UTC 2024


#70048: nghttp2 now requires C++20 which introduces a dependency cycle with clang
compilers
-------------------------------------------------+-------------------------
  Reporter:  conradkun                           |      Owner:  (none)
      Type:  defect                              |     Status:  new
  Priority:  High                                |  Milestone:
 Component:  ports                               |    Version:  2.9.3
Resolution:                                      |   Keywords:
      Port:  nghttp2 curl clang-5.0 clang-6.0    |
  clang-7.0 clang-8.0 clang-9.0 clang-10         |
  clang-11 clang-12 clang-13 clang-14 clang-15   |
  clang-16 clang-17 clang-18                     |
-------------------------------------------------+-------------------------
Changes (by ryandesign):

 * priority:  Normal => High
 * cc: Schamschula, ryandesign (added)
 * port:  openslide =>
     nghttp2 curl clang-5.0 clang-6.0 clang-7.0 clang-8.0 clang-9.0
     clang-10 clang-11 clang-12 clang-13 clang-14 clang-15 clang-16
     clang-17 clang-18


Comment:

 Ok…

 {{{
 Error: The following dependencies were not installed because all of them
 have unmet dependencies (likely due to a dependency cycle): libjpeg-turbo
 tiff openjpeg gdk-pixbuf2 cmake curl nghttp2 clang-16 libomp llvm-16
 libdeflate lcms2
 }}}

 clang-16 depends on cmake which depends on curl which depends on nghttp2
 which depends on clang-16.

 This was caused by the recent
 [changeset:c01b6bba5f7980296914087abaf51e47ce7f39c1/macports-ports update
 of nghttp2] to a version that
 [changeset:ac569fd91075eb251841273f0d1a1e0f1b2629bf/macports-ports
 requires C++20].

 I want to enable the +http2 variant in the curl port by default wherever
 possible because [ticket:65056 people want HTTP/2 support] but it requires
 nghttp2. The curl port therefore only
 [changeset:b944040204a0f97164809ada1205c1071e7d8436/macports-ports enables
 the +http2 variant by default on systems that have a C++14 compiler]. Now
 that nghttp2 requires C++20, we will have to remove +http2 support from
 most macOS versions since their Xcode versions don't have C++20 compilers.

 Or maybe we should switch the compilers to use cmake-bootstrap instead of
 cmake to resolve the dependency cycle.

-- 
Ticket URL: <https://trac.macports.org/ticket/70048#comment:1>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list