summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
Diffstat (limited to 'classes')
-rw-r--r--classes/amend.bbclass29
-rw-r--r--classes/base.bbclass25
-rw-r--r--classes/distutils-common-base.bbclass2
-rw-r--r--classes/efl.bbclass4
-rw-r--r--classes/gnome.bbclass2
-rw-r--r--classes/icecc.bbclass5
-rw-r--r--classes/kernel.bbclass2
-rw-r--r--classes/package_dbg.bbclass8
-rw-r--r--classes/package_deb.bbclass19
-rw-r--r--classes/packaged-staging.bbclass13
-rw-r--r--classes/recipe_sanity.bbclass10
11 files changed, 82 insertions, 37 deletions
diff --git a/classes/amend.bbclass b/classes/amend.bbclass
new file mode 100644
index 0000000000..bcb93d4e75
--- /dev/null
+++ b/classes/amend.bbclass
@@ -0,0 +1,29 @@
+# Allows tweaks to be amended to a recipe via a .inc in its FILESPATH
+#
+# Simply drop amend.inc into an appropriate place in a recipe's FILESPATH and
+# it'll be parsed in after the recipe itself is.
+#
+# Copyright (c) 2009 MontaVista Software, Inc. All rights reserved.
+#
+# Released under the MIT license (see LICENSE.MIT for the terms)
+
+python () {
+ import bb, os
+
+ filespath = d.getVar("FILESPATH", 1).split(":")
+ amendfiles = [os.path.join(fpath, "amend.inc")
+ for fpath in filespath]
+
+ # Adding all amend.incs that can exist to the __depends, to ensure that
+ # creating one of them invalidates the bitbake cache. Note that it
+ # requires a fix in bitbake. Without the bitbake fix, the cache will be
+ # completely invalidated on every bitbake execution.
+ depends = d.getVar("__depends", 0) or []
+ d.setVar("__depends", depends + [(file, 0) for file in amendfiles if not os.path.exists(file)])
+
+ existing = (file for file in amendfiles if os.path.exists(file))
+ try:
+ bb.parse.handle(existing.next(), d, 1)
+ except StopIteration:
+ pass
+}
diff --git a/classes/base.bbclass b/classes/base.bbclass
index 384a67d3d6..9a242720e7 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -151,9 +151,27 @@ def base_chk_file(parser, pn, pv, src_uri, localpath, data):
file.write("[%s]\nmd5=%s\nsha256=%s\n\n" % (src_uri, md5data, shadata))
file.close()
+
+ from string import maketrans
+ trtable = maketrans("", "")
+ uname = src_uri.split("/")[-1].translate(trtable, "-+._")
+
+ try:
+ ufile = open("%s/%s.sum" % (bb.data.getVar("TMPDIR", data, 1), uname), "wt")
+ except:
+ return False
+
+ if not ufile:
+ raise Exception("Creating %s.sum failed" % uname)
+
+ ufile.write("SRC_URI = \"%s;name=%s\"\nSRC_URI[%s.md5sum] = \"%s\"\nSRC_URI[%s.sha256sum] = \"%s\"\n" % (src_uri, uname, uname, md5data, uname, shadata))
+ ufile.close()
+
if not bb.data.getVar("OE_STRICT_CHECKSUMS",data, True):
bb.note("This package has no entry in checksums.ini, please add one")
bb.note("\n[%s]\nmd5=%s\nsha256=%s" % (src_uri, md5data, shadata))
+ bb.note("This package has no checksums in corresponding recipe, please add")
+ bb.note("SRC_URI = \"%s;name=%s\"\nSRC_URI[%s.md5sum] = \"%s\"\nSRC_URI[%s.sha256sum] = \"%s\"\n" % (src_uri, uname, uname, md5data, uname, shadata))
return True
else:
bb.note("Missing checksum")
@@ -226,14 +244,17 @@ def base_version_less_or_equal(variable, checkvalue, truevalue, falsevalue, d):
return falsevalue
def base_contains(variable, checkvalues, truevalue, falsevalue, d):
+ val = bb.data.getVar(variable,d,1)
+ if not val:
+ return falsevalue
matches = 0
if type(checkvalues).__name__ == "str":
checkvalues = [checkvalues]
for value in checkvalues:
- if bb.data.getVar(variable,d,1).find(value) != -1:
+ if val.find(value) != -1:
matches = matches + 1
if matches == len(checkvalues):
- return truevalue
+ return truevalue
return falsevalue
def base_both_contain(variable1, variable2, checkvalue, d):
diff --git a/classes/distutils-common-base.bbclass b/classes/distutils-common-base.bbclass
index 01bf9eaeba..87578b773f 100644
--- a/classes/distutils-common-base.bbclass
+++ b/classes/distutils-common-base.bbclass
@@ -23,7 +23,7 @@ FILES_${PN}-dev += "\
${libdir}/pkgconfig \
${libdir}/${PYTHON_DIR}/site-packages/*.la \
"
-FILES_${PN}-dbg = "\
+FILES_${PN}-dbg += "\
${libdir}/${PYTHON_DIR}/site-packages/.debug \
${libdir}/${PYTHON_DIR}/site-packages/*/.debug \
${libdir}/${PYTHON_DIR}/site-packages/*/*/.debug \
diff --git a/classes/efl.bbclass b/classes/efl.bbclass
index 900d9c7f0d..805422fdf4 100644
--- a/classes/efl.bbclass
+++ b/classes/efl.bbclass
@@ -45,7 +45,9 @@ FILES_${PN}-dev += "${bindir}/${PN}-config \
${libdir}/lib*.la \
${libdir}/*.so \
${libdir}/${PN}/*.la \
- ${libdir}/${PN}/*/*.la"
+ ${libdir}/${PN}/*/*.la \
+ ${datadir}/${PN}/edje_externals \
+"
FILES_${PN}-static += "${libdir}/${PN}/*.a \
${libdir}/${PN}/*/*.a \
diff --git a/classes/gnome.bbclass b/classes/gnome.bbclass
index cb03650b48..7e26e03104 100644
--- a/classes/gnome.bbclass
+++ b/classes/gnome.bbclass
@@ -4,7 +4,7 @@ def gnome_verdir(v):
return "%s.%s" % (m.group(1), m.group(2))
SECTION ?= "x11/gnome"
-SRC_URI = "${GNOME_MIRROR}/${PN}/${@gnome_verdir("${PV}")}/${PN}-${PV}.tar.bz2"
+SRC_URI = "${GNOME_MIRROR}/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.bz2;name=archive"
DEPENDS += "gnome-common"
diff --git a/classes/icecc.bbclass b/classes/icecc.bbclass
index 4962fcb7e6..8e539db0b8 100644
--- a/classes/icecc.bbclass
+++ b/classes/icecc.bbclass
@@ -60,7 +60,6 @@ def create_cross_env(bb,d):
os.stat(os.path.join(ice_dir, target_sys, 'lib', 'libstdc++.so'))
os.stat(os.path.join(ice_dir, target_sys, 'bin', 'g++'))
except: # no cross compiler built yet
- bb.error('no cross compiler built yet?')
return ""
VERSION = icc_determine_gcc_version( os.path.join(ice_dir,target_sys,"bin","g++") )
@@ -157,7 +156,6 @@ def create_cross_kernel_env(bb,d):
try:
os.stat(os.path.join(ice_dir, 'bin', kernel_cc))
except: # no cross compiler built yet
- bb.error('no kernel cross compiler built yet')
return ""
VERSION = icc_determine_gcc_version( os.path.join(ice_dir,"bin",kernel_cc) )
@@ -259,7 +257,8 @@ def icc_path(bb,d):
for black in package_blacklist:
if black in package_tmp:
bb.note(package_tmp, ' found in blacklist, disable icecc')
- bb.data.setVar("PARALLEL_MAKE" , "", d)
+ fallback_parallel = bb.data.getVar('ICECC_FALLBACK_PARALLEL', d) or ""
+ bb.data.setVar("PARALLEL_MAKE", fallback_parallel, d)
return ""
prefix = bb.data.expand('${HOST_PREFIX}', d)
diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass
index 53ea252b0e..39ff928e6a 100644
--- a/classes/kernel.bbclass
+++ b/classes/kernel.bbclass
@@ -538,10 +538,12 @@ MODULES_IMAGE_BASE_NAME ?= modules-${PV}-${PR}-${MACHINE}
do_deploy() {
install -d ${DEPLOY_DIR_IMAGE}
install -m 0644 ${KERNEL_OUTPUT} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.bin
+ package_stagefile_shell ${S}/${KERNEL_OUTPUT}
package_stagefile_shell ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.bin
if [ -d "${PKGD}/lib" ]; then
fakeroot tar -cvzf ${DEPLOY_DIR_IMAGE}/${MODULES_IMAGE_BASE_NAME}.tgz -C ${PKGD} lib
+ package_stagefile_shell ${DEPLOY_DIR_IMAGE}/${MODULES_IMAGE_BASE_NAME}.tgz
fi
cd ${DEPLOY_DIR_IMAGE}
diff --git a/classes/package_dbg.bbclass b/classes/package_dbg.bbclass
index 39dceaf9b3..19ab04ff39 100644
--- a/classes/package_dbg.bbclass
+++ b/classes/package_dbg.bbclass
@@ -8,10 +8,6 @@
inherit package
-PACKAGE_DBG_DIRS = "${bindir} ${sbindir} \
- ${libexecdir} ${libdir} \
- ${base_bindir} ${base_sbindir} \
- ${base_libdir}"
PACKAGE_DBG_DESC = "Debugging files for %s"
PACKAGE_DBG_EXCLUDE = "${PN}-locale* ${PN}-doc ${PN}-dev *-dbg"
@@ -101,15 +97,13 @@ python package_do_dbg() {
add_dbg_packages(d)
packages = d.getVar("PACKAGES", True).split()
desc = d.getVar("PACKAGE_DBG_DESC", True)
- debug_dirs = d.getVar("PACKAGE_DBG_DIRS", True).split()
done = []
for pkgname in tuple(packages):
files = tuple(__package_get_files(pkgname, d))
dbg = [join(dirname(file), ".debug", basename(file))
for file in files
- if not file in done and
- any(file.startswith(dir) for dir in debug_dirs)]
+ if not file in done]
done.extend(files)
if dbg:
diff --git a/classes/package_deb.bbclass b/classes/package_deb.bbclass
index 2a9bf76a79..9fb16740d8 100644
--- a/classes/package_deb.bbclass
+++ b/classes/package_deb.bbclass
@@ -86,20 +86,12 @@ python do_package_deb () {
return
bb.mkdirhier(dvar)
- packages = bb.data.getVar('PACKAGES', d, 1)
- if not packages:
- bb.debug(1, "PACKAGES not defined, nothing to package")
- return
-
tmpdir = bb.data.getVar('TMPDIR', d, 1)
if os.access(os.path.join(tmpdir, "stamps", "DEB_PACKAGE_INDEX_CLEAN"),os.R_OK):
os.unlink(os.path.join(tmpdir, "stamps", "DEB_PACKAGE_INDEX_CLEAN"))
- if packages == []:
- bb.debug(1, "No packages; nothing to do")
- return
-
+ packages = bb.data.getVar('PACKAGES', d, 1)
for pkg in packages.split():
localdata = bb.data.createCopy(d)
pkgdest = bb.data.getVar('PKGDEST', d, 1)
@@ -268,8 +260,13 @@ python () {
}
python do_package_write_deb () {
- bb.build.exec_func("read_subpackage_metadata", d)
- bb.build.exec_func("do_package_deb", d)
+ packages = bb.data.getVar('PACKAGES', d, True)
+ if not packages:
+ bb.debug(1, "No PACKAGES defined, nothing to package")
+ return
+
+ bb.build.exec_func("read_subpackage_metadata", d)
+ bb.build.exec_func("do_package_deb", d)
}
do_package_write_deb[dirs] = "${D}"
addtask package_write_deb before do_package_write after do_package
diff --git a/classes/packaged-staging.bbclass b/classes/packaged-staging.bbclass
index 1c5c4cd531..1ede25cef0 100644
--- a/classes/packaged-staging.bbclass
+++ b/classes/packaged-staging.bbclass
@@ -288,8 +288,8 @@ packagedstaging_fastpath () {
if [ "$PSTAGING_ACTIVE" = "1" ]; then
mkdir -p ${PSTAGE_TMPDIR_STAGE}/staging/
mkdir -p ${PSTAGE_TMPDIR_STAGE}/cross/
- cp -fpPR ${SYSROOT_DESTDIR}/${STAGING_DIR}/* ${PSTAGE_TMPDIR_STAGE}/staging/ || /bin/true
- cp -fpPR ${SYSROOT_DESTDIR}/${CROSS_DIR}/* ${PSTAGE_TMPDIR_STAGE}/cross/ || /bin/true
+ cp -fpPR ${SYSROOT_DESTDIR}${STAGING_DIR}/* ${PSTAGE_TMPDIR_STAGE}/staging/ || /bin/true
+ cp -fpPR ${SYSROOT_DESTDIR}${CROSS_DIR}/* ${PSTAGE_TMPDIR_STAGE}/cross/ || /bin/true
fi
}
@@ -377,18 +377,19 @@ python do_package_stage () {
if not packaged(pkg, d):
continue
if bb.data.inherits_class('package_ipk', d):
- srcname = bb.data.expand(pkgname + "_${PV}-" + pr + "_" + arch + ".ipk", d)
+ srcname = bb.data.expand(pkgname + "_${PV}-" + pr + "${DISTRO_PR}" + "_" + arch + ".ipk", d)
srcfile = bb.data.expand("${DEPLOY_DIR_IPK}/" + arch + "/" + srcname, d)
if os.path.exists(srcfile):
destpath = ipkpath + "/" + arch + "/"
bb.mkdirhier(destpath)
+ print destpath
bb.copyfile(srcfile, destpath + srcname)
if bb.data.inherits_class('package_deb', d):
if arch == 'all':
- srcname = bb.data.expand(pkgname + "_${PV}-" + pr + "_all.deb", d)
+ srcname = bb.data.expand(pkgname + "_${PV}-" + pr + "${DISTRO_PR}" + "_all.deb", d)
else:
- srcname = bb.data.expand(pkgname + "_${PV}-" + pr + "_${DPKG_ARCH}.deb", d)
+ srcname = bb.data.expand(pkgname + "_${PV}-" + pr + "${DISTRO_PR}" + "_${DPKG_ARCH}.deb", d)
srcfile = bb.data.expand("${DEPLOY_DIR_DEB}/" + arch + "/" + srcname, d)
if os.path.exists(srcfile):
destpath = debpath + "/" + arch + "/"
@@ -399,7 +400,7 @@ python do_package_stage () {
version = bb.data.getVar('PV', d, 1)
version = version.replace('-', '+')
bb.data.setVar('RPMPV', version, d)
- srcname = bb.data.expand(pkgname + "-${RPMPV}-" + pr + ".${TARGET_ARCH}.rpm", d)
+ srcname = bb.data.expand(pkgname + "-${RPMPV}-" + pr + "${DISTRO_PR}" + ".${TARGET_ARCH}.rpm", d)
srcfile = bb.data.expand("${DEPLOY_DIR_RPM}/" + arch + "/" + srcname, d)
if os.path.exists(srcfile):
destpath = rpmpath + "/" + arch + "/"
diff --git a/classes/recipe_sanity.bbclass b/classes/recipe_sanity.bbclass
index d929da6319..9becf49384 100644
--- a/classes/recipe_sanity.bbclass
+++ b/classes/recipe_sanity.bbclass
@@ -1,16 +1,16 @@
def __note(msg, d):
bb.note("%s: recipe_sanity: %s" % (d.getVar("P", 1), msg))
-__recipe_sanity_badtargetvars = "RDEPENDS RPROVIDES"
-def bad_target_vars(cfgdata, d):
+__recipe_sanity_badruntimevars = "RDEPENDS RPROVIDES RRECOMMENDS RCONFLICTS"
+def bad_runtime_vars(cfgdata, d):
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():
+ for var in d.getVar("__recipe_sanity_badruntimevars", 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)
+ __note("%s should be %s_${PN}" % (var, var), d)
__recipe_sanity_reqvars = "DESCRIPTION"
__recipe_sanity_reqdiffvars = "LICENSE"
@@ -133,7 +133,7 @@ python do_recipe_sanity () {
can_remove_others(p, cfgdata, d)
var_renames_overwrite(cfgdata, d)
req_vars(cfgdata, d)
- bad_target_vars(cfgdata, d)
+ bad_runtime_vars(cfgdata, d)
}
do_recipe_sanity[nostamp] = "1"
#do_recipe_sanity[recrdeptask] = "do_recipe_sanity"