Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
eix - Ebuild IndeX (search utility) - 0.2.2
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2, 3 ... 17, 18, 19  
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
alex.blackbit
Advocate
Advocate


Joined: 26 Jul 2005
Posts: 2397

PostPosted: Sun Sep 20, 2009 8:26 am    Post subject: Reply with quote

first, thanks for the new version, 0.18.0
it seems like a lot of work has gone into it.

[1]:
with the new format behavior, how do i gain the same effect like i did before with
Code:
TAG_FOR_EX_UNSTABLE="" UPGRADE_TO_HIGHEST_SLOT=false eix --pure-packages --format "<=fullbestslotupgrade>"

[2]:
is it now easier to do what i asked for Wed Aug 12, 2009 4:08 pm ?

[3]:
is the current changelog somehow reachable via http? the trac page seems to be done for quite a while.
EDIT: i already found the link myself, but what ever happened to trac ?

thanks in advance.
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Sun Sep 20, 2009 11:58 am    Post subject: Reply with quote

  1. You can either use the example variable EQNAMEVERSION (which has the value "=<category>/<name>-<version>") for the output
    Code:
    UPGRADE_TO_HIGHEST_SLOT=false eix --pure-packages --format "<bestslotupgradeversions:EQNAMEVERSION>"
    or you can print out manually the best slots of all versions which are not installed
    Code:
    UPGRADE_TO_HIGHEST_SLOT=false MY='{isbestupgradeslot}{!installedversion}=<category>/<name>-<version>{}{}' eix --pure-packages --format "<availableversions:MY>"

    Of course =<category>/<name>-<version> might have been replaced by %{EQNAMEVERSION}.
  2. Still not really, because it is not yet possible to store properties in runtime variables. What you can do is to print all those packages for which the best version (of a slot) is in an overlay but the package is not only in one overlay:
    Code:
    MY='{overlayver}%{NAMEVERSION}{}' eix --pure-packages --format "<bestslotversions:MY>"
    or, equivalently (just to demonstrate how these things work):
    Code:
    MY='{slotlast}{overlayver}%{NAMEVERSION}{}{}' eix --pure-packages --format "<availableversions:MY:MY>"
    However, this is not really what was asked, because it does not mean that the version is strictly larger than the versions in portage.
  3. Dont' know.
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Sun Sep 20, 2009 5:28 pm    Post subject: Reply with quote

alex.blackbit wrote:
is it now easier to do what i asked for Wed Aug 12, 2009 4:08 pm ?

