blob: e843301b2e0052baad99c0e89e40da8186332e4b [file] [log] [blame]
Patrick Williamsf1e5d692016-03-30 15:21:19 -05001# Copyright (C) 2015 Intel Corporation
2# Released under the MIT license (see COPYING.MIT for the terms)
3
4DESCRIPTION = "Make public keys of the signing keys available"
5LICENSE = "MIT"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05006LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
7 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
Patrick Williamsf1e5d692016-03-30 15:21:19 -05008
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05009
10inherit allarch deploy
Patrick Williamsf1e5d692016-03-30 15:21:19 -050011
12EXCLUDE_FROM_WORLD = "1"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050013INHIBIT_DEFAULT_DEPS = "1"
Patrick Williamsf1e5d692016-03-30 15:21:19 -050014
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050015PACKAGES =+ "${PN}-ipk ${PN}-rpm ${PN}-packagefeed"
Patrick Williamsf1e5d692016-03-30 15:21:19 -050016
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050017FILES_${PN}-rpm = "${sysconfdir}/pki/rpm-gpg"
18FILES_${PN}-ipk = "${sysconfdir}/pki/ipk-gpg"
19FILES_${PN}-packagefeed = "${sysconfdir}/pki/packagefeed-gpg"
20
21python do_get_public_keys () {
22 from oe.gpg_sign import get_signer
23
Patrick Williamsf1e5d692016-03-30 15:21:19 -050024 if d.getVar("RPM_SIGN_PACKAGES", True):
25 # Export public key of the rpm signing key
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050026 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 Williamsf1e5d692016-03-30 15:21:19 -050035
36 if d.getVar('PACKAGE_FEED_SIGN', True) == '1':
37 # Export public key of the feed signing key
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050038 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 Williamsf1e5d692016-03-30 15:21:19 -050041}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050042do_get_public_keys[cleandirs] = "${B}"
43addtask get_public_keys before do_install
44
45do_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
57sysroot_stage_all_append () {
58 sysroot_stage_dir ${D}${sysconfdir}/pki ${SYSROOT_DESTDIR}${sysconfdir}/pki
59}
60
61do_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}
72do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_RPM}"
73# cleandirs should possibly be in deploy.bbclass but we need it
74do_deploy[cleandirs] = "${DEPLOYDIR}"
75# clear stamp-extra-info since MACHINE is normally put there by deploy.bbclass
76do_deploy[stamp-extra-info] = ""
77addtask deploy after do_get_public_keys