sys-libs/gdbm-1.9.1 should have +compat in IUSE. This is because libgdbm_compat is required by all the major packages that use gdbm, including dev-lang/perl, devl-lang/python, and dev-lang/ruby. Given that the vast majority of Gentoo users who use gdbm will have to enable this USE flag on their systems, the gdbm ebuild should just enable it by default.
the ebuilds need to fix their deps either way. upstream disables the compat lib by default, hence so does the ebuild.
(In reply to comment #1) > the ebuilds need to fix their deps either way. upstream disables the compat > lib by default, hence so does the ebuild. 1. Upstream's decision is, IMHO, not the right one for Gentoo. Maybe upstream is developing for an embedded system, but on Gentoo, given the packages that actually use gdbm, compat should be the default. 2. gdbm-1.8.x installed libgdbm_compat by default (and in fact offered no way to disable it). Thus, 1.9.1 with its default-disabled compat USE flag represents a major change of behavior in a core package. The correct way to handle such a situation would have been to mask 1.9.1, file a tracker bug, and give maintainers of all the packages that use gdbm a reasonable length of time to fix their dependencies.
older versions always installing compat libraries isn't a compelling argument for future ones to also include cruft. it should be weeded out; not encouraged.
once perl/python no longer need it, +compat is going away. perl/python get exceptions only because we set USE="gdbm perl python" in our default profiles. all other packages can suck it. http://sources.gentoo.org/sys-libs/gdbm/gdbm-1.9.1-r1.ebuild?r1=1.1&r2=1.2
(In reply to comment #3) > older versions always installing compat libraries isn't a compelling argument > for future ones to also include cruft. it should be weeded out; not > encouraged. It's not cruft, it's compatibility with Berkeley db. Without libgdbm_compat, gdbm can no longer work as a near-replacement for sys-libs/db (which is the way in which many packages are currently using it). Unless, of course, you think that sys-libs/db itself is cruft...
it is cruft. but i thought it was a different kind. this makes it sound like i should rename it from IUSE=compat to IUSE=berkdb.