When I merge BusyBox, I notice that it doesn't create any of the symlinks to itself that I often see on bootdisks and such. There's an obvious reason for that -- it doesn't want to overwrite the more functional binaries that might already be there. But it would be nice to have those links for binaries that aren't already there? Ok, say I have gzip and BusyBox installed, and I remove gzip. Since BusyBox has already been merged (and wouldn't overwrite gzip), I have no gzip binary. Be nice if there could be "layers" of packages, so that a preferred package (like gzip) would always be "on top" of things like BusyBox -- gzip would overwrite BB binaries, but not vice versa -- and unmerging gzip would leave a BusyBox symlink behind? As for the implementation, probably binary packages (PORTDIR/packages) would be used somehow, though I'm sure there are other solutions. Of course, BusyBox is only the beginning. What about wine/winex? sed/supersed? locate/slocate?
sed/supersed sed = sed supersed = ssed
True, but SuperSed is supposedly backwards compatable with sed, and supposedly faster. There could be a symlink from ssed to sed, but this is like the opposite of the BusyBox thing -- what if I get rid of supersed, but want the sed binary back?
This issue is worked out on a per-package basis. Recently this has actually come up with supersed/sed and locate/slocate. Anything beyond basic overlapping is handles by virtuals.