Openembedded Bitbake Development
 help / color / mirror / Atom feed
* [PATCH 3/6] packageinfo.bbclass : extended functionality
  2013-03-27 10:27 Andrei Dinu
@ 2013-03-27 10:27 ` Andrei Dinu
  0 siblings, 0 replies; 13+ messages in thread
From: Andrei Dinu @ 2013-03-27 10:27 UTC (permalink / raw)
  To: bitbake-devel

Extended the functionality of packageinfo.bbclass
so that the sistem retrieves information about the
files brought in by each package. This is done
(without activating buildhistory) by parsing
the packages-split directory for each package.

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
---
 meta/classes/packageinfo.bbclass |   21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/meta/classes/packageinfo.bbclass b/meta/classes/packageinfo.bbclass
index bd7b249..f55af87 100644
--- a/meta/classes/packageinfo.bbclass
+++ b/meta/classes/packageinfo.bbclass
@@ -8,6 +8,25 @@ python packageinfo_handler () {
         package_archs = e.data.getVar('PACKAGE_ARCHS', True)
         packaging = e.data.getVar('PACKAGE_CLASSES', True).split()[0].split('_')[1]
         deploy_dir = e.data.getVar('DEPLOY_DIR', True) + '/' + packaging
+        dirs = os.listdir(tmpdir + '/work/')
+        pkgsplit_dir = tmpdir + '/work/'
+        items = {}
+        passing = ''
+        for directories in dirs:
+                temp_dirs = os.listdir(pkgsplit_dir + directories)
+                for temps1 in temp_dirs:
+                        if os.path.exists(pkgsplit_dir + directories + '/' + temps1 + '/' + os.listdir(pkgsplit_dir + directories + '/' + temps1)[0] + '/packages-split'):
+                                oau = pkgsplit_dir + directories + '/' + temps1 + '/' + os.listdir(pkgsplit_dir + directories + '/' + temps1)[0] + '/packages-split'
+                                for temps in os.listdir(oau):
+                                        items[temps] = {}
+                                        for path, dirs, files in os.walk(pkgsplit_dir + directories + '/' + temps1 + '/' + os.listdir(pkgsplit_dir + directories + '/' + temps1)[0] + '/packages-split' + '/' + temps):                                                   
+                                                        file_list = []
+                                                        if os.listdir(path) != []:
+                                                                items[temps][path] = []                                                   
+                                                                for f in files:
+                                                                        file_list.append(f)
+                                                                items[temps][path].append(file_list)
+                                           
         for arch in package_archs.split():
             pkgdata_dir = tmpdir + '/pkgdata/' + arch + target_vendor + '-' + target_os + '/runtime/'
             if os.path.exists(pkgdata_dir):
@@ -19,6 +38,8 @@ python packageinfo_handler () {
                             try:
                                 sdata = oe.packagedata.read_pkgdatafile(pkgdatafile)
                                 sdata['PKG'] = pkgname
+                                if pkgname in items:
+                                        sdata['FILES_INFO'] = items[pkgname]        
                                 pkginfolist.append(sdata)
                             except Exception as e:
                                 bb.warn("Failed to read pkgdata file %s: %s: %s" % (pkgdatafile, e.__class__, str(e)))
-- 
1.7.9.5




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 0/6] Add file information to package information window
@ 2013-03-28  8:23 Andrei Dinu
  2013-03-28  8:23 ` [PATCH 1/6] cache_extra.py : added package information Andrei Dinu
                   ` (6 more replies)
  0 siblings, 7 replies; 13+ messages in thread
From: Andrei Dinu @ 2013-03-28  8:23 UTC (permalink / raw)
  To: bitbake-devel

Listing the files that are brought into an image
from each package.

[HOB #3925]

Andrei Dinu (6):
  cache_extra.py : added package information
  cooker.py : added variables related to cache_extra
  packageinfo.bbclass : extended functionality
  propertydialog.py : added 'Package files' functionality
  hoblistmodel.py : passing the package information to hob
  packageselectionpage.py : added information to hob

 bitbake/lib/bb/cache_extra.py                    |    3 +
 bitbake/lib/bb/cooker.py                         |    2 +
 bitbake/lib/bb/ui/crumbs/hig/propertydialog.py   |   94 +++++++++++++++++++++-
 bitbake/lib/bb/ui/crumbs/hoblistmodel.py         |    6 +-
 bitbake/lib/bb/ui/crumbs/packageselectionpage.py |    3 +-
 meta/classes/packageinfo.bbclass                 |   21 +++++
 6 files changed, 124 insertions(+), 5 deletions(-)

-- 
1.7.9.5




^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/6] cache_extra.py : added package information
  2013-03-28  8:23 [PATCH 0/6] Add file information to package information window Andrei Dinu
@ 2013-03-28  8:23 ` Andrei Dinu
  2013-03-28  8:23 ` [PATCH 2/6] cooker.py : added variables related to cache_extra Andrei Dinu
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 13+ messages in thread
From: Andrei Dinu @ 2013-03-28  8:23 UTC (permalink / raw)
  To: bitbake-devel

Added a new variable to cache_extra so that
the files brought in by a package can be
displayed in hob.

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
---
 bitbake/lib/bb/cache_extra.py |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/bitbake/lib/bb/cache_extra.py b/bitbake/lib/bb/cache_extra.py
index bf02bb7..9e38a43 100644
--- a/bitbake/lib/bb/cache_extra.py
+++ b/bitbake/lib/bb/cache_extra.py
@@ -44,6 +44,7 @@ class HobRecipeInfo(RecipeInfoCommon):
         self.homepage = self.getvar('HOMEPAGE', metadata)
         self.bugtracker = self.getvar('BUGTRACKER', metadata)
         self.prevision = self.getvar('PR', metadata)
+        self.files_info = self.getvar('FILES_INFO', metadata)
 
     @classmethod
     def init_cacheData(cls, cachedata):
@@ -55,6 +56,7 @@ class HobRecipeInfo(RecipeInfoCommon):
         cachedata.homepage = {}
         cachedata.bugtracker = {}
         cachedata.prevision = {}
+        cachedata.files_info = {}
 
     def add_cacheData(self, cachedata, fn):
         cachedata.summary[fn] = self.summary
@@ -64,3 +66,4 @@ class HobRecipeInfo(RecipeInfoCommon):
         cachedata.homepage[fn] = self.homepage
         cachedata.bugtracker[fn] = self.bugtracker
         cachedata.prevision[fn] = self.prevision
+        cachedata.files_info[fn] = self.files_info
-- 
1.7.9.5




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 2/6] cooker.py : added variables related to cache_extra
  2013-03-28  8:23 [PATCH 0/6] Add file information to package information window Andrei Dinu
  2013-03-28  8:23 ` [PATCH 1/6] cache_extra.py : added package information Andrei Dinu
