appimagetool
appimagetool copied to clipboard
Provide Releases for `riscv64-Linux`
You should really add more information to your issues. No description at all = not going to be worked at. What is the target audience? Are there actual computers, SBCs etc., which you want to use this with? What OSes support RISC-V which you want to use AppImages on?
And most importantly, does GitHub have free RISC-V runners?
Nope. That's why I am asking for the background. If we have to cross-compile, I'd rather know for which platforms.
What is the target audience?
This is part of us (pkgforge/soar: A homebrew like package manager but for statically linked binaries, AppImages etc) porting as many applications to riscv64-Linux, see https://github.com/pkgforge/soarpkgs/issues/198
Other than us, ppkg (~ 900 Packages) also needs this, see https://github.com/leleliu008/appimageutil/issues/1
Also, ppsspp, see https://github.com/VHSgunzo/sharun/issues/45#issuecomment-2948279415
Are there actual computers, SBCs etc., which you want to use this with?
A generic runtime targeting riscv64-Linux will work on pretty much all mainstream boards.
If you specifically need to know what I use, then it's this: https://milkv.io/pioneer
What OSes support RISC-V which you want to use AppImages on?
For our purposes, supporting Linux is enough, as the official releases don't target anything other Linux anyway. Already major ones like Ubuntu, Debian & Alpine all support riscv. Besides, appimagetool & runtime are intended to be used as statically linked (or bundled), so the distros here don't matter much.
If we have to cross-compile, I'd rather know for which platforms, https://github.com/AppImage/appimagetool/blob/main/ci/build-in-docker.sh#L10
platform=linux/riscv64
I'd also like to see official support for riscv64 and possibly other architectures.
I experimented with this recently for my fre:ac project and I'm now building AppImages for riscv64 and ppc64el with GitHub Actions.
I'm only building the runtime for these architectures and use the x86-64 AppImageTool for packaging. That works for me, but it would be great if AppImageTool was available for these architectures or at least able to recognize binaries built for these and to download pre-built runtimes.
As for the build process, I'm using Ubuntu's multiarch support available on standard GitHub Actions runners. See my workflow file for how I'm setting up multiarch for different architectures.
Ubuntu has x86-64 based toolchains for all supported architectures, so the build can run at almost native speed. The only thing running under emulation are the config tests.
Here is the relevant part of my build script for building the runtime: type2-runtime build
I had to use gcc for compiling and linking as I ran into linker issues with clang, so there is a small patch for the runtime makefile.
I've tested my riscv64 AppImages on a Banana Pi BPI-F3 board and the ppc64el ones on a multiarch system with QEMU.
Latest fre:ac AppImages for these architectures are available here.
I'm also interested in supporting loongarch64 in the future, but as this is not supported by Ubuntu, the build process will have to look slightly different. ~~I think it should be possible to setup x86_64+loongarch64 multiarch in a Debian Docker container and build in there.~~
Edit: Looks like Debian loongarch64 is not easily possible with multiarch. Packages in the port are older than in upstream Debian sid and cannot be installed side-by-side. So it will be necessary to run a native loong64 Docker image under emulation instead.
@probonopd
And most importantly, does GitHub have free RISC-V runners?
No, but you can run the build with qemu, here is an example. Check at https://github.com/uraimo/run-on-arch-action
We've used qemu for ARM, but we're not fans of it. It severely increases the build times.
I know, but I don't think Microsoft will provide native riscv64 support any time soon and IMO is better something than nothing.