Files
chromebrew/packages/openjdk23.rb
2025-02-11 11:06:53 +00:00

50 lines
2.0 KiB
Ruby

require 'package'
class Openjdk23 < Package
description 'The JDK is a development environment for building applications, applets, and components using the Java programming language.'
homepage 'https://openjdk.org/'
version '23.0.2'
license 'GPL-2'
compatibility 'x86_64'
# Visit https://www.azul.com/downloads/?package=jdk#zulu to download the binary.
source_url 'https://cdn.azul.com/zulu/bin/zulu23.32.11-ca-jdk23.0.2-linux_x64.tar.gz'
source_sha256 '4daad24b459fa09f652bdd80e10ce7f3a6ffcf01b3c5c432533cd31a72f93277'
no_compile_needed
no_shrink
print_source_bashrc
def self.preflight
jdkver = `java -version 2>&1`[/version "(.*?)"/, 1].to_s
unless jdkver.empty? || jdkver.include?('No such file or directory') || jdkver.include?('not found')
jdkname = `java -version 2>&1`[/(.*?)\s/, 1].to_s
jdkname = 'jdk' if jdkname == 'java'
majver = jdkver[/(\d+)\./, 1].to_s
majver = '8' if majver == '1'
unless jdkname == 'openjdk' && majver == '17'
puts "Package #{jdkname}#{majver} already installed.".lightgreen
abort "Enter `crew remove #{jdkname}#{majver} && crew install openjdk21` to install this version."
end
end
end
def self.install
FileUtils.mkdir_p CREW_DEST_MAN_PREFIX
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/share/openjdk23"
FileUtils.mv Dir['*'], "#{CREW_DEST_PREFIX}/share/openjdk23/"
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/bin"
Dir["#{CREW_DEST_PREFIX}/share/openjdk23/bin/*"].each do |binfile|
@basename = File.basename(binfile)
FileUtils.ln_s "#{CREW_PREFIX}/share/openjdk23/bin/#{@basename}", "#{CREW_DEST_PREFIX}/bin/#{@basename}"
end
FileUtils.mv Dir["#{CREW_DEST_PREFIX}/share/openjdk23/man/*"], CREW_DEST_MAN_PREFIX
# Add environment variable.
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/etc/env.d/"
javaenv = <<~EOF
# Java configuration
JAVA_HOME=#{CREW_PREFIX}
EOF
File.write("#{CREW_DEST_PREFIX}/etc/env.d/10-openjdk23", javaenv)
end
end