Summary: | warning from func (qt_min_version) used in depstring (doxygen's RDEPEND) yields confusing error from emerge | ||
---|---|---|---|
Product: | Portage Development | Reporter: | SpanKY <vapier> |
Component: | Core - Ebuild Support | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | caster, Martin.vGagern |
Priority: | High | Keywords: | InVCS |
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 200044 |
Description
SpanKY
![]() Carlo is the one who has modified the eclass to do this without fixing the packages first. *** Bug 233250 has been marked as a duplicate of this bug. *** (In reply to comment #1) > Carlo is the one who has modified the eclass to do this without fixing the > packages first. > This wasn't the real problem. What I didn't expect (and still do not understand) is how calling ewarn() changes the callees parameters. I cannot even reproduce this is a reduced test case. I'd say its pretty obvious, from qt3.eclass: qt_min_version() { local list=$(qt_min_version_list "$@") ewarn "qt_min_version() is deprecated. Use slot dependencies instead." if [[ ${list%% *} == "${list}" ]]; then echo "${list}" else echo "|| ( ${list} )" fi } qt_min_version() returns the atom. With the ewarn, it returns the ewarn and the atom. So, this is the result: /var/cache/edb/dep/usr/portage/net-wireless/waveselect-0.1.2:RDEPEND=net-wireless/wireless-tools * qt_min_version() is deprecated. Use slot dependencies instead. || ( =x11-libs/qt-3.3.8b =x11-libs/qt-3.3.8-r4 =x11-libs/qt-3.3.8-r3 =x11-libs/qt-3.3.8-r2 =x11-libs/qt-3.3.8-r1 =x11-libs/qt-3.3.8 =x11-libs/qt-3.3.6-r5 =x11-libs/qt-3.3.6-r4 =x11-libs/qt-3.3.6-r3 =x11-libs/qt-3.3.6-r2 =x11-libs/qt-3.3.6-r1 =x11-libs/qt-3.3.6 =x11-libs/qt-3.3.5-r1 =x11-libs/qt-3.3.5 =x11-libs/qt-3.3.4-r9 =x11-libs/qt-3.3.4-r8 =x11-libs/qt-3.3.4-r7 =x11-libs/qt-3.3.4-r6 =x11-libs/qt-3.3.4-r5 =x11-libs/qt-3.3.4-r4 =x11-libs/qt-3.3.4-r3 =x11-libs/qt-3.3.4-r2 =x11-libs/qt-3.3.4-r1 =x11-libs/qt-3.3.4 =x11-libs/qt-3.3.3-r3 =x11-libs/qt-3.3.3-r2 =x11-libs/qt-3.3.3-r1 =x11-libs/qt-3.3.3 ) =x11-libs/qt-3* xinerama? ( x11-libs/libXinerama ) arts? ( kde-base/arts "* qt_min_version() is deprecated. Use slot dependencies instead." <- this is not an atom (In reply to comment #4) > qt_min_version() returns the atom. With the ewarn, it returns the ewarn and the > atom. I need to update portage on the master rsync mirror. The ewarn message should go to stderr, but it doesn't in the old version of portage that I've got on the server. I've updated portage on the master mirror and touched the timestamp on qt3.eclass so the mirrors should have good metadata shortly. @Raúl: What you've quoted is the fixed eclass code and at least with Portage 2.1.4.4 this is handled fine. What Portage didn't grok was the previous revision. (In reply to comment #6) > I've updated portage on the master mirror and touched the timestamp on > qt3.eclass so the mirrors should have good metadata shortly. > Synced and verified. Looks like it is solved. if packages in the tree now work properly (output goes to stderr and thus does not muck the depend string), then we can focus on portage here instead of dumping a trace and complaining about invalid atom, portage should have presented a much more useful message. something like: * Unable to resolve dependencies for 'app-doc/doxygen-1.5.4': Depstring: qt3? ( * qt_min_version() is deprecated. Use slot dependencies instead. =x11-libs/qt-3.3* ) latex? ( virtual/latex-base ) dev-lang/python virtual/libiconv virtual/ghostscript !nodot? ( >=media-gfx/graphviz-2.6 media-libs/freetype ) this way end people should be able to clearly see the source of the problem and from there, work out a solution (dropping CC for people who presumably dont care now that doxygen/qt work) This is fixed in 2.2_rc6. |