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.
Details
- Reviewers
Girtablulu - Group Reviewers
Triage Team - Maniphest Tasks
- T6763: graalvm
- Commits
- R5454:f9623621c851: The inclusion of graalvm fixes T6763
Generated eopkg and installed, will need further testing
Diff Detail
- Repository
- R5454 graalvm
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
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.
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? | |
@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 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. | |
| 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 | |