[ 
https://issues.apache.org/jira/browse/MNG-6276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16195717#comment-16195717
 ] 

Hervé Boutemy commented on MNG-6276:
------------------------------------

thank you [~Zlika] for the followup: let's continue

we need to find a property name that everybody will agree upon: "reproducible" 
does not gain momentum yet, nor "idempotent", nor "deterministic"
Re-reading https://reproducible-builds.org/, which seems a good starting point, 
what about {{verifiable}}?
To me, finding an agreed property name is the only requirement to fix 
MSHARED-661, which one of the easiest part to code, then a good concrete first 
change to do.

To me, finding the right term is not just a detail, but a question of 
determining the right objective: looking at MSHARED-661, by removing 
timestamps, the build can be deterministic and idempotent on my personal 
machine, but our requirement is also that _someone else_ with a "decently near" 
configuration will get the bit-for-bit same result (then removing username 
avoids some stupid constraints on build environment configuration)

A general question: is there some writing somewhere on what are the issues in a 
basic java build? (by "basic" I mean that no advanced build tool like Maven and 
plugins adds more variable parts)
The first strong issue I see for example in basic builds is _timestamps for 
files in jars/wars/zips_
Is there something on the precise JDK version used? or compiler? If I build 
with JDK 8 with target 6, do I get the same .class than with JDK 6? If I build 
with OpenJDK or IBM JDK or Eclipse compiler or jikes, do I get the same result 
as with Oracle JDK?

Notice I just added a new entry in 
https://cwiki.apache.org/confluence/display/MAVEN/Proposals to track this 
proposal: I'll add a dedicated Wiki page to gather requirements, which will 
probably be useful on a long term documentation purpose in addition to our 
discussion in this Jira issue...

> Support reproducible builds
> ---------------------------
>
>                 Key: MNG-6276
>                 URL: https://issues.apache.org/jira/browse/MNG-6276
>             Project: Maven
>          Issue Type: New Feature
>          Components: core, General
>            Reporter: Paolo Sacconier
>
> A venerable build system like maven should support full build reproducibilty 
> (i.e. producing bit a bit identical binaries from the same source).
> As initiatives like https://reproducible-builds.org gain traction and the 
> news of the recent Debian policy change to mandate this build behavior (see 
> https://reproducible.alioth.debian.org/blog/posts/121/), this seems a feature 
> that needs to be considered for inclusion into maven core & core plugins.
> There is an independent ongoing effort to support this feature and the author 
> stated that he has found interest from maven project to integrate his work: 
> https://github.com/Zlika/reproducible-build-maven-plugin/issues/6#issuecomment-325005883
> I hope this issue helps kickstart the effort.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to