aboutsummaryrefslogtreecommitdiffstats
path: root/community/openjdk8/APKBUILD
blob: c7d9dee7a4aacbbf25997fe38c5dd07930db45d0 (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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
# Contributor: Timo Teras <timo.teras@iki.fi>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Timo Teras <timo.teras@iki.fi>
pkgname=openjdk8
_java_ver=8
_jdk_update=92
_jdk_build=14
pkgver=$_java_ver.$_jdk_update.$_jdk_build
pkgrel=1
pkgdesc="Sun OpenJDK 8"
url="http://openjdk.java.net"
arch="x86_64 x86"
license="custom"
depends="$pkgname-jre java-cacerts"
options="sover-namecheck"
makedepends="bash findutils tar zip file paxmark gawk util-linux libxslt
	autoconf automake linux-headers sed
	openjdk7 ca-certificates
	nss-dev cups-dev jpeg-dev giflib-dev libpng-dev libxt-dev
	lcms2-dev libxp-dev libxtst-dev libxinerama-dev zlib-dev
	libxrender-dev alsa-lib-dev freetype-dev fontconfig-dev
	gtk+2.0-dev krb5-dev attr-dev pcsc-lite-dev lksctp-tools-dev"
install=""

case $CARCH in
x86)	_jarch=i386;;
x86_64)	_jarch=amd64;;
arm*)	_jarch=arm;;
esac

INSTALL_BASE=/usr/lib/jvm/java-1.8-openjdk
BOOTSTRAP_JAVA_HOME=/usr/lib/jvm/java-1.7-openjdk
_jrelib="$INSTALL_BASE/jre/lib/$_jarch"

# exclude xawt from ldpath to avoid duplicate provides for libmawt.so
# (also in headless). in future this should be a virtual provides.
ldpath="$_jrelib:$_jrelib/native_threads:$_jrelib/headless:$_jrelib/server:$_jrelib/jli"
sonameprefix="$pkgname:"

subpackages="$pkgname-jre-lib:jrelib $pkgname-jre $pkgname-jre-base:jrebase
	$pkgname-doc:doc $pkgname-demos:demos"

_dropsurl=http://hg.openjdk.java.net/jdk8u/jdk8u
_dropsver=jdk${_java_ver}u${_jdk_update}-b${_jdk_build}

source="jdk8u-$_dropsver.tar.bz2::$_dropsurl/archive/${_dropsver}.tar.bz2
	corba-$_dropsver.tar.bz2::$_dropsurl/corba/archive/${_dropsver}.tar.bz2
	jaxp-$_dropsver.tar.bz2::$_dropsurl/jaxp/archive/${_dropsver}.tar.bz2
	jaxws-$_dropsver.tar.bz2::$_dropsurl/jaxws/archive/${_dropsver}.tar.bz2
	jdk-$_dropsver.tar.bz2::$_dropsurl/jdk/archive/${_dropsver}.tar.bz2
	langtools-$_dropsver.tar.bz2::$_dropsurl/langtools/archive/${_dropsver}.tar.bz2
	nashorn-$_dropsver.tar.bz2::$_dropsurl/nashorn/archive/${_dropsver}.tar.bz2
	hotspot-$_dropsver.tar.bz2::$_dropsurl/hotspot/archive/${_dropsver}.tar.bz2

	icedtea-hotspot-musl.patch
	icedtea-hotspot-noagent-musl.patch
	icedtea-hotspot-uclibc-fixes.patch
	icedtea-jdk-execinfo.patch
	icedtea-jdk-fix-ipv6-init.patch
	icedtea-jdk-musl.patch
	icedtea-jdk-includes.patch
	fix-libjvm-load.patch
	build-demo-ldflags.patch
	"

builddir="$srcdir/jdk8u-$_dropsver"

prepare() {
	cd "$builddir"
	update_config_sub || return 1

	local module
	for module in corba hotspot jdk jaxws jaxp langtools nashorn; do
		ln -s ../${module}-${_dropsver} $module || return 1
	done

	for patch in $source; do
		case $patch in
		*.patch)
			msg "Applying patch $patch"
			busybox patch -p1 < "$srcdir"/$patch || return 1
			;;
		esac
	done
}

