Hob2: OE-Core related changes
Hi Richard,
This is the hob2 related OE-Core changes. Please help to review and pull.
Compared with previous version:
- packageinfo.bbclass: Fix the way to construct ipk/deb package names.
- meta-hob: rename dummy-image and dummy-toolchain to hob-image and hob-toolchain
Note that this pull request depends on the following pull requests:
- hob2-bitbake-changes
Thanks,
Dongxiao
The following changes since commit 55f72b98f606c1554eb6edd151292ffdfddf1384:
texi2html: Fix for multilib (2012-02-22 23:01:45 +0000)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib dxu4/hob2-oecore-changes
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dxu4/hob2-oecore-changes
Dongxiao Xu (2):
packageinfo.bbclass: add a new bbclass to pass package information
meta-hob: Add a new meta-hob layer
Shane Wang (1):
package.bbclass: set package size into pkgdata for hob2's use
meta-hob/COPYING.MIT | 17 +++++++++++++ meta-hob/conf/layer.conf | 9 +++++++ meta-hob/recipes-core/images/hob-image.bb | 1 + meta-hob/recipes-core/meta/hob-toolchain.bb | 10 +++++++ meta/classes/package.bbclass | 8 ++++++ meta/classes/packageinfo.bbclass | 35 +++++++++++++++++++++++++++ 6 files changed, 80 insertions(+), 0 deletions(-) create mode 100644 meta-hob/COPYING.MIT create mode 100644 meta-hob/conf/layer.conf create mode 100644 meta-hob/recipes-core/images/hob-image.bb create mode 100644 meta-hob/recipes-core/meta/hob-toolchain.bb create mode 100644 meta/classes/packageinfo.bbclass
Signature · 1 line
1.7.4.1
PATCH 1/3 package.bbclass: set package size into pkgdata for hob2's use
From: Shane Wang <[email protected]>
Write the size of a package into its pkgdata for hob2 to get the size and show on the UI for image making.
--- meta/classes/package.bbclass | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)
meta/classes/package.bbclass +8 -0
@@ -1054,6 +1054,13 @@ python emit_pkgdata() { f.write('%s: %s\n' % (var, encode(val))) return + def get_directory_size(dir): + if os.listdir(dir): + size = int(os.popen('du -sk %s' % dir).readlines()[0].split('\t')[0]) + else: + size = 0 + return size + packages = d.getVar('PACKAGES', True) pkgdest = d.getVar('PKGDEST', 1) pkgdatadir = d.getVar('PKGDESTWORK', True)
@@ -1102,6 +1109,7 @@ python emit_pkgdata() { for dfile in (d.getVar('FILERDEPENDSFLIST_' + pkg, True) or "").split(): write_if_exists(sf, pkg, 'FILERDEPENDS_' + dfile) + sf.write('%s_%s: %s\n' % ('PKGSIZE', pkg, get_directory_size(pkgdest + "/%s" % pkg))) sf.close()
Signature · 1 line
1.7.4.1
PATCH 2/3 packageinfo.bbclass: add a new bbclass to pass package information
In reply to Dongxiao Xupackageinfo.bbclass is to pass the accurate package information to clients (e.g. Hob), including PN, PV, RDEPENDS, PKGSIZE, etc.
--- meta/classes/packageinfo.bbclass | 35 +++++++++++++++++++++++++++++++++++ 1 files changed, 35 insertions(+), 0 deletions(-) create mode 100644 meta/classes/packageinfo.bbclass
meta/classes/packageinfo.bbclass new file +35 -0
@@ -0,0 +1,35 @@ +python packageinfo_handler () { + if isinstance(e, bb.event.RequestPackageInfo): + import oe.packagedata + pkginfolist = [] + tmpdir = e.data.getVar('TMPDIR', True) + target_vendor = e.data.getVar('TARGET_VENDOR', True) + target_os = e.data.getVar('TARGET_OS', True) + 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 + for arch in package_archs.split(): + pkgdata_dir = tmpdir + '/pkgdata/' + arch + target_vendor + '-' + target_os + '/runtime/' + if os.path.exists(pkgdata_dir): + for root, dirs, files in os.walk(pkgdata_dir): + for pkgname in files: + if pkgname.endswith('.packaged'): + continue + sdata = oe.packagedata.read_pkgdatafile(root + pkgname) + sdata['PKG'] = pkgname + pkgrename = sdata['PKG_%s' % pkgname] + pkgv = sdata['PKGV'].replace('-', '+') + pkgr = sdata['PKGR'] + if os.path.exists(deploy_dir + '/' + arch + '/' + \ + pkgname + '-' + pkgv + '-' + pkgr + '.' + arch + '.' + packaging) or \ + os.path.exists(deploy_dir + '/' + arch + '/' + \ + pkgrename + '-' + pkgv + '-' + pkgr + '.' + arch + '.' + packaging) or \ + os.path.exists(deploy_dir + '/' + arch + '/' + \ + pkgname + '_' + pkgv + '-' + pkgr + '_' + arch + '.' + packaging) or \ + os.path.exists(deploy_dir + '/' + arch + '/' + \ + pkgrename + '_' + pkgv + '-' + pkgr + '_' + arch + '.' + packaging): + pkginfolist.append(sdata) + bb.event.fire(bb.event.PackageInfo(pkginfolist), e.data) +} + +addhandler packageinfo_handler
Signature · 1 line
1.7.4.1
PATCH 3/3 meta-hob: Add a new meta-hob layer
In reply to Dongxiao XuThis new layer contains hob-image.bb and hob-toolchain.bb that are used by hob to build images or toolchain.
--- meta-hob/COPYING.MIT | 17 +++++++++++++++++ meta-hob/conf/layer.conf | 9 +++++++++ meta-hob/recipes-core/images/hob-image.bb | 1 + meta-hob/recipes-core/meta/hob-toolchain.bb | 10 ++++++++++ 4 files changed, 37 insertions(+), 0 deletions(-) create mode 100644 meta-hob/COPYING.MIT create mode 100644 meta-hob/conf/layer.conf create mode 100644 meta-hob/recipes-core/images/hob-image.bb create mode 100644 meta-hob/recipes-core/meta/hob-toolchain.bb
meta-hob/COPYING.MIT new file +17 -0
@@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE.
meta-hob/conf/layer.conf new file +9 -0
@@ -0,0 +1,9 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH := "${BBPATH}:${LAYERDIR}" + +# We have a packages directory, add to BBFILES +BBFILES := "${BBFILES} ${LAYERDIR}/recipes-*/*/*.bb" + +BBFILE_COLLECTIONS += "hob" +BBFILE_PATTERN_hob := "^${LAYERDIR}/" +BBFILE_PRIORITY_hob = "1"
meta-hob/recipes-core/images/hob-image.bb new file +1 -0
@@ -0,0 +1 @@ +inherit image
meta-hob/recipes-core/meta/hob-toolchain.bb new file +10 -0
@@ -0,0 +1,10 @@ +DESCRIPTION = "dummy toolchain" +LICENSE = "MIT" + +PR = "r0" + +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +IMAGETEST ?= "dummy" +inherit populate_sdk imagetest-${IMAGETEST}
Signature · 1 line
1.7.4.1
Richard Purdie
AppliedQuoted 22 lines · Dongxiao Xu
Hi Richard,
This is the hob2 related OE-Core changes. Please help to review and pull.
Compared with previous version:
- packageinfo.bbclass: Fix the way to construct ipk/deb package names.
- meta-hob: rename dummy-image and dummy-toolchain to hob-image and hob-toolchainNote that this pull request depends on the following pull requests:
- hob2-bitbake-changesThanks,
DongxiaoThe following changes since commit
55f72b98f606c1554eb6edd151292ffdfddf1384:texi2html: Fix for multilib (2012-02-22 23:01:45 +0000)
are available in the git repository at:
git://git.pokylinux.org/poky-contribdxu4/hob2-oecore-changes
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dxu4/hob2-oecore-changes
Quoted 6 lines
Dongxiao Xu (2):
packageinfo.bbclass: add a new bbclass to pass package information
meta-hob: Add a new meta-hob layerShane Wang (1):
package.bbclass: set package size into pkgdata for hob2's use
Merged to master, thanks.
Cheers,
Richard