@ 2013-03-28  8:23 ` Andrei Dinu
  2013-03-28  8:23 ` [PATCH 3/6] packageinfo.bbclass : extended functionality Andrei Dinu
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 13+ messages in thread
From: Andrei Dinu @ 2013-03-28  8:23 UTC (permalink / raw)
  To: bitbake-devel

So that the information added to cache_extra could
be accesed by hob, new variables were added in
the cooker.py.

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
---
 bitbake/lib/bb/cooker.py |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index 4650d7c..c7c2ca6 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -576,6 +576,7 @@ class BBCooker:
             description = self.status.description[fn]
             homepage = self.status.homepage[fn]
             bugtracker = self.status.bugtracker[fn]
+            files_info = self.status.files_info[fn]
             rdepends = self.status.rundeps[fn]
             rrecs = self.status.runrecs[fn]
             prevision = self.status.prevision[fn]
@@ -591,6 +592,7 @@ class BBCooker:
                 depend_tree["pn"][pn]["inherits"] = inherits
                 depend_tree["pn"][pn]["homepage"] = homepage
                 depend_tree["pn"][pn]["bugtracker"] = bugtracker
+                depend_tree["pn"][pn]["files_info"] = files_info
                 depend_tree["pn"][pn]["revision"] = prevision
 
             if fnid not in seen_fnids:
-- 
1.7.9.5




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 3/6] packageinfo.bbclass : extended functionality
  2013-03-28  8:23 [PATCH 0/6] Add file information to package information window Andrei Dinu
  2013-03-28  8:23 ` [PATCH 1/6] cache_extra.py : added package information Andrei Dinu
  2013-03-28  8:23 ` [PATCH 2/6] cooker.py : added variables related to cache_extra Andrei Dinu
