Skip to content

Commit 15a91f1

Browse files
committed
Add FreeBSD platforms' build.
Part of eclipse-platform/eclipse.platform.releng.aggregator#2959 Most changes are made to the parser of the .product file (ProductFile.java) to support relevant elements for FreeBSD such as: programArgsFbsd vmArgsFbsd
1 parent eaf4474 commit 15a91f1

File tree

3 files changed

+63
-4
lines changed

3 files changed

+63
-4
lines changed

bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/internal/p2/publisher/eclipse/BrandingIron.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2005, 2024 IBM Corporation and others.
2+
* Copyright (c) 2005, 2025 IBM Corporation and others.
33
*
44
* This program and the accompanying materials
55
* are made available under the terms of the Eclipse Public License 2.0
@@ -12,6 +12,7 @@
1212
* IBM Corporation - initial API and implementation
1313
* Code 9 - Additional function and fixes
1414
* SAP SE - support macOS bundle URL types
15+
* Tue Ton - support for FreeBSD
1516
*******************************************************************************/
1617
package org.eclipse.equinox.internal.p2.publisher.eclipse;
1718

@@ -125,7 +126,8 @@ public void brand(ExecutablesDescriptor descriptor) throws Exception {
125126
brandWindows(descriptor);
126127
break;
127128
case "linux": //$NON-NLS-1$
128-
brandLinux(descriptor);
129+
case "freebsd": //$NON-NLS-1$
130+
brandUnix(descriptor);
129131
break;
130132
case "solaris": //$NON-NLS-1$
131133
brandSolaris(descriptor);
@@ -155,7 +157,7 @@ private void brandHPUX(ExecutablesDescriptor descriptor) {
155157
renameLauncher(descriptor);
156158
}
157159

158-
private void brandLinux(ExecutablesDescriptor descriptor) throws Exception {
160+
private void brandUnix(ExecutablesDescriptor descriptor) throws Exception {
159161
renameLauncher(descriptor);
160162
if (brandIcons) {
161163
File icon = null;

bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/internal/p2/publisher/eclipse/ProductFile.java

+53-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2005, 2024 IBM Corporation and others.
2+
* Copyright (c) 2005, 2025 IBM Corporation and others.
33
*
44
* This program and the accompanying materials
55
* are made available under the terms of the Eclipse Public License 2.0
@@ -17,6 +17,7 @@
1717
* Rapicorp - additional features
1818
* Red Hat Inc. - Bug 460967
1919
* SAP SE - support macOS bundle URL types
20+
* Tue Ton - support for FreeBSD
2021
*******************************************************************************/
2122

2223
package org.eclipse.equinox.internal.p2.publisher.eclipse;
@@ -74,12 +75,14 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor {
7475
private static final String PROPERTY_ECLIPSE_PRODUCT = "eclipse.product"; //$NON-NLS-1$
7576

7677
private static final String PROGRAM_ARGS = "programArgs"; //$NON-NLS-1$
78+
private static final String PROGRAM_ARGS_FREEBSD = "programArgsFbsd"; //$NON-NLS-1$
7779
private static final String PROGRAM_ARGS_LINUX = "programArgsLin"; //$NON-NLS-1$
7880
private static final String PROGRAM_ARGS_MAC = "programArgsMac"; //$NON-NLS-1$
7981
private static final String PROGRAM_ARGS_SOLARIS = "programArgsSol"; //$NON-NLS-1$
8082
private static final String PROGRAM_ARGS_WIN = "programArgsWin"; //$NON-NLS-1$
8183
private static final String VM = "vm"; //$NON-NLS-1$
8284
private static final String VM_ARGS = "vmArgs"; //$NON-NLS-1$
85+
private static final String VM_ARGS_FREEBSD = "vmArgsFbsd"; //$NON-NLS-1$
8386
private static final String VM_ARGS_LINUX = "vmArgsLin"; //$NON-NLS-1$
8487
private static final String VM_ARGS_MAC = "vmArgsMac"; //$NON-NLS-1$
8588
private static final String VM_ARGS_SOLARIS = "vmArgsSol"; //$NON-NLS-1$
@@ -99,6 +102,7 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor {
99102
private static final String WIN32_256_HIGH = "winExtraLargeHigh"; //$NON-NLS-1$
100103

101104
private static final String OS_WIN32 = "win32";//$NON-NLS-1$
105+
private static final String OS_FREEBSD = "freebsd";//$NON-NLS-1$
102106
private static final String OS_LINUX = "linux";//$NON-NLS-1$
103107
private static final String OS_SOLARIS = "solaris";//$NON-NLS-1$
104108
private static final String OS_MACOSX = "macosx";//$NON-NLS-1$
@@ -177,6 +181,10 @@ public class ProductFile extends DefaultHandler implements IProductDescriptor {
177181
private static final int STATE_VM_WINDOWS = 33;
178182
private static final int STATE_LAUNCHER_MAC = 34;
179183
private static final int STATE_LAUNCHER_MAC_BUNDLE_URL_TYPES = 35;
184+
//for FreeBSD
185+
private static final int STATE_PROGRAM_ARGS_FREEBSD = 36;
186+
private static final int STATE_VM_ARGS_FREEBSD = 37;
187+
private static final int STATE_VM_FREEBSD = 38;
180188

181189
private static final String PI_PDEBUILD = "org.eclipse.pde.build"; //$NON-NLS-1$
182190
private final static int EXCEPTION_PRODUCT_FORMAT = 23;
@@ -555,6 +563,9 @@ public String getVMArguments(String os, String arch) {
555563
case OS_WIN32:
556564
key = VM_ARGS_WIN;
557565
break;
566+
case OS_FREEBSD:
567+
key = VM_ARGS_FREEBSD;
568+
break;
558569
case OS_LINUX:
559570
key = VM_ARGS_LINUX;
560571
break;
@@ -655,6 +666,9 @@ public String getProgramArguments(String os, String arch) {
655666
case OS_WIN32:
656667
key = PROGRAM_ARGS_WIN;
657668
break;
669+
case OS_FREEBSD:
670+
key = PROGRAM_ARGS_FREEBSD;
671+
break;
658672
case OS_LINUX:
659673
key = PROGRAM_ARGS_LINUX;
660674
break;
@@ -812,6 +826,9 @@ public void startElement(String uri, String localName, String qName, Attributes
812826
case "win": //$NON-NLS-1$
813827
processWin(attributes);
814828
break;
829+
case OS_FREEBSD:
830+
processFreeBSD(attributes);
831+
break;
815832
case OS_LINUX:
816833
processLinux(attributes);
817834
break;
@@ -853,6 +870,9 @@ public void startElement(String uri, String localName, String qName, Attributes
853870
case PROGRAM_ARGS:
854871
state = STATE_PROGRAM_ARGS;
855872
break;
873+
case PROGRAM_ARGS_FREEBSD:
874+
state = STATE_PROGRAM_ARGS_FREEBSD;
875+
break;
856876
case PROGRAM_ARGS_LINUX:
857877
state = STATE_PROGRAM_ARGS_LINUX;
858878
break;
@@ -868,6 +888,9 @@ public void startElement(String uri, String localName, String qName, Attributes
868888
case VM_ARGS:
869889
state = STATE_VM_ARGS;
870890
break;
891+
case VM_ARGS_FREEBSD:
892+
state = STATE_VM_ARGS_FREEBSD;
893+
break;
871894
case VM_ARGS_LINUX:
872895
state = STATE_VM_ARGS_LINUX;
873896
break;
@@ -895,6 +918,11 @@ public void startElement(String uri, String localName, String qName, Attributes
895918
setArchState(localName);
896919
break;
897920

921+
case STATE_PROGRAM_ARGS_FREEBSD :
922+
platformKeyPrefix = PROGRAM_ARGS_FREEBSD;
923+
setArchState(localName);
924+
break;
925+
898926
case STATE_PROGRAM_ARGS_LINUX :
899927
platformKeyPrefix = PROGRAM_ARGS_LINUX;
900928
setArchState(localName);
@@ -920,6 +948,11 @@ public void startElement(String uri, String localName, String qName, Attributes
920948
setArchState(localName);
921949
break;
922950

951+
case STATE_VM_ARGS_FREEBSD :
952+
platformKeyPrefix = VM_ARGS_FREEBSD;
953+
setArchState(localName);
954+
break;
955+
923956
case STATE_VM_ARGS_LINUX :
924957
platformKeyPrefix = VM_ARGS_LINUX;
925958
setArchState(localName);
@@ -977,6 +1010,9 @@ public void startElement(String uri, String localName, String qName, Attributes
9771010
case STATE_VM :
9781011
if (null != localName) {
9791012
switch (localName) {
1013+
case OS_FREEBSD:
1014+
state = STATE_VM_FREEBSD;
1015+
break;
9801016
case OS_LINUX:
9811017
state = STATE_VM_LINUX;
9821018
break;
@@ -1151,18 +1187,21 @@ public void endElement(String uri, String localName, String qName) {
11511187
case STATE_VM :
11521188
state = STATE_PRODUCT;
11531189
break;
1190+
case STATE_VM_FREEBSD :
11541191
case STATE_VM_LINUX :
11551192
case STATE_VM_WINDOWS :
11561193
case STATE_VM_MACOS :
11571194
state = STATE_VM;
11581195
break;
11591196

11601197
case STATE_PROGRAM_ARGS :
1198+
case STATE_PROGRAM_ARGS_FREEBSD :
11611199
case STATE_PROGRAM_ARGS_LINUX :
11621200
case STATE_PROGRAM_ARGS_MAC :
11631201
case STATE_PROGRAM_ARGS_SOLARIS :
11641202
case STATE_PROGRAM_ARGS_WIN :
11651203
case STATE_VM_ARGS :
1204+
case STATE_VM_ARGS_FREEBSD :
11661205
case STATE_VM_ARGS_LINUX :
11671206
case STATE_VM_ARGS_MAC :
11681207
case STATE_VM_ARGS_SOLARIS :
@@ -1207,6 +1246,9 @@ public void characters(char[] ch, int start, int length) {
12071246
case STATE_PROGRAM_ARGS :
12081247
addLaunchArgumentToMap(PROGRAM_ARGS, String.valueOf(ch, start, length));
12091248
break;
1249+
case STATE_PROGRAM_ARGS_FREEBSD :
1250+
addLaunchArgumentToMap(PROGRAM_ARGS_FREEBSD, String.valueOf(ch, start, length));
1251+
break;
12101252
case STATE_PROGRAM_ARGS_LINUX :
12111253
addLaunchArgumentToMap(PROGRAM_ARGS_LINUX, String.valueOf(ch, start, length));
12121254
break;
@@ -1222,6 +1264,9 @@ public void characters(char[] ch, int start, int length) {
12221264
case STATE_VM_ARGS :
12231265
addLaunchArgumentToMap(VM_ARGS, String.valueOf(ch, start, length));
12241266
break;
1267+
case STATE_VM_ARGS_FREEBSD :
1268+
addLaunchArgumentToMap(VM_ARGS_FREEBSD, String.valueOf(ch, start, length));
1269+
break;
12251270
case STATE_VM_ARGS_LINUX :
12261271
addLaunchArgumentToMap(VM_ARGS_LINUX, String.valueOf(ch, start, length));
12271272
break;
@@ -1268,6 +1313,9 @@ public void characters(char[] ch, int start, int length) {
12681313
licenseText += String.valueOf(ch, start, length);
12691314
}
12701315
break;
1316+
case STATE_VM_FREEBSD :
1317+
addVM(OS_FREEBSD, String.valueOf(ch, start, length));
1318+
break;
12711319
case STATE_VM_LINUX :
12721320
addVM(OS_LINUX, String.valueOf(ch, start, length));
12731321
break;
@@ -1445,6 +1493,10 @@ private void processBmp(Attributes attributes) {
14451493
addIcon(OS_WIN32, attributes.getValue(WIN32_256_HIGH));
14461494
}
14471495

1496+
private void processFreeBSD(Attributes attributes) {
1497+
addIcon(OS_FREEBSD, attributes.getValue(ATTRIBUTE_ICON));
1498+
}
1499+
14481500
private void processLinux(Attributes attributes) {
14491501
addIcon(OS_LINUX, attributes.getValue(ATTRIBUTE_ICON));
14501502
}

features/org.eclipse.equinox.p2.core.feature/feature.xml

+5
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,11 @@
116116
os="linux"
117117
version="0.0.0"/>
118118

119+
<plugin
120+
id="org.eclipse.equinox.security.freebsd"
121+
os="freebsd"
122+
version="0.0.0"/>
123+
119124
<plugin
120125
id="org.eclipse.equinox.security.win32"
121126
os="win32"

0 commit comments

Comments
 (0)