All about building Fedora packages for RISC-V.
Introduction
You want to help build packages for Fedora/RISC-V? You've come to the right place.
Autobuilder
All packages are now built with an autobuilder which picks up packages as they are built in Fedora Koji build system and tries to rebuild them for RISC-V. The status of builds, build logs, RPMs and SRPMs can be found here.
The autobuilder can also be manually told to build a particular package, or to do a mass rebuild of every package in Fedora. If you need a particular package rebuilt, please ping rwmjones
in the #fedora-riscv
IRC channel on FreeNode.
We are currently only building Fedora 25 packages, but expect to move to Rawhide in the near future.
Fixing broken builds
Fedora has an upstream first policy and Fedora/RISC-V tries to stay as close as possible to this rule. Please send all your riscv64 changes to the upstream project. From there they will trickle down into Fedora.
If your package needs specfile changes, then you can ask the Fedora package maintainer to add those changes for you. However you should not do this for hacks, for changes which should go upstream, or for missing dependencies. If there are missing dependencies, work on the dependencies first.
If you have fixed a build, then there are two ways to get it into Fedora/RISC-V. Either do a primary arch build in Koji, which (if successful) the autobuilder will pick up automatically. Or ping rwmjones
on #fedora-riscv
and he will kick off a manual build.
Exceptions to upstream first policy
Currently we have forked the following packages:
- kernel
- glibc
- binutils
- gcc
- gdb
This is a temporary situation. We encourage RISC-V to send their changes to these projects upstream as soon as possible.
Testing builds locally
Download the stage4 disk image and follow the instructions in the README for how to boot it.
If the build needs extra dependencies outside what are installed in the stage4 disk image, then you can download them from https://fedorapeople.org/groups/risc-v/RPMS and copy those into the disk image before booting, eg:
virt-copy-in -a stage4-disk.img RPMS /var/tmp/
Inside the qemu environment, you can use ordinary commands like rpmbuild
and gcc
. Instead of dnf
, use tdnf
(eventually we will get full dnf, but it's not there yet).