Upgrade Core to 57e8c91ed68e3ee903526fd2f45cb16ca46759d8#909
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: Upgrades vendored Sourcemeta Core to
🤖 Was this summary useful? React with 👍 or 👎 |
| endif() | ||
|
|
||
| target_link_libraries(sourcemeta_core_uri | ||
| PRIVATE sourcemeta::core::ip) |
There was a problem hiding this comment.
vendor/core/src/core/uri/CMakeLists.txt:11 — Linking sourcemeta_core_uri to sourcemeta::core::ip as PRIVATE can break consumers when core::uri is built as a static library (the dependency won’t propagate, leading to unresolved symbols at final link). Consider making this dependency part of the public link interface if uri’s object code calls into ip.
Severity: high
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
| auto add(const std::string_view uri_template, const Identifier identifier) | ||
| -> void; | ||
| auto add(const std::string_view uri_template, const Identifier identifier, | ||
| const std::span<const Argument> arguments = {}) -> void; |
There was a problem hiding this comment.
vendor/core/src/core/uritemplate/include/sourcemeta/core/uritemplate_router.h:80 — Argument uses std::string_view and add() persists the passed arguments, so passing temporary strings (argument names or string values) can leave dangling views and cause UB later. The lifetime note currently only mentions uri_template, so callers may not realize the same constraint applies to arguments.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
| elseif(component STREQUAL "ip") | ||
| include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_core_ip.cmake") | ||
| elseif(component STREQUAL "uri") | ||
| include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_core_ip.cmake") |
There was a problem hiding this comment.
vendor/core/config.cmake.in:66 — sourcemeta_core_ip.cmake is included both for the ip component and again as a dependency of uri, so the default component list will attempt to include it twice. If the generated sourcemeta_core_ip.cmake isn’t idempotent (e.g., guarded with if(NOT TARGET ...) / include_guard()), this can break find_package(core) for default installs.
Severity: medium
Other Locations
vendor/core/config.cmake.in:64
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com