-
Notifications
You must be signed in to change notification settings - Fork 333
Open
Labels
enhancementNew feature or requestNew feature or request
Description
To be able to validate a release artifact (jar, tarball, zip, etc) against the state of the source tree, the artifacts need to be generated in a reproducible way.
There are a few, totally build related differences as of today:
- jar files:
META-INF/MANIFEST.MFhave different attributes (fixed)Apache-Polaris-Is-Release(depends on the-Preleasevs just-PjarWithGitinfoproperty)Apache-Polaris-Build-Git-Describe(same as above)Apache-Polaris-Build-Timestamp- could be changed to the Git commit timestamp using UTCApache-Polaris-Build-System- remove this oneApache-Polaris-Build-Java-Version- remove this one
- jar files:
META-INF/jandex.idxare reported to be different (fixed) - jar files: mtime of
META-INF/MANIFEST.MFandMETA-INF/jandex.idxvary (fixed) -
..../quarkus/generated-bytecode.jarclass files differ. Since Quarkus 3.28.2, the generated bytecode is often the same, but there is still no guarantee. - varying order of entries in Quarkus re-assembled
.../app/polaris-*.jararchives (Reproducible order of enties inapp/<project-name>.jarquarkusio/quarkus#50578) - "group write" POSIX permission varies between platforms for zip/tar archive entries (fixed via Reproducible builds: ensure unix permissions are reproducible #2819)
With all mentioned issues addressed, it should be possible to build distribution artifacts that match binary, leading to the same sha512. - source tarballs have entries with "current mtime". The source tarballs should use a fixed mtime (fixed via Reproducible builds: use a fixed mtime for all entries in the source tarball #2823)
- "Top level POM" is not reproducible, because the POM
<developers>and<contributors>elements are dynamically populated at build time (fixed via Reproducible builds: make parent pom content reproducible #2826). - Helm chart package tarball (generated via
helm package) is not reproducible,helm packagehas no options to "fix" entries' mtime and POSIX attributes. See: Releasy: make Helm package reproducible (Releasy: make Helm package reproducible #3086) - Source-tarball - eliminate git-gzip risk (via Source-tarball - eliminate git-gzip risk #3075)
- Build: Ensure reproducible .properties files (via Build: Ensure reproducible .properties files #3089)
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request