Skip to content

CI: Add recipes to check completeness and reproducibility of dist archives #2829

Open
@jimklimov

Description

@jimklimov

Follow-up from #2825/#2828 and thoughts that came along: the make dist archives (further verified by make distcheck) identify source files to include into the archive by several means, including EXTRA_DIST spelled out in Makefile.am, template transformations in configure.ac, and numerous *_SOURCE, *_HEADERS, *_DATA etc. make variables used in the recipes.

In many cases, where optional builds are involved, we go the way of either declaring some files as sources for a program or library (or its certain optional feature), or explicitly EXTRA_DIST'ing them.

If we miss some mark during such manual maintenance, it is potentially possible that a "dist" archive created from a build configuration without some optional build products would not include the sources needed to create those products on a more capable system.

This issue proposes a couple of checks:

  • configure --without-everything && make distcheck(-light) to produce a dist archive with the possibly incomplete set of source files, and then try to build everything possible on the current system (to make sure we have the sources for that)
  • configure and create dist archives under various combinations of --with-all, --with-dev, --with-docs and specific features (may require dependencies to be installed on the agent doing this), unpack each into a separate directory, and verify that they have same contents.

This may be related to (solution automated along with) issue #1400

Metadata

Metadata

Assignees

No one assigned

    Labels

    CIEntries related to continuous integration infrastructure (here CI = tools + scripts + recipes)packagingportabilityWe want NUT to build and run everywhere possible

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions