~bitfehler/apk-index-update

Update existing APKINDEX with packages from a new one
Add build for Alpine 3.20
Fix manifest for new Alpine versions
Fix all memory issues

refs

master
browse  log 

clone

read-only
https://git.sr.ht/~bitfehler/apk-index-update
read/write
git@git.sr.ht:~bitfehler/apk-index-update

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

#apk-index-update

A small tool to ease maintenance of Alpine package indices.

#Usage

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.

#Packages

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.

#Rationale

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.

#Contact

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