| Summary: | Make internal build scripts public | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Tools] GEF | Reporter: | Ben Konrath <bkonrath> | ||||
| Component: | Misc | Assignee: | Anthony Hunter <ahunter.eclipse> | ||||
| Status: | RESOLVED FIXED | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | nyssen, tmacdoug | ||||
| Version: | unspecified | ||||||
| Target Milestone: | 3.4.0 (Ganymede) M5 | ||||||
| Hardware: | PC | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
|
Description
Ben Konrath
Created attachment 37550 [details]
patch to unset the bootclasspath of org.eclipse.releng.gefbuilder
The build scripts are not designed for consumption. They are for our own use. You are free to copy them and modify them as you see necessary. Actually, it looks like the project org.eclipse.releng.gefbuilder is no longer being maintained. I am not sure why. I know we have internal build scripts, but I don't know why they wouldn't be checked in to CVS. I will retitle this bug as a request to make the current scripts public. But, if they don't work for your, we can't really help. Its a good idea to remove the bootclasspath property though, if still being used, and if not known to be needed for some special libraries required to be added to your your bootclasspath (I hope not!) I know we in WTP had been using it "for years" for no apparent reason, other than "copying how the base does it", but when we moved to do builds on PPC machines with and IBM JRE we had to remove it. When we asked the base why they did it, the reply was, basically, "we dont' know, we just copied if from somewhere" :) Hi Randy, It would be really nice to be able to get access to the build scripts that you use. Building from source is part of Red Hat’s distribution process for both RHEL and Fedora. As such our only option right now is to use gefbuilder. It would be unfortunate if the GEF version we shipped differed from the binary drop you provide because we have to use unsupported build scripts. If I can provide any help releasing the build scripts, please let me know. Thanks, Ben Tom has been working on the build. I'll let him comment. Here is a summary of the scripts that perform the build: Our main script grabs the basebuilder and gefbuilder code: #check out org.eclipse.releng.basebuilder cvs -Q -d :pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse co -r HEAD org.eclipse.releng.basebuilder #check out org.eclipse.releng.gefbuilder cvs -Q -d :pserver:anonymous@dev.eclipse.org:/cvsroot/tools co -r HEAD org.eclipse.releng.gefbuilder ... it copies all.xml to the directory that houses org.eclipse.releng.gefbuilder and org.eclipse.releng.basebuilder and then runs the top level ant script (all.xml) $JDK_HOME/bin/java -Dosgi.os=linux -Dosgi.ws=gtk -Dosgi.arch=x86 -cp ../org.eclipse.releng.basebuilder/startup.jar org.eclipse.core.launcher.Main -application org.eclipse.ant.core.antRunner -buildfile all.xml $testBuild -DbuildDirectory=$buildDirectory -Dbootclasspath=$bootclasspath -DbuildType=$buildType -D$buildType=true -DbuildId=$buildId -DbuildLabel=$buildLabel -Dtimestamp=$timestamp $tag -DJAVADOC14_HOME=$JAVADOC14_HOME -DjavacDebugInfo=true -DjavacSource=1.3 -DjavacTarget=1.2 -DbuildingOSGi=true -DmainDir=$mainDir ------------------------------------------------------------- all.xml contains the following code: <project default="main"> <property name="base.builder" value="${basedir}/org.eclipse.releng.basebuilder" /> <property name="pde.build.scripts" value="${base.builder}/plugins/org.eclipse.pde.build/scripts" /> <property name="builder.scripts" value="${basedir}/org.eclipse.releng.gefbuilder" /> <target name="main"> <ant antfile="build.xml" dir="${pde.build.scripts}"> <property name="builder" value="${builder.scripts}/runtime" /> <property name="noclean" value="true" /> </ant> <ant antfile="build.xml" dir="${pde.build.scripts}"> <property name="builder" value="${builder.scripts}/sdk" /> <property name="noclean" value="true" /> </ant> <ant antfile="build.xml" dir="${pde.build.scripts}"> <property name="builder" value="${builder.scripts}/examples" /> </ant> <ant antfile="build.xml" dir="${pde.build.scripts}"> <property name="builder" value="${builder.scripts}/tests" /> </ant> <antcall target="createAllZip"/> </target> <target name="createAllZip"> <mkdir dir="${tempAllDir}" /> <unzip dest="${tempAllDir}" overwrite="true"> <fileset dir="${basedir}/../eclipse/${buildLabel}"> <include name="GEF-examples-*.zip" /> <include name="GEF-SDK-*.zip" /> </fileset> </unzip> <exec dir="${tempAllDir}" executable="zip"> <arg line="-r GEF-ALL-${buildId}.zip eclipse"/> </exec> <move file="${tempAllDir}/GEF-ALL-${buildId}.zip" todir="${tempAllDir}/../${buildLabel}"/> </target> </project> You will have to set the values but that should get you started. As for the patch, I am not sure what I will have to change if it is applied. I also do not have rights to apply it. Tom, I think Ben's aware how to build using the ant scripts available. As for the bootclasspath, Ben, I believe you can just set the property before it's loaded from the build.properties file and it should work for you. Just to clarify, org.eclipse.releng.gefbuilder IS being maintained and used. We don't use the build.xml in there, but esentially do the same thing in our scripts (as Tom showed in the script snippet in comment 7). The internal scripts can't be made public. They'd be useless to anybody else because they only work for the setup on our machine, have some machine-specific info, a lot of stuff that external builders wouldn't be interested in (creating the build pages put on our site, for instance), and most importantly, has some stuff that's not available under EPL. Ben, Ant doesn't overwrite property values once they've been set. So, if you just set the value for the bootclasspath property before the build scripts in gefbuilder, you'll be fine. (In reply to comment #9) > Just to clarify, org.eclipse.releng.gefbuilder IS being maintained and used. > We don't use the build.xml in there, but esentially do the same thing in our > scripts (as Tom showed in the script snippet in comment 7). The internal > scripts can't be made public. They'd be useless to anybody else because they > only work for the setup on our machine, have some machine-specific info, a lot > of stuff that external builders wouldn't be interested in (creating the build > pages put on our site, for instance), and most importantly, has some stuff > that's not available under EPL. Thanks for the clarification here. I asked for the internal build scripts becuase Randy suggested that gefbuilder wasn't being maintained. > Ben, Ant doesn't overwrite property values once they've been set. So, if you > just set the value for the bootclasspath property before the build scripts in > gefbuilder, you'll be fine. Yeah, I was able to work around the bootclasspath problem by manually setting the bootclasspath with the following: -Dbootclasspath=/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/charsets.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/core.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/graphics.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/ibmcertpathprovider.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/ibmjaaslm.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/ibmjcefw.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/ibmjgssprovider.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/ibmjssefips.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/ibmjsseprovider.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/ibmorb.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/ibmorbapi.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/ibmpkcs.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/javaplugin.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/rt.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/security.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/server.jar:/usr/lib/jvm/java-1.4.2-ibm-1.4.2.3/jre/lib/xml.jar One problem is that it is not immediately obvious what to set here. Also, if I swap out JREs, I may or may not have to change this property because it may be n JRE specific. By applying the patch to remove the bootclasspath enteries, we can avoid both of these problems. David William seems to have encountered the same problem and agrees with the solution. Sounds like the information has been provided. The GEF builds scripts are in CVS. Is this still an issue requiring fixing? Completed with Bug 212060 All build scripts are in CVS on Eclipse.org . Search for modeling project releng on the Eclipse wiki for detailed information. Comment on attachment 37550 [details]
patch to unset the bootclasspath of org.eclipse.releng.gefbuilder
It seems this patch has not been applied, thus marking it as obsolete.
|