With >=eix-0.18.1 (from eix' svn trunk) it is possible to store/compare properties in/with runtime variables. With this version, it is possible to do what you want:
Code:
MY='{slotfirst}{!*v}{}{!overlaynum}{*v=<version>}{}{slotlast}{overlaynum}{!$v=<version>}%{NAMEVERSION}{}{}{}' eix --pure-packages --overlay --format '{!overlaykey}<availableversions:MY:MY>{}'

This is hard to read but actually not deep. It does the following for each version: At the beginning of each slot ("{slotfirst}...{}") the runtime variable v is cleared; if the version is not from an overlay, it is stored in the runtime variable v. Finally, for the highest version of each slot ("{slotlast}...{}"), if the version differs from the runtime variable v and is from an overlay, it is output. The argument --overlay and the condition in the format outputs only versions which have at least one version in the stable tree and some in some overlay.
One modification: If you want to see only versions which have an higher version in an overlay than a version of the same slot in the tree, you can replace %{NAMEVERSION} by {$v}%{NAMEVERSION}{}, i.e. the output happens only if the runtime variable v was really set in the current slot (by a version in the tree).
Back to top
View user's profile Send private message
alex.blackbit
Advocate
Advocate


Joined: 26 Jul 2005
Posts: 2397

PostPosted: Sun Sep 20, 2009 8:32 pm    Post subject: Reply with quote

wow, many thanks for the effort.
i am looking forward to trying that feature out.
i'll let you know the results.
Back to top
View user's profile Send private message
alex.blackbit
Advocate
Advocate


Joined: 26 Jul 2005
Posts: 2397

PostPosted: Wed Sep 23, 2009 3:02 pm    Post subject: Reply with quote

my first test shows that the provided command does not take masking of packages in account.
is it possible to constrain that list to only output packages that are not masked ?
by the way: is there a live eix ebuild somewhere?
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Thu Sep 24, 2009 8:18 am    Post subject: Reply with quote

alex.blackbit wrote:
my first test shows that the provided command does not take masking of packages in account.
is it possible to constrain that list to only output packages that are not masked ?

The following code remembers in the runtime variable v the latest unmasked version if it is from the tree or from and overlay (and different from the previously remembered version); in the runtime variable o it is remembered whether the latter occured last. If this is the case when the last version in the slot is reached, this last version is output.
Code:
MY='{first}{!*p}{}{slotfirst}{!*v}{!*o}{}{!ishardmasked}{overlaynum}{!$v=<version>}{*o}{*v=<version>}{}{else}{!*o}{*v=<version>}{}{}{slotlast}{$o}{$p}\n{}{*p}<category>/<name>-<$v>{}{}' eix --pure-packages --overlay --format '{!overlaykey}<availableversions:MY:MY>{}'

Edit: In p it is remembered whether there was already an output for that package so that the newline is output only in that case.
Back to top
View user's profile Send private message
alex.blackbit
Advocate
Advocate


Joined: 26 Jul 2005
Posts: 2397

PostPosted: Thu Sep 24, 2009 9:18 am    Post subject: Reply with quote

mv wrote:
alex.blackbit wrote:
my first test shows that the provided command does not take masking of packages in account.
is it possible to constrain that list to only output packages that are not masked ?

The following code remembers in the runtime variable v the latest unmasked version if it is from the tree or from and overlay (and different from the previously remembered version); in the runtime variable o it is remembered whether the latter occured last. If this is the case when the last version in the slot is reached, this last version is output.
Code:
MY='{first}{!*p}{}{slotfirst}{!*v}{!*o}{}{!ishardmasked}{overlaynum}{!$v=<version>}{*o}{*v=<version>}{}{else}{!*o}{*v=<version>}{}{}{slotlast}{$o}{$p}\n{}{*p}<category>/<name>-<$v>{}{}' eix --pure-packages --overlay --format '{!overlaykey}<availableversions:MY:MY>{}'

Edit: In p it is remembered whether there was already an output for that package so that the newline is output only in that case.

i'll comment on that later, something still seems to be wrong.

today i ran `eix-test-obsolete -d` and got some redundant entries for /etc/portage/package.keywords. one entry was not listed, "dev-util/gclient **", whereas it is neither installed nor available (i removed the according layman overlay).
is this a minor regression ? eix-0.18.0.
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Thu Sep 24, 2009 1:35 pm    Post subject: Reply with quote

alex.blackbit wrote:
today i ran `eix-test-obsolete -d`

If you use always -d, it may be worth to put
Code:
EIX_TEST_OBSOLETE_OPTS='-d'

into your /etc/eixrc. But this was not your question of course.
Quote:
one entry was not listed, "dev-util/gclient **", whereas it is neither installed nor available (i removed the according layman overlay).

I cannot reproduce this here: I entered dev-util/gclient into /etc/portage/package.keywords and then get
Code:
Non-matching entries in /etc/portage/package.keywords:

dev-util/gclient **
--

No non-matching entries in /etc/portage/package.mask.
...
Have you updated your datebase after the removal of the overlay, i.e. does
Code:
eix -e gclient
really find nothing?
alex.blackbit wrote:
i'll comment on that later, something still seems to be wrong.

Of course the question is always what you understand by "newer version": For the example I gave, "newer" means that the version is newer in the same slot.
Back to top
View user's profile Send private message
alex.blackbit
Advocate
Advocate


Joined: 26 Jul 2005
Posts: 2397

PostPosted: Fri Oct 02, 2009 12:56 pm    Post subject: Reply with quote

i just emerged 0.18.1.
it seems like the needed syntax for my beloved updates list changed again.
Code:
pre 0.18.0:
TAG_FOR_EX_UNSTABLE="" UPGRADE_TO_HIGHEST_SLOT=false eix --pure-packages --format "<=fullbestslotupgrade>"
0.18.0:
UPGRADE_TO_HIGHEST_SLOT=false eix --pure-packages --format "<bestslotupgradeversions:EQNAMEVERSION>"

the command i used for 0.18.0 now prints 14006 lines.
what do i have to use now ?
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Fri Oct 02, 2009 5:40 pm    Post subject: Reply with quote

alex.blackbit wrote:
i just emerged 0.18.1.
it seems like the needed syntax for my beloved updates list changed again.

No, it wasn't supposed to change. It's a bug: In eix-0.18.1 "bestslotupgradeversions[*]" is by mistake the same as "bestslotversions[*]"; this is already fixed in eix' svn trunk (eix-0.18.2).
Back to top
View user's profile Send private message
alex.blackbit
Advocate
Advocate


Joined: 26 Jul 2005
Posts: 2397

PostPosted: Sat Oct 03, 2009 3:28 pm    Post subject: Reply with quote

to come back to my question regarding the consideration of overlays in the "updates" alias.
let's have a look at this example:
Code:
# eix -ec eix 
[I] app-portage/eix (0.18.0@10/03/09): Search and query ebuilds, portage incl. local settings, ext. overlays, version changes, and more
# alias updates
updates='UPGRADE_TO_HIGHEST_SLOT=false eix --pure-packages --format "<bestslotupgradeversions:EQNAMEVERSION>"'
# emerge -pv1 `updates`

These are the packages that would be merged, in order:

Calculating dependencies ... done!
[ebuild     U ] x11-libs/libfontenc-1.0.5 [1.0.4] USE="-debug (-lib32%*)" 245 kB [1=>0]
[ebuild     U ] x11-proto/renderproto-0.11 [0.9.3] 65 kB [0]
[ebuild     U ] media-fonts/font-util-1.0.2 [1.0.1] USE="-debug" 113 kB [0]
[ebuild     U ] x11-apps/appres-1.0.2 [1.0.1] USE="-debug" 94 kB [0]
[ebuild     U ] x11-apps/bdftopcf-1.0.2 [1.0.0] USE="-debug" 94 kB [0]
[ebuild     U ] x11-apps/bitmap-1.0.4 [1.0.3-r1] USE="-debug" 138 kB [0]
[ebuild     U ] x11-apps/xauth-1.0.4 [1.0.3] USE="ipv6 -debug" 117 kB [0]
[ebuild     U ] x11-apps/xbacklight-1.1.1 [1.1] USE="-debug" 92 kB [0]
[ebuild     U ] x11-libs/libXv-1.0.5 [1.0.4] USE="-debug (-lib32%*)" 262 kB [1=>0]
[ebuild     U ] x11-misc/googleearth-5.1.3509.4636_beta [5.1.3506.3999_beta] 25,380 kB [0]
[ebuild     U ] x11-proto/compositeproto-0.4.1 [0.4] 88 kB [0]
[ebuild     U ] x11-proto/fixesproto-4.1 [4.0] 55 kB [0]
[ebuild     U ] x11-proto/fontcacheproto-0.1.3 [0.1.2] 83 kB [0]
[ebuild     U ] x11-themes/xcursor-themes-1.0.2 [1.0.1] 2,224 kB [0]
[ebuild     U ] x11-libs/libXrender-0.9.5 [0.9.4] USE="-debug (-lib32%*)" 256 kB [1=>0]
[ebuild     U ] x11-apps/luit-1.0.4 [1.0.3] USE="-debug" 113 kB [0]
[ebuild     U ] x11-apps/xclock-1.0.4 [1.0.3-r1] USE="-debug" 126 kB [0]
[ebuild     U ] x11-terms/xterm-249 [248] USE="Xaw3d toolbar truetype unicode" 866 kB [0]

Total: 18 packages (18 upgrades), Size of downloads: 30,401 kB
Portage tree and overlays:
 [0] /usr/portage
 [1] /usr/portage/local/multilib-overlay
#

i would like to be able to keep the following cases apart:
[0]
[0=>1]
[1=>0] (not covered in the example)
[1] (not covered in the example)

is this possible with eix ? or is this again a case where dep calculation would be necessary ?
it that is possible it would let me first upgrade the packages that do not need attention ([0],[1]).
upgrade those that were bumped by an other overlay maintainer ([0=1]).
then i could take a look at those that need to be upgraded in the overlay i maintain ([1=>0]).
and
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Sat Oct 03, 2009 4:47 pm    Post subject: Reply with quote

I am not sure whether I understand you correctly. What you can do is something like this (this is one line):
Code:
MY='{!*instoverlay}{*currslot=<slot>}<installedversions:MYI>{$instoverlay}{overlaynum}%{EQNAMEVERSION}{}{}' MYI='{overlaynum}{$currslot=<slot>}{*instoverlay}{}{}' UPGRADE_TO_HIGHEST_SLOT=false eix --pure-packages --format "<bestslotupgradeversions:MY>"

What this does is the following: The first part of MY first checks whether a version of the same slot is installed from an overlay (to this end, the runtime variable instoverlay is unset, the slot is remembered in the runtime variable currslot and then all installed versions are checked whether their slot matches currslot and whether they are installed from an overlay - if yes, instoverlay is set). Now the tests {$instoverlay}{overlaynum}...{}{} succeed both if and only if the package was installed from an overlay and also the new version is from an overlay, i.e. this test corresponds to the case [1=>1]; you get the case [0=>0] by modifying these tests to {!$instoverlay}{!overlaynum}...{}{}, and similarly for [0=>1] or [1=>0] by negating only the first or second test, respectively.
Back to top
View user's profile Send private message
alex.blackbit
Advocate
Advocate


Joined: 26 Jul 2005
Posts: 2397

PostPosted: Sat Oct 03, 2009 5:15 pm    Post subject: Reply with quote

i think that goes in the right direction, but something's wrong with the command...
Code:
# MY='{!*instoverlay}{*currslot=<slot>}<installedversions:MYI>{$instoverlay}{overlaynum}%{EQNAMEVERSION}{}{}' MYI='{overlaynum}{$currslot=<slot>}{*instoverlay}{}{}' UPGRADE_TO_HIGHEST_SLOT=false eix --pure-packages --format "<bestslotupgradeversions:MY>"
std::string PrintFormat::get_pkg_property(const Package*, const std::string&) const: Unknown property 'overlaynum'
std::string PrintFormat::get_pkg_property(const Package*, const std::string&) const: Unknown property 'overlaynum'
=x11-themes/xcursor-themes-1.0.2
#

EDIT: i guess this is because i still have 0.18.0.
i'll try out with 0.18.1...
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Sat Oct 03, 2009 7:31 pm    Post subject: Reply with quote

alex.blackbit wrote:
EDIT: i guess this is because i still have 0.18.0.
i'll try out with 0.18.1...

I think you'll need 0.18.2 in view of the broken bestslotupgradversions...
Back to top
View user's profile Send private message
alex.blackbit
Advocate
Advocate


Joined: 26 Jul 2005
Posts: 2397

PostPosted: Mon Oct 05, 2009 11:23 am    Post subject: Reply with quote

mv wrote:
Code:
MY='{!*instoverlay}{*currslot=<slot>}<installedversions:MYI>{$instoverlay}{overlaynum}%{EQNAMEVERSION}{}{}' MYI='{overlaynum}{$currslot=<slot>}{*instoverlay}{}{}' UPGRADE_TO_HIGHEST_SLOT=false eix --pure-packages --format "<bestslotupgradeversions:MY>"

i tried that and its variations in a situation where i have [0=>0], [1=>1] and [1=>0] upgrades. those worked correctly. i am sure [0=>1] works too.
if i understand the command correctly, [1=>2] and [2=>1] have the same effect as [0=>1], right ?
eix was from svn, revision 945.
thanks for the efforts.
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Mon Oct 05, 2009 5:41 pm    Post subject: Reply with quote

alex.blackbit wrote:
if i understand the command correctly, [1=>2] and [2=>1] have the same effect as [0=>1], right?

The same effect as [1=>1], because the tests observe only whether <overlaynum> is empty or not. Of course, you can do more sophisticated tests by really comparing the various overlaynum's.
Back to top
View user's profile Send private message
alex.blackbit
Advocate
Advocate


Joined: 26 Jul 2005
Posts: 2397

PostPosted: Wed Sep 15, 2010 2:24 pm    Post subject: Reply with quote

is there currently a way to view the changelog online ?
i used https://svn.gentooexperimental.org/eix/trunk/ChangeLog before.
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Wed Sep 15, 2010 3:54 pm    Post subject: Reply with quote

alex.blackbit wrote:
is there currently a way to view the changelog online?

No. svn.gentooexperimental.org is still down (maybe not, but nobody knows its IP). So currently the only way for releasing are the new tarballs at BerliOS. If the svn.gentooexperimental.org problem remains, maybe development will switch to the git service of BerliOS. However, except for urgent bugfixes, development will probably be quiet for some time anyway.
Back to top
View user's profile Send private message
Dont Panic
Guru
Guru


Joined: 20 Jun 2007
Posts: 322
Location: SouthEast U.S.A.

PostPosted: Mon Jan 24, 2011 3:59 pm    Post subject: Reply with quote

I'm stuck trying to figure out a modification/customization to the eix output.

I want to get a list of packages that want to be downgraded, listed in EQNAMEVERSION format (ex: =sys-apps/portage-2.2.0_alpha18).

Such a list could then be useful for modifying/recreating your /etc/portage/package.keywords file.

I've discovered how to list all installed packages in EQNAMEVERSION format using:
Code:
VERSION_NEWLINE='' \
NEWLINE=false \
LINE="{downgrade}%{EQNAMEVERSION}\n" \
eix '-I*' --format "<installedversions:LINE>" | less

I've discovered how to verbosely list downgrades (several methods are listed in the man page):
Code:
FORMAT='{downgrade}%{FORMAT_ALL}{}' eix  -I

But I'm frustrated in my efforts to combine the two so that downgrades are listed in EQNAMEVERSION format.

The eix packages looks like it has a very extensive set of capabilities for modification and customization of the output, but I can never seem to put it all together looking at the documentation.
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Mon Jan 24, 2011 8:52 pm    Post subject: Reply with quote

Dont Panic wrote:
I want to get a list of packages that want to be downgraded

Perhaps what you want is in this post (replace NAMEVERSION by EQNAMEVERSION).
Back to top
View user's profile Send private message
Dont Panic
Guru
Guru


Joined: 20 Jun 2007
Posts: 322
Location: SouthEast U.S.A.

PostPosted: Tue Jan 25, 2011 8:11 pm    Post subject: Reply with quote

mv wrote:
Dont Panic wrote:
I want to get a list of packages that want to be downgraded

Perhaps what you want is in this post (replace NAMEVERSION by EQNAMEVERSION).

Thanks for the reference. After looking through that, I believe the following command gives me what I was looking for:
Code:
eix-installed -a | VERSIONS='{downgrade}%{EQNAMEVERSION}{}' FORMAT='<installedversions:VERSIONS>' eix --pipe --pure-packages
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Goto page Previous  1, 2, 3 ... 17, 18, 19
Page 19 of 19

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum