Hi! What would be the simplest way of building lin...
# compose-desktop
m
Hi! What would be the simplest way of building linux arm64 desktop app without actually having linux arm64 machine?
e
you should be able to build the app on any supported platform, you just can't package it with the built-in tooling because of
jpackage
limitations
you can either use a VM or switch to someone like https://conveyor.hydraulic.dev/ (no personal experience but it's been promoted here before)
m
Are you using one of the latest development releases? On older ones this would not work at all. https://mastodon.jakewharton.com/@jw/111724399052216413
m
Thing is I’m not building native linux app but jvm desktop
m
There is no Compose runtime for ARM for older versions. I am not talking about native.
m
@ephemient I am trying to solve this problem with a VM, currently using multipass to do so. This is the issue preventing me from having a succesful build. Have you done that succesfully? Any idea what could be the issue here?
Copy code
* What went wrong:
Execution failed for task ':composeApp:packageDeb'.
> External tool execution failed:
  * Command: [/usr/lib/jvm/java-17-openjdk-arm64/bin/jpackage
m
The JVM desktop version will still need the compose runtime (skia etc) for the native platform. Once you update to 1.6 and have that: 1. Use Gradle's desktop plugin: build an uber jar (with dependencies on SKIA for linux/arm), then create a debian package that depends on JVM. 2. Use conveyor : we use it to build our windows release on a Linux box. It is built to support building for other targets on a single box. Our experience has been quite positive with it (not open source itself, but as our app is open source, we can use it without paying).
My understanding is that the basic principle of the compose distribution gradle plugin is that it builds for the platform it's running on