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

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.
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.
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 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.
IDEPEND
Install-time dependencies. 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.
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.
Note: this type would probably need to be split between CBUILD & CHOST dependencies.

Listing of suggested 'longer' names

If we decide to switch to a more meaningful dependency variable names, here are some ideas:

  • BADEPEND -> BUILD_AGAINST_DEPEND
  • BDEPEND -> BUILD_DEPEND
  • FDEPEND -> FETCH_DEPEND
  • HDEPEND -> HOST_DEPEND (HOST_BUILD_DEPEND?)
  • IDEPEND -> INSTALL_DEPEND (PKG_DEPEND?)
  • LDEPEND -> LIB_DEPEND (LINK_DEPEND?)
  • PDEPEND -> POST_DEPEND
  • RDEPEND -> RUN_DEPEND (RUNTIME_DEPEND?)
  • SDEPEND -> SUGGESTED_DEPEND
  • ...