NBPR.Buildroot.Harvest (NBPR v0.2.1)

Copy Markdown View Source

Locates per-package Buildroot output and packages it as an NBPR.Pack.sources() map for hand-off to NBPR.Pack.pack!/3.

After NBPR.Buildroot.Builder.build!/3 runs make <pkg>-rebuild with BR2_PER_PACKAGE_DIRECTORIES=y, the per-package output is at:

<output_dir>/per-package/<br_package>/
   target/        # files installed into the rootfs
   staging/       # sysroot-side (headers, .so symlinks for NIFs)
   host/          # build-host artefacts (skipped — not for distribution)

Harvest returns the appropriate :target and :staging source paths if they exist; legal-info aggregation, source-tarball collection, and rootfs/ categorisation (for kmod files etc.) are not yet automated.

Summary

Functions

Returns the NBPR.Pack.sources() map for br_package under output_dir.

Functions

harvest!(output_dir, br_package)

@spec harvest!(Path.t(), String.t()) :: NBPR.Pack.sources()

Returns the NBPR.Pack.sources() map for br_package under output_dir.

Raises if the per-package output directory is missing or empty — usually a sign that BR2_PER_PACKAGE_DIRECTORIES=y wasn't enabled or the build itself didn't run.