[OE-core] [PATCH 2/3] package.bbclass: trigger event when collecting package info
Alex DAMIAN
alexandru.damian at intel.com
Tue Sep 24 16:36:06 UTC 2013
From: Alexandru DAMIAN <alexandru.damian at intel.com>
Adding an event that contains the package details,
which is triggered when the emit_pkgdata runs.
This is used to collect package information in the UI clients.
Slight rewrite of the file-writing section as to make
the code easier to maintain.
Signed-off-by: Alexandru DAMIAN <alexandru.damian at intel.com>
---
meta/classes/package.bbclass | 41 +++++++++++++----------------------------
1 file changed, 13 insertions(+), 28 deletions(-)
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index fbb6839..624a1ab 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1106,10 +1106,11 @@ python emit_pkgdata() {
val = d.getVar('%s_%s' % (var, pkg), True)
if val:
f.write('%s_%s: %s\n' % (var, pkg, encode(val)))
- return
+ return encode(val)
val = d.getVar('%s' % (var), True)
if val:
f.write('%s: %s\n' % (var, encode(val)))
+ return encode(val)
return
def get_directory_size(dir):
@@ -1175,41 +1176,25 @@ python emit_pkgdata() {
d.setVar('FILES_INFO', str(items))
+ lpkgdata = {}
+
sf = open(subdata_file, 'w')
- write_if_exists(sf, pkg, 'PN')
- write_if_exists(sf, pkg, 'PV')
- write_if_exists(sf, pkg, 'PR')
- write_if_exists(sf, pkg, 'PKGV')
- write_if_exists(sf, pkg, 'PKGR')
- write_if_exists(sf, pkg, 'LICENSE')
- write_if_exists(sf, pkg, 'DESCRIPTION')
- write_if_exists(sf, pkg, 'SUMMARY')
- write_if_exists(sf, pkg, 'RDEPENDS')
- write_if_exists(sf, pkg, 'RPROVIDES')
- write_if_exists(sf, pkg, 'RRECOMMENDS')
- write_if_exists(sf, pkg, 'RSUGGESTS')
- write_if_exists(sf, pkg, 'RREPLACES')
- write_if_exists(sf, pkg, 'RCONFLICTS')
- write_if_exists(sf, pkg, 'SECTION')
- write_if_exists(sf, pkg, 'PKG')
- write_if_exists(sf, pkg, 'ALLOW_EMPTY')
- write_if_exists(sf, pkg, 'FILES')
- write_if_exists(sf, pkg, 'pkg_postinst')
- write_if_exists(sf, pkg, 'pkg_postrm')
- write_if_exists(sf, pkg, 'pkg_preinst')
- write_if_exists(sf, pkg, 'pkg_prerm')
- write_if_exists(sf, pkg, 'FILERPROVIDESFLIST')
- write_if_exists(sf, pkg, 'FILES_INFO')
+ for vn in ('PN', 'PV', 'PR', 'PKGV', 'PKGR', 'LICENSE', 'DESCRIPTION', 'SUMMARY', 'RDEPENDS', 'RPROVIDES', 'RRECOMMENDS', 'RSUGGESTS', 'RREPLACES', 'RCONFLICTS', 'SECTION', 'PKG', 'ALLOW_EMPTY', 'FILES', 'pkg_postinst', 'pkg_postrm', 'pkg_preinst', 'pkg_prerm', 'FILERPROVIDESFLIST', 'FILES_INFO', 'FILERDEPENDSFLIST'):
+ lpkgdata[vn] = write_if_exists(sf, pkg, vn)
+
for dfile in (d.getVar('FILERPROVIDESFLIST_' + pkg, True) or "").split():
- write_if_exists(sf, pkg, 'FILERPROVIDES_' + dfile)
+ lpkgdata['FILERDEPENDSFLIST_'+dfile] = write_if_exists(sf, pkg, 'FILERPROVIDES_' + dfile)
- write_if_exists(sf, pkg, 'FILERDEPENDSFLIST')
for dfile in (d.getVar('FILERDEPENDSFLIST_' + pkg, True) or "").split():
- write_if_exists(sf, pkg, 'FILERDEPENDS_' + dfile)
+ lpkgdata['FILERDEPENDS_'+dfile] = write_if_exists(sf, pkg, 'FILERDEPENDS_' + dfile)
sf.write('%s_%s: %s\n' % ('PKGSIZE', pkg, get_directory_size(pkgdest + "/%s" % pkg)))
sf.close()
+ # Fire an event containing the pkg data
+ bb.event.fire(bb.event.MetadataEvent("SinglePackageInfo", lpkgdata), d)
+
+
# Symlinks needed for reverse lookups (from the final package name)
subdata_sym = pkgdatadir + "/runtime-reverse/%s" % pkgval
oe.path.symlink("../runtime/%s" % pkg, subdata_sym, True)
--
1.8.1.2
More information about the Openembedded-core
mailing list