Arch Build System

Arch Build System (ABS) is Arch’s way of streamlining your workflow when you need to build a custom open source package.  It is well-documented on Arch Wiki here – https://wiki.archlinux.org/index.php/Arch_Build_System.

Here’s a tl;dr example-oriented summary to help new Arch Users get right down to it.  This example demonstrates how to build your vim editor with python-support enabled.

# Install and run abs (sync)
sudo pacman -S abs
sudo abs
# Prepare a build area
mkdir ~/abs
cd ~/abs
# Make a local copy
cp -r /var/abs/extra/vim .
cd vim
vim PKBGUID
# Change the "--disable-python" options to "--enable-python"
# Build the package
makepkg
# Wait for a while
# Install your new vim and runtime (these are created via the makepkg command above)
sudo pacman -U vim-runtime-7.4.335-4-x86_64.pkg.tar.xz
sudo pacman -U vim-7.4.335-4-x86_64.pkg.tar.xz
# Check it for "+python"
vim --version

Finally, if we are going to make sure that future updates to the vim package with pacman does not override our custom vim.  To do so, simply declare

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
IgnorePkg   = vim
#IgnoreGroup =

And that’s pretty much it.

The important thing to remember is that your custom build depends on the PKGBUILD file.  The `abs` command rsyncs the PKBUILD file from arch repositories to your server whenever you need an updated PKGBUILD and this default PKGBUILD can then be copied over to your build directory and modified so you can decide which features you want to include in your customized package.

There are many community contributed custom packages in AUR (https://aur.archlinux.org/) or on github.com so we can use those too, if a PKGBUILD that enables python support is already maintained by another contributor.

Bottomline?  Everything that controls how a package is built is declared in PKGBUILD so getting familiar with PKGBUILD will let you manage any custom package build you want.