@ 2013-03-28  8:23 ` Andrei Dinu
  2013-03-28 18:54   ` Paul Eggleton
  2013-03-28  8:23 ` [PATCH 4/6] propertydialog.py : added 'Package files' functionality Andrei Dinu
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 13+ messages in thread
From: Andrei Dinu @ 2013-03-28  8:23 UTC (permalink / raw)
  To: bitbake-devel

Extended the functionality of packageinfo.bbclass
so that the sistem retrieves information about the
files brought in by each package. This is done
(without activating buildhistory) by parsing
the packages-split directory for each package.

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
---
 meta/classes/packageinfo.bbclass |   21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/meta/classes/packageinfo.bbclass b/meta/classes/packageinfo.bbclass
index bd7b249..5e6f590 100644
--- a/meta/classes/packageinfo.bbclass
+++ b/meta/classes/packageinfo.bbclass
@@ -8,6 +8,25 @@ python packageinfo_handler () {
         package_archs = e.data.getVar('PACKAGE_ARCHS', True)
         packaging = e.data.getVar('PACKAGE_CLASSES', True).split()[0].split('_')[1]
         deploy_dir = e.data.getVar('DEPLOY_DIR', True) + '/' + packaging
+        dirs = os.listdir(tmpdir + '/work/')
+        pkgsplit_dir = tmpdir + '/work/'
+        items = {}
+        passing = ''
+        for directories in dirs:
+                temp_dirs = os.listdir(pkgsplit_dir + directories)
+                for temps1 in temp_dirs:
+                        if os.path.exists(pkgsplit_dir + directories + '/' + temps1 + '/' + os.listdir(pkgsplit_dir + directories + '/' + temps1)[0] + '/packages-split'):
+                                subs = pkgsplit_dir + directories + '/' + temps1 + '/' + os.listdir(pkgsplit_dir + directories + '/' + temps1)[0] + '/packages-split'
+                                for temps in os.listdir(subs):
+                                        items[temps] = {}
+                                        for path, dirs, files in os.walk(pkgsplit_dir + directories + '/' + temps1 + '/' + os.listdir(pkgsplit_dir + directories + '/' + temps1)[0] + '/packages-split' + '/' + temps):                                                   
+                                                        file_list = []
+                                                        if os.listdir(path) != []:
+                                                                items[temps][path] = []                                                   
+                                                                for f in files:
+                                                                        file_list.append(f)
+                                                                items[temps][path].append(file_list)
+                                           
         for arch in package_archs.split():
             pkgdata_dir = tmpdir + '/pkgdata/' + arch + target_vendor + '-' + target_os + '/runtime/'
             if os.path.exists(pkgdata_dir):
@@ -19,6 +38,8 @@ python packageinfo_handler () {
                             try:
                                 sdata = oe.packagedata.read_pkgdatafile(pkgdatafile)
                                 sdata['PKG'] = pkgname
+                                if pkgname in items:
+                                        sdata['FILES_INFO'] = items[pkgname]        
                                 pkginfolist.append(sdata)
                             except Exception as e:
                                 bb.warn("Failed to read pkgdata file %s: %s: %s" % (pkgdatafile, e.__class__, str(e)))
-- 
1.7.9.5




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 4/6] propertydialog.py : added 'Package files' functionality
  2013-03-28  8:23 [PATCH 0/6] Add file information to package information window Andrei Dinu
                   ` (2 preceding siblings ...)
  2013-03-28  8:23 ` [PATCH 3/6] packageinfo.bbclass : extended functionality Andrei Dinu
@ 2013-03-28  8:23 ` Andrei Dinu
  2013-03-28  8:23 ` [PATCH 5/6] hoblistmodel.py : passing the package information to hob Andrei Dinu
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 13+ messages in thread
From: Andrei Dinu @ 2013-03-28  8:23 UTC (permalink / raw)
  To: bitbake-devel

Extended the packages page information with the
listing of the files brought in by every package.

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
---
 bitbake/lib/bb/ui/crumbs/hig/propertydialog.py |   94 +++++++++++++++++++++++-
 1 file changed, 92 insertions(+), 2 deletions(-)

diff --git a/bitbake/lib/bb/ui/crumbs/hig/propertydialog.py b/bitbake/lib/bb/ui/crumbs/hig/propertydialog.py
index 4420f97..f4cf9a6 100644
--- a/bitbake/lib/bb/ui/crumbs/hig/propertydialog.py
+++ b/bitbake/lib/bb/ui/crumbs/hig/propertydialog.py
@@ -41,11 +41,11 @@ class PropertyDialog(CrumbsDialog):
 		
 		super(PropertyDialog, self).__init__(title, parent, flags, buttons)
                 
-                self.properties = information		
+                self.properties = information
 
                 if len(self.properties) == 10:
 		        self.create_recipe_visual_elements()
-                elif len(self.properties) == 4:
+                elif len(self.properties) == 5:
                         self.create_package_visual_elements()
                 else:
                         self.create_information_visual_elements()
@@ -56,6 +56,8 @@ class PropertyDialog(CrumbsDialog):
                 HOB_ICON_BASE_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), ("icons/"))
                 ICON_PACKAGES_DISPLAY_FILE    = os.path.join(HOB_ICON_BASE_DIR, ('info/info_display.png'))
 
+                self.set_resizable(False)
+
                 self.table = gtk.Table(1,1,False)
                 self.table.set_row_spacings(0)
                 self.table.set_col_spacings(0)
@@ -86,6 +88,19 @@ class PropertyDialog(CrumbsDialog):
         
                 self.vbox.add(self.table)
 
+        def treeViewTooltip( self, widget, e, tooltips, cell, emptyText="" ):
+                 try:
+                           (path,col,x,y) = widget.get_path_at_pos( int(e.x), int(e.y) )
+                           it = widget.get_model().get_iter(path)
+                           value = widget.get_model().get_value(it,cell)
+                           if value in self.tooltip_items:
+                                tooltips.set_tip(widget, self.tooltip_items[value])
+                                tooltips.enable()
+                           else:
+                                tooltips.set_tip(widget, emptyText)
+                 except:
+                           tooltips.set_tip(widget, emptyText)
+
                 
         def create_package_visual_elements(self):
 
@@ -93,7 +108,18 @@ class PropertyDialog(CrumbsDialog):
                 binb = self.properties['binb']
                 size = self.properties['size']
                 recipe = self.properties['recipe']
+                file_list = self.properties['files_list']
+
+                file_list = file_list.strip("{}'")
+                files_temp = ''
+                paths_temp = ''
+                files_binb = []
+                paths_binb = []
 
+                self.tooltip_items = {}
+
+                self.set_resizable(False)
+                
                 #cleaning out the recipe variable
                 recipe = recipe.split("+")[0]
 
@@ -151,9 +177,71 @@ class PropertyDialog(CrumbsDialog):
                         self.vbox.add(self.label_short)
                         self.vbox.add(self.label_info)
 
+                #################################### FILES BROUGHT BY PACKAGES ###################################
+
+                if file_list != '':
+                
+                        self.textWindow = gtk.ScrolledWindow()
+                        self.textWindow.set_shadow_type(gtk.SHADOW_IN)
+                        self.textWindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+                        self.textWindow.set_size_request(100, 170)
+
+                        sstatemirrors_store = gtk.ListStore(str)
+
+                        self.sstatemirrors_tv = gtk.TreeView()
+                        self.sstatemirrors_tv.set_rules_hint(True)
+                        self.sstatemirrors_tv.set_headers_visible(True)
+                        self.textWindow.add(self.sstatemirrors_tv)
+
+                        self.cell1 = gtk.CellRendererText()
+                        col1 = gtk.TreeViewColumn('Package files', self.cell1)
+                        col1.set_cell_data_func(self.cell1, self.regex_field)
+                        self.sstatemirrors_tv.append_column(col1)
+
+                        for items in file_list.split(']]'):
+                            if len(items) > 1:
+                                paths_temp = items.split(":")[0]
+                                paths_binb.append(paths_temp.strip(" ,'"))
+                                files_temp = items.split(":")[1]
+                                files_binb.append(files_temp.strip(" ['"))
+
+                        unsorted_list = []
+                        
+                        for items in range(len(paths_binb)):
+                              if len(files_binb[items]) > 1:
+                                  for aduse in (files_binb[items].split(",")):
+                                        unsorted_list.append(paths_binb[items].split(name)[len(paths_binb[items].split(name))-1] + '/' + aduse.strip(" '"))
+                       
+                         
+                        unsorted_list.sort()
+                        for items in unsorted_list:
+                                temp = items
+                                while len(items) > 35:
+                                        items = items[:len(items)/2] + "" + items[len(items)/2+1:]
+                                if len(items) == 35:
+                                        items = items[:len(items)/2] + "..." + items[len(items)/2+3:]
+                                        self.tooltip_items[items] = temp
+
+                                sstatemirrors_store.append([str(items)])
+                                
+                                
+                        self.sstatemirrors_tv.set_model(sstatemirrors_store)
+
+                        tips = gtk.Tooltips()
+                        tips.set_tip(self.sstatemirrors_tv, "")
+                        self.sstatemirrors_tv.connect("motion-notify-event", self.treeViewTooltip, tips, 0)
+                        self.sstatemirrors_tv.set_events(gtk.gdk.POINTER_MOTION_MASK)
+                        
+                        self.vbox.add(self.textWindow)                                      
+
                 self.vbox.show_all()
 
 
+        def regex_field(self, column, cell, model, iter):
+                cell.set_property('text', model.get_value(iter, 0))
+                return
+
+
 	def create_recipe_visual_elements(self):
 
                 summary = self.properties['summary']
@@ -166,6 +254,8 @@ class PropertyDialog(CrumbsDialog):
 		homepage = self.properties['homepage']
 		bugtracker = self.properties['bugtracker']
 		description = self.properties['description']
+
+                self.set_resizable(False)
 		
                 #cleaning out the version variable and also the summary
                 version = version.split(":")[1]
-- 
1.7.9.5




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 5/6] hoblistmodel.py : passing the package information to hob
  2013-03-28  8:23 [PATCH 0/6] Add file information to package information window Andrei Dinu
                   ` (3 preceding siblings ...)
  2013-03-28  8:23 ` [PATCH 4/6] propertydialog.py : added 'Package files' functionality Andrei Dinu
@ 2013-03-28  8:23 ` Andrei Dinu
  2013-03-28  8:23 ` [PATCH 6/6] packageselectionpage.py : added " Andrei Dinu
  2013-03-28 18:45 ` [PATCH 0/6] Add file information to package information window Trevor Woerner
  6 siblings, 0 replies; 13+ messages in thread
