summaryrefslogtreecommitdiff
path: root/poky/meta/lib/oe/package_manager
diff options
context:
space:
mode:
Diffstat (limited to 'poky/meta/lib/oe/package_manager')
-rw-r--r--poky/meta/lib/oe/package_manager/__init__.py11
-rw-r--r--poky/meta/lib/oe/package_manager/deb/__init__.py13
-rw-r--r--poky/meta/lib/oe/package_manager/ipk/sdk.py6
-rw-r--r--poky/meta/lib/oe/package_manager/rpm/__init__.py3
4 files changed, 27 insertions, 6 deletions
diff --git a/poky/meta/lib/oe/package_manager/__init__.py b/poky/meta/lib/oe/package_manager/__init__.py
index 42225a3b2..8e7128b19 100644
--- a/poky/meta/lib/oe/package_manager/__init__.py
+++ b/poky/meta/lib/oe/package_manager/__init__.py
@@ -328,7 +328,11 @@ class PackageManager(object, metaclass=ABCMeta):
try:
bb.note("Installing globbed packages...")
cmd = ["oe-pkgdata-util", "-p", pkgdatadir, "list-pkgs", globs]
- pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT).decode("utf-8")
+ bb.note('Running %s' % cmd)
+ proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ stdout, stderr = proc.communicate()
+ if stderr: bb.note(stderr.decode("utf-8"))
+ pkgs = stdout.decode("utf-8")
self.install(pkgs.split(), attempt_only=True)
except subprocess.CalledProcessError as e:
# Return code 1 means no packages matched
@@ -384,7 +388,10 @@ class PackageManager(object, metaclass=ABCMeta):
cmd.extend(['--exclude=' + '|'.join(exclude.split())])
try:
bb.note('Running %s' % cmd)
- complementary_pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT).decode("utf-8")
+ proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ stdout, stderr = proc.communicate()
+ if stderr: bb.note(stderr.decode("utf-8"))
+ complementary_pkgs = stdout.decode("utf-8")
complementary_pkgs = set(complementary_pkgs.split())
skip_pkgs = sorted(complementary_pkgs & provided_pkgs)
install_pkgs = sorted(complementary_pkgs - provided_pkgs)
diff --git a/poky/meta/lib/oe/package_manager/deb/__init__.py b/poky/meta/lib/oe/package_manager/deb/__init__.py
index 10ad707c2..7fdfdaa4f 100644
--- a/poky/meta/lib/oe/package_manager/deb/__init__.py
+++ b/poky/meta/lib/oe/package_manager/deb/__init__.py
@@ -287,7 +287,8 @@ class DpkgPM(OpkgDpkgPM):
try:
bb.note("Installing the following packages: %s" % ' '.join(pkgs))
- subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
+ output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
+ bb.note(output.decode("utf-8"))
except subprocess.CalledProcessError as e:
(bb.fatal, bb.warn)[attempt_only]("Unable to install packages. "
"Command '%s' returned %d:\n%s" %
@@ -343,8 +344,12 @@ class DpkgPM(OpkgDpkgPM):
if feed_uris == "":
return
+
sources_conf = os.path.join("%s/etc/apt/sources.list"
% self.target_rootfs)
+ if not os.path.exists(os.path.dirname(sources_conf)):
+ return
+
arch_list = []
if feed_archs is None:
@@ -362,11 +367,11 @@ class DpkgPM(OpkgDpkgPM):
if arch_list:
for arch in arch_list:
bb.note('Adding dpkg channel at (%s)' % uri)
- sources_file.write("deb %s/%s ./\n" %
+ sources_file.write("deb [trusted=yes] %s/%s ./\n" %
(uri, arch))
else:
bb.note('Adding dpkg channel at (%s)' % uri)
- sources_file.write("deb %s ./\n" % uri)
+ sources_file.write("deb [trusted=yes] %s ./\n" % uri)
def _create_configs(self, archs, base_archs):
base_archs = re.sub(r"_", r"-", base_archs)
@@ -406,7 +411,7 @@ class DpkgPM(OpkgDpkgPM):
with open(os.path.join(self.apt_conf_dir, "sources.list"), "w+") as sources_file:
for arch in arch_list:
- sources_file.write("deb file:%s/ ./\n" %
+ sources_file.write("deb [trusted=yes] file:%s/ ./\n" %
os.path.join(self.deploy_dir, arch))
base_arch_list = base_archs.split()
diff --git a/poky/meta/lib/oe/package_manager/ipk/sdk.py b/poky/meta/lib/oe/package_manager/ipk/sdk.py
index 37af0344e..e2ca415c8 100644
--- a/poky/meta/lib/oe/package_manager/ipk/sdk.py
+++ b/poky/meta/lib/oe/package_manager/ipk/sdk.py
@@ -14,6 +14,12 @@ class PkgSdk(Sdk):
def __init__(self, d, manifest_dir=None):
super(PkgSdk, self).__init__(d, manifest_dir)
+ # In sdk_list_installed_packages the call to opkg is hardcoded to
+ # always use IPKGCONF_TARGET and there's no exposed API to change this
+ # so simply override IPKGCONF_TARGET to use this separated config file.
+ ipkgconf_sdk_target = d.getVar("IPKGCONF_SDK_TARGET")
+ d.setVar("IPKGCONF_TARGET", ipkgconf_sdk_target)
+
self.target_conf = self.d.getVar("IPKGCONF_TARGET")
self.host_conf = self.d.getVar("IPKGCONF_SDK")
diff --git a/poky/meta/lib/oe/package_manager/rpm/__init__.py b/poky/meta/lib/oe/package_manager/rpm/__init__.py
index 898184442..6df009228 100644
--- a/poky/meta/lib/oe/package_manager/rpm/__init__.py
+++ b/poky/meta/lib/oe/package_manager/rpm/__init__.py
@@ -33,6 +33,9 @@ class RpmIndexer(Indexer):
class RpmSubdirIndexer(RpmIndexer):
def write_index(self):
bb.note("Generating package index for %s" %(self.deploy_dir))
+ # Remove the existing repodata to ensure that we re-generate it no matter what
+ bb.utils.remove(os.path.join(self.deploy_dir, "repodata"), recurse=True)
+
self.do_write_index(self.deploy_dir)
for entry in os.walk(self.deploy_dir):
if os.path.samefile(self.deploy_dir, entry[0]):