Martin,

On Monday, 2020-04-20 18:21:00 -0000, you wrote:

> ...
> >    app-crypt/tpm2-tss       2.3.3   0 1
> ...
>             The second value depends on your ARCH;
> Since {isunstable} fails, I suppose that your ARCH is not amd64.

   $ eix --dump | grep DEFAULT_ARCH
   DEFAULT_ARCH="amd64"
   $

So no, that's a wrong assumption.

> ...
> installedversion returns the details of the version in /var/db.

You may be right on this one: the description  of the "--installed" opt-
ion in the  "eix" manual page  contains a faint hint  pointing into this
direction by explaining that

   --format '<installedversions:NAMEVERSION>' --pure-packages

would produce the same result as "equery"  while using the "--installed"
option might not.   But the description of  "installedversions:VARIABLE"
farther down just tersly notes  "This is analogous  to availableversions
with the difference that only installed versions are printed".

So it boils down to the question what precisely "analogous" means here.

> ...
> But /vat/db does not contain any information whether the version
> is stable, unstable, or alienstable, so these tests do not make
> any sense for installed versions.

   $ cd /var/db/pkg
   $ cat acct-group/input-0/KEYWORDS app-crypt/tpm2-tss-2.3.3/KEYWORDS |
     xargs -n1 | grep '^~?amd64$'
   amd64
   ~amd64
   $

So the information is clearly there.

> eix does not print an error if you query that information anyway,
> but the return value for any such test (isstable, isunstable,
> isalienstable, etc) is always empty (false).

>From that it follows that the "isstable" and "isunstable" properties may
both return "0" at the same time  because the information just isn't av-
ailable, but may never both return "1".   So for clarity I slightly mod-
ified my test script  by removing the  "!" prefix  from the "isunstable"
property:

   $ cat test-script
   #! /bin/sh
   export EIX_LIMIT=0 OVERLAYS_LIST=false PRINT_COUNT_ALWAYS=never
   export FMT="<category>/<name>\t<version>\t{isstable}1{else}0{} 
{isunstable}1{else}0{}\n"
   echo in:
   eix --format '<installedversions:FMT>' \
       --category-name --regex 'app-crypt/tpm2-tss$|acct-group/input'
   echo av:
   eix --format '<availableversions:FMT>' \
       --category-name --regex 'app-crypt/tpm2-tss$|acct-group/input'
   $ ./test-script
   in:
   acct-group/input     0       0 0
   app-crypt/tpm2-tss   2.3.3   0 0
   av:
   acct-group/input     0       1 0
   app-crypt/tpm2-tss   2.2.3-r2        1 1
   app-crypt/tpm2-tss   2.3.3   1 1
   $

So it seems that  even though the information  is available in "/var/db/
pkg/" "eix" just doesn't look there when processing "installedversions".
This may be a documentation problem rather than a bug (even though I my-
self would prefer a correction in "eix" itself rather than in its docum-
entation :-).   The manual mentions in another place that the  "test for
markedversions always fails  in the context of <installedversions:...>",
but aparently there are also other properties  than just "markedversion"
that always fail in this context.

But why does "<availableversions:...>"  only return a correct result for
installed  virtual package  "acct-group/input-0"  but incorrect  results
(stable and unstable at the same time) for both, the not installed pack-
age "app-crypt/tpm2-tss-2.2.3-r2"  and the installed package "app-crypt/
tpm2-tss-2.3.3"?

Still puzzled :-/

Sincerely,
  Rainer

Reply via email to