build() {
	cd "$builddir"
	unset JAVA_HOME
	export MAKEFLAGS=${MAKEFLAGS/-j*}
	sh ./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--target=$CTARGET \
		--prefix=$INSTALL_BASE \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--localstatedir=/var \
		--with-update-version="${_jdk_update}" \
		--with-build-number="b${_jdk_build}" \
		--with-user-release-suffix="alpine-r${pkgrel}" \
		--enable-unlimited-crypto \
		--with-zlib=system \
		--with-giflib=system \
		--with-extra-cflags="$CFLAGS" \
		--with-extra-cxxflags="$CXXFLAGS" \
		--with-extra-ldflags="$LDFLAGS" \
		--disable-freetype-bundling \
		--with-boot-jdk="$BOOTSTRAP_JAVA_HOME" \
		|| return 1

	make DEBUG_BINARIES=true || return 1
	make docs || return 1

	# agent was patched off; make empty sa-jdi.jar to make image builder happy
	local build
	for build in build/* ; do
		touch $build/jdk/lib/sa-jdi.jar
	done
	make images || return 1
}

list_paxables() {
	file "$@" 2> /dev/null \
		| grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//'
}

pax_mark_vm() {
	local paxflags="-mp"
	[ "$CARCH" = "x86" ] && paxflags="-msp"

	local paxable
	for paxable in $(list_paxables "${1}"/bin/* "${1}"/jre/bin/*); do
		echo "PaX mark $paxflags ${paxable}"
		paxmark $paxflags "${paxable}"
	done
}

package() {
	mkdir -p "$pkgdir"/$INSTALL_BASE
	cp -a "$builddir"/build/*/images/j2sdk-image/* "$pkgdir"/$INSTALL_BASE || return 1
	rm "$pkgdir"/$INSTALL_BASE/src.zip

	find "$pkgdir"/$INSTALL_BASE -iname "*.diz" -delete || return 1
	find "$pkgdir"/$INSTALL_BASE -iname "*.debuginfo" -delete || return 1
	find "$pkgdir"/$INSTALL_BASE \( -name "*.jar" -o -name "*.sym" \) \
		\! -perm /006 | xargs chmod go+r || return 1

	pax_mark_vm "$pkgdir"/$INSTALL_BASE

	# symlink to shared java cacerts store
	rm -f "$pkgdir"/$INSTALL_BASE/jre/lib/security/cacerts
	ln -sf /etc/ssl/certs/java/cacerts \
		"$pkgdir"/$INSTALL_BASE/jre/lib/security/cacerts
}

jrelib() {
	pkgdesc="OpenJDK 8 Java Runtime (class libraries)"
	arch="noarch"
	depends=""

	local A; for A in jre/lib/images jre/lib/*.jar jre/lib/security \
			jre/lib/ext/*.jar jre/lib/cmm jre/ASSEMBLY_EXCEPTION \
			jre/THIRD_PARTY_README jre/LICENSE; do

		local dirname=${A%/*}
		mkdir -p "$subpkgdir"/$INSTALL_BASE/$dirname
		mv "$pkgdir"/$INSTALL_BASE/$A "$subpkgdir"/$INSTALL_BASE/$dirname || return 1
	done
}

jrebase() {
	pkgdesc="OpenJDK 8 Java Runtime (no GUI support)"
	depends="$pkgname-jre-lib java-common java-cacerts"

	mkdir -p "$subpkgdir"/$INSTALL_BASE/bin \
		"$subpkgdir"/$INSTALL_BASE/lib/$_jarch

	mv "$pkgdir"/$INSTALL_BASE/lib/$_jarch/jli \
		"$subpkgdir"/$INSTALL_BASE/lib/$_jarch/ || return 1
	local A; for A in java orbd rmid servertool unpack200 keytool \
			pack200 rmiregistry tnameserv; do
		mv "$pkgdir"/$INSTALL_BASE/bin/$A "$subpkgdir"/$INSTALL_BASE/bin || return 1
	done

	# rest of the jre subdir (which were not taken by -jre subpkg)
	mv "$pkgdir"/$INSTALL_BASE/jre "$subpkgdir"/$INSTALL_BASE || return 1

	pax_mark_vm "$subpkgdir"/$INSTALL_BASE
}

jre() {
	pkgdesc="OpenJDK 8 Java Runtime"

	mkdir -p "$subpkgdir"
	local A; for A in jre/bin/policytool \
			bin/appletviewer \
			bin/policytool \
			jre/lib/$_jarch/libawt_xawt.so \
			jre/lib/$_jarch/libfontmanager.so \
			jre/lib/$_jarch/libjawt.so \
			jre/lib/$_jarch/libsplashscreen.so; do

		local dirname=${A%/*}
		mkdir -p "$subpkgdir"/$INSTALL_BASE/$dirname
		mv "$pkgdir"/$INSTALL_BASE/$A "$subpkgdir"/$INSTALL_BASE/$dirname || return 1
	done

	pax_mark_vm "$subpkgdir"/$INSTALL_BASE
}

doc() {
	default_doc

	mkdir -p "$subpkgdir"/$INSTALL_BASE/
	mv "$pkgdir"/$INSTALL_BASE/man "$subpkgdir"/$INSTALL_BASE/
}

demos() {
	pkgdesc="OpenJDK 8 Java Demos and Samples"
	depends="$pkgname"

	mkdir -p "$subpkgdir"/$INSTALL_BASE/
	mv "$pkgdir"/$INSTALL_BASE/demo "$pkgdir"/$INSTALL_BASE/sample \
		"$subpkgdir"/$INSTALL_BASE/
}

md5sums="226f9051e34b70fbff031ec9d959773d  jdk8u-jdk8u92-b14.tar.bz2
9619e84a600aaf81737f7ed71430d3aa  corba-jdk8u92-b14.tar.bz2
567189edafbe0aabaff2d75d86c05456  jaxp-jdk8u92-b14.tar.bz2
3e7db7d843ebbcd5eb2ba0a9e7e275d7  jaxws-jdk8u92-b14.tar.bz2
b06f2e3504357820bb3dd29e19ccfc0d  jdk-jdk8u92-b14.tar.bz2
afbe0e3a8c0e9e2beac5567e1084f3ee  langtools-jdk8u92-b14.tar.bz2
e3641526c2875b5d4d1414980769f6ea  nashorn-jdk8u92-b14.tar.bz2
21e8fdc20ab17e7399752ef74c8e03e2  hotspot-jdk8u92-b14.tar.bz2
f87dd2c4c3c97fc3ac33080a65ca9e14  icedtea-hotspot-musl.patch
a5841507a216890bd8419d496bb118c3  icedtea-hotspot-noagent-musl.patch
43023861c5f6efc3139a834aa3ec0476  icedtea-hotspot-uclibc-fixes.patch
bdea7060a067faf1c2de5f4eb6e8525d  icedtea-jdk-execinfo.patch
250b0807b59762670954b132e8f8dfba  icedtea-jdk-fix-ipv6-init.patch
fc1dc983dc562eda399c9d7eabd3b299  icedtea-jdk-musl.patch
fc7d3cc1f5a5615574fd1e416144a042  icedtea-jdk-includes.patch
9b95183ae088ac2520ac66ae587619e4  fix-libjvm-load.patch
34fd6af2160e062b9f4b434a9a350b79  build-demo-ldflags.patch"
sha256sums="948b651e542618ced3f27395f75f0cca8dc0cb69577fdac94c1bb0445b56ca32  jdk8u-jdk8u92-b14.tar.bz2
a0cde75df26176b9f0c75bc77ad2649e42bbbc321fb9bdca19ab339f4d9f949e  corba-jdk8u92-b14.tar.bz2
f72662de92ecdae80cbed04d5af6d72530f34631bfb15a73fef58bbb95faf4e2  jaxp-jdk8u92-b14.tar.bz2
0d3e59432bebcd2d8353250e746ed6f59cf73f521471edbfca7392339d1bd264  jaxws-jdk8u92-b14.tar.bz2
4eb3b4823f91c10da9cc5358946643b54f4e66ba499f9ae13904554ef45bbe85  jdk-jdk8u92-b14.tar.bz2
27afacfefd7af8afcc47284fbdc6ac8377c8677f8e542a75b26228309c452b0c  langtools-jdk8u92-b14.tar.bz2
5a63849ebafe07c6f0fe13bdcf4f00f5b40a2966ccdf9f5c89d6f7bde62aa718  nashorn-jdk8u92-b14.tar.bz2
251f1c684c951a94fed3af5cb4084e08b0448b564363a590d57fd648db634433  hotspot-jdk8u92-b14.tar.bz2
a7922430cb767c8a4baae232c8b2e5f377aeb7cfde0c9901cd7774f078e7f92e  icedtea-hotspot-musl.patch
9223d4a1ae20b51bcb901ace115a2cd5f15b05655ea076c05f4c7f2c66f341e5  icedtea-hotspot-noagent-musl.patch
0ef7592b8f2c954eda0a6cf4dc4a4010942f35ea426f44e34412be6c9a949745  icedtea-hotspot-uclibc-fixes.patch
a35d40f24098747cdb73d9c3742cfb4aecafa0f72c9dfdfe2cb460f9706ff665  icedtea-jdk-execinfo.patch
632683ec88a6fb250ef043aae9cace605d0c669b7058f8c47b62b09b03ecc6c5  icedtea-jdk-fix-ipv6-init.patch
d3fcf4779a23181178e722a93290921f5c61ed7220d3a431953a53c24f89e562  icedtea-jdk-musl.patch
38590e411b7bf9b99f5168709b975e1c432ef600915800c709a6617504e2c13a  icedtea-jdk-includes.patch
47028d87c9a65df8d0103b39bf54b2b22de7db7c52a5de1058f88f4c5ea24f0d  fix-libjvm-load.patch
606a08d7b986ab4dd52bbf03f0ea2e652b5687d9c929924046373ce0afef479a  build-demo-ldflags.patch"
sha512sums="aaea06ba72b2bda8c6f6426ca62ff698c00b73f1acae83f5531ffe9908a03547ce34a683d8af51d7e6d848e3a2c1e699f6f684d8969e602aa4ce0395f307cff9  jdk8u-jdk8u92-b14.tar.bz2
361406d6911edeecb0928f28f53f029e107df4d31eb544a3a32417533b28eb90a4b7ab6c8322514cc14c9da09d523af514e5a7f48de120a908c8f74e0f0e9823  corba-jdk8u92-b14.tar.bz2
df0dfa57aea9a368947e750a2ecfee8dd5d250d6a3fd41655cc589d2026bf5be53e69079d2067e2a5d0c3390257cc9708e77e3ef4e1d951c38fea6b5e5ed62c3  jaxp-jdk8u92-b14.tar.bz2
c3bd6bdd10d01596c00224227c2026210384cca80959a416d9b99618028f0a2da5a1d9439d33e8f729a527b74c63749d19bb8b8424cce4b617e9e6ebdb424b0d  jaxws-jdk8u92-b14.tar.bz2
aa424052ccd37b545e014d28ea0a15dfd76499007b86a0b23ba49daabcd204dda34fd39d27ff832854eeb006a0484c58c4149a36dce1b5d0f6aa90ff53b4d100  jdk-jdk8u92-b14.tar.bz2
177080c1b4bc1347ace8e0626a5ee778857e35158a165e1aaf4742d13d77ae9216504f827aa201679049b34e389ec5dcb4925d8e24e98534046f3afc62d06d43  langtools-jdk8u92-b14.tar.bz2
f1cffe2135bdf4eac020fefaeb532fee7ed22805d49407c5b68aba45b5e0793aae7d9cc760e1458a3261a9118bf987e885e5d9d12bb735c4dc1019436469c2f6  nashorn-jdk8u92-b14.tar.bz2
967c9e3ca1881d208daf7683f3093594a0919d71a7897b4332bb7d78488616e831bdd50cc899ab2aa104871c9d3c19f04609ec5f765b0abdce419b90327965b8  hotspot-jdk8u92-b14.tar.bz2
994e8a79a0a23f26d633bf2ce9dad62198c699892f6e7729cc6e509481330399bb2ba736514b516fd2b3dd125fd6c74a127ae7f16d643c3f6a69776737cdb933  icedtea-hotspot-musl.patch
d930edbb830957729031228196720fa2d50747655a9289097103d36f852ab11b7198e18805bd89c6a438c3ccf224be48cda5f994b193ab1f81a72aada0df2b16  icedtea-hotspot-noagent-musl.patch
822eee0dc4d3ba677a289dfeb3668b536d2d626708390a9d9702fb4144a481fd443a215a0d2041c6026113837aafa4ba0b5e9ead8589d2da6717a238bbc95a5a  icedtea-hotspot-uclibc-fixes.patch
f6365cfafafa008bd6c1bf0ccec01a63f8a39bd1a8bc87baa492a27234d47793ba02d455e5667a873ef50148df3baaf6a8421e2da0b15faac675867da714dd5f  icedtea-jdk-execinfo.patch
48533f87fc2cf29d26b259be0df51087d2fe5b252e72d00c6ea2f4add7b0fb113141718c116279c5905e03f64a1118082e719393786811367cf4d472b5d36774  icedtea-jdk-fix-ipv6-init.patch
2fd75bb52e7c9e3b56a383b72ee519d395413b000aef94ad00b106a692a199de34967bac1120164cebce5f71d302413742922a55cc6479b2d33258aaf7d03c1b  icedtea-jdk-musl.patch
7df0db85039da8cbde49093ec3299f6804370f4134554a9c26c130a4e9e0b35409a3be833f3e90764ed16718683daffb6447261db8e5988f2e0519f649aedbc6  icedtea-jdk-includes.patch
978539ba0b1f1694cda6a3a1542a4373861cbfb4dc414a3b796cd8841ecf6e12248c746b5efe2c031c85a3b0684101b29e8a5f4ff70e77c1a3f3cd7f5cb148ce  fix-libjvm-load.patch
d3f21cfa958d458624c7b1be807d9f4c0028bc83c5d0f55b72ceb05f0cbad71f9e98dfa5248382828cf7c8ed4678cc76c573aeb8c56476dd4709e4f5a841c028  build-demo-ldflags.patch"