-
Notifications
You must be signed in to change notification settings - Fork 6.4k
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
[ms-quic] update to 2.3.5 #39332
[ms-quic] update to 2.3.5 #39332
Conversation
Thanks for the update! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jimwang118 & @BillyONeal this change is unnecessary, as QUIC_BUILD_TOOLS
is disabled by default.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#39500 removes it
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The CMake flag was set when ms-quic[tools]
by:
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
tools QUIC_BUILD_TOOLS
)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#39500 removes the tools feature
"git-tree": "5b057833638702cb3bbdb72a8cb131cce473c46e", | ||
"version": "2.3.5", | ||
"port-version": 0 | ||
}, | ||
{ | ||
"git-tree": "3188e024233a7d1772922bc11d29d912c6427e25", | ||
"version": "1.2.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jimwang118 & @BillyONeal since you're overwriting v1.2.0, should this version stay here or be removed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#39500 fixes this
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 --all
and committing the result.All features passed with following triplets:
Usage test pass with following triplets: