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 (historically also recipes like Makefiles)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