qdepends aborts with the following error message, (almost) regardless of what options I give to qdepends: depends: dep_grow_tree(): Group lacks a parent depends: dep_grow_tree(): DEPEND: >=sys-libs/zlib-1.1.4 >=media-libs/tiff-3.9.1 sci-libs/libgeotiff dev-libs/expat net-misc/curl media-libs/jpeg media-libs/giflib media-libs/libpng dev-lang/perl virtual/python dev-python/numpy || ( ) media-libs/jasper virtual/mysql >=dev-db/sqlite-3 >=dev-lang/swig-1.3.32 >=dev-lang/swig-1.3.32 || ( =sys-devel/automake-1.11* =sys-devel/automake-1.10* ) >=sys-devel/autoconf-2.61 >=sys-devel/libtool-2.2.6b dev-lang/perl[-build] >=app-admin/eselect-python-20091230 The issue seems to be related to the ebuild sci-libs/gdal/gdal-1.7.1-r1.ebuild. The RDEPEND-declaration contains the lines: " || ( netcdf? ( sci-libs/netcdf ) hdf? ( sci-libs/hdf ) )" Since I have neither the 'netcdf' nor the 'hdf' use flag enabled, the file /var/db/pkg/sci-libs/gdal-1.7.1-r1/DEPEND contains the empty group "|| ( )", which seems to irritate qdepends' parser. Reproducible: Always Steps to Reproduce: 1. deactivate use flags netcdf and hdf and emerge sci-libs/gdal-1.7.1-r1. 2. qdepends -Q gdal
i wonder if portage should even be emitting "|| ( )" into the vdb. after all, you cant use just "|| ( )" in an ebuild or portage will barf on it. imo, anything that is in the *DEPEND files should be able to be placed literally into an ebuild and have it not throw errors.
err, nm. i remembered wrong. portage rejects '|| ()' but accepts '|| ( )'. so i guess i'll have to update the DEPEND tree parser accordingly.
(In reply to comment #1) > i wonder if portage should even be emitting "|| ( )" into the vdb. The use_reduce() function that handles that was recently rewritten and it handles that correctly now (there's a test for this specific case in pym/portage/tests/dep/test_use_reduce.py). It's already released in >=portage-2.2_rc68 and it will also be released in portage-2.1.9.
i'll be lazy here and since portage elides '|| ( )' from the output, this shouldn't come up anymore