summaryrefslogtreecommitdiffstats
path: root/community/openjdk8/APKBUILD
blob: 4a02d7109938852da685769bc9a9b6f269453ea0 (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
# Contributor: Timo Teras <timo.teras@iki.fi>
# Maintainer: Timo Teras <timo.teras@iki.fi>
pkgname=openjdk8
_java_ver=8
_jdk_update=72
_jdk_build=15
pkgver=$_java_ver.$_jdk_update.$_jdk_build
pkgrel=2
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="saveas-$_dropsurl/archive/${_dropsver}.tar.bz2/jdk8u-$_dropsver.tar.bz2
	saveas-$_dropsurl/corba/archive/${_dropsver}.tar.bz2/corba-$_dropsver.tar.bz2
	saveas-$_dropsurl/jaxp/archive/${_dropsver}.tar.bz2/jaxp-$_dropsver.tar.bz2
	saveas-$_dropsurl/jaxws/archive/${_dropsver}.tar.bz2/jaxws-$_dropsver.tar.bz2
	saveas-$_dropsurl/jdk/archive/${_dropsver}.tar.bz2/jdk-$_dropsver.tar.bz2
	saveas-$_dropsurl/langtools/archive/${_dropsver}.tar.bz2/langtools-$_dropsver.tar.bz2
	saveas-$_dropsurl/nashorn/archive/${_dropsver}.tar.bz2/nashorn-$_dropsver.tar.bz2
	saveas-$_dropsurl/hotspot/archive/${_dropsver}.tar.bz2/hotspot-$_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}
	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"

	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
	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=""

	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
		dirname=${A%/*}
		mkdir -p "$subpkgdir"/$INSTALL_BASE/$dirname
		mv "$pkgdir"/$INSTALL_BASE/$A "$subpkgdir"/$INSTALL_BASE/$dirname
	done
}

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

	mkdir -p "$subpkgdir"/$INSTALL_BASE/bin

	for A in java orbd rmid servertool unpack200 keytool \
		 pack200 rmiregistry tnameserv ; do
		mv "$pkgdir"/$INSTALL_BASE/bin/$A "$subpkgdir"/$INSTALL_BASE/bin
	done

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

	pax_mark_vm "$subpkgdir"/$INSTALL_BASE
}

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

	mkdir -p "$subpkgdir"
	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
		dirname=${A%/*}
		mkdir -p "$subpkgdir"/$INSTALL_BASE/$dirname
		mv "$pkgdir"/$INSTALL_BASE/$A "$subpkgdir"/$INSTALL_BASE/$dirname
	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="161dfcff6fbf49649b35c86fa5bbc2b4  jdk8u-jdk8u72-b15.tar.bz2
c822b9ac498d5bfbaa82ce6fa1c126a4  corba-jdk8u72-b15.tar.bz2
fc20a017e3d3598de65240bc9a2ffbbc  jaxp-jdk8u72-b15.tar.bz2
669f95ee39534dcbbe538cb59bc78742  jaxws-jdk8u72-b15.tar.bz2
58fa5f03c7da51a07c000881ca8e1b1b  jdk-jdk8u72-b15.tar.bz2
b85df8468b42a7c14c5d55e84339a2dd  langtools-jdk8u72-b15.tar.bz2
1f9358090dc4ba710a14f31115de7c5f  nashorn-jdk8u72-b15.tar.bz2
67a98eef6eed6fde18ec5e422bbdd074  hotspot-jdk8u72-b15.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
ea23c28032d50816a243d15afb2d8fb6  build-demo-ldflags.patch"
sha256sums="58dfbc4be4d82ee4caa9d3ce77e9ef8f16b6bb519950d3200106b6684b9bd132  jdk8u-jdk8u72-b15.tar.bz2
24bd1c5b415ea7f1164cf83c93a337daee877e168400c08aaab53cd8d5cb3cb6  corba-jdk8u72-b15.tar.bz2
57fda6a6e9cfd876697e03b7cc6236c426bfa9bacdd3cd1d3b0f81e8539cc3e3  jaxp-jdk8u72-b15.tar.bz2
17c6efae78c11380bb0fcda115f1dbc5fc007de43e110e3a8205abdb6937d4e6  jaxws-jdk8u72-b15.tar.bz2
57bba30f9bfe19738472b04d2506c09faafa7fce5630f5628ae552b0d6b3ea7f  jdk-jdk8u72-b15.tar.bz2
1861cfb14d5fdc96f3302399d390ce20efb2749cfae2622104a74d0739f05947  langtools-jdk8u72-b15.tar.bz2
bcb05ebaeae135dfe0b6fa0f9a235a38873b9607e8c10a45691213eae0d0c450  nashorn-jdk8u72-b15.tar.bz2
014ebea3e7c800f64f06ab921c83fb8bac0d2dcecdedf0069f842a02f52ce015  hotspot-jdk8u72-b15.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
eebfb2613ae342587e8477a1022703ac986ed59e941ec1e96b2a3264c67c587b  build-demo-ldflags.patch"
sha512sums="63635f4fb2872a3a635134a1a72cb6c865f370cc9f3c4a868c8c4fbc80d6f6a591214e647f12a03b9a937b090326e2b8332c82aee0e036d7963103c377a63fb5  jdk8u-jdk8u72-b15.tar.bz2
308501b7a940f077f2a07b6550020a47d1fa92f733d240d3bf214585a249c452a3ff4b5e7c3889bf7e8552fa45d5404d3256d33ce7551448829620c4f8543fb5  corba-jdk8u72-b15.tar.bz2
f6e7c26592cc0f589444ff5e57d73eb83b0fec6a6dec28ce1182f7558986269290dbd95c991246fd62a9ac7a786790a37659a032328f2f0707eaaaab846ef063  jaxp-jdk8u72-b15.tar.bz2
ad434ec7c4fd7e84ab579a5ab82d2541fe7ae3b517b0bce7d7737ac72b8880995d927e38b834a7f43abdf3e74289cebd694a8c1ed203f965e8a552b87baea098  jaxws-jdk8u72-b15.tar.bz2
7ee3eb0f052f562406b8062ca1dde9ad97f1b0e83771fe34aaf7b65d47a106d0345fac91a4dc639a43dbece84b3d432478c3cacf6372ff56083a3b0e3063baec  jdk-jdk8u72-b15.tar.bz2
969eeef7d35eb4d43f16d2442c0bf76ea0e877ee5f9b5cd0881adcbb32f4f2e7780b9c8a53b6ab873cd30229a9f4f2d4416388d079cd96a469bb14d21bbf1150  langtools-jdk8u72-b15.tar.bz2
6947883a7fdc42c5d0126661bd45b6c81af3e9506dbb367a217c061905362f866ab8aac37a2fc0f15b99020e98d5bb8c8f215db00dedfdd223899707d1212f1a  nashorn-jdk8u72-b15.tar.bz2
d2d7623eca9ec41a3252712e7c8bbcb61dd3235dbc18da774a33c25b6fb98c66d7e3d6f4309549c74e3b4ffbfb4e4c4fbe191955722b535fc3606f0e58814c67  hotspot-jdk8u72-b15.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
bcf9af85907b4f49f1aa470d21917280fcf9fc8892f089fe8c284ec3f2eccd57f799c7f06ce2ce641421d50396fa192cb71ccbb7a077958aacf57b8dadc80bc1  build-demo-ldflags.patch"