From: Andrei Dinu @ 2013-03-28  8:23 UTC (permalink / raw)
  To: bitbake-devel

Added a new column to the model and also populating
it with the information brought in from the
packageinfo.bbclass.

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
---
 bitbake/lib/bb/ui/crumbs/hoblistmodel.py |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/bitbake/lib/bb/ui/crumbs/hoblistmodel.py b/bitbake/lib/bb/ui/crumbs/hoblistmodel.py
index 9b8db23..67d40e0 100644
--- a/bitbake/lib/bb/ui/crumbs/hoblistmodel.py
+++ b/bitbake/lib/bb/ui/crumbs/hoblistmodel.py
@@ -35,7 +35,7 @@ class PackageListModel(gtk.ListStore):
     provide filtered views of the data.
     """
 
-    (COL_NAME, COL_VER, COL_REV, COL_RNM, COL_SEC, COL_SUM, COL_RDEP, COL_RPROV, COL_SIZE, COL_RCP, COL_BINB, COL_INC, COL_FADE_INC, COL_FONT) = range(14)
+    (COL_NAME, COL_VER, COL_REV, COL_RNM, COL_SEC, COL_SUM, COL_RDEP, COL_RPROV, COL_SIZE, COL_RCP, COL_BINB, COL_INC, COL_FADE_INC, COL_FONT, COL_FLIST) = range(15)
 
     __gsignals__ = {
         "package-selection-changed" : (gobject.SIGNAL_RUN_LAST,
@@ -61,6 +61,7 @@ class PackageListModel(gtk.ListStore):
                                 gobject.TYPE_STRING,
                                 gobject.TYPE_BOOLEAN,
                                 gobject.TYPE_BOOLEAN,
+                                gobject.TYPE_STRING,
                                 gobject.TYPE_STRING)
 
     """
