Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 134567

Summary: Make internal build scripts public
Product: [Tools] GEF Reporter: Ben Konrath <bkonrath>
Component: MiscAssignee: 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 Flags
patch to unset the bootclasspath of org.eclipse.releng.gefbuilder none

Description Ben Konrath CLA 2006-04-03 13:31:51 EDT
The IBM VM doesn't put the java.awt classes in rt.jar, so building the org.eclipse.gef plugin with an IBM VM fails. To avoid this problem, the bootclasspath property should not be set.
Comment 1 Ben Konrath CLA 2006-04-03 13:32:47 EDT
Created attachment 37550 [details]
patch to unset the bootclasspath of org.eclipse.releng.gefbuilder
Comment 2 Randy Hudson CLA 2006-04-03 14:20:48 EDT
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.
Comment 3 Randy Hudson CLA 2006-04-03 14:31:09 EDT
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.
Comment 4 David Williams CLA 2006-04-03 17:30:07 EDT
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" :) 

Comment 5 Ben Konrath CLA 2006-04-11 10:50:59 EDT
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
Comment 6 Randy Hudson CLA 2006-04-11 11:40:38 EDT
Tom has been working on the build. I'll let him comment.
Comment 7 Tom Macdougall CLA 2006-04-12 17:29:52 EDT
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.

Comment 8 Pratik Shah CLA 2006-04-12 18:00:15 EDT
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.
Comment 9 Pratik Shah CLA 2006-04-13 12:32:01 EDT
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.
Comment 10 Ben Konrath CLA 2006-04-13 14:17:52 EDT
(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.
Comment 11 Anthony Hunter CLA 2006-11-14 16:07:39 EST
Sounds like the information has been provided.
The GEF builds scripts are in CVS.
Comment 12 Anthony Hunter CLA 2007-03-20 16:02:23 EDT
Is this still an issue requiring fixing?
Comment 13 Anthony Hunter CLA 2008-05-30 15:11:51 EDT
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 14 Alexander Nyßen CLA 2014-05-22 04:12:54 EDT
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.