Arch Linux ARM uses the ABS and AUR for nearly all of its packages. However, some packages require tweaks to build and run properly on ARM devices. The PKGBUILDs for those packages are modified from the upstream source and placed into our git repository on GitHub. They are kept up to date daily with the rest of the packages, and may move in or out of git depending on (in)compatible changes from the upstream release.
Viewing the Git Repository
To view our Github page in a web browser, visit https://github.com/archlinuxarm/PKGBUILDs.
Clone the Repository
To clone the repository, having installed git ("pacman -Sy git" on Arch Linux ARM), you can run the following command. The files will be placed into a folder named "PKGBUILDs".
git clone git://github.com/archlinuxarm/PKGBUILDs.git PKGBUILDs
The folder structure in git mirrors the repos you find within Arch Linux ARM:
- core, extra, community: Packages in these folders (unless for good reason) are the packages found in the upstream repos by the same names. These represent packages that needed to be changed from the upstream version, not the only ones we build.
- aur: These are packages we have selected from the AUR to have pre-built and available for our users. Because building on ARM is not as easy as x86, we have done the legwork to provide compiled versions of popular or highly requested packages.
- alarm: Packages created by Arch Linux ARM are placed in this folder, and are not packages that are found in either upstream Arch Linux or in the AUR.
New packages should be placed in the correct locations, with the package's base folder name reflecting the 'pkgname' for single-package PKGBUILDs, or 'pkgbase' for multiple-package PKGBUILDs. In the case of non-alarm packages, naming should
exactly match the base folder or package name as used upstream or in the AUR, respectively. This will ensure correct package->version matching in the build system update routines.
For packages created from a modified upstream source, a header near the top of the PKGBUILD is required. The first line should indicate the name and email for each contributor to the changes, followed by short descriptions of what was changed. This allows us to be able to get in contact with the original contributor if needed, and also allows us to maintain the changes in the future when the package is upgraded upstream.
We have defined additional variables to be used inside a package's PKGBUILD for special circumstances, and are for the benefit of our build system only; they are not used by makepkg.
- noautobuild: If defined and non-zero, the package will be marked as done by the build system and will not be built. This flag should only be used in certain circumstances and is not applicable in most cases.
- buildarch: This variable is the decimal representation of a binary bitmask representing the architectures the package should be built for. If left unspecified the default value is 1, which means that the package will build for all architectures. Other currently implemented values are:
- 0010 (2) - build only for armv5
- 0100 (4) - build only for armv7h