contrib/openjdk8/Pkgfile
John Vogel 10685df883 openjdk8: update to 8u171-b11 release
icedtea 3.8.0 release
2018-06-17 03:48:52 -04:00

156 lines
5.4 KiB
Plaintext

# Description: OpenJDK 8 built using IcedTea build harness
# URL: http://icedtea.classpath.org http://openjdk.java.net
# Maintainer: John Vogel, jvogel4 at stny dot rr dot com
# Depends on: alsa-lib cups fontconfig freetype giflib gtk krb5 lcms2 libjpeg-turbo libpng libxslt nss unzip xorg-libxt xorg-libxtst xorg-libxinerama zip
name=openjdk8
version=8u171-b11
icedtea_version=3.8.0
boot_version=20180616
certdata_rev=849c090094db
release=1
source=(http://icedtea.wildebeest.org/download/source/icedtea-$icedtea_version.tar.xz
https://stygian.me/crux/distfiles/$name/corba-$version.tar.xz
https://stygian.me/crux/distfiles/$name/hotspot-$version.tar.xz
https://stygian.me/crux/distfiles/$name/jaxp-$version.tar.xz
https://stygian.me/crux/distfiles/$name/jaxws-$version.tar.xz
https://stygian.me/crux/distfiles/$name/jdk-$version.tar.xz
https://stygian.me/crux/distfiles/$name/langtools-$version.tar.xz
https://stygian.me/crux/distfiles/$name/nashorn-$version.tar.xz
https://stygian.me/crux/distfiles/$name/openjdk-$version.tar.xz
https://stygian.me/crux/distfiles/$name-boot-$boot_version-bin.tar.xz
http://ftp.netbsd.org/pub/pkgsrc/pkgsrc-2017Q3/pkgsrc/security/mozilla-rootcerts/files/mozilla-rootcerts.sh
http://hg.mozilla.org/releases/mozilla-release/raw-file/$certdata_rev/security/nss/lib/ckfw/builtins/certdata.txt)
unpack_source() {
for file in ${source[@]}; do
case ${file##*/} in
icedtea-$icedtea_version.tar.xz|\
$name-boot-$boot_version-bin.tar.xz)
bsdtar -p -o -C $SRC -xf $(get_filename $file) ;;
*)
cp $(get_filename $file) $SRC ;;
esac
done
}
build() {
# Make sure we do not have ccache masquerade directory in PATH.
# Use --enable-ccache instead of providing a wrapped compiler.
# NOTE: the check for usr/bin/ccache may be too specific, since it rules out
# local or opt installs.
if [ -e '/usr/bin/ccache' ]; then
EXTRA_OPTIONS='--enable-ccache'
PATH=$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')
fi
OLD_PATH=$PATH
export JAVA_HOME=$SRC/$name-boot
export PATH=$JAVA_HOME/bin:$OLD_PATH
mkdir $SRC/build
cd $SRC/build
LC_ALL=C \
CONFIG_SHELL=/bin/bash \
../icedtea-$icedtea_version/configure ${EXTRA_OPTIONS} \
--prefix=/usr/lib/java/$name \
--disable-docs \
--disable-downloading \
--disable-precompiled-headers \
--disable-tests \
--disable-hotspot-tests \
--disable-langtools-tests \
--disable-jdk-tests \
--disable-systemtap-tests \
--disable-system-pcsc \
--disable-system-sctp \
--enable-system-jpeg \
--enable-system-kerberos \
--enable-system-lcms \
--enable-system-png \
--enable-system-zlib \
--enable-nss \
--enable-sunec \
--enable-non-nss-curves \
--enable-improved-font-rendering \
--with-openjdk-src-zip=$SRC/openjdk-$version.tar.xz \
--with-hotspot-src-zip=$SRC/hotspot-$version.tar.xz \
--with-corba-src-zip=$SRC/corba-$version.tar.xz \
--with-jaxp-src-zip=$SRC/jaxp-$version.tar.xz \
--with-jaxws-src-zip=$SRC/jaxws-$version.tar.xz \
--with-jdk-src-zip=$SRC/jdk-$version.tar.xz \
--with-langtools-src-zip=$SRC/langtools-$version.tar.xz \
--with-nashorn-src-zip=$SRC/nashorn-$version.tar.xz \
--with-pkgversion=CRUX \
--with-jdk-home=$JAVA_HOME
LC_ALL=C \
make
install -d -m 0755 $PKG/usr/lib/java/$name
cp -a openjdk.build/images/j2sdk-image/* $PKG/usr/lib/java/$name
install -d -m 0755 $PKG/etc/revdep.d
echo "/usr/lib/java/$name/jre/lib/amd64" > $PKG/etc/revdep.d/$name
echo "/usr/lib/java/$name/jre/lib/amd64/jli" >> $PKG/etc/revdep.d/$name
echo "/usr/lib/java/$name/jre/lib/amd64/server" >> $PKG/etc/revdep.d/$name
# remove unneeded files
rm -f $PKG/usr/lib/java/$name/src.zip
rm -rf $PKG/usr/lib/java/$name/{demo,sample}
rm -f $PKG/usr/lib/java/$name/man/ja
rm -rf $PKG/usr/lib/java/$name/man/ja_JP.UTF-8
rm -f $PKG/usr/lib/java/$name/{,jre/}THIRD_PARTY_README
find $PKG/usr/lib/java/$name -name '*.ja' -delete
# deduplicate
rm $PKG/usr/lib/java/$name/jre/lib/amd64/libjawt.so
ln -s ../../../lib/amd64/libjawt.so \
$PKG/usr/lib/java/$name/jre/lib/amd64/libjawt.so
rm $PKG/usr/lib/java/$name/jre/lib/amd64/jli/libjli.so
ln -s ../../../../lib/amd64/jli/libjli.so \
$PKG/usr/lib/java/$name/jre/lib/amd64/jli/libjli.so
for f in $PKG/usr/lib/java/$name/jre/bin/* ; do
if [ -f $PKG/usr/lib/java/$name/bin/${f##*/} ]; then
rm $f
ln -s ../../bin/${f##*/} $f
fi
done
sed -e "/# cd \/etc\/openssl\/certs/s//# cd \/usr\/share\/$name\/certs/" \
-e '/@AWK@/s,,/usr/bin/awk,' \
-e "/@DATADIR@/s,,/usr/share/$name," \
-e '/@ECHO@/s,,/bin/echo,' \
-e '/@EXPR@/s,,/usr/bin/expr,' \
-e '/@LN@/s,,/bin/ln,' \
-e '/@LS@/s,,/bin/ls,' \
-e '/@MKDIR@/s,,/bin/mkdir,' \
-e '/@OPENSSL@/s,,/usr/bin/openssl,' \
-e '/@PREFIX@/s,,/usr,' \
-e "/@SSLDIR@/s,,/usr/share/$name," \
-e '/@RM@/s,,/bin/rm,' \
-e 's,self extract,self -f $certfile extract,' \
-e 's,self rehash,self -f $certfile rehash,' \
$SRC/mozilla-rootcerts.sh > $SRC/mozilla-rootcerts
export JAVA_HOME=$PKG/usr/lib/java/$name
export PATH=$JAVA_HOME/bin:$OLD_PATH
# generate java's cacerts
# big thanks to pkgsrc's mozilla-rootcerts and openjdk pkg's for this part
rm -f $PKG/usr/lib/java/$name/jre/lib/security/cacerts
mkdir $SRC/cacerts
cd $SRC/cacerts
sh $SRC/mozilla-rootcerts -f $SRC/certdata.txt extract
for cert in *.pem; do
keytool \
-noprompt \
-importcert \
-keystore $PKG/usr/lib/java/$name/jre/lib/security/cacerts \
-alias $(echo $cert | sed 's,.*/\([^/]*\)\.pem,\1,') \
-file $cert \
-storepass changeit
done
}