»Q« <[email protected]> wrote: > >> $ grep KEYWORDS /usr/portage/metadata/md5-cache/dev-perl/Pango-1.224.0-r1 >> KEYWORDS=~alpha ... >> >> $ grep KEYWORDS /usr/portage/dev-perl/Pango/Pango-1.224.0-r1.ebuild >> KEYWORDS="alpha ..."
This seems to be a race issue in the gentoo infrastructure: Calculation of the metadata can need a long time. Apparently, this happens on the same directory into which fresh ebuilds are fetched so that the whole data can be inconsistent in some cases. Portage apparently verifies with a checksum whether metadata is up-to-date, and if not, it calculates the metadata locally, so it detects the race and "fixes" it locally. Eix does not use this mechanism by default, because checksumming for the whole tree slows down considerably, and execution of ebuilds (to calculate the metadata) is always very slow and a security risk: Note that in contrast to portage, eix has to do it for every ebuild in the tree (portage only does it on an as-needed basis). It should be possible to configure eix to behave this way, too (though I hardly ever tested it.) >From memory, I guess that putting one of PORTDIR_CACHE_METHOD="parse#metadata-md5#assign" PORTDIR_CACHE_METHOD="parse|ebuild*#metadata-md5#assign" PORTDIR_CACHE_METHOD="ebuild*#metadata-md5" PORTDIR_CACHE_METHOD="ebuild#metadata-md5" in /etc/eixrc/ should do (ordered from fastest/still safe but not very reliable to slowest/least secure but completely reliable). (Maybe the appendix [the part after #] is autoamtic by CACHE_METHOD_PARSE; I do not recall in the moment whether CACHE_METHODS_PARSE applies to PORTDIR_CACHE_METHOD as well.) > I ran eix-sync again -- D'oh! I meant not to do that in case waiting > would help answer my question -- and now the KEYWORDS in > metadata/md5-cache/dev-perl/Pango-1.224.0-r1r1 matches the KEYWORDS in > the ebuild, and all is healed again. Yes, meanwhile the metadata generation on the gentoo infrastructure had probably been executed once more. It might be that the metadata for some other ebuild is then out of sync. > I would like to know how the metadata cache gets out of step with the > info in the ebuilds in the first place, how to prevent that Except generating the metadata by yourself there is not much you can do. Alterantively, file a bug to infra, 'though I am not sure whether they will consider it as a bug, since portage has means to linger the effect.

