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)
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).
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
Please post the output of the following commands: # portageq envvar PORTDIR_OVERLAY # eix --print 'PORTDIR_OVERLAY'; echo # update-eix
# 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.
(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?
Are we talking about eix-0.13.3? If we are not, does eix-0.13.3 work for you?
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.
(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?
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.