Alien-OpenJDK
view release on metacpan or search on metacpan
# => sparcv9 # Not yet implemented
# => riscv64 # Not yet implemented
);
my $os = $os_mapping{ $^O } or die "Unsupported OS $^O";
my $meta_arch = meta->prop->{platform}{cpu}{arch}{name};
my $arch = $arch_mapping{ $meta_arch } or die "Unsupported arch $meta_arch";
plugin 'Download';
plugin 'Prefer::SortVersions';
meta->around_hook( fetch => sub {
my $orig = shift;
my $build = shift;
my $data = $orig->($build, @_);
if( $data->{filename} eq 'available_releases' ) {
my $available_releases = _decode( $data );
$build->log( "Available releases: @{ $available_releases->{available_releases} }" );
my $release = $available_releases->{most_recent_lts};
$build->log( "Using release $release" );
my $assets = _decode( $orig->($build,
$endpoint_server
. "/v3/assets/latest/${release}/hotspot"
. "?image_type=jdk"
. "&os=${os}"
. "&architecture=${arch}"
. "&vendor=eclipse"
) );
return {
type => 'list',
list => [
map {
+{
filename => $_->{binary}{package}{name},
url => $_->{binary}{package}{link},
version => $_->{version}{openjdk_version},
}
} @$assets
],
};
} else {
return $data;
}
});
plugin 'Extract' => ( $^O eq 'MSWin32' ? 'zip' : 'tar.gz' );
plugin 'Build::Copy';
gather sub {
my ($build) = @_;
my $java_home = Path::Tiny::path($build->runtime_prop->{prefix});
$build->runtime_prop->{'style'} = 'binary';
$build->runtime_prop->{'distribution'} = 'Eclipse Temurin';
$build->runtime_prop->{java_home} = "$java_home";
};
}
share {
#do_source;
do_dist_temurin;
}
( run in 1.178 second using v1.01-cache-2.11-cpan-f6376fbd888 )