package/pkg-generic: add the concept of extract dependency
authorThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 24 Mar 2018 14:20:02 +0000 (15:20 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Sun, 25 Mar 2018 15:43:07 +0000 (17:43 +0200)
commite15ec4c56b811449047049cba89e178d8ee0fccd
tree9514340921b152c92208b6d6764b9f8375f57f40
parent6729050f3a49dba42d2d881d31dbefd6b82b8dad
package/pkg-generic: add the concept of extract dependency

Extract dependencies are dependencies that must be ready before the
extract step of a package, i.e for tools that are needed to extract
packages themselves. Current examples of such tools are host-tar,
host-lzip and host-xz.

They are currently handled through DEPENDENCIES_HOST_PREREQ. However,
this mechanism has a number of drawbacks:

 - First and foremost, because host-tar/host-lzip/host-xz are not
   listed in the dependencies of packages, the package infrastructure
   does not know it should rsync them in the context of per-package
   SDK.

 - Second, there is no dependency handling *between* them. I.e, we
   have no mechanism that says host-tar should be built before
   host-lzip, while it is in fact the case: if you need to build
   host-lzip, you need to extract a tarball, so you may need host-tar
   if your system tarball is not capable enough.

For those reasons, it makes sense to add explicit support for "extract
dependencies" in the package infrastructure, through the
<pkg>_EXTRACT_DEPENDENCIES variable. It is unlikely this variable will
ever be used by a package .mk file, but it will be used internally by
the package infrastructure.

[Peter: fix typo in manual]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: Matt Weber <matthew.weber@rockwellcollins.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
docs/manual/adding-packages-generic.txt
package/pkg-generic.mk