Patrick Williams | f1e5d69 | 2016-03-30 15:21:19 -0500 | [diff] [blame] | 1 | # Copyright (C) 2015 Intel Corporation |
| 2 | # Released under the MIT license (see COPYING.MIT for the terms) |
| 3 | |
| 4 | DESCRIPTION = "Make public keys of the signing keys available" |
| 5 | LICENSE = "MIT" |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 6 | LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ |
| 7 | file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" |
Patrick Williams | f1e5d69 | 2016-03-30 15:21:19 -0500 | [diff] [blame] | 8 | |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 9 | |
| 10 | inherit allarch deploy |
Patrick Williams | f1e5d69 | 2016-03-30 15:21:19 -0500 | [diff] [blame] | 11 | |
| 12 | EXCLUDE_FROM_WORLD = "1" |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 13 | INHIBIT_DEFAULT_DEPS = "1" |
Patrick Williams | f1e5d69 | 2016-03-30 15:21:19 -0500 | [diff] [blame] | 14 | |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 15 | PACKAGES =+ "${PN}-ipk ${PN}-rpm ${PN}-packagefeed" |
Patrick Williams | f1e5d69 | 2016-03-30 15:21:19 -0500 | [diff] [blame] | 16 | |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 17 | FILES_${PN}-rpm = "${sysconfdir}/pki/rpm-gpg" |
| 18 | FILES_${PN}-ipk = "${sysconfdir}/pki/ipk-gpg" |
| 19 | FILES_${PN}-packagefeed = "${sysconfdir}/pki/packagefeed-gpg" |
| 20 | |
| 21 | python do_get_public_keys () { |
| 22 | from oe.gpg_sign import get_signer |
| 23 | |
Patrick Williams | f1e5d69 | 2016-03-30 15:21:19 -0500 | [diff] [blame] | 24 | if d.getVar("RPM_SIGN_PACKAGES", True): |
| 25 | # Export public key of the rpm signing key |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 26 | signer = get_signer(d, d.getVar('RPM_GPG_BACKEND', True)) |
| 27 | signer.export_pubkey(os.path.join(d.expand('${B}'), 'rpm-key'), |
| 28 | d.getVar('RPM_GPG_NAME', True)) |
| 29 | |
| 30 | if d.getVar("IPK_SIGN_PACKAGES", True): |
| 31 | # Export public key of the ipk signing key |
| 32 | signer = get_signer(d, d.getVar('IPK_GPG_BACKEND', True)) |
| 33 | signer.export_pubkey(os.path.join(d.expand('${B}'), 'ipk-key'), |
| 34 | d.getVar('IPK_GPG_NAME', True)) |
Patrick Williams | f1e5d69 | 2016-03-30 15:21:19 -0500 | [diff] [blame] | 35 | |
| 36 | if d.getVar('PACKAGE_FEED_SIGN', True) == '1': |
| 37 | # Export public key of the feed signing key |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 38 | signer = get_signer(d, d.getVar('PACKAGE_FEED_GPG_BACKEND', True)) |
| 39 | signer.export_pubkey(os.path.join(d.expand('${B}'), 'pf-key'), |
| 40 | d.getVar('PACKAGE_FEED_GPG_NAME', True)) |
Patrick Williams | f1e5d69 | 2016-03-30 15:21:19 -0500 | [diff] [blame] | 41 | } |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 42 | do_get_public_keys[cleandirs] = "${B}" |
| 43 | addtask get_public_keys before do_install |
| 44 | |
| 45 | do_install () { |
| 46 | if [ -f "${B}/rpm-key" ]; then |
| 47 | install -D -m 0644 "${B}/rpm-key" "${D}${sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-${DISTRO_VERSION}" |
| 48 | fi |
| 49 | if [ -f "${B}/ipk-key" ]; then |
| 50 | install -D -m 0644 "${B}/ipk-key" "${D}${sysconfdir}/pki/ipk-gpg/IPK-GPG-KEY-${DISTRO_VERSION}" |
| 51 | fi |
| 52 | if [ -f "${B}/pf-key" ]; then |
| 53 | install -D -m 0644 "${B}/pf-key" "${D}${sysconfdir}/pki/packagefeed-gpg/PACKAGEFEED-GPG-KEY-${DISTRO_VERSION}" |
| 54 | fi |
| 55 | } |
| 56 | |
| 57 | sysroot_stage_all_append () { |
| 58 | sysroot_stage_dir ${D}${sysconfdir}/pki ${SYSROOT_DESTDIR}${sysconfdir}/pki |
| 59 | } |
| 60 | |
| 61 | do_deploy () { |
| 62 | if [ -f "${B}/rpm-key" ]; then |
| 63 | install -D -m 0644 "${B}/rpm-key" "${DEPLOYDIR}/RPM-GPG-KEY-${DISTRO_VERSION}" |
| 64 | fi |
| 65 | if [ -f "${B}/ipk-key" ]; then |
| 66 | install -D -m 0644 "${B}/ipk-key" "${DEPLOYDIR}/IPK-GPG-KEY-${DISTRO_VERSION}" |
| 67 | fi |
| 68 | if [ -f "${B}/pf-key" ]; then |
| 69 | install -D -m 0644 "${B}/pf-key" "${DEPLOYDIR}/PACKAGEFEED-GPG-KEY-${DISTRO_VERSION}" |
| 70 | fi |
| 71 | } |
| 72 | do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_RPM}" |
| 73 | # cleandirs should possibly be in deploy.bbclass but we need it |
| 74 | do_deploy[cleandirs] = "${DEPLOYDIR}" |
| 75 | # clear stamp-extra-info since MACHINE is normally put there by deploy.bbclass |
| 76 | do_deploy[stamp-extra-info] = "" |
| 77 | addtask deploy after do_get_public_keys |