Alien-OpenJDK

 view release on metacpan or  search on metacpan

alienfile  view on Meta::CPAN

      # => 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 )