Hi Gary,

On Fri, 29 Dec 2023 at 13:37, Gary Gregory <garydgreg...@gmail.com> wrote:
> I do appreciate the fact that I can ask "Am I reproducible" but the
> output is... cryptic.

Yes, unfortunately if the check fails, finding the reason of the
failure is hard.

> For example:
> ...
> ├── META-INF/MANIFEST.MF
> │ @@ -65,11 +65,12 @@
> │   b.asm;resolution:=optional,javax.crypto;resolution:=optional,javax.cryp
> │   to.spec;resolution:=optional,org.apache.commons.codec.digest,org.apache
> │   .commons.io,org.apache.commons.io.file.attribute,org.apache.commons.io.
> │   input,org.apache.commons.io.output,org.apache.commons.commons-codec;res
> │   olution:=optional,org.apache.commons.commons-io;resolution:=optional
> │  Include-Resource: META-INF/LICENSE.txt=LICENSE.txt,META-INF/NOTICE.txt=N
> │   OTICE.txt
> │ +Originally-Created-By: Apache Maven Bundle Plugin 5.1.9
> │  Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
> │  Tool: Bnd-6.4.1.202306080939
> │  Multi-Release: true

You have a difference in the MANIFEST.MF that consists of an
additional "Originally-Created-By" header.

Hervé already solved this mystery and you can find the Maven command
line required here:

https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/apache/commons/compress/commons-compress-1.25.0.buildspec

The reproducibility problem is caused by multiple executions of the
Apache Maven Bundle Plugin. If you start with an empty `target`
directory:

 * the first execution creates a MANIFEST.MF file, notably a
"Created-By" header,
 * the second execution reads the MANIFEST.MF file, changes it and
renames the "Created-By" header from the first execution into
"Originally-Created-By".

TL;DR: Running `mvn package package artifact:compare` solves the problem.

Piotr

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to