Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 334089 - app-portage/portage-utils-0.4: qdepends errors on "|| ( )"
Summary: app-portage/portage-utils-0.4: qdepends errors on "|| ( )"
Status: RESOLVED OBSOLETE
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Tools (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Portage Utils Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-23 15:54 UTC by Johannes Rauh
Modified: 2012-10-28 04:32 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Johannes Rauh 2010-08-23 15:54:15 UTC
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
Comment 1 SpanKY gentoo-dev 2010-08-28 20:41:10 UTC
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.
Comment 2 SpanKY gentoo-dev 2010-08-28 21:51:09 UTC
err, nm.  i remembered wrong.  portage rejects '|| ()' but accepts '|| ( )'.  so i guess i'll have to update the DEPEND tree parser accordingly.
Comment 3 Zac Medico gentoo-dev 2010-08-28 21:55:12 UTC
(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.
Comment 4 SpanKY gentoo-dev 2012-10-28 04:32:49 UTC
i'll be lazy here and since portage elides '|| ( )' from the output, this shouldn't come up anymore