Skip to contentSkip to conversation

Hob2: OE-Core related changes

GIT PULL New Dongxiao Xu 2 participants 5 messages Feb 23, 2012 – Feb 24, 2012

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw

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
index f6d6e1a..f5606d6 100644
@@ -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
#2 lore raw

PATCH 2/3 packageinfo.bbclass: add a new bbclass to pass package information

In reply to Dongxiao Xu

packageinfo.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
new file mode 100644
index 0000000..46b9097
@@ -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
#3 lore raw

PATCH 3/3 meta-hob: Add a new meta-hob layer

In reply to Dongxiao Xu

This 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
new file mode 100644
index 0000000..fb950dc
@@ -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
new file mode 100644
index 0000000..5f5eb82
@@ -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
new file mode 100644
index 0000000..c8d6f49
@@ -0,0 +1 @@
+inherit image
meta-hob/recipes-core/meta/hob-toolchain.bb new file +10 -0
new file mode 100644
index 0000000..6535253
@@ -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
#4 lore raw
In reply to Dongxiao Xu
Quoted 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-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

Quoted 6 lines

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

Merged to master, thanks.

Cheers,

Richard