[oe] RFC: Bitbake dependency graph output

Richard Purdie rpurdie at rpsys.net
Mon Nov 20 00:36:28 UTC 2006


One of the last tasks on my todo list before I look at the GUI is the
dependency graph generation. Currently this is in self contained code
which works but has odd bugs. I'd like to convert it to use the new
taskData and runqueue data handling routines. The main advantage of
doing this is consistency - I want the graph to actually match what
bitbake does and for that we only want one code path :). 

Currently we can graph DEPENDS and RDEPENDS. Bitbake has changed and now
works at the task level. I'm wondering if outputting DEPENDS and
RDEPENDS data makes sense any longer or should we should output the
actual computed task dependencies?

As an example, the task based output would look like:

"gnu-config-native.do_populate_staging" [label="gnu-config-native do_populate_staging\n0.1+cvs20050701-r4\n/usr/ohoe-max/meta/packages/gnu-config/gnu-config-native_20050701.bb"]
"gnu-config-native.do_populate_staging" -> "gnu-config-native.do_package_write"
"gnu-config-native.do_package_write" [label="gnu-config-native do_package_write\n0.1+cvs20050701-r4\n/usr/ohoe-max/meta/packages/gnu-config/gnu-config-native_20050701.bb"]
"gnu-config-native.do_package_write" -> "gnu-config-native.do_package"
"m4-native.do_unpack" [label="m4-native do_unpack\n1.4.2-r0\n/usr/ohoe-max/meta/packages/m4/m4-native_1.4.2.bb"]
"m4-native.do_unpack" -> "m4-native.do_fetch"
"m4-native.do_fetch" [label="m4-native do_fetch\n1.4.2-r0\n/usr/ohoe-max/meta/packages/m4/m4-native_1.4.2.bb"]
"gnu-config-native.do_compile" [label="gnu-config-native do_compile\n0.1+cvs20050701-r4\n/usr/ohoe-max/meta/packages/gnu-config/gnu-config-native_20050701.bb"]
"gnu-config-native.do_compile" -> "gnu-config-native.do_configure"
"gnu-config-native.do_install" [label="gnu-config-native do_install\n0.1+cvs20050701-r4\n/usr/ohoe-max/meta/packages/gnu-config/gnu-config-native_20050701.bb"]
"gnu-config-native.do_install" -> "gnu-config-native.do_compile"
"gnu-config-native.do_patch" [label="gnu-config-native do_patch\n0.1+cvs20050701-r4\n/usr/ohoe-max/meta/packages/gnu-config/gnu-config-native_20050701.bb"]
"gnu-config-native.do_patch" -> "gnu-config-native.do_unpack"
"gnu-config-native.do_configure" [label="gnu-config-native do_configure\n0.1+cvs20050701-r4\n/usr/ohoe-max/meta/packages/gnu-config/gnu-config-native_20050701.bb"]
"gnu-config-native.do_configure" -> "gnu-config-native.do_unpack"
"gnu-config-native.do_configure" -> "gnu-config-native.do_patch"
"gnu-config-native.do_package" [label="gnu-config-native do_package\n0.1+cvs20050701-r4\n/usr/ohoe-max/meta/packages/gnu-config/gnu-config-native_20050701.bb"]
"gnu-config-native.do_package" -> "gnu-config-native.do_install"
"gnu-config-native.do_unpack" [label="gnu-config-native do_unpack\n0.1+cvs20050701-r4\n/usr/ohoe-max/meta/packages/gnu-config/gnu-config-native_20050701.bb"]
"gnu-config-native.do_unpack" -> "gnu-config-native.do_fetch"
"gnu-config-native.do_fetch" [label="gnu-config-native do_fetch\n0.1+cvs20050701-r4\n/usr/ohoe-max/meta/packages/gnu-config/gnu-config-native_20050701.bb"]

The RFCs:

* Do we need DEPENDS/RDEPENDS or does the above replace that?
* What should we set label to?
* Can we improve the above formatting?
* Should -I IGNORED_DOT_DEPS become a more general commandline option to
be appended to ASSUME_PROVIDED (which my replacement graph code does
internally atm)? Do we want this to support regexps?

http://www.rpsys.net/openzaurus/temp/bitbake_depgraph.patch is the patch
I have atm. 

Regards,

Richard







More information about the Openembedded-devel mailing list