diff options
Diffstat (limited to 'poky/meta/lib/oe/package_manager')
-rw-r--r-- | poky/meta/lib/oe/package_manager/__init__.py | 11 | ||||
-rw-r--r-- | poky/meta/lib/oe/package_manager/deb/__init__.py | 13 | ||||
-rw-r--r-- | poky/meta/lib/oe/package_manager/ipk/sdk.py | 6 | ||||
-rw-r--r-- | poky/meta/lib/oe/package_manager/rpm/__init__.py | 3 |
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]): |