spieglt / FlyingCarpet

Cross-platform AirDrop. File transfer between Android, iOS, Linux, macOS, and Windows over ad hoc WiFi. No network infrastructure required, just two devices with WiFi chips in close range.
GNU General Public License v3.0
3.6k stars 145 forks source link

Provide Linux ARM builds #57

Closed utopiatopia closed 10 months ago

utopiatopia commented 11 months ago

Similar to #35

spieglt commented 11 months ago

Will look into this, not immediately sure how to cross-compile and my first attempt failed.

spieglt commented 10 months ago

According to https://tauri.app/v1/guides/building/cross-platform/, "Tauri relies heavily on native libraries and toolchains, so meaningful cross-compilation is not possible at the current moment." Will try a Raspberry Pi at some point.

spieglt commented 10 months ago

Tried compiling on a Raspberry Pi last night, but I think it ran out of memory as it was compiling tauri-cli. I don't own another ARM Linux machine unfortunately. GitHub Actions is x86_64-only so that's not an option, and I don't really want to set that up for this project anyway. QEMU was too complicated. I got a version to compile on a cloud Ubuntu instance, but this might be too inconvenient to do for every version unless someone has a better idea. I also can't test it so please try it and let me know.

https://github.com/spieglt/FlyingCarpet/releases/download/v8.0.1/linux_flying-carpet_8.0.1_aarch64.AppImage

https://github.com/spieglt/FlyingCarpet/releases/download/v8.0.1/linux_flying-carpet_8.0.1_arm64.deb

Had to run roughly:

cargo install tauri-cli
sudo apt install build-essential pkg-config libgdk3.0-cil libgio2.0-cil-dev libgio libgio-cil librust-gio-sys-dev libgdk3.0-cil-dev librust-gdk-sys-dev libsoup2.4-cil-dev libsoup2.4-cil libsoup2.4-dev libjavascriptcoregtk-4.0-dev libwebkit2gtk-4.0-dev librsvg2-dev
utopiatopia commented 10 months ago

Thank you for tending my issue so quickly! I apologize for the hassle.

It runs (at least on Fedora 39 Asahi Linux Remix), however I can’t confirm file transfer works right now (probably iOS shenanigans)

utopiatopia commented 10 months ago

might be too inconvenient to do for every version unless someone has a better idea

I tried compiling this myself, however wasn’t able to figure out dependencies, so further documentation on dependencies probably would be helpful (maybe separate issue)

spieglt commented 10 months ago

Unfortunately I don't have the time or resources to test or document much more than I've done already. There's a lot of trial and error any time I have to compile on a new Linux system and dependency situations seem to change frequently, so while I'm willing to help troubleshoot when I can, I'll have to leave much of the work to the users if the main releases don't fit their use cases.