@@ -199,6 +200,7 @@ class PackageListModel(gtk.ListStore):
             rdep = getpkgvalue(pkginfo, 'RDEPENDS', pkg, "")
             rrec = getpkgvalue(pkginfo, 'RRECOMMENDS', pkg, "")
             rprov = getpkgvalue(pkginfo, 'RPROVIDES', pkg, "")
+            files_list = getpkgvalue(pkginfo, 'FILES_INFO', pkg, "")
             for i in rprov.split():
                 self.rprov_pkg[i] = pkg
 
@@ -218,7 +220,7 @@ class PackageListModel(gtk.ListStore):
                      self.COL_RDEP, rdep + ' ' + rrec,
                      self.COL_RPROV, rprov, self.COL_SIZE, size,
                      self.COL_RCP, recipe, self.COL_BINB, "",
-                     self.COL_INC, False, self.COL_FONT, '10')
+                     self.COL_INC, False, self.COL_FONT, '10', self.COL_FLIST, files_list)
 
         self.pn_path = {}
         it = self.get_iter_first()
-- 
1.7.9.5




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 6/6] packageselectionpage.py : added information to hob
  2013-03-28  8:23 [PATCH 0/6] Add file information to package information window Andrei Dinu
                   ` (4 preceding siblings ...)
  2013-03-28  8:23 ` [PATCH 5/6] hoblistmodel.py : passing the package information to hob Andrei Dinu
@ 2013-03-28  8:23 ` Andrei Dinu
  2013-03-28 18:45 ` [PATCH 0/6] Add file information to package information window Trevor Woerner
  6 siblings, 0 replies; 13+ messages in thread
From: Andrei Dinu @ 2013-03-28  8:23 UTC (permalink / raw)
  To: bitbake-devel

In order to have information for each package in hob,
a new item is added to the dictionary, represeting the
files that are brought in by each package.

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
---
 bitbake/lib/bb/ui/crumbs/packageselectionpage.py |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/bitbake/lib/bb/ui/crumbs/packageselectionpage.py b/bitbake/lib/bb/ui/crumbs/packageselectionpage.py
index 0bb4cb1..781d579 100755
--- a/bitbake/lib/bb/ui/crumbs/packageselectionpage.py
+++ b/bitbake/lib/bb/ui/crumbs/packageselectionpage.py
@@ -204,11 +204,12 @@ class PackageSelectionPage (HobPage):
         path, col = widget.table_tree.get_cursor()
         tree_model = widget.table_tree.get_model()
         if path: # else activation is likely a removal
-            properties = {'binb': '' , 'name': '', 'size':'', 'recipe':''}
+            properties = {'binb': '' , 'name': '', 'size':'', 'recipe':'', 'files_list':''}
             properties['binb'] = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_BINB)
             properties['name'] = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_NAME)
             properties['size'] = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_SIZE)
             properties['recipe'] = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_RCP)
+            properties['files_list'] = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_FLIST)
 
             self.builder.show_recipe_property_dialog(properties)
 
-- 
1.7.9.5




^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/6] Add file information to package information window
  2013-03-28  8:23 [PATCH 0/6] Add file information to package information window Andrei Dinu
                   ` (5 preceding siblings ...)
  2013-03-28  8:23 ` [PATCH 6/6] packageselectionpage.py : added " Andrei Dinu
@ 2013-03-28 18:45 ` Trevor Woerner
  2013-03-28 18:58   ` Paul Eggleton
  6 siblings, 1 reply; 13+ messages in thread
From: Trevor Woerner @ 2013-03-28 18:45 UTC (permalink / raw)
  To: Andrei Dinu; +Cc: bitbake-devel

On Thu, Mar 28, 2013 at 4:23 AM, Andrei Dinu
<andrei.adrianx.dinu@intel.com> wrote:
> Listing the files that are brought into an image
> from each package.

