package.bbclass: Add PACKAGESPLITFUNCS variable

Prepending to populate_packages is rather ugly and means its hard to trace
errors and also profiling informaiton is summed together in one function.

This patch starts to split out the prepends to become separate functions
to avoid these issues. This is generally a neater way to write functions
than prepending to where there can sometimes be variable scope issues
and we've been bitten by whitespace issues in the past.

(From OE-Core rev: 4f9963d1d82ee896fe9491d6a8b32be42cd06f14)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2013-02-03 17:31:30 +00:00
parent 1c906e7643
commit 4cae28e309
4 changed files with 15 additions and 3 deletions

View File

@ -301,7 +301,9 @@ if [ x"$D" = "x" ]; then
fi
}
python populate_packages_prepend () {
PACKAGESPLITFUNCS_prepend = "split_kernel_packages "
python split_kernel_packages () {
import re
modinfoexp = re.compile("([^=]+)=(.*)")

View File

@ -1759,6 +1759,9 @@ PACKAGEBUILDPKGD ?= " \
${PACKAGE_PREPROCESS_FUNCS} \
split_and_strip_files \
fixup_perms \
"
# Functions which split PKGD up into separate packages
PACKAGESPLITFUNCS ?= " \
package_do_split_locales \
populate_packages"
# Functions which process metadata based on split packages
@ -1798,6 +1801,9 @@ python do_package () {
for f in (d.getVar('PACKAGEBUILDPKGD', True) or '').split():
bb.build.exec_func(f, d)
for f in (d.getVar('PACKAGESPLITFUNCS', True) or '').split():
bb.build.exec_func(f, d)
# Build global list of files in each split package
global pkgfiles
pkgfiles = {}

View File

@ -282,7 +282,9 @@ python perform_packagecopy_append () {
bb.warn('%s: Unable to resolve dangling symlink: %s' % (pn, alt_target))
}
python populate_packages_prepend () {
PACKAGESPLITFUNCS_prepend = "populate_packages_updatealternatives "
python populate_packages_updatealternatives () {
pn = d.getVar('BPN', True)
# Do actual update alternatives processing

View File

@ -47,7 +47,9 @@ python __anonymous() {
update_rc_after_parse(d)
}
python populate_packages_prepend () {
PACKAGESPLITFUNCS_prepend = "populate_packages_updatercd "
python populate_packages_updatercd () {
def update_rcd_package(pkg):
bb.debug(1, 'adding update-rc.d calls to postinst/postrm for %s' % pkg)
"""