Petteri Räty wrote: > > so only three virtual ebuilds have a DEPEND According to GLEP 37 [1], they should only define RDEPEND. The reason that only RDEPEND is needed is that a package that has a virtual dependency has freedom to include the virtual atom in any of DEPEND, RDEPEND, and PDEPEND as necessary. Note that when portage's $ROOT feature is used, DEPEND is installed to the build platform. The virtual ebuild itself does not make this decision, but rather the package that has a virtual dependency. > > So it seems most ebuilds for new style virtuals don't have DEPENDs. > > Anyone have any idea on how these are supposed to work or are they > > buggy? PMS currently says that RDEPEND doesn't have to be installed at > > the time a package is emerged so as far as I understand it this means > > that DEPEND="virtual/foobar" could mean that it could happen that > > nothing providing the virtual is available. The bit about "RDEPEND doesn't have to be installed" is only for solving circular RDEPEND during the installation process. When a package has RDEPEND that is not installed, it must be considered unusable and therefore this state should only exist for a relatively short period of time during the installation process. > > So should we be changing the > > DEPEND atoms to DEPEND="${RDEPEND}" or is there something I am missing here? We should not, as I've explained above. Zac [1] http://www.gentoo.org/proj/en/glep/glep-0037.html
for reference: $ grep '^DEPEND="$' /usr/portage/virtual/*/*.ebuild $ grep '^DEPEND="[^"]' /usr/portage/virtual/*/*.ebuild /usr/portage/virtual/fortran/fortran-0.ebuild:DEPEND="${RDEPEND}" /usr/portage/virtual/gsasl/gsasl-2.ebuild:DEPEND="|| ( net-libs/libgsasl net-misc/gsasl )" /usr/portage/virtual/linux-sources/linux-sources-1.ebuild:DEPEND="firmware? ( sys-kernel/linux-firmware )" /usr/portage/virtual/yacc/yacc-0.ebuild:DEPEND="|| ( sys-devel/bison dev-util/byacc dev-util/yacc )"