diff options
Diffstat (limited to 'meta/classes/sign_rpm.bbclass')
-rw-r--r-- | meta/classes/sign_rpm.bbclass | 30 |
1 files changed, 9 insertions, 21 deletions
diff --git a/meta/classes/sign_rpm.bbclass b/meta/classes/sign_rpm.bbclass index 39f877a23c..4da17633a7 100644 --- a/meta/classes/sign_rpm.bbclass +++ b/meta/classes/sign_rpm.bbclass | |||
@@ -4,8 +4,7 @@ | |||
4 | # RPM_GPG_PASSPHRASE_FILE | 4 | # RPM_GPG_PASSPHRASE_FILE |
5 | # Path to a file containing the passphrase of the signing key. | 5 | # Path to a file containing the passphrase of the signing key. |
6 | # RPM_GPG_NAME | 6 | # RPM_GPG_NAME |
7 | # Name of the key to sign with. Alternatively you can define | 7 | # Name of the key to sign with. May be key id or key name. |
8 | # %_gpg_name macro in your ~/.oerpmmacros file. | ||
9 | # RPM_GPG_PUBKEY | 8 | # RPM_GPG_PUBKEY |
10 | # Path to a file containing the public key (in "armor" format) | 9 | # Path to a file containing the public key (in "armor" format) |
11 | # corresponding the signing key. | 10 | # corresponding the signing key. |
@@ -20,9 +19,11 @@ inherit sanity | |||
20 | RPM_SIGN_PACKAGES='1' | 19 | RPM_SIGN_PACKAGES='1' |
21 | 20 | ||
22 | 21 | ||
23 | _check_gpg_name () { | 22 | python () { |
24 | macrodef=`rpm -E '%_gpg_name'` | 23 | # Check configuration |
25 | [ "$macrodef" == "%_gpg_name" ] && return 1 || return 0 | 24 | for var in ('RPM_GPG_NAME', 'RPM_GPG_PASSPHRASE_FILE'): |
25 | if not d.getVar(var, True): | ||
26 | raise_sanity_error("You need to define %s in the config" % var, d) | ||
26 | } | 27 | } |
27 | 28 | ||
28 | 29 | ||
@@ -31,16 +32,7 @@ def rpmsign_wrapper(d, files, passphrase, gpg_name=None): | |||
31 | 32 | ||
32 | # Find the correct rpm binary | 33 | # Find the correct rpm binary |
33 | rpm_bin_path = d.getVar('STAGING_BINDIR_NATIVE', True) + '/rpm' | 34 | rpm_bin_path = d.getVar('STAGING_BINDIR_NATIVE', True) + '/rpm' |
34 | cmd = rpm_bin_path + " --addsign " | 35 | cmd = rpm_bin_path + " --addsign --define '_gpg_name %s' " % gpg_name |
35 | if gpg_name: | ||
36 | cmd += "--define '%%_gpg_name %s' " % gpg_name | ||
37 | else: | ||
38 | try: | ||
39 | bb.build.exec_func('_check_gpg_name', d) | ||
40 | except bb.build.FuncFailed: | ||
41 | raise_sanity_error("You need to define RPM_GPG_NAME in bitbake " | ||
42 | "config or the %_gpg_name RPM macro defined " | ||
43 | "(e.g. in ~/.oerpmmacros", d) | ||
44 | if d.getVar('GPG_BIN', True): | 36 | if d.getVar('GPG_BIN', True): |
45 | cmd += "--define '%%__gpg %s' " % d.getVar('GPG_BIN', True) | 37 | cmd += "--define '%%__gpg %s' " % d.getVar('GPG_BIN', True) |
46 | if d.getVar('GPG_PATH', True): | 38 | if d.getVar('GPG_PATH', True): |
@@ -66,12 +58,8 @@ def rpmsign_wrapper(d, files, passphrase, gpg_name=None): | |||
66 | python sign_rpm () { | 58 | python sign_rpm () { |
67 | import glob | 59 | import glob |
68 | 60 | ||
69 | rpm_gpg_pass_file = (d.getVar("RPM_GPG_PASSPHRASE_FILE", True) or "") | 61 | with open(d.getVar("RPM_GPG_PASSPHRASE_FILE", True)) as fobj: |
70 | if rpm_gpg_pass_file: | 62 | rpm_gpg_passphrase = fobj.readlines()[0].rstrip('\n') |
71 | with open(rpm_gpg_pass_file) as fobj: | ||
72 | rpm_gpg_passphrase = fobj.readlines()[0].rstrip('\n') | ||
73 | else: | ||
74 | raise_sanity_error("You need to define RPM_GPG_PASSPHRASE_FILE in the config", d) | ||
75 | 63 | ||
76 | rpm_gpg_name = (d.getVar("RPM_GPG_NAME", True) or "") | 64 | rpm_gpg_name = (d.getVar("RPM_GPG_NAME", True) or "") |
77 | 65 | ||