Update existing APKINDEX with packages from a new one
Fix all memory issues
Fix invalid memory access
Add build file for creating new Alpine repos


browse  log 



You can also use your local clone with git send-email.


A small tool to ease maintenance of Alpine package indices.


After building packages with abuild, run something along these lines:

curl -Ss https://my.host/repo/x86_64/APKINDEX.tar.gz | tar xz APKINDEX DESCRIPTION
tar Oxf /path/to/repo/x86_64/APKINDEX.tar.gz APKINDEX | \
    apk-index-update APKINDEX | sponge APKINDEX
tar -c APKINDEX DESCRIPTION | abuild-tar --cut | gzip -9 > /path/to/repo/x86_64/APKINDEX.tar.gz
abuild-sign /path/to/repo/x86_64/APKINDEX.tar.gz
rsync -r /path/to/repo my.host:/srv/apk/repo

For a real-world example, take a look at the "pkg" CI job, where the currently available version of apk-index-update is used to update the index for its repository with the new version.


Add https://apk.bitfehler.net/v3.17/apk to /etc/apk/repositories. Only x86_64 packages are available. Repo and packages are signed with conrad-6297636d.rsa.pub.


It may very well be I just haven't found the right commands, but abuild and friends seem really focused on creating an APKINDEX in the presence of all files, translating to "in the package repository itself". However, I want neither the signing key nor all the abuild tools on that server (it runs Arch btw 😉). I want to build new packages somewhere (laptop, CI, ...), update the index and rsync the new index and packages to the repository host.

Note that you might want to put a cron-job in place that deletes old package versions.


Feel free to send comments or questions to my public inbox.