Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 234299 - app-portage/eix: update-eix-layman did not attach overlays to eix cache
Summary: app-portage/eix: update-eix-layman did not attach overlays to eix cache
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal
Assignee: Martin Väth
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-08-09 10:38 UTC by amadeus.bit
Modified: 2008-08-10 18:57 UTC (History)
1 user (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 amadeus.bit 2008-08-09 10:38:36 UTC
I installed some overlays with layman and want them recognized by eix, but if I run 
update-layman-eix -a kdesvn-portage (or sunrise or java-overlay) add
eix recognizes the overlays, but did not append them to the cache 

bash: update-eix-layman -a kdesvn-portage add
 * Calling update-eix
Reading Portage settings ..
Building database (/var/cache/eix) ..
[0] "gentoo" /usr/portage/ (cache: eix)
     Reading 100%
[1] "local_repo" /usr/local/portage/overlay (cache: eix [/usr/local/portage/overlay])
     Reading 100%
[2] "java-overlay" /usr/local/portage/layman/java-overlay (cache: eix [/usr/local/portage/layman/java-overlay])
     Reading 100%
[3] "sunrise" /usr/local/portage/layman/sunrise (cache: eix [/usr/local/portage/layman/sunrise])
     Reading 100%
[4] "kde4-overlay" /usr/local/portage/layman/kdesvn-portage (cache: eix [/usr/local/portage/layman/kdesvn-portage])
     Reading 100%
Applying masks ..
Calculating hash tables ..
Writing database file /var/cache/eix ..
Database contains 12840 packages in 151 categories.

bash: cat /etc/make.conf
CFLAGS="-march=core2 -O2 -pipe -fno-ident"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1,--verbose"

MAKEOPTS="-j8"
ACCEPT_KEYWORDS="amd64 ~amd64"

INPUT_DEVICES="evdev"
VIDEO_CARDS="nvidia"
ALSA_CARDS="emu10k1"
CAMERAS="canon"
LINGUAS="en"

SYNC="rsync://rsync.gentoo.org/gentoo-portage"
GENTOO_MIRRORS="ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/"

AUTOCLEAN="yes"

USE="aac arts alsa apm branding cdr dvd dvdr dvdread cairo css fbcon fuse gpm gtk hal java javascript jpeg jpeg2k kde latex lisp mmx mmxext mpeg mono mp3 nls nvidia nsplugin ogg openal opengl oss pdf png qt3 qt4 samba sse sse2 ssse3 sdl svg tiff unicode usb vorbis xinerama -xvmc xulrunner x -gnome -3dnow -3dnowext mmxext -eds -esd -spell -ipv6 -minimal -firefox"
FEATURES="ccache candy parallel-fetch"

CCACHE_SIZE="6G"
CCACHE_DIR="/var/tmp/ccache"

# This should not be changed unless you know exactly what you are doing.You
# should probably be using a different stage, instead.
CHOST="x86_64-pc-linux-gnu"

PORTDIR_OVERLAY="/usr/local/portage/overlay"
source /usr/local/portage/layman/make.conf

If I try to find a overlay package like kde-4 eix dont show anything
bash: eix kdebase-meta
[U] kde-base/kdebase-meta
     Available versions:
        (3.5)   3.5.9
        (kde-4) {M}(~)4.0.4 {M}(~)4.0.5
     Installed versions:  3.5.9(3.5)(10:29:46 14.06.2008)
     Homepage:            http://www.kde.org/
     Description:         kdebase - merge this to pull in all kdebase-derived packages

bash: emerge --search kdebase-meta
[ Results for search key : kdebase-meta ]
[ Applications found : 1 ]

*  kde-base/kdebase-meta
      Latest version available: 4.0.5
      Latest version installed: 3.5.9
      Size of files: 0 kB
      Homepage:      http://www.kde.org/
      Description:   kdebase - merge this to pull in all kdebase-derived packages
      License:       GPL-2


But, if I put the overlay path direct in the PORTDIR_OVERLAY variable in the make.conf, eix add them, but then it takes several minutes to update the cache




Reproducible: Always

Steps to Reproduce:
1. emerge layman
2. layman -f && layman -a sunrise  
3. echo "source /usr/local/portage/layman/make.conf" >> /etc/make.conf
4. update-eix-layman -CA /usr/local/portage/layman/make.conf -a sunrise add (without -a the same)
Comment 1 Martin Väth 2008-08-09 16:19:14 UTC
I think there is a misunderstanding of what update-layman-eix is supposed
to do - perhaps the name is somewhat misleading:

If you have "source /usr/local/portage/layman/make.conf" in
your /etc/make.conf, this script is useless, because you can simply use
update-eix to update the database.

But if you do not have this, the eix database will not contain the layman
overlays (and thus you will not see them with eix).
The call "update-layman-eix add" is meant to add them anyway,
and "update-layman-eix remove" is meant to remove this additional data again.

Since in your case, the overlays are already in the database, there is
no reason to add them, i.e. "update-eix-layman add" will just be pointless.

(The parameter -a is pointless anyway unless you have some very special
configuration, e.g. if you want to treat a non-layman overlay in this
script in the same manner as the layman overlays; BTW, the argument of
-a would then of course have to be the full path so that the script will
then know where to find this additional overlay).
Comment 2 amadeus.bit 2008-08-09 23:30:42 UTC
The point is, the overlays are not in the database. neither with update-eix nor update-eix-layman.
only if put the layman paths directly in the make.conf, eix recognizes them correctly.
I just thought, that I have to use update-eix-layman, because they dont appear in the database, after an update-eix.
I mean: 
make.conf:
...
PORTDIR_OVERLAY="
/my/overlay
/usr/local/portage/layman/sunrise
/usr/local/portage/layman/java-overlay
..."
works fine, but not
make.conf:
PORTDIR_OVERLAY="/my/overlay"
source /usr/local/portage/layman/make.conf
Comment 3 Emil Beinroth 2008-08-10 00:42:29 UTC
Please post the output of the following commands:

# portageq envvar PORTDIR_OVERLAY
# eix --print 'PORTDIR_OVERLAY'; echo
# update-eix
Comment 4 amadeus.bit 2008-08-10 01:52:03 UTC
# portageq envvar PORTDIR_OVERLAY
/usr/local/portage/layman/java-overlay /usr/local/portage/layman/sunrise /usr/local/portage/overlay
# eix --print 'PORTDIR_OVERLAY'; echo
/usr/local/portage/overlay
# update-eix
Reading Portage settings ..
Building database (/var/cache/eix) ..
[0] "gentoo" /usr/portage/ (cache: metadata-flat)
     Reading 100%
[1] "local_repo" /usr/local/portage/overlay (cache: parse|ebuild*)
     Reading 100%
Applying masks ..
Calculating hash tables ..
Writing database file /var/cache/eix ..
Database contains 12811 packages in 156 categories.
Comment 5 Martin Väth 2008-08-10 08:29:58 UTC
(In reply to comment #2)
> The point is, the overlays are not in the database.

According to the output in your initial description, they are in the database
(otherwise, eix would not be able to read them from its previous database -
in fact, update-eix at least must have read there names);
does the same output occur after you created a new database with update-eix?

In reply to comment #4)
> # portageq envvar PORTDIR_OVERLAY
> /usr/local/portage/layman/java-overlay /usr/local/portage/layman/sunrise
> /usr/local/portage/overlay
> # eix --print 'PORTDIR_OVERLAY'; echo
> /usr/local/portage/overlay

This is serious: It means that eix and portage have differing opinions about
the value of PORTDIR_OVERLAY. Maybe you have set PORTDIR_OVERLAY somewhere
else? Is it e.g. set in your environment (test with
"env|grep PORTDIR_OVERLAY") or in some other unusual place?
What does "( . /etc/make.conf ; echo $PORTDIR_OVERLAY )" output?
Oh, and perhaps: Does "update-eix --print EPREFIX_SOURCE" output something?
Comment 6 Emil Beinroth 2008-08-10 08:37:33 UTC
Are we talking about eix-0.13.3? If we are not, does eix-0.13.3 work for you?
Comment 7 amadeus.bit 2008-08-10 11:12:36 UTC
OK. I found the problem. I have to put the path in brackets.
source /usr/local/portage/layman/make.conf 
works with portage, but not with eix, but
source "/usr/local/portage/layman/make.conf" 
does. Dont know why.
Comment 8 Martin Väth 2008-08-10 15:31:04 UTC
(In reply to comment #7)
> source /usr/local/portage/layman/make.conf 
> works with portage, but not with eix

This is strange, because it is supposed to work (and here it does work,
even if the line closes the file).
Maybe you had some strange (unicode?) symbols in this line?
Comment 9 amadeus.bit 2008-08-10 18:57:32 UTC
I dont believe there are invisible symbols. I rewrote the line for some times with no success. I use en_US.UTF8 as encoding, perhabs there is the problem. I know I have some problems with invisible symbols when I copy paste a source code and try to compile it with gcc. 
My standart editor ist nano.