[bitbake-devel] [PATCH 3/6] packageinfo.bbclass : extended functionality

Paul Eggleton paul.eggleton at linux.intel.com
Thu Mar 28 18:54:58 UTC 2013


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 at 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




More information about the bitbake-devel mailing list