blob: 89f866694531763c697a18852c87bc23366dce98 (
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
# Maintainer: Giovanni Santini <giovannisantini93@yahoo.it>
# Contributor: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Contributor: Frederik Schwan <freswa at archlinux dot org>
# Contributor: Maxime Gauduin <alucryd@archlinux.org>
# Contributor: Guillaume Alaux <guillaume@archlinux.org>
# Contributor: William Gathoye <william + archlinux at gathoye dot be>
# Contributor: Emanuel Couto <emanuel dot amaral dot couto at gmail dot com>
# Contributor: Richard Jackson <rdjack21 at gmail dot com>
# Contributor: Tinx <arch at tinx dot eu>
# Contributor: Jens Kapitza <j dot kapitza at schwarze-allianz dot de>
# Contributor: Olli <olli at coderkun dot de>
pkgbase=java17-openjfx
pkgname=(
java17-openjfx
java17-openjfx-doc
java17-openjfx-src
)
pkgver=17.0.13.u2
pkgrel=1
pkgdesc="Java OpenJFX 17 client application platform (open-source implementation of JavaFX)"
arch=(x86_64)
url=https://wiki.openjdk.java.net/display/OpenJFX/Main
license=(custom)
makedepends=(
alsa-lib
ant
cairo
cmake
ffmpeg4.4
freetype2
gdk-pixbuf2
glib2
gperf
gtk2
gtk3
java-environment-openjdk=17
libgl
libx11
libxtst
pango
python
qt5-base
ruby
unzip
webkit2gtk
zip
gcc13
)
source=(
# https://github.com/openjdk/jfx/archive/refs/tags/jfx-${pkgver//.u/+}.tar.gz
${pkgname}-${pkgver}.tar.gz::https://github.com/openjdk/jfx17u/archive/refs/tags/${pkgver//.u/+}.tar.gz
gradle.properties
java-openjfx-flags.patch
java-openjfx-no-xlocale.patch
java-openjfx-gstreamer-lite-gcc10-compat.patch
java-openjfx-env_compiler.patch
webcore_mapfile-vers.patch
)
b2sums=('e6f7fd3cb783b64534fdfc821724d430a6d4696fa5d9315048a011dfd65de820c9af504c9d4aec3781cd0267946b5aff9743b041f7f3bfb45b27f7d53bf4a56b'
'a77fd8814a5978827de01a652f7b945f3439df04606434ced8998c8d77a82985292490e6965299aeb52f9da3d8069b4091d75519bd4ec8a15f70bc6d28b13498'
'a56a5cfebb44cdbe3ada9c6da88fda6427a5bd1bf9fcc491df289c4f5c0e96ac3614c619aaf9428340f11e9dabf0a85fc7db4f49754c2700587cc66fc15372fd'
'13216615c01b8d48d17889ffa22668c38568870d83ab30c542eb5b5620db305f02efb1acb99d9b5e89eb0a73a134bb336cb301f4de4e8855cae50efb099e384e'
'119fa1cc5da2cdefa22bbe9b6f76581faa74e05fa7b6e5576470fc0251c6e257f122fbba03754cc01f7c7251145cfa1cab4ffc2f9d59ff0c175a121e943a0f64'
'189f689fb43447b0aeb3cfac561be94f76b243bcf31736c528b9a1b9a528d71b7cb6d3a801b42d8cd10a235a6a8b1bdd31de39d2e09523c3b6a34e5e03d67770'
'b43b228d3eeed15d503e557f6eee51dd6289fba6d4be9ef3606f025cdd5b82bcc9640a4a8d83e64487334aa8314fa843804a2482a8ea7e376378e52ad5ee240e')
prepare() {
# cd jfx-${pkgver//.u/-}
cd jfx17u-${pkgver//.u/-}
ln -sf ../gradle.properties .
patch -Np1 -i ../java-openjfx-flags.patch
patch -Np1 -i ../java-openjfx-no-xlocale.patch
patch -Np1 -i ../java-openjfx-gstreamer-lite-gcc10-compat.patch
patch -Np1 -i ../java-openjfx-env_compiler.patch
sed 's|, "-Werror"||g' -i buildSrc/linux.gradle
pushd modules/javafx.web/src/main/native/Source/WebCore >/dev/null
patch -N -i $srcdir/webcore_mapfile-vers.patch
popd >/dev/null
# Make Gradle wrapper executable
chmod +x gradlew
# Run Gradle stuff inside srcdir so that it can be easily cleaned
export GRADLE_USER_HOME="$srcdir/gradle"
# Ensure safety for CFLAGS and LDFLAGS
OLD_CFLAGS="$CFLAGS"
OLD_LDFLAGS="$LDFLAGS"
export CFLAGS="" LDFLAGS=""
# Download most of the dependencies via metadata verification
./gradlew --no-daemon --write-verification-metadata sha256 help
# Restore the flags, if any
export CFLAGS="$OLD_CFLAGS" LDFLAGS="$OLD_LDFLAGS"
}
build() {
# cd jfx-${pkgver//.u/-}
cd jfx17u-${pkgver//.u/-}
# Run Gradle stuff inside srcdir so that it can be easily cleaned
export GRADLE_USER_HOME="$srcdir/gradle"
# build against ffmpeg4.4
export PKG_CONFIG_PATH='/usr/lib/ffmpeg4.4/pkgconfig'
# Workaround for situation where the linker treats whitespace as arguments
# From `java-openjfx` and comments
export LDFLAGS="${LDFLAGS//+([[:space:]]|[[:blank:]])/ }"
# Use Gradle wrapper rather than the repositories one for compatibility
# If needed, export JOBS to limit the jobs used for building Webkit
if [ -n "$JOBS" ]
then
export NUM_COMPILE_THREADS="$JOBS"
export NUMBER_OF_PROCESSORS="$JOBS"
fi
export CC=gcc-13 CXX=g++-13
./gradlew --no-daemon --offline zips
}
package_java17-openjfx() {
depends=(
java-runtime-openjdk=17
libgl
libx11
libxtst
)
optdepends=(
'ffmpeg4.4: Media support',
'gtk2: GTK2 support',
'gtk3: GTK3 support',
'webkit2gtk: Web support'
)
provides=(java-openjfx=17)
# cd jfx-${pkgver//.u/-}
cd jfx17u-${pkgver//.u/-}
install -dm 755 "${pkgdir}"/usr/{lib/jvm/java-17-openjdk,share/licenses}
cp -dr --no-preserve=ownership build/sdk/lib "${pkgdir}"/usr/lib/jvm/java-17-openjdk/
cp -dr --no-preserve=ownership build/jmods "${pkgdir}"/usr/lib/jvm/java-17-openjdk/
cp -dr --no-preserve=ownership build/sdk/legal "${pkgdir}"/usr/share/licenses/java17-openjfx
}
package_java17-openjfx-doc() {
# cd jfx-${pkgver//.u/-}
cd jfx17u-${pkgver//.u/-}
install -dm 755 "${pkgdir}"/usr/share/{doc,licenses}
cp -dr --no-preserve=ownership build/javadoc "${pkgdir}"/usr/share/doc/java17-openjfx
ln -s java17-openjfx "${pkgdir}"/usr/share/licenses/java17-openjfx-doc
}
package_java17-openjfx-src() {
# cd jfx-${pkgver//.u/-}
cd jfx17u-${pkgver//.u/-}
install -dm 755 "${pkgdir}"/usr/{lib/jvm/java-17-openjdk,share/licenses}
install -m 644 build/sdk/src.zip "${pkgdir}"/usr/lib/jvm/java-17-openjdk/javafx-src.zip
ln -s java17-openjfx "${pkgdir}"/usr/share/licenses/java17-openjfx-src
}
# vim: ts=2 sw=2 et:
|