summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe/package_manager.py
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2017-03-16 15:19:05 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-03-17 16:53:04 +0000
commit9a548edb0f01fe000bbada155cc66fc2936221d2 (patch)
treeeae258f5d828c17465e612a830acb3f2f2a76c96 /meta/lib/oe/package_manager.py
parent2b77735c72cb5100dbd850e79d4f639e82629842 (diff)
downloadpoky-9a548edb0f01fe000bbada155cc66fc2936221d2.tar.gz
lib/oe/package_manager: import rpm signing key to rpmdb
Import the gpg key used in rpm signing into rpmdb. This makes it possible again to create images when rpm signing is enabled. Also, instruct dnf to enforce signature check if rpm signing is enabled. (From OE-Core rev: f30c1653cc5ef9daf594cbd3faad329b9fa08ab7) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe/package_manager.py')
-rw-r--r--meta/lib/oe/package_manager.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index b016bc32dc..eeb4c76071 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -520,7 +520,14 @@ class RpmPM(PackageManager):
520 open(platformconfdir + "macros", 'a').write("%_prefer_color 7") 520 open(platformconfdir + "macros", 'a').write("%_prefer_color 7")
521 521
522 if self.d.getVar('RPM_SIGN_PACKAGES') == '1': 522 if self.d.getVar('RPM_SIGN_PACKAGES') == '1':
523 raise NotImplementedError("Signature verification with rpm not yet supported.") 523 pubkey_path = self.d.getVar('RPM_GPG_PUBKEY')
524 rpm_bin = bb.utils.which(os.getenv('PATH'), "rpmkeys")
525 cmd = [rpm_bin, '--root=%s' % self.target_rootfs, '--import', pubkey_path]
526 try:
527 subprocess.check_output(cmd, stderr=subprocess.STDOUT)
528 except subprocess.CalledProcessError as e:
529 bb.fatal("Importing GPG key failed. Command '%s' "
530 "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
524 531
525 def create_configs(self): 532 def create_configs(self):
526 self._configure_dnf() 533 self._configure_dnf()
@@ -570,7 +577,8 @@ class RpmPM(PackageManager):
570 output = self._invoke_dnf((["--skip-broken"] if attempt_only else []) + 577 output = self._invoke_dnf((["--skip-broken"] if attempt_only else []) +
571 (["-x", ",".join(exclude_pkgs)] if len(exclude_pkgs) > 0 else []) + 578 (["-x", ",".join(exclude_pkgs)] if len(exclude_pkgs) > 0 else []) +
572 (["--setopt=install_weak_deps=False"] if self.d.getVar('NO_RECOMMENDATIONS') == 1 else []) + 579 (["--setopt=install_weak_deps=False"] if self.d.getVar('NO_RECOMMENDATIONS') == 1 else []) +
573 ["--nogpgcheck", "install"] + 580 (["--nogpgcheck"] if self.d.getVar('RPM_SIGN_PACKAGES') != '1' else ["--setopt=gpgcheck=True"]) +
581 ["install"] +
574 pkgs) 582 pkgs)
575 583
576 failed_scriptlets_pkgnames = collections.OrderedDict() 584 failed_scriptlets_pkgnames = collections.OrderedDict()