[quictls] create a new port#17949
[quictls] create a new port#17949luncliff wants to merge 16 commits intomicrosoft:masterfrom luncliff:port/quictls
Conversation
| SHA512 881639f0bfd83858ce5d28aaf013dc34105cbc9c2fcc040c873c41ca45a0ea3dcb9dfd8e81821b21e92d4b9577f86d11ac010bb1f3746713892969c62d46fda6 | ||
| HEAD_REF openssl-3.0.0-alpha15+quic | ||
| PATCHES | ||
| fix-http.patch |
There was a problem hiding this comment.
Why is this needed? We don't need then when we build via submodule in msquic.
There was a problem hiding this comment.
What I intended is supporting SSL selection as a feature of future ms-quic port. It will be like ms-quic[core](with schannel), ms-quic[quictls](with quictls/opnessl), etc.
* remove unused options
|
Hi @luncliff |
|
Seems like the branch doesn't. 😑 I will update "support" soon.
I think I can leave those uwp related platform names in detect_platform
script, but it can be confusing for users...
Do you think VC-WIN-UWP things need to be removed?
…On Wed, May 19, 2021, 4:44 PM NancyLi1013 ***@***.***> wrote:
Hi @luncliff <https://github.com/luncliff>
Thanks for your PR.
Can you please help confirm the status on uwp? Does this port support uwp?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#17949 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADLSYE7WCI6W5CSZUVAUTADTONT47ANCNFSM445V2T4Q>
.
|
I noticed that the information from configure-perl-x64-uwp-dbg-out.log: But I'm not familiar with these, so I cannot give you any suggestions. Sorry, I cannot help you. But I suggest to use support field in vcpkg if it doesn't support. If not, please try to fix the problems on uwp.
Yes, we should add skip in ci.baseline.txt. |
|
Understood. I will update this within days.
…On Wed, May 19, 2021, 5:08 PM NancyLi1013 ***@***.***> wrote:
Seems like the branch doesn't. 😑 I will update "support" soon. I think I
can leave those uwp related platform names in detect_platform script, but
it can be confusing for users... Do you think VC-WIN-UWP things need to be
removed?
I noticed that the information from configure-perl-x64-uwp-dbg-out.log:
Configuring OpenSSL version 1.1.1k+quic (0x101010bfL) for VC-WIN64A-UWP
Using os-specific seed configuration
But I'm not familiar with these, so I cannot give you any suggestions.
Sorry, I cannot help you. But I suggest to use support field in vcpkg if it
doesn't support. If not, please try to fix the problems on uwp.
Q. The port's install collides with openssl. Do I have to put skip in the
ci.baseline.txt?
Yes, we should add skip in ci.baseline.txt.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#17949 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADLSYE3JFJM3Q57L3QX6FGTTONWWTANCNFSM445V2T4Q>
.
|
* the branch doesn't provide conf file for UWP * remove unused patch file
|
@NancyLi1013 @nibanks, I just checked some community triplet builds. I think It's fine now. |
|
cc @ThadHouse This seems Ok to me, but I am not knowledgeable about vcpkg enough to be able to completely review. |
* comment referenced branch for UWP
|
For future reviewers, this port is skipped in CI. Manual build check is required. |
|
UWP should work. We support UWP in MsQuic, and use this branch of quictls, so it shouldn't have any issues. But otherwise looks good to me. |
|
Have you tested these official triplets on your local? @luncliff @nibanks and @ThadHouse thanks for your help and review. |
|
@NancyLi1013 Some import test of I'm checking with |
|
Thanks for your information. @luncliff Since all official triplets have been set as skip in ci.baseline.txt, So even though you have tested the usage of I suggest to test these triplets on your local machine. It would be better to make sure |
|
Have you tested these triplets on your local machine? @luncliff |
|
Build and find_package(Openssl). For all triplets above. I don't know whether there is a way to test QUIC related API |
Can you build |
Yes, I did. Was there any trouble? |
Of course not. Since CI will not check the build status, we must make sure it can build successfully on our local. |
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* update git-tree SHA
strega-nil-ms
left a comment
There was a problem hiding this comment.
Needs some changes in detect_platform! Thanks :)
|
|
||
| elseif(VCPKG_TARGET_IS_LINUX) | ||
| if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm") | ||
| set(PLATFORM "linux-armv4") |
There was a problem hiding this comment.
Is there a reason we're skipping arm64?
There was a problem hiding this comment.
No. It's sad I can't check build works with the triplet :(
Added it in e7e0901
| elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") | ||
| set(PLATFORM "linux-x86_64") | ||
| else() | ||
| set(PLATFORM "linux-generic32") |
There was a problem hiding this comment.
this feels... wrong, what is linux-generic32? Shouldn't this check for STREQUAL "x86"?
There was a problem hiding this comment.
Fixed in e7e0901. Changed the value to linux-x86 and checks VCPKG_TARGET_ARCHITECTURE.
| @@ -0,0 +1,86 @@ | |||
| if(VCPKG_TARGET_IS_ANDROID) | |||
| # ${SOURCE_PATH}/Configuration/15-android.conf | |||
| if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm64") | |||
There was a problem hiding this comment.
In general, also, this should use STREQUAL
There was a problem hiding this comment.
I habitually used the expression. Replaced them to STREQUAL in e7e0901.
| endif() | ||
|
|
||
| elseif(VCPKG_TARGET_IS_FREEBSD OR VCPKG_TARGET_IS_OPENBSD) | ||
| set(PLATFORM "BSD-generic64") |
There was a problem hiding this comment.
please make sure that this only sets up x64 on x64.
There was a problem hiding this comment.
Added explicit check of VCPKG_TARGET_ARCHITECTURE like the other cases in e7e0901.
|
|
||
| elseif(VCPKG_TARGET_IS_MINGW) | ||
| if(VCPKG_TARGET_ARCHITECTURE MATCHES "64") | ||
| set(PLATFORM "mingw64") |
There was a problem hiding this comment.
probably wants to be x86_64 or x86, not doing this matching.
There was a problem hiding this comment.
That was a mistype. Nice point 👍 Fixed in e7e0901.
| elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") | ||
| set(PLATFORM "VC-WIN64-ARM") | ||
| else() | ||
| message(FATAL_ERROR "Unknown UWP target architecture: ${VCPKG_TARGET_ARCHITECTURE}") |
There was a problem hiding this comment.
We already have fatal errors at the bottom of this file.
There was a problem hiding this comment.
I wanted to give more hint that it's a issue for the platform.
Made fallthrough to the bottom check.
* Use STREQUAL instead of MATCHES * Add some dropped PLATFORM cases * Always check VCPKG_TARGET_ARCHITECTURE instead of `else()` * update git-tree SHA
|
Because we're providing zero testing coverage of this in CI (since it conflicts with the blessed official openssl), it seems like this would be more appropriately hosted in a community registry. See our pinned discussion of community registries: #17161 |
@ras0219-msft Is there a way to not conflict with openssl. BTW, this fork of openssl is blessed for Microsoft usage, explicitly used by MsQuic. |
Thanks for review. I already have my registry in #17161, so that's an option for me to support In #18225 ac64cb5, I found the port can be built in CI environment. So if there is a way to check without harming openssl related check, I would like to try for this. |
We would love to support it, but we cannot fracture the entire catalog over it.
Some scattered points:
BoringSSL was added to the catalog long before we had third party registry support -- today, it would be better served by a third-party registry with the exact arguments above. |
|
@ras0219-msft there is a long story around why we had to create the quictls fork, but essentially this fork is the base OpenSSL + QUIC functionality. I don't want to onboard this without build coverage. My question is if there is a way to still onboard this with coverage. The goal isn't to have quictls replace usage for anything that wants openssl. The goal is to make it available for anyone who expressly wants quictls. |
|
After looking further into quictls, it's possible we could express it as a feature in the existing openssl port ( However, this still wouldn't fix the issue of build coverage -- in CI we would still need to build and deploy the upstream copy of openssl, which means the quictls feature would not be selected and not covered. From a pure build perspective, we could add a test port that doesn't install any files but does build quictls; however test ports are not available for customers on the vcpkg cli (and it wouldn't help anyway -- the port installs no files). Additionally, even if we solve the problem of coverage for quictls, there's no way we can add build coverage for msquic -- by design, the There is a potentially extreme option of vendoring quictls inside msquic's port and only supporting dynamic linkage (static linking quictls to hide the inner openssl symbols). This means users would see |
Thanks for check @ras0219-msft. I wanted this port can be separated with Let me keep this PR open until this weekend. I will sync this with #18225 and then close this one. |
* bring work of microsoft/vcpkg#17949
* bring work of microsoft/vcpkg#17949
What does your PR fix?
Create a port for https://github.com/quictls/openssl (fork of openssl/openssl)
Support microsoft/msquic#1426.
Which triplets are supported/not supported? Have you updated the CI baseline?
Build check
MinGW, PowerPC, BSD is not in consideration for this port version.
x64-windowsx64-windows-staticx64-windows-static-mdx86-windowsx86-windows-staticx86-windows-static-mdarm64-windowsarm64-windows-staticarm64-windows-static-mdx64-uwpx86-uwparm64-uwparm-uwpx64-osxarm64-osxarm64-iosx64-iosx64-linuxarm64-androidarm-androidx64-androidx86-androidReferences
And see comments below :D
Import check
curl: import viafind_package(OpenSSL REQUIRED)Replace "openssl" dependency to "quictls" and run
vcpkg install curl[openssl]for all triplets aboveQ. The port's install collides with
openssl. Do I have to putskipin the ci.baseline.txt?--> The port's build check is skipped. Need to test manually
Does your PR follow the maintainer guide?
Yes.
I read the existing configurations of
opensslport andmicrosoft/msquic. Then reorganized in my style.I tried to simplify them with comments but additional suggestions will be helpful!