Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds a new top-level command,
melange rebuild
, which takes an existing APK (or multiple), and extracts the.melange.yaml
and.PKGINFO
embedded in the control section, and uses it to build the package again from locked inputs.The intention is that we would be able to tell whether package builds are reproducible when built with all the same config and versions of the tools that were originally used, and if they're not reproducible, how.
Initial tests are promising!
To rebuild our
crane
package:Its
crane
binary has the same digest as the original package:🎉
There are however some differences in the surrounding package metadata, which is either a TODO for
rebuild
or for how we embed stuff into.melange.yaml
accounts
block is moved around inexplicablycrane
is added twice to thetest
package dependenciesFile contents are also slightly different:
dialout
probably because of docker runner vs bwrapTo enable this, it's only a warning to include
uses
andwith
with apipeline
, since that's how we resolve the.melange.yaml
.