From a5f902c677e9f919a1170a8355e158499fb0a27e Mon Sep 17 00:00:00 2001 From: Lynn Lin Date: Tue, 19 May 2009 13:18:20 +0200 Subject: package_rpm: fix move wrong generated rpm name - closes #5078 --- classes/package_rpm.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/package_rpm.bbclass b/classes/package_rpm.bbclass index 71fa76010f..0cebdea244 100644 --- a/classes/package_rpm.bbclass +++ b/classes/package_rpm.bbclass @@ -136,7 +136,7 @@ python write_specfile() { bb.build.exec_func('BUILDSPEC', d) # move the rpm into the pkgoutdir - rpm = bb.data.expand('${RPMBUILDPATH}/RPMS/${TARGET_ARCH}/${PKG}-${RPMPV}-${PR}.${TARGET_ARCH}.rpm', d) + rpm = bb.data.expand('${RPMBUILDPATH}/RPMS/${TARGET_ARCH}/${PKG}-${RPMPV}-${PR}${DISTRO_PR}.${TARGET_ARCH}.rpm', d) outrpm = bb.data.expand('${DEPLOY_DIR_RPM}/${PACKAGE_ARCH}/${PKG}-${RPMPV}-${PR}.${TARGET_ARCH}.rpm', d) bb.movefile(rpm, outrpm) } -- cgit v1.2.3 From 7ef692efa306973b2a204cfc227d872cd1bee69c Mon Sep 17 00:00:00 2001 From: Martin Dietze Date: Tue, 19 May 2009 15:53:54 +0200 Subject: nylon classes: update image type and mirror locations --- classes/nylon-image.bbclass | 3 +-- classes/nylon-mirrors.bbclass | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) (limited to 'classes') diff --git a/classes/nylon-image.bbclass b/classes/nylon-image.bbclass index 6d867eab48..e973bf7cf5 100644 --- a/classes/nylon-image.bbclass +++ b/classes/nylon-image.bbclass @@ -9,11 +9,10 @@ nylon_create_imgz() { # copy the kernel (for mips on flash) into tmp FLASH_BIN=${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_NAME}.flash.bin - test -f ${FLASH_BIN} && \ cp ${FLASH_BIN} ${DEPLOY_DIR_IMAGE}/tmp/zImage.flash # copy rootfs.jffs (or so) into tmp - cp ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.${type} ${DEPLOY_DIR_IMAGE}/tmp/rootfs.${type} + cp ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 ${DEPLOY_DIR_IMAGE}/tmp/rootfs.jffs2 # make an imgz out of tmp ( cd ${DEPLOY_DIR_IMAGE}/tmp; tar cvzf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.imgz * ) diff --git a/classes/nylon-mirrors.bbclass b/classes/nylon-mirrors.bbclass index 02fddc01ba..11cc45ca0c 100644 --- a/classes/nylon-mirrors.bbclass +++ b/classes/nylon-mirrors.bbclass @@ -1,6 +1,6 @@ MIRRORS_append () { -ftp://.*/.* http://meshcube.org/nylon/stable/sources/ -https?://.*/.* http://meshcube.org/nylon/stable/sources/ -ftp://.*/.* http://meshcube.org/nylon/unstable/sources/ -https?://.*/.* http://meshcube.org/nylon/unstable/sources/ +ftp://.*/.*/ http://download.berlin.freifunk.net/meshcube.org/nylon/stable/sources/ +http://.*/.*/ http://download.berlin.freifunk.net/meshcube.org/nylon/stable/sources/ +ftp://.*/.*/ http://download.berlin.freifunk.net/meshcube.org/nylon/unstable/sources/ +http://.*/.*/ http://download.berlin.freifunk.net/meshcube.org/nylon/unstable/sources/ } \ No newline at end of file -- cgit v1.2.3 From f56580bbd4bd8fcc49a236ef8a4ceb07b8754619 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Wed, 29 Apr 2009 00:51:19 -0300 Subject: fixes wrong license value usage for GPLv2 Signed-off-by: Otavio Salvador --- classes/xfce.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/xfce.bbclass b/classes/xfce.bbclass index 48e012e67e..b18313fa2a 100644 --- a/classes/xfce.bbclass +++ b/classes/xfce.bbclass @@ -5,7 +5,7 @@ # Global class to make it easier to maintain XFCE packages HOMEPAGE = "http://www.xfce.org" -LICENSE = "LGPL-2" +LICENSE = "LGPLv2" DEPENDS += "startup-notification" XFCE_VERSION = ${PV} -- cgit v1.2.3 From 4c275b5c0350ed1dbd94bfcdd9ce8786ad11b8a1 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Thu, 21 May 2009 22:20:44 +0200 Subject: gnome bbclass: package scrollkeeper 'leftovers' in a seperate package. Like the fdo mime data it overlaps between packages. * better solution is needed for people wanting docs on device, but this makes packages at least installable --- classes/gnome.bbclass | 3 +++ 1 file changed, 3 insertions(+) (limited to 'classes') diff --git a/classes/gnome.bbclass b/classes/gnome.bbclass index 89fb3a19f8..d2ca739e40 100644 --- a/classes/gnome.bbclass +++ b/classes/gnome.bbclass @@ -17,6 +17,9 @@ inherit autotools gtk-icon-cache pkgconfig gconf mime AUTOTOOLS_STAGE_PKGCONFIG = "1" +PACKAGES =+ "${PN}-scrollkeeper-leftovers" +FILES_${PN}-scrollkeeper-leftovers = "${localstatedir}/lib/scrollkeeper" + gnome_stage_includes() { autotools_stage_includes } -- cgit v1.2.3 From f00254030737f3964b6f4f174023cf93b6da9bf9 Mon Sep 17 00:00:00 2001 From: Dmitry Eremin-Solenikov Date: Sat, 23 May 2009 14:22:08 +0400 Subject: oestats-client: support working behind proxy Detect if we are behind proxy by checking for HTTP_PROXY variable and use specified proxy for http traffic. Signed-off-by: Dmitry Eremin-Solenikov --- classes/oestats-client.bbclass | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'classes') diff --git a/classes/oestats-client.bbclass b/classes/oestats-client.bbclass index 6d348d3ded..8922496242 100644 --- a/classes/oestats-client.bbclass +++ b/classes/oestats-client.bbclass @@ -18,8 +18,9 @@ def oestats_getid(d): f = file(bb.data.getVar('TMPDIR', d, True) + '/oestats.id', 'r') return f.read() -def oestats_send(server, action, vars = {}, files = {}): +def oestats_send(d, server, action, vars = {}, files = {}): import httplib + import bb # build body output = [] @@ -49,7 +50,16 @@ def oestats_send(server, action, vars = {}, files = {}): "Content-length": str(len(body))} # send request - conn = httplib.HTTPConnection(server) + proxy = bb.data.getVar('HTTP_PROXY', d, True ) + if (proxy): + if (proxy.endswith('/')): + proxy = proxy[:-1] + if (proxy.startswith('http://')): + proxy = proxy[7:] + conn = httplib.HTTPConnection(proxy) + action = "http://%s%s" %(server, action) + else: + conn = httplib.HTTPConnection(server) conn.request("POST", action, body, headers) response = conn.getresponse() data = response.read() @@ -64,7 +74,7 @@ def oestats_start(server, builder, d): # send report id = "" try: - data = oestats_send(server, "/builds/", { + data = oestats_send(d, server, "/builds/", { 'builder': builder, 'build_arch': bb.data.getVar('BUILD_ARCH', d, True), 'metadata_branch': bb.data.getVar('METADATA_BRANCH', d, True), @@ -97,7 +107,7 @@ def oestats_stop(server, d, failures): status = "Succeeded" try: - response = oestats_send(server, "/builds/%s/" % id, { + response = oestats_send(d, server, "/builds/%s/" % id, { 'status': status, }) if status == 'Failed': @@ -157,7 +167,7 @@ def oestats_task(server, d, task, status): # send report try: - response = oestats_send(server, "/tasks/", vars, files) + response = oestats_send(d, server, "/tasks/", vars, files) if status == 'Failed': bb.note("oestats: task failed, see http://%s%s" % (server, response)) except: -- cgit v1.2.3 From 44eb0c3efd56414c6fad6e2c2ea18a0c0e40d086 Mon Sep 17 00:00:00 2001 From: Dmitry Eremin-Solenikov Date: Mon, 25 May 2009 13:06:35 +0400 Subject: seppuku: add support for working behind the proxy Signed-off-by: Dmitry Eremin-Solenikov --- classes/seppuku.bbclass | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'classes') diff --git a/classes/seppuku.bbclass b/classes/seppuku.bbclass index ab8096eb45..546738dde8 100644 --- a/classes/seppuku.bbclass +++ b/classes/seppuku.bbclass @@ -319,6 +319,12 @@ python seppuku_eventhandler() { passw = bb.data.getVar("SEPPUKU_PASS", data, True) product = bb.data.getVar("SEPPUKU_PRODUCT", data, True) component = bb.data.getVar("SEPPUKU_COMPONENT", data, True) + proxy = bb.data.getVar('HTTP_PROXY', data, True ) + if (proxy): + phl = urllib2.ProxyHandler({'http' : proxy}) + poster.add_handler(phl) + opener.add_handler(phl) + # evil hack to figure out what is going on debug_file = open(os.path.join(bb.data.getVar("TMPDIR", data, True),"..","seppuku-log"),"a") -- cgit v1.2.3 From fb657b18aa1733ee5145ba7e6a4e20391bdcdf2d Mon Sep 17 00:00:00 2001 From: Dmitry Eremin-Solenikov Date: Mon, 25 May 2009 16:48:40 +0400 Subject: tinderclient: support sitting behind proxy Signed-off-by: Dmitry Eremin-Solenikov --- classes/tinderclient.bbclass | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'classes') diff --git a/classes/tinderclient.bbclass b/classes/tinderclient.bbclass index 0b7fc1d843..d2b2b33898 100644 --- a/classes/tinderclient.bbclass +++ b/classes/tinderclient.bbclass @@ -1,10 +1,20 @@ -def tinder_http_post(server, selector, content_type, body): +def tinder_http_post(d, server, selector, content_type, body): import httplib + from bb import data # now post it for i in range(0,5): try: - h = httplib.HTTP(server) - h.putrequest('POST', selector) + proxy = data.getVar('HTTP_PROXY', d, True ) + if (proxy): + if (proxy.endswith('/')): + proxy = proxy[:-1] + if (proxy.startswith('http://')): + proxy = proxy[7:] + h = httplib.HTTP(proxy) + h.putrequest('POST', 'http://%s%s' % (server, selector)) + else: + h = httplib.HTTP(server) + h.putrequest('POST', selector) h.putheader('content-type', content_type) h.putheader('content-length', str(len(body))) h.endheaders() @@ -12,8 +22,8 @@ def tinder_http_post(server, selector, content_type, body): errcode, errmsg, headers = h.getreply() #print errcode, errmsg, headers return (errcode,errmsg, headers, h.file) - except: - print "Error sending the report!" + except Exception, e: + print "Error sending the report! ", e # try again pass @@ -116,7 +126,7 @@ def tinder_build_start(d): #print "selector %s and url %s" % (selector, url) # now post it - errcode, errmsg, headers, h_file = tinder_http_post(server,selector,content_type, body) + errcode, errmsg, headers, h_file = tinder_http_post(d,server,selector,content_type, body) #print errcode, errmsg, headers report = h_file.read() @@ -151,7 +161,7 @@ def tinder_send_http(d, status, _log): new_log = _log while len(new_log) > 0: content_type, body = tinder_format_http_post(d,status,new_log[0:18000]) - errcode, errmsg, headers, h_file = tinder_http_post(server,selector,content_type, body) + errcode, errmsg, headers, h_file = tinder_http_post(d,server,selector,content_type, body) #print errcode, errmsg, headers #print h.file.read() new_log = new_log[18000:] -- cgit v1.2.3 From b70a44d9b644630004df175f38ebaefe2fcfd92f Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Thu, 28 May 2009 00:00:19 +0200 Subject: lockdown: steal some bits from openmoko that will dump prefferred_versions to TMPDIR * freeze.inc would work as well, but I got this working first --- classes/lockdown.bbclass | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 classes/lockdown.bbclass (limited to 'classes') diff --git a/classes/lockdown.bbclass b/classes/lockdown.bbclass new file mode 100644 index 0000000000..45b9761b9c --- /dev/null +++ b/classes/lockdown.bbclass @@ -0,0 +1,41 @@ +addtask show_versions before do_build +do_show_versions[nostamp] = "1" +python do_show_versions() { + import sys + + localdata = bb.data.createCopy(d) + bb.data.update_data(localdata) + + src_uri = bb.data.getVar('SRC_URI', localdata, 1) + if not src_uri: + return 1 + + try: + bb.fetch.init(src_uri.split(),d) + except bb.fetch.NoMethodError: + (type, value, traceback) = sys.exc_info() + raise bb.build.FuncFailed("No method: %s" % value) + + + src_uri = bb.data.getVar("SRC_URI", d, False) + pn = bb.data.getVar("PN", d, True) + src_revs = open("%s/src_revs.inc" % bb.data.getVar("TMPDIR", d, 1), "a") + src_dates = open("%s/src_dates.inc" % bb.data.getVar("TMPDIR", d, 1), "a") + pref_versions = open("%s/preferred_versions.inc" % bb.data.getVar("TMPDIR", d, 1), "a") + if "SRCREV" in bb.data.getVar("PV", d, False): + print >> src_revs, 'SRCREV_pn-%(pn)s ?= "%(rev)s"' % { 'pn' : pn, 'rev' : bb.data.getVar("SRCREV", d, True) } + elif "cvs://" in src_uri or "svn://" in src_uri or "git://" in src_uri: + print >> src_dates, 'SRCDATE_pn-%(pn)s ?= "%(date)s"' % { 'pn' : pn, 'date' : bb.data.getVar("SRCDATE", d, True) } + + print >> pref_versions, 'PREFERRED_VERSION_%(pn)s = "%(version)s"' % { "pn" : pn, 'version' : bb.data.getVar("PV", d, True) } + src_revs.close() + src_dates.close() + pref_versions.close() +} + +addtask lockdown +do_lockdown[nostamp] = "1" +do_lockdown[recrdeptask] = "do_show_versions" +python do_lockdown() { +} + -- cgit v1.2.3 From d6606b5feead01f3f6b4e51d0d4cddb601ac7992 Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Mon, 25 May 2009 01:18:33 +0000 Subject: gnome.bbclass: remove unneeded scrollkeeper stuff from gnome packages. Scrollkeeper generates its XML database for every package when installing it. The problem is that while building it sees only specific package scrollkeeper stuff so we get wrong scrollkeeper xml file generated for every gnome.bbclass package. Including the file into every gnome package results in package contents conflicts. This patch removes a quick hack made by Koen with previous commit. Signed-off-by: Ihar Hrachyshka Acked-by: Phil Blundell Signed-off-by: Koen Kooi --- classes/gnome.bbclass | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'classes') diff --git a/classes/gnome.bbclass b/classes/gnome.bbclass index d2ca739e40..da88884dde 100644 --- a/classes/gnome.bbclass +++ b/classes/gnome.bbclass @@ -17,9 +17,11 @@ inherit autotools gtk-icon-cache pkgconfig gconf mime AUTOTOOLS_STAGE_PKGCONFIG = "1" -PACKAGES =+ "${PN}-scrollkeeper-leftovers" -FILES_${PN}-scrollkeeper-leftovers = "${localstatedir}/lib/scrollkeeper" - gnome_stage_includes() { autotools_stage_includes } + +do_install_append() { + rm -rf ${D}${localstatedir}/lib/scrollkeeper/* +} + -- cgit v1.2.3 From 2211a434193811ae29af0783f5faa03f51f48123 Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Wed, 3 Jun 2009 05:37:13 +0000 Subject: qt4: style refinements, more generalization Signed-off-by: Ihar Hrachyshka Acked-by: Tom Rini Acked-by: Denys Dmytriyenko --- classes/qt4e.bbclass | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'classes') diff --git a/classes/qt4e.bbclass b/classes/qt4e.bbclass index 445ecbaa6a..f72e06b6eb 100644 --- a/classes/qt4e.bbclass +++ b/classes/qt4e.bbclass @@ -2,15 +2,16 @@ DEPENDS_prepend = "${@["qt4-embedded ", ""][(bb.data.getVar('PN', d, 1) == 'qt4- inherit qmake2 QT_DIR_NAME = "qtopia" +QT_LIBINFIX = "E" # override variables set by qmake-base to compile Qt/Embedded apps # -export QMAKESPEC = "${STAGING_DATADIR}/qtopia/mkspecs/${TARGET_OS}-oe-g++" -export OE_QMAKE_INCDIR_QT = "${STAGING_INCDIR}/qtopia" +export QMAKESPEC = "${STAGING_DATADIR}/${QT_DIR_NAME}/mkspecs/${TARGET_OS}-oe-g++" +export OE_QMAKE_INCDIR_QT = "${STAGING_INCDIR}/${QT_DIR_NAME}" export OE_QMAKE_LIBDIR_QT = "${STAGING_LIBDIR}" export OE_QMAKE_LIBS_QT = "qt" export OE_QMAKE_LIBS_X11 = "" export OE_QMAKE_EXTRA_MODULES = "network" -EXTRA_QMAKEVARS_PRE += " QT_LIBINFIX=E " +EXTRA_QMAKEVARS_PRE += " QT_LIBINFIX=${QT_LIBINFIX} " # Qt4 uses atomic instructions not supported in thumb mode ARM_INSTRUCTION_SET = "arm" -- cgit v1.2.3 From 8604f603321ce63ea5dc94334153af0841145fc6 Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Wed, 10 Jun 2009 08:36:57 -0700 Subject: recipe_sanity.bbclass: add initial recipe sanity checker. Currently just checks for variables which the recipe can avoid defining, as the values end up the same as the defaults. Formerly known as kergoth_sanity, but we all know such a thing is mythical ;) Signed-off-by: Chris Larson --- classes/recipe_sanity.bbclass | 111 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 classes/recipe_sanity.bbclass (limited to 'classes') diff --git a/classes/recipe_sanity.bbclass b/classes/recipe_sanity.bbclass new file mode 100644 index 0000000000..a10755cf47 --- /dev/null +++ b/classes/recipe_sanity.bbclass @@ -0,0 +1,111 @@ +def can_use_autotools_base(cfgdata, d): + import bb + cfg = d.getVar("do_configure", 1) + if not bb.data.inherits_class("autotools", d): + return False + + for i in ["autoreconf"] + ["%s_do_configure" % cls for cls in ["gnome", "e", "autotools", "autotools_stage", "efl", "gpephone", "openmoko", "openmoko2", "xfce", "xlibs"]]: + if cfg.find(i) != -1: + return False + + import os + for clsfile in d.getVar("__inherit_cache", 0): + (base, _) = os.path.splitext(os.path.basename(clsfile)) + if cfg.find("%s_do_configure" % base) != -1: + bb.note("%s: recipe_sanity: autotools_base usage needs verification, spotted %s" % (d.getVar("P", 1), "%s_do_configure" % base)) + + return True + +def can_remove_FILESPATH(cfgdata, d): + import os + import bb + expected = cfgdata.get("FILESPATH") + #expected = "${@':'.join([os.path.normpath(os.path.join(fp, p, o)) for fp in d.getVar('FILESPATHBASE', 1).split(':') for p in d.getVar('FILESPATHPKG', 1).split(':') for o in (d.getVar('OVERRIDES', 1) + ':').split(':') if os.path.exists(os.path.join(fp, p, o))])}:${FILESDIR}" + expectedpaths = bb.data.expand(expected, d) + unexpanded = d.getVar("FILESPATH", 0) + filespath = d.getVar("FILESPATH", 1).split(":") + filespath = [os.path.normpath(f) for f in filespath if os.path.exists(f)] + for fp in filespath: + if not fp in expectedpaths: + # bb.note("Path %s in FILESPATH not in the expected paths %s" % (fp, expectedpaths)) + return False + return expected != unexpanded + +def can_remove_FILESDIR(cfgdata, d): + import os + import bb + expected = cfgdata.get("FILESDIR") + #expected = "${@bb.which(d.getVar('FILESPATH', 1), '.')}" + unexpanded = d.getVar("FILESDIR", 0) + if unexpanded is None: + return False + + expanded = os.path.normpath(d.getVar("FILESDIR", 1)) + filespath = d.getVar("FILESPATH", 1).split(":") + filespath = [os.path.normpath(f) for f in filespath if os.path.exists(f)] + + return unexpanded != expected and \ + os.path.exists(expanded) and \ + (expanded in filespath or + expanded == bb.data.expand(expected, d)) + +def can_remove_others(p, cfgdata, d): + import bb + for k in ["S", "PV", "PN", "DESCRIPTION", "LICENSE", "DEPENDS", + "SECTION", "PACKAGES", "EXTRA_OECONF", "EXTRA_OEMAKE"]: + #for k in cfgdata: + unexpanded = d.getVar(k, 0) + cfgunexpanded = cfgdata.get(k) + if not cfgunexpanded: + continue + + try: + expanded = d.getVar(k, 1) + cfgexpanded = bb.data.expand(cfgunexpanded, d) + except bb.fetch.ParameterError: + continue + + if unexpanded != cfgunexpanded and \ + cfgexpanded == expanded: + bb.note("%s: recipe_sanity: candidate for removal of %s" % (p, k)) + bb.debug(1, "%s: recipe_sanity: cfg's '%s' and d's '%s' both expand to %s" % + (p, cfgunexpanded, unexpanded, expanded)) + +python do_recipe_sanity () { + p = d.getVar("P", 1) + p = "%s %s %s" % (d.getVar("PN", 1), d.getVar("PV", 1), d.getVar("PR", 1)) + + sanitychecks = [ + (can_remove_FILESDIR, "removal of FILESDIR"), + (can_remove_FILESPATH, "removal of FILESPATH"), + #(can_use_autotools_base, "use of autotools_base"), + ] + cfgdata = d.getVar("__recipe_sanity_cfgdata", 0) + + for (func, msg) in sanitychecks: + if func(cfgdata, d): + bb.note("%s: recipe_sanity: candidate for %s" % (p, msg)) + + can_remove_others(p, cfgdata, d) +} +do_recipe_sanity[nostamp] = "1" +do_recipe_sanity[recrdeptask] = "do_recipe_sanity" +addtask recipe_sanity + +python recipe_sanity_eh () { + from bb.event import getName + + if getName(e) != "ConfigParsed": + return NotHandled + + d = e.data + + cfgdata = {} + for k in d.keys(): + #for k in ["S", "PR", "PV", "PN", "DESCRIPTION", "LICENSE", "DEPENDS", + # "SECTION"]: + cfgdata[k] = d.getVar(k, 0) + + d.setVar("__recipe_sanity_cfgdata", cfgdata) +} +addhandler recipe_sanity_eh -- cgit v1.2.3 From 6cf6511c7510f7f1db1c836d90d38f433316d377 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Fri, 12 Jun 2009 17:58:19 +0200 Subject: image bbclass: add install_linguas method * this method will install all linguas in $IMAGE_LINGUAS for all packages installed into the rootfs * currently opkg only, guarded with a check --- classes/image.bbclass | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/image.bbclass b/classes/image.bbclass index 89d27120c1..43eb3f3dc7 100644 --- a/classes/image.bbclass +++ b/classes/image.bbclass @@ -231,8 +231,32 @@ rootfs_update_timestamp () { date "+%m%d%H%M%Y" >${IMAGE_ROOTFS}/etc/timestamp } +# Install locales into image for every entry in IMAGE_LINGUAS +install_linguas() { +if [ -e ${IMAGE_ROOTFS}/usr/bin/opkg-cl ] ; then + OPKG="opkg-cl ${IPKG_ARGS}" + + ${OPKG} update + ${OPKG} list_installed | awk '{print $1}' |sort | uniq > /tmp/installed-packages + + for i in $(cat /tmp/installed-packages) ; do + for translation in ${IMAGE_LINGUAS}; do + echo ${i}-locale-${translation} + done + done | sort | uniq > /tmp/wanted-locale-packages + + ${OPKG} list | awk '{print $1}' |grep locale |sort | uniq > /tmp/available-locale-packages + + cat /tmp/wanted-locale-packages /tmp/available-locale-packages | sort | uniq -d > /tmp/pending-locale-packages + cat /tmp/installed-packages /tmp/pending-locale-packages | grep locale | sort | uniq -u > /tmp/translation-list + + cat /tmp/translation-list | xargs ${OPKG} -nodeps install + rm -f ${IMAGE_ROOTFS}${libdir}/opkg/lists/* +fi +} + # export the zap_root_password, create_etc_timestamp and remote_init_link -EXPORT_FUNCTIONS zap_root_password create_etc_timestamp remove_init_link do_rootfs make_zimage_symlink_relative set_image_autologin rootfs_update_timestamp +EXPORT_FUNCTIONS zap_root_password create_etc_timestamp remove_init_link do_rootfs make_zimage_symlink_relative set_image_autologin rootfs_update_timestamp install_linguas addtask rootfs after do_compile before do_install addtask deploy_to after do_rootfs -- cgit v1.2.3 From ee690abcef0df80271729ca869f19164b1c15bbe Mon Sep 17 00:00:00 2001 From: Phil Blundell Date: Sat, 13 Jun 2009 15:44:35 +0100 Subject: update-rc.d: don't add runtime dependency if not doing online package management; only add it to ${PN} in any case. --- classes/update-rc.d.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/update-rc.d.bbclass b/classes/update-rc.d.bbclass index 6328193bb9..91af859392 100644 --- a/classes/update-rc.d.bbclass +++ b/classes/update-rc.d.bbclass @@ -1,5 +1,5 @@ DEPENDS_append = " update-rc.d" -RDEPENDS_append = " update-rc.d" +RDEPENDS_${PN}_append = " ${@base_conditional("ONLINE_PACKAGE_MANAGEMENT", "none", "", "update-rc.d", d)}" INITSCRIPT_PARAMS ?= "defaults" -- cgit v1.2.3 From 42b8607cc4d15c37b1358640fe1f412bafd08f59 Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Sat, 13 Jun 2009 14:33:59 -0400 Subject: autotools.bbclass: sdk packages should not depend on libtool-cross --- classes/autotools.bbclass | 1 + 1 file changed, 1 insertion(+) (limited to 'classes') diff --git a/classes/autotools.bbclass b/classes/autotools.bbclass index e43b289c56..8236a27c76 100644 --- a/classes/autotools.bbclass +++ b/classes/autotools.bbclass @@ -20,6 +20,7 @@ def autotools_dep_prepend(d): deps += 'libtool-native ' if not bb.data.inherits_class('native', d) \ and not bb.data.inherits_class('cross', d) \ + and not bb.data.inherits_class('sdk', d) \ and not bb.data.getVar('INHIBIT_DEFAULT_DEPS', d, 1): deps += 'libtool-cross ' -- cgit v1.2.3 From 30a18b60ef7c124ca0ff481493462e0f410d0d1d Mon Sep 17 00:00:00 2001 From: Phil Blundell Date: Sat, 13 Jun 2009 20:38:45 +0100 Subject: rootfs_ipk: opkg (at least some versions) doesn't respect ${libdir}, so look in /usr/lib specifically for its bits --- classes/rootfs_ipk.bbclass | 1 + 1 file changed, 1 insertion(+) (limited to 'classes') diff --git a/classes/rootfs_ipk.bbclass b/classes/rootfs_ipk.bbclass index f5714bd1a3..4e9affa523 100644 --- a/classes/rootfs_ipk.bbclass +++ b/classes/rootfs_ipk.bbclass @@ -97,6 +97,7 @@ fakeroot rootfs_ipk_do_rootfs () { ln -s opkg ${IMAGE_ROOTFS}${libdir}/ipkg else rm -rf ${IMAGE_ROOTFS}${libdir}/opkg + rm -rf ${IMAGE_ROOTFS}/usr/lib/opkg fi ${ROOTFS_POSTPROCESS_COMMAND} -- cgit v1.2.3 From 96a0d3afc63adbae17f5b7965c02e9d7d87d6078 Mon Sep 17 00:00:00 2001 From: Phil Blundell Date: Mon, 15 Jun 2009 10:12:00 +0100 Subject: Revert "bitbake.conf, lib_package.bbclass: fix packaging of ${base_libdir}/*.so" This reverts commit ba434bd1dc9dc8ed61953a1579ea9e993e81cbb2. Acked-by: Richard Purdie, Leon Woestenberg --- classes/lib_package.bbclass | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'classes') diff --git a/classes/lib_package.bbclass b/classes/lib_package.bbclass index 788b7bb0c4..82c93707ea 100644 --- a/classes/lib_package.bbclass +++ b/classes/lib_package.bbclass @@ -1,11 +1,8 @@ PACKAGES += "${PN}-bin" -# NB: ${base_libdir}/*${SOLIBSDEV} is included here because the shared libraries -# in ${base_libdir} do not follow the usual *.so.* naming convention, for instance -# libproc-3.2.7.so FILES_${PN} = "${libexecdir} ${libdir}/lib*${SOLIBS} \ ${sysconfdir} ${sharedstatedir} ${localstatedir} \ - ${base_libdir}/*${SOLIBS} ${base_libdir}/*${SOLIBSDEV} \ + ${base_libdir}/*${SOLIBS} \ ${datadir}/${PN} ${libdir}/${PN}" FILES_${PN}-dev = "${includedir} ${libdir}/lib*${SOLIBSDEV} ${libdir}/*.la \ ${libdir}/*.a ${libdir}/pkgconfig /lib/*.a /lib/*.o \ -- cgit v1.2.3 From 4319baa438ea7b26d4b7d8474440e684c11d877b Mon Sep 17 00:00:00 2001 From: Phil Blundell Date: Mon, 15 Jun 2009 17:52:18 +0100 Subject: rootfs_ipk: move "mkdir /etc/opkg" inside ONLINE_PACKAGE_MANAGEMENT conditional --- classes/rootfs_ipk.bbclass | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'classes') diff --git a/classes/rootfs_ipk.bbclass b/classes/rootfs_ipk.bbclass index 4e9affa523..f554e06dfa 100644 --- a/classes/rootfs_ipk.bbclass +++ b/classes/rootfs_ipk.bbclass @@ -64,9 +64,8 @@ fakeroot rootfs_ipk_do_rootfs () { export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS} export OPKG_OFFLINE_ROOT=${IPKG_OFFLINE_ROOT} - mkdir -p ${IMAGE_ROOTFS}${sysconfdir}/opkg/ - if [ "${ONLINE_PACKAGE_MANAGEMENT}" != "none" ]; then + mkdir -p ${IMAGE_ROOTFS}${sysconfdir}/opkg/ grep "^arch" ${IPKGCONF_TARGET} >${IMAGE_ROOTFS}${sysconfdir}/opkg/arch.conf fi -- cgit v1.2.3 From ec8cee753fdf70ee10c6c05c7408eb68fd53990d Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Tue, 16 Jun 2009 16:09:24 +0200 Subject: image.bbclass: unbreak postinst status in the install_lingua method --- classes/image.bbclass | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'classes') diff --git a/classes/image.bbclass b/classes/image.bbclass index 43eb3f3dc7..f0cc3b3a88 100644 --- a/classes/image.bbclass +++ b/classes/image.bbclass @@ -252,6 +252,19 @@ if [ -e ${IMAGE_ROOTFS}/usr/bin/opkg-cl ] ; then cat /tmp/translation-list | xargs ${OPKG} -nodeps install rm -f ${IMAGE_ROOTFS}${libdir}/opkg/lists/* + + for i in ${IMAGE_ROOTFS}${libdir}/opkg/info/*.preinst; do + if [ -f $i ] && ! sh $i; then + opkg-cl ${IPKG_ARGS} flag unpacked `basename $i .preinst` + fi + done + + for i in ${IMAGE_ROOTFS}${libdir}/opkg/info/*.postinst; do + if [ -f $i ] && ! sh $i configure; then + opkg-cl ${IPKG_ARGS} flag unpacked `basename $i .postinst` + fi + done + fi } -- cgit v1.2.3 From 35e7b34d3b5b96ed11bc7ed6b2a5d08e6183d8a3 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Wed, 3 Jun 2009 01:25:43 +0000 Subject: fix for MACHINE_KERNEL_PR stuff This patch unbreaks current behaviour which was introduced by MACHINE_KERNEL_PR variable. As most of target machines do not use it they have PR with broken value (set to "r0" instead of value in recipe). I took other way which makes both types of users happy -- those with MACHINE_KERNEL_PR in use and those without it. By default we set M_K_PR to empty string instead of "r0" - this allows to check is it set at all or not. If it is set then we set PR to this value. Otherwise we ignore existance of that variable and use PR from recipe. Signed-off-by: Marcin Juszkiewicz --- classes/kernel.bbclass | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'classes') diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass index 1323228a74..b18dfab796 100644 --- a/classes/kernel.bbclass +++ b/classes/kernel.bbclass @@ -20,6 +20,12 @@ python __anonymous () { image = bb.data.getVar('INITRAMFS_IMAGE', d, True) if image != '' and image is not None: bb.data.setVar('INITRAMFS_TASK', '${INITRAMFS_IMAGE}:do_rootfs', d) + + pr = bb.data.getVar('PR', d, True) + machine_kernel_pr = bb.data.getVar('MACHINE_KERNEL_PR', d, True) + + if machine_kernel_pr: + bb.data.setVar('PR', machine_kernel_pr, d) } INITRAMFS_IMAGE ?= "" @@ -64,10 +70,6 @@ export CMDLINE_CONSOLE = "console=${@bb.data.getVar("KERNEL_CONSOLE",d,1) or "tt KERNEL_VERSION = "${@get_kernelversion('${S}')}" KERNEL_MAJOR_VERSION = "${@get_kernelmajorversion('${KERNEL_VERSION}')}" -# A machine.conf or local.conf can increase MACHINE_KERNEL_PR to force -# rebuilds for kernel and external modules -PR = "${MACHINE_KERNEL_PR}" - KERNEL_LOCALVERSION ?= "" # kernels are generally machine specific -- cgit v1.2.3 From 4c0ec23a5f34d92b679c413aee3bf022bc4df228 Mon Sep 17 00:00:00 2001 From: Rolf Leggewie Date: Thu, 11 Jun 2009 15:21:00 +0200 Subject: siteinfo.bbclass: add support for via C3 host --- classes/siteinfo.bbclass | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/siteinfo.bbclass b/classes/siteinfo.bbclass index 0221b123f1..e51d7ab8a6 100644 --- a/classes/siteinfo.bbclass +++ b/classes/siteinfo.bbclass @@ -32,7 +32,7 @@ def get_siteinfo_list(d): "arm-linux-uclibc": "endian-little bit-32 common-linux common-uclibc arm-common",\ "arm-linux-uclibcgnueabi": "endian-little bit-32 common-linux common-uclibc arm-common arm-linux-uclibc",\ "avr32-linux-uclibc": "endian-big bit-32 common-linux common-uclibc avr32-common",\ - "bfin-uclinux-uclibc": "endian-little bit-32 common-uclibc bfin-common",\ + "bfin-uclinux-uclibc": "endian-little bit-32 common-uclibc bfin-common",\ "i386-linux": "endian-little bit-32 common-linux common-glibc ix86-common",\ "i486-linux": "endian-little bit-32 common-linux common-glibc ix86-common",\ "i586-linux": "endian-little bit-32 common-linux common-glibc ix86-common",\ @@ -64,6 +64,7 @@ def get_siteinfo_list(d): "sh4-linux": "endian-little bit-32 common-linux common-glibc sh-common",\ "sh4-linux-uclibc": "endian-little bit-32 common-linux common-uclibc sh-common",\ "sparc-linux": "endian-big bit-32 common-linux common-glibc",\ + "viac3-linux": "endian-little bit-32 common-linux common-glibc ix86-common",\ "x86_64-linux": "endian-little bit-64 common-linux common-glibc",\ "x86_64-linux-uclibc": "endian-little bit-64 common-linux common-uclibc"} if target in targetinfo: -- cgit v1.2.3 From 40c8b7516530ad65160841f6e79e40475d02d471 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Wed, 17 Jun 2009 14:38:33 +0200 Subject: kernel.bbclass: remove not used 'pr' variable - spotten by Koen --- classes/kernel.bbclass | 1 - 1 file changed, 1 deletion(-) (limited to 'classes') diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass index b18dfab796..75a9077445 100644 --- a/classes/kernel.bbclass +++ b/classes/kernel.bbclass @@ -21,7 +21,6 @@ python __anonymous () { if image != '' and image is not None: bb.data.setVar('INITRAMFS_TASK', '${INITRAMFS_IMAGE}:do_rootfs', d) - pr = bb.data.getVar('PR', d, True) machine_kernel_pr = bb.data.getVar('MACHINE_KERNEL_PR', d, True) if machine_kernel_pr: -- cgit v1.2.3 From cbef7988989e4a0ca7822c78a58b5da6bbc6eb6b Mon Sep 17 00:00:00 2001 From: Phil Blundell Date: Wed, 17 Jun 2009 14:32:56 +0100 Subject: kernel.bbclass: don't add dependency on update-modules if not doing O_P_M --- classes/kernel.bbclass | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass index 1323228a74..ae7e643ca7 100644 --- a/classes/kernel.bbclass +++ b/classes/kernel.bbclass @@ -441,10 +441,14 @@ python populate_packages_prepend () { postinst = bb.data.getVar('pkg_postinst_modules', d, 1) postrm = bb.data.getVar('pkg_postrm_modules', d, 1) + + maybe_update_modules = "update-modules " + if bb.data.getVar("ONLINE_PACKAGE_MANAGEMENT", d) == "none": + maybe_update_modules = "" do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.bin$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='') do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.fw$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='') - do_split_packages(d, root='/lib/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='update-modules kernel-%s' % bb.data.getVar("KERNEL_VERSION", d, 1)) + do_split_packages(d, root='/lib/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='%skernel-%s' % (maybe_update_modules, bb.data.getVar("KERNEL_VERSION", d, 1))) import re, os metapkg = "kernel-modules" -- cgit v1.2.3 From 4a39c2f6fa894959419ac4a097ac97530c335726 Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Wed, 10 Jun 2009 17:20:23 -0700 Subject: image.bbclass: remove tmp/rootfs after image creation unless you set a variable Set IMAGE_KEEPROOTFS to something other than the empty string to keep tmp/rootfs around after image creation, otherwise it will be removed, as it's not a fully functional filesystem, and causes much confusion among users as a result. Signed-off-by: Chris Larson Acked-by: Tom Rini Acked-by: Marcin Juszkiewicz --- classes/image.bbclass | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'classes') diff --git a/classes/image.bbclass b/classes/image.bbclass index f0cc3b3a88..0d798fa7db 100644 --- a/classes/image.bbclass +++ b/classes/image.bbclass @@ -17,6 +17,9 @@ IMAGE_INITSCRIPTS ?= "initscripts" # IMAGE_LOGIN_MANAGER ?= "tinylogin" +IMAGE_KEEPROOTFS ?= "" +IMAGE_KEEPROOTFS[doc] = "Set to non-empty to keep ${IMAGE_ROOTFS} around after image creation." + IMAGE_BOOT ?= "${IMAGE_INITSCRIPTS} \ ${IMAGE_DEV_MANAGER} \ ${IMAGE_INIT_MANAGER} \ @@ -133,6 +136,7 @@ fakeroot do_rootfs () { ${IMAGE_POSTPROCESS_COMMAND} ${MACHINE_POSTPROCESS_COMMAND} + ${@['rm -rf ${IMAGE_ROOTFS}', ''][bool(d.getVar("IMAGE_KEEPROOTFS", 1))]} } do_deploy_to[nostamp] = "1" -- cgit v1.2.3 From d18b7848a50b94e3f0de4d4b90c05b224a5622c2 Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Tue, 16 Jun 2009 12:35:40 -0700 Subject: rootfs_ipk.bbclass: add log_check for "Cannot satisfy the following dependencies". Fixes a bug pointed out where a missing rdepends of a package installed into an image wasn't resulting in a failure in the do_rootfs task. Signed-off-by: Chris Larson --- classes/rootfs_ipk.bbclass | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/rootfs_ipk.bbclass b/classes/rootfs_ipk.bbclass index f554e06dfa..99a8ed22c2 100644 --- a/classes/rootfs_ipk.bbclass +++ b/classes/rootfs_ipk.bbclass @@ -109,7 +109,8 @@ rootfs_ipk_log_check() { lf_path="$2" lf_txt="`cat $lf_path`" - for keyword_die in "Cannot find package" "exit 1" ERR Fail + for keyword_die in "Cannot find package" "Cannot satisfy the following dependencies" \ + "exit 1" ERR Fail do if (echo "$lf_txt" | grep -v log_check | grep -w "$keyword_die") >/dev/null 2>&1 then -- cgit v1.2.3 From 1cd6a5729d952b5b7a3831af8544d3eed0c591fd Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Thu, 11 Jun 2009 14:37:38 -0700 Subject: task.bbclass: add missing 'import bb'. Signed-off-by: Chris Larson --- classes/task.bbclass | 1 + 1 file changed, 1 insertion(+) (limited to 'classes') diff --git a/classes/task.bbclass b/classes/task.bbclass index 4edd704829..f3287ebf73 100644 --- a/classes/task.bbclass +++ b/classes/task.bbclass @@ -17,6 +17,7 @@ PACKAGE_ARCH = "all" # to the list. Their dependencies (RRECOMMENDS) are handled as usual # by package_depchains in a following step. python () { + import bb packages = bb.data.getVar('PACKAGES', d, 1).split() genpackages = [] for pkg in packages: -- cgit v1.2.3 From f6afa2c6c1d99729c5cbdf65b5674b64ad529fe7 Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Wed, 10 Jun 2009 12:32:15 -0700 Subject: base.bbclass: make git fail silently in the metadata scm bits. Signed-off-by: Chris Larson --- classes/base.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'classes') diff --git a/classes/base.bbclass b/classes/base.bbclass index e622aeec51..6cafe9d665 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -885,7 +885,7 @@ def base_get_metadata_svn_revision(path, d): def base_get_metadata_git_branch(path, d): import os - branch = os.popen('cd %s; git symbolic-ref HEAD' % path).read().rstrip() + branch = os.popen('cd %s; git symbolic-ref HEAD 2>/dev/null' % path).read().rstrip() if len(branch) != 0: return branch.replace("refs/heads/", "") @@ -893,7 +893,7 @@ def base_get_metadata_git_branch(path, d): def base_get_metadata_git_revision(path, d): import os - rev = os.popen("cd %s; git show-ref HEAD" % path).read().split(" ")[0].rstrip() + rev = os.popen("cd %s; git show-ref HEAD 2>/dev/null" % path).read().split(" ")[0].rstrip() if len(rev) != 0: return rev return "" -- cgit v1.2.3 From d2de8214da107c13d88af966f2e55627253ccd67 Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Wed, 10 Jun 2009 12:34:32 -0700 Subject: base.bbclass: set PATH when calling git for metadata scm bits. Signed-off-by: Chris Larson --- classes/base.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'classes') diff --git a/classes/base.bbclass b/classes/base.bbclass index 6cafe9d665..116605fff8 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -885,7 +885,7 @@ def base_get_metadata_svn_revision(path, d): def base_get_metadata_git_branch(path, d): import os - branch = os.popen('cd %s; git symbolic-ref HEAD 2>/dev/null' % path).read().rstrip() + branch = os.popen('cd %s; PATH=%s git symbolic-ref HEAD 2>/dev/null' % (path, d.getVar("BBPATH", 1))).read().rstrip() if len(branch) != 0: return branch.replace("refs/heads/", "") @@ -893,7 +893,7 @@ def base_get_metadata_git_branch(path, d): def base_get_metadata_git_revision(path, d): import os - rev = os.popen("cd %s; git show-ref HEAD 2>/dev/null" % path).read().split(" ")[0].rstrip() + rev = os.popen("cd %s; PATH=%s git show-ref HEAD 2>/dev/null" % (path, d.getVar("BBPATH", 1))).read().split(" ")[0].rstrip() if len(rev) != 0: return rev return "" -- cgit v1.2.3 From f1cc64d92cc4023fe8180dc0079d010eec0d71b0 Mon Sep 17 00:00:00 2001 From: Dmitry Eremin-Solenikov Date: Thu, 18 Jun 2009 15:45:14 +0400 Subject: linux-2.6.29: add a default kernel for tqm8540 Signed-off-by: Dmitry Eremin-Solenikov --- classes/oestats-client.bbclass | 3 +++ 1 file changed, 3 insertions(+) (limited to 'classes') diff --git a/classes/oestats-client.bbclass b/classes/oestats-client.bbclass index 8922496242..db7025b307 100644 --- a/classes/oestats-client.bbclass +++ b/classes/oestats-client.bbclass @@ -198,6 +198,9 @@ python oestats_eventhandler () { oestats_task(server, e.data, e.task, 'Succeeded') elif getName(e) == 'TaskFailed': oestats_task(server, e.data, e.task, 'Failed') + elif getName(e) == "PkgFailed": + if not bb.data.getVar('AUTOBUILD', e.data, True) == "0": + build.exec_func('do_clean', data) return NotHandled } -- cgit v1.2.3 From 68a8be99518c624816d238ee2ebb5e602a4c62ac Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Thu, 18 Jun 2009 20:12:52 +0200 Subject: Revert "linux-2.6.29: add a default kernel for tqm8540" This reverts commit f1cc64d92cc4023fe8180dc0079d010eec0d71b0. --- classes/oestats-client.bbclass | 3 --- 1 file changed, 3 deletions(-) (limited to 'classes') diff --git a/classes/oestats-client.bbclass b/classes/oestats-client.bbclass index db7025b307..8922496242 100644 --- a/classes/oestats-client.bbclass +++ b/classes/oestats-client.bbclass @@ -198,9 +198,6 @@ python oestats_eventhandler () { oestats_task(server, e.data, e.task, 'Succeeded') elif getName(e) == 'TaskFailed': oestats_task(server, e.data, e.task, 'Failed') - elif getName(e) == "PkgFailed": - if not bb.data.getVar('AUTOBUILD', e.data, True) == "0": - build.exec_func('do_clean', data) return NotHandled } -- cgit v1.2.3 From 5f920c841a4d83fb903ccdf9127cb0fb5617eda1 Mon Sep 17 00:00:00 2001 From: Roman I Khimov Date: Wed, 17 Jun 2009 23:22:57 +0400 Subject: Make package_update_index_ipk proper task with locking Parallel image builds race in package_update_index_ipk, so locking is needed and for a proper lock package_update_index_ipk needs to be a proper task. Acked-by: Tom Rini --- classes/package_ipk.bbclass | 9 ++++++++- classes/rootfs_ipk.bbclass | 4 +--- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'classes') diff --git a/classes/package_ipk.bbclass b/classes/package_ipk.bbclass index d4cb3b62e2..1f1b5c9a79 100644 --- a/classes/package_ipk.bbclass +++ b/classes/package_ipk.bbclass @@ -67,10 +67,16 @@ python package_ipk_install () { raise bb.build.FuncFailed } +do_package_update_index_ipk[lockfiles] = "${DEPLOY_DIR_IPK}.lock" +do_package_update_index_ipk[nostamp] = "1" +do_package_update_index_ipk[recrdeptask] += "do_package_write_ipk" +do_package_update_index_ipk[recrdeptask] += "do_package_write_ipk" +do_package_update_index_ipk[depends] += "ipkg-utils-native:do_populate_staging" + # # Update the Packages index files in ${DEPLOY_DIR_IPK} # -package_update_index_ipk () { +do_package_update_index_ipk () { set -x ipkgarchs="${PACKAGE_ARCHS}" @@ -322,3 +328,4 @@ python do_package_write_ipk () { } do_package_write_ipk[dirs] = "${D}" addtask package_write_ipk before do_package_write after do_package +addtask package_update_index_ipk before do_rootfs diff --git a/classes/rootfs_ipk.bbclass b/classes/rootfs_ipk.bbclass index 99a8ed22c2..16dd511fcb 100644 --- a/classes/rootfs_ipk.bbclass +++ b/classes/rootfs_ipk.bbclass @@ -5,8 +5,7 @@ # See image.bbclass for a usage of this. # -do_rootfs[depends] += "opkg-native:do_populate_staging ipkg-utils-native:do_populate_staging" -do_rootfs[recrdeptask] += "do_package_write_ipk" +do_rootfs[depends] += "opkg-native:do_populate_staging" IPKG_ARGS = "-f ${IPKGCONF_TARGET} -o ${IMAGE_ROOTFS} ${@base_conditional("PACKAGE_INSTALL_NO_DEPS", "1", "-nodeps", "", d)}" @@ -29,7 +28,6 @@ PACKAGE_INSTALL_append = " ${@base_conditional("ONLINE_PACKAGE_MANAGEMENT", "non fakeroot rootfs_ipk_do_rootfs () { set -x - package_update_index_ipk package_generate_ipkg_conf mkdir -p ${T} -- cgit v1.2.3 From 5c66c828be4ccbaa923ca34e89c36603740fd847 Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Fri, 19 Jun 2009 09:13:30 -0700 Subject: recipe_sanity: add check for PACKAGES in native/cross and split to recipe_sanity_all. Signed-off-by: Chris Larson --- classes/recipe_sanity.bbclass | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'classes') diff --git a/classes/recipe_sanity.bbclass b/classes/recipe_sanity.bbclass index a10755cf47..4d00ddf1e5 100644 --- a/classes/recipe_sanity.bbclass +++ b/classes/recipe_sanity.bbclass @@ -1,3 +1,10 @@ +def incorrect_nonempty_PACKAGES(cfgdata, d): + import bb.data + if bb.data.inherits_class("native", d) or \ + bb.data.inherits_class("cross", d): + if d.getVar("PACKAGES", 1): + return True + def can_use_autotools_base(cfgdata, d): import bb cfg = d.getVar("do_configure", 1) @@ -76,22 +83,30 @@ python do_recipe_sanity () { p = "%s %s %s" % (d.getVar("PN", 1), d.getVar("PV", 1), d.getVar("PR", 1)) sanitychecks = [ - (can_remove_FILESDIR, "removal of FILESDIR"), - (can_remove_FILESPATH, "removal of FILESPATH"), - #(can_use_autotools_base, "use of autotools_base"), + (can_remove_FILESDIR, "candidate for removal of FILESDIR"), + (can_remove_FILESPATH, "candidate for removal of FILESPATH"), + #(can_use_autotools_base, "candidate for use of autotools_base"), + (incorrect_nonempty_PACKAGES, "native or cross recipe with non-empty PACKAGES"), ] cfgdata = d.getVar("__recipe_sanity_cfgdata", 0) for (func, msg) in sanitychecks: if func(cfgdata, d): - bb.note("%s: recipe_sanity: candidate for %s" % (p, msg)) + bb.note("%s: recipe_sanity: %s" % (p, msg)) can_remove_others(p, cfgdata, d) } do_recipe_sanity[nostamp] = "1" -do_recipe_sanity[recrdeptask] = "do_recipe_sanity" +#do_recipe_sanity[recrdeptask] = "do_recipe_sanity" addtask recipe_sanity +do_recipe_sanity_all[nostamp] = "1" +do_recipe_sanity_all[recrdeptask] = "do_recipe_sanity" +do_recipe_sanity_all () { + : +} +addtask recipe_sanity_all after do_recipe_sanity + python recipe_sanity_eh () { from bb.event import getName -- cgit v1.2.3 From abacaf47436e2f92313475c79d81eab77f99819b Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Fri, 19 Jun 2009 11:45:01 -0700 Subject: recipe_sanity.bbclass: add check to handle bugs wrt var expansions in var names. Signed-off-by: Chris Larson --- classes/recipe_sanity.bbclass | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) (limited to 'classes') diff --git a/classes/recipe_sanity.bbclass b/classes/recipe_sanity.bbclass index 4d00ddf1e5..60fcfabfb7 100644 --- a/classes/recipe_sanity.bbclass +++ b/classes/recipe_sanity.bbclass @@ -1,3 +1,14 @@ +def __note(msg, d): + import bb + bb.note("%s: recipe_sanity: %s" % (d.getVar("P", 1), msg)) + +def var_renames_overwrite(cfgdata, d): + renames = d.getVar("__recipe_sanity_renames", 0) + if renames: + for (key, newkey, oldvalue, newvalue) in renames: + if oldvalue != newvalue and oldvalue != cfgdata.get(newkey): + __note("rename of variable '%s' to '%s' overwrote existing value '%s' with '%s'." % (key, newkey, oldvalue, newvalue), d) + def incorrect_nonempty_PACKAGES(cfgdata, d): import bb.data if bb.data.inherits_class("native", d) or \ @@ -19,7 +30,7 @@ def can_use_autotools_base(cfgdata, d): for clsfile in d.getVar("__inherit_cache", 0): (base, _) = os.path.splitext(os.path.basename(clsfile)) if cfg.find("%s_do_configure" % base) != -1: - bb.note("%s: recipe_sanity: autotools_base usage needs verification, spotted %s" % (d.getVar("P", 1), "%s_do_configure" % base)) + __note("autotools_base usage needs verification, spotted %s_do_configure" % base, d) return True @@ -34,7 +45,8 @@ def can_remove_FILESPATH(cfgdata, d): filespath = [os.path.normpath(f) for f in filespath if os.path.exists(f)] for fp in filespath: if not fp in expectedpaths: - # bb.note("Path %s in FILESPATH not in the expected paths %s" % (fp, expectedpaths)) + # __note("Path %s in FILESPATH not in the expected paths %s" % + # (fp, expectedpaths), d) return False return expected != unexpanded @@ -74,7 +86,7 @@ def can_remove_others(p, cfgdata, d): if unexpanded != cfgunexpanded and \ cfgexpanded == expanded: - bb.note("%s: recipe_sanity: candidate for removal of %s" % (p, k)) + __note("candidate for removal of %s" % k, d) bb.debug(1, "%s: recipe_sanity: cfg's '%s' and d's '%s' both expand to %s" % (p, cfgunexpanded, unexpanded, expanded)) @@ -92,9 +104,10 @@ python do_recipe_sanity () { for (func, msg) in sanitychecks: if func(cfgdata, d): - bb.note("%s: recipe_sanity: %s" % (p, msg)) + __note(msg, d) can_remove_others(p, cfgdata, d) + var_renames_overwrite(cfgdata, d) } do_recipe_sanity[nostamp] = "1" #do_recipe_sanity[recrdeptask] = "do_recipe_sanity" @@ -122,5 +135,18 @@ python recipe_sanity_eh () { cfgdata[k] = d.getVar(k, 0) d.setVar("__recipe_sanity_cfgdata", cfgdata) + + # Sick, very sick.. + from bb.data_smart import DataSmart + old = DataSmart.renameVar + def myrename(self, key, newkey): + oldvalue = self.getVar(newkey, 0) + old(self, key, newkey) + newvalue = self.getVar(newkey, 0) + if oldvalue: + renames = self.getVar("__recipe_sanity_renames", 0) or set() + renames.add((key, newkey, oldvalue, newvalue)) + self.setVar("__recipe_sanity_renames", renames) + DataSmart.renameVar = myrename } addhandler recipe_sanity_eh -- cgit v1.2.3 From 01c214c0d1c1a8e8ced560e03bc74c3ea2708575 Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Fri, 19 Jun 2009 12:14:04 -0700 Subject: recipe_sanity.bbclass: add checks for missing/default variables By default, for now, it just checks for LICENSE being left as default when SRC_URI is set, and an empty DESCRIPTION, which freaks out the packaging classes. Signed-off-by: Chris Larson --- classes/recipe_sanity.bbclass | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'classes') diff --git a/classes/recipe_sanity.bbclass b/classes/recipe_sanity.bbclass index 60fcfabfb7..870a83f6c3 100644 --- a/classes/recipe_sanity.bbclass +++ b/classes/recipe_sanity.bbclass @@ -2,6 +2,27 @@ def __note(msg, d): import bb bb.note("%s: recipe_sanity: %s" % (d.getVar("P", 1), msg)) +__recipe_sanity_reqvars = "DESCRIPTION" +__recipe_sanity_reqdiffvars = "LICENSE" +def req_vars(cfgdata, d): + for var in d.getVar("__recipe_sanity_reqvars", 1).split(): + if not d.getVar(var, 0): + __note("%s should be set" % var, d) + + for var in d.getVar("__recipe_sanity_reqdiffvars", 1).split(): + val = d.getVar(var, 0) + cfgval = cfgdata.get(var) + + # Hardcoding is bad, but I'm lazy. We don't care about license being + # unset if the recipe has no sources! + if var == "LICENSE" and d.getVar("SRC_URI", 1) == cfgdata.get("SRC_URI"): + continue + + if not val: + __note("%s should be set" % var, d) + elif val == cfgval: + __note("%s should be defined to something other than default (%s)" % (var, cfgval), d) + def var_renames_overwrite(cfgdata, d): renames = d.getVar("__recipe_sanity_renames", 0) if renames: @@ -108,6 +129,7 @@ python do_recipe_sanity () { can_remove_others(p, cfgdata, d) var_renames_overwrite(cfgdata, d) + req_vars(cfgdata, d) } do_recipe_sanity[nostamp] = "1" #do_recipe_sanity[recrdeptask] = "do_recipe_sanity" @@ -135,6 +157,7 @@ python recipe_sanity_eh () { cfgdata[k] = d.getVar(k, 0) d.setVar("__recipe_sanity_cfgdata", cfgdata) + #d.setVar("__recipe_sanity_cfgdata", d) # Sick, very sick.. from bb.data_smart import DataSmart -- cgit v1.2.3 From df7ddd8feaeab6b39ee784a581dfd723d79e9b80 Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Fri, 19 Jun 2009 12:32:21 -0700 Subject: recipe_sanity.bbclass: add checks for "bad" vars like RDEPENDS/RPROVIDES. Signed-off-by: Chris Larson --- classes/recipe_sanity.bbclass | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'classes') diff --git a/classes/recipe_sanity.bbclass b/classes/recipe_sanity.bbclass index 870a83f6c3..3b834c8223 100644 --- a/classes/recipe_sanity.bbclass +++ b/classes/recipe_sanity.bbclass @@ -2,6 +2,13 @@ def __note(msg, d): import bb bb.note("%s: recipe_sanity: %s" % (d.getVar("P", 1), msg)) +__recipe_sanity_badvars = "RDEPENDS RPROVIDES" +def bad_vars(cfgdata, d): + for var in d.getVar("__recipe_sanity_badvars", 1).split(): + val = d.getVar(var, 0) + if val and val != cfgdata.get(var): + __note("%s should not be set, but is set to '%s'" % (var, val), d) + __recipe_sanity_reqvars = "DESCRIPTION" __recipe_sanity_reqdiffvars = "LICENSE" def req_vars(cfgdata, d): @@ -130,6 +137,7 @@ python do_recipe_sanity () { can_remove_others(p, cfgdata, d) var_renames_overwrite(cfgdata, d) req_vars(cfgdata, d) + bad_vars(cfgdata, d) } do_recipe_sanity[nostamp] = "1" #do_recipe_sanity[recrdeptask] = "do_recipe_sanity" -- cgit v1.2.3 From 715ccad5fe7ebf50661b8787a17091a76474a5fa Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Fri, 19 Jun 2009 12:48:28 -0700 Subject: recipe_sanity.bbclass: only check RPROVIDES/RDEPENDS in target recipes. Signed-off-by: Chris Larson --- classes/recipe_sanity.bbclass | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'classes') diff --git a/classes/recipe_sanity.bbclass b/classes/recipe_sanity.bbclass index 3b834c8223..29f4a8fada 100644 --- a/classes/recipe_sanity.bbclass +++ b/classes/recipe_sanity.bbclass @@ -2,9 +2,14 @@ def __note(msg, d): import bb bb.note("%s: recipe_sanity: %s" % (d.getVar("P", 1), msg)) -__recipe_sanity_badvars = "RDEPENDS RPROVIDES" -def bad_vars(cfgdata, d): - for var in d.getVar("__recipe_sanity_badvars", 1).split(): +__recipe_sanity_badtargetvars = "RDEPENDS RPROVIDES" +def bad_target_vars(cfgdata, d): + import bb.data + if bb.data.inherits_class("native", d) or \ + bb.data.inherits_class("cross", d): + return + + for var in d.getVar("__recipe_sanity_badtargetvars", 1).split(): val = d.getVar(var, 0) if val and val != cfgdata.get(var): __note("%s should not be set, but is set to '%s'" % (var, val), d) @@ -137,7 +142,7 @@ python do_recipe_sanity () { can_remove_others(p, cfgdata, d) var_renames_overwrite(cfgdata, d) req_vars(cfgdata, d) - bad_vars(cfgdata, d) + bad_target_vars(cfgdata, d) } do_recipe_sanity[nostamp] = "1" #do_recipe_sanity[recrdeptask] = "do_recipe_sanity" -- cgit v1.2.3 From abbbb26e6ad384278a620f3b4c2e85c235c6ccc5 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Sat, 20 Jun 2009 19:31:33 +0200 Subject: image bbclass: fix logic buglet in lingua code --- classes/image.bbclass | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'classes') diff --git a/classes/image.bbclass b/classes/image.bbclass index 0d798fa7db..864230bc91 100644 --- a/classes/image.bbclass +++ b/classes/image.bbclass @@ -243,8 +243,8 @@ if [ -e ${IMAGE_ROOTFS}/usr/bin/opkg-cl ] ; then ${OPKG} update ${OPKG} list_installed | awk '{print $1}' |sort | uniq > /tmp/installed-packages - for i in $(cat /tmp/installed-packages) ; do - for translation in ${IMAGE_LINGUAS}; do + for i in $(cat /tmp/installed-packages | grep -v locale) ; do + for translation in ${IMAGE_LINGUAS} $(echo ${IMAGE_LINGUAS} | awk -F_ '{print $1}'); do echo ${i}-locale-${translation} done done | sort | uniq > /tmp/wanted-locale-packages @@ -252,9 +252,8 @@ if [ -e ${IMAGE_ROOTFS}/usr/bin/opkg-cl ] ; then ${OPKG} list | awk '{print $1}' |grep locale |sort | uniq > /tmp/available-locale-packages cat /tmp/wanted-locale-packages /tmp/available-locale-packages | sort | uniq -d > /tmp/pending-locale-packages - cat /tmp/installed-packages /tmp/pending-locale-packages | grep locale | sort | uniq -u > /tmp/translation-list - cat /tmp/translation-list | xargs ${OPKG} -nodeps install + cat /tmp/pending-locale-packages | xargs ${OPKG} -nodeps install rm -f ${IMAGE_ROOTFS}${libdir}/opkg/lists/* for i in ${IMAGE_ROOTFS}${libdir}/opkg/info/*.preinst; do -- cgit v1.2.3 From b9ec2bc1ec50b54fc993bbb9da81c71683f1041d Mon Sep 17 00:00:00 2001 From: Lynn Lin Date: Sun, 21 Jun 2009 18:15:06 +0800 Subject: rootfs_deb: Update IMAGE_ROOTFS variable usage to be consistent update IMAGE_ROOTFS variable to fix inconsistent use of IMAGE_ROOTFS variable content in by apt-native after the changes introducd in 2343808f7386cbd4c7b43f1b24e65e173f5ddf15. This commit changed IMAGE_ROOTFS from "${TMPDIR}/rootfs" to "${TMPDIR}/rootfs/${PN}" and that caused IMAGE_ROOTFS to expand to ${TMPDIR}/rootfs/apt-native in apt.conf.sample, however rootfs_deb.class uses apt.conf.sample to generate apt-rootfs.conf and here here IMAGE_ROOTFS is different from that in apt-native package. Acked-by: Tom Rini --- classes/rootfs_deb.bbclass | 2 ++ 1 file changed, 2 insertions(+) (limited to 'classes') diff --git a/classes/rootfs_deb.bbclass b/classes/rootfs_deb.bbclass index 82220661f3..dc2b2cb02c 100644 --- a/classes/rootfs_deb.bbclass +++ b/classes/rootfs_deb.bbclass @@ -44,6 +44,8 @@ fakeroot rootfs_deb_do_rootfs () { cat "${STAGING_ETCDIR_NATIVE}/apt/apt.conf.sample" \ | sed -e 's#Architecture ".*";#Architecture "${DPKG_ARCH}";#' \ + | sed -e 's#status ".*";#status "${IMAGE_ROOTFS}/var/dpkg/status";#' \ + | sed -e 's#DPkg::Options {".*"};#DPkg::Options {"--root=${IMAGE_ROOTFS}";"--admindir=${IMAGE_ROOTFS}/var/dpkg";"--force-all";"--no-debsig"};#' \ > "${STAGING_ETCDIR_NATIVE}/apt/apt-rootfs.conf" export APT_CONFIG="${STAGING_ETCDIR_NATIVE}/apt/apt-rootfs.conf" -- cgit v1.2.3 From 614b2f8ee4e1fe6022679ea7448151fd05afade2 Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Wed, 24 Jun 2009 10:13:04 -0700 Subject: packaged-staging.bbclass: use ?= for PSTAGE_PKG. Signed-off-by: Chris Larson --- classes/packaged-staging.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/packaged-staging.bbclass b/classes/packaged-staging.bbclass index bd7b9ea398..33acb90a2b 100644 --- a/classes/packaged-staging.bbclass +++ b/classes/packaged-staging.bbclass @@ -17,7 +17,7 @@ PSTAGE_EXTRAPATH ?= "/${OELAYOUT_ABI}/${DISTRO_PR}/" PSTAGE_PKGPATH = "${DISTRO}${PSTAGE_EXTRAPATH}" PSTAGE_PKGPN = "${@bb.data.expand('staging-${PN}-${MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}', d).replace('_', '-')}" PSTAGE_PKGNAME = "${PSTAGE_PKGPN}_${PSTAGE_PKGVERSION}_${PSTAGE_PKGARCH}.ipk" -PSTAGE_PKG = "${DEPLOY_DIR_PSTAGE}/${PSTAGE_PKGPATH}/${PSTAGE_PKGNAME}" +PSTAGE_PKG ?= "${DEPLOY_DIR_PSTAGE}/${PSTAGE_PKGPATH}/${PSTAGE_PKGNAME}" PSTAGE_NATIVEDEPENDS = "\ shasum-native \ -- cgit v1.2.3 From 151de3a580e0d8a28125b880293f82abf468f2a2 Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Thu, 14 May 2009 09:30:35 -0700 Subject: bitbake.conf, base.bbclass: Changed build config summary header to be a variable. Default in bitbake.conf for BUILDCFG_HEADER is "Build Configuration". This lets distributions make their builds ever so slightly prettier :) Signed-off-by: Chris Larson Acked-by: Marcin Juszkiewicz --- classes/base.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/base.bbclass b/classes/base.bbclass index 116605fff8..bc50c67d4b 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -923,7 +923,7 @@ python base_eventhandler() { bb.data.setVar( 'BB_VERSION', bb.__version__, e.data ) statusvars = bb.data.getVar("BUILDCFG_VARS", e.data, 1).split() 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) + statusmsg = "\n%s\n%s\n" % (bb.data.getVar("BUILDCFG_HEADER", e.data, 1), "\n".join(statuslines)) print statusmsg needed_vars = bb.data.getVar("BUILDCFG_NEEDEDVARS", e.data, 1).split() -- cgit v1.2.3