Software Management/Dependencies/Kernel

From openSUSE

Kernel Dependant Packages and Enhances

For kernel-dependant packages, enhances is important in order to give the right hint to the solver when multiple packages provide the same capability.

REMARK: This is just a (bad) example. For kernel driver packages, which depend on hardware and kernel, modalias(...) provides should be used instead.


Example:

tpctl, an application, requires tpctl-kmp, a kernel dependant package. However, there is no tpctl-kmp packages, but multiple ones providing this tag.

  • tpctl-kmp-default provides tpctl-kmp but depends on (requires) kernel-default
  • tpctl-kmp-smp provides tpctl-kmp but depends on (requires) kernel-smp
  • tpctl-kmp-bigsmp provides tpctl-kmp but depends on (requires) kernel-bigsmp

When trying to fulfill the dependency tpctl-kmp there is no way for the solver to choose the right package. It can only evaluate all three possibilities, which in turn drag in extra kernel packages due to requirements. A user might know that extra kernels are not wanted, but to the solver its a normal package dependency which must be honored.

So the solver needs some extra information in order to decide which of the tpctl-kmp-* packages is the right one. This should be done by adding enhances:

  • tpctl-kmp-default enhances kernel-default
  • tpctl-kmp-smp enhances kernel-smp
  • tpctl-kmp-bigsmp enhances kernel-bigsmp