update-eix fails when /usr/portage is empty (and PORTDIR happens to be located elsewhere): epia ~ # update-eix Reading Portage settings .. Building database (/var/cache/eix) from scratch .. [0] /usr/portage/ (cache: flat) Reading 100% [1] /keeps/gentoo/local (cache: none) Reading 100% Applying masks .. Can't read /usr/portage/profiles/package.mask Database contains 0 packages in 3 categories.
Followed up with: epia ~ # cd /usr/ ; ln -s /keeps/gentoo/portage portage ; update-eix Reading Portage settings .. Building database (/var/cache/eix) from scratch .. [0] /usr/portage/ (cache: flat) Reading 026% <and so on>
Ok, that was on a system that lacked the /usr/portage directory entirely. If that directory is present but empty, update-eix reports no problem at all: it just writes an empty database for it and gives no error message or error value.
It seems that the new VarsReader::read() code forgets to update values of non-incremental vars as it reads them, and thus miss user-defined $PORTDIR. I will attach a patch which seems to work here.
Created attachment 73778 [details, diff] eix-0.5.0_rc1-fix-varsreader.patch
has been fixed already.. http://dev.croup.de/proj/eix/changeset/43
Doh! Oh well, at least it confirms this patch was correct... :)
0.5.0 is in cvs