Making Builds Reproducible

From Eclipsepedia

Revision as of 13:44, 13 September 2006 by Overholt.redhat.com (Talk | contribs)

Jump to: navigation, search

Making Builds Reproducible

Background

In order to build non-SDK projects offline -- a requirement of our buildsystem for security purposes -- we must do the following:

  1. check out releng plugin
  2. add a fetch target

In an ideal world, all it would take to build a project on top of the SDK would be something like this:

  1. assume SDK is available
  2. check out project releng plugin
  3. ideally there would be no custom build.xml which is essentially a shell for PDE build
    1. (if things need to be done that are special, can they not
  4. java -cp $SDK/startup.jar org.eclipse.core.launcher.Main -application org.eclipse.ant.core.antRunner -Dcomponent=<whatever> -DbaseLocation=$SDK -DskipFetch=true

In practice, we run into common gotchas such as:

  • customTargets.xml attempts to fetch dependencies with no flags to override this behaviour
    • ex. getBaseBuilder is in postFetch unconditionally - I have to patch this out
  • inconsistent flags to avoid fetching
    • ie. we would like there to be