IHMO portage has a severe restriction w.r.t. handling depencies; for a concrete example, see below. A package cannot be uniquely referenced by its name alone - it very much depends on which USE-flags were in effect when a package was built. - portage should keep record of all USE-flags that were in effect when a package was built - the base-packages in (R)DEPEND within an .ebuild file should not only state the name of a base-package but also the USE-flags that are required when the base-package is built, e.g. base-package:png:tk - emerge should check if an installed package has been built with the correct USE-flags. Otherwise it should rebuilt the base-package with the specified USE-flags added. The concrete example: after an emerge --update --deep world the enlightenment (e16) WM was broken, all window borders were greyed out and other popup windows, too. I've tried several combinations/rebuilds of versions of imlib2 / xorg-x11 and enlightenment. Nothing helped. Only with the help of Kim Woelders at the Enlightenment team I could find out the reason. imlib2 has been built without the USE-flag 'png'. So it had no support for loading .png files. But Englightenment just requires that. My ad hoc solution was to add 'png' to /etc/portage/packages.use, unemerge imlib2 and then emerge it again.
Until we get bug 2272 fixed, there's always build_with_use from the eutils eclass.
(In reply to comment #0) > - portage should keep record of all USE-flags that were in effect when > a package was built It does - /var/db/pkg/*/*/USE > - the base-packages in (R)DEPEND within an .ebuild file should not only > state the name of a base-package but also the USE-flags that are > required when the base-package is built, e.g. > base-package:png:tk There's another bug for this. > - emerge should check if an installed package has been built with the > correct USE-flags. Otherwise it should rebuilt the base-package with > the specified USE-flags added. That's what eutils.eclass built_with_use does until that other bug gets solved. > imlib2 has been built without the USE-flag 'png'. So it had no support > for loading .png files. But Englightenment just requires that. > My ad hoc solution was to add 'png' to /etc/portage/packages.use, > unemerge imlib2 and then emerge it again. File a bug for e16 maintainer to add the check there. Marking as dupe of Bug 2272. *** This bug has been marked as a duplicate of 2272 *** *** This bug has been marked as a duplicate of 2272 ***