Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Making Builds Reproducible"
(→Making Builds Reproducible) |
|||
Line 1: | Line 1: | ||
===Making Builds Reproducible=== | ===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: | ||
+ | |||
+ | # check out releng plugin | ||
+ | # 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: | In an ideal world, all it would take to build a project on top of the SDK would be something like this: | ||
− | + | # assume SDK is available | |
# check out project releng plugin | # check out project releng plugin | ||
+ | # ideally there would be no custom build.xml which is essentially a shell for PDE build | ||
+ | ## (if things need to be done that are special, can they not | ||
# java -cp $SDK/startup.jar org.eclipse.core.launcher.Main -application org.eclipse.ant.core.antRunner -Dcomponent=<whatever> -DbaseLocation=$SDK -DskipFetch=true | # 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 |
Revision as of 13:44, 13 September 2006
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:
- check out releng plugin
- 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:
- assume SDK is available
- check out project releng plugin
- ideally there would be no custom build.xml which is essentially a shell for PDE build
- (if things need to be done that are special, can they not
- 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