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