[oe] Packaging problem.

Rob Kramer robk at starhub.net.sg
Wed Jul 18 06:54:07 UTC 2007


Hi all,


I have a problem with my homebrew image, in that it doesn't create several
packages, which results in dependency failures in do_rootfs. I'm using
bitbake 1.8 svn head.

-------------
BB>> build vides-image
SHELL: Building vides-image

<big snip>

| log_check:
Using /bulk/home/rob/oe/dev/build-epia/tmp/work/vides-image-1.0-r0/temp/log.do_rootfs.4203
as logfile
| log_check: There were error messages in the logfile
| log_check: Matched keyword: [ERR]
|
| Successfully terminated.
| Collected errors:
| ERROR: Cannot satisfy the following dependencies for task-base:
|        base-passwd update-rc.d initscripts modutils-initscripts netbase
update-alternatives update-rc.d update-rc.d tinylogin update-rc.d
sysfsutils module-init-tools acpid keymaps hdparm e2fsprogs
| ERROR: Cannot satisfy the following dependencies for task-vides-linux:
|        base-passwd initscripts netbase sysfsutils setserial tinylogin
modutils-initscripts rsync
| ERROR: Cannot satisfy the following dependencies for task-vides-base:
|        aumix bash update-rc.d ethtool rsync bzip2
-------------

On further investigation I found out that bitbake doesn't create ipk
packages for these missing deps. Let's take base-passwd; during do_package,
there's a problem:

-------------
NOTE: the following files were installed but not shipped in any package:
NOTE:   /usr/share/man/pl/man8/update-passwd.8.gz
NOTE:   /usr/share/man/man8/update-passwd.8.gz
NOTE:   /usr/share/base-passwd/passwd.master
NOTE:   /usr/share/base-passwd/group.master
NOTE:   /usr/sbin/update-passwd
NOTE:   /usr/sbin/.debug/update-passwd
<snip>
NOTE: Not creating empty archive for base-passwd-3.5.9-r2
-------------

I added a debug statement to see what it is trying to package:

-------------
package.bbclass:404

                filesvar = bb.data.getVar('FILES', localdata, 1) or ""
                files = filesvar.split()
+               bb.note("ROB: pkg: '%s', files: '%s'" % (pkg, filesvar))
                cleandirs = []
-------------

The interesting thing is that in bitbake file-mode everything works, but in
interactive mode it fails (I cleaned before each command):

-------------
[wrobbie] ~/oe/dev/build-epia> bitbake -cpackage -b
~/oe/dev/org.openembedded.dev/packages/base-passwd/base-passwd_3.5.9.bb
NOTE: package base-passwd-3.5.9: started
<snip>
NOTE: package base-passwd-3.5.9-r2: task do_install: started
NOTE: package base-passwd-3.5.9-r2: task do_install: completed
NOTE: package base-passwd-3.5.9-r2: task do_package: started
NOTE: ROB: pkg: 'base-passwd-dbg',
files: '/usr/bin/.debug /usr/sbin/.debug /usr/libexec/.debug /usr/lib/.debug /bin/.debug /sbin/.debug /lib/.debug /usr/lib/base-passwd/.debug /usr/lib/matchbox-panel/.debug'
NOTE: ROB: pkg: 'base-passwd',
files: '/usr/bin/* /usr/sbin/* /usr/libexec/* /usr/lib/lib*.so.* /etc /usr/com /var /bin/* /sbin/* /lib/*.so* /usr/share/base-passwd /usr/lib/base-passwd/* /usr/share/pixmaps /usr/share/applications /usr/share/idl /usr/share/omf /usr/share/sounds /usr/lib/bonobo/servers'
-------------


-------------
BB>> build base-passwd
SHELL: This command needs to parse bbfiles...
NOTE: Handling BitBake files: \ (3891/3891) [100 %]
NOTE: Parsing finished. 3680 cached, 0 parsed, 211 skipped, 783 masked.

SHELL: Building base-passwd
NOTE: Resolving missing task queue dependencies
NOTE: Preparing runqueue
NOTE: Executing runqueue
NOTE: Running task 218 of 229 (ID:
9, /home/rob/oe/dev/org.openembedded.dev/packages/base-passwd/base-passwd_3.5.9.bb,
do_fetch)

<snip>

NOTE: Running task 225 of 229 (ID:
1, /home/rob/oe/dev/org.openembedded.dev/packages/base-passwd/base-passwd_3.5.9.bb,
do_install)
NOTE: package base-passwd-3.5.9: started
NOTE: package base-passwd-3.5.9-r2: task do_install: started
NOTE: package base-passwd-3.5.9-r2: task do_install: completed
NOTE: package base-passwd-3.5.9: completed
NOTE: Running task 226 of 229 (ID:
5, /home/rob/oe/dev/org.openembedded.dev/packages/base-passwd/base-passwd_3.5.9.bb,
do_package)
NOTE: package base-passwd-3.5.9: started
NOTE: package base-passwd-3.5.9-r2: task do_package: started
NOTE: ROB: pkg: 'base-passwd-dbg', files: ''
NOTE: ROB: pkg: 'base-passwd', files: ''
NOTE: ROB: pkg: 'base-passwd-doc', files: ' /usr/share/doc'
NOTE: ROB: pkg: 'base-passwd-dev', files: ''
NOTE: ROB: pkg: 'base-passwd-locale', files: ''
NOTE: the following files were installed but not shipped in any package:
NOTE:   /usr/share/man/pl/man8/update-passwd.8.gz
NOTE:   /usr/share/man/man8/update-passwd.8.gz
NOTE:   /usr/share/base-passwd/passwd.master
NOTE:   /usr/share/base-passwd/group.master
NOTE:   /usr/sbin/update-passwd
NOTE:   /usr/sbin/.debug/update-passwd
NOTE: package base-passwd-3.5.9-r2: task do_package: completed
NOTE: package base-passwd-3.5.9: completed
NOTE: Running task 227 of 229 (ID:
7, /home/rob/oe/dev/org.openembedded.dev/packages/base-passwd/base-passwd_3.5.9.bb,
do_package_write)
NOTE: package base-passwd-3.5.9: started
NOTE: package base-passwd-3.5.9-r2: task do_package_write: started
NOTE: Not creating empty archive for base-passwd-dbg-3.5.9-r2
NOTE: Not creating empty archive for base-passwd-3.5.9-r2
Packaged contents of base-passwd-doc
into /bulk/home/rob/oe/dev/build-epia/tmp/deploy/ipk/i586/base-passwd-doc_3.5.9-r2_i586.ipk
NOTE: Not creating empty archive for base-passwd-dev-3.5.9-r2
NOTE: Not creating empty archive for base-passwd-locale-3.5.9-r2
NOTE: package base-passwd-3.5.9-r2: task do_package_write: completed
NOTE: package base-passwd-3.5.9: completed
-------------


So, it seems the FILES variable in package.bbclass:404 is not set properly
in the case of interactive mode. I can't find where FILES is set anyway;
the rest of the class uses FILES_${PN}.

Any hints at what I should be looking at?

Cheers!

    Rob





More information about the Openembedded-devel mailing list