This sounds like a great feature! Is this also available from the
bitbake command-line as well?



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 3/6] packageinfo.bbclass : extended functionality
  2013-03-28  8:23 ` [PATCH 3/6] packageinfo.bbclass : extended functionality Andrei Dinu
@ 2013-03-28 18:54   ` Paul Eggleton
  2013-03-29 10:42     ` Richard Purdie
  0 siblings, 1 reply; 13+ messages in thread
From: Paul Eggleton @ 2013-03-28 18:54 UTC (permalink / raw)
  To: Andrei Dinu; +Cc: bitbake-devel

Hi Andrei,

On Thursday 28 March 2013 10:23:19 Andrei Dinu wrote:
> Extended the functionality of packageinfo.bbclass
> so that the sistem retrieves information about the
> files brought in by each package. This is done
> (without activating buildhistory) by parsing
> the packages-split directory for each package.
> 
> Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
> ---
>  meta/classes/packageinfo.bbclass |   21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
> 
> diff --git a/meta/classes/packageinfo.bbclass
> b/meta/classes/packageinfo.bbclass index bd7b249..5e6f590 100644
> --- a/meta/classes/packageinfo.bbclass
> +++ b/meta/classes/packageinfo.bbclass
> @@ -8,6 +8,25 @@ python packageinfo_handler () {
>          package_archs = e.data.getVar('PACKAGE_ARCHS', True)
>          packaging = e.data.getVar('PACKAGE_CLASSES',
> True).split()[0].split('_')[1] deploy_dir = e.data.getVar('DEPLOY_DIR',
> True) + '/' + packaging +        dirs = os.listdir(tmpdir + '/work/')
> +        pkgsplit_dir = tmpdir + '/work/'
> +        items = {}
> +        passing = ''
> +        for directories in dirs:
> +                temp_dirs = os.listdir(pkgsplit_dir + directories)
> +                for temps1 in temp_dirs:
> +                        if os.path.exists(pkgsplit_dir + directories + '/'
> + temps1 + '/' + os.listdir(pkgsplit_dir + directories + '/' + temps1)[0] +
> '/packages-split'): +                                subs = pkgsplit_dir +
> directories + '/' + temps1 + '/' + os.listdir(pkgsplit_dir + directories +
> '/' + temps1)[0] + '/packages-split' +                                for
> temps in os.listdir(subs):
> +                                        items[temps] = {}
> +                                        for path, dirs, files in
> os.walk(pkgsplit_dir + directories + '/' + temps1 + '/' +
> os.listdir(pkgsplit_dir + directories + '/' + temps1)[0] +
> '/packages-split' + '/' + temps): +                                        
>                file_list = [] +                                            
>            if os.listdir(path) != []: +                                    
>                            items[temps][path] = [] +                       
>                                         for f in files: +                  
>                                                      file_list.append(f) + 
>                                                              
> items[temps][path].append(file_list) +
>          for arch in package_archs.split():
>              pkgdata_dir = tmpdir + '/pkgdata/' + arch + target_vendor + '-'
> + target_os + '/runtime/' if os.path.exists(pkgdata_dir):
> @@ -19,6 +38,8 @@ python packageinfo_handler () {
>                              try:
>                                  sdata =
> oe.packagedata.read_pkgdatafile(pkgdatafile) sdata['PKG'] = pkgname
> +                                if pkgname in items:
> +                                        sdata['FILES_INFO'] =
> items[pkgname] pkginfolist.append(sdata)
>                              except Exception as e:
>                                  bb.warn("Failed to read pkgdata file %s:
> %s: %s" % (pkgdatafile, e.__class__, str(e)))

This is a change against the metadata rather than BitBake; it needs to be sent 
separately to the OE-Core mailing list.

Before you send it there however, you really need to be using the PKGDEST 
variable instead of composing the path to packages-split using hardcoded path 
components.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/6] Add file information to package information window
  2013-03-28 18:45 ` [PATCH 0/6] Add file information to package information window Trevor Woerner
@ 2013-03-28 18:58   ` Paul Eggleton
  0 siblings, 0 replies; 13+ messages in thread
From: Paul Eggleton @ 2013-03-28 18:58 UTC (permalink / raw)
  To: Trevor Woerner; +Cc: bitbake-devel

On Thursday 28 March 2013 14:45:13 Trevor Woerner wrote:
> On Thu, Mar 28, 2013 at 4:23 AM, Andrei Dinu
> <andrei.adrianx.dinu@intel.com> wrote:
> > Listing the files that are brought into an image
> > from each package.
> 
> This sounds like a great feature! Is this also available from the
> bitbake command-line as well?

Just so it's clear, this information is only available after packages have 
been built, and is saved in the tmp/pkgdata directory. I'm not sure if it 
would really be appropriate to add this functionality to BitBake itself, 
however in OE-Core there's a very basic command-line tool called oe-pkgdata-
util which performs one type of querying on the pkgdata/ directory and could 
be extended to query the package file lists.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 3/6] packageinfo.bbclass : extended functionality
  2013-03-28 18:54   ` Paul Eggleton
