# -*- 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 set feature 21 name openjdk${feature}-zulu categories java devel maintainers {breun.nl:nils @breun} openmaintainer # JVMMinimumSystemVersion in Contents/Info.plist is set to macOS 10.12.0 for x86_64: # /usr/libexec/PlistBuddy -c "Print :JavaVM:JVMMinimumSystemVersion" Contents/Info.plist # Mapping to Darwin version: https://trac.macports.org/wiki/PortfileRecipes#compare-osx-darwin-version platforms { darwin any >= 16 } # 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-21-lts&os=macos&package=jdk#zulu version ${feature}.40.17 revision 0 set openjdk_version ${feature}.0.6 description Azul Zulu Community OpenJDK ${feature} (Long 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 833e3fe3f681af1d5ea2b529ec3e524bca35fc28 \ sha256 0b0f05e53e2b85f3881f1b8f5e3ef7e2e992796a1872afbc851b73127b16933d \ size 208622823 } elseif {${configure.build_arch} eq "arm64"} { distname zulu${version}-ca-jdk${openjdk_version}-macosx_aarch64 checksums rmd160 29b72cecae741f2a94262cfe12eecb595984a779 \ sha256 1d6385f17ae2dc3b57a6d1b6fd6aeadafe1c7138bc744f62a767851eececd092 \ size 206431049 } worksrcdir ${distname}/zulu-${feature}.jdk homepage https://www.azul.com/downloads/ livecheck.type regex livecheck.url https://cdn.azul.com/zulu/bin/ livecheck.regex zulu(${feature}\.\[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:\]\]*)CommandLine()|\\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-${feature}-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 "