Page MenuHomeSolus

The inclusion of graalvm fixes T6763
ClosedPublic

Authored by oly on Dec 17 2021, 9:02 PM.
Tags
None
Referenced Files
F10930566: D12495.id31109.diff
Tue, Jul 11, 2:25 PM
F10866770: D12495.diff
Jun 17 2023, 5:10 PM
F10793039: D12495.id30868.diff
May 27 2023, 9:27 AM
F10772734: D12495.id31114.diff
May 21 2023, 2:33 PM
F10772730: D12495.id31109.diff
May 21 2023, 2:31 PM
F10772699: D12495.id30391.diff
May 21 2023, 2:21 PM
F10772690: D12495.id30394.diff
May 21 2023, 2:19 PM
F10772662: D12495.id31089.diff
May 21 2023, 2:10 PM

Details

Summary

Inital version, it build and the files get copied but need some advice on where to store the generated files, this one is a bit more complicated as it can replace other languages like java.
Could be a case of install it and leave it to the user to set ENV.
It also has quite high ram requirements to build.
fixes T6763.

Test Plan

Generated eopkg and installed, will need further testing

Diff Detail

Repository
R5454 graalvm
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

oly requested review of this revision.Dec 17 2021, 9:02 PM

Although I have got this building I am hoping for advice on install / locations currently it install like below with the generated file listings.

ls -la /usr/share/applications/graalvm/
total 336
drwxr-xr-x 10 root root   4096 Dec 17 14:09 .
drwxr-xr-x  3 root root  12288 Dec 17 14:09 ..
drwxr-xr-x  2 root root   4096 Dec 17 14:09 bin
drwxr-xr-x  4 root root   4096 Dec 17 14:09 conf
-rw-r--r--  1 root root   2316 Dec 17 14:06 GRAALVM-README.md
drwxr-xr-x  3 root root   4096 Dec 17 14:09 include
drwxr-xr-x  2 root root   4096 Dec 17 14:09 jmods
drwxr-xr-x  6 root root   4096 Dec 17 14:09 languages
drwxr-xr-x 72 root root   4096 Dec 17 14:09 legal
drwxr-xr-x 15 root root   4096 Dec 17 14:09 lib
-rw-r--r--  1 root root  27235 Dec 17 14:06 LICENSE.txt
-rw-r--r--  1 root root   3814 Dec 17 14:06 release
-rw-r--r--  1 root root 257599 Dec 17 14:06 THIRD_PARTY_LICENSE.txt
drwxr-xr-x  9 root root   4096 Dec 17 14:09 tools

The bin folder contains a version of java and js it can also create a python binary but I don't think that was built but this would potentially conflict with previous installs, if your not aware this allows mixing languages ie polyglot and allows you to accelerate interpreted languages by building native binaries.

Kind of expecting changes, as I am no expert but this is used in building some other software hence the packaging request.

Added abi_files changed install path.

be1 added a task: T6763: graalvm.

Just some real quick non-comprehensive feedback

package.yml
23–25

You should really be trying to do all your work in $workdir, not $sources. Treat $sources like it's read-only (I actually thought the entire folder already was but I guess it's just the individual items in it)

36

install commands are generally preferred over mkdir and cp.

pspec_x86_64.xml
814–850

Are these musl libs necessary? I assume they are for the native image feature?

dont extract in the sources folder.

@ReillyBrogan Given the number of files, I think cp is the sanest approach. Though a chown -R root:root might not be a bad idea.

As for the static libs, it looks like graal has some compilation ability, so they may be needed at runtime. I'm actually wondering if this should even have a -devel. Would need to find out if the headers are needed at compile time or just used for compiling with graal as a lib.

package.yml
23–25

okay corrected locally and it still works.

36

This replace's the mkdir
install -d $installdir/usr/share/graalvm

Struggling with this one though it errors, what the exquivalent to cp -r with install I remember looking before which is likely why i ended up with cp command, to long ago to remember but perhaps you know the correct option ?

install -D $workdir/sdk/latest_graalvm_home/* $installdir/usr/share/graalvm/

pspec_x86_64.xml
814–850

not sure I can really answer this but the Prerequisites list it on this page https://www.graalvm.org/reference-manual/native-image/StaticImages/

All i really know about musl is that alpine docker images often have it in place of glibc, I cant find much in the way of info related to graal or understand the implications of it being used.

Girtablulu added a subscriber: Girtablulu.
Girtablulu added inline comments.
package.yml
36

The install command is used to install files not recursive folders, so would you like to create everything via install you would need to setup all folders first via install and install all files in the folders. which is a bit insane :D

additionally I would set the root owner for the /usr/share/graavlm folder as well, so this should be solving the issue

install -dm00755 $installdir/usr/share/graalvm
cp -r $workdir/sdk/latest_graalvm_home/* -t $installdir/usr/share/graalvm/

but it needs propper testing plan

This revision now requires changes to proceed.Jan 23 2022, 2:04 PM

Added test plan to commit, included hello-world for test plan, use cp for install.

Set install command permissions.

oly marked an inline comment as done.Jan 25 2022, 6:23 PM
This revision is now accepted and ready to land.Jan 26 2022, 8:44 AM
This revision was automatically updated to reflect the committed changes.