summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorRobert Schuster <thebohemian@gmx.net>2008-05-22 10:50:18 +0000
committerRobert Schuster <thebohemian@gmx.net>2008-05-22 10:50:18 +0000
commit5a2af37231403de591565a0f0618d2969a7e2cc4 (patch)
tree1b916d3a35bd96a1315c11274b916ca16d68e44a /classes
parent6fbbb4e91c6d7b269b6766a882025f58584d8848 (diff)
parent35f18dca2645f3242e015025c79ac58da0d13748 (diff)
merge of 'be23a3d9c964660487451387d6318c3915ad5b51'
and 'd84d3829b2f6a4c1d1cb91496cd7ffa088ed323f'
Diffstat (limited to 'classes')
-rw-r--r--classes/base.bbclass14
-rw-r--r--classes/devshell.bbclass3
-rw-r--r--classes/gtk-icon-cache.bbclass12
-rw-r--r--classes/image.bbclass66
-rw-r--r--classes/oestats-client.bbclass22
5 files changed, 73 insertions, 44 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass
index 7ffb472058..3c6f5a15a1 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -706,6 +706,17 @@ def base_get_scmbasepath(d):
path_to_bbfiles = bb.data.getVar( 'BBFILES', d, 1 ).split()
return path_to_bbfiles[0][:path_to_bbfiles[0].rindex( "packages" )]
+def base_get_metadata_monotone_branch(d):
+ monotone_branch = "<unknown>"
+ try:
+ monotone_branch = file( "%s/_MTN/options" % base_get_scmbasepath(d) ).read().strip()
+ if monotone_branch.startswith( "database" ):
+ monotone_branch_words = monotone_branch.split()
+ monotone_branch = monotone_branch_words[ monotone_branch_words.index( "branch" )+1][1:-1]
+ except:
+ pass
+ return monotone_branch
+
def base_get_metadata_monotone_revision(d):
monotone_revision = "<unknown>"
try:
@@ -725,6 +736,7 @@ def base_get_metadata_svn_revision(d):
pass
return revision
+METADATA_BRANCH ?= "${@base_get_metadata_monotone_branch(d)}"
METADATA_REVISION ?= "${@base_get_metadata_monotone_revision(d)}"
addhandler base_eventhandler
@@ -757,7 +769,7 @@ python base_eventhandler() {
if name.startswith("BuildStarted"):
bb.data.setVar( 'BB_VERSION', bb.__version__, e.data )
- statusvars = ['BB_VERSION', 'METADATA_REVISION', 'TARGET_ARCH', 'TARGET_OS', 'MACHINE', 'DISTRO', 'DISTRO_VERSION','TARGET_FPU']
+ statusvars = ['BB_VERSION', 'METADATA_BRANCH', 'METADATA_REVISION', 'TARGET_ARCH', 'TARGET_OS', 'MACHINE', 'DISTRO', 'DISTRO_VERSION','TARGET_FPU']
statuslines = ["%-17s = \"%s\"" % (i, bb.data.getVar(i, e.data, 1) or '') for i in statusvars]
statusmsg = "\nOE Build Configuration:\n%s\n" % '\n'.join(statuslines)
print statusmsg
diff --git a/classes/devshell.bbclass b/classes/devshell.bbclass
index 35456b517b..2944dbbfc2 100644
--- a/classes/devshell.bbclass
+++ b/classes/devshell.bbclass
@@ -3,6 +3,9 @@ EXTRA_OEMAKE[export] = "1"
do_devshell[dirs] = "${S}"
do_devshell[nostamp] = "1"
+export DISPLAY
+export XAUTHORITY
+
devshell_do_devshell() {
export TERMWINDOWTITLE="Bitbake Developer Shell"
${TERMCMD}
diff --git a/classes/gtk-icon-cache.bbclass b/classes/gtk-icon-cache.bbclass
index b86562890a..b256365175 100644
--- a/classes/gtk-icon-cache.bbclass
+++ b/classes/gtk-icon-cache.bbclass
@@ -3,14 +3,18 @@ RDEPENDS += "hicolor-icon-theme"
# This could run on the host as icon cache files are architecture independent,
# but there is no gtk-update-icon-cache built natively.
-gtk-icon-cache_postinst() {
+gtk_icon_cache_postinst() {
if [ "x$D" != "x" ]; then
exit 1
fi
+
+# Update the pixbuf loaders in case they haven't been registered yet
+gdk-pixbuf-query-loaders > /etc/gtk-2.0/gdk-pixbuf.loaders
+
gtk-update-icon-cache -q /usr/share/icons/hicolor
}
-gtk-icon-cache_postrm() {
+gtk_icon_cache_postrm() {
gtk-update-icon-cache -q /usr/share/icons/hicolor
}
@@ -29,13 +33,13 @@ python populate_packages_append () {
postinst = bb.data.getVar('pkg_postinst_%s' % pkg, d, 1) or bb.data.getVar('pkg_postinst', d, 1)
if not postinst:
postinst = '#!/bin/sh\n'
- postinst += bb.data.getVar('gtk-icon-cache_postinst', d, 1)
+ postinst += bb.data.getVar('gtk_icon_cache_postinst', d, 1)
bb.data.setVar('pkg_postinst_%s' % pkg, postinst, d)
postrm = bb.data.getVar('pkg_postrm_%s' % pkg, d, 1) or bb.data.getVar('pkg_postrm', d, 1)
if not postrm:
postrm = '#!/bin/sh\n'
- postrm += bb.data.getVar('gtk-icon-cache_postrm', d, 1)
+ postrm += bb.data.getVar('gtk_icon_cache_postrm', d, 1)
bb.data.setVar('pkg_postrm_%s' % pkg, postrm, d)
}
diff --git a/classes/image.bbclass b/classes/image.bbclass
index 35080c19eb..6350a733e8 100644
--- a/classes/image.bbclass
+++ b/classes/image.bbclass
@@ -45,17 +45,33 @@ python () {
# is searched for in the BBPATH (same as the old version.)
#
def get_devtable_list(d):
- import bb
- devtable = bb.data.getVar('IMAGE_DEVICE_TABLE', d, 1)
- if devtable != None:
- return devtable
- str = ""
- devtables = bb.data.getVar('IMAGE_DEVICE_TABLES', d, 1)
- if devtables == None:
- devtables = 'files/device_table-minimal.txt'
- for devtable in devtables.split():
- str += " %s" % bb.which(bb.data.getVar('BBPATH', d, 1), devtable)
- return str
+ import bb
+ devtable = bb.data.getVar('IMAGE_DEVICE_TABLE', d, 1)
+ if devtable != None:
+ return devtable
+ str = ""
+ devtables = bb.data.getVar('IMAGE_DEVICE_TABLES', d, 1)
+ if devtables == None:
+ devtables = 'files/device_table-minimal.txt'
+ for devtable in devtables.split():
+ str += " %s" % bb.which(bb.data.getVar('BBPATH', d, 1), devtable)
+ return str
+
+def get_imagecmds(d):
+ import bb
+ cmds = "\n"
+ old_overrides = bb.data.getVar('OVERRIDES', d, 0)
+ for type in bb.data.getVar('IMAGE_FSTYPES', d, True).split():
+ localdata = bb.data.createCopy(d)
+ bb.data.setVar('OVERRIDES', '%s:%s' % (type, old_overrides), localdata)
+ bb.data.update_data(localdata)
+ cmd = "\t#Code for image type " + type + "\n"
+ cmd += "\t${IMAGE_CMD_" + type + "}\n"
+ cmd += "\tcd ${DEPLOY_DIR_IMAGE}/\n"
+ cmd += "\trm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}." + type + "\n"
+ cmd += "\tln -s ${IMAGE_NAME}.rootfs." + type + " ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}." + type + "\n\n"
+ cmds += bb.data.expand(cmd, localdata)
+ return cmds
IMAGE_POSTPROCESS_COMMAND ?= ""
MACHINE_POSTPROCESS_COMMAND ?= ""
@@ -86,25 +102,11 @@ fakeroot do_rootfs () {
rootfs_${IMAGE_PKGTYPE}_do_rootfs
- insert_feed_uris
+ insert_feed_uris
${IMAGE_PREPROCESS_COMMAND}
-
- export TOPDIR=${TOPDIR}
- export DISTRO=${USERDISTRO}
- export MACHINE=${MACHINE}
-
- for type in ${IMAGE_FSTYPES}; do
- if test -z "$FAKEROOTKEY"; then
- fakeroot -i ${TMPDIR}/fakedb.image ${PYTHON} `which bbimage` -t $type -e ${FILE}
- else
- ${PYTHON} `which bbimage` -n "${IMAGE_NAME}" -t "$type" -e "${FILE}"
- fi
- cd ${DEPLOY_DIR_IMAGE}/
- rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.$type
- ln -s ${IMAGE_NAME}.rootfs.$type ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.$type
- done
+ ${@get_imagecmds(d)}
${IMAGE_POSTPROCESS_COMMAND}
@@ -122,19 +124,19 @@ do_deploy_to () {
insert_feed_uris () {
echo "Building feeds for [${DISTRO}].."
-
+
for line in ${FEED_URIS}
do
# strip leading and trailing spaces/tabs, then split into name and uri
line_clean="`echo "$line"|sed 's/^[ \t]*//;s/[ \t]*$//'`"
feed_name="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\1/p'`"
- feed_uri="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\2/p'`"
+ feed_uri="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\2/p'`"
echo "Added $feed_name feed with URL $feed_uri"
# insert new feed-sources
echo "src/gz $feed_name $feed_uri" >> ${IMAGE_ROOTFS}/etc/opkg/${feed_name}-feed.conf
- done
+ done
# Allow to use package deploy directory contents as quick devel-testing
# feed. This creates individual feed configs for each arch subdir of those
@@ -162,7 +164,7 @@ log_check() {
else
echo "Cannot find logfile [$lf_path]"
fi
- echo "Logfile is clean"
+ echo "Logfile is clean"
done
set -x
@@ -173,7 +175,7 @@ log_check() {
zap_root_password () {
sed 's%^root:[^:]*:%root:*:%' < ${IMAGE_ROOTFS}/etc/passwd >${IMAGE_ROOTFS}/etc/passwd.new
- mv ${IMAGE_ROOTFS}/etc/passwd.new ${IMAGE_ROOTFS}/etc/passwd
+ mv ${IMAGE_ROOTFS}/etc/passwd.new ${IMAGE_ROOTFS}/etc/passwd
}
create_etc_timestamp() {
diff --git a/classes/oestats-client.bbclass b/classes/oestats-client.bbclass
index 69c708c151..ed81a0377e 100644
--- a/classes/oestats-client.bbclass
+++ b/classes/oestats-client.bbclass
@@ -5,7 +5,7 @@
# To make use of this class, add to your local.conf:
#
# INHERIT += "oestats-client"
-# OESTATS_SERVER = "some.server.org:8000"
+# OESTATS_SERVER = "some.server.org"
# OESTATS_BUILDER = "some_nickname"
def oestats_setid(d, val):
@@ -44,7 +44,7 @@ def oestats_send(server, action, vars = {}, files = {}):
# build headers
headers = {
- "User-agent": "oestats-client/0.1",
+ "User-agent": "oestats-client/0.4",
"Content-type": "multipart/form-data; boundary=%s" % bound,
"Content-length": str(len(body))}
@@ -64,8 +64,9 @@ def oestats_start(server, builder, d):
# send report
id = ""
try:
- data = oestats_send(server, "/builds/start/", {
+ data = oestats_send(server, "/builds/", {
'builder': builder,
+ 'branch': bb.data.getVar('METADATA_BRANCH', d, True),
'revision': bb.data.getVar('METADATA_REVISION', d, True),
'machine': bb.data.getVar('MACHINE', d, True),
'distro': bb.data.getVar('DISTRO', d, True),
@@ -81,7 +82,7 @@ def oestats_start(server, builder, d):
bb.note("oestats: error starting build, disabling stats")
oestats_setid(d, id)
-def oestats_stop(server, d, status):
+def oestats_stop(server, d, failures):
import bb
# retrieve build id
@@ -89,8 +90,13 @@ def oestats_stop(server, d, status):
if not id: return
# send report
+ if failures > 0:
+ status = "Failed"
+ else:
+ status = "Succeeded"
+
try:
- response = oestats_send(server, "/builds/stop/%s/" % id, {
+ response = oestats_send(server, "/builds/%s/" % id, {
'status': status,
})
except:
@@ -125,10 +131,12 @@ def oestats_task(server, d, task, status):
# send report
try:
- response = oestats_send(server, "/builds/task/%s/" % id, {
+ response = oestats_send(server, "/tasks/", {
+ 'build': id,
'package': bb.data.getVar('PN', d, True),
'version': bb.data.getVar('PV', d, True),
'revision': bb.data.getVar('PR', d, True),
+ 'depends': bb.data.getVar('DEPENDS', d, True),
'task': task,
'status': status,
'time': str(elapsed),
@@ -154,7 +162,7 @@ python oestats_eventhandler () {
if getName(e) == 'BuildStarted':
oestats_start(server, builder, e.data)
elif getName(e) == 'BuildCompleted':
- oestats_stop(server, e.data, 'Completed')
+ oestats_stop(server, e.data, e.getFailures())
elif getName(e) == 'TaskStarted':
bb.data.setVar('OESTATS_STAMP', repr(time.time()), e.data)
elif getName(e) == 'TaskSucceeded':