-
-
Notifications
You must be signed in to change notification settings - Fork 12.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
53 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,9 @@ | ||
class OpenjdkAT8 < Formula | ||
desc "Development kit for the Java programming language" | ||
homepage "https://openjdk.java.net/" | ||
url "https://github.com/openjdk/jdk8u/archive/refs/tags/jdk8u422-ga.tar.gz" | ||
version "1.8.0-422" | ||
sha256 "3931898b4336f0e583a5e97df7e5c339d859d53afaff6dafe20124107e836ebe" | ||
url "https://github.com/openjdk/jdk8u/archive/refs/tags/jdk8u432-ga.tar.gz" | ||
version "1.8.0-432" | ||
sha256 "6ac8ee2b6932e4632ea2c33fe2320d6ceaca50a67521fac02a67027e40437460" | ||
license "GPL-2.0-only" | ||
|
||
livecheck do | ||
|
@@ -33,6 +33,16 @@ class OpenjdkAT8 < Formula | |
uses_from_macos "unzip" | ||
uses_from_macos "zip" | ||
|
||
# NOTE: Since the JNF (JavaNativeFoundation.framework) in macOS Sonoma or newer lacks the necessary headers | ||
# to compile `openjdk@8`, we'll use our pre-built JNF later on. | ||
on_sonoma :or_newer do | ||
depends_on xcode: :build | ||
resource "JavaNativeFoundation" do | ||
url "https://github.com/apple/openjdk/archive/refs/tags/iTunesOpenJDK-1014.0.2.12.1.tar.gz" | ||
sha256 "e8556a73ea36c75953078dfc1bafc9960e64593bc01e733bc772d2e6b519fd4a" | ||
end | ||
end | ||
|
||
on_monterey :or_newer do | ||
depends_on "gawk" => :build | ||
end | ||
|
@@ -50,7 +60,7 @@ class OpenjdkAT8 < Formula | |
end | ||
|
||
# Oracle doesn't serve JDK 7 downloads anymore, so we use Zulu JDK 7 for bootstrapping. | ||
# https://www.azul.com/downloads/?version=java-7-lts&package=jdk | ||
# https://www.azul.com/downloads/?version=java-7-lts&package=jdk&show-old-builds=true#zulu | ||
resource "boot-jdk" do | ||
on_macos do | ||
url "https://cdn.azul.com/zulu/bin/zulu7.56.0.11-ca-jdk7.0.352-macosx_x64.tar.gz" | ||
|
@@ -62,7 +72,7 @@ class OpenjdkAT8 < Formula | |
end | ||
end | ||
|
||
# Fix `clang++ -std=gnu++11` compile failure issue on MacOS. | ||
# Fix `clang++ -std=gnu++11` compile failure issue on macOS. | ||
patch :p0 do | ||
url "https://raw.githubusercontent.com/macports/macports-ports/04ad4a17332e391cd359271965d4c6dac87a7eb2/java/openjdk8/files/0001-8181503-Can-t-compile-hotspot-with-c-11.patch" | ||
sha256 "a02e0ea7c70390796e46b8b6565f986fedc17a08aa039ee3306438a39a60538a" | ||
|
@@ -73,6 +83,14 @@ class OpenjdkAT8 < Formula | |
end | ||
patch :p0, :DATA | ||
|
||
def install_symlinks(source_path, target_path, exclude_list) | ||
Dir.foreach(source_path) do |entry| | ||
next if exclude_list.include?(entry) | ||
|
||
target_path.install_symlink source_path/entry => entry | ||
end | ||
end | ||
|
||
def install | ||
Check failure on line 94 in Formula/o/[email protected] GitHub Actions / macOS 14-x86_64`brew install --verbose --formula --build-bottle openjdk@8` failed on macOS Sonoma (14)!
|
||
_, _, update = version.to_s.rpartition("-") | ||
boot_jdk = buildpath/"boot-jdk" | ||
|
@@ -123,25 +141,37 @@ def install | |
--with-toolchain-type=clang | ||
--with-zlib=system | ||
] | ||
# Work around Xcode 16 bug: https://bugs.openjdk.org/browse/JDK-8340341 | ||
DevelopmentTools.clang_build_version == 1600 && | ||
ENV.append_to_cflags("-mllvm -enable-constraint-elimination=0") | ||
# Pre-build JNF (JavaNativeFoundation.framework) in macOS Sonoma or newer | ||
# to fix the issue of its necessary headers not being found. | ||
if MacOS.version >= :sonoma | ||
resource("JavaNativeFoundation").stage do | ||
cd "apple/JavaNativeFoundation" do | ||
xcodebuild "-arch", Hardware::CPU.arch, | ||
"OTHER_CFLAGS=-Wno-strict-prototypes", | ||
"-project", "JavaNativeFoundation.xcodeproj" | ||
|
||
my_sdk_path = buildpath/"PrebuiltSDKs/MacOSX.sdk" | ||
my_framework_path = my_sdk_path/"System/Library/Frameworks" | ||
my_framework_path.install "build/Release/JavaNativeFoundation.framework" | ||
|
||
sys_sdk_path = Pathname.new(`xcrun --show-sdk-path`.chomp) | ||
|
||
install_symlinks(sys_sdk_path/"System/Library/Frameworks", my_framework_path, | ||
%w[. .. JavaNativeFoundation.framework]) | ||
install_symlinks(sys_sdk_path/"System/Library", my_sdk_path/"System/Library", | ||
%w[. .. Frameworks]) | ||
install_symlinks(sys_sdk_path/"System", my_sdk_path/"System", | ||
%w[. .. Library]) | ||
install_symlinks(sys_sdk_path, my_sdk_path, | ||
%w[. .. System]) | ||
|
||
# Work around SDK issues with JavaVM framework. | ||
if MacOS.version <= :catalina | ||
sdk_path = MacOS::CLT.sdk_path(MacOS.version) | ||
ENV["SDKPATH"] = ENV["SDKROOT"] = sdk_path | ||
javavm_framework_path = sdk_path/"System/Library/Frameworks/JavaVM.framework/Frameworks" | ||
args += %W[ | ||
--with-extra-cflags=-F#{javavm_framework_path} | ||
--with-extra-cxxflags=-F#{javavm_framework_path} | ||
] | ||
ldflags << "-F#{javavm_framework_path}" | ||
# Fix "'JavaNativeFoundation/JavaNativeFoundation.h' file not found" issue on MacOS Sonoma. | ||
elsif MacOS.version == :sonoma | ||
javavm_framework_path = "/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/System/Library/Frameworks" | ||
args += %W[ | ||
--with-extra-cflags=-F#{javavm_framework_path} | ||
--with-extra-cxxflags=-F#{javavm_framework_path} | ||
] | ||
ldflags << "-F#{javavm_framework_path}" | ||
ENV["SDKPATH"] = ENV["SDKROOT"] = ENV["HOMEBREW_SDKROOT"] = my_sdk_path | ||
ENV["DYLD_FALLBACK_FRAMEWORK_PATH"] = my_framework_path | ||
end | ||
end | ||
end | ||
else | ||
args += %W[ | ||
|