blob: 09030c24ea8df656665ddf6fecec0579555e3f45 (
plain)
1 # Description: OpenJDK 8 built using IcedTea build harness
2 # URL: https://icedtea.classpath.org
3 # Maintainer: Tim Biermann, tbier at posteo dot de
4 # Co-Maintainer: Danny Rawlins, crux at romster dot me
5 # Depends on: alsa-lib cups giflib gtk3 krb5 lcms2 libxslt nss p11-kit unzip xorg-libxcomposite xorg-libxinerama xorg-libxt zip
6
7 name=openjdk8
8 version=8u292-b10
9 _icedtea_version=3.19.0
10 _boot_version=20210620
11 release=1
12 source=(http://icedtea.wildebeest.org/download/source/icedtea-$_icedtea_version.tar.xz
13 https://crux.ster.zone/downloads/java/corba-$version.tar.xz
14 https://crux.ster.zone/downloads/java/hotspot-$version.tar.xz
15 https://crux.ster.zone/downloads/java/jaxp-$version.tar.xz
16 https://crux.ster.zone/downloads/java/jaxws-$version.tar.xz
17 https://crux.ster.zone/downloads/java/jdk-$version.tar.xz
18 https://crux.ster.zone/downloads/java/langtools-$version.tar.xz
19 https://crux.ster.zone/downloads/java/nashorn-$version.tar.xz
20 https://crux.ster.zone/downloads/java/openjdk-$version.tar.xz
21 https://crux.ster.zone/downloads/java/openjdk8_boot-$_boot_version.tar.xz)
22 # See README for links to originally named files and rationale of renaming/versioning/mirroring.
23
24 unpack_source() {
25 for file in ${source[@]}; do
26 case ${file##*/} in
27 icedtea-$_icedtea_version.tar.xz|\
28 openjdk8_boot-$_boot_version.tar.xz)
29 bsdtar -p -o -C $SRC -xf $(get_filename $file) ;;
30 *)
31 cp $(get_filename $file) $SRC ;;
32 esac
33 done
34 }
35
36 build() {
37 # Most of these flags were snarfed directly from Alpine Linux APKBUILD for openjdk7, added -fabi-version.
38 # Fixes build failures due to suspected gcc8 changes for default std and abi.
39 export EXTRA_CPP_FLAGS="$CXXFLAGS -fabi-version=10 -std=gnu++98 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-strict-overflow"
40 export EXTRA_CFLAGS="$CFLAGS -fabi-version=10 -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-strict-overflow"
41
42 # Make sure we do not have ccache masquerade directory in PATH.
43 # Use --enable-ccache instead of providing a wrapped compiler.
44 # NOTE: the check for usr/bin/ccache may be too specific, since it rules out
45 # local or opt installs.
46 if [ -e '/usr/bin/ccache' ]; then
47 EXTRA_OPTIONS='--enable-ccache'
48 PATH=$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')
49 fi
50
51 unset JAVA_HOME
52 OLD_PATH=$PATH
53 export JAVA_HOME=$SRC/$name-boot
54 export PATH=$JAVA_HOME/bin:$OLD_PATH
55
56 if [ -f /etc/pki/tls/java/cacerts ]; then
57 JAVA_CACERTS=/etc/pki/tls/java/cacerts
58 else
59 /usr/sbin/make-ca -g -D $SRC/certs || exit 1
60 JAVA_CACERTS=$SRC/certs/etc/pki/tls/java/cacerts
61 fi
62 mkdir $SRC/build
63 cd $SRC/build
64
65 # Will fail if make-ca has not been run after p11-kit install
66 LC_ALL=C \
67 CONFIG_SHELL=/bin/bash \
68 ../icedtea-$_icedtea_version/configure ${EXTRA_OPTIONS} \
69 --prefix=/usr/lib/java/$name \
70 --disable-docs \
71 --disable-downloading \
72 --disable-hotspot-tests \
73 --disable-jdk-tests \
74 --disable-langtools-tests \
75 --disable-precompiled-headers \
76 --disable-system-pcsc \
77 --disable-system-sctp \
78 --disable-systemtap-tests \
79 --disable-tests \
80 --enable-improved-font-rendering \
81 --enable-non-nss-curves \
82 --enable-nss \
83 --enable-system-cups \
84 --enable-system-fontconfig \
85 --enable-system-gio \
86 --enable-system-gtk \
87 --enable-system-jpeg \
88 --enable-system-kerberos \
89 --enable-system-lcms \
90 --enable-system-png \
91 --enable-system-zlib \
92 --with-corba-src-zip=$SRC/corba-$version.tar.xz \
93 --with-hotspot-src-zip=$SRC/hotspot-$version.tar.xz \
94 --with-jaxp-src-zip=$SRC/jaxp-$version.tar.xz \
95 --with-jaxws-src-zip=$SRC/jaxws-$version.tar.xz \
96 --with-jdk-src-zip=$SRC/jdk-$version.tar.xz \
97 --with-langtools-src-zip=$SRC/langtools-$version.tar.xz \
98 --with-nashorn-src-zip=$SRC/nashorn-$version.tar.xz \
99 --with-openjdk-src-zip=$SRC/openjdk-$version.tar.xz \
100 --with-pkgversion=CRUX \
101 --with-jdk-home=$JAVA_HOME \
102 --with-cacerts-file=$JAVA_CACERTS \
103 --with-tzdata-dir=/usr/share/zoneinfo
104
105 LC_ALL=C \
106 make
107
108 # Copy the sdk image first before pruning it, saving original for later inspection/comparison.
109 install -d -m 0755 $PKG/usr/lib/java/$name
110 cp -a openjdk.build/images/j2sdk-image/* $PKG/usr/lib/java/$name
111
112 install -d -m 0755 $PKG/etc/revdep.d
113 echo "/usr/lib/java/$name/jre/lib/amd64" > $PKG/etc/revdep.d/$name
114 echo "/usr/lib/java/$name/jre/lib/amd64/jli" >> $PKG/etc/revdep.d/$name
115 echo "/usr/lib/java/$name/jre/lib/amd64/server" >> $PKG/etc/revdep.d/$name
116
117 # Remove unneeded files
118 rm -f $PKG/usr/lib/java/$name/src.zip
119 rm -rf $PKG/usr/lib/java/$name/{demo,man/ja*,sample}
120 rm -f $PKG/usr/lib/java/$name/{,jre/}THIRD_PARTY_README
121 find $PKG/usr/lib/java/$name \( \
122 -name '*.ja' -o \
123 -name 'ASSEMBLY_EXCEPTION' -o \
124 -name 'LICENSE' -o \
125 -name 'THIRD_PARTY_README' \) \
126 -delete
127
128 # Deduplicate
129 rm $PKG/usr/lib/java/$name/jre/lib/amd64/libjawt.so
130 ln -sr $PKG/usr/lib/java/$name/lib/amd64/libjawt.so \
131 $PKG/usr/lib/java/$name/jre/lib/amd64/libjawt.so
132 rm $PKG/usr/lib/java/$name/jre/lib/amd64/jli/libjli.so
133 ln -sr $PKG/usr/lib/java/$name/lib/amd64/jli/libjli.so \
134 $PKG/usr/lib/java/$name/jre/lib/amd64/jli/libjli.so
135 for f in $PKG/usr/lib/java/$name/jre/bin/* ; do
136 if [ -f $PKG/usr/lib/java/$name/bin/${f##*/} ]; then
137 rm $f
138 ln -sr $PKG/usr/lib/java/$name/bin/${f##*/} $f
139 fi
140 done
141
142 chmod u+w $PKG/usr/lib/java/$name/jre/lib/security/cacerts
143 }
|