Future EAPI/New dependency types

From Gentoo Wiki
Jump to:navigation Jump to:search

This page provides a summary of new dependency types requested for various features.

The types

BADEPEND (aka CDEPEND)
Build-against dependencies; bug #392239. It would be used to inject additional DEPEND into a package being built against the package in question.
(Only?) use case: xorg packages, where e.g. building against libX11 requires header files in xorg-proto. However, libX11 can still be used without xorg-proto installed, so RDEPEND is not really correct. An alternative is to specify xorg-proto in every single ebuild linking against libX11 directly or indirectly.
Note: This has also been suggested under the name CDEPEND (for "compile-against depend") previously.
DYNRDEPEND
Dynamic runtime dependencies; portage-dev. A list of packages that will depended on when they are available at runtime. This would need to be implemented with logic to actually record the existence of those packages in the metadata for binary or installed packages.
FDEPEND
Fetch dependencies; bug #481434. If implemented, it will be used to specify the dependencies necessary for the src_fetch() phase (e.g. a particular VCS). Thus, the package manager will be required to delay the execution of that phase until all fetch dependencies have been satisfied.
Alternative solution: put fetch dependencies in BDEPEND, and request src_fetch() implementation to check whether the tool requirements are satisfied already. Allow the package manager to execute src_fetch() without satisfying the dependencies and if it fails, re-try when the dependencies are satisfied.
LDEPEND
Library dependencies. Packages providing a library that is linked to, the first dependency type listed for BSD ports, cf: LIB_DEPENDS, which portage descends from. These would automatically be considered both DEPEND and RDEPEND, but soname changes would be tracked, and this would provide better data for both embedded and normal builds, eg: for --preserved-rebuild.
SDEPEND
Suggested dependencies; bug #327701. A way of providing suggestions to install additional packages which can provide additional features to the package in question.
TDEPEND
Test dependencies; bug #541938. Additional dependencies needed for the src_test() phase. This type would probably need to be split between CBUILD & CHOST dependencies, e.g. TBDEPEND and THDEPEND.
Note: The name TDEPEND was also suggested in bug #317337 for "target build-time dependencies" (i.e. what has become DEPEND in EAPI 8).