-
Notifications
You must be signed in to change notification settings - Fork 166
Rust Installer #291
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
Rust Installer #291
Conversation
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.
i really like this approach, since afaict it means we can ship the entire release as a single platform-specific binary. just have a few questions/comments in my review
5a5e45f
to
0e6353c
Compare
0fcf380
to
fd05825
Compare
It would help reviewing if, since this is replacing |
fd05825
to
47fa724
Compare
Done. |
47fa724
to
23d2d2d
Compare
Made several of the requested changes except for those I've replied to with questions. |
We've confirmed nusb works so I've merged it into the rayhunter branch.
* explicitly mount the SD card to improve reliability * do not crash when the SD card is already mounted * address some review feedback
I made adb_client usb libusb on macOS and Windows. Reporting the usb device is busy needs to be fixed if we go with this. |
This update also fixes libusb throwing timeouts when it shouldn't
On macOS this can mean the device is busy.
f2a7bdd
to
841f5c2
Compare
As requested I removed the vendor flag, now the firmware binaries are always vendored from the proper location. |
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.
Bang up job 👍 👍
Tested successfully on:
- target.aarch64-apple-darwin
- target.aarch64-unknown-linux-musl
- target.x86_64-apple-darwin
- target.x86_64-unknown-linux-musl
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.
i re-tested it now on tplink v3 and orbic on linux, works great. macos worked great for me yesterday too.
let binary = include_dir.join(file); | ||
if !binary.exists() { | ||
println!( | ||
"cargo::error=Firmware binary {file} not present at {}", |
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.
What does the build script do as opposed to directly including the binaries?
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.
It allows us to conditionally set environment vars that point to the binaries. So in CI we can set vars for their locations, but in a dev environment, it'll automatically pull them in from where you'd expect. And by using CARGO_MANIFEST_DIR your current directory when building doesn't matter.
This is now merged! Thank you so much @gaykitty for all your hard work on this! And thanks to everyone that reviewed or helped out! This is huge! |
STATUS: Ready to merge