Resolves https://github.com/microsoft/vcpkg/issues/35566
This pr includes https://github.com/microsoft/vcpkg/pull/31159 and
https://github.com/microsoft/vcpkg/pull/35399
Ports changed in this pr:
Most of these changes stem from the fact that protobuf now depends on
abseil and requires c++14 while ports consume protobuf using
`target_link_libraries(lib ${Protobuf_LIBRARIES})` instead of
`target_link_libraries(lib PUBLIC protobuf::libprotobuf)`.
* **abseil** Updated to 03/04/2024 to address MSVC build issue in
openvino
* **arcus** Updated to 4.13.2
* **braft** Patched to use `find_package(Protobuf` instead of custom
FindProtobuf module. also link with `PUBLIC protobuf::libprotobuf)`.
* **brpc** Patch several `target_link_library` calls to include `PUBLIC`
instead of nothing. Patch some warnings that are treated as errors by
some OSX compiler. Patch usage of changed protobuf features most
importantly removal of `SetLogHandler`, tbd whether this patch is
acceptable with upstream.
* **cld3** Use CONFIG to find protobuf to propagate dependent abseil
libs and cxx14 correctly.
* **ecal** Use CONFIG to find protobuf. Use PUBLIC when linking it.
* **gamenetworkingsockets** Add `-DCMAKE_FIND_PACKAGE_PREFER_CONFIG=on`
for protobuf.
* **gz-transport12** Update to fix usage of removed protobuf features.
* **ignition-msgs1/5/6** Remove protobuf version check which is confused
by the duplicate versioning scheme (v25.1 vs. 3.25.1 vs 4.x). Why are we
even maintaining this no longer maintained major version of this port? I
would welcome a more strict policy on removing ports/adding them to
ci.baseline.txt
* **ignition-transport4/8/9** Same as above + cherry-pick a protobuf
deprecation patch.
* **libprotobuf-mutator** Cherry-pick two commits to address altered
protobuf functionality. Add CONFIG and PUBLIC to protobuf handling in
CMake.
* **marble** Explicitly set protobuf to not found since it is not part
of the vcpkg.json but is made available transitively but another
dependency.
* **mysql-connector-cpp** Several CMake changes and removal of
protobuf::SetLogHandler patch.
* **openvino** Find protobuf using CONFIG
* **osgearth** Link libraries using PUBLIC and link with
protobuf::libprotobuf instead of Protobuf_LIBRARIES
* **paraview** Find protobuf using CONFIG and remove version check
* **pulsar-client-cpp** Add protobuf linkage to PULSAR_OBJECT_LIB.
Simplify protoc patch. Remove -Werror.
* **shogun** Update and patch as much as possible. Users are required to
override bitsery version to 4.x to use shogun since it does not support
5.x provided by vcpkg. Therefore add shogun to ci.baseline.txt.
* **srpc** Update and fix static crt linkage. Patch protobuf linkage and
remove hardcoded `-std=c++11` flag. Protobuf requires c++14 and CMake
does not recognize the hardcoded c++11 flag and will therefore not add a
c++14 flag when the compiler uses c++14 by default.
* **upb** Update to align version with protobuf/grpc and use new github
repo. Patch usual CMake mess (they do not support CMake officially)
which should probably be `unofficial-upbConfig.cmake` but I didn't dig
into downstream implications so I kept it at `upbConfig.cmake` as
before.
* **utf8-range** Update to allign version with protobuf.
Update `abseil` to 20240116.2.
- [x] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [x] SHA512s are updated for each updated download.
- [ ] ~~The "supports" clause reflects platforms that may be fixed by
this new version.~~
- [ ] ~~Any fixed [CI
baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt)
entries are removed from that file.~~
- [ ] ~~Any patches that are no longer applied are deleted from the
port's directory.~~
- [x] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [x] Only one version is added to each modified port's versions file.
Feature passed with following triplets:
```
x86-windows
x64-windows
x64-windows-static
```
Usage test passed on `x64-windows`.
---------
Co-authored-by: Lily Wang <v-lilywang@microsoft.com>
<!-- If your PR fixes issues, please note that here by adding "Fixes
#NNNNNN." for each fixed issue on separate lines. -->
<!-- If you are still working on the PR, open it as a Draft:
https://github.blog/2019-02-14-introducing-draft-pull-requests/. -->
<!-- If this PR updates an existing port, please uncomment and fill out
this checklist: -->
- [x] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [ ] ~SHA512s are updated for each updated download.~
- [ ] ~The "supports" clause reflects platforms that may be fixed by
this new version.~
- [ ] ~Any fixed [CI
baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt)
entries are removed from that file.~
- [ ] ~Any patches that are no longer applied are deleted from the
port's directory.~
- [x] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [x] Only one version is added to each modified port's versions file.
<!-- If this PR adds a new port, please uncomment and fill out this
checklist:
- [ ] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [ ] The name of the port matches an existing name for this component
on https://repology.org/ if possible, and/or is strongly associated with
that component on search engines.
- [ ] Optional dependencies are resolved in exactly one way. For
example, if the component is built with CMake, all `find_package` calls
are REQUIRED, are satisfied by `vcpkg.json`'s declared dependencies, or
disabled with
[CMAKE_DISABLE_FIND_PACKAGE_Xxx](https://cmake.org/cmake/help/latest/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.html).
- [ ] The versioning scheme in `vcpkg.json` matches what upstream says.
- [ ] The license declaration in `vcpkg.json` matches what upstream
says.
- [ ] The installed as the "copyright" file matches what upstream says.
- [ ] The source code of the component installed comes from an
authoritative source.
- [ ] The generated "usage text" is accurate. See
[adding-usage](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/examples/adding-usage.md)
for context.
- [ ] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [ ] Only one version is in the new port's versions file.
- [ ] Only one version is added to each modified port's versions file.
END OF NEW PORT CHECKLIST (delete this line) -->
Under normal circumstances, things can't be removed from the version database, because that breaks outstanding references to those versions. However, these entries can't be parsed in the first place which means nobody can be depending on them being there. (Usually this comes from accidentally merging PRs that add multiple versions, such as 8184c5e06chttps://github.com/microsoft/vcpkg/pull/31859 )
This was detected using new output from https://github.com/microsoft/vcpkg-tool/pull/1210
C:\Dev\vcpkg\versions\a-\abseil.json: error: failed to execute: "C:\Program Files\Git\cmd\git.exe" "--git-dir=C:\Dev\vcpkg\.git" "--work-tree=C:\Dev\vcpkg\buildtrees\versioning_\versions\abseil\2209360b556a40cf034551f6f9063456eac63986_83008.tmp" -c core.autocrlf=false read-tree -m -u 2209360b556a40cf034551f6f9063456eac63986
error: git failed with exit code: (128).
fatal: failed to unpack tree object 2209360b556a40cf034551f6f9063456eac63986
note: while checking out port abseil with git tree 2209360b556a40cf034551f6f9063456eac63986
note: while validating version: 20230125.3#2
C:\Dev\vcpkg\versions\a-\abseil.json: C:\Dev\vcpkg\buildtrees\versioning_\versions\abseil\28fa609b06eec70bb06e61891e94b94f35f7d06e\vcpkg.json: error: $.features: mismatched type: expected a set of features
note: while validating version: 2020-03-03#7
C:\Dev\vcpkg\versions\a-\async-mqtt.json: error: failed to execute: "C:\Program Files\Git\cmd\git.exe" "--git-dir=C:\Dev\vcpkg\.git" "--work-tree=C:\Dev\vcpkg\buildtrees\versioning_\versions\async-mqtt\61071a18dc0dc629c374fa016b81473e04a28ff1_83008.tmp" -c core.autocrlf=false read-tree -m -u 61071a18dc
error: git failed with exit code: (128).
fatal: failed to unpack tree object 61071a18dc
note: while checking out port async-mqtt with git tree 61071a18dc
note: while validating version: 1.0.8
C:\Dev\vcpkg\versions\b-\blend2d.json: C:\Dev\vcpkg\buildtrees\versioning_\versions\blend2d\ffce764b880d8cc24e3b00328aa3861f15bae91d\vcpkg.json: error: $.features: mismatched type: expected a set of features
note: while validating version: beta_2020-07-31
C:\Dev\vcpkg\versions\b-\blend2d.json: C:\Dev\vcpkg\buildtrees\versioning_\versions\blend2d\03a43f03eb0cab95aac27a77b71273fc4aa2e94d\vcpkg.json: error: $.features: mismatched type: expected a set of features
note: while validating version: beta_2020-07-09
C:\Dev\vcpkg\versions\e-\elfio.json: error: The version database declares 3.8 as version, but 19659f0b36 declares it as version-string. Versions must be unique, even if they are declared with different schemes.
note: run:
vcpkg x-add-version elfio --overwrite-version
to overwrite the scheme declared in the version database with that declared in the port.
C:\Dev\vcpkg\versions\f-\flashlight-text.json: error: failed to execute: "C:\Program Files\Git\cmd\git.exe" "--git-dir=C:\Dev\vcpkg\.git" "--work-tree=C:\Dev\vcpkg\buildtrees\versioning_\versions\flashlight-text\6386901fa48bce946fdc5775a1c1b784e0a97175_83008.tmp" -c core.autocrlf=false read-tree -m -u 6386901fa4
error: git failed with exit code: (128).
fatal: failed to unpack tree object 6386901fa4
note: while checking out port flashlight-text with git tree 6386901fa4
note: while validating version: 0.0.3
C:\Dev\vcpkg\versions\l-\libwebp.json: C:\Dev\vcpkg\buildtrees\versioning_\versions\libwebp\a05e0de81085231df86f6902aba1e0a364e2ca7b\CONTROL:1:94: error: invalid character in feature name (must be lowercase, digits, '-', or '*')
on expression: libwebp[anim, gif2webp, img2webp, info, mux, nearlossless, simd, cwebp, dwebp], libwebp[vwebp_sdl] (!osx), libwebp[extras] (!osx)
^
note: while validating version: 1.1.0
C:\Dev\vcpkg\versions\l-\libwebp.json: C:\Dev\vcpkg\buildtrees\versioning_\versions\libwebp\5066566c98bc1913b678347c4cbae0a6aff4cf2d\CONTROL:1:94: error: invalid character in feature name (must be lowercase, digits, '-', or '*')
on expression: libwebp[anim, gif2webp, img2webp, info, mux, nearlossless, simd, cwebp, dwebp], libwebp[vwebp_sdl] (!osx), libwebp[extras] (!osx)
^
note: while validating version: 1.0.3-1
C:\Dev\vcpkg\versions\l-\libwebp.json: C:\Dev\vcpkg\buildtrees\versioning_\versions\libwebp\6ff3a23b154fad821db2d8236bf9d0382f0229cf\CONTROL:1:94: error: invalid character in feature name (must be lowercase, digits, '-', or '*')
on expression: libwebp[anim, gif2webp, img2webp, info, mux, nearlossless, simd, cwebp, dwebp], libwebp[vwebp_sdl, extras] (!osx)
^
note: while validating version: 1.0.3
C:\Dev\vcpkg\versions\o-\opencolorio.json: error: failed to execute: "C:\Program Files\Git\cmd\git.exe" "--git-dir=C:\Dev\vcpkg\.git" "--work-tree=C:\Dev\vcpkg\buildtrees\versioning_\versions\opencolorio\9569944b76966b78bec5ef83672899acd7e4febe_83008.tmp" -c core.autocrlf=false read-tree -m -u 9569944b76
error: git failed with exit code: (128).
fatal: failed to unpack tree object 9569944b76
note: while checking out port opencolorio with git tree 9569944b76
note: while validating version: 2.1.2
C:\Dev\vcpkg\versions\q-\qscintilla.json: error: failed to execute: "C:\Program Files\Git\cmd\git.exe" "--git-dir=C:\Dev\vcpkg\.git" "--work-tree=C:\Dev\vcpkg\buildtrees\versioning_\versions\qscintilla\b5942c0b0a6d9131bc4ad9a1dde662f809a6d965_83008.tmp" -c core.autocrlf=false read-tree -m -u b5942c0b0a6d9131bc4ad9a1dde662f809a6d965
error: git failed with exit code: (128).
fatal: failed to unpack tree object b5942c0b0a6d9131bc4ad9a1dde662f809a6d965
note: while checking out port qscintilla with git tree b5942c0b0a6d9131bc4ad9a1dde662f809a6d965
note: while validating version: 2.13.4
C:\Dev\vcpkg\versions\r-\robin-map.json: error: The version database declares 0.6.3 as version-semver, but 84f1433234 declares it as version-string. Versions must be unique, even if they are declared with different schemes.
note: run:
vcpkg x-add-version robin-map --overwrite-version
to overwrite the scheme declared in the version database with that declared in the port.
C:\Dev\vcpkg\versions\v-\vcpkg-cmake-get-vars.json: error: failed to execute: "C:\Program Files\Git\cmd\git.exe" "--git-dir=C:\Dev\vcpkg\.git" "--work-tree=C:\Dev\vcpkg\buildtrees\versioning_\versions\vcpkg-cmake-get-vars\c6eb09f11e34173a4bfc31252d02d6aea6c25d8f_83008.tmp" -c core.autocrlf=false read-tree -m -u c6eb09f11e
error: git failed with exit code: (128).
fatal: failed to unpack tree object c6eb09f11e
note: while checking out port vcpkg-cmake-get-vars with git tree c6eb09f11e
note: while validating version: 2023-04-13
* [abseil] update to latest release (20230125.0)
* Fix DLL support
* Update version
* I do not understand the warning about version-string, fixing it seems to make things worse
* [etcd-cpp-apiv3] Abseil requires C++14
* Update a downstream port
* I just cannot get these right, argh
* Try to switch from version-string to version (again)
* Regenerate versions
* Improve etcd handling of C++ standard
* Regenerate versions
* Use target_link_libraries to get compilation flags
* Update version files
* [abseil] Upgrade to 20210324
* Use new version field
Co-authored-by: Phoebe <20694052+PhoebeHui@users.noreply.github.com>
Co-authored-by: Phoebe <20694052+PhoebeHui@users.noreply.github.com>