[Buildroot] [PATCH v2 0/5] Ensure extractor dependencies are taken into account

Thomas Petazzoni thomas.petazzoni at bootlin.com
Mon Dec 16 15:31:12 UTC 2019


Hello,

The starting point for this series is to fix the following build
failure:

  http://autobuild.buildroot.net/results/83c/83c6d47c06334bef27791a59bdd491b1de124c49/build-end.log

The problem is the following:

 - The _SOURCE for gettext-tiny is a .tar.gz

 - In addition to this _SOURCE tarball, we also extract the
   gettext-gnu source code, which is a .tar.xz

 - Extracting .tar.xz may require building host-xzcat, is xzcat is not
   available system-wide

 - The build fails because host-xzcat is not added in the dependencies
   of gettext-tiny. Indeed, while generic-package takes care of adding
   the extract dependencies needed for _SOURCE, it does not know about
   other extract dependencies.

This issue appears in
http://autobuild.buildroot.net/results/83c/83c6d47c06334bef27791a59bdd491b1de124c49/build-end.log
because BR2_PER_PACKAGE_DIRECTORIES=y and therefore any missing
dependency is immediately visible. But in theory, it could appear
without per-package support.

This series solves that by introducing an extractor-pkg-dependency
that returns the list of packages that must be added to
<pkg>_EXTRACT_DEPENDENCIES to extract the archive passed as
argument. It is then used in package/pkg-generic.mk to replace the
existing logic to calculate <pkg>_EXTRACT_DEPENDENCIES, and extended
to take into account the extractor dependencies needed by
_EXTRA_DOWNLOADS instead of just _SOURCE.

We also rename extractor-dependency to extractor-system-dependency to
clarify its difference from extractor-pkg-dependency, and we rework
the implementation of extractor-system-dependency.

Changes since v1:

 - Instead of fixing manually individual packages, directly derive
   extractor dependencies of EXTRA_DOWNLOADS files inside the
   generic-package infrastructure. Suggested by Yann. This allowed to
   greatly removed the number of patches in the series.

 - Added Reviewed-by from Romain Naour on patches 1 and 4.

Best regards,

Thomas Petazzoni

Thomas Petazzoni (5):
  package/pkg-utils.mk: rename extractor-dependency to
    extractor-system-dependency
  package/pkg-utils.mk: add extractor-pkg-dependency macro
  package/pkg-utils.mk: rework implementation of
    extractor-system-dependency
  package/pkg-generic.mk: use extractor-pkg-dependency macro
  package/pkg-generic.mk: also apply extractor-pkg-dependency to
    <pkg>_EXTRA_DOWNLOADS

 package/pkg-generic.mk                   | 14 ++++----------
 package/pkg-utils.mk                     | 24 ++++++++++++++++++------
 support/dependencies/check-host-lzip.mk  |  1 -
 support/dependencies/check-host-xzcat.mk |  1 -
 4 files changed, 22 insertions(+), 18 deletions(-)

-- 
2.23.0



More information about the buildroot mailing list