@ 2013-03-29 10:42     ` Richard Purdie
  2013-03-29 13:35       ` Andrei Dinu
  0 siblings, 1 reply; 13+ messages in thread
From: Richard Purdie @ 2013-03-29 10:42 UTC (permalink / raw)
  To: Paul Eggleton; +Cc: bitbake-devel

On Thu, 2013-03-28 at 18:54 +0000, Paul Eggleton wrote:
> Hi Andrei,
> 
> On Thursday 28 March 2013 10:23:19 Andrei Dinu wrote:
> > Extended the functionality of packageinfo.bbclass
> > so that the sistem retrieves information about the
> > files brought in by each package. This is done
> > (without activating buildhistory) by parsing
> > the packages-split directory for each package.
> > 
> > Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
> > ---
> >  meta/classes/packageinfo.bbclass |   21 +++++++++++++++++++++
> >  1 file changed, 21 insertions(+)
> > 
> > diff --git a/meta/classes/packageinfo.bbclass
> > b/meta/classes/packageinfo.bbclass index bd7b249..5e6f590 100644
> > --- a/meta/classes/packageinfo.bbclass
> > +++ b/meta/classes/packageinfo.bbclass
> > @@ -8,6 +8,25 @@ python packageinfo_handler () {
> >          package_archs = e.data.getVar('PACKAGE_ARCHS', True)
> >          packaging = e.data.getVar('PACKAGE_CLASSES',
> > True).split()[0].split('_')[1] deploy_dir = e.data.getVar('DEPLOY_DIR',
> > True) + '/' + packaging +        dirs = os.listdir(tmpdir + '/work/')
> > +        pkgsplit_dir = tmpdir + '/work/'
> > +        items = {}
> > +        passing = ''
> > +        for directories in dirs:
> > +                temp_dirs = os.listdir(pkgsplit_dir + directories)
> > +                for temps1 in temp_dirs:
> > +                        if os.path.exists(pkgsplit_dir + directories + '/'
> > + temps1 + '/' + os.listdir(pkgsplit_dir + directories + '/' + temps1)[0] +
> > '/packages-split'): +                                subs = pkgsplit_dir +
> > directories + '/' + temps1 + '/' + os.listdir(pkgsplit_dir + directories +
> > '/' + temps1)[0] + '/packages-split' +                                for
> > temps in os.listdir(subs):
> > +                                        items[temps] = {}
> > +                                        for path, dirs, files in
> > os.walk(pkgsplit_dir + directories + '/' + temps1 + '/' +
> > os.listdir(pkgsplit_dir + directories + '/' + temps1)[0] +
> > '/packages-split' + '/' + temps): +                                        
> >                file_list = [] +                                            
> >            if os.listdir(path) != []: +                                    
> >                            items[temps][path] = [] +                       
> >                                         for f in files: +                  
> >                                                      file_list.append(f) + 
> >                                                              
> > items[temps][path].append(file_list) +
> >          for arch in package_archs.split():
> >              pkgdata_dir = tmpdir + '/pkgdata/' + arch + target_vendor + '-'
> > + target_os + '/runtime/' if os.path.exists(pkgdata_dir):
> > @@ -19,6 +38,8 @@ python packageinfo_handler () {
> >                              try:
> >                                  sdata =
> > oe.packagedata.read_pkgdatafile(pkgdatafile) sdata['PKG'] = pkgname
> > +                                if pkgname in items:
> > +                                        sdata['FILES_INFO'] =
> > items[pkgname] pkginfolist.append(sdata)
> >                              except Exception as e:
> >                                  bb.warn("Failed to read pkgdata file %s:
> > %s: %s" % (pkgdatafile, e.__class__, str(e)))
> 
> This is a change against the metadata rather than BitBake; it needs to be sent 
> separately to the OE-Core mailing list.
> 
> Before you send it there however, you really need to be using the PKGDEST 
> variable instead of composing the path to packages-split using hardcoded path 
> components.

Sorry, I missed this feedback. Can you please send a follow up patch to
the OE-Core list addressing the PKGDEST issue.

Thanks,

Richard




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 3/6] packageinfo.bbclass : extended functionality
  2013-03-29 10:42     ` Richard Purdie
@ 2013-03-29 13:35       ` Andrei Dinu
  0 siblings, 0 replies; 13+ messages in thread
From: Andrei Dinu @ 2013-03-29 13:35 UTC (permalink / raw)
  To: Richard Purdie; +Cc: bitbake-devel

Hi Paul, Richard,

Thanks for the heads-up. I will look into PKDEST variable to replace all the
hardcoded paths in there and send the patch on the right list.

Thanks,

Andrei Dinu

On 03/29/2013 12:42 PM, Richard Purdie wrote:
> On Thu, 2013-03-28 at 18:54 +0000, Paul Eggleton wrote:
>> Hi Andrei,
>>
>> On Thursday 28 March 2013 10:23:19 Andrei Dinu wrote:
>>> Extended the functionality of packageinfo.bbclass
>>> so that the sistem retrieves information about the
>>> files brought in by each package. This is done
>>> (without activating buildhistory) by parsing
>>> the packages-split directory for each package.
>>>
>>> Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
>>> ---
>>>   meta/classes/packageinfo.bbclass |   21 +++++++++++++++++++++
>>>   1 file changed, 21 insertions(+)
>>>
>>> diff --git a/meta/classes/packageinfo.bbclass
>>> b/meta/classes/packageinfo.bbclass index bd7b249..5e6f590 100644
>>> --- a/meta/classes/packageinfo.bbclass
>>> +++ b/meta/classes/packageinfo.bbclass
>>> @@ -8,6 +8,25 @@ python packageinfo_handler () {
>>>           package_archs = e.data.getVar('PACKAGE_ARCHS', True)
>>>           packaging = e.data.getVar('PACKAGE_CLASSES',
>>> True).split()[0].split('_')[1] deploy_dir = e.data.getVar('DEPLOY_DIR',
>>> True) + '/' + packaging +        dirs = os.listdir(tmpdir + '/work/')
>>> +        pkgsplit_dir = tmpdir + '/work/'
>>> +        items = {}
>>> +        passing = ''
>>> +        for directories in dirs:
>>> +                temp_dirs = os.listdir(pkgsplit_dir + directories)
>>> +                for temps1 in temp_dirs:
>>> +                        if os.path.exists(pkgsplit_dir + directories + '/'
>>> + temps1 + '/' + os.listdir(pkgsplit_dir + directories + '/' + temps1)[0] +
>>> '/packages-split'): +                                subs = pkgsplit_dir +
>>> directories + '/' + temps1 + '/' + os.listdir(pkgsplit_dir + directories +
>>> '/' + temps1)[0] + '/packages-split' +                                for
>>> temps in os.listdir(subs):
>>> +                                        items[temps] = {}
>>> +                                        for path, dirs, files in
>>> os.walk(pkgsplit_dir + directories + '/' + temps1 + '/' +
>>> os.listdir(pkgsplit_dir + directories + '/' + temps1)[0] +
>>> '/packages-split' + '/' + temps): +
>>>                 file_list = [] +
>>>             if os.listdir(path) != []: +
>>>                             items[temps][path] = [] +
>>>                                          for f in files: +
>>>                                                       file_list.append(f) +
>>>                                                               
>>> items[temps][path].append(file_list) +
>>>           for arch in package_archs.split():
>>>               pkgdata_dir = tmpdir + '/pkgdata/' + arch + target_vendor + '-'
>>> + target_os + '/runtime/' if os.path.exists(pkgdata_dir):
>>> @@ -19,6 +38,8 @@ python packageinfo_handler () {
>>>                               try:
>>>                                   sdata =
>>> oe.packagedata.read_pkgdatafile(pkgdatafile) sdata['PKG'] = pkgname
>>> +                                if pkgname in items:
>>> +                                        sdata['FILES_INFO'] =
>>> items[pkgname] pkginfolist.append(sdata)
>>>                               except Exception as e:
>>>                                   bb.warn("Failed to read pkgdata file %s:
>>> %s: %s" % (pkgdatafile, e.__class__, str(e)))
>> This is a change against the metadata rather than BitBake; it needs to be sent
>> separately to the OE-Core mailing list.
>>
>> Before you send it there however, you really need to be using the PKGDEST
>> variable instead of composing the path to packages-split using hardcoded path
>> components.
> Sorry, I missed this feedback. Can you please send a follow up patch to
> the OE-Core list addressing the PKGDEST issue.
>
> Thanks,
>
> Richard
>




^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2013-03-29 13:51 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-28  8:23 [PATCH 0/6] Add file information to package information window Andrei Dinu
2013-03-28  8:23 ` [PATCH 1/6] cache_extra.py : added package information Andrei Dinu
2013-03-28  8:23 ` [PATCH 2/6] cooker.py : added variables related to cache_extra Andrei Dinu
2013-03-28  8:23 ` [PATCH 3/6] packageinfo.bbclass : extended functionality Andrei Dinu
2013-03-28 18:54   ` Paul Eggleton
2013-03-29 10:42     ` Richard Purdie
2013-03-29 13:35       ` Andrei Dinu
2013-03-28  8:23 ` [PATCH 4/6] propertydialog.py : added 'Package files' functionality Andrei Dinu
2013-03-28  8:23 ` [PATCH 5/6] hoblistmodel.py : passing the package information to hob Andrei Dinu
2013-03-28  8:23 ` [PATCH 6/6] packageselectionpage.py : added " Andrei Dinu
2013-03-28 18:45 ` [PATCH 0/6] Add file information to package information window Trevor Woerner
2013-03-28 18:58   ` Paul Eggleton
  -- strict thread matches above, loose matches on Subject: below --
2013-03-27 10:27 Andrei Dinu
2013-03-27 10:27 ` [PATCH 3/6] packageinfo.bbclass : extended functionality Andrei Dinu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox