msquic icon indicating copy to clipboard operation
msquic copied to clipboard

export platform

Open talregev opened this issue 1 year ago • 16 comments

Description

For support compile msquic with external msh3 version 0.7.0. It require symbol that found on platform target. I export these symbols

I rename the target platform to msquic_platform, because when platform is exported it create a lib file. Create a lib file with generic name will interfere with other libraries when install together. When the name is renamed to specific name it will allow to integrate more easy on libraries managers such as vcpkg.

Other info

fix https://github.com/microsoft/msquic/issues/4569

talregev avatar Sep 28 '24 03:09 talregev

This is a draft PR and need more work done for it. Issue in this PR (maybe more)

  • It create platform.lib. this is a generic name that can collide with other libs. I propose to change target platform to msquic_platform
  • I export openssl targets, but there other option that it use schannel, or osx ssl lib. need to do it more generic

@nibanks can you help me to solve these issue in this PR?

talregev avatar Sep 28 '24 14:09 talregev

@nibanks I can work on the second issue with working ci. If you approve my other PR: https://github.com/microsoft/msquic/pull/4575 then the ci will work automatic for me.

Let me know what do you think about first issue. Is it acceptable from you to change the target name platform to msquic_platform ?

talregev avatar Sep 28 '24 15:09 talregev

Is there any new progress?

MonicaLiu0311 avatar Oct 09 '24 09:10 MonicaLiu0311

Is there any new progress?

On my side I need active ci. Because I never contribute to this repo, each change I made, @nibanks need to approve the ci. I created more simple PR that also needed for msquic. When the other PR will be merge, I will get my active ci here and I can develop.

In conclusion I am waiting for my other PR will be review and merge to continue this PR. https://github.com/microsoft/msquic/pull/4575

talregev avatar Oct 09 '24 09:10 talregev

Is there any new progress?

On my side I need active ci. Because I never contribute to this repo, each change I made, @nibanks need to approve the ci. I created more simple PR that also needed for msquic. When the other PR will be merge, I will get my active ci here and I can develop.

In conclusion I am waiting for my other PR will be review and merge to continue this PR. #4575

@BillyONeal can you help to promote this PR? It needed to update msh3 v0.7 in vcpkg. Then it can promote to make msh3 and msquic non experimental in curl: https://github.com/curl/curl/discussions/15048

talregev avatar Oct 14 '24 11:10 talregev

@talregev there are many failures in the CI. Please have a look.

nibanks avatar Oct 14 '24 15:10 nibanks

@talregev there are many failures in the CI. Please have a look.

Thank you! I will take a look, and I start develop. Now I have active ci.

talregev avatar Oct 14 '24 16:10 talregev

@nibanks Not sure why I don't have active ci. How I can get one? Can you approve the ci again? There will be still errors. I didn't fix them, only fix the conflict.

talregev avatar Oct 14 '24 20:10 talregev

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 86.84%. Comparing base (9587f74) to head (24ac41f). Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4574      +/-   ##
==========================================
- Coverage   87.22%   86.84%   -0.39%     
==========================================
  Files          56       56              
  Lines       17357    17357              
==========================================
- Hits        15140    15073      -67     
- Misses       2217     2284      +67     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar Oct 15 '24 00:10 codecov[bot]

@nibanks Ready for review. Thank you for your help with the ci! 🙏🏻

talregev avatar Oct 15 '24 16:10 talregev

@BillyONeal can you help to promote this PR?

I'm not involved in msquic sadly. I have my own PRs here :)

BillyONeal avatar Oct 15 '24 18:10 BillyONeal

@talregev how did you validate this? Is there any way to add some kind of validation here in this PR?

nibanks avatar Oct 15 '24 19:10 nibanks

@talregev how did you validate this? Is there any way to add some kind of validation here in this PR?

I create this PR to compile msh3 that msquic is external lib. msh3 v0.7.0 is needed this symbols: CxPlatGetSelfSignedCert CxPlatFreeSelfSignedCert

I validate this by modify locally vcpkg msquic port that will take this changes, and modify msh3 port by update it to v0.7.0 and that it will take ls-qpack and msquic as external libs. I install it, and i see it compile and not complain the above symbols.

My suggestion to validate in this PR is to create a simple test that use the above symbols. (I am not sure the params that needed for these functions).

Can you help me to create such a simple test that just compile with the above symbols?

talregev avatar Oct 16 '24 03:10 talregev

I notice that there is unittest for platform. My suggestion is to try to compile it as external cmake. this will validate this PR. external cmake mean cmake that is not connected to msquic project. I create locally such a cmake, and I find hard to put it in the ci. Any suggestion how to do it?

talregev avatar Oct 16 '24 04:10 talregev

@nibanks I manage to create an external cmake and connected it to windows ci. It still not compile and I feel I very close. Can you take a look?

talregev avatar Oct 17 '24 13:10 talregev

@nibanks I finished the PR. I also created external cmake that validate the change I did. It compile on windows. I didn't manage to compile it on Sanitize cases, so I skip those.

Can you review my PR? Thank you.

talregev avatar Oct 18 '24 03:10 talregev

@nibanks Anything I can do for move forward this PR? Thank you for your time and effort!

talregev avatar Oct 22 '24 16:10 talregev

More reference: https://cmake.org/cmake/help/latest/guide/using-dependencies/index.html#guide:Using%20Dependencies%20Guide

talregev avatar Oct 27 '24 23:10 talregev

Can you please merge main once more?

nibanks avatar Nov 06 '24 10:11 nibanks

Can you please merge main once more?

I will try to merge it today.

talregev avatar Nov 06 '24 11:11 talregev

@nibanks I rebase to main. Please review again. Thank you!

talregev avatar Nov 06 '24 20:11 talregev

@nibanks Thank you for the merge! Is it possible to release msquic version with this change? Then I can update it on vcpkg including update msh3 0.7 and then continue the work on curl for better http3 support.

talregev avatar Nov 29 '24 07:11 talregev

We've got a few other things in the pipeline, so we're not going to release a new release for another couple months probably. We might be able to backport changes you need to 2.4 though...

nibanks avatar Nov 29 '24 13:11 nibanks

We've got a few other things in the pipeline, so we're not going to release a new release for another couple months probably. We might be able to backport changes you need to 2.4 though...

Backport the changes to 2.4 it will be great! 🙏🏻

talregev avatar Nov 29 '24 13:11 talregev