1 # Description: OpenJDK 8 built using IcedTea build harness
2 # URL: http://icedtea.classpath.org http://openjdk.java.net
3 # Maintainer: John Vogel, jvogel4 at stny dot rr dot com
4 # Depends on: alsa-lib cups fontconfig freetype giflib gtk krb5 lcms2 libjpeg-turbo libpng libxslt nss unzip xorg-libxt xorg-libxtst xorg-libxinerama zip
5
6 name=openjdk8
7 version=8u181-b13
8 icedtea_version=3.9.0
9 boot_version=20181102
10 pkgsrc_quarter=2018Q3
11 certdata_rev=dc2f7806fbc1
12 release=1
13 source=(http://icedtea.wildebeest.org/download/source/icedtea-$icedtea_version.tar.xz
14 https://stygian.me/crux/distfiles/$name/corba-$version.tar.xz
15 https://stygian.me/crux/distfiles/$name/hotspot-$version.tar.xz
16 https://stygian.me/crux/distfiles/$name/jaxp-$version.tar.xz
17 https://stygian.me/crux/distfiles/$name/jaxws-$version.tar.xz
18 https://stygian.me/crux/distfiles/$name/jdk-$version.tar.xz
19 https://stygian.me/crux/distfiles/$name/langtools-$version.tar.xz
20 https://stygian.me/crux/distfiles/$name/nashorn-$version.tar.xz
21 https://stygian.me/crux/distfiles/$name/openjdk-$version.tar.xz
22 https://stygian.me/crux/distfiles/$name-boot-$boot_version-bin.tar.xz
23 http://ftp.netbsd.org/pub/pkgsrc/pkgsrc-$pkgsrc_quarter/pkgsrc/security/mozilla-rootcerts/files/mozilla-rootcerts.sh
24 http://hg.mozilla.org/releases/mozilla-release/raw-file/$certdata_rev/security/nss/lib/ckfw/builtins/certdata.txt)
25
26 unpack_source() {
27 for file in ${source[@]}; do
28 case ${file##*/} in
29 icedtea-$icedtea_version.tar.xz|\
30 $name-boot-$boot_version-bin.tar.xz)
31 bsdtar -p -o -C $SRC -xf $(get_filename $file) ;;
32 *)
33 cp $(get_filename $file) $SRC ;;
34 esac
35 done
36 }
37
38 build() {
39 # Make sure we do not have ccache masquerade directory in PATH.
40 # Use --enable-ccache instead of providing a wrapped compiler.
41 # NOTE: the check for usr/bin/ccache may be too specific, since it rules out
42 # local or opt installs.
43 if [ -e '/usr/bin/ccache' ]; then
44 EXTRA_OPTIONS='--enable-ccache'
45 PATH=$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')
46 fi
47
48 OLD_PATH=$PATH
49 export JAVA_HOME=$SRC/$name-boot
50 export PATH=$JAVA_HOME/bin:$OLD_PATH
51
52 mkdir $SRC/build
53 cd $SRC/build
54
55 LC_ALL=C \
56 CONFIG_SHELL=/bin/bash \
57 ../icedtea-$icedtea_version/configure ${EXTRA_OPTIONS} \
58 --prefix=/usr/lib/java/$name \
59 --disable-docs \
60 --disable-downloading \
61 --disable-precompiled-headers \
62 --disable-tests \
63 --disable-hotspot-tests \
64 --disable-langtools-tests \
65 --disable-jdk-tests \
66 --disable-systemtap-tests \
67 --disable-system-pcsc \
68 --disable-system-sctp \
69 --enable-system-jpeg \
70 --enable-system-kerberos \
71 --enable-system-lcms \
72 --enable-system-png \
73 --enable-system-zlib \
74 --enable-nss \
75 --enable-sunec \
76 --enable-non-nss-curves \
77 --enable-improved-font-rendering \
78 --with-openjdk-src-zip=$SRC/openjdk-$version.tar.xz \
79 --with-hotspot-src-zip=$SRC/hotspot-$version.tar.xz \
80 --with-corba-src-zip=$SRC/corba-$version.tar.xz \
81 --with-jaxp-src-zip=$SRC/jaxp-$version.tar.xz \
82 --with-jaxws-src-zip=$SRC/jaxws-$version.tar.xz \
83 --with-jdk-src-zip=$SRC/jdk-$version.tar.xz \
84 --with-langtools-src-zip=$SRC/langtools-$version.tar.xz \
85 --with-nashorn-src-zip=$SRC/nashorn-$version.tar.xz \
86 --with-pkgversion=CRUX \
87 --with-jdk-home=$JAVA_HOME
88
89 LC_ALL=C \
90 make
91
92 install -d -m 0755 $PKG/usr/lib/java/$name
93 cp -a openjdk.build/images/j2sdk-image/* $PKG/usr/lib/java/$name
94
95 install -d -m 0755 $PKG/etc/revdep.d
96 echo "/usr/lib/java/$name/jre/lib/amd64" > $PKG/etc/revdep.d/$name
97 echo "/usr/lib/java/$name/jre/lib/amd64/jli" >> $PKG/etc/revdep.d/$name
98 echo "/usr/lib/java/$name/jre/lib/amd64/server" >> $PKG/etc/revdep.d/$name
99
100 # remove unneeded files
101 rm -f $PKG/usr/lib/java/$name/src.zip
102 rm -rf $PKG/usr/lib/java/$name/{demo,sample}
103 rm -f $PKG/usr/lib/java/$name/man/ja
104 rm -rf $PKG/usr/lib/java/$name/man/ja_JP.UTF-8
105 rm -f $PKG/usr/lib/java/$name/{,jre/}THIRD_PARTY_README
106 find $PKG/usr/lib/java/$name -name '*.ja' -delete
107
108 # deduplicate
109 rm $PKG/usr/lib/java/$name/jre/lib/amd64/libjawt.so
110 ln -s ../../../lib/amd64/libjawt.so \
111 $PKG/usr/lib/java/$name/jre/lib/amd64/libjawt.so
112 rm $PKG/usr/lib/java/$name/jre/lib/amd64/jli/libjli.so
113 ln -s ../../../../lib/amd64/jli/libjli.so \
114 $PKG/usr/lib/java/$name/jre/lib/amd64/jli/libjli.so
115 for f in $PKG/usr/lib/java/$name/jre/bin/* ; do
116 if [ -f $PKG/usr/lib/java/$name/bin/${f##*/} ]; then
117 rm $f
118 ln -s ../../bin/${f##*/} $f
119 fi
120 done
121
122 sed -e "/# cd \/etc\/openssl\/certs/s//# cd \/usr\/share\/$name\/certs/" \
123 -e '/@AWK@/s,,/usr/bin/awk,' \
124 -e "/@DATADIR@/s,,/usr/share/$name," \
125 -e '/@ECHO@/s,,/bin/echo,' \
126 -e '/@EXPR@/s,,/usr/bin/expr,' \
127 -e '/@LN@/s,,/bin/ln,' \
128 -e '/@LS@/s,,/bin/ls,' \
129 -e '/@MKDIR@/s,,/bin/mkdir,' \
130 -e '/@OPENSSL@/s,,/usr/bin/openssl,' \
131 -e '/@PREFIX@/s,,/usr,' \
132 -e "/@SSLDIR@/s,,/usr/share/$name," \
133 -e '/@RM@/s,,/bin/rm,' \
134 -e 's,self extract,self -f $certfile extract,' \
135 -e 's,self rehash,self -f $certfile rehash,' \
136 $SRC/mozilla-rootcerts.sh > $SRC/mozilla-rootcerts
137
138 export JAVA_HOME=$PKG/usr/lib/java/$name
139 export PATH=$JAVA_HOME/bin:$OLD_PATH
140
141 # generate java's cacerts
142 # big thanks to pkgsrc's mozilla-rootcerts and openjdk pkg's for this part
143 rm -f $PKG/usr/lib/java/$name/jre/lib/security/cacerts
144 mkdir $SRC/cacerts
145 cd $SRC/cacerts
146 sh $SRC/mozilla-rootcerts -f $SRC/certdata.txt extract
147 for cert in *.pem; do
148 keytool \
149 -noprompt \
150 -importcert \
151 -keystore $PKG/usr/lib/java/$name/jre/lib/security/cacerts \
152 -alias $(echo $cert | sed 's,.*/\([^/]*\)\.pem,\1,') \
153 -file $cert \
154 -storepass changeit
155 done
156 }
|