Hacking on abuild

From postmarketOS
Revision as of 16:01, 2 May 2019 by Ollieparanoid (talk | contribs) (document how to hack on abuild with pmbootstrap)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

abuild is Alpine's package building program. This article describes a workflow, that allows you to build patches for it, and quickly test them with pmbootstrap.

1. Copy Alpine's abuild aport to pmaports.git:

$ git clone https://git.alpinelinux.org/aports/
$ cp aports/main/abuild "$(pmbootstrap config aports)/temp/abuild" -R

2. Clone the abuild source code:

$ git clone https://git.alpinelinux.org/abuild/

3. Create a shell script that builds abuild from your checked out source, installs it, and runs a specific test.

#!/bin/sh -ex
cd ~/code/abuild
pmbootstrap -q build --src=. --strict abuild
pmbootstrap -q -y zap
pmbootstrap -q build_init

# Run a specific test
pmbootstrap -q chroot -- su pmos -c 'cd /home/pmos && newapkbuild test'

Now you can run that script, verify that it reproduces whatever behavior you would like to change. Modify the source code, until abuild does what you want. Then upstream the patch to Alpine.