diff options
| author | Robert Schuster <thebohemian@gmx.net> | 2008-05-22 10:50:18 +0000 |
|---|---|---|
| committer | Robert Schuster <thebohemian@gmx.net> | 2008-05-22 10:50:18 +0000 |
| commit | 5a2af37231403de591565a0f0618d2969a7e2cc4 (patch) | |
| tree | 1b916d3a35bd96a1315c11274b916ca16d68e44a /classes | |
| parent | 6fbbb4e91c6d7b269b6766a882025f58584d8848 (diff) | |
| parent | 35f18dca2645f3242e015025c79ac58da0d13748 (diff) | |
merge of 'be23a3d9c964660487451387d6318c3915ad5b51'
and 'd84d3829b2f6a4c1d1cb91496cd7ffa088ed323f'
Diffstat (limited to 'classes')
| -rw-r--r-- | classes/base.bbclass | 14 | ||||
| -rw-r--r-- | classes/devshell.bbclass | 3 | ||||
| -rw-r--r-- | classes/gtk-icon-cache.bbclass | 12 | ||||
| -rw-r--r-- | classes/image.bbclass | 66 | ||||
| -rw-r--r-- | classes/oestats-client.bbclass | 22 |
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': |
