Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GR-56345] Provide an espresso-runtime-<RuntimeResourceId> with UPL or GPL as the LICENSE? #9382

Open
linghengqian opened this issue Jul 25, 2024 · 3 comments
Assignees
Labels

Comments

@linghengqian
Copy link

linghengqian commented Jul 25, 2024

Feature request

Please include the following information:

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. E.g. I'm always frustrated when [...]

</dependencies>
    <dependency>
        <groupId>org.graalvm.polyglot</groupId>
        <artifactId>polyglot</artifactId>
        <version>24.0.1</version>
    </dependency>
    <dependency>
        <groupId>org.graalvm.polyglot</groupId>
        <artifactId>java-community</artifactId>
        <version>24.0.1</version>
        <type>pom</type>
    </dependency>
</dependencies>
</dependencies>
    <dependency>
        <groupId>org.graalvm.polyglot</groupId>
        <artifactId>polyglot</artifactId>
        <version>24.0.2</version>
    </dependency>
    <dependency>
        <groupId>org.graalvm.polyglot</groupId>
        <artifactId>java-community</artifactId>
        <version>24.0.2</version>
        <type>pom</type>
    </dependency>
    <dependency>
        <groupId>org.graalvm.espresso</groupId>
        <artifactId>espresso-runtime-resources-linux-amd64</artifactId>
        <version>24.0.2</version>
    </dependency>
</dependencies>
Error:  org.apache.shardingsphere.infra.expr.espresso.EspressoInlineExpressionParserTest.assertEvaluateForLiteral -- Time elapsed: 0.053 s <<< ERROR!
org.graalvm.polyglot.PolyglotException: 
com.oracle.truffle.espresso.meta.EspressoError: fatal: Couldn't find suitable runtime libraries for espresso. You can try to
add a jar with the necessary resources such as org.graalvm.espresso:espresso-runtime-resources-*,
or set java.JavaHome explicitly.
	at com.oracle.truffle.espresso.meta.EspressoError.fatal(EspressoError.java:58)
	at com.oracle.truffle.espresso.EspressoLanguage.getEspressoRuntime(EspressoLanguage.java:613)
	at com.oracle.truffle.espresso.runtime.EspressoContext.getEspressoRuntime(EspressoContext.java:1216)
	at com.oracle.truffle.espresso.runtime.EspressoContext.initVmProperties(EspressoContext.java:695)
	at com.oracle.truffle.espresso.runtime.EspressoContext.spawnVM(EspressoContext.java:374)
	at com.oracle.truffle.espresso.runtime.EspressoContext.initializeContext(EspressoContext.java:319)
	at com.oracle.truffle.espresso.EspressoLanguage.initializeContext(EspressoLanguage.java:273)
	at com.oracle.truffle.espresso.EspressoLanguage.initializeContext(EspressoLanguage.java:88)
	at com.oracle.truffle.api.TruffleLanguage$Env.postInit(TruffleLanguage.java:3779)
	at com.oracle.truffle.api.LanguageAccessor$LanguageImpl.postInitEnv(LanguageAccessor.java:288)
	at com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized(PolyglotLanguageContext.java:771)
	at com.oracle.truffle.polyglot.PolyglotContextImpl.getBindings(PolyglotContextImpl.java:1402)
	at com.oracle.truffle.polyglot.PolyglotContextDispatch.getBindings(PolyglotContextDispatch.java:95)
	at org.graalvm.polyglot.Context.getBindings(Context.java:563)
  • Note that https://central.sonatype.com/artifact/org.graalvm.espresso/espresso-runtime-resources-linux-amd64/24.0.2 has changed LICENSE. org.graalvm.espresso:espresso-runtime-resources-linux-amd64:24.0.1 is GNU General Public License, version 2, but org.graalvm.espresso:espresso-runtime-resources-linux-amd64:24.0.2 is GraalVM Free Terms and Conditions (GFTC) including License for Early Adopter Versions. But it looks like the only espresso-runtime-<RuntimeResourceId> is org.graalvm.espresso:espresso-runtime-resources-linux-amd64. I don't see a description of the LICENSE changes in the CHANGELOG , so I'm assuming I'm actually missing some documentation?

Describe the solution you'd like.
A clear and concise description of what you want to happen.

  • Provide an espresso-runtime-<RuntimeResourceId> with UPL or GPL as the LICENSE.

Describe who do you think will benefit the most.
GraalVM users, GraalVM contributors, developers of libraries and frameworks which depend on GraalVM, or somebody else?

  • Developers of libraries and frameworks which depend on GraalVM.

Describe alternatives you've considered.
A clear and concise description of any alternative solutions or features you've considered.

  • Null.

Additional context.
Add any other context about the feature request here.
For example, link to the relevant projects, documentation, standards.

Express whether you'd like to help contributing this feature
If you'd like to contribute, please read the contribution guide.

  • This doesn't seem to be something I can decide.
@fernando-valdez fernando-valdez self-assigned this Jul 26, 2024
@fernando-valdez fernando-valdez changed the title Provide an espresso-runtime-<RuntimeResourceId> with UPL or GPL as the LICENSE? [GR-56345] Provide an espresso-runtime-<RuntimeResourceId> with UPL or GPL as the LICENSE? Jul 26, 2024
@fernando-valdez
Copy link
Member

Internal ticket: GR-56345

@gilles-duboscq
Copy link
Member

Thanks for reaching out about this @linghengqian.

Note that you can use org.graalvm.polyglot:java instead of org.graalvm.polyglot:java-community, that would automatically bring in the necessary dependencies.
It is licenced as GFTC so it's free even for production use. See the FAQ.

For GPL espresso-runtime-resource bits based on OpenJDK21 you'd need:

  • A standard build (on all platforms)
  • A "sulong"/"llvm" build (on linux and darwin amd64 at the moment)

Maybe the GraalVM backport maintainers could publish those in the future? /cc @zakkak

There should be nothing special about the standard build.
For the llvm build, you'll need a Sulong toolchain and build the JDK with that.
Then you can point ESPRESSO_JAVA_HOME to the standard build and ESPRESSO_LLVM_JAVA_HOME to the llvm build.
With that you should be able to build ESPRESSO_RUNTIME_RESOURCES.
To get all platforms merged, you can use mx archive-pd-layouts/mx restore-pd-layouts and mx --multi-platform-layout-directories=... build.
I can provide further details on how to build if necessary.

@linghengqian
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants