diff options
Diffstat (limited to 'java/eclipse/files/patch-submodules')
-rw-r--r-- | java/eclipse/files/patch-submodules | 2210 |
1 files changed, 0 insertions, 2210 deletions
diff --git a/java/eclipse/files/patch-submodules b/java/eclipse/files/patch-submodules deleted file mode 100644 index 22e86ab6cd70..000000000000 --- a/java/eclipse/files/patch-submodules +++ /dev/null @@ -1,2210 +0,0 @@ -diff --git a/eclipse.pde.build/org.eclipse.pde.build/scripts/productBuild/allElements.xml b/eclipse.pde.build/org.eclipse.pde.build/scripts/productBuild/allElements.xml -index 1c2033f..e80dcd8 100644 ---- a/eclipse.pde.build/org.eclipse.pde.build/scripts/productBuild/allElements.xml -+++ b/eclipse.pde.build/org.eclipse.pde.build/scripts/productBuild/allElements.xml -@@ -70,6 +70,20 @@ - </ant> - </target> - -+ <property name="assemble.org.eclipse.pde.build.container.feature.freebsd.gtk.x86" value="true" /> -+ <target name="assemble.org.eclipse.pde.build.container.feature.freebsd.gtk.x86"> -+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}"> -+ <property name="archiveName" value="${archiveNamePrefix}-freebsd.gtk.x86.zip"/> -+ </ant> -+ </target> -+ -+ <property name="assemble.org.eclipse.pde.build.container.feature.freebsd.gtk.x86_64" value="true" /> -+ <target name="assemble.org.eclipse.pde.build.container.feature.freebsd.gtk.x86_64"> -+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}"> -+ <property name="archiveName" value="${archiveNamePrefix}-freebsd.gtk.x86_64.zip"/> -+ </ant> -+ </target> -+ - <property name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.x86" value="true" /> - <target name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.x86"> - <ant antfile="${assembleScriptName}" dir="${buildDirectory}"> -diff --git a/eclipse.pde.build/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/Utils.java b/eclipse.pde.build/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/Utils.java -index 442bd6c..119ce58 100644 ---- a/eclipse.pde.build/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/Utils.java -+++ b/eclipse.pde.build/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/Utils.java -@@ -694,7 +694,7 @@ public final class Utils implements IPDEBuildConstants, IBuildPropertiesConstant - arguments.add("-sf"); //$NON-NLS-1$ - arguments.add(links[i]); - arguments.add(links[i + 1]); -- script.printExecTask("ln", dir, arguments, "Linux"); //$NON-NLS-1$ //$NON-NLS-2$ -+ script.printExecTask("ln", dir, arguments, "Linux,FreeBSD"); //$NON-NLS-1$ //$NON-NLS-2$ - arguments.clear(); - } - } -diff --git a/eclipse.pde.build/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/ModelBuildScriptGenerator.java b/eclipse.pde.build/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/ModelBuildScriptGenerator.java -index 08540fa..582bc74 100644 ---- a/eclipse.pde.build/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/ModelBuildScriptGenerator.java -+++ b/eclipse.pde.build/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/ModelBuildScriptGenerator.java -@@ -933,7 +933,7 @@ public class ModelBuildScriptGenerator extends AbstractBuildScriptGenerator { - for (int i = 0; i < links.length; i += 2) { - arguments.add(links[i]); - arguments.add(links[i + 1]); -- script.printExecTask("ln -s", dir, arguments, "Linux"); //$NON-NLS-1$ //$NON-NLS-2$ -+ script.printExecTask("ln -s", dir, arguments, "Linux,FreeBSD"); //$NON-NLS-1$ //$NON-NLS-2$ - arguments.clear(); - } - } -diff --git a/eclipse.pde.build/org.eclipse.pde.build/src_ant/org/eclipse/pde/internal/build/tasks/JNLPGenerator.java b/eclipse.pde.build/org.eclipse.pde.build/src_ant/org/eclipse/pde/internal/build/tasks/JNLPGenerator.java -index 5399a48..e395cb5 100644 ---- a/eclipse.pde.build/org.eclipse.pde.build/src_ant/org/eclipse/pde/internal/build/tasks/JNLPGenerator.java -+++ b/eclipse.pde.build/org.eclipse.pde.build/src_ant/org/eclipse/pde/internal/build/tasks/JNLPGenerator.java -@@ -314,6 +314,8 @@ public class JNLPGenerator extends DefaultHandler { - return "HP-UX"; //$NON-NLS-1$ - if ("aix".equalsIgnoreCase(os)) //$NON-NLS-1$ - return "AIX"; //$NON-NLS-1$ -+ if ("freebsd".equalsIgnoreCase(os)) //$NON-NLS-1$ -+ return "FreeBSD"; //$NON-NLS-1$ - return os; - } - -diff --git a/eclipse.pde.build/org.eclipse.pde.build/templates/packager/customTargets.xml b/eclipse.pde.build/org.eclipse.pde.build/templates/packager/customTargets.xml -index eac9576..9081501 100644 ---- a/eclipse.pde.build/org.eclipse.pde.build/templates/packager/customTargets.xml -+++ b/eclipse.pde.build/org.eclipse.pde.build/templates/packager/customTargets.xml -@@ -18,6 +18,18 @@ - </ant> - </target> - -+ <target name="assemble.freebsd.gtk.x86.xml"> -+ <ant antfile="${assembleScriptName}" > -+ <property name="archiveName" value="${archiveNamePrefix}-freebsd.gtk.x86.zip"/> -+ </ant> -+ </target> -+ -+ <target name="assemble.freebsd.gtk.x86_64.xml"> -+ <ant antfile="${assembleScriptName}" > -+ <property name="archiveName" value="${archiveNamePrefix}-freebsd.gtk.x86_64.zip"/> -+ </ant> -+ </target> -+ - <target name="assemble.linux.gtk.x86.xml"> - <ant antfile="${assembleScriptName}" > - <property name="archiveName" value="${archiveNamePrefix}-linux.gtk.x86.zip"/> -diff --git a/eclipse.pde.build/org.eclipse.pde.build/templates/packager/packaging.properties b/eclipse.pde.build/org.eclipse.pde.build/templates/packager/packaging.properties -index be53c51..7e89865 100644 ---- a/eclipse.pde.build/org.eclipse.pde.build/templates/packager/packaging.properties -+++ b/eclipse.pde.build/org.eclipse.pde.build/templates/packager/packaging.properties -@@ -18,6 +18,8 @@ root.macosx.carbon.ppc.permissions.755=Eclipse.app/Contents/MacOS/eclipse - - root.win32.win32.x86=eclipse.exe, eclipsec.exe - root.linux.motif.x86=eclipse,libcairo-swt.so,libXm.so.2,about_files/,about.html,icon.xpm -+root.freebsd.gtk.x86=eclipse,libcairo-swt.so,about_files/,about.html,icon.xpm -+root.freebsd.gtk.x86_64=eclipse,libcairo-swt.so,about_files/,about.html,icon.xpm - root.linux.gtk.x86=eclipse,libcairo-swt.so,about_files/,about.html,icon.xpm - root.linux.gtk.x86_64=eclipse,libcairo-swt.so,about_files/,about.html,icon.xpm - root.linux.gtk.ppc=eclipse -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/ProductExportOperation.java b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/ProductExportOperation.java -index 436c5b0..dd4b3fc 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/ProductExportOperation.java -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/ProductExportOperation.java -@@ -336,6 +336,8 @@ public class ProductExportOperation extends FeatureExportOperation { - images = getExpandedPath(info.getIconPath(ILauncherInfo.LINUX_ICON)); - } else if (configs[i][0].equals("macosx")) { //$NON-NLS-1$ - images = getExpandedPath(info.getIconPath(ILauncherInfo.MACOSX_ICON)); -+ } else if (configs[i][0].equals("freebsd")) { //$NON-NLS-1$ -+ images = getExpandedPath(info.getIconPath(ILauncherInfo.FREEBSD_ICON)); - } - if (images != null) { - if (icons.length() > 0) -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/iproduct/IArgumentsInfo.java b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/iproduct/IArgumentsInfo.java -index 617304c..e2a6a31 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/iproduct/IArgumentsInfo.java -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/iproduct/IArgumentsInfo.java -@@ -17,12 +17,14 @@ public interface IArgumentsInfo extends IProductObject { - public static final String P_PROG_ARGS_MAC = "programArgsMac"; //$NON-NLS-1$ - public static final String P_PROG_ARGS_SOL = "programArgsSol"; //$NON-NLS-1$ - public static final String P_PROG_ARGS_WIN = "programArgsWin"; //$NON-NLS-1$ -+ public static final String P_PROG_ARGS_FRE = "programArgsFre"; //$NON-NLS-1$ - - public static final String P_VM_ARGS = "vmArgs"; //$NON-NLS-1$ - public static final String P_VM_ARGS_LIN = "vmArgsLin"; //$NON-NLS-1$ - public static final String P_VM_ARGS_MAC = "vmArgsMac"; //$NON-NLS-1$ - public static final String P_VM_ARGS_SOL = "vmArgsSol"; //$NON-NLS-1$ - public static final String P_VM_ARGS_WIN = "vmArgsWin"; //$NON-NLS-1$ -+ public static final String P_VM_ARGS_FRE = "vmArgsFre"; //$NON-NLS-1$ - - public static final String P_ARGS_ARCH_X86 = "argsX86"; //$NON-NLS-1$ - public static final String P_ARGS_ARCH_X86_64 = "argsX86_64"; //$NON-NLS-1$ -@@ -37,6 +39,7 @@ public interface IArgumentsInfo extends IProductObject { - public static final int L_ARGS_MACOS = 2; - public static final int L_ARGS_SOLAR = 3; - public static final int L_ARGS_WIN32 = 4; -+ public static final int L_ARGS_FRBSD = 5; - - public static final int L_ARGS_ARCH_ALL = 0; - public static final int L_ARGS_ARCH_X86 = 1; -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/iproduct/ILauncherInfo.java b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/iproduct/ILauncherInfo.java -index e88ee99..40628dc 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/iproduct/ILauncherInfo.java -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/iproduct/ILauncherInfo.java -@@ -12,6 +12,8 @@ package org.eclipse.pde.internal.core.iproduct; - - public interface ILauncherInfo extends IProductObject { - -+ public static final String FREEBSD_ICON = "freebsdIcon"; //$NON-NLS-1$ -+ - public static final String LINUX_ICON = "linuxIcon"; //$NON-NLS-1$ - - public static final String MACOSX_ICON = "macosxIcon"; //$NON-NLS-1$ -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/ArgumentsInfo.java b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/ArgumentsInfo.java -index 5dcda32..437aab8 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/ArgumentsInfo.java -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/ArgumentsInfo.java -@@ -20,12 +20,14 @@ public class ArgumentsInfo extends ProductObject implements IArgumentsInfo { - - private static final long serialVersionUID = 1L; - private String[] fProgramArgs = new String[8]; -+ private String[] fProgramArgsFre = new String[8]; - private String[] fProgramArgsLin = new String[8]; - private String[] fProgramArgsMac = new String[8]; - private String[] fProgramArgsSol = new String[8]; - private String[] fProgramArgsWin = new String[8]; - - private String[] fVMArgs = new String[8]; -+ private String[] fVMArgsFre = new String[8]; - private String[] fVMArgsLin = new String[8]; - private String[] fVMArgsMac = new String[8]; - private String[] fVMArgsSol = new String[8]; -@@ -34,11 +36,13 @@ public class ArgumentsInfo extends ProductObject implements IArgumentsInfo { - public ArgumentsInfo(IProductModel model) { - super(model); - this.initializeArgs(fProgramArgs); -+ this.initializeArgs(fProgramArgsFre); - this.initializeArgs(fProgramArgsLin); - this.initializeArgs(fProgramArgsMac); - this.initializeArgs(fProgramArgsSol); - this.initializeArgs(fProgramArgsWin); - this.initializeArgs(fVMArgs); -+ this.initializeArgs(fVMArgsFre); - this.initializeArgs(fVMArgsLin); - this.initializeArgs(fVMArgsMac); - this.initializeArgs(fVMArgsSol); -@@ -66,6 +70,12 @@ public class ArgumentsInfo extends ProductObject implements IArgumentsInfo { - if (isEditable()) - firePropertyChanged(P_PROG_ARGS, old, fProgramArgs[arch]); - break; -+ case L_ARGS_FRBSD : -+ old = fProgramArgsFre[arch]; -+ fProgramArgsFre[arch] = args; -+ if (isEditable()) -+ firePropertyChanged(P_PROG_ARGS_FRE, old, fProgramArgsFre[arch]); -+ break; - case L_ARGS_LINUX : - old = fProgramArgsLin[arch]; - fProgramArgsLin[arch] = args; -@@ -101,6 +111,8 @@ public class ArgumentsInfo extends ProductObject implements IArgumentsInfo { - switch (platform) { - case L_ARGS_ALL : - return fProgramArgs[arch]; -+ case L_ARGS_FRBSD : -+ return fProgramArgsFre[arch]; - case L_ARGS_LINUX : - return fProgramArgsLin[arch]; - case L_ARGS_MACOS : -@@ -150,6 +162,9 @@ public class ArgumentsInfo extends ProductObject implements IArgumentsInfo { - } else if (Platform.OS_SOLARIS.equals(os)) { - archArgs = archIndex > 0 ? getProgramArguments(L_ARGS_SOLAR, archIndex) + " " + archArgsAllPlatforms : archArgsAllPlatforms; //$NON-NLS-1$ - return getCompleteArgs(archArgs, getProgramArguments(L_ARGS_SOLAR), fProgramArgs[L_ARGS_ARCH_ALL]); -+ } else if (Platform.OS_FREEBSD.equals(os)) { -+ archArgs = archIndex > 0 ? getProgramArguments(L_ARGS_FRBSD, archIndex) + " " + archArgsAllPlatforms : archArgsAllPlatforms; //$NON-NLS-1$ -+ return getCompleteArgs(archArgs, getProgramArguments(L_ARGS_FRBSD), fProgramArgs[L_ARGS_ARCH_ALL]); - } else { - return getCompleteArgs(archArgsAllPlatforms, "", fProgramArgs[L_ARGS_ALL]); //$NON-NLS-1$ - } -@@ -170,6 +185,12 @@ public class ArgumentsInfo extends ProductObject implements IArgumentsInfo { - if (isEditable()) - firePropertyChanged(P_VM_ARGS, old, fVMArgs[arch]); - break; -+ case L_ARGS_FRBSD : -+ old = fVMArgsFre[arch]; -+ fVMArgsFre[arch] = args; -+ if (isEditable()) -+ firePropertyChanged(P_VM_ARGS_FRE, old, fVMArgsFre[arch]); -+ break; - case L_ARGS_LINUX : - old = fVMArgsLin[arch]; - fVMArgsLin[arch] = args; -@@ -205,6 +226,8 @@ public class ArgumentsInfo extends ProductObject implements IArgumentsInfo { - switch (platform) { - case L_ARGS_ALL : - return fVMArgs[arch]; -+ case L_ARGS_FRBSD : -+ return fVMArgsFre[arch]; - case L_ARGS_LINUX : - return fVMArgsLin[arch]; - case L_ARGS_MACOS : -@@ -255,6 +278,9 @@ public class ArgumentsInfo extends ProductObject implements IArgumentsInfo { - } else if (Platform.OS_SOLARIS.equals(os)) { - archArgs = archIndex > 0 ? getVMArguments(L_ARGS_SOLAR, archIndex) + " " + archArgsAllPlatforms : archArgsAllPlatforms; //$NON-NLS-1$ - return getCompleteArgs(archArgs, getVMArguments(L_ARGS_SOLAR), fVMArgs[L_ARGS_ARCH_ALL]); -+ } else if (Platform.OS_FREEBSD.equals(os)) { -+ archArgs = archIndex > 0 ? getVMArguments(L_ARGS_FRBSD, archIndex) + " " + archArgsAllPlatforms : archArgsAllPlatforms; //$NON-NLS-1$ -+ return getCompleteArgs(archArgs, getVMArguments(L_ARGS_FRBSD), fVMArgs[L_ARGS_ARCH_ALL]); - } else { - return getCompleteArgs(archArgsAllPlatforms, "", fVMArgs[L_ARGS_ARCH_ALL]); //$NON-NLS-1$ - } -@@ -278,6 +304,9 @@ public class ArgumentsInfo extends ProductObject implements IArgumentsInfo { - if (child.getNodeName().equals(P_PROG_ARGS)) { - parentArgs = fProgramArgs; - fProgramArgs[L_ARGS_ARCH_ALL] = getText(child).trim(); -+ } else if (child.getNodeName().equals(P_PROG_ARGS_FRE)) { -+ parentArgs = fProgramArgsFre; -+ fProgramArgsFre[L_ARGS_ARCH_ALL] = getText(child).trim(); - } else if (child.getNodeName().equals(P_PROG_ARGS_LIN)) { - parentArgs = fProgramArgsLin; - fProgramArgsLin[L_ARGS_ARCH_ALL] = getText(child).trim(); -@@ -293,6 +322,9 @@ public class ArgumentsInfo extends ProductObject implements IArgumentsInfo { - } else if (child.getNodeName().equals(P_VM_ARGS)) { - parentArgs = fVMArgs; - fVMArgs[L_ARGS_ARCH_ALL] = getText(child).trim(); -+ } else if (child.getNodeName().equals(P_VM_ARGS_FRE)) { -+ parentArgs = fVMArgsFre; -+ fVMArgsFre[L_ARGS_ARCH_ALL] = getText(child).trim(); - } else if (child.getNodeName().equals(P_VM_ARGS_LIN)) { - parentArgs = fVMArgsLin; - fVMArgsLin[L_ARGS_ARCH_ALL] = getText(child).trim(); -@@ -353,6 +385,15 @@ public class ArgumentsInfo extends ProductObject implements IArgumentsInfo { - writeArchArgs(fProgramArgs, subIndent, writer); - writer.println(subIndent + "</" + P_PROG_ARGS + ">"); //$NON-NLS-1$ //$NON-NLS-2$ - } -+ if (hasArgs(fProgramArgsFre)) { -+ writer.print(subIndent + "<" + P_PROG_ARGS_FRE + ">"); //$NON-NLS-1$ //$NON-NLS-2$ -+ if (fProgramArgsFre[L_ARGS_ARCH_ALL].length() > 0) { -+ writer.print(getWritableString(fProgramArgsFre[L_ARGS_ARCH_ALL])); -+ } -+ writer.println(); -+ writeArchArgs(fProgramArgsFre, subIndent, writer); -+ writer.println(subIndent + "</" + P_PROG_ARGS_FRE + ">"); //$NON-NLS-1$ //$NON-NLS-2$ -+ } - if (hasArgs(fProgramArgsLin)) { - writer.print(subIndent + "<" + P_PROG_ARGS_LIN + ">"); //$NON-NLS-1$ //$NON-NLS-2$ - if (fProgramArgsLin[L_ARGS_ARCH_ALL].length() > 0) { -@@ -398,6 +439,15 @@ public class ArgumentsInfo extends ProductObject implements IArgumentsInfo { - writeArchArgs(fVMArgs, subIndent, writer); - writer.println(subIndent + "</" + P_VM_ARGS + ">"); //$NON-NLS-1$ //$NON-NLS-2$ - } -+ if (hasArgs(fVMArgsFre)) { -+ writer.print(subIndent + "<" + P_VM_ARGS_FRE + ">"); //$NON-NLS-1$ //$NON-NLS-2$ -+ if (fVMArgsFre[L_ARGS_ARCH_ALL].length() > 0) { -+ writer.print(getWritableString(fVMArgsFre[L_ARGS_ARCH_ALL])); -+ } -+ writer.println(); -+ writeArchArgs(fVMArgsFre, subIndent, writer); -+ writer.println(subIndent + "</" + P_VM_ARGS_FRE + ">"); //$NON-NLS-1$ //$NON-NLS-2$ -+ } - if (hasArgs(fVMArgsLin)) { - writer.print(subIndent + "<" + P_VM_ARGS_LIN + ">"); //$NON-NLS-1$ //$NON-NLS-2$ - if (fVMArgsLin[L_ARGS_ARCH_ALL].length() > 0) { -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/ConfigurationFileInfo.java b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/ConfigurationFileInfo.java -index c3c286b..ab12da0 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/ConfigurationFileInfo.java -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/ConfigurationFileInfo.java -@@ -24,11 +24,13 @@ public class ConfigurationFileInfo extends ProductObject implements IConfigurati - private String fUse; - private String fPath; - -+ private static final String FRE = Constants.OS_FREEBSD; - private static final String LIN = Constants.OS_LINUX; - private static final String MAC = Constants.OS_MACOSX; - private static final String SOL = Constants.OS_SOLARIS; - private static final String WIN = Constants.OS_WIN32; - -+ private String fFrePath, fFreUse; - private String fLinPath, fLinUse; - private String fMacPath, fMacUse; - private String fSolPath, fSolUse; -@@ -79,6 +81,9 @@ public class ConfigurationFileInfo extends ProductObject implements IConfigurati - } else if (child.getNodeName().equals(WIN)) { - fWinPath = getText(child); - fWinUse = fWinPath == null ? "default" : "custom"; //$NON-NLS-1$ //$NON-NLS-2$ -+ } else if (child.getNodeName().equals(FRE)) { -+ fFrePath = getText(child); -+ fFreUse = fFrePath == null ? "default" : "custom"; //$NON-NLS-1$ //$NON-NLS-2$ - } - } - } -@@ -101,6 +106,10 @@ public class ConfigurationFileInfo extends ProductObject implements IConfigurati - fWinPath = fWinPath == null ? fPath : null; - fWinUse = "custom"; //$NON-NLS-1$ - } -+ if (fFreUse == null) { -+ fFrePath = fFrePath == null ? fPath : null; -+ fFreUse = "custom"; //$NON-NLS-1$ -+ } - // null out things - fPath = null; - fUse = "default"; //$NON-NLS-1$ -@@ -159,6 +168,12 @@ public class ConfigurationFileInfo extends ProductObject implements IConfigurati - writer.print(getWritableString(fWinPath.trim())); - writer.println("</" + WIN + ">"); //$NON-NLS-1$ //$NON-NLS-2$ - } -+ if (fFrePath != null) { -+ writer.print(indent); -+ writer.print(" <" + FRE + ">"); //$NON-NLS-1$ //$NON-NLS-2$ -+ writer.print(getWritableString(fFrePath.trim())); -+ writer.println("</" + FRE + ">"); //$NON-NLS-1$ //$NON-NLS-2$ -+ } - - writer.print(indent + "</configIni>"); //$NON-NLS-1$ - writer.println(); -@@ -192,6 +207,11 @@ public class ConfigurationFileInfo extends ProductObject implements IConfigurati - fSolUse = use; - if (isEditable()) - firePropertyChanged(SOL, old, fSolUse); -+ } else if (Platform.OS_FREEBSD.equals(os)) { -+ String old = fFreUse; -+ fFreUse = use; -+ if (isEditable()) -+ firePropertyChanged(FRE, old, fFreUse); - } - } - -@@ -207,6 +227,8 @@ public class ConfigurationFileInfo extends ProductObject implements IConfigurati - return fMacUse; - } else if (Platform.OS_SOLARIS.equals(os)) { - return fSolUse; -+ } else if (Platform.OS_FREEBSD.equals(os)) { -+ return fFreUse; - } - return null; - } -@@ -239,6 +261,11 @@ public class ConfigurationFileInfo extends ProductObject implements IConfigurati - fSolPath = path; - if (isEditable()) - firePropertyChanged(SOL, old, fSolPath); -+ } else if (Platform.OS_FREEBSD.equals(os)) { -+ String old = fFrePath; -+ fFrePath = path; -+ if (isEditable()) -+ firePropertyChanged(FRE, old, fFrePath); - } - } - -@@ -254,6 +281,8 @@ public class ConfigurationFileInfo extends ProductObject implements IConfigurati - return fMacPath; - } else if (Platform.OS_SOLARIS.equals(os)) { - return fSolPath; -+ } else if (Platform.OS_FREEBSD.equals(os)) { -+ return fFrePath; - } - return null; - } -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/JREInfo.java b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/JREInfo.java -index e0d0333..d8b9100 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/JREInfo.java -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/JREInfo.java -@@ -22,17 +22,20 @@ import org.w3c.dom.NodeList; - - public class JREInfo extends ProductObject implements IJREInfo { - -+ private static final String JRE_FRE = "freebsd"; //$NON-NLS-1$ - private static final String JRE_LIN = "linux"; //$NON-NLS-1$ - private static final String JRE_MAC = "macos"; //$NON-NLS-1$ - private static final String JRE_SOL = "solaris"; //$NON-NLS-1$ - private static final String JRE_WIN = "windows"; //$NON-NLS-1$ - - private static final long serialVersionUID = 1L; -+ private IPath fJVMFre; - private IPath fJVMLin; - private IPath fJVMMac; - private IPath fJVMSol; - private IPath fJVMWin; - -+ private boolean bIncludeFre; - private boolean bIncludeLin; - private boolean bIncludeMac; - private boolean bIncludeSol; -@@ -54,6 +57,8 @@ public class JREInfo extends ProductObject implements IJREInfo { - return fJVMMac; - } else if (Platform.OS_SOLARIS.equals(os)) { - return fJVMSol; -+ } else if (Platform.OS_FREEBSD.equals(os)) { -+ return fJVMFre; - } - return null; - } -@@ -82,6 +87,11 @@ public class JREInfo extends ProductObject implements IJREInfo { - fJVMSol = jreContainerPath; - if (isEditable()) - firePropertyChanged(JRE_SOL, old, fJVMSol); -+ } else if (Platform.OS_FREEBSD.equals(os)) { -+ IPath old = fJVMFre; -+ fJVMFre = jreContainerPath; -+ if (isEditable()) -+ firePropertyChanged(JRE_FRE, old, fJVMFre); - } - } - -@@ -118,6 +128,9 @@ public class JREInfo extends ProductObject implements IJREInfo { - } else if (child.getNodeName().equals(JRE_SOL)) { - fJVMSol = getPath(child); - bIncludeSol = include; -+ } else if (child.getNodeName().equals(JRE_FRE)) { -+ fJVMFre = getPath(child); -+ bIncludeFre = include; - } else if (child.getNodeName().equals(JRE_WIN)) { - fJVMWin = getPath(child); - bIncludeWin = include; -@@ -166,6 +179,12 @@ public class JREInfo extends ProductObject implements IJREInfo { - writer.print(fJVMSol.toPortableString()); - writer.println("</" + JRE_SOL + ">"); //$NON-NLS-1$ //$NON-NLS-2$ - } -+ if (fJVMFre != null) { -+ writer.print(indent); -+ writer.print(" <" + JRE_FRE + " include=\"" + String.valueOf(bIncludeFre) + "\">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ -+ writer.print(fJVMFre.toPortableString()); -+ writer.println("</" + JRE_FRE + ">"); //$NON-NLS-1$ //$NON-NLS-2$ -+ } - if (fJVMWin != null) { - writer.print(indent); - writer.print(" <" + JRE_WIN + " include=\"" + String.valueOf(bIncludeWin) + "\">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ -@@ -184,6 +203,8 @@ public class JREInfo extends ProductObject implements IJREInfo { - return bIncludeMac; - } else if (Platform.OS_SOLARIS.equals(os)) { - return bIncludeSol; -+ } else if (Platform.OS_FREEBSD.equals(os)) { -+ return bIncludeFre; - } - return false; - } -@@ -209,6 +230,11 @@ public class JREInfo extends ProductObject implements IJREInfo { - bIncludeSol = includeJRE; - if (isEditable()) - firePropertyChanged(JRE_SOL, old, Boolean.valueOf(bIncludeSol)); -+ } else if (Platform.OS_FREEBSD.equals(os)) { -+ Boolean old = Boolean.valueOf(bIncludeFre); -+ bIncludeFre = includeJRE; -+ if (isEditable()) -+ firePropertyChanged(JRE_FRE, old, Boolean.valueOf(bIncludeFre)); - } - } - -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/LauncherInfo.java b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/LauncherInfo.java -index 9387921..5e461cc 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/LauncherInfo.java -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/LauncherInfo.java -@@ -71,7 +71,9 @@ public class LauncherInfo extends ProductObject implements ILauncherInfo { - Node child = children.item(i); - if (child.getNodeType() == Node.ELEMENT_NODE) { - String name = child.getNodeName(); -- if (name.equals("linux")) { //$NON-NLS-1$ -+ if (name.equals("freebsd")) { //$NON-NLS-1$ -+ parseFreeBSD((Element) child); -+ } else if (name.equals("linux")) { //$NON-NLS-1$ - parseLinux((Element) child); - } else if (name.equals("macosx")) { //$NON-NLS-1$ - parseMac((Element) child); -@@ -122,13 +124,18 @@ public class LauncherInfo extends ProductObject implements ILauncherInfo { - fIcons.put(LINUX_ICON, element.getAttribute("icon")); //$NON-NLS-1$ - } - -+ private void parseFreeBSD(Element element) { -+ fIcons.put(FREEBSD_ICON, element.getAttribute("icon")); //$NON-NLS-1$ -+ } -+ - @Override - public void write(String indent, PrintWriter writer) { - writer.print(indent + "<launcher"); //$NON-NLS-1$ - if (fLauncherName != null && fLauncherName.length() > 0) - writer.print(" name=\"" + fLauncherName + "\""); //$NON-NLS-1$ //$NON-NLS-2$ - writer.println(">"); //$NON-NLS-1$ - -+ writeFreeBSD(indent + " ", writer); //$NON-NLS-1$ - writeLinux(indent + " ", writer); //$NON-NLS-1$ - writeMac(indent + " ", writer); //$NON-NLS-1$ - writeSolaris(indent + " ", writer); //$NON-NLS-1$ -@@ -182,4 +189,10 @@ public class LauncherInfo extends ProductObject implements ILauncherInfo { - writer.println(indent + "<linux icon=\"" + getWritableString(icon) + "\"/>"); //$NON-NLS-1$ //$NON-NLS-2$ - } - -+ private void writeFreeBSD(String indent, PrintWriter writer) { -+ String icon = fIcons.get(FREEBSD_ICON); -+ if (icon != null && icon.length() > 0) -+ writer.println(indent + "<freebsd icon=\"" + getWritableString(icon) + "\"/>"); //$NON-NLS-1$ //$NON-NLS-2$ -+ } -+ - } -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/rcp/IntroTemplate.java b/eclipse.pde.ui/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/rcp/IntroTemplate.java -index 8ee34a0..d6aaf40 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/rcp/IntroTemplate.java -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/rcp/IntroTemplate.java -@@ -160,7 +160,7 @@ public class IntroTemplate extends PDETemplateSection { - presentationElement.setAttribute("home-page-id", "root"); //$NON-NLS-1$ //$NON-NLS-2$ - IPluginElement implementationElement = factory.createElement(presentationElement); - implementationElement.setName("implementation"); //$NON-NLS-1$ -- implementationElement.setAttribute("os", "win32,linux,macosx"); //$NON-NLS-1$ //$NON-NLS-2$ -+ implementationElement.setAttribute("os", "win32,linux,macosx,freebsd"); //$NON-NLS-1$ //$NON-NLS-2$ - if (getTargetVersion() == 3.0) - implementationElement.setAttribute("style", "content/shared.css"); //$NON-NLS-1$//$NON-NLS-2$ - -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/PDEUIMessages.java b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/PDEUIMessages.java -index 32e395e..994e51d 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/PDEUIMessages.java -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/PDEUIMessages.java -@@ -1004,6 +1004,7 @@ public class PDEUIMessages extends NLS { - public static String LauncherSection_48High; - public static String LauncherSection_256High; - public static String LauncherSection_linuxLabel; -+ public static String LauncherSection_freebsdLabel; - public static String LauncherSection_large; - public static String LauncherSection_medium; - public static String LauncherSection_small; -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ArgumentsSection.java b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ArgumentsSection.java -index 06ee395..ee92f5c 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ArgumentsSection.java -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ArgumentsSection.java -@@ -34,6 +34,7 @@ public class ArgumentsSection extends PDESection { - private static final String[] TAB_LABELS = new String[5]; - static { - TAB_LABELS[IArgumentsInfo.L_ARGS_ALL] = PDEUIMessages.ArgumentsSection_allPlatforms; -+ TAB_LABELS[IArgumentsInfo.L_ARGS_FRBSD] = "freebsd"; //$NON-NLS-1$ - TAB_LABELS[IArgumentsInfo.L_ARGS_LINUX] = "linux"; //$NON-NLS-1$ - TAB_LABELS[IArgumentsInfo.L_ARGS_MACOS] = "macosx"; //$NON-NLS-1$ - TAB_LABELS[IArgumentsInfo.L_ARGS_SOLAR] = "solaris"; //$NON-NLS-1$ -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ConfigurationSection.java b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ConfigurationSection.java -index e6bde32..6334e65 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ConfigurationSection.java -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ConfigurationSection.java -@@ -50,8 +50,8 @@ public class ConfigurationSection extends PDESection { - private FormEntry fCustomEntry; - private boolean fBlockChanges; - -- private static final String[] TAB_LABELS = {"linux", "macosx", "solaris", "win32"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ -- private static final String[] TAB_OS = {Platform.OS_LINUX, Platform.OS_MACOSX, Platform.OS_SOLARIS, Platform.OS_WIN32}; -+ private static final String[] TAB_LABELS = {"freebsd", "linux", "macosx", "solaris", "win32"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ -+ private static final String[] TAB_OS = {Platform.OS_FREEBSD, Platform.OS_LINUX, Platform.OS_MACOSX, Platform.OS_SOLARIS, Platform.OS_WIN32}; - - private CTabFolder fTabFolder; - private int fLastTab; -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/JRESection.java b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/JRESection.java -index e51b309..d44ec23 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/JRESection.java -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/JRESection.java -@@ -63,8 +63,8 @@ public class JRESection extends PDESection { - private ComboViewerPart fEEsCombo; - private boolean fBlockChanges; - -- private static final String[] TAB_LABELS = {"linux", "macosx", "solaris", "win32"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ -- private static final String[] TAB_OS = {Platform.OS_LINUX, Platform.OS_MACOSX, Platform.OS_SOLARIS, Platform.OS_WIN32}; -+ private static final String[] TAB_LABELS = {"freebsd", "linux", "macosx", "solaris", "win32"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ -+ private static final String[] TAB_OS = {Platform.OS_FREEBSD, Platform.OS_LINUX, Platform.OS_MACOSX, Platform.OS_SOLARIS, Platform.OS_WIN32}; - - private CTabFolder fTabFolder; - private int fLastTab; -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/LauncherSection.java b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/LauncherSection.java -index 7be4406..92d3bcd 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/LauncherSection.java -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/LauncherSection.java -@@ -60,6 +60,7 @@ public class LauncherSection extends PDESection { - private CTabFolder fTabFolder; - private Composite fNotebook; - private StackLayout fNotebookLayout; -+ private Composite fFreeBSDSection; - private Composite fLinuxSection; - private Composite fMacSection; - private Composite fSolarisSection; -@@ -156,6 +157,7 @@ public class LauncherSection extends PDESection { - fNotebookLayout = new StackLayout(); - fNotebook.setLayout(fNotebookLayout); - -+ fFreeBSDSection = addFreeBSDSection(fNotebook, toolkit); - fLinuxSection = addLinuxSection(fNotebook, toolkit); - fMacSection = addMacSection(fNotebook, toolkit); - fSolarisSection = addSolarisSection(fNotebook, toolkit); -@@ -181,6 +183,7 @@ public class LauncherSection extends PDESection { - } - - private void createTabs() { -+ addTab("freebsd"); //$NON-NLS-1$ - addTab("linux"); //$NON-NLS-1$ - addTab("macosx"); //$NON-NLS-1$ - addTab("solaris"); //$NON-NLS-1$ -@@ -188,16 +191,19 @@ public class LauncherSection extends PDESection { - - String currentTarget = TargetPlatform.getOS(); - if ("win32".equals(currentTarget)) { //$NON-NLS-1$ -- fTabFolder.setSelection(3); -+ fTabFolder.setSelection(4); - fNotebookLayout.topControl = fWin32Section; - } else if ("macosx".equals(currentTarget)) { //$NON-NLS-1$ -- fTabFolder.setSelection(1); -+ fTabFolder.setSelection(2); - fNotebookLayout.topControl = fMacSection; - } else if ("solaris".equals(currentTarget)) { //$NON-NLS-1$ -- fTabFolder.setSelection(2); -+ fTabFolder.setSelection(3); - fNotebookLayout.topControl = fSolarisSection; -- } else { -+ } else if ("freebsd".equals(currentTarget)) { //$NON-NLS-1$ - fTabFolder.setSelection(0); -+ fNotebookLayout.topControl = fFreeBSDSection; -+ } else { -+ fTabFolder.setSelection(1); - fNotebookLayout.topControl = fLinuxSection; - } - } -@@ -290,6 +296,14 @@ public class LauncherSection extends PDESection { - } - } - -+ private Composite addFreeBSDSection(Composite parent, FormToolkit toolkit) { -+ Composite comp = createComposite(parent, toolkit); -+ createLabel(comp, toolkit, PDEUIMessages.LauncherSection_freebsdLabel, 3); -+ fIcons.add(new IconEntry(comp, toolkit, PDEUIMessages.LauncherSection_icon, ILauncherInfo.FREEBSD_ICON)); -+ toolkit.paintBordersFor(comp); -+ return comp; -+ } -+ - private Composite addLinuxSection(Composite parent, FormToolkit toolkit) { - Composite comp = createComposite(parent, toolkit); - createLabel(comp, toolkit, PDEUIMessages.LauncherSection_linuxLabel, 3); -@@ -446,7 +460,7 @@ public class LauncherSection extends PDESection { - } - - private String getExtension(String iconId) { -- if (iconId.equals(ILauncherInfo.LINUX_ICON)) -+ if (iconId.equals(ILauncherInfo.LINUX_ICON) || iconId.equals(ILauncherInfo.FREEBSD_ICON)) - return "xpm"; //$NON-NLS-1$ - if (iconId.equals(ILauncherInfo.MACOSX_ICON)) - return "icns"; //$NON-NLS-1$ -@@ -473,15 +487,18 @@ public class LauncherSection extends PDESection { - Control oldPage = fNotebookLayout.topControl; - switch (index) { - case 0 : -- fNotebookLayout.topControl = fLinuxSection; -+ fNotebookLayout.topControl = fFreeBSDSection; - break; - case 1 : -- fNotebookLayout.topControl = fMacSection; -+ fNotebookLayout.topControl = fLinuxSection; - break; - case 2 : -- fNotebookLayout.topControl = fSolarisSection; -+ fNotebookLayout.topControl = fMacSection; - break; - case 3 : -+ fNotebookLayout.topControl = fSolarisSection; -+ break; -+ case 4 : - fNotebookLayout.topControl = fWin32Section; - break; - } -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/pderesources.properties b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/pderesources.properties -index fecf4aa..de25e4f 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/pderesources.properties -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/pderesources.properties -@@ -596,6 +596,7 @@ LauncherSection_48Low=48x48 (8-bit): - LauncherSection_48High=48x48 (32-bit): - LauncherSection_256High=256x256 (32-bit): - LauncherSection_linuxLabel=A single XPM icon is required: -+LauncherSection_freebsdLabel=A single XPM icon is required: - LauncherSection_large=Large: - LauncherSection_medium=Medium: - LauncherSection_small=Small: -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductIntroOperation.java b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductIntroOperation.java -index 3c8c426..fa46f72 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductIntroOperation.java -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductIntroOperation.java -@@ -128,7 +128,7 @@ public class ProductIntroOperation extends BaseManifestOperation implements IVar - implementation.setName("implementation"); //$NON-NLS-1$ - implementation.setAttribute("kind", "html"); //$NON-NLS-1$ //$NON-NLS-2$ - implementation.setAttribute("style", "content/shared.css"); //$NON-NLS-1$ //$NON-NLS-2$ -- implementation.setAttribute("os", "win32,linux,macosx"); //$NON-NLS-1$ //$NON-NLS-2$ -+ implementation.setAttribute("os", "win32,linux,macosx,freebsd"); //$NON-NLS-1$ //$NON-NLS-2$ - - presentation.add(implementation); - -diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/PropertiesSection.java b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/PropertiesSection.java -index bcedc5e..a313d19 100644 ---- a/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/PropertiesSection.java -+++ b/eclipse.pde.ui/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/PropertiesSection.java -@@ -106,7 +106,7 @@ public class PropertiesSection extends TableSection { - private IConfigurationProperty fEdit; - private Set<String> fExistingNames; - -- private String[] COMBO_OSLABELS = new String[] {PDEUIMessages.PropertiesSection_All, Platform.OS_LINUX, Platform.OS_MACOSX, Platform.OS_SOLARIS, Platform.OS_WIN32}; -+ private String[] COMBO_OSLABELS = new String[] {PDEUIMessages.PropertiesSection_All, Platform.OS_LINUX, Platform.OS_MACOSX, Platform.OS_SOLARIS, Platform.OS_WIN32, Platform.OS_FREEBSD}; - private String[] COMBO_ARCHLABELS = new String[] {PDEUIMessages.PropertiesSection_All, Platform.ARCH_X86, Platform.ARCH_X86_64, Platform.ARCH_PPC, Platform.ARCH_IA64, Platform.ARCH_IA64_32, Platform.ARCH_PA_RISC, Platform.ARCH_SPARC}; - - public PropertyDialog(Shell shell, IConfigurationProperty property, Set<String> existingNames) { -diff --git a/eclipse.platform.releng/features/org.eclipse.platform-feature/pom.xml b/eclipse.platform.releng/features/org.eclipse.platform-feature/pom.xml -index 7e7e8ac..72c8597 100644 ---- a/eclipse.platform.releng/features/org.eclipse.platform-feature/pom.xml -+++ b/eclipse.platform.releng/features/org.eclipse.platform-feature/pom.xml -@@ -60,6 +60,7 @@ - <plugin id="org.eclipse.core.filesystem.aix.ppc"/> - <plugin id="org.eclipse.core.filesystem.aix.ppc64"/> - <plugin id="org.eclipse.core.filesystem.hpux.ia64"/> -+ <plugin id="org.eclipse.core.filesystem.freebsd.%%ECLIPSE_ARCH%%"/> - <plugin id="org.eclipse.core.filesystem.linux.x86"/> - <plugin id="org.eclipse.core.filesystem.linux.x86_64"/> - <plugin id="org.eclipse.core.filesystem.solaris.sparc"/> -@@ -70,6 +71,7 @@ - <plugin id="org.eclipse.core.filesystem.linux.ppc64le"/> - <plugin id="org.eclipse.core.resources.win32.x86"/> - <plugin id="org.eclipse.core.resources.win32.x86_64"/> -+ <plugin id="org.eclipse.core.net.freebsd.%%ECLIPSE_ARCH%%"/> - <plugin id="org.eclipse.core.net.linux.x86"/> - <plugin id="org.eclipse.core.net.linux.x86_64"/> - <plugin id="org.eclipse.core.net.win32.x86"/> -diff --git a/eclipse.platform.releng/features/org.eclipse.sdk.examples-feature/pom.xml b/eclipse.platform.releng/features/org.eclipse.sdk.examples-feature/pom.xml -index d8c8edf..886e7d8 100644 ---- a/eclipse.platform.releng/features/org.eclipse.sdk.examples-feature/pom.xml -+++ b/eclipse.platform.releng/features/org.eclipse.sdk.examples-feature/pom.xml -@@ -39,11 +39,9 @@ - <features> - <feature id="org.eclipse.sdk.examples"/> - </features> -- <!-- - <excludes> -- <plugin id="org.eclipse.sdk.examples"/> -+ <plugin id="org.eclipse.swt.examples.ole.win32"/> - </excludes> -- --> - </configuration> - </execution> - </executions> -diff --git a/eclipse.platform.resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/LocalFileSystem.java b/eclipse.platform.resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/LocalFileSystem.java -index a335001..003e20a 100644 ---- a/eclipse.platform.resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/LocalFileSystem.java -+++ b/eclipse.platform.resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/LocalFileSystem.java -@@ -98,7 +98,7 @@ public class LocalFileSystem extends FileSystem { - String arch = System.getProperty("osgi.arch", ""); //$NON-NLS-1$ //$NON-NLS-2$ - if (os.equals(Constants.OS_WIN32)) - attributes |= EFS.ATTRIBUTE_ARCHIVE | EFS.ATTRIBUTE_HIDDEN; -- else if (os.equals(Constants.OS_LINUX) || (os.equals(Constants.OS_SOLARIS) && arch.equals(Constants.ARCH_SPARC))) -+ else if (os.equals(Constants.OS_FREEBSD) || os.equals(Constants.OS_LINUX) || (os.equals(Constants.OS_SOLARIS) && arch.equals(Constants.ARCH_SPARC))) - attributes |= EFS.ATTRIBUTE_EXECUTABLE | EFS.ATTRIBUTE_SYMLINK | EFS.ATTRIBUTE_LINK_TARGET; - else if (os.equals(Constants.OS_MACOSX) || os.equals(Constants.OS_HPUX) || os.equals(Constants.OS_QNX)) - attributes |= EFS.ATTRIBUTE_EXECUTABLE; -diff --git a/eclipse.platform.resources/pom.xml b/eclipse.platform.resources/pom.xml -index 4b33285..6b6fcc7 100644 ---- a/eclipse.platform.resources/pom.xml -+++ b/eclipse.platform.resources/pom.xml -@@ -43,6 +43,7 @@ - - <modules> - <module>bundles/org.eclipse.core.filesystem</module> -+ <module>bundles/org.eclipse.core.filesystem/fragments/org.eclipse.core.filesystem.freebsd.%%ECLIPSE_ARCH%%</module> - <module>bundles/org.eclipse.core.filesystem.hpux.ia64</module> - <module>bundles/org.eclipse.core.filesystem.hpux.PA_RISC</module> - <module>bundles/org.eclipse.core.filesystem.linux.ppc</module> -diff --git a/eclipse.platform.resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/filesystem/SymlinkTest.java b/eclipse.platform.resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/filesystem/SymlinkTest.java -index 7c8ad8c..b15bbf6 100644 ---- a/eclipse.platform.resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/filesystem/SymlinkTest.java -+++ b/eclipse.platform.resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/filesystem/SymlinkTest.java -@@ -339,7 +339,7 @@ public class SymlinkTest extends FileSystemTest { - public void testSymlinkEnabled() { - String os = Platform.getOS(); - String arch = Platform.getOSArch(); -- if (Platform.OS_LINUX.equals(os) || (Platform.OS_SOLARIS.equals(os) && Platform.ARCH_SPARC.equals(arch)) || Platform.OS_MACOSX.equals(os) || Platform.OS_AIX.equals(os) || isWindowsVistaOrHigher()) { -+ if (Platform.OS_FREEBSD.equals(os) || Platform.OS_LINUX.equals(os) || (Platform.OS_SOLARIS.equals(os) && Platform.ARCH_SPARC.equals(arch)) || Platform.OS_MACOSX.equals(os) || Platform.OS_AIX.equals(os) || isWindowsVistaOrHigher()) { - assertTrue(haveSymlinks()); - } else { - assertFalse(haveSymlinks()); -diff --git a/eclipse.platform.runtime/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/InternalPlatform.java b/eclipse.platform.runtime/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/InternalPlatform.java -index 8ace8e8..21ba40f 100644 ---- a/eclipse.platform.runtime/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/InternalPlatform.java -+++ b/eclipse.platform.runtime/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/runtime/InternalPlatform.java -@@ -62,7 +62,7 @@ public final class InternalPlatform { - //XXX This is not synchronized - private static Map logs = new HashMap(5); - -- private static final String[] OS_LIST = {Platform.OS_AIX, Platform.OS_HPUX, Platform.OS_LINUX, Platform.OS_MACOSX, Platform.OS_QNX, Platform.OS_SOLARIS, Platform.OS_WIN32}; -+ private static final String[] OS_LIST = {Platform.OS_AIX, Platform.OS_FREEBSD, Platform.OS_HPUX, Platform.OS_LINUX, Platform.OS_MACOSX, Platform.OS_QNX, Platform.OS_SOLARIS, Platform.OS_WIN32}; - private static String password = ""; //$NON-NLS-1$ - private static final String PASSWORD = "-password"; //$NON-NLS-1$ - -diff --git a/eclipse.platform.runtime/bundles/org.eclipse.core.runtime/src/org/eclipse/core/runtime/Platform.java b/eclipse.platform.runtime/bundles/org.eclipse.core.runtime/src/org/eclipse/core/runtime/Platform.java -index 18b64e4..344be72 100644 ---- a/eclipse.platform.runtime/bundles/org.eclipse.core.runtime/src/org/eclipse/core/runtime/Platform.java -+++ b/eclipse.platform.runtime/bundles/org.eclipse.core.runtime/src/org/eclipse/core/runtime/Platform.java -@@ -261,6 +261,17 @@ public final class Platform { - public static final String OS_MACOSX = "macosx";//$NON-NLS-1$ - - /** -+ * Constant string (value "freebsd") indicating the platform is running on a -+ * FreeBSD operating system. -+ * <p> -+ * Note this constant is not officially supported by the eclipse project -+ * and is only available on eclipse versions built from the FreeBSD ports -+ * tree. -+ * </p> -+ */ -+ public static final String OS_FREEBSD = "freebsd";//$NON-NLS-1$ -+ -+ /** - * Constant string (value "unknown") indicating the platform is running on a - * machine running an unknown operating system. - * <p> -diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp -index 7c713c7..f166708 100644 ---- a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp -+++ b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp -@@ -180,7 +180,7 @@ JNIEXPORT jint JNICALL XPCOM_NATIVE(_1NS_1NewLocalFile) - jint rc = 0; - XPCOM_NATIVE_ENTER(env, that, _1NS_1NewLocalFile_FUNC); - if (arg2) if ((lparg2 = env->GetIntLongArrayElements(arg2, NULL)) == NULL) goto fail; -- rc = (jint)NS_NewLocalFile(*(nsAString *)arg0, arg1, (nsILocalFile**)lparg2); -+ rc = (jint)NS_NewLocalFile(*(nsAString *)arg0, arg1, (nsIFile**)lparg2); - fail: - if (arg2 && lparg2) env->ReleaseIntLongArrayElements(arg2, lparg2, 0); - XPCOM_NATIVE_EXIT(env, that, _1NS_1NewLocalFile_FUNC); -diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.h b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.h -index afc18ec..3b6da84 100644 ---- a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.h -+++ b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.h -@@ -32,6 +32,8 @@ - - #define XPCOM_LOAD_FUNCTION LOAD_FUNCTION - -+#define nsStaticModuleInfo void -+ - #ifdef _WIN32 - #if !(defined(__i386__) || defined(_M_IX86) || defined(_X86_)) - #define nsStaticModuleInfo void /* define on 64-bit win32 due to use of XULRunner 10 SDK */ -diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh -index 689616e..86afdfe 100644 ---- a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh -+++ b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh -@@ -64,6 +64,8 @@ case $OS in - "FreeBSD") - SWT_OS=freebsd - MAKEFILE=make_freebsd.mak -+ MAKE_TYPE=gmake -+ MODEL=`uname -m` - ;; - *) - SWT_OS=`uname -s | tr -s '[:upper:]' '[:lower:]'` -@@ -407,6 +409,34 @@ case $SWT_OS.$SWT_ARCH in - export PKG_CONFIG_PATH="/opt/gtk_64bit/lib/hpux64/pkgconfig" - fi - ;; -+ "freebsd.x86"|"freebsd.x86_64") -+# PATH="/export/home/SUNWspro/bin:/usr/ccs/bin:/usr/bin:$PATH" -+ if [ "${CC}" = "" ]; then -+ CC="cc" -+ fi -+ if [ "${CXX}" = "" ]; then -+ CXX="c++" -+ fi -+ if [ "${CDE_HOME}" = "" ]; then -+ CDE_HOME="/usr/dt" -+ fi -+ if [ "${JAVA_HOME}" = "" ]; then -+ JAVA_HOME="/usr/local/openjdk7" -+ fi -+ if [ "${PKG_CONFIG_PATH}" = "" ]; then -+ PKG_CONFIG_PATH="/usr/local/libdata/pkgconfig/" -+ fi -+# if [ "${MOZILLA_SDK}" = "" ]; then -+# MOZILLA_SDK="/bluebird/teamswt/swt-builddir/geckoSDK/1.4/gecko-sdk" -+# fi -+# if [ "${MOZILLA_INCLUDES}" = "" ]; then -+# MOZILLA_INCLUDES="-I${MOZILLA_SDK} -I${MOZILLA_SDK}/xpcom/include -I${MOZILLA_SDK}/nspr/include -I${MOZILLA_SDK}/embed_base/include -I${MOZILLA_SDK}/embedstring/include -I${MOZILLA_SDK}/string/include" -+# fi -+# if [ "${MOZILLA_LIBS}" = "" ]; then -+# MOZILLA_LIBS="${MOZILLA_SDK}/embedstring/bin/libembedstring.a -L${MOZILLA_SDK}/xpcom/bin -L${MOZILLA_SDK}/nspr/bin -lxpcom -lnspr4 -lplds4 -lplc4" -+# fi -+ export PATH CC CXX CDE_HOME JAVA_HOME PKG_CONFIG_PATH MOZILLA_SDK MOZILLA_INCLUDES MOZILLA_LIBS; -+ ;; - esac - - -@@ -478,24 +508,35 @@ if [ -z "${MOZILLA_INCLUDES}" -a -z "${MOZILLA_LIBS}" -a ${MODEL} != 'sparc64' ] - export MOZILLA_INCLUDES - export MOZILLA_LIBS - MAKE_MOZILLA=make_mozilla -+ echo "Mozilla/XPCOM found, compiling Mozilla embedded browser support" - elif [ x`pkg-config --exists firefox-xpcom && echo YES` = "xYES" ]; then - MOZILLA_INCLUDES=`pkg-config --cflags firefox-xpcom` - MOZILLA_LIBS=`pkg-config --libs firefox-xpcom` - export MOZILLA_INCLUDES - export MOZILLA_LIBS - MAKE_MOZILLA=make_mozilla -- elif [ x`pkg-config --exists libxul && echo YES` = "xYES" ]; then -- XULRUNNER_INCLUDES=`pkg-config --cflags libxul` -- XULRUNNER_LIBS=`pkg-config --libs libxul` -+ echo "Firefox/XPCOM found, compiling Mozilla embedded browser support" -+ elif [ x`pkg-config --exists libxul libxul-embedding && echo YES` = "xNO" ]; then # don't bother, it doesn't work -+ XULRUNNER_INCLUDES="-include /usr/local/include/libxul/mozilla-config.h `pkg-config --cflags libxul libxul-embedding`" -+ XULRUNNER_LIBS=`pkg-config --libs libxul-embedding` - export XULRUNNER_INCLUDES - export XULRUNNER_LIBS - MAKE_MOZILLA=make_xulrunner -+ echo "XULRunner/XPCOM found, compiling Mozilla embedded browser support" - else - echo "None of the following libraries were found: Mozilla/XPCOM, Firefox/XPCOM, or XULRunner/XPCOM" - echo " *** Mozilla embedding support will not be compiled." - fi - fi - -+if [ x`pkg-config --exists webkit-1.0 && echo YES` = "xYES" ]; then -+ echo "WebKit found, compiling webkit embedded browser support." -+ MAKE_WEBKIT=make_webkit -+else -+ echo "WebKit not found:" -+ echo " *** WebKit embedding support will not be compiled." -+fi -+ - # Find AWT if available - if [ -z "${AWT_LIB_PATH}" ]; then - if [ -f ${JAVA_HOME}/jre/lib/${AWT_ARCH}/libjawt.* ]; then -@@ -524,5 +565,5 @@ fi - if [ "x${1}" = "xclean" ]; then - ${MAKE_TYPE} -f $MAKEFILE clean - else -- ${MAKE_TYPE} -f $MAKEFILE all $MAKE_GNOME $MAKE_CAIRO $MAKE_AWT $MAKE_MOZILLA ${1} ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9} -+ ${MAKE_TYPE} -f $MAKEFILE all $MAKE_GNOME $MAKE_CAIRO $MAKE_AWT $MAKE_MOZILLA $MAKE_WEBKIT ${1} ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9} - fi -diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak -index d2da90e..51989f8 100644 ---- a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak -+++ b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak -@@ -1,5 +1,5 @@ - #******************************************************************************* --# Copyright (c) 2000, 2011 IBM Corporation and others. -+# Copyright (c) 2000, 2012 IBM Corporation and others. - # All rights reserved. This program and the accompanying materials - # are made available under the terms of the Eclipse Public License v1.0 - # which accompanies this distribution, and is available at -@@ -9,7 +9,7 @@ - # IBM Corporation - initial API and implementation - #******************************************************************************* - --# Makefile for creating SWT libraries for Linux GTK -+# Makefile for creating SWT libraries for FreeBSD GTK - - include make_common.mak - -@@ -21,13 +21,19 @@ WS_PREFIX = gtk - SWT_PREFIX = swt - CDE_PREFIX = swt-cde - AWT_PREFIX = swt-awt -+ifeq ($(GTK_VERSION), 3.0) -+SWTPI_PREFIX = swt-pi3 -+else - SWTPI_PREFIX = swt-pi -+endif - CAIRO_PREFIX = swt-cairo - ATK_PREFIX = swt-atk - GNOME_PREFIX = swt-gnome - MOZILLA_PREFIX = swt-mozilla$(GCC_VERSION) - XULRUNNER_PREFIX = swt-xulrunner -+XULRUNNER24_PREFIX = swt-xulrunner24 - XPCOMINIT_PREFIX = swt-xpcominit -+WEBKIT_PREFIX = swt-webkit - GLX_PREFIX = swt-glx - - SWT_LIB = lib$(SWT_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so -@@ -39,28 +45,36 @@ ATK_LIB = lib$(ATK_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so - GNOME_LIB = lib$(GNOME_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so - MOZILLA_LIB = lib$(MOZILLA_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so - XULRUNNER_LIB = lib$(XULRUNNER_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so -+XULRUNNER24_LIB = lib$(XULRUNNER24_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so - XPCOMINIT_LIB = lib$(XPCOMINIT_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so -+WEBKIT_LIB = lib$(WEBKIT_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so - GLX_LIB = lib$(GLX_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so - - CAIROCFLAGS = `pkg-config --cflags cairo` - CAIROLIBS = `pkg-config --libs-only-L cairo` -lcairo - - # Do not use pkg-config to get libs because it includes unnecessary dependencies (i.e. pangoxft-1.0) --GTKCFLAGS = `pkg-config --cflags gtk+-2.0 gtk+-unix-print-$(GTK_VERSION)` --GTKLIBS = `pkg-config --libs-only-L gtk+-2.0 gthread-2.0` -lgtk-x11-2.0 -lgthread-2.0 -L/usr/X11R6/lib $(XLIB64) -lXtst -+GTKCFLAGS = `pkg-config --cflags gtk+-$(GTK_VERSION) gtk+-unix-print-$(GTK_VERSION)` -+ifeq ($(GTK_VERSION), 3.0) -+GTKLIBS = `pkg-config --libs-only-L gtk+-$(GTK_VERSION) gthread-2.0` $(XLIB64) -L/usr/X11R6/lib -lgtk-3 -lgdk-3 -lcairo -lgthread-2.0 -lXtst -+else -+GTKLIBS = `pkg-config --libs-only-L gtk+-$(GTK_VERSION) gthread-2.0` $(XLIB64) -L/usr/X11R6/lib -lgtk-x11-$(GTK_VERSION) -lgthread-2.0 -lXtst -+endif - - CDE_LIBS = -L$(CDE_HOME)/lib -R$(CDE_HOME)/lib -lXt -lX11 -lDtSvc - --AWT_LFLAGS = -shared -+AWT_LFLAGS = -shared ${SWT_LFLAGS} - AWT_LIBS = -L$(AWT_LIB_PATH) -ljawt - --ATKCFLAGS = `pkg-config --cflags atk gtk+-2.0 gtk+-unix-print-$(GTK_VERSION)` --ATKLIBS = `pkg-config --libs-only-L atk gtk+-2.0` -latk-1.0 -lgtk-x11-2.0 -+ATKCFLAGS = `pkg-config --cflags atk gtk+-$(GTK_VERSION) gtk+-unix-print-$(GTK_VERSION)` -+ATKLIBS = `pkg-config --libs-only-L atk` -latk-1.0 - - GNOMECFLAGS = `pkg-config --cflags gnome-vfs-module-2.0 libgnome-2.0 libgnomeui-2.0` - GNOMELIBS = `pkg-config --libs-only-L gnome-vfs-module-2.0 libgnome-2.0 libgnomeui-2.0` -lgnomevfs-2 -lgnome-2 -lgnomeui-2 - --GLXLIBS = -L/usr/X11R6/lib -lGL -lGLU -lm -+GLXLIBS = -lGL -lGLU -lm -+ -+SWT_LFLAGS = -L/usr/local/lib - - # Uncomment for Native Stats tool - #NATIVE_STATS = -DNATIVE_STATS -@@ -75,11 +89,24 @@ MOZILLACFLAGS = -O \ - -Wno-non-virtual-dtor \ - -fPIC \ - -I. \ -+ -I/usr/local/include \ - -I$(JAVA_HOME)/include \ - -I$(JAVA_HOME)/include/freebsd \ - ${SWT_PTR_CFLAGS} --MOZILLALFLAGS = -shared -Wl,--version-script=mozilla_exports -Bsymbolic -- -+MOZILLALFLAGS = -shared ${SWT_LFLAGS} -Wl,--version-script=mozilla_exports -Bsymbolic -+MOZILLAEXCLUDES = -DNO__1XPCOMGlueShutdown \ -+ -DNO__1XPCOMGlueStartup \ -+ -DNO__1XPCOMGlueLoadXULFunctions \ -+ -DNO_memmove__ILorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2I \ -+ -DNO_memmove__JLorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2J \ -+ -DNO_nsDynamicFunctionLoad_1sizeof \ -+ -DNO__1Call__IIIIII \ -+ -DNO__1Call__JJJJJI \ -+ -DNO_nsDynamicFunctionLoad -+XULRUNNEREXCLUDES = -DNO__1NS_1InitXPCOM2 -+ -+WEBKITCFLAGS = `pkg-config --cflags glib-2.0` -+ - SWT_OBJECTS = swt.o c.o c_stats.o callback.o - CDE_OBJECTS = swt.o cde.o cde_structs.o cde_stats.o - AWT_OBJECTS = swt_awt.o -@@ -88,19 +115,22 @@ CAIRO_OBJECTS = swt.o cairo.o cairo_structs.o cairo_stats.o - ATK_OBJECTS = swt.o atk.o atk_structs.o atk_custom.o atk_stats.o - GNOME_OBJECTS = swt.o gnome.o gnome_structs.o gnome_stats.o - MOZILLA_OBJECTS = swt.o xpcom.o xpcom_custom.o xpcom_structs.o xpcom_stats.o --XULRUNNER_OBJECTS = swt.o xpcomxul.o xpcomxul_custom.o xpcomxul_structs.o xpcomxul_stats.o xpcomxulglue.o xpcomxulglue_stats.o -+XULRUNNER_OBJECTS = swt.o xpcomxul.o xpcomxul_custom.o xpcomxul_structs.o xpcomxul_stats.o -+XULRUNNER24_OBJECTS = swt.o xpcom24_custom.o - XPCOMINIT_OBJECTS = swt.o xpcominit.o xpcominit_structs.o xpcominit_stats.o -+WEBKIT_OBJECTS = swt.o webkit.o webkit_structs.o webkit_stats.o - GLX_OBJECTS = swt.o glx.o glx_structs.o glx_stats.o - - CFLAGS = -O -Wall \ - -DSWT_VERSION=$(SWT_VERSION) \ - $(NATIVE_STATS) \ - -DFREEBSD -DGTK \ -+ -I/usr/local/include \ - -I$(JAVA_HOME)/include \ - -I$(JAVA_HOME)/include/freebsd \ - -fPIC \ - ${SWT_PTR_CFLAGS} --LFLAGS = -shared -fPIC -+LFLAGS = -shared -fPIC ${SWT_LFLAGS} - - ifndef NO_STRIP - AWT_LFLAGS := $(AWT_LFLAGS) -s -@@ -108,7 +138,7 @@ ifndef NO_STRIP - LFLAGS := $(LFLAGS) -s - endif - --all: make_swt make_atk make_gnome make_glx -+all: make_swt make_atk make_glx make_webkit - - # - # SWT libs -@@ -210,42 +240,47 @@ $(MOZILLA_LIB): $(MOZILLA_OBJECTS) - $(CXX) -o $(MOZILLA_LIB) $(MOZILLA_OBJECTS) $(MOZILLALFLAGS) ${MOZILLA_LIBS} - - xpcom.o: xpcom.cpp -- $(CXX) $(MOZILLACFLAGS) ${MOZILLA_INCLUDES} -c xpcom.cpp -+ $(CXX) $(MOZILLACFLAGS) $(MOZILLAEXCLUDES) ${MOZILLA_INCLUDES} -c xpcom.cpp - - xpcom_structs.o: xpcom_structs.cpp -- $(CXX) $(MOZILLACFLAGS) ${MOZILLA_INCLUDES} -c xpcom_structs.cpp -+ $(CXX) $(MOZILLACFLAGS) $(MOZILLAEXCLUDES) ${MOZILLA_INCLUDES} -c xpcom_structs.cpp - - xpcom_custom.o: xpcom_custom.cpp -- $(CXX) $(MOZILLACFLAGS) ${MOZILLA_INCLUDES} -c xpcom_custom.cpp -+ $(CXX) $(MOZILLACFLAGS) $(MOZILLAEXCLUDES) ${MOZILLA_INCLUDES} -c xpcom_custom.cpp - - xpcom_stats.o: xpcom_stats.cpp -- $(CXX) $(MOZILLACFLAGS) ${MOZILLA_INCLUDES} -c xpcom_stats.cpp -+ $(CXX) $(MOZILLACFLAGS) $(MOZILLAEXCLUDES) ${MOZILLA_INCLUDES} -c xpcom_stats.cpp - - # --# XULRunner lib -+# XULRunner libs - # - make_xulrunner:$(XULRUNNER_LIB) - - $(XULRUNNER_LIB): $(XULRUNNER_OBJECTS) -+ echo -e "#include<stdlib.h>\nsize_t je_malloc_usable_size_in_advance(size_t n) {\nreturn n;\n}" | $(CXX) $(LFLAGS) $(CFLAGS) -xc - -o libswt-xulrunner-fix10.so - $(CXX) -o $(XULRUNNER_LIB) $(XULRUNNER_OBJECTS) $(MOZILLALFLAGS) ${XULRUNNER_LIBS} - - xpcomxul.o: xpcom.cpp -- $(CXX) -o xpcomxul.o $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcom.cpp -+ $(CXX) -o xpcomxul.o $(MOZILLACFLAGS) $(XULRUNNEREXCLUDES) ${XULRUNNER_INCLUDES} -c xpcom.cpp - - xpcomxul_structs.o: xpcom_structs.cpp -- $(CXX) -o xpcomxul_structs.o $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcom_structs.cpp -+ $(CXX) -o xpcomxul_structs.o $(MOZILLACFLAGS) $(XULRUNNEREXCLUDES) ${XULRUNNER_INCLUDES} -c xpcom_structs.cpp - - xpcomxul_custom.o: xpcom_custom.cpp -- $(CXX) -o xpcomxul_custom.o $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcom_custom.cpp -+ $(CXX) -o xpcomxul_custom.o $(MOZILLACFLAGS) $(XULRUNNEREXCLUDES) ${XULRUNNER_INCLUDES} -c xpcom_custom.cpp - - xpcomxul_stats.o: xpcom_stats.cpp -- $(CXX) -o xpcomxul_stats.o $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcom_stats.cpp -+ $(CXX) -o xpcomxul_stats.o $(MOZILLACFLAGS) $(XULRUNNEREXCLUDES) ${XULRUNNER_INCLUDES} -c xpcom_stats.cpp -+ -+ -+make_xulrunner24:$(XULRUNNER24_LIB) - --xpcomxulglue.o: xpcomglue.cpp -- $(CXX) -o xpcomxulglue.o $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcomglue.cpp -+$(XULRUNNER24_LIB): $(XULRUNNER24_OBJECTS) -+ echo -e "#include<stdlib.h>\nsize_t je_malloc_usable_size_in_advance(size_t n) {\nreturn n;\n}" | $(CXX) $(LFLAGS) $(CFLAGS) -L${XULRUNNER24_SDK}/lib -Wl,--whole-archive -lmozglue -Wl,--no-whole-archive -xc - -o libswt-xulrunner-fix24.so -+ $(CXX) -o $(XULRUNNER24_LIB) $(XULRUNNER24_OBJECTS) $(MOZILLALFLAGS) -L${XULRUNNER24_SDK}/lib -lxpcomglue - --xpcomxulglue_stats.o: xpcomglue_stats.cpp -- $(CXX) -o xpcomxulglue_stats.o $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcomglue_stats.cpp -+xpcom24_custom.o: xpcom24_custom.cpp -+ $(CXX) $(MOZILLACFLAGS) -c xpcom24_custom.cpp - - # - # XPCOMInit lib -@@ -265,6 +300,23 @@ xpcominit_stats.o: xpcominit_stats.cpp - $(CXX) $(MOZILLACFLAGS) ${XULRUNNER_INCLUDES} -c xpcominit_stats.cpp - - # -+# WebKit lib -+# -+make_webkit: $(WEBKIT_LIB) -+ -+$(WEBKIT_LIB): $(WEBKIT_OBJECTS) -+ $(CC) $(LFLAGS) -o $(WEBKIT_LIB) $(WEBKIT_OBJECTS) -+ -+webkit.o: webkitgtk.c -+ $(CC) $(CFLAGS) $(WEBKITCFLAGS) -c webkitgtk.c -o webkit.o -+ -+webkit_structs.o: webkitgtk_structs.c -+ $(CC) $(CFLAGS) $(WEBKITCFLAGS) -c webkitgtk_structs.c -o webkit_structs.o -+ -+webkit_stats.o: webkitgtk_stats.c webkitgtk_stats.h -+ $(CC) $(CFLAGS) $(WEBKITCFLAGS) -c webkitgtk_stats.c -o webkit_stats.o -+ -+# - # GLX lib - # - make_glx: $(GLX_LIB) -diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c -index 8392189..f02a5ef 100644 ---- a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c -+++ b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c -@@ -4162,11 +4162,17 @@ JNIEXPORT void JNICALL OS_NATIVE(_1g_1thread_1init) - JNIEXPORT jboolean JNICALL OS_NATIVE(_1g_1thread_1supported) - (JNIEnv *env, jclass that) - { -+ return 1; -+ /* -+ g_thread_supported is non-existent in glib-2.36+, -+ but is still referenced. -+ - jboolean rc = 0; - OS_NATIVE_ENTER(env, that, _1g_1thread_1supported_FUNC); - rc = (jboolean)g_thread_supported(); - OS_NATIVE_EXIT(env, that, _1g_1thread_1supported_FUNC); - return rc; -+ */ - } - #endif - -diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java -index cc81dd1..fa992cd 100644 ---- a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java -+++ b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java -@@ -47,18 +47,19 @@ public class OS extends C { - } - - /** OS Constants */ -- public static final boolean IsAIX, IsSunOS, IsLinux, IsHPUX, BIG_ENDIAN; -+ public static final boolean IsAIX, IsSunOS, IsLinux, IsHPUX, IsFreeBSD, BIG_ENDIAN; - static { - - /* Initialize the OS flags and locale constants */ - String osName = System.getProperty ("os.name"); -- boolean isAIX = false, isSunOS = false, isLinux = false, isHPUX = false; -+ boolean isAIX = false, isSunOS = false, isLinux = false, isHPUX = false, isFreeBSD = false; - if (osName.equals ("Linux")) isLinux = true; - if (osName.equals ("AIX")) isAIX = true; - if (osName.equals ("Solaris")) isSunOS = true; - if (osName.equals ("SunOS")) isSunOS = true; - if (osName.equals ("HP-UX")) isHPUX = true; -- IsAIX = isAIX; IsSunOS = isSunOS; IsLinux = isLinux; IsHPUX = isHPUX; -+ if (osName.equals ("FreeBSD")) isFreeBSD = true; -+ IsAIX = isAIX; IsSunOS = isSunOS; IsLinux = isLinux; IsHPUX = isHPUX; IsFreeBSD = isFreeBSD; - - byte[] buffer = new byte[4]; - long /*int*/ ptr = OS.malloc(4); -diff --git a/eclipse.platform.swt/local-build/org.eclipse.swt.fragments.localbuild/META-INF/p2.inf b/eclipse.platform.swt/local-build/org.eclipse.swt.fragments.localbuild/META-INF/p2.inf -index 39c103e..d1b97c0 100644 ---- a/eclipse.platform.swt/local-build/org.eclipse.swt.fragments.localbuild/META-INF/p2.inf -+++ b/eclipse.platform.swt/local-build/org.eclipse.swt.fragments.localbuild/META-INF/p2.inf -@@ -73,3 +73,8 @@ requires.17.namespace = org.eclipse.equinox.p2.iu - requires.17.name = org.eclipse.swt.gtk.hpux.ia64 - requires.17.range = 0.0.0 - requires.17.filter = (&(osgi.os=hpux)(osgi.ws=gtk)(osgi.arch=ia64)) -+ -+requires.18.namespace = org.eclipse.equinox.p2.iu -+requires.18.name = org.eclipse.swt.gtk.freebsd.%%ECLIPSE_ARCH%% -+requires.18.range = 0.0.0 -+requires.18.filter = (&(osgi.os=freebsd)(osgi.ws=gtk)(osgi.arch=%%ECLIPSE_ARCH%%)) -diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/META-INF/p2.inf b/eclipse.platform.swt/bundles/org.eclipse.swt/META-INF/p2.inf -index 98517c0..6f17162 100644 ---- a/eclipse.platform.swt/bundles/org.eclipse.swt/META-INF/p2.inf -+++ b/eclipse.platform.swt/bundles/org.eclipse.swt/META-INF/p2.inf -@@ -95,3 +95,8 @@ requires.19.namespace = org.eclipse.equinox.p2.iu - requires.19.name = org.eclipse.swt.gtk.linux.aarch64 - requires.19.range = [$version$,$version$] - requires.19.filter = (&(osgi.os=linux)(osgi.ws=gtk)(osgi.arch=aarch64)(!(org.eclipse.swt.buildtime=true))) -+ -+requires.20.namespace = org.eclipse.equinox.p2.iu -+requires.20.name = org.eclipse.swt.gtk.freebsd.%%ECLIPSE_ARCH%% -+requires.20.range = [$version$,$version$] -+requires.20.filter = (&(osgi.os=freebsd)(osgi.ws=gtk)(osgi.arch=%%ECLIPSE_ARCH%%)(!(org.eclipse.swt.buildtime=true))) -diff --git a/eclipse.platform.swt.binaries/pom.xml b/eclipse.platform.swt.binaries/pom.xml -index cc8d6f7..46c8f5a 100644 ---- a/eclipse.platform.swt.binaries/pom.xml -+++ b/eclipse.platform.swt.binaries/pom.xml -@@ -91,6 +91,7 @@ - <module>bundles/org.eclipse.swt.gtk.linux.s390x</module> - <module>bundles/org.eclipse.swt.gtk.linux.x86</module> - <module>bundles/org.eclipse.swt.gtk.linux.x86_64</module> -+ <module>bundles/org.eclipse.swt.gtk.freebsd.%%ECLIPSE_ARCH%%</module> - <module>bundles/org.eclipse.swt.gtk.solaris.sparcv9</module> - <module>bundles/org.eclipse.swt.gtk.solaris.x86_64</module> - <module>bundles/org.eclipse.swt.win32.win32.x86</module> -diff --git a/eclipse.platform.team/bundles/org.eclipse.core.net/natives/unix/gnomeproxy.c b/eclipse.platform.team/bundles/org.eclipse.core.net/natives/unix/gnomeproxy.c -index 2417b4e..c665afe 100644 ---- a/eclipse.platform.team/bundles/org.eclipse.core.net/natives/unix/gnomeproxy.c -+++ b/eclipse.platform.team/bundles/org.eclipse.core.net/natives/unix/gnomeproxy.c -@@ -17,7 +17,7 @@ - #include <gconf/gconf-value.h> - #include <gconf/gconf-client.h> - --#ifdef __linux__ -+#ifdef __STDC__ - #include <string.h> - #else - #include <strings.h> -diff --git a/eclipse.platform.team/pom.xml b/eclipse.platform.team/pom.xml -index d192566..3b590cd 100644 ---- a/eclipse.platform.team/pom.xml -+++ b/eclipse.platform.team/pom.xml -@@ -63,6 +63,7 @@ - <module>features/org.eclipse.cvs-feature</module> - - <!-- creatively located fragments --> -+ <module>bundles/org.eclipse.core.net/fragments/org.eclipse.core.net.freebsd.%%ECLIPSE_ARCH%%</module> - <module>bundles/org.eclipse.core.net/fragments/org.eclipse.core.net.linux.x86</module> - <module>bundles/org.eclipse.core.net/fragments/org.eclipse.core.net.linux.x86_64</module> - <module>bundles/org.eclipse.core.net/fragments/org.eclipse.core.net.win32.x86</module> -diff --git a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/base/HelpBasePreferenceInitializer.java b/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/base/HelpBasePreferenceInitializer.java -index 7482d60..c3150b7 100644 ---- a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/base/HelpBasePreferenceInitializer.java -+++ b/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/base/HelpBasePreferenceInitializer.java -@@ -39,6 +39,9 @@ public class HelpBasePreferenceInitializer extends - } else if (os.indexOf("linux") != -1) { //$NON-NLS-1$ - prefs.put("custom_browser_path", //$NON-NLS-1$ - "konqueror %1"); //$NON-NLS-1$ -+ } else if (os.indexOf("freebsd") != -1) { //$NON-NLS-1$ -+ prefs.put("custom_browser_path", //$NON-NLS-1$ -+ "firefox %1"); //$NON-NLS-1$ - } else { - prefs.put("custom_browser_path", "mozilla %1"); //$NON-NLS-1$ //$NON-NLS-2$ - } -diff --git a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/browser/BrowserManager.java b/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/browser/BrowserManager.java -index 3fc1fd7..47ab00d 100644 ---- a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/browser/BrowserManager.java -+++ b/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/browser/BrowserManager.java -@@ -99,6 +99,7 @@ public class BrowserManager { - if (Constants.WS_WIN32.equalsIgnoreCase(os)) { - setDefaultBrowserID(BROWSER_ID_SYSTEM); - } else if (Constants.OS_AIX.equalsIgnoreCase(os) -+ || (Constants.OS_FREEBSD.equalsIgnoreCase(os)) - || (Constants.OS_HPUX.equalsIgnoreCase(os)) - || (Constants.OS_LINUX.equalsIgnoreCase(os)) - || (Constants.OS_SOLARIS.equalsIgnoreCase(os))) { -diff --git a/eclipse.platform.ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java b/eclipse.platform.ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java -index dec7f54..859167c 100644 ---- a/eclipse.platform.ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java -+++ b/eclipse.platform.ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java -@@ -64,7 +64,8 @@ public class EmbeddedBrowserFactory implements IBrowserFactory { - */ - private boolean test() { - if (!Constants.OS_WIN32.equalsIgnoreCase(Platform.getOS()) -- && !Constants.OS_LINUX.equalsIgnoreCase(Platform.getOS())) { -+ && !Constants.OS_LINUX.equalsIgnoreCase(Platform.getOS()) -+ && !Constants.OS_FREEBSD.equalsIgnoreCase(Platform.getOS())) { - return false; - } - if (!tested) { -diff --git a/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml b/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml -index 966c283..fdde997 100644 ---- a/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml -+++ b/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml -@@ -455,6 +465,16 @@ - fragment="true"/> - - <plugin -+ id="org.eclipse.equinox.launcher.gtk.freebsd.%%ECLIPSE_ARCH%%" -+ os="freebsd" -+ ws="gtk" -+ arch="%%ECLIPSE_ARCH%%" -+ download-size="0" -+ install-size="0" -+ version="0.0.0" -+ fragment="true"/> -+ -+ <plugin - id="org.eclipse.equinox.launcher.gtk.linux.x86_64" - os="linux" - ws="gtk" -@@ -621,6 +652,17 @@ - unpack="false"/> - - <plugin -+ id="org.eclipse.swt.gtk.freebsd.%%ECLIPSE_ARCH%%" -+ os="freebsd" -+ ws="gtk" -+ arch="%%ECLIPSE_ARCH%%" -+ download-size="0" -+ install-size="0" -+ version="0.0.0" -+ fragment="true" -+ unpack="false"/> -+ -+ <plugin - id="org.eclipse.swt.gtk.linux.x86_64" - os="linux" - ws="gtk" -diff --git a/eclipse.platform.ui/features/org.eclipse.e4.rcp/pom.xml b/eclipse.platform.ui/features/org.eclipse.e4.rcp/pom.xml -index 918a8ff..ceb1b3e 100644 ---- a/eclipse.platform.ui/features/org.eclipse.e4.rcp/pom.xml -+++ b/eclipse.platform.ui/features/org.eclipse.e4.rcp/pom.xml -@@ -48,6 +48,7 @@ - <plugin id="org.eclipse.equinox.launcher.gtk.linux.s390x"/> - <plugin id="org.eclipse.equinox.launcher.gtk.linux.s390"/> - <plugin id="org.eclipse.equinox.launcher.gtk.linux.x86_64"/> -+ <plugin id="org.eclipse.equinox.launcher.gtk.freebsd.%%ECLIPSE_ARCH%%"/> - <plugin id="org.eclipse.equinox.launcher.gtk.aix.ppc"/> - <plugin id="org.eclipse.equinox.launcher.gtk.aix.ppc64"/> - <plugin id="org.eclipse.equinox.launcher.gtk.hpux.ia64"/> -diff --git a/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/pom.xml b/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/pom.xml -index 32968af..6610342 100644 ---- a/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/pom.xml -+++ b/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/pom.xml -@@ -21,4 +21,70 @@ - <artifactId>org.eclipse.equinox.launcher</artifactId> - <version>1.3.200-SNAPSHOT</version> - <packaging>eclipse-plugin</packaging> -+ -+ <build> -+ <pluginManagement> -+ <plugins> -+ <plugin> -+ <artifactId>maven-antrun-plugin</artifactId> -+ <version>1.7</version> -+ <dependencies> -+ <dependency> -+ <groupId>bsf</groupId> -+ <artifactId>bsf</artifactId> -+ <version>2.4.0</version> -+ </dependency> -+ <dependency> -+ <groupId>rhino</groupId> -+ <artifactId>js</artifactId> -+ <version>1.7R2</version> -+ </dependency> -+ <dependency> -+ <groupId>org.apache.ant</groupId> -+ <artifactId>ant-apache-bsf</artifactId> -+ <version>1.8.3</version> -+ </dependency> -+ <dependency> -+ <groupId>org.apache.ant</groupId> -+ <artifactId>ant-nodeps</artifactId> -+ <version>1.8.1</version> -+ </dependency> -+ </dependencies> -+ </plugin> -+ </plugins> -+ </pluginManagement> -+ </build> -+ -+ <profiles> -+ <profile> -+ <id>build-native-launchers-gtk.freebsd.%%ECLIPSE_ARCH%%</id> -+ <activation> -+ <property> -+ <name>native</name> -+ <value>gtk.freebsd.%%ECLIPSE_ARCH%%</value> -+ </property> -+ </activation> -+ <build> -+ <plugins> -+ <plugin> -+ <artifactId>maven-antrun-plugin</artifactId> -+ <executions> -+ <execution> -+ <id>compile-executable-natives</id> -+ <phase>generate-resources</phase> -+ <configuration> -+ <target> -+ <ant antfile="build.xml" dir="../../features/org.eclipse.equinox.executable.feature/library/gtk/" target="build_eclipse"/> -+ </target> -+ </configuration> -+ <goals> -+ <goal>run</goal> -+ </goals> -+ </execution> -+ </executions> -+ </plugin> -+ </plugins> -+ </build> -+ </profile> -+ </profiles> - </project> -diff --git a/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/internal/launcher/Constants.java b/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/internal/launcher/Constants.java -index 6e83b71..db56cd5 100644 ---- a/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/internal/launcher/Constants.java -+++ b/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/internal/launcher/Constants.java -@@ -26,6 +26,7 @@ public class Constants { - public static final String INTERNAL_OS_OS400 = "OS/400"; //$NON-NLS-1$ - public static final String INTERNAL_OS_OS390 = "OS/390"; //$NON-NLS-1$ - public static final String INTERNAL_OS_ZOS = "z/OS"; //$NON-NLS-1$ -+ public static final String INTERNAL_OS_FREEBSD = "FreeBSD"; //$NON-NLS-1$ - - public static final String ARCH_X86 = "x86";//$NON-NLS-1$ - public static final String ARCH_X86_64 = "x86_64";//$NON-NLS-1$ -@@ -91,6 +92,17 @@ public class Constants { - public static final String OS_ZOS = "z/os"; //$NON-NLS-1$ - - /** -+ * Constant string (value "freebsd") indicating the platform is running on a -+ * FreeBSD operating system. -+ * <p> -+ * Note this constant is not officially supported by the eclipse project -+ * and is only available on eclipse versions built from the FreeBSD ports -+ * tree. -+ * </p> -+ */ -+ public static final String OS_FREEBSD = "freebsd"; //$NON-NLS-1$ -+ -+ /** - * Constant string (value "unknown") indicating the platform is running on a - * machine running an unknown operating system. - */ -diff --git a/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/launcher/Main.java b/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/launcher/Main.java -index 85417f6..5448261 100644 ---- a/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/launcher/Main.java -+++ b/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/launcher/Main.java -@@ -336,6 +336,8 @@ public class Main { - return Constants.WS_GTK; - if (osName.equals(Constants.OS_QNX)) - return Constants.WS_PHOTON; -+ if (osName.equals(Constants.OS_FREEBSD)) -+ return Constants.WS_GTK; - return Constants.WS_UNKNOWN; - } - -@@ -382,6 +384,8 @@ public class Main { - // os.name on Mac OS can be either Mac OS or Mac OS X - if (osName.regionMatches(true, 0, Constants.INTERNAL_OS_MACOSX, 0, Constants.INTERNAL_OS_MACOSX.length())) - return Constants.OS_MACOSX; -+ if (osName.equalsIgnoreCase(Constants.INTERNAL_OS_FREEBSD)) -+ return Constants.OS_FREEBSD; - return Constants.OS_UNKNOWN; - } - -diff --git a/rt.equinox.framework/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/util/TextProcessor.java b/rt.equinox.framework/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/util/TextProcessor.java -index 6f2b039..7feb9b6 100644 ---- a/rt.equinox.framework/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/util/TextProcessor.java -+++ b/rt.equinox.framework/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/util/TextProcessor.java -@@ -77,7 +77,7 @@ public class TextProcessor { - - if ("iw".equals(lang) || "he".equals(lang) || "ar".equals(lang) || "fa".equals(lang) || "ur".equals(lang)) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ - String osName = System.getProperty("os.name").toLowerCase(); //$NON-NLS-1$ -- if (osName.startsWith("windows") || osName.startsWith("linux") || osName.startsWith("mac")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ -+ if (osName.startsWith("windows") || osName.startsWith("linux") || osName.startsWith("mac") || osName.startsWith("freebsd")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - IS_PROCESSING_NEEDED = true; - } - } -diff --git a/rt.equinox.framework/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxConfiguration.java b/rt.equinox.framework/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxConfiguration.java -index 0d091d7..5acffe0 100644 ---- a/rt.equinox.framework/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxConfiguration.java -+++ b/rt.equinox.framework/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxConfiguration.java -@@ -40,6 +40,7 @@ public class EclipseEnvironmentInfo implements EnvironmentInfo { - private static final String INTERNAL_OS_OS400 = "OS/400"; //$NON-NLS-1$ - private static final String INTERNAL_OS_OS390 = "OS/390"; //$NON-NLS-1$ - private static final String INTERNAL_OS_ZOS = "z/OS"; //$NON-NLS-1$ -+ private static final String INTERNAL_OS_FREEBSD = "FreeBSD"; //$NON-NLS-1$ - // While we recognize the i386 architecture, we change - // this internally to be x86. - private static final String INTERNAL_ARCH_I386 = "i386"; //$NON-NLS-1$ -@@ -202,6 +203,8 @@ public class EclipseEnvironmentInfo implements EnvironmentInfo { - return Constants.WS_GTK; - if (osName.equals(Constants.OS_QNX)) - return Constants.WS_PHOTON; -+ if (osName.equals(Constants.OS_FREEBSD)) -+ return Constants.WS_GTK; - return Constants.WS_UNKNOWN; - } - -@@ -230,6 +233,8 @@ public class EclipseEnvironmentInfo implements EnvironmentInfo { - // os.name on Mac OS can be either Mac OS or Mac OS X - if (osName.regionMatches(true, 0, INTERNAL_OS_MACOSX, 0, INTERNAL_OS_MACOSX.length())) - return Constants.OS_MACOSX; -+ if (osName.equalsIgnoreCase(INTERNAL_OS_FREEBSD)) -+ return Constants.OS_FREEBSD; - return Constants.OS_UNKNOWN; - } - -diff --git a/rt.equinox.framework/bundles/org.eclipse.osgi.compatibility.plugins/src/org/eclipse/osgi/compatibility/plugins/PluginConverterImpl.java b/rt.equinox.framework/bundles/org.eclipse.osgi.compatibility.plugins/src/org/eclipse/osgi/compatibility/plugins/PluginConverterImpl.java -index fe1447f..3160fd5 100644 ---- a/rt.equinox.framework/bundles/org.eclipse.osgi.compatibility.plugins/src/org/eclipse/osgi/compatibility/plugins/PluginConverterImpl.java -+++ b/rt.equinox.framework/bundles/org.eclipse.osgi.compatibility.plugins/src/org/eclipse/osgi/compatibility/plugins/PluginConverterImpl.java -@@ -68,7 +68,7 @@ public class PluginConverterImpl implements PluginConverter { - static public final String FRAGMENT_MANIFEST = "fragment.xml"; //$NON-NLS-1$ - static public final String GENERATED_FROM = "Generated-from"; //$NON-NLS-1$ - static public final String MANIFEST_TYPE_ATTRIBUTE = "type"; //$NON-NLS-1$ -- private static final String[] OS_LIST = {org.eclipse.osgi.service.environment.Constants.OS_AIX, org.eclipse.osgi.service.environment.Constants.OS_HPUX, org.eclipse.osgi.service.environment.Constants.OS_LINUX, org.eclipse.osgi.service.environment.Constants.OS_MACOSX, org.eclipse.osgi.service.environment.Constants.OS_QNX, org.eclipse.osgi.service.environment.Constants.OS_SOLARIS, org.eclipse.osgi.service.environment.Constants.OS_WIN32}; -+ private static final String[] OS_LIST = {org.eclipse.osgi.service.environment.Constants.OS_AIX, org.eclipse.osgi.service.environment.Constants.OS_FREEBSD, org.eclipse.osgi.service.environment.Constants.OS_HPUX, org.eclipse.osgi.service.environment.Constants.OS_LINUX, org.eclipse.osgi.service.environment.Constants.OS_MACOSX, org.eclipse.osgi.service.environment.Constants.OS_QNX, org.eclipse.osgi.service.environment.Constants.OS_SOLARIS, org.eclipse.osgi.service.environment.Constants.OS_WIN32}; - protected static final String PI_RUNTIME = "org.eclipse.core.runtime"; //$NON-NLS-1$ - protected static final String PI_BOOT = "org.eclipse.core.boot"; //$NON-NLS-1$ - protected static final String PI_RUNTIME_COMPATIBILITY = "org.eclipse.core.runtime.compatibility"; //$NON-NLS-1$ -diff --git a/rt.equinox.framework/bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/service/environment/Constants.java b/rt.equinox.framework/bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/service/environment/Constants.java -index 4b017cd..013d6b1 100644 ---- a/rt.equinox.framework/bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/service/environment/Constants.java -+++ b/rt.equinox.framework/bundles/org.eclipse.osgi/supplement/src/org/eclipse/osgi/service/environment/Constants.java -@@ -93,6 +93,15 @@ public interface Constants { - public static final String OS_ZOS = "z/os"; //$NON-NLS-1$ - - /** -+ * Constant string (value "freebsd") indicating the platform is running on a -+ * FreeBSD operating system. -+ * Note this constant is not officially supported by the eclipse project -+ * and is only available on eclipse versions built from the FreeBSD ports -+ * tree. -+ */ -+ public static final String OS_FREEBSD = "freebsd"; //$NON-NLS-1$ -+ -+ /** - * Constant string (value "unknown") indicating the platform is running on a - * machine running an unknown operating system. - */ -diff --git a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/feature.xml b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/feature.xml -index 7b4a01b..fbbbe06 100644 ---- a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/feature.xml -+++ b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/feature.xml -@@ -92,6 +92,16 @@ - fragment="true"/> - - <plugin -+ id="org.eclipse.equinox.launcher.gtk.freebsd.%%ECLIPSE_ARCH%%" -+ os="freebsd" -+ ws="gtk" -+ arch="%%ECLIPSE_ARCH%%" -+ download-size="0" -+ install-size="0" -+ version="0.0.0" -+ fragment="true"/> -+ -+ <plugin - id="org.eclipse.equinox.launcher.gtk.linux.x86" - os="linux" - ws="gtk" -diff --git a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/build.sh b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/build.sh -index 29d3871..0ca7ccd 100644 ---- a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/build.sh -+++ b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/build.sh -@@ -40,6 +40,7 @@ defaultJava=DEFAULT_JAVA_JNI - defaultJavaHome="" - javaHome="" - makefile="" -+MAKE=make - if [ "${CC}" = "" ]; then - CC=cc - export CC -@@ -124,6 +125,28 @@ case $defaultOS in - ;; - esac - ;; -+ "FreeBSD" | "freebsd") -+ MODEL=`uname -m` -+ makefile="make_freebsd.mak" -+ MAKE=gmake -+ defaultOS="freebsd" -+ case $MODEL in -+ "amd64") -+ defaultOSArch="x86_64" -+ defaultJava=DEFAULT_JAVA_EXEC -+ [ -d ${JAVA_HOME}/jre ] && defaultJavaHome="${JAVA_HOME}/jre" -+ OUTPUT_DIR="$EXEC_DIR/bin/$defaultWS/$defaultOS/$defaultOSArch" -+ ;; -+ i?86 | "x86") -+ defaultOSArch="x86" -+ [ -d ${JAVA_HOME}/jre ] && defaultJavaHome="${JAVA_HOME}/jre" -+ OUTPUT_DIR="$EXEC_DIR/bin/$defaultWS/$defaultOS/$defaultOSArch" -+ ;; -+ *) -+ echo "*** Unknown MODEL <${MODEL}>" -+ ;; -+ esac -+ ;; - "AIX" | "aix") - makefile="make_aix.mak" - defaultOS="aix" -@@ -220,13 +243,14 @@ export OUTPUT_DIR PROGRAM_OUTPUT DEFAULT_OS DEFAULT_OS_ARCH DEFAULT_WS DEFAULT_J - # If the OS is supported (a makefile exists) - if [ "$makefile" != "" ]; then - if [ "$extraArgs" != "" ]; then -- make -f $makefile $extraArgs -+ echo "Building $OS launcher with args $extraArgs. Defaults: -os $DEFAULT_OS -arch $DEFAULT_OS_ARCH -ws $DEFAULT_WS" -+ ${MAKE} -f $makefile $extraArgs - else - echo "Building $OS launcher. Defaults: -os $DEFAULT_OS -arch $DEFAULT_OS_ARCH -ws $DEFAULT_WS" -- make -f $makefile clean -+ ${MAKE} -f $makefile clean - case x$CC in -- x*gcc*) make -f $makefile all PICFLAG=-fpic ;; -- *) make -f $makefile all ;; -+ x*cc*) ${MAKE} -f $makefile all PICFLAG=-fpic ;; -+ *) ${MAKE} -f $makefile all ;; - esac - fi - else -diff --git a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/pom.xml b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/pom.xml -index 156de22..7353724 100644 ---- a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/pom.xml -+++ b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/pom.xml -@@ -130,6 +130,36 @@ - - <profiles> - <profile> -+ <id>build-native-launchers-gtk.freebsd.%%ECLIPSE_ARCH%%</id> -+ <activation> -+ <property> -+ <name>native</name> -+ <value>gtk.freebsd.%%ECLIPSE_ARCH%%</value> -+ </property> -+ </activation> -+ <build> -+ <plugins> -+ <plugin> -+ <artifactId>maven-antrun-plugin</artifactId> -+ <executions> -+ <execution> -+ <id>compile-executable-natives</id> -+ <phase>generate-resources</phase> -+ <configuration> -+ <target> -+ <ant antfile="build.xml" dir="library/gtk/" target="build_eclipse"/> -+ </target> -+ </configuration> -+ <goals> -+ <goal>run</goal> -+ </goals> -+ </execution> -+ </executions> -+ </plugin> -+ </plugins> -+ </build> -+ </profile> -+ <profile> - <id>build-native-launchers-gtk.linux.x86_64</id> - <activation> - <property> -@@ -343,6 +373,7 @@ - <include name="gtk/linux/ppc64le/**/*"/> - <include name="gtk/linux/x86/**/*"/> - <include name="gtk/linux/x86_64/**/*"/> -+ <include name="gtk/freebsd/%%ECLIPSE_ARCH%%/**/*"/> - <include name="gtk/solaris/x86_64/**/*"/> - <include name="win32/win32/x86/**/*"/> - <include name="win32/win32/x86_64/**/*"/> -diff --git a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/resources/build.properties b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/resources/build.properties -index 0f30a87..36382de 100644 ---- a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/resources/build.properties -+++ b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/resources/build.properties -@@ -19,6 +19,11 @@ root.win32.win32.x86.permissions.755=launcher.exe - root.win32.win32.x86_64=file:bin/win32/win32/x86_64/launcher.exe - root.win32.win32.x86_64.permissions.755=launcher.exe - -+root.freebsd.gtk.x86=bin/gtk/freebsd/x86,gtk_root -+root.freebsd.gtk.x86.permissions.755=launcher,libcairo-swt.so -+root.freebsd.gtk.x86_64=bin/gtk/freebsd/x86_64,gtk_root -+root.freebsd.gtk.x86_64.permissions.755=launcher,libcairo-swt.so -+ - root.linux.gtk.x86=bin/gtk/linux/x86,gtk_root - root.linux.gtk.x86.permissions.755=launcher,libcairo-swt.so - -diff --git a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/resources/build.xml b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/resources/build.xml -index cdded03..a2a0af3 100644 ---- a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/resources/build.xml -+++ b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/resources/build.xml -@@ -128,6 +128,22 @@ - <chmod perm="755" dir="${feature.base}/macosx.cocoa.x86_64/${collectingFolder}" includes="${launcherName}" /> - <chmod perm="755" dir="${feature.base}/macosx.cocoa.x86_64/${collectingFolder}" includes="Eclipse.app/Contents/MacOS/launcher" /> - </target> -+ <target name="rootFilesfreebsd_gtk_x86"> -+ <mkdir dir="${feature.base}/freebsd.gtk.x86/${collectingFolder}"/> -+ <copy todir="${feature.base}/freebsd.gtk.x86/${collectingFolder}" failonerror="true" overwrite="true"> -+ <fileset dir="${basedir}/bin/gtk/freebsd/x86" includes="**" /> -+ <fileset dir="${basedir}/gtk_root" includes="**" /> -+ </copy> -+ <chmod perm="755" dir="${feature.base}/freebsd.gtk.x86/${collectingFolder}" includes="launcher" /> -+ </target> -+ <target name="rootFilesfreebsd_gtk_x86_64"> -+ <mkdir dir="${feature.base}/freebsd.gtk.x86_64/${collectingFolder}"/> -+ <copy todir="${feature.base}/freebsd.gtk.x86_64/${collectingFolder}" failonerror="true" overwrite="true"> -+ <fileset dir="${basedir}/bin/gtk/freebsd/x86_64" includes="**" /> -+ <fileset dir="${basedir}/gtk_root" includes="**" /> -+ </copy> -+ <chmod perm="755" dir="${feature.base}/freebsd.gtk.x86_64/${collectingFolder}" includes="launcher" /> -+ </target> - <target name="rootFileslinux_gtk_x86"> - <mkdir dir="${feature.base}/linux.gtk.x86/${collectingFolder}"/> - <copy todir="${feature.base}/linux.gtk.x86/${collectingFolder}" failonerror="true" overwrite="true"> -@@ -243,6 +259,8 @@ - <antcall target="rootFilesmacosx_carbon_x86"/> - <antcall target="rootFilesmacosx_cocoa_ppc"/> - <antcall target="rootFilesmacosx_cocoa_x86"/> -+ <antcall target="rootFilesfreebsd_gtk_x86"/> -+ <antcall target="rootFilesfreebsd_gtk_x86_64"/> - <antcall target="rootFileslinux_gtk_x86"/> - <antcall target="rootFileslinux_gtk_ppc"/> - <antcall target="rootFileslinux_gtk_ppc64"/> -diff --git a/rt.equinox.framework/pom.xml b/rt.equinox.framework/pom.xml -index b46cdc6..d46c81d 100644 ---- a/rt.equinox.framework/pom.xml -+++ b/rt.equinox.framework/pom.xml -@@ -60,6 +60,7 @@ - <module>bundles/org.eclipse.equinox.launcher.gtk.linux.s390x</module> - <module>bundles/org.eclipse.equinox.launcher.gtk.linux.x86</module> - <module>bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64</module> -+ <module>bundles/org.eclipse.equinox.launcher.gtk.freebsd.%%ECLIPSE_ARCH%%</module> - <module>bundles/org.eclipse.equinox.launcher.gtk.solaris.x86_64</module> - <module>bundles/org.eclipse.equinox.launcher.win32.win32.x86</module> - <module>bundles/org.eclipse.equinox.launcher.win32.win32.x86_64</module> -diff --git a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/internal/p2/publisher/eclipse/BrandingIron.java b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/internal/p2/publisher/eclipse/BrandingIron.java -index 3cf2fe1..53f82b3 100644 ---- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/internal/p2/publisher/eclipse/BrandingIron.java -+++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/internal/p2/publisher/eclipse/BrandingIron.java -@@ -123,6 +123,8 @@ public class BrandingIron { - brandAIX(descriptor); - else if ("hpux".equals(os)) //$NON-NLS-1$ - brandHPUX(descriptor); -+ else if ("freebsd".equals(os)) //$NON-NLS-1$ -+ brandFreeBSD(descriptor); - else - renameLauncher(descriptor); - descriptor.setExecutableName(name, true); -@@ -178,6 +180,14 @@ public class BrandingIron { - } - } - -+ private void brandFreeBSD(ExecutablesDescriptor descriptor) throws Exception { -+ renameLauncher(descriptor); -+ -+ File root = descriptor.getLocation(); -+ if (brandIcons) -+ Utils.copy(new File(icons[0]), new File(root, "icon.xpm")); //$NON-NLS-1$ -+ } -+ - private void brandMac(ExecutablesDescriptor descriptor) throws Exception { - //Initially the files are in: <root>/Eclipse.app/ - //and they must appear in <root>/MyAppName.app/ -diff --git a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/internal/p2/publisher/eclipse/ProductFile.java b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/internal/p2/publisher/eclipse/ProductFile.java -index 73fd078..89299b2 100644 ---- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/internal/p2/publisher/eclipse/ProductFile.java -+++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/internal/p2/publisher/eclipse/ProductFile.java -@@ -68,11 +68,13 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor { - private final static SAXParserFactory parserFactory = SAXParserFactory.newInstance(); - - private static final String PROGRAM_ARGS = "programArgs"; //$NON-NLS-1$ -+ private static final String PROGRAM_ARGS_FREEBSD = "programArgsFre"; //$NON-NLS-1$ - private static final String PROGRAM_ARGS_LINUX = "programArgsLin"; //$NON-NLS-1$ - private static final String PROGRAM_ARGS_MAC = "programArgsMac"; //$NON-NLS-1$ - private static final String PROGRAM_ARGS_SOLARIS = "programArgsSol"; //$NON-NLS-1$ - private static final String PROGRAM_ARGS_WIN = "programArgsWin"; //$NON-NLS-1$ - private static final String VM_ARGS = "vmArgs"; //$NON-NLS-1$ -+ private static final String VM_ARGS_FREEBSD = "vmArgsFre"; //$NON-NLS-1$ - private static final String VM_ARGS_LINUX = "vmArgsLin"; //$NON-NLS-1$ - private static final String VM_ARGS_MAC = "vmArgsMac"; //$NON-NLS-1$ - private static final String VM_ARGS_SOLARIS = "vmArgsSol"; //$NON-NLS-1$ -@@ -95,6 +97,7 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor { - private static final String OS_LINUX = "linux";//$NON-NLS-1$ - private static final String OS_SOLARIS = "solaris";//$NON-NLS-1$ - private static final String OS_MACOSX = "macosx";//$NON-NLS-1$ -+ private static final String OS_FREEBSD = "freebsd";//$NON-NLS-1$ - - // These must match Platform constant values - private static final String ARCH_X86 = "x86"; //$NON-NLS-1$ -@@ -138,11 +141,13 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor { - private static final int STATE_PLUGINS = 4; - private static final int STATE_FEATURES = 5; - private static final int STATE_PROGRAM_ARGS = 6; -+ private static final int STATE_PROGRAM_ARGS_FREEBSD = 100; - private static final int STATE_PROGRAM_ARGS_LINUX = 7; - private static final int STATE_PROGRAM_ARGS_MAC = 8; - private static final int STATE_PROGRAM_ARGS_SOLARIS = 9; - private static final int STATE_PROGRAM_ARGS_WIN = 10; - private static final int STATE_VM_ARGS = 11; -+ private static final int STATE_VM_ARGS_FREEBSD = 101; - private static final int STATE_VM_ARGS_LINUX = 12; - private static final int STATE_VM_ARGS_MAC = 13; - private static final int STATE_VM_ARGS_SOLARIS = 14; -@@ -532,6 +537,8 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor { - key = VM_ARGS_MAC; - } else if (os.equals(OS_SOLARIS)) { - key = VM_ARGS_SOLARIS; -+ } else if (os.equals(OS_FREEBSD)) { -+ key = VM_ARGS_FREEBSD; - } - - arch = arch == null ? "" : arch; //$NON-NLS-1$ -@@ -611,6 +618,8 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor { - key = PROGRAM_ARGS_MAC; - } else if (os.equals(OS_SOLARIS)) { - key = PROGRAM_ARGS_SOLARIS; -+ } else if (os.equals(OS_FREEBSD)) { -+ key = PROGRAM_ARGS_FREEBSD; - } - - arch = arch == null ? "" : arch; //$NON-NLS-1$ -@@ -724,6 +733,8 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor { - processLinux(attributes); - } else if (OS_MACOSX.equals(localName)) { - processMac(attributes); -+ } else if (OS_FREEBSD.equals(localName)) { -+ processFreeBSD(attributes); - } - if ("ico".equals(localName)) { //$NON-NLS-1$ - processIco(attributes); -@@ -735,6 +746,8 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor { - case STATE_LAUNCHER_ARGS : - if (PROGRAM_ARGS.equals(localName)) { - state = STATE_PROGRAM_ARGS; -+ } else if (PROGRAM_ARGS_FREEBSD.equals(localName)) { -+ state = STATE_PROGRAM_ARGS_FREEBSD; - } else if (PROGRAM_ARGS_LINUX.equals(localName)) { - state = STATE_PROGRAM_ARGS_LINUX; - } else if (PROGRAM_ARGS_MAC.equals(localName)) { -@@ -745,6 +758,8 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor { - state = STATE_PROGRAM_ARGS_WIN; - } else if (VM_ARGS.equals(localName)) { - state = STATE_VM_ARGS; -+ } else if (VM_ARGS_FREEBSD.equals(localName)) { -+ state = STATE_VM_ARGS_FREEBSD; - } else if (VM_ARGS_LINUX.equals(localName)) { - state = STATE_VM_ARGS_LINUX; - } else if (VM_ARGS_MAC.equals(localName)) { -@@ -764,6 +779,11 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor { - setArchState(localName); - break; - -+ case STATE_PROGRAM_ARGS_FREEBSD : -+ platformKeyPrefix = PROGRAM_ARGS_FREEBSD; -+ setArchState(localName); -+ break; -+ - case STATE_PROGRAM_ARGS_LINUX : - platformKeyPrefix = PROGRAM_ARGS_LINUX; - setArchState(localName); -@@ -789,6 +809,11 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor { - setArchState(localName); - break; - -+ case STATE_VM_ARGS_FREEBSD : -+ platformKeyPrefix = VM_ARGS_FREEBSD; -+ setArchState(localName); -+ break; -+ - case STATE_VM_ARGS_LINUX : - platformKeyPrefix = VM_ARGS_LINUX; - setArchState(localName); -@@ -961,11 +986,13 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor { - break; - - case STATE_PROGRAM_ARGS : -+ case STATE_PROGRAM_ARGS_FREEBSD : - case STATE_PROGRAM_ARGS_LINUX : - case STATE_PROGRAM_ARGS_MAC : - case STATE_PROGRAM_ARGS_SOLARIS : - case STATE_PROGRAM_ARGS_WIN : - case STATE_VM_ARGS : -+ case STATE_VM_ARGS_FREEBSD : - case STATE_VM_ARGS_LINUX : - case STATE_VM_ARGS_MAC : - case STATE_VM_ARGS_SOLARIS : -@@ -1008,6 +1035,9 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor { - case STATE_PROGRAM_ARGS : - addLaunchArgumentToMap(PROGRAM_ARGS, String.valueOf(ch, start, length)); - break; -+ case STATE_PROGRAM_ARGS_FREEBSD : -+ addLaunchArgumentToMap(PROGRAM_ARGS_FREEBSD, String.valueOf(ch, start, length)); -+ break; - case STATE_PROGRAM_ARGS_LINUX : - addLaunchArgumentToMap(PROGRAM_ARGS_LINUX, String.valueOf(ch, start, length)); - break; -@@ -1023,6 +1053,9 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor { - case STATE_VM_ARGS : - addLaunchArgumentToMap(VM_ARGS, String.valueOf(ch, start, length)); - break; -+ case STATE_VM_ARGS_FREEBSD : -+ addLaunchArgumentToMap(VM_ARGS_FREEBSD, String.valueOf(ch, start, length)); -+ break; - case STATE_VM_ARGS_LINUX : - addLaunchArgumentToMap(VM_ARGS_LINUX, String.valueOf(ch, start, length)); - break; -@@ -1206,6 +1239,10 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor { - addIcon(OS_WIN32, attributes.getValue(WIN32_256_HIGH)); - } - -+ private void processFreeBSD(Attributes attributes) { -+ addIcon(OS_FREEBSD, attributes.getValue(ATTRIBUTE_ICON)); -+ } -+ - private void processLinux(Attributes attributes) { - addIcon(OS_LINUX, attributes.getValue(ATTRIBUTE_ICON)); - } -diff --git a/rt.equinox.p2/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/build.properties b/rt.equinox.p2/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/build.properties -index d8e85b5..10e1c66 100644 ---- a/rt.equinox.p2/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/build.properties -+++ b/rt.equinox.p2/examples/org.eclipse.equinox.p2.examples.rcp.cloud.releng/build.properties -@@ -29,7 +29,8 @@ collectingFolder=${archivePrefix} - # configs=win32,win32,x86 & linux,motif,x86 - # By default the value is *,*,* - configs = win32, win32, x86 & \ -- linux, gtk, x86 & -+ linux, gtk, x86 & \ -+ freebsd, gtk, x86 - #configs=win32, win32, x86 & \ - # linux, gtk, ppc &\ - # linux, gtk, x86 & \ -diff --git a/rt.equinox.p2/examples/org.eclipse.equinox.p2.examples.rcp.discovery.releng/build.properties b/rt.equinox.p2/examples/org.eclipse.equinox.p2.examples.rcp.discovery.releng/build.properties -index 4be192c..10e1c66 100644 ---- a/rt.equinox.p2/examples/org.eclipse.equinox.p2.examples.rcp.discovery.releng/build.properties -+++ b/rt.equinox.p2/examples/org.eclipse.equinox.p2.examples.rcp.discovery.releng/build.properties -@@ -29,7 +29,8 @@ collectingFolder=${archivePrefix} - # configs=win32,win32,x86 & linux,motif,x86 - # By default the value is *,*,* - configs = win32, win32, x86 & \ -- linux, gtk, x86 -+ linux, gtk, x86 & \ -+ freebsd, gtk, x86 - #configs=win32, win32, x86 & \ - # linux, gtk, ppc &\ - # linux, gtk, x86 & \ -diff --git a/rt.equinox.p2/features/org.eclipse.equinox.p2.core.feature/pom.xml b/rt.equinox.p2/features/org.eclipse.equinox.p2.core.feature/pom.xml -index 70fdde5..d9807d9 100644 ---- a/rt.equinox.p2/features/org.eclipse.equinox.p2.core.feature/pom.xml -+++ b/rt.equinox.p2/features/org.eclipse.equinox.p2.core.feature/pom.xml -@@ -39,6 +39,9 @@ - <excludes> - <plugin id="org.sat4j.core"/> - <plugin id="org.sat4j.pb"/> -+ <plugin id="org.eclipse.equinox.security.macosx"/> -+ <plugin id="org.eclipse.equinox.security.win32.x86"/> -+ <plugin id="org.eclipse.equinox.security.win32.x86_64"/> - </excludes> - </configuration> - </execution> -diff --git a/eclipse.platform.ua/org.eclipse.ui.intro.universal/plugin.xml b/eclipse.platform.ua/org.eclipse.ui.intro.universal/plugin.xml -index e9f8e1d..35b3df6 100644 ---- a/eclipse.platform.ua/org.eclipse.ui.intro.universal/plugin.xml -+++ b/eclipse.platform.ua/org.eclipse.ui.intro.universal/plugin.xml -@@ -46,7 +46,7 @@ - <implementation - style="themes/shared/html/shared.css,$theme$/html/shared.css,$theme$/html/font-$fontStyle$.css,$theme$/html/$direction$.css" - kind="html" -- os="win32,linux,macosx,solaris"> -+ os="win32,freebsd,linux,macosx,solaris"> - </implementation> - <implementation - kind="swt"> -diff --git a/eclipse.platform.ui/bundles/org.eclipse.ui.browser/plugin.xml b/eclipse.platform.ui/bundles/org.eclipse.ui.browser/plugin.xml -index 7ed3896..84af871 100644 ---- a/eclipse.platform.ui/bundles/org.eclipse.ui.browser/plugin.xml -+++ b/eclipse.platform.ui/bundles/org.eclipse.ui.browser/plugin.xml -@@ -87,7 +87,7 @@ - <browser - id="org.eclipse.ui.browser.firefox" - name="%browserFirefox" -- os="linux,aix,hpux,solaris" -+ os="freebsd,linux,aix,hpux,solaris" - executable="firefox" - factoryclass="org.eclipse.ui.internal.browser.browsers.MozillaFactory"> - <location> -diff --git a/eclipse.platform.text/org.eclipse.ui.workbench.texteditor/plugin.xml b/eclipse.platform.text/org.eclipse.ui.workbench.texteditor/plugin.xml -index 46672cb..86bfcd5 100644 ---- a/eclipse.platform.text/org.eclipse.ui.workbench.texteditor/plugin.xml -+++ b/eclipse.platform.text/org.eclipse.ui.workbench.texteditor/plugin.xml -@@ -1184,7 +1184,7 @@ - %blockSelectionModeFont.description - </description> - <fontValue -- os="linux" -+ os="freebsd,linux" - value="Monospace-regular-10" - ws="gtk"> - </fontValue> -diff --git a/eclipse.platform.ui/bundles/org.eclipse.ui.themes/plugin.xml b/eclipse.platform.ui/bundles/org.eclipse.ui.themes/plugin.xml -index 5334aec..0f27c9b 100644 ---- a/eclipse.platform.ui/bundles/org.eclipse.ui.themes/plugin.xml -+++ b/eclipse.platform.ui/bundles/org.eclipse.ui.themes/plugin.xml -@@ -21,6 +21,12 @@ - os="linux"> - </theme> - <theme -+ basestylesheeturi="css/e4-dark.css" -+ id="org.eclipse.e4.ui.css.theme.e4_dark" -+ label="%theme.dark" -+ os="freebsd"> -+ </theme> -+ <theme - basestylesheeturi="css/e4-dark_win.css" - id="org.eclipse.e4.ui.css.theme.e4_dark" - label="%theme.dark" -@@ -38,6 +44,12 @@ - label="%theme.gtk" - os="linux"> - </theme> -+ <theme -+ basestylesheeturi="css/e4_default_gtk.css" -+ id="org.eclipse.e4.ui.css.theme.e4_default" -+ label="%theme.gtk" -+ os="freebsd"> -+ </theme> - <theme - basestylesheeturi="css/e4_classic_winxp.css" - id="org.eclipse.e4.ui.css.theme.e4_default" -diff --git a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests.reconciler.product/pom.xml b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests.reconciler.product/pom.xml -index 9b2fce9..68e15bc 100644 ---- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests.reconciler.product/pom.xml -+++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests.reconciler.product/pom.xml -@@ -38,6 +38,7 @@ - </goals> - <configuration> - <formats> -+ <freebsd>tar.gz</freebsd> - <linux>tar.gz</linux> - </formats> - </configuration> -diff --git a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests.reconciler.product/reconciler.product b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests.reconciler.product/reconciler.product -index 92973d3..b492f25 100644 ---- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests.reconciler.product/reconciler.product -+++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests.reconciler.product/reconciler.product -@@ -43,7 +43,10 @@ - <plugin id="org.eclipse.core.expressions"/> - <plugin id="org.eclipse.core.jobs"/> - <plugin id="org.eclipse.core.net"/> -+ <plugin id="org.eclipse.core.net.freebsd.%%ECLIPSE_ARCH%%" fragment="true"/> -+<!-- - <plugin id="org.eclipse.core.net.linux.x86_64" fragment="true"/> -+--> - <plugin id="org.eclipse.core.runtime"/> - <plugin id="org.eclipse.core.runtime.compatibility"/> - <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/> -@@ -128,11 +131,14 @@ - <plugin id="org.eclipse.osgi.services"/> - <plugin id="org.eclipse.osgi.util"/> - <plugin id="org.eclipse.swt"/> -+ <plugin id="org.eclipse.swt.gtk.freebsd.%%ECLIPSE_ARCH%%" fragment="true"/> -+<!-- - <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/> - <plugin id="org.eclipse.swt.gtk.linux.x86" fragment="true"/> - <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/> - <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/> - <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/> -+--> - <plugin id="org.eclipse.ui"/> - <plugin id="org.eclipse.ui.workbench"/> - <plugin id="org.eclipse.update.configurator"/> -diff --git a/eclipse.platform.releng/features/org.eclipse.rcp/pom.xml b/eclipse.platform.releng/features/org.eclipse.rcp/pom.xml -index dde92d3..09ab2ae 100644 ---- a/eclipse.platform.releng/features/org.eclipse.rcp/pom.xml -+++ b/eclipse.platform.releng/features/org.eclipse.rcp/pom.xml -@@ -37,6 +37,7 @@ - <configuration> - <excludes> - <plugin id="org.eclipse.rcp"/> -+ <plugin id="org.eclipse.ui.cocoa"/> - </excludes> - </configuration> - </execution> -diff --git a/eclipse.platform.releng/features/org.eclipse.platform-feature/feature.xml b/eclipse.platform.releng/features/org.eclipse.platform-feature/feature.xml -index 35144a0..5492b95 100644 ---- a/eclipse.platform.releng/features/org.eclipse.platform-feature/feature.xml -+++ b/eclipse.platform.releng/features/org.eclipse.platform-feature/feature.xml -@@ -106,6 +106,16 @@ - unpack="false"/> - - <plugin -+ id="org.eclipse.core.net.freebsd.%%ECLIPSE_ARCH%%" -+ os="freebsd" -+ arch="%%ECLIPSE_ARCH%%" -+ download-size="0" -+ install-size="0" -+ version="0.0.0" -+ fragment="true" -+ unpack="false"/> -+ -+ <plugin - id="org.eclipse.core.net.linux.x86_64" - os="linux" - arch="x86_64" -@@ -397,6 +417,16 @@ - unpack="false"/> - - <plugin -+ id="org.eclipse.core.filesystem.freebsd.%%ECLIPSE_ARCH%%" -+ os="freebsd" -+ arch="%%ECLIPSE_ARCH%%" -+ download-size="0" -+ install-size="0" -+ version="0.0.0" -+ fragment="true" -+ unpack="false"/> -+ -+ <plugin - id="org.eclipse.core.filesystem.linux.x86" - os="linux" - arch="x86" -diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/pom.xml b/eclipse.platform.swt/bundles/org.eclipse.swt/pom.xml -index 01db883..22c1314 100644 ---- a/eclipse.platform.swt/bundles/org.eclipse.swt/pom.xml -+++ b/eclipse.platform.swt/bundles/org.eclipse.swt/pom.xml -@@ -20,9 +20,9 @@ - <artifactId>org.eclipse.swt</artifactId> - <version>3.105.0-SNAPSHOT</version> - <packaging>eclipse-plugin</packaging> -- <properties> -+ <!-- properties> - <forceContextQualifier>v20160603-0902</forceContextQualifier> -- </properties> -+ </properties --> - <build> - <plugins> - <plugin> -diff --git a/eclipse.platform.swt.binaries/bundles/binaries-parent/pom.xml b/eclipse.platform.swt.binaries/bundles/binaries-parent/pom.xml -index 73c4197..4493f7c 100644 ---- a/eclipse.platform.swt.binaries/bundles/binaries-parent/pom.xml -+++ b/eclipse.platform.swt.binaries/bundles/binaries-parent/pom.xml -@@ -21,9 +21,9 @@ - <artifactId>binaries-parent</artifactId> - <version>4.6.0-SNAPSHOT</version> - <packaging>pom</packaging> -- <properties> -+ <!-- properties> - <forceContextQualifier>v20160603-0902</forceContextQualifier> -- </properties> -+ </properties --> - <build> - <plugins> - <plugin> |