Most free software distributions are self-contained: all tools required to build their components are part of the distribution. In such cases, it’s possible to specify the build environment in a machine readable format that can be later used to reinstall the environment.

As example, the .buildinfo control files used by Debian tie in the same file: the sources, the generated binaries, and all packages used to perform the build (with the exact version number).