Provide a sustainable means of specifying dependencies on externally delivered
components. For example, within a package, specify a dependency on a particular
version of Java even though Java is not necessarily delivered as a package in a
repository associated with the images of interest.
Associated with this interest is the ability to cleanly specify the wiring
between consuming components and such external dependencies. For example, if
you have a multi-platform package that depends on an external implementation of
OpenSSL and that implementation is not available in a consistent location, how
should the consuming component refer to the dependency?
Today, initial installation programs often try to ensure that fundamental
dependency requirements of the underlying OS environment are met. For example,
many installation programs attempt detect installations of Java, inform the user
when a suitable version is not present, enable the user to select a discovered
version and pass the location of the selected installation to the application
that is being installed. That's all well and good for the initial installation
program scenario, but after the fact installations of components will have
similar needs - i.e. where no initial installation program exists.