Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 145882 - app-portage/eix-0.7.2 wrong w.r.t. slotting of overlay ebuilds
Summary: app-portage/eix-0.7.2 wrong w.r.t. slotting of overlay ebuilds
Status: RESOLVED CANTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Martin Väth
URL:
Whiteboard:
Keywords:
: 255996 264846 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-09-01 10:55 UTC by Timothy Stotts
Modified: 2009-04-04 11:14 UTC (History)
4 users (show)

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 Timothy Stotts 2006-09-01 10:55:08 UTC
Hi.  This was also an issue with eix-0.6.4, but I did not notice it until the new default display formatting of eix-0.7.2. The following demonstrates broken display of overlays with slots.  Note, this example is performed with ARCH=ppc, but should be architecture independent, given reproduction of these conditions on an x86 system.

Steps to reproduce (customize as desired).

(1) Checkout my overlay from:
    # svn checkout https://tstotts.net/pubvc/portage_overlay tstotts_overlay
and add it to the overlay list in /etc/make.conf .

    # update-eix

(2) Examine the ebuilds in 'dev-lang/gnat-gcc'.
    # grep gnat-gcc /etc/portage/package.keywords
    dev-lang/gnat-gcc ~ppc
    # emerge '=gnat-gcc-3*'
    # emerge '=gnat-gcc-4*'

    Installs the overlay ebuilds both perfectly fine, in parallel, slotted.

    # equery list -i -p -o gnat-gcc
    [ Searching for package 'gnat-gcc' in all categories among: ]
     * installed packages
    [I--] [ ~] dev-lang/gnat-gcc-3.4.6-r1 (3.4)
    [I--] [ ~] dev-lang/gnat-gcc-4.1.1-r1 (4.1)
     * Portage tree (/usr/portage)
    [-P-] [M ] dev-lang/gnat-gcc-3.4.5-r1 (3.4)
    [-P-] [M ] dev-lang/gnat-gcc-3.4.5-r2 (3.4)
    [-P-] [M ] dev-lang/gnat-gcc-3.4.6 (3.4)
    [-P-] [M ] dev-lang/gnat-gcc-4.1.0 (4.1)
    [-P-] [M ] dev-lang/gnat-gcc-4.1.1 (4.1)
     * overlay tree (/usr/local/portage_overlay /usr/local/portage.sci)
    [--O] [ ~] dev-lang/gnat-gcc-3.4.6-r1 (3.4)
    [--O] [ ~] dev-lang/gnat-gcc-4.1.1-r1 (4.1)

    # eix gnat-gcc

    eix shows the overlay ebuilds as unslotted, which is incorrect.

    [U] dev-lang/gnat-gcc 
         Available versions:  
            (3.4)   !3.4.5-r1 !3.4.5-r2 !3.4.6
            (0)     3.4.6-r1[1] 4.1.1-r1[1]
            (4.1)   !4.1.0 !4.1.1
         Installed:           3.4.6-r1 4.1.1-r1
         Homepage:            http://gcc.gnu.org/
         Description:         GNAT Ada Compiler - gcc version

    [1] /usr/local/portage_overlay
Comment 1 Martin Väth 2006-09-01 14:33:30 UTC
This is not related with overlays but a known shortcoming of the cache method "none" which is the default for overlays.

The reason is that the slot information for gnat-gcc (and similarly for some kde-base packages) is *not* stored in the .ebuild file but only implicitly calculated by a corresponding eclass. The cache method "none" is not able to find this information in the .ebuild, because it only "parses" the .ebuild "empirically" (which is fast and secure but cannot deal with more complex .ebuild files).

For this reason the (unfortunately much slower and less secure) cache methods "ebuild" and "ebuild*" have been introduced into eix-0.7.1 which actually executes the .ebuilds.
So the solution to your problem is to either use this cache method globally
for all overlays (by putting
  OVERLAY_CACHE_METHOD='ebuild'
resp.
  OVERLAY_CACHE_METHOD='ebuild*'
into /etc/eixrc) or at least for the overlay containing the critical ebuild (in your case, this means probably to set something like
  OVERRIDE_CACHE_METHOD="/usr/local/portage_overlay ebuild*"
[I should already announce that in eix-0.7.3 you will probably want to use the variable CACHE_METHOD instead OVERRIDE_CACHE_METHOD - read the Changelog for the next update]).

Of course you have to run update-eix for this setting to take effect.

However, in any case, be sure that you understand the drawbacks and security risks of following this advice. "man eix" will tell you more...
Comment 2 Martin Väth 2008-03-07 00:01:51 UTC
Just a reminder for those who have explicitly set OVERLAY_CACHE_METHOD:
With eix-0.12.0 you might want to try OVERLAY_CACHE_METHOD="parse|ebuild*",
but read about the security risks.
Comment 3 Martin Väth 2009-01-22 22:03:44 UTC
*** Bug 255996 has been marked as a duplicate of this bug. ***
Comment 4 Martin Väth 2009-04-04 11:14:08 UTC
*** Bug 264846 has been marked as a duplicate of this bug. ***