[ms-quic] update to 2.3.5#39332
Conversation
|
Thanks for the update! |
nibanks
left a comment
There was a problem hiding this comment.
Overall, this PR definitely improves on the old status, but there are still a few things I'd like to see cleaned up. Thanks!
| + install(TARGETS quicattack quicinterop quicinteropserver quicipclient quicipserver | ||
| + quicpcp quicpost quicsample spinquic) |
There was a problem hiding this comment.
@jimwang118 & @BillyONeal this change is unnecessary, as QUIC_BUILD_TOOLS is disabled by default.
| if("tools" IN_LIST FEATURES) | ||
| vcpkg_copy_tools(TOOL_NAMES quicattack quicinterop quicinteropserver quicipclient quicipserver | ||
| quicpcp quicping quicpost quicreach quicsample spinquic | ||
| quicpcp quicpost quicsample spinquic | ||
| AUTO_CLEAN | ||
| ) | ||
| endif() |
There was a problem hiding this comment.
@jimwang118 & @BillyONeal this notion of tools as a feature should simply be removed. Tools are generally for internal use, and you're not setting the cmake flag to enable them (and shouldn't IMO) anyways.
There was a problem hiding this comment.
The CMake flag was set when ms-quic[tools] by:
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
tools QUIC_BUILD_TOOLS
)| }, | ||
| { | ||
| "git-tree": "3188e024233a7d1772922bc11d29d912c6427e25", | ||
| "version": "1.2.0", |
There was a problem hiding this comment.
@jimwang118 & @BillyONeal since you're overwriting v1.2.0, should this version stay here or be removed?
There was a problem hiding this comment.
Old versions are never removed from the versions database. If someone has an override and explicitly asks for 1.2.0 this is how that gets found.
| @@ -60,21 +66,17 @@ vcpkg_cmake_configure( | |||
| -DQUIC_UWP_BUILD=${VCPKG_TARGET_IS_UWP} | |||
| ) | |||
There was a problem hiding this comment.
In this vcpkg_cmake_configure, Windows should default to schannel, but provide the option (a feature?) to override and set to openssl. Linux only supports openssl so it can stay as is.
There was a problem hiding this comment.
It isn't clear how that can be a feature; it sounds like an alternative. See https://learn.microsoft.com/vcpkg/contributing/maintainer-guide#do-not-use-features-to-implement-alternatives . In particular, it is not possible for a consumer to require that a feature is off. It may be that overlays are required to express this difference; that's a common limitation for multiple TLS backends available like this.
Upstream documents that there are pretty substantial limitations (only working on very recent Windows, missing features) in https://github.com/microsoft/msquic/blob/main/docs/Platforms.md#windows to using the schannel backend.
I would welcome an upstream maintainer doing this surgery and explaining why the openssl backend is bad but I don't myself have a good enough understanding of the situation to do it myself.
| endif() | ||
|
|
||
| # Performance code | ||
| diff --git a/src/bin/CMakeLists.txt b/src/bin/CMakeLists.txt |
There was a problem hiding this comment.
I still don't quite understand the rest of these changes, and it'd be great to get them pushed upstream if really necessary. I (as the owner of msquic) would be happy to take them and cherry-pick them into the release branch to help here.
There was a problem hiding this comment.
These changes are fixing up the upstream build system to create CMake targets consistent with vcpkg's installation layout. Since that's fairly vcpkg specific we wouldn't always upstream something like that.
We work out of the box with the most common CMake conventions. If upstream wants to commit to maintaining something like this we'd love to that but we as vcpkg maintainers are probably ill equipped to address the customers targeted with ${include_dest}.
There was a problem hiding this comment.
One problem I've had since this was created (by some external contributor) is that it's named ms-quic instead of msquic (which is the real name of the project, and likely the one people would actually look for). Is there a way to get this fixed?
As requested by upstream maintainer @nibanks in microsoft#39332 (review) This should probably be after microsoft#39498 makes CI test msquic for more targets.
Fixes #39318
1.Delete tools(quicping,quicreach) that do not exist.
2. Fix the issue that afxdp_helper.h file does not exist during compilation.
3. Remove patches fix-platform.patch and fix-warnings.patch that have been fixed upstream.
The "supports" clause reflects platforms that may be fixed by this new version.Any fixed CI baseline entries are removed from that file../vcpkg x-add-version --alland committing the result.All features passed with following triplets:
Usage test pass with following triplets: