Skip to content

Commit 8d6faef

Browse files
committed
Introduce FreeBSD build scripts
1 parent 1fde05a commit 8d6faef

File tree

9 files changed

+32
-6
lines changed

9 files changed

+32
-6
lines changed

.ci/scripts/run-gradle.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ if ! uname -a | grep -q MING; then
1717
else
1818
if [[ "$OSTYPE" == "darwin"* ]]; then
1919
MAX_WORKERS=`sysctl -n hw.physicalcpu | sed 's/\s\+//g'`
20+
elif [[ "$OSTYPE" == "freebsd"* ]]; then
21+
MAX_WORKERS=`sysctl -n hw.ncpu | sed 's/\s\+//g'`
2022
else
2123
echo "Unsupported OS Type: $OSTYPE"
2224
exit 1

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/Jdk.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public class Jdk implements Buildable, Iterable<File> {
2626

2727
private static final List<String> ALLOWED_ARCHITECTURES = List.of("aarch64", "x64");
2828
private static final List<String> ALLOWED_VENDORS = List.of("adoptium", "openjdk", "zulu");
29-
private static final List<String> ALLOWED_PLATFORMS = List.of("darwin", "linux", "windows", "mac");
29+
private static final List<String> ALLOWED_PLATFORMS = List.of("darwin", "linux", "windows", "mac", "freebsd");
3030
private static final Pattern VERSION_PATTERN = Pattern.compile(
3131
"(\\d+)(\\.\\d+\\.\\d+(?:\\.\\d+)?)?\\+(\\d+(?:\\.\\d+)?)(@([a-f0-9]{32}))?"
3232
);

build-tools/src/main/java/org/elasticsearch/gradle/ElasticsearchDistribution.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ public class ElasticsearchDistribution implements Buildable, Iterable<File> {
2727
public enum Platform {
2828
LINUX,
2929
WINDOWS,
30-
DARWIN;
30+
DARWIN,
31+
FREEBSD;
3132

3233
@Override
3334
public String toString() {
@@ -40,6 +41,7 @@ public String toString() {
4041
.onLinux(() -> Platform.LINUX)
4142
.onWindows(() -> Platform.WINDOWS)
4243
.onMac(() -> Platform.DARWIN)
44+
.onFreeBSD(() -> Platform.FREEBSD)
4345
.supply();
4446

4547
private final String name;

build-tools/src/main/java/org/elasticsearch/gradle/OS.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
public enum OS {
1818
WINDOWS("windows"),
1919
MAC("darwin"),
20-
LINUX("linux");
20+
LINUX("linux"),
21+
FREEBSD("freebsd");
2122

2223
public final String javaOsReference;
2324

@@ -37,6 +38,9 @@ public static OS current() {
3738
if (os.startsWith("Mac")) {
3839
return OS.MAC;
3940
}
41+
if (os.startsWith("FreeBSD")) {
42+
return OS.FREEBSD;
43+
}
4044
throw new IllegalStateException("Can't determine OS from: " + os);
4145
}
4246

@@ -59,9 +63,15 @@ public Conditional<T> onMac(Supplier<T> supplier) {
5963
return this;
6064
}
6165

66+
public Conditional<T> onFreeBSD(Supplier<T> supplier) {
67+
conditions.put(FREEBSD, supplier);
68+
return this;
69+
}
70+
6271
public Conditional<T> onUnix(Supplier<T> supplier) {
6372
conditions.put(MAC, supplier);
6473
conditions.put(LINUX, supplier);
74+
conditions.put(FREEBSD, supplier);
6575
return this;
6676
}
6777

distribution/archives/build.gradle

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ CopySpec archiveFiles(String distributionType, String os, String architecture, b
3737
with binFiles(distributionType, isTestDistro)
3838
}
3939
into("darwin".equals(os) ? 'jdk.app' : 'jdk') {
40-
if (isTestDistro == false) {
40+
if (isTestDistro == false && !"freebsd".equals(os)) {
4141
with jdkFiles(project, os, architecture)
4242
}
4343
}
@@ -111,6 +111,13 @@ distribution_archives {
111111
}
112112
}
113113

114+
freebsdTar {
115+
archiveClassifier = 'freebsd-x86_64'
116+
content {
117+
archiveFiles('tar', 'freebsd', 'x64', false)
118+
}
119+
}
120+
114121
linuxAarch64Tar {
115122
archiveClassifier = 'linux-aarch64'
116123
content {
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// This file is intentionally blank. All configuration of the
2+
// distribution is done in the parent project.

distribution/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ configure(subprojects.findAll { ['archives', 'packages'].contains(it.name) }) {
248248

249249
// Setup all required JDKs
250250
project.jdks {
251-
['darwin', 'windows', 'linux'].each { platform ->
251+
['darwin', 'windows', 'linux', 'freebsd'].each { platform ->
252252
(platform == 'linux' || platform == 'darwin' ? ['x64', 'aarch64'] : ['x64']).each { architecture ->
253253
"bundled_${platform}_${architecture}" {
254254
it.platform = platform
@@ -377,7 +377,7 @@ configure(subprojects.findAll { ['archives', 'packages'].contains(it.name) }) {
377377
it.permissions.unix(0644)
378378
}
379379
}
380-
List excludePlatforms = ['linux-x86_64', 'linux-aarch64', 'windows-x86_64', 'darwin-x86_64', 'darwin-aarch64']
380+
List excludePlatforms = ['linux-x86_64', 'linux-aarch64', 'windows-x86_64', 'darwin-x86_64', 'darwin-aarch64', 'freebsd-x86_64']
381381
if (os != null) {
382382
String platform = os + '-' + architecture
383383
if (architecture == 'x64') {

plugins/examples/settings.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ static def getDefaultDistroProjectName() {
7575
return isArm ? 'linux-aarch64-tar' : 'linux-tar'
7676
} else if (os.startsWith("Mac")) {
7777
return isArm ? 'darwin-aarch64-tar' : 'darwin-tar'
78+
} else if (os.startsWith("FreeBSD")) {
79+
return 'freebsd-tar'
7880
} else {
7981
throw new GradleException("Unable to determine system platform type.")
8082
}

settings.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ List projects = [
6262
'distribution:archives:darwin-aarch64-tar',
6363
'distribution:archives:linux-aarch64-tar',
6464
'distribution:archives:linux-tar',
65+
'distribution:archives:freebsd-tar',
6566
'distribution:docker',
6667
'distribution:docker:cloud-ess-docker-export',
6768
'distribution:docker:cloud-ess-docker-aarch64-export',

0 commit comments

Comments
 (0)