[oe] [RFC] granular library packaging
Koen Kooi
k.kooi at student.utwente.nl
Mon Oct 6 14:00:44 UTC 2008
Hi,
I tried to come up with a way to make splitting up library packages a
bit easier an used this in the opencv recipe:
python populate_packages_prepend () {
cv_libdir = bb.data.expand('${libdir}', d)
cv_libdir_dbg = bb.data.expand('${libdir}/.debug', d)
do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV
%s development package', extra_depends='${PN}-dev', allow_links=True)
do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV
%s development package', extra_depends='${PN}-dev')
do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s
development package', extra_depends='${PN}-dev')
do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s
library', extra_depends='', allow_links=True)
}
FILES_${PN} = "${bindir}"
FILES_${PN}-dbg += "${libdir}/.debug"
FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig"
The advantages of this:
* all libs get their own package
* .so, .a and .la files end up in the right package
* lib<foo>-dev depends on the headers in ${PN}-dev keeping the depchains
intact
The downsides:
* populate_packages_prepend runs *before* do_strip, so there's on big
-dbg package to rule them all
* doesn't handle granular pkgconfig files.
I had a chat with Richard about it and we agreed that this needs some
more thought, especially wrt depencies and granular packaging. My
motivation for splitting things is to make using gdb less space-heavy
due to pulling in a huge -dbg package that depends on extra, unneeded
libs. As I pointed out above, that is sadly the case here since do_strip
runs too late.
So, what are your opinions on splitting -dev and -dbg packages and would
something like this be acceptable to put in lib_package.bbclass?
Note that a regexp based FILES is a related, but different discussion.
regards,
Koen
More information about the Openembedded-devel
mailing list