[oe] [PATCH] opencv: Fix broken deps for opencv meta package
Jacob Stiffler
j-stiffler at ti.com
Wed May 4 15:15:41 UTC 2016
* The opencv meta package's RDEPENDS list is blindly populated with
all non *-dev, *-dbg, and *-doc packages
* This includes the non-existent opencv-locale package which is added
to the list by default in oe-core/meta/conf/bitbake.conf
* This issue was hidden as late as jethro as the distutils class was
overwriting the PACKAGES list
* Therefore add opencv-locale to the opencv meta package blacklist,
and filter out all packages which contain "locale" in the package
name to be safe.
* Another issue with the meta package dependency generation logic is
that it may add other empty, non-existent packages.
* The existence of the opencv-java package depends on the
PACKAGECONFIG, though it is added as a meta package dependency in
all cases.
* Therefore check the contents of PKGDEST to only add non-empty
packages as RDEPENDS for the opencv meta package.
Signed-off-by: Jacob Stiffler <j-stiffler at ti.com>
---
meta-oe/recipes-support/opencv/opencv_3.1.bb | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/meta-oe/recipes-support/opencv/opencv_3.1.bb b/meta-oe/recipes-support/opencv/opencv_3.1.bb
index c1f9802..f168550 100644
--- a/meta-oe/recipes-support/opencv/opencv_3.1.bb
+++ b/meta-oe/recipes-support/opencv/opencv_3.1.bb
@@ -101,11 +101,22 @@ python populate_packages_prepend () {
d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends))
metapkg = pn
- blacklist = [ metapkg ]
+ blacklist = [ metapkg, pn + '-locale' ]
metapkg_rdepends = [ ]
+ pkgdest = d.getVar('PKGDEST', True)
for pkg in packages[1:]:
- if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') :
- metapkg_rdepends.append(pkg)
+ if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.count('local') :
+ # See if the package is empty by looking at the contents of its PKGDEST subdirectory.
+ # If this subdirectory is empty, then the package is.
+ # Empty packages do not get added to the meta package's RDEPENDS
+ pkgdir = os.path.join(pkgdest, pkg)
+ if os.path.exists(pkgdir):
+ dir_contents = os.listdir(pkgdir) or []
+ else:
+ dir_contents = []
+ is_empty = len(dir_contents) == 0
+ if not is_empty:
+ metapkg_rdepends.append(pkg)
bb.data.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends), d)
}
@@ -145,4 +156,3 @@ do_install_append() {
install -d ${D}${datadir}/OpenCV/samples/bin/
cp -f bin/*-tutorial-* bin/*-example-* ${D}${datadir}/OpenCV/samples/bin/
}
-
--
2.7.4
More information about the Openembedded-devel
mailing list