Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 245487

Summary: eix fails to find libstdc++-v3 package
Product: Gentoo Linux Reporter: Peter Volkov (RETIRED) <pva>
Component: Current packagesAssignee: Jeremy Olexa (darkside) (RETIRED) <darkside>
Status: RESOLVED INVALID    
Severity: normal CC: martin
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Peter Volkov (RETIRED) gentoo-dev 2008-11-04 07:58:33 UTC
eix fails to find libstdc++-v3 package. Just take a look at the output:

 $ eix -c libstdc++
[I] sys-libs/libstdc++-v3 (3.3.6(5)@03.11.2008): Compatibility package for running binaries linked against a pre gcc 3.4 libstdc++
[N] sys-libs/libstdc++-v3-bin (--): Compatibility package for running binaries linked against a pre gcc 3.4 libstdc++
[I] virtual/libstdc++ (3.3(3.3)@14.07.2008): Virtual for the GNU Standard C++ Library
Found 3 matches.
 $ eix -c libstdc++-v3
No matches found.
 $ eix -c libstdc++-v3-bin
No matches found.

bug reproducible with eix 0.14.2.
Comment 1 Martin Väth 2008-11-04 12:51:07 UTC
This is expected behavior: Your expression "libstdc++-v3" is interpreted as a
regular expression, and "+" has a special meaning for such expressions.
Either you must use some of the rules of regular expressions to avoid it
(e.g. escape + [but be aware that the escape is not eaten by the shell] or
replace it by .) or change the match algorithm e.g. by -p (and put * at the end).
Comment 2 Peter Volkov (RETIRED) gentoo-dev 2008-11-04 13:26:31 UTC
Eh, true. Thanks for explanation...

BTW, have you thought to add some kind of warning to user for this exact case (when ++ encountered)? It's obviously has not much sense to have ++ in regexp so if user requested ++ then quite possibly user wanted something different and if search revealed zero results output warning.
Comment 3 Martin Väth 2008-11-04 19:46:09 UTC
(In reply to comment #2)
> BTW, have you thought to add some kind of warning to user

This is the task of the regular expression library which eix uses,
which may actually vary from system to system:
If this library considers the expression as illegal, eix will even report
an error (try e.g. eix '('). However, eix will not try to "correct" the
results of that library (with one exception: the handling of empty
expressions).
In fact, the POSIX specification of (extended) regular expression leaves
it explicitly unspecified whether several successive "+" are syntactically admissible ("c++" _might_ mean that the previous "c+" must occur one or
several times). Since apparently the GNU library considers this case as OK,
and so most other programs under GNU/Linux will also accept this case,
it is just consistent that also eix will accept this case.