-
Notifications
You must be signed in to change notification settings - Fork 78
Contributing Guide
This repository contains patches on top of Arch Linux package sources. Let's take elfutils as an example.
-
svn checkout svn://svn.archlinux.org/packages/elfutils
Get the official ArchLinux PKGBUILD. -
cd elfutils/repos/core-x86_64/
Our patch is built upon stable PKGBUILDs not ones in trunk. -
wget https://raw.githubusercontent.com/felixonmars/archriscv-packages/master/elfutils/riscv64.patch
Get all things underelfutils
folder. Since patches will change at any time, we just show one patch here. - Use
vim
or other editors you like to add riscv64 toarch
. Orsetconf PKGBUILD arch "('x86_64' 'riscv64')"
. Our build system will do this automatically. However, you need to do this manually if you would like to build a package locally. -
patch -i riscv64.patch
Patch the official PKGBUILD. -
extra-riscv64-build
This is a build tool modified from the official devtools. You can get it from AUR devtools-riscv64 or from ArchLinuxCN devtools-riscv64.
In order to avoid the system pacman cache being multiplexed, you may want to use another cache folder. And use the following command to build.
export CACHE_DIR=~/.cache/pkgcache
mkdir -p $CACHE_DIR
extra-riscv64-build -- -d "$CACHE_DIR:/var/cache/pacman/pkg"
Replace ~/.cache/pkgcache
with the path where you want to store the package cache.
Note: If you use devtools-riscv64
on x86_64 or other architectures instead of riscv64, you may want to check qemu-user-blacklist.txt which contains a list of packages which cannot be built using qemu-user. They can be built on real riscv64 hardware.
Since we are a open project, contributions are welcome. First, check out the status page. If the status is FTBFS, then we need to do something with this package. Take a look at build log, try to fix it locally and send a Pull Request. There are some conventions in commit messages.
-
addpatch: pkgname
This means that there is no patch before. -
upgpatch: pkgname
This means that there is a patch before which doesn't work now. -
rmvpatch: pkgname
This means that this package can be built without any patch now.
If the status is "Leaf package, port it!" and you need the package, open an issue to request a package.