Skip to content
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

Merged
merged 12 commits into from
Jun 18, 2024
Merged

[ms-quic] update to 2.3.5 #39332

merged 12 commits into from
Jun 18, 2024

Conversation

jimwang118
Copy link
Contributor

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.

  • Changes comply with the maintainer guide.
  • SHA512s are updated for each updated download.
  • The "supports" clause reflects platforms that may be fixed by this new version.
  • Any fixed CI baseline entries are removed from that file.
  • Any patches that are no longer applied are deleted from the port's directory.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is added to each modified port's versions file.

All features passed with following triplets:

x64-windows

Usage test pass with following triplets:

x64-windows

@jimwang118 jimwang118 added category:port-bug The issue is with a library, which is something the port should already support info:internal This PR or Issue was filed by the vcpkg team. category:port-update The issue is with a library, which is requesting update new revision labels Jun 17, 2024
@jimwang118 jimwang118 marked this pull request as ready for review June 18, 2024 01:46
@JonLiu1993 JonLiu1993 added the info:reviewed Pull Request changes follow basic guidelines label Jun 18, 2024
@BillyONeal
Copy link
Member

Thanks for the update!

@BillyONeal BillyONeal merged commit a83d231 into microsoft:master Jun 18, 2024
17 checks passed
@jimwang118 jimwang118 deleted the up-ms-quic branch June 19, 2024 01:59
Copy link
Member

@nibanks nibanks left a 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!

Comment on lines +9 to +10
+ install(TARGETS quicattack quicinterop quicinteropserver quicipclient quicipserver
+ quicpcp quicpost quicsample spinquic)
Copy link
Member

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.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#39500 removes it

Comment on lines 72 to 77
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()
Copy link
Member

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.

Copy link
Member

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
)

Copy link
Member

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",
Copy link
Member

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?

Copy link
Member

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}
)
Copy link
Member

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.

Copy link
Member

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
Copy link
Member

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.

Copy link
Member

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}.

Copy link
Member

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?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#39500 fixes this

BillyONeal added a commit to BillyONeal/vcpkg that referenced this pull request Jun 25, 2024
As requested by upstream maintainer @nibanks in microsoft#39332 (review)

This should probably be after microsoft#39498 makes CI test msquic for more targets.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-bug The issue is with a library, which is something the port should already support category:port-update The issue is with a library, which is requesting update new revision info:internal This PR or Issue was filed by the vcpkg team. info:reviewed Pull Request changes follow basic guidelines
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[ms-quic] update to 2.3.5
4 participants