Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 1 | SUMMARY = "Keyrings for verifying opkg packages and feeds" |
| 2 | LICENSE = "MIT" |
| 3 | LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" |
| 4 | |
| 5 | # Distro-specific keys can be added to this package in two ways: |
| 6 | # |
| 7 | # 1) In a .bbappend, add .gpg and/or .asc files to SRC_URI and install them to |
| 8 | # ${D}${datadir}/opkg/keyrings/ in a do_install_append function. These |
| 9 | # files should not be named 'key-$name.gpg' to ensure they don't conflict |
| 10 | # with keys exported as per (2). |
| 11 | # |
| 12 | # 2) In a .bbappend, distro config or local.conf, override the variable |
| 13 | # OPKG_KEYRING_KEYS to contain a space-separated list of key names. For |
| 14 | # each name, 'gpg --export $name' will be ran to export the public key to a |
| 15 | # file named 'key-$name.gpg'. The public key must therefore be in the gpg |
| 16 | # keyrings on the build machine. |
| 17 | |
| 18 | OPKG_KEYRING_KEYS ?= "" |
| 19 | |
| 20 | do_compile() { |
| 21 | for name in ${OPKG_KEYRING_KEYS}; do |
| 22 | gpg --export ${name} > ${B}/key-${name}.gpg |
| 23 | done |
| 24 | } |
| 25 | |
| 26 | do_install () { |
| 27 | install -d ${D}${datadir}/opkg/keyrings/ |
| 28 | for name in ${OPKG_KEYRING_KEYS}; do |
| 29 | install -m 0644 ${B}/key-${name}.gpg ${D}${datadir}/opkg/keyrings/ |
| 30 | done |
| 31 | } |
| 32 | |
| 33 | FILES_${PN} = "${datadir}/opkg/keyrings" |
| 34 | |
| 35 | # We need 'opkg-key' to run the postinst script |
| 36 | RDEPENDS_${PN} = "opkg" |
| 37 | |
| 38 | pkg_postinst_${PN} () { |
| 39 | #! /bin/sh |
| 40 | set -e |
| 41 | |
| 42 | if [ x"$D" = "x" ]; then |
| 43 | # On target |
| 44 | opkg-key populate |
| 45 | else |
| 46 | exit 1 |
| 47 | fi |
| 48 | } |