unos-repository

APK repository for unos
git clone git://git.finwo.net/misc/unos-repository
Log | Files | Refs | README

template (1884B)


      1 # Template file for 'unos-keys'
      2 pkgname=unos-keys
      3 version=0.1.0
      4 revision=2
      5 short_desc="UNOS trust anchors - apk and installer verification keys"
      6 maintainer="finwo <finwo@pm.me>"
      7 license="GPL-2.0-only"
      8 homepage="https://unos.finwo.dev"
      9 # Key ceremony: private halves live in ~/.unos-keys/ (developer) or on the CI
     10 # workers under the unos-sign-key feature, and never enter git. Public halves
     11 # are committed here (public by design):
     12 # files/apk/* -> /etc/apk/keys/, files/unos/* -> /etc/unos/keys/.
     13 # Rotation = add the new .pub files and bump revision.
     14 #
     15 # EVERY CI worker's public key must be here. Each of the four workers holds a
     16 # distinct keypair, and mk/build.sh names the signature record after whichever
     17 # key signed it (.SIGN.RSA.<keyname>.rsa.pub), so the signer is decided by
     18 # wherever the conductor happened to schedule the build. Ship fewer than all of
     19 # them and verification fails for an arbitrary, run-to-run-varying subset of
     20 # packages -- the failure looks like corruption, not like a missing key.
     21 #
     22 # Consequences worth knowing before adding a fifth worker:
     23 #   - publish this package BEFORE that worker builds anything, or existing
     24 #     installs cannot verify its output;
     25 #   - any one worker can sign packages every client trusts, so these four are
     26 #     jointly as trusted as the repo itself. The intended end state is a
     27 #     release step that re-signs with a single key and merely *accepts* these
     28 #     as inputs; that does not exist yet.
     29 #
     30 # unos-dev@finwo.dev-096b7b41 is the developer key, kept so locally built
     31 # packages still install. It should be dropped once CI is publishing.
     32 do_install() {
     33   for k in "${FILESDIR}"/apk/*; do
     34     [ -e "${k}" ] || break
     35     vinstall "${k}" 644 etc/apk/keys "$(basename "${k}")"
     36   done
     37   for k in "${FILESDIR}"/unos/*; do
     38     [ -e "${k}" ] || break
     39     vinstall "${k}" 644 etc/unos/keys "$(basename "${k}")"
     40   done
     41 }