blob: d5aa97908dd4ea1dca9e6e88a763e7affb81023c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=openjdk-mandrel
pkgver=23.0.0.0
pkgrel=0
_jdkver=17
pkgdesc="GraalVM Native Image builder for OpenJDK $_jdkver"
url="https://github.com/graalvm/mandrel"
# Upstream supports only these architectures.
# aarch64: openjdk exception when building
arch="x86_64"
license="GPL-2.0-only WITH Classpath-exception-2.0"
depends="
bash
gcc
musl-dev
openjdk$_jdkver
zlib-dev
zlib-static
"
makedepends="
git
ninja-build
ninja-is-really-ninja
openjdk$_jdkver-static-libs
python3
"
provides="openjdk$_jdkver-mandrel"
_mx_ver=6.27.3
source="mandrel-packaging-$pkgver-Final.tar.gz::https://github.com/graalvm/mandrel-packaging/archive/mandrel-$pkgver-Final.tar.gz
https://github.com/graalvm/mandrel/archive/mandrel-$pkgver-Final.tar.gz
https://github.com/graalvm/mx/archive/$_mx_ver/graalvm-mx-$_mx_ver.tar.gz
fix-file-system-loop-exception.patch
Example.java
"
builddir="$srcdir/mandrel-packaging-$pkgver"
# net: fetches some dependencies in build phase
# textrels: libnative-image-*.so have TEXTRELs.
options="net textrels"
export MX_CACHE_DIR="$srcdir/.mx"
export JAVA_HOME="/usr/lib/jvm/java-$_jdkver-openjdk"
unpack() {
default_unpack
mv mandrel-mandrel-$pkgver-Final mandrel-$pkgver
mv mandrel-packaging-mandrel-$pkgver-Final mandrel-packaging-$pkgver
}
prepare() {
default_prepare
cd "$srcdir"
# Build scripts require the sources to be git repositories.
local dir; for dir in mandrel-$pkgver mandrel-packaging-$pkgver; do
cd "$srcdir/$dir"
git init --quiet
git add .
git -c user.name=mandrel -c user.email=mandrel@example.com commit --quiet --message Import
git tag "mandrel-$pkgver-Final"
done
mkdir -p "$srcdir/.home"
}
build() {
java -ea build.java \
--mx-home "$srcdir/mx-$_mx_ver" \
--mandrel-home "$builddir/dist" \
--mandrel-repo "$srcdir/mandrel-$pkgver" \
--mandrel-version "$pkgver" \
--skip-clean
}
# TODO: Run upstream's integration tests.
check() {
mkdir -p "$srcdir/test"
cd "$srcdir"/test
cp ../Example.java .
javac Example.java
GRAALVM_HOME="$builddir/dist" "$builddir"/dist/bin/native-image Example
ldd example
ls -lh example
./example
}
package() {
local destdir="$pkgdir$JAVA_HOME"
cd "$builddir"/dist
# Copy only files unique to Mandrel (the rest is copied from OpenJDK).
mkdir -p "$destdir"/lib
cp -r lib/libnative-image-*.so \
lib/graalvm \
lib/jvmci \
lib/svm \
lib/truffle \
"$destdir"/lib/
mkdir -p "$destdir"/bin
cp -d bin/native-image "$destdir"/bin/
# Remove source JARs.
find "$destdir" -name '*.zip' -delete
}
sha512sums="
537afba9564e3dfeb7fe44c046f9007a12a01101b1defa8f49816d83eb7406276985ddd656b529678da1ed3bb8f3bd9ad35674593c058c6a88c0bf55a3d12b69 mandrel-packaging-23.0.0.0-Final.tar.gz
35fb7a96cd08cc7f94222831a95ea2f66158e128294ff44b9d686c2a8344a1fdfa42f627ef4d3913f71f768dbe9761e5d03923c61d15832198d81b3db91f84dc mandrel-23.0.0.0-Final.tar.gz
5e89961a80855ae46973fb6d995320b3134d9bf71442949147bef23a9a15453cb978f753f64ccfc87023059654bad1330ab25483bd6c022f520b7f6e50ddc1fc graalvm-mx-6.27.3.tar.gz
8d98ef2316a12e58e2a7d920533fcaab30dc81ceadba66206af1af9a8f7f21af5cac41a6a80d2a4aef8c1eb3b293a518f242ec0530e5c955418bfb7da1d4f72b fix-file-system-loop-exception.patch
601ac59e59d32cbaf91f7541bd8173b38c68cbec96a7fb74227017afc8e5dc6ce4b8be03e92dd34cf52370e5d52beb780808af57b17c79c53ae8ec64cd34a92d Example.java
"
|