Skip to content

Add RISC-V 64-bit (riscv64) support#30

Open
gounthar wants to merge 1 commit intoopenscad:mainfrom
gounthar:feat/riscv64-support
Open

Add RISC-V 64-bit (riscv64) support#30
gounthar wants to merge 1 commit intoopenscad:mainfrom
gounthar:feat/riscv64-support

Conversation

@gounthar
Copy link

@gounthar gounthar commented Feb 6, 2026

Summary

Add RISC-V 64-bit architecture support to the Docker build infrastructure for trixie-based builds and AppImage generation.

Changes

  • Add linux/riscv64 to trixie buildx platform list in hooks/pre_build and hooks/build
  • Add optional platform parameter to build-images.sh build function (defaults to amd64+arm64, trixie passes amd64+arm64+riscv64)
  • Add appimage-riscv64-base Dockerfile based on riscv64/ubuntu:24.04 (Noble — first Ubuntu with official riscv64 support)
  • Add appimage-riscv64-openscad Dockerfile based on the arm64v8 template
  • Add riscv64 entries to build-appimage.sh and menu option 5 to docker-build-release.sh
  • Update README to document riscv64 support

Issue Linking

No existing issue, this was discussed via email with @t-paul (Oct 2024, discuss@lists.openscad.org).

Testing

  • Verify trixie Docker image builds with docker buildx build --platform linux/riscv64 -f openscad/trixie/Dockerfile --build-arg JOBS=2 .
  • Verify AppImage base Dockerfile parses correctly: docker buildx build --platform linux/riscv64 -f appimage/appimage-riscv64-base/Dockerfile --check .
  • Verify existing amd64/arm64 builds are not affected (platform lists are additive, older builds use the default)

Checklist

  • Code follows project conventions
  • Files end with empty line for cross-platform compatibility
  • Documentation updated
  • Bookworm and older builds left unchanged (riscv64 Debian support was limited before Trixie)

Notes

Notable differences from arm64v8 AppImage base

The riscv64 base uses Ubuntu 24.04 instead of 20.04, which means:

  • CGAL comes from distro packages (Noble ships CGAL 5.6) rather than the OBS repository
  • cmake comes from distro packages (Noble ships cmake 3.28) rather than the Kitware PPA
  • No need for clang-12 — Noble ships a newer clang by default

Background

I have been building and publishing multi-arch OpenSCAD Docker images at https://hub.docker.com/r/gounthar/openscad and riscv64 binaries and OS packages at https://github.com/gounthar/openscad/releases. This PR formalizes RISC-V support in the official build infrastructure.

Add linux/riscv64 to the trixie Docker image platform list (hooks and
build-images.sh). Bookworm and older builds are left unchanged.

Add riscv64 AppImage build infrastructure based on the arm64v8 template,
using Ubuntu 24.04 (Noble) as base since it is the first Ubuntu release
with official riscv64 support. Uses distro-provided CGAL packages
instead of OBS repositories.

Update build-appimage.sh and docker-build-release.sh with riscv64
entries. Update README to document riscv64 support.
@gounthar
Copy link
Author

gounthar commented Feb 6, 2026

Build verification note

I tested the trixie Dockerfile on both arm64 and riscv64:

docker buildx build --platform linux/arm64 -f openscad/trixie/Dockerfile --build-arg JOBS=2 .
docker buildx build --platform linux/riscv64 -f openscad/trixie/Dockerfile --build-arg JOBS=2 .

Both fail identically at the apt-get update step due to an expired OBS repository GPG key:

Err:4 https://download.opensuse.org/repositories/home:/t-paul:/docker-support/Debian_13 ./ InRelease
  Sub-process /usr/bin/sqv returned an error code (1), error message is:
  Signing key on 5F4A8A2C8BB11716F29482BB75F3214F30EB8E08 is not bound:
  No binding signature at time 2026-01-10T13:14:31Z

This is a pre-existing issue in the trixie Dockerfile affecting all architectures — not related to the riscv64 changes in this PR, which are purely additive (appending ,linux/riscv64 to platform lists).

gounthar added a commit to gounthar/openscad-ci that referenced this pull request Feb 6, 2026
Follows the same pattern as appimage-arm64v8-base.yml, building
from docker-openscad.git/appimage/appimage-riscv64-base with
IMAGE_PLATFORM set to linux/riscv64.

Companion to openscad/docker-openscad#30 which adds the
Dockerfile and build script entries.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant