Future EAPI/New dependency types

From Gentoo Wiki
Jump to: navigation, search

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

The types

Build-against dependencies; bug #392239. It would be used to inject additional DEPEND into a package being built against the package in question.
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.
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 DEPEND, 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.
Install-time dependencies; bug #660306. Tools required for pkg_* phases; useful when binary a package is being installed and thus DEPEND does not fit.
Note: this type would probably need to be split between CBUILD & CHOST dependencies.
Note: Is the CHOST type already covered by RDEPEND?
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.
Suggested dependencies; bug #327701. A way of providing suggestions to install additional packages which can provide additional features to the package in question.
Test dependencies; bug #541938. Additional dependencies needed for the src_test() phase.
Note: this type would probably need to be split between CBUILD & CHOST dependencies.