-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
Portfile
98 lines (74 loc) · 3.69 KB
/
Portfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
name openjdk22-zulu
categories java devel
maintainers {breun.nl:nils @breun} openmaintainer
platforms {darwin any}
# This port uses prebuilt binaries; 'NoMirror' makes sure MacPorts doesn't mirror/distribute these third-party binaries
license GPL-2 NoMirror
# This port uses prebuilt binaries for a particular architecture; they are not universal binaries
universal_variant no
supported_archs x86_64 arm64
# https://www.azul.com/downloads/?version=java-22-lts&os=macos&package=jdk#zulu
version 22.30.13
revision 0
set openjdk_version 22.0.1
description Azul Zulu Community OpenJDK 22 (Short Term Support)
long_description Azul® Zulu® is a Java Development Kit (JDK), and a compliant implementation of the Java Standard Edition (SE)\
specification that contains all the Java components needed to build and run Java SE applications. Zulu has been\
verified by passing all tests of the OpenJDK Community Technology Compatibility Kit (TCK) as available for each\
respective Java SE version.
master_sites https://cdn.azul.com/zulu/bin/
if {${configure.build_arch} eq "x86_64"} {
distname zulu${version}-ca-jdk${openjdk_version}-macosx_x64
checksums rmd160 e426c12470d470a3fef20db0605265f14a387c76 \
sha256 a5af3434d9b283b55b41548f6de9d5d3dcb20c300254402cf8b02bbeecf3c37d \
size 206862940
} elseif {${configure.build_arch} eq "arm64"} {
distname zulu${version}-ca-jdk${openjdk_version}-macosx_aarch64
checksums rmd160 32cb735987216d21ed4145b7f47454262ff382cb \
sha256 d1b8282c032b55384dfda337dd97d424f69cc0dd0dbb196d870e7029acdad133 \
size 204575444
}
worksrcdir ${distname}/zulu-22.jdk
homepage https://www.azul.com/downloads/
livecheck.type regex
livecheck.url https://cdn.azul.com/zulu/bin/
livecheck.regex zulu(22\.\[0-9\.\]+)-ca-jdk\[0-9\.\]+-macosx_.*\.tar\.gz
use_configure no
build {}
variant Applets \
description { Advertise the JVM capability "Applets".} {}
variant BundledApp \
description { Advertise the JVM capability "BundledApp". This is required by some java-based app bundles to recognize and use the JVM.} {}
variant JNI \
description { Advertise the JVM capability "JNI". This is required by some java-based app bundles to recognize and use the JVM.} {}
variant WebStart \
description { Advertise the JVM capability "WebStart".} {}
patch {
foreach var { Applets BundledApp JNI WebStart } {
if {[variant_isset ${var}]} {
reinplace -E "s|^(\[\[:space:\]\]*<string>)CommandLine(</string>)|\\1${var}\\2\\\n\\1CommandLine\\2|" ${worksrcpath}/Contents/Info.plist
}
}
}
test.run yes
test.cmd Contents/Home/bin/java
test.target
test.args -version
# macOS Java tools expect to find Java virtual machines under /Library/Java/JavaVirtualMachines, which is not under ${prefix}.
destroot.violate_mtree yes
set jvms /Library/Java/JavaVirtualMachines
set jdk ${jvms}/jdk-22-azul-zulu.jdk
destroot {
xinstall -m 755 -d ${destroot}${prefix}${jdk}
copy ${worksrcpath}/Contents ${destroot}${prefix}${jdk}
# macOS Java tools expect to find Java virtual machines under /Library/Java/JavaVirtualMachines, so let's create a symlink there
xinstall -m 755 -d ${destroot}${jvms}
ln -s ${prefix}${jdk} ${destroot}${jdk}
}
notes "
If you have more than one JDK installed you can make ${name} the default\
by adding the following line to your shell profile:
export JAVA_HOME=${jdk}/Contents/Home
"