aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard@openedhand.com>2007-04-03 11:31:02 +0000
committerRichard Purdie <richard@openedhand.com>2007-04-03 11:31:02 +0000
commit409335beaede58ed792030f9da0fcea39f32f1c7 (patch)
tree2d25f86c2c48caef8a9ef8f301b423ae7b0ee81e
parentbd0ca262c95d28dc45305efbc03e53607e9c9a0a (diff)
downloadopenembedded-core-contrib-409335beaede58ed792030f9da0fcea39f32f1c7.tar.gz
classes: Rework core dependencies to work properly at the task level
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@1427 311d38ba-8fff-0310-9ca6-ca027cbcb966
-rw-r--r--meta/classes/base.bbclass6
-rw-r--r--meta/classes/image.bbclass22
-rw-r--r--meta/classes/insane.bbclass2
-rw-r--r--meta/classes/package.bbclass16
-rw-r--r--meta/classes/package_deb.bbclass4
-rw-r--r--meta/classes/package_ipk.bbclass4
-rw-r--r--meta/classes/package_tar.bbclass2
-rw-r--r--meta/classes/patch.bbclass2
-rw-r--r--meta/classes/rootfs_deb.bbclass4
-rw-r--r--meta/classes/rootfs_ipk.bbclass3
10 files changed, 39 insertions, 26 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 3cff42c138..4a1b09b1a4 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -12,12 +12,6 @@ def base_dep_prepend(d):
# INHIBIT_DEFAULT_DEPS doesn't apply to the patch command. Whether or not
# we need that built is the responsibility of the patch function / class, not
# the application.
- patchdeps = bb.data.getVar("PATCHTOOL", d, 1)
- if patchdeps:
- patchdeps = "%s-native" % patchdeps
- if not patchdeps in bb.data.getVar("PROVIDES", d, 1):
- deps = patchdeps
-
if not bb.data.getVar('INHIBIT_DEFAULT_DEPS', d):
if (bb.data.getVar('HOST_SYS', d, 1) !=
bb.data.getVar('BUILD_SYS', d, 1)):
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index d8c6ccff21..edb04029b2 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -13,19 +13,21 @@ USE_DEVFS ?= "0"
PID = "${@os.getpid()}"
-DEPENDS += "makedevs-native"
PACKAGE_ARCH = "${MACHINE_ARCH}"
-def get_image_deps(d):
- import bb
- str = ""
- for type in (bb.data.getVar('IMAGE_FSTYPES', d, 1) or "").split():
- deps = bb.data.getVar('IMAGE_DEPENDS_%s' % type, d) or ""
- if deps:
- str += " %s" % deps
- return str
+do_rootfs[depends] += "makedevs-native:do_populate_staging fakeroot-native:do_populate_staging"
-DEPENDS += "${@get_image_deps(d)}"
+python () {
+ import bb
+
+ deps = bb.data.getVarFlag('do_rootfs', 'depends', d) or ""
+ for type in (bb.data.getVar('IMAGE_FSTYPES', d, 1) or "").split():
+ for dep in ((bb.data.getVar('IMAGE_DEPENDS_%s' % type, d) or "").split() or []):
+ deps += " %s:do_populate_staging" % dep
+ for dep in (bb.data.getVar('EXTRA_IMAGEDEPENDS', d, 1) or "").split():
+ deps += " %s:do_populate_staging" % dep
+ bb.data.setVarFlag('do_rootfs', 'depends', deps, d)
+}
IMAGE_DEVICE_TABLE ?= "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-minimal.txt')}"
IMAGE_POSTPROCESS_COMMAND ?= ""
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 4bceaaed82..eef4f72678 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -20,7 +20,7 @@
# We play a special package function
inherit package
-PACKAGE_DEPENDS += "pax-utils-native"
+do_package[depends] += "pax-utils-native:do_populate_staging"
PACKAGEFUNCS += " do_package_qa "
def package_qa_check_rpath(file,name,d):
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 21fe94e94e..0919f302b9 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -116,8 +116,18 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst
bb.data.setVar('PACKAGES', ' '.join(packages), d)
-PACKAGE_DEPENDS ?= "file-native fakeroot-native"
-DEPENDS_prepend =+ "${PACKAGE_DEPENDS} "
+do_package[depends] = "file-native:do_populate_staging"
+
+python () {
+ import bb
+
+ if bb.data.getVar('PACKAGES', d, 1) != '':
+ deps = bb.data.getVarFlag('do_package_write', 'depends', d) or ""
+ for dep in (bb.data.getVar('PACKAGE_EXTRA_DEPENDS', d, 1) or "").split():
+ deps += " %s:do_populate_staging" % dep
+ bb.data.setVarFlag('do_package_write', 'depends', deps, d)
+}
+
# file(1) output to match to consider a file an unstripped executable
FILE_UNSTRIPPED_MATCH ?= "not stripped"
#FIXME: this should be "" when any errors are gone!
@@ -126,7 +136,7 @@ IGNORE_STRIP_ERRORS ?= "1"
runstrip() {
# Function to strip a single file, called from RUNSTRIP in populate_packages below
# A working 'file' (one which works on the target architecture)
- # is necessary for this stuff to work, hence the addition to PACKAGES_DEPENDS
+ # is necessary for this stuff to work, hence the addition to do_package[depends]
local ro st
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass
index 18cba66da0..907fbd9ebf 100644
--- a/meta/classes/package_deb.bbclass
+++ b/meta/classes/package_deb.bbclass
@@ -1,5 +1,7 @@
inherit package
-DEPENDS_prepend="${@["dpkg-native ", ""][(bb.data.getVar('PACKAGES', d, 1) == '')]}"
+
+PACKAGE_EXTRA_DEPENDS += "dpkg-native fakeroot-native"
+
BOOTSTRAP_EXTRA_RDEPENDS += "dpkg"
DISTRO_EXTRA_RDEPENDS += "dpkg"
PACKAGE_WRITE_FUNCS += "do_package_deb"
diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass
index 54fecf6659..334148219b 100644
--- a/meta/classes/package_ipk.bbclass
+++ b/meta/classes/package_ipk.bbclass
@@ -1,5 +1,7 @@
inherit package
-DEPENDS_prepend="${@["ipkg-utils-native ", ""][(bb.data.getVar('PACKAGES', d, 1) == '')]}"
+
+PACKAGE_EXTRA_DEPENDS += "ipkg-utils-native fakeroot-native"
+
BOOTSTRAP_EXTRA_RDEPENDS += "ipkg-collateral ipkg ipkg-link"
DISTRO_EXTRA_RDEPENDS += "ipkg-collateral ipkg ipkg-link"
PACKAGE_WRITE_FUNCS += "do_package_ipk"
diff --git a/meta/classes/package_tar.bbclass b/meta/classes/package_tar.bbclass
index 81ae0f84a0..17216a86f4 100644
--- a/meta/classes/package_tar.bbclass
+++ b/meta/classes/package_tar.bbclass
@@ -1,5 +1,7 @@
inherit package
+PACKAGE_EXTRA_DEPENDS += "tar-native"
+
PACKAGE_WRITE_FUNCS += "do_package_tar"
IMAGE_PKGTYPE ?= "tar"
diff --git a/meta/classes/patch.bbclass b/meta/classes/patch.bbclass
index e051b0344a..b794f81593 100644
--- a/meta/classes/patch.bbclass
+++ b/meta/classes/patch.bbclass
@@ -391,6 +391,8 @@ def patch_init(d):
addtask patch after do_unpack
do_patch[dirs] = "${WORKDIR}"
+do_patch[depends] = "${PATCHTOOL}-native:do_populate_staging"
+
python patch_do_patch() {
import re
import bb.fetch
diff --git a/meta/classes/rootfs_deb.bbclass b/meta/classes/rootfs_deb.bbclass
index 3cd1d0d04d..3989dc333b 100644
--- a/meta/classes/rootfs_deb.bbclass
+++ b/meta/classes/rootfs_deb.bbclass
@@ -1,5 +1,5 @@
-DEPENDS_prepend = "dpkg-native apt-native fakeroot-native "
-DEPENDS_append = " ${EXTRA_IMAGEDEPENDS}"
+
+do_rootfs[depends] += "dpkg-native:do_populate_staging apt-native:do_populate_staging"
fakeroot rootfs_deb_do_rootfs () {
set +e
diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass
index 28296a7e86..0e38579cd4 100644
--- a/meta/classes/rootfs_ipk.bbclass
+++ b/meta/classes/rootfs_ipk.bbclass
@@ -5,8 +5,7 @@
# See image.bbclass for a usage of this.
#
-DEPENDS_prepend="ipkg-native ipkg-utils-native fakeroot-native "
-DEPENDS_append=" ${EXTRA_IMAGEDEPENDS}"
+do_rootfs[depends] += "ipkg-native:do_populate_staging ipkg-utils-native:do_populate_staging"
IPKG_ARGS = "-f ${T}/ipkg.conf -o ${IMAGE_ROOTFS}"