-
Notifications
You must be signed in to change notification settings - Fork 89
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
FreeBSD support #872
FreeBSD support #872
Conversation
Backtrace from tests (click to expand)
|
Actually the unpacking thing might be a red herring possibly caused by Line 48 in 20a20b9
libjulia-codegen.so.1.12 can't load libLLVM-16jl.so . Last I checked (a day or two ago) I didn't see that locally when manually downloading, unpacking, and using nightly. So still doesn't work but... progress?
|
Swapping the |
...except it didn't fail on CI, huh. The test I mentioned fails locally. |
Some to-do items:
|
|
7677e0b
to
76dfa62
Compare
Everything is working now, though I ended up taking a slightly different approach from when I started this. It looks like it might be a long time before the tar-rs PR that would allow us to properly read tarballs produced by BSD tar is merged, if it ever is. In the meantime, we can simply spawn a I think this is finally ready for review, @davidanthoff. It's worth noting up front that I don't actually know Rust so there may be better ways to implement this approach. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! The only thing I found is that ideally we would use conditional compiles in two places, could you try whether that works?
Oh, one more question: so this uses the download script and then the self-update option. I'm wondering whether there is also a system package manager on FreeBSD that we could utilize to distribute things? I think in general my hope is that over time we can utilize system package managers as much as possible to get Juliaup onto user's machines, and only use the download script on platforms where there isn't really a compelling story (ahem, Mac...). |
There is, the system package manager is called |
Note that this uses command line tar instead of tar-rs on FreeBSD. Unlike most systems, we can be quite sure that `tar` exists when running on FreeBSD, so it should be safe to call out to it and fail with a descriptive error in the off chance that the host system is weird. This allows us to avoid using the Rust tar library, which does not currently support the POSIX-2008.1 format that is produced by default by BSD tar.
Cleaned up my commit mess and rebased on main to make extra sure things continue to work as expected here with the updated dependencies. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice, thanks for pushing it over the finishing line!
Yes, that sounds like a good plan.
So that might work for us, because we can easily have them compile |
This doesn't yet pass tests because the tarball fails to extract and I don't understand why. The URL it's using is correct and I'm able to download and unpack manually.