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

Allow specifying msvc manifest file to use #6

Closed
roblabla opened this issue Aug 23, 2021 · 7 comments · Fixed by #17
Closed

Allow specifying msvc manifest file to use #6

roblabla opened this issue Aug 23, 2021 · 7 comments · Fixed by #17
Labels
enhancement New feature or request

Comments

@roblabla
Copy link

Hello, I'd like to integrate this tool in my nix-based msvc toolchain, replacing vsdownload.py from msvc-wine. But in order to do this, I need to ensure I can reproducibly download the source files from Microsoft.

To do so, vsdownload.py provides the ability to specify a manifest file, which is then used as-is instead of fetching the file from microsoft. See this. Downloading files from this pinned manifest is fully reproducible, as it pins the hash of all its sub-resources.

Having a similar ability in xwin would be great.

@Jake-Shadle
Copy link
Owner

Makes sense!

@Jake-Shadle Jake-Shadle added the enhancement New feature or request label Aug 23, 2021
@K900
Copy link

K900 commented Nov 22, 2021

Yes please! This would be very nice for CI builds as well.

@K900
Copy link

K900 commented Nov 23, 2021

So as it turns out, there's still a reproducibility issue somewhere. On one machine, I get result/sdk/include/shared/ndis/{status.h,version.h}, and on the other machine the same files end up in result/sdk/include/um/alljoyn_c instead. That sounds like a threading/rayon issue, and I'm currently trying to rebuild with RAYON_NUM_THREADS=1.

@K900
Copy link

K900 commented Nov 23, 2021

Actually, it looks like it might be this: https://github.com/Jake-Shadle/xwin/blob/main/src/splat.rs#L317

@K900
Copy link

K900 commented Nov 23, 2021

Removing that check seems to make the output reproducible, or at least a lot more reproducible: K900@b1de334

@Jake-Shadle
Copy link
Owner

Ahh ok, that's unfortunate, if every SDK header is written then the output will contain a lot of duplicates, so I'll need to change this to filter out those duplicates in a deterministic manner.

@K900
Copy link

K900 commented Nov 23, 2021

I tried switching it to use a BTreeMap and that seems to work, but only in single thread.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants