diff options
author | Markus Lehtonen <markus.lehtonen@linux.intel.com> | 2017-08-15 14:34:50 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-08-16 00:02:01 +0100 |
commit | 7a33426561ddc72296e33c5e7b8ca38763a7ab07 (patch) | |
tree | debf5801d1d98d0589edb1cba263d3dfeb0dcbb1 | |
parent | 95e31e4b15573eb1cbeb4ff1d0903c5141b84d54 (diff) | |
download | openembedded-core-7a33426561ddc72296e33c5e7b8ca38763a7ab07.tar.gz openembedded-core-7a33426561ddc72296e33c5e7b8ca38763a7ab07.tar.bz2 openembedded-core-7a33426561ddc72296e33c5e7b8ca38763a7ab07.zip |
lib/oe/package_manager: re-implement rpm feed signing
[YOCTO #11209]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/lib/oe/package_manager.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py index 518cf8dbe3..942f2dd903 100644 --- a/meta/lib/oe/package_manager.py +++ b/meta/lib/oe/package_manager.py @@ -104,13 +104,25 @@ class Indexer(object, metaclass=ABCMeta): class RpmIndexer(Indexer): def write_index(self): if self.d.getVar('PACKAGE_FEED_SIGN') == '1': - raise NotImplementedError('Package feed signing not yet implementd for rpm') + signer = get_signer(self.d, self.d.getVar('PACKAGE_FEED_GPG_BACKEND')) + else: + signer = None createrepo_c = bb.utils.which(os.environ['PATH'], "createrepo_c") result = create_index("%s --update -q %s" % (createrepo_c, self.deploy_dir)) if result: bb.fatal(result) + # Sign repomd + if signer: + sig_type = self.d.getVar('PACKAGE_FEED_GPG_SIGNATURE_TYPE') + is_ascii_sig = (sig_type.upper() != "BIN") + signer.detach_sign(os.path.join(self.deploy_dir, 'repodata', 'repomd.xml'), + self.d.getVar('PACKAGE_FEED_GPG_NAME'), + self.d.getVar('PACKAGE_FEED_GPG_PASSPHRASE_FILE'), + armor=is_ascii_sig) + + class OpkgIndexer(Indexer): def write_index(self): arch_vars = ["ALL_MULTILIB_PACKAGE_ARCHS", |