Line 41: | Line 41: | ||
* is part of Fedora @Core | * is part of Fedora @Core | ||
Grab the source RPM from [http://koji.fedoraproject.org/koji/ Koji]. | |||
Copy the source RPM into the stage3 disk image. The disk image <b>must not</b> be running when you do this: | Copy the source RPM into the stage3 disk image. The disk image <b>must not</b> be running when you do this: | ||
Line 59: | Line 51: | ||
make boot-stage3-in-spike | make boot-stage3-in-spike | ||
Inside the VM, | Inside the VM you can now "install" the source RPM, which makes it available under <code>/rpmbuild</code>: | ||
rpm -i /var/tmp/the_package.src.rpm | |||
cd /rpmbuild/SPECS | |||
You may need to disable hardened build by adding: | |||
%global _hardened_build 0 | |||
to the spec file. | |||
You can now try building the package: | |||
rpmbuild -ba the_package.spec --define "debug_package %{nil}" | |||
rpmbuild - | |||
If it builds successfully, brilliant! More usually this will require many cycles of debugging and fixing things. Removing dependencies or parts of the spec file is an option for these stage3 builds. | If it builds successfully, brilliant! More usually this will require many cycles of debugging and fixing things. Removing dependencies or parts of the spec file is an option for these stage3 builds. | ||
If you get a build, it will be in /rpmbuild inside the VM. sync and shut down the VM, then do: | If you get a build, it will be in <code>/rpmbuild</code> inside the VM. sync and shut down the VM, then do: | ||
virt-copy-out -a stage3-disk.img /rpmbuild/ | virt-copy-out -a stage3-disk.img /rpmbuild ./ | ||
and the files will be downloaded to ./RPMS | and the files will be downloaded to ./SRPMS and ./RPMS in the current directory. Note: Keep the source RPM too, especially if you modified it. | ||
Add notes to the section below. Also come to #fedora-riscv and discuss where to put your built packages. | Add notes to the section below. Also come to <code>#fedora-riscv</code> and discuss where to put your built packages. | ||
== Notes on packages built so far == | == Notes on packages built so far == |
Revision as of 14:27, 13 August 2016
RISC-V (pronounced "RISC Five") is an open source instruction set architecture (ISA). This project, informally called Fedora/RISC-V, aims to get Fedora bootstrapped on the RISC-V (64 bit) architecture.
Downloads
- http://copr-fe.cloud.fedoraproject.org/coprs/rjones/riscv/
- COPR repository (for Fedora 24/x86_64) containing: QEMU, Spike, cross-compiler toolchain
- https://github.com/rwmjones/fedora-riscv
- Git repository containing the bootstrapping work. Read the README file!
- http://oirase.annexia.org/riscv/
- Interim stage3 disk image.
Status
Last updated: 2016-08-12
Status: The stage3 disk image boots to a shell, with GCC, numerous developer utilities, and rpmbuild.
I have started using the stage3 to build stage4 RPMs.
For the latest information, see: https://github.com/rwmjones/fedora-riscv
Communications
There is no specific mailing list. Use Fedora devel for now.
On FreeNode IRC: #fedora-riscv
People
(add your name here)
Building packages in stage3
The stage3 environment can be built from source or you can download a snapshot binary image. See above for links to git etc.
Pick a package which:
- has very few dependencies
- is written in C or C++
- is part of Fedora @Core
Grab the source RPM from Koji.
Copy the source RPM into the stage3 disk image. The disk image must not be running when you do this:
virt-copy-in -a stage3-disk.img the_package.src.rpm /var/tmp/
Boot the disk image. Spike is currently more stable than qemu, so:
make boot-stage3-in-spike
Inside the VM you can now "install" the source RPM, which makes it available under /rpmbuild
:
rpm -i /var/tmp/the_package.src.rpm cd /rpmbuild/SPECS
You may need to disable hardened build by adding:
%global _hardened_build 0
to the spec file.
You can now try building the package:
rpmbuild -ba the_package.spec --define "debug_package %{nil}"
If it builds successfully, brilliant! More usually this will require many cycles of debugging and fixing things. Removing dependencies or parts of the spec file is an option for these stage3 builds.
If you get a build, it will be in /rpmbuild
inside the VM. sync and shut down the VM, then do:
virt-copy-out -a stage3-disk.img /rpmbuild ./
and the files will be downloaded to ./SRPMS and ./RPMS in the current directory. Note: Keep the source RPM too, especially if you modified it.
Add notes to the section below. Also come to #fedora-riscv
and discuss where to put your built packages.
Notes on packages built so far
zlib (RWMJ)
Done
filesystem (RWMJ)
Done
glibc (RWMJ)
rpmbuild --with bootstrap ...
The build took over 24 hours, but it got surprisingly far. Unfortunately it failed while creating the locale files. Actually it failed half way through the locales in a very non-specific way. Needs a lot more investigation and time. I might try to find a faster machine first.