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 @@ + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + 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 + ""); //$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 + ""); //$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 + ""); //$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 + ""); //$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(""); //$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(""); //$NON-NLS-1$ //$NON-NLS-2$ + } writer.print(indent + ""); //$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(""); //$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(""); //$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 + " 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 + ""); //$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 + ""); //$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 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 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 @@ + @@ -70,6 +71,7 @@ + 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 @@ - 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 @@ bundles/org.eclipse.core.filesystem + bundles/org.eclipse.core.filesystem/fragments/org.eclipse.core.filesystem.freebsd.%%ECLIPSE_ARCH%% bundles/org.eclipse.core.filesystem.hpux.ia64 bundles/org.eclipse.core.filesystem.hpux.PA_RISC bundles/org.eclipse.core.filesystem.linux.ppc 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. + *

+ * 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/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\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\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 @@ bundles/org.eclipse.swt.gtk.linux.s390x bundles/org.eclipse.swt.gtk.linux.x86 bundles/org.eclipse.swt.gtk.linux.x86_64 + bundles/org.eclipse.swt.gtk.freebsd.%%ECLIPSE_ARCH%% bundles/org.eclipse.swt.gtk.solaris.sparcv9 bundles/org.eclipse.swt.gtk.solaris.x86_64 bundles/org.eclipse.swt.win32.win32.x86 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 #include -#ifdef __linux__ +#ifdef __STDC__ #include #else #include 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 @@ features/org.eclipse.cvs-feature + bundles/org.eclipse.core.net/fragments/org.eclipse.core.net.freebsd.%%ECLIPSE_ARCH%% bundles/org.eclipse.core.net/fragments/org.eclipse.core.net.linux.x86 bundles/org.eclipse.core.net/fragments/org.eclipse.core.net.linux.x86_64 bundles/org.eclipse.core.net/fragments/org.eclipse.core.net.win32.x86 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"/> + + + + + 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 @@ org.eclipse.equinox.launcher 1.3.0-SNAPSHOT eclipse-plugin + + + + + + maven-antrun-plugin + 1.7 + + + bsf + bsf + 2.4.0 + + + rhino + js + 1.7R2 + + + org.apache.ant + ant-apache-bsf + 1.8.3 + + + org.apache.ant + ant-nodeps + 1.8.1 + + + + + + + + + + build-native-launchers-gtk.freebsd.%%ECLIPSE_ARCH%% + + + native + gtk.freebsd.%%ECLIPSE_ARCH%% + + + + + + maven-antrun-plugin + + + compile-executable-natives + generate-resources + + + + + + + run + + + + + + + + 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. + *

+ * 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/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"/> + + " + ;; + 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 @@ + build-native-launchers-gtk.freebsd.%%ECLIPSE_ARCH%% + + + native + gtk.freebsd.%%ECLIPSE_ARCH%% + + + + + + maven-antrun-plugin + + + compile-executable-natives + generate-resources + + + + + + + run + + + + + + + + build-native-launchers-gtk.linux.x86_64 @@ -343,6 +373,7 @@ + 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 @@
+ + + + + + + + + + + + + + + + @@ -243,6 +259,8 @@ + + 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 @@ bundles/org.eclipse.equinox.launcher.gtk.linux.s390x bundles/org.eclipse.equinox.launcher.gtk.linux.x86 bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64 + bundles/org.eclipse.equinox.launcher.gtk.freebsd.%%ECLIPSE_ARCH%% bundles/org.eclipse.equinox.launcher.gtk.solaris.x86_64 bundles/org.eclipse.equinox.launcher.win32.win32.x86 bundles/org.eclipse.equinox.launcher.win32.win32.x86_64 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: /Eclipse.app/ //and they must appear in /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 @@ + + + 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 @@ + os="win32,freebsd,linux,macosx,solaris"> 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 @@ 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 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"> + + + + + tar.gz tar.gz 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 @@ + + @@ -128,11 +131,14 @@ + + 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 @@ + 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"/> + + + + org.eclipse.swt 3.105.0-SNAPSHOT eclipse-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 @@ binaries-parent 4.6.0-SNAPSHOT pom - +