summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMariano Lopez <mariano.lopez@linux.intel.com>2016-01-18 14:33:06 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-01-20 17:07:15 +0000
commit6ebda8e659f678a0f4fe1e970d6f38e5e273f5f7 (patch)
tree3f3a48a5798b58defdfc9c812705da0bf7fd40fb
parent03075f671c5425f08669f10f30330c4880c0d60a (diff)
downloadpoky-6ebda8e659f678a0f4fe1e970d6f38e5e273f5f7.tar.gz
lib/oe/rootfs: Use list_pkgs() instead of list()
This patch changes the use list_pkgs() instead of list() from class RpmPkgsList. The change is in two functions, image_list_installed_packages from rootfs.py and sdk_list_installed_packages from sdk.py. With this change the functions calling the functions listed above, must format the output as they required. The formatting can be done using format_pkg_list() from oe.utils. The classes calling the afected functions are changed too with this patch, to keep the same functionality using the new data structure. [YOCTO #7427] (From OE-Core rev: 983ea373362514e5888bd1d7d9c4f136c94b00f2) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/buildhistory.bbclass11
-rw-r--r--meta/classes/license.bbclass8
-rw-r--r--meta/classes/populate_sdk_base.bbclass8
-rw-r--r--meta/classes/rootfs-postcommands.bbclass4
-rw-r--r--meta/lib/oe/package_manager.py18
-rw-r--r--meta/lib/oe/rootfs.py10
-rw-r--r--meta/lib/oe/sdk.py8
7 files changed, 41 insertions, 26 deletions
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index 2c144abb97..9f1744293a 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -337,18 +337,21 @@ def write_pkghistory(pkginfo, d):
337def buildhistory_list_installed(d, rootfs_type="image"): 337def buildhistory_list_installed(d, rootfs_type="image"):
338 from oe.rootfs import image_list_installed_packages 338 from oe.rootfs import image_list_installed_packages
339 from oe.sdk import sdk_list_installed_packages 339 from oe.sdk import sdk_list_installed_packages
340 from oe.utils import format_pkg_list
340 341
341 process_list = [('file', 'bh_installed_pkgs.txt'),\ 342 process_list = [('file', 'bh_installed_pkgs.txt'),\
342 ('deps', 'bh_installed_pkgs_deps.txt')] 343 ('deps', 'bh_installed_pkgs_deps.txt')]
343 344
345 if rootfs_type == "image":
346 pkgs = image_list_installed_packages(d)
347 else:
348 pkgs = sdk_list_installed_packages(d, rootfs_type == "sdk_target")
349
344 for output_type, output_file in process_list: 350 for output_type, output_file in process_list:
345 output_file_full = os.path.join(d.getVar('WORKDIR', True), output_file) 351 output_file_full = os.path.join(d.getVar('WORKDIR', True), output_file)
346 352
347 with open(output_file_full, 'w') as output: 353 with open(output_file_full, 'w') as output:
348 if rootfs_type == "image": 354 output.write(format_pkg_list(pkgs, output_type))
349 output.write(image_list_installed_packages(d, output_type))
350 else:
351 output.write(sdk_list_installed_packages(d, rootfs_type == "sdk_target", output_type))
352 355
353python buildhistory_list_installed_image() { 356python buildhistory_list_installed_image() {
354 buildhistory_list_installed(d) 357 buildhistory_list_installed(d)
diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
index 8a42874600..301216d5d6 100644
--- a/meta/classes/license.bbclass
+++ b/meta/classes/license.bbclass
@@ -21,8 +21,12 @@ python write_package_manifest() {
21 license_image_dir = d.expand('${LICENSE_DIRECTORY}/${IMAGE_NAME}') 21 license_image_dir = d.expand('${LICENSE_DIRECTORY}/${IMAGE_NAME}')
22 bb.utils.mkdirhier(license_image_dir) 22 bb.utils.mkdirhier(license_image_dir)
23 from oe.rootfs import image_list_installed_packages 23 from oe.rootfs import image_list_installed_packages
24 from oe.utils import format_pkg_list
25
26 pkgs = image_list_installed_packages(d)
27 output = format_pkg_list(pkgs)
24 open(os.path.join(license_image_dir, 'package.manifest'), 28 open(os.path.join(license_image_dir, 'package.manifest'),
25 'w+').write(image_list_installed_packages(d)) 29 'w+').write(output)
26} 30}
27 31
28python write_deploy_manifest() { 32python write_deploy_manifest() {
@@ -38,7 +42,7 @@ python license_create_manifest() {
38 return 0 42 return 0
39 43
40 pkg_dic = {} 44 pkg_dic = {}
41 for pkg in image_list_installed_packages(d).splitlines(): 45 for pkg in sorted(image_list_installed_packages(d)):
42 pkg_info = os.path.join(d.getVar('PKGDATA_DIR', True), 46 pkg_info = os.path.join(d.getVar('PKGDATA_DIR', True),
43 'runtime-reverse', pkg) 47 'runtime-reverse', pkg)
44 pkg_name = os.path.basename(os.readlink(pkg_info)) 48 pkg_name = os.path.basename(os.readlink(pkg_info))
diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
index 7ca1df67a2..99b64f7429 100644
--- a/meta/classes/populate_sdk_base.bbclass
+++ b/meta/classes/populate_sdk_base.bbclass
@@ -62,20 +62,24 @@ SDK_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
62SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest" 62SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
63python write_target_sdk_manifest () { 63python write_target_sdk_manifest () {
64 from oe.sdk import sdk_list_installed_packages 64 from oe.sdk import sdk_list_installed_packages
65 from oe.utils import format_pkg_list
65 sdkmanifestdir = os.path.dirname(d.getVar("SDK_TARGET_MANIFEST", True)) 66 sdkmanifestdir = os.path.dirname(d.getVar("SDK_TARGET_MANIFEST", True))
67 pkgs = sdk_list_installed_packages(d, True)
66 if not os.path.exists(sdkmanifestdir): 68 if not os.path.exists(sdkmanifestdir):
67 bb.utils.mkdirhier(sdkmanifestdir) 69 bb.utils.mkdirhier(sdkmanifestdir)
68 with open(d.getVar('SDK_TARGET_MANIFEST', True), 'w') as output: 70 with open(d.getVar('SDK_TARGET_MANIFEST', True), 'w') as output:
69 output.write(sdk_list_installed_packages(d, True, 'ver')) 71 output.write(format_pkg_list(pkgs, 'ver'))
70} 72}
71 73
72python write_host_sdk_manifest () { 74python write_host_sdk_manifest () {
73 from oe.sdk import sdk_list_installed_packages 75 from oe.sdk import sdk_list_installed_packages
76 from oe.utils import format_pkg_list
74 sdkmanifestdir = os.path.dirname(d.getVar("SDK_HOST_MANIFEST", True)) 77 sdkmanifestdir = os.path.dirname(d.getVar("SDK_HOST_MANIFEST", True))
78 pkgs = sdk_list_installed_packages(d, False)
75 if not os.path.exists(sdkmanifestdir): 79 if not os.path.exists(sdkmanifestdir):
76 bb.utils.mkdirhier(sdkmanifestdir) 80 bb.utils.mkdirhier(sdkmanifestdir)
77 with open(d.getVar('SDK_HOST_MANIFEST', True), 'w') as output: 81 with open(d.getVar('SDK_HOST_MANIFEST', True), 'w') as output:
78 output.write(sdk_list_installed_packages(d, False, 'ver')) 82 output.write(format_pkg_list(pkgs, 'ver'))
79} 83}
80 84
81POPULATE_SDK_POST_TARGET_COMMAND_append = " write_target_sdk_manifest ; " 85POPULATE_SDK_POST_TARGET_COMMAND_append = " write_target_sdk_manifest ; "
diff --git a/meta/classes/rootfs-postcommands.bbclass b/meta/classes/rootfs-postcommands.bbclass
index 970e9f34b1..0736d6c533 100644
--- a/meta/classes/rootfs-postcommands.bbclass
+++ b/meta/classes/rootfs-postcommands.bbclass
@@ -207,13 +207,15 @@ insert_feed_uris () {
207 207
208python write_image_manifest () { 208python write_image_manifest () {
209 from oe.rootfs import image_list_installed_packages 209 from oe.rootfs import image_list_installed_packages
210 from oe.utils import format_pkg_list
210 211
211 deploy_dir = d.getVar('DEPLOY_DIR_IMAGE', True) 212 deploy_dir = d.getVar('DEPLOY_DIR_IMAGE', True)
212 link_name = d.getVar('IMAGE_LINK_NAME', True) 213 link_name = d.getVar('IMAGE_LINK_NAME', True)
213 manifest_name = d.getVar('IMAGE_MANIFEST', True) 214 manifest_name = d.getVar('IMAGE_MANIFEST', True)
214 215
216 pkgs = image_list_installed_packages(d)
215 with open(manifest_name, 'w+') as image_manifest: 217 with open(manifest_name, 'w+') as image_manifest:
216 image_manifest.write(image_list_installed_packages(d, 'ver')) 218 image_manifest.write(format_pkg_list(pkgs, "ver"))
217 image_manifest.write("\n") 219 image_manifest.write("\n")
218 220
219 if manifest_name is not None and os.path.exists(manifest_name): 221 if manifest_name is not None and os.path.exists(manifest_name):
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index 79cadda682..6d026307f5 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -708,7 +708,7 @@ class PackageManager(object):
708 pass 708 pass
709 709
710 @abstractmethod 710 @abstractmethod
711 def list_installed(self, format=None): 711 def list_installed(self):
712 pass 712 pass
713 713
714 @abstractmethod 714 @abstractmethod
@@ -728,7 +728,9 @@ class PackageManager(object):
728 installed_pkgs_file = os.path.join(self.d.getVar('WORKDIR', True), 728 installed_pkgs_file = os.path.join(self.d.getVar('WORKDIR', True),
729 "installed_pkgs.txt") 729 "installed_pkgs.txt")
730 with open(installed_pkgs_file, "w+") as installed_pkgs: 730 with open(installed_pkgs_file, "w+") as installed_pkgs:
731 installed_pkgs.write(self.list_installed("arch")) 731 pkgs = self.list_installed()
732 output = oe.utils.format_pkg_list(pkgs, "arch")
733 installed_pkgs.write(output)
732 734
733 if globs is None: 735 if globs is None:
734 globs = self.d.getVar('IMAGE_INSTALL_COMPLEMENTARY', True) 736 globs = self.d.getVar('IMAGE_INSTALL_COMPLEMENTARY', True)
@@ -1432,8 +1434,8 @@ class RpmPM(PackageManager):
1432 self.image_rpmlib, 1434 self.image_rpmlib,
1433 symlinks=True) 1435 symlinks=True)
1434 1436
1435 def list_installed(self, format=None): 1437 def list_installed(self):
1436 return self.pkgs_list.list(format) 1438 return self.pkgs_list.list_pkgs()
1437 1439
1438 ''' 1440 '''
1439 If incremental install, we need to determine what we've got, 1441 If incremental install, we need to determine what we've got,
@@ -1797,8 +1799,8 @@ class OpkgPM(PackageManager):
1797 # create the directory back, it's needed by PM lock 1799 # create the directory back, it's needed by PM lock
1798 bb.utils.mkdirhier(self.opkg_dir) 1800 bb.utils.mkdirhier(self.opkg_dir)
1799 1801
1800 def list_installed(self, format=None): 1802 def list_installed(self):
1801 return OpkgPkgsList(self.d, self.target_rootfs, self.config_file).list(format) 1803 return OpkgPkgsList(self.d, self.target_rootfs, self.config_file).list_pkgs()
1802 1804
1803 def handle_bad_recommendations(self): 1805 def handle_bad_recommendations(self):
1804 bad_recommendations = self.d.getVar("BAD_RECOMMENDATIONS", True) or "" 1806 bad_recommendations = self.d.getVar("BAD_RECOMMENDATIONS", True) or ""
@@ -2186,8 +2188,8 @@ class DpkgPM(PackageManager):
2186 bb.fatal("Cannot fix broken dependencies. Command '%s' " 2188 bb.fatal("Cannot fix broken dependencies. Command '%s' "
2187 "returned %d:\n%s" % (cmd, e.returncode, e.output)) 2189 "returned %d:\n%s" % (cmd, e.returncode, e.output))
2188 2190
2189 def list_installed(self, format=None): 2191 def list_installed(self):
2190 return DpkgPkgsList(self.d, self.target_rootfs).list() 2192 return DpkgPkgsList(self.d, self.target_rootfs).list_pkgs()
2191 2193
2192 2194
2193def generate_index_files(d): 2195def generate_index_files(d):
diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py
index f677d03a12..0e901c2405 100644
--- a/meta/lib/oe/rootfs.py
+++ b/meta/lib/oe/rootfs.py
@@ -252,7 +252,7 @@ class Rootfs(object):
252 # Remove components that we don't need if it's a read-only rootfs 252 # Remove components that we don't need if it's a read-only rootfs
253 pkgs_installed = image_list_installed_packages(self.d) 253 pkgs_installed = image_list_installed_packages(self.d)
254 pkgs_to_remove = list() 254 pkgs_to_remove = list()
255 for pkg in pkgs_installed.split(): 255 for pkg in pkgs_installed:
256 if pkg in ["update-rc.d", 256 if pkg in ["update-rc.d",
257 "base-passwd", 257 "base-passwd",
258 "shadow", 258 "shadow",
@@ -976,17 +976,17 @@ def create_rootfs(d, manifest_dir=None):
976 os.environ.update(env_bkp) 976 os.environ.update(env_bkp)
977 977
978 978
979def image_list_installed_packages(d, format=None, rootfs_dir=None): 979def image_list_installed_packages(d, rootfs_dir=None):
980 if not rootfs_dir: 980 if not rootfs_dir:
981 rootfs_dir = d.getVar('IMAGE_ROOTFS', True) 981 rootfs_dir = d.getVar('IMAGE_ROOTFS', True)
982 982
983 img_type = d.getVar('IMAGE_PKGTYPE', True) 983 img_type = d.getVar('IMAGE_PKGTYPE', True)
984 if img_type == "rpm": 984 if img_type == "rpm":
985 return RpmPkgsList(d, rootfs_dir).list(format) 985 return RpmPkgsList(d, rootfs_dir).list_pkgs()
986 elif img_type == "ipk": 986 elif img_type == "ipk":
987 return OpkgPkgsList(d, rootfs_dir, d.getVar("IPKGCONF_TARGET", True)).list(format) 987 return OpkgPkgsList(d, rootfs_dir, d.getVar("IPKGCONF_TARGET", True)).list_pkgs()
988 elif img_type == "deb": 988 elif img_type == "deb":
989 return DpkgPkgsList(d, rootfs_dir).list(format) 989 return DpkgPkgsList(d, rootfs_dir).list_pkgs()
990 990
991if __name__ == "__main__": 991if __name__ == "__main__":
992 """ 992 """
diff --git a/meta/lib/oe/sdk.py b/meta/lib/oe/sdk.py
index 6affa4079b..b308aea252 100644
--- a/meta/lib/oe/sdk.py
+++ b/meta/lib/oe/sdk.py
@@ -345,7 +345,7 @@ class DpkgSdk(Sdk):
345 345
346 346
347 347
348def sdk_list_installed_packages(d, target, format=None, rootfs_dir=None): 348def sdk_list_installed_packages(d, target, rootfs_dir=None):
349 if rootfs_dir is None: 349 if rootfs_dir is None:
350 sdk_output = d.getVar('SDK_OUTPUT', True) 350 sdk_output = d.getVar('SDK_OUTPUT', True)
351 target_path = d.getVar('SDKTARGETSYSROOT', True).strip('/') 351 target_path = d.getVar('SDKTARGETSYSROOT', True).strip('/')
@@ -356,12 +356,12 @@ def sdk_list_installed_packages(d, target, format=None, rootfs_dir=None):
356 if img_type == "rpm": 356 if img_type == "rpm":
357 arch_var = ["SDK_PACKAGE_ARCHS", None][target is True] 357 arch_var = ["SDK_PACKAGE_ARCHS", None][target is True]
358 os_var = ["SDK_OS", None][target is True] 358 os_var = ["SDK_OS", None][target is True]
359 return RpmPkgsList(d, rootfs_dir, arch_var, os_var).list(format) 359 return RpmPkgsList(d, rootfs_dir, arch_var, os_var).list_pkgs()
360 elif img_type == "ipk": 360 elif img_type == "ipk":
361 conf_file_var = ["IPKGCONF_SDK", "IPKGCONF_TARGET"][target is True] 361 conf_file_var = ["IPKGCONF_SDK", "IPKGCONF_TARGET"][target is True]
362 return OpkgPkgsList(d, rootfs_dir, d.getVar(conf_file_var, True)).list(format) 362 return OpkgPkgsList(d, rootfs_dir, d.getVar(conf_file_var, True)).list_pkgs()
363 elif img_type == "deb": 363 elif img_type == "deb":
364 return DpkgPkgsList(d, rootfs_dir).list(format) 364 return DpkgPkgsList(d, rootfs_dir).list_pkgs()
365 365
366def populate_sdk(d, manifest_dir=None): 366def populate_sdk(d, manifest_dir=None):
367 env_bkp = os.environ.copy() 367 env_bkp = os.environ.copy()