-
Notifications
You must be signed in to change notification settings - Fork 43
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
Cache: build folders on Windows do not have the same length #1054
Comments
Hmm, while the different slashes look weird indeed, I don't think in this case it's the root cause. We are searching for a given prefix inside a file and store that in a little JSON file that sits in the cache folder. We then basically do what It might have to do with UNC paths ... but still not sure. |
You should be able to take the current state of that zlib PR as a test - it should be buildable on windows in principle AFAIU, and so any failure should boil down to a rattler-build bug |
@wolfv, I think this could actually be part of the same cross-compilation confusion that we seem to be running into for osx-arm64. The difference between 46 and 49 characters would exactly account for the |
(though independently from getting the right host platform, it would be nice to harmonize the slashes) |
Can we try again with the latest smithy? ah, wait, we need a new release first to fix the cache :) |
After adding the additional logging we can now see:
So the build folder somehow changes mid-build. Interesting! |
Ah ok, this is interesting. On Unix we make sure that the paths are always the same length by adding more or less "placeholder" statements. On Windows we are not doing that. This is apparently not good for the logic, but we are also not supposed to do any binary replacements on Windows either (so the actual length of the placeholder doesn't really matter that much). So we could relax this constraint for Windows. |
How is the build folder change related to the number of placeholder characters? 🤔 The core change is between |
On Unix this would read On Windows, it's different. On Unix the length of this prefix does not change irregardless the number of characters that the package name has, so it never fails on this assert. |
Ah okay, so the change of path is expected, but the assert is wrong. Interesting too that this only seems to trigger in cross compilation. In any case, thanks for getting to the bottom of this! |
I'm seeing a panic for cross-compiling
win-arm64
in conda-forge/zlib-feedstock#83:Very likely this is related to
/
vs.\
vs.\\
and strings which are raw or not.Speaking of which, I'm also noticing inconsistencies on
win-64
w.r.t. the package content:Not sure if that is related to the test failures I'm seeing on win-64, but it's a plausible candidate IMO.
The text was updated successfully, but these errors were encountered: