mbox series

[v3,0/3] do not build -compat/-native for dpkg-raw packages

Message ID 20240926033935.2955085-1-cedric.hombourger@siemens.com
Headers show
Series do not build -compat/-native for dpkg-raw packages | expand

Message

cedric.hombourger@siemens.com Sept. 26, 2024, 3:39 a.m. UTC
The intent of the dpkg-raw class is to easily package configuration and data
files into a Debian package. Packages to be compiled should really use other
dpkg classes where support for cross-compilation and multiarch is provided
and tested. `DPKG_ARCH` is now defaulting to `all` for `dpkg-raw` recipes.

Despite this change, Isar may still build dpkg-raw packages a second time
when pulled by a -compat or -native package. multiarch is changed to check
if DPKG_ARCH is "all" and will add -compat and -native to the PROVIDES of
the package (this condition will be checked for all dpkg variants)

It shall be noted that setting DPKG_ARCH in a recipe is a contract, the
user declares that generated package(s) are either architecture dependent
or independent.

Changes in v3:
 * Do not warn if DPKG_ARCH is not "all" as users may use this class
   to create a Debian package from a prebuilt binaries (shared libraries,
   applications, etc.)
 * Set DEBIAN_MULTI_ARCH to "foreign" in dpkg-raw if DPKG_ARCH is "all"
 * Introduce helpers in a separate commit to ease reviews (a "fast"
   ci_build run was used to validate this intermediate step).

Changes in v2:
 * v1 used a completely different approach where we were ensuring that
   do_install was called whether sources were built or pulled from
   isar_apt (do_fetch_common_source) since override_dh_install is
   pulling contents of dpkg-raw packages outside of the source tree
   (${PP}/image)

Cedric Hombourger (3):
  multiarch: introduce some helpers to later handle corner cases
  multiarch: avoid separate builds when DPKG_ARCH is all
  dpkg-raw: change DPKG_ARCH to all

 RECIPE-API-CHANGELOG.md        | 10 ++++++++++
 meta/classes/dpkg-raw.bbclass  |  4 ++++
 meta/classes/multiarch.bbclass | 34 ++++++++++++++++++++++++----------
 3 files changed, 38 insertions(+), 10 deletions(-)