diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2012-09-10 15:36:29 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-09-10 21:54:44 +0100 |
commit | 4ec3d7207261d12ff4859982989be7e142e7611d (patch) | |
tree | 9b47e0c021545345f3bcac6b912c5ae2a54ade39 | |
parent | a4e36563d9441eb878a64d4728d30f7fce740384 (diff) | |
download | poky-4ec3d7207261d12ff4859982989be7e142e7611d.tar.gz |
bitbake: hob: use correct semantics for dealing with pkgdata
Some of these values may or may not be overridden on a per-package
basis, so handle them accordingly.
(Bitbake rev: 56cee6a958843b03c5389d4a45245a04d1e03327)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | bitbake/lib/bb/ui/crumbs/hoblistmodel.py | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/hoblistmodel.py b/bitbake/lib/bb/ui/crumbs/hoblistmodel.py index 10b7c55251..66b0efa6b3 100644 --- a/bitbake/lib/bb/ui/crumbs/hoblistmodel.py +++ b/bitbake/lib/bb/ui/crumbs/hoblistmodel.py | |||
@@ -145,6 +145,12 @@ class PackageListModel(gtk.TreeStore): | |||
145 | self.pkg_path = {} | 145 | self.pkg_path = {} |
146 | self.rprov_pkg = {} | 146 | self.rprov_pkg = {} |
147 | 147 | ||
148 | def getpkgvalue(pkgdict, key, pkgname, defaultval = None): | ||
149 | value = pkgdict.get('%s_%s' % (key, pkgname), None) | ||
150 | if not value: | ||
151 | value = pkgdict.get(key, defaultval) | ||
152 | return value | ||
153 | |||
148 | for pkginfo in pkginfolist: | 154 | for pkginfo in pkginfolist: |
149 | pn = pkginfo['PN'] | 155 | pn = pkginfo['PN'] |
150 | pv = pkginfo['PV'] | 156 | pv = pkginfo['PV'] |
@@ -157,25 +163,24 @@ class PackageListModel(gtk.TreeStore): | |||
157 | self.COL_INC, False) | 163 | self.COL_INC, False) |
158 | self.pn_path[pn] = self.get_path(pniter) | 164 | self.pn_path[pn] = self.get_path(pniter) |
159 | 165 | ||
166 | # PKG is always present | ||
160 | pkg = pkginfo['PKG'] | 167 | pkg = pkginfo['PKG'] |
161 | pkgv = pkginfo['PKGV'] | 168 | pkgv = getpkgvalue(pkginfo, 'PKGV', pkg) |
162 | pkgr = pkginfo['PKGR'] | 169 | pkgr = getpkgvalue(pkginfo, 'PKGR', pkg) |
163 | pkgsize = pkginfo['PKGSIZE_%s' % pkg] if 'PKGSIZE_%s' % pkg in pkginfo.keys() else "0" | 170 | # PKGSIZE is artificial, will always be overridden with the package name if present |
164 | pkg_rename = pkginfo['PKG_%s' % pkg] if 'PKG_%s' % pkg in pkginfo.keys() else "" | 171 | pkgsize = pkginfo.get('PKGSIZE_%s' % pkg, "0") |
165 | section = pkginfo['SECTION_%s' % pkg] if 'SECTION_%s' % pkg in pkginfo.keys() else "" | 172 | # PKG_%s is the renamed version |
166 | summary = pkginfo['SUMMARY_%s' % pkg] if 'SUMMARY_%s' % pkg in pkginfo.keys() else "" | 173 | pkg_rename = pkginfo.get('PKG_%s' % pkg, "") |
167 | rdep = pkginfo['RDEPENDS_%s' % pkg] if 'RDEPENDS_%s' % pkg in pkginfo.keys() else "" | 174 | # The rest may be overridden or not |
168 | rrec = pkginfo['RRECOMMENDS_%s' % pkg] if 'RRECOMMENDS_%s' % pkg in pkginfo.keys() else "" | 175 | section = getpkgvalue(pkginfo, 'SECTION', pkg, "") |
169 | rprov = pkginfo['RPROVIDES_%s' % pkg] if 'RPROVIDES_%s' % pkg in pkginfo.keys() else "" | 176 | summary = getpkgvalue(pkginfo, 'SUMMARY', pkg, "") |
177 | rdep = getpkgvalue(pkginfo, 'RDEPENDS', pkg, "") | ||
178 | rrec = getpkgvalue(pkginfo, 'RRECOMMENDS', pkg, "") | ||
179 | rprov = getpkgvalue(pkginfo, 'RPROVIDES', pkg, "") | ||
170 | for i in rprov.split(): | 180 | for i in rprov.split(): |
171 | self.rprov_pkg[i] = pkg | 181 | self.rprov_pkg[i] = pkg |
172 | 182 | ||
173 | if 'ALLOW_EMPTY_%s' % pkg in pkginfo.keys(): | 183 | allow_empty = getpkgvalue(pkginfo, 'ALLOW_EMPTY', pkg, "") |
174 | allow_empty = pkginfo['ALLOW_EMPTY_%s' % pkg] | ||
175 | elif 'ALLOW_EMPTY' in pkginfo.keys(): | ||
176 | allow_empty = pkginfo['ALLOW_EMPTY'] | ||
177 | else: | ||
178 | allow_empty = "" | ||
179 | 184 | ||
180 | if pkgsize == "0" and not allow_empty: | 185 | if pkgsize == "0" and not allow_empty: |
181 | continue | 186 | continue |