summaryrefslogtreecommitdiff
path: root/openjdk8/Pkgfile
blob: ae81f817eb9917cac8ee78848c1d1e9b9ea6c6dd (plain)
    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=8u191-b12
    8 icedtea_version=3.10.0
    9 boot_version=20190106
   10 pkgsrc_quarter=2018Q3
   11 certdata_rev=dc2f7806fbc1
   12 release=2
   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/certdata-$certdata_rev.txt
   23 	https://stygian.me/crux/distfiles/mozilla-rootcerts-$pkgsrc_quarter.sh
   24 	https://stygian.me/crux/distfiles/$name-boot-$boot_version-bin.tar.xz)
   25 	# See README for links to originally named files and rationale of renaming/versioning/mirroring.
   26 
   27 unpack_source() {
   28 	for file in ${source[@]}; do
   29 		case ${file##*/} in
   30 			icedtea-$icedtea_version.tar.xz|\
   31 			$name-boot-$boot_version-bin.tar.xz)
   32 				bsdtar -p -o -C $SRC -xf $(get_filename $file) ;;
   33 			*)
   34 				cp $(get_filename $file) $SRC ;;
   35 		esac
   36 	done
   37 }
   38 
   39 build() {
   40 	# Make sure we do not have ccache masquerade directory in PATH.
   41 	# Use --enable-ccache instead of providing a wrapped compiler.
   42 	# NOTE: the check for usr/bin/ccache may be too specific, since it rules out
   43 	#       local or opt installs.
   44 	if [ -e '/usr/bin/ccache' ]; then
   45 		EXTRA_OPTIONS='--enable-ccache'
   46 		PATH=$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')
   47 	fi
   48 
   49 	OLD_PATH=$PATH
   50 	export JAVA_HOME=$SRC/$name-boot
   51 	export PATH=$JAVA_HOME/bin:$OLD_PATH
   52 
   53 	mkdir $SRC/build
   54 	cd $SRC/build
   55 
   56 	LC_ALL=C \
   57 	CONFIG_SHELL=/bin/bash \
   58 	../icedtea-$icedtea_version/configure ${EXTRA_OPTIONS} \
   59 		--prefix=/usr/lib/java/$name \
   60 		--disable-docs \
   61 		--disable-downloading \
   62 		--disable-hotspot-tests \
   63 		--disable-jdk-tests \
   64 		--disable-langtools-tests \
   65 		--disable-precompiled-headers \
   66 		--disable-system-pcsc \
   67 		--disable-system-sctp \
   68 		--disable-systemtap-tests \
   69 		--disable-tests \
   70 		--enable-improved-font-rendering \
   71 		--enable-non-nss-curves \
   72 		--enable-nss \
   73 		--enable-sunec \
   74 		--enable-system-jpeg \
   75 		--enable-system-kerberos \
   76 		--enable-system-lcms \
   77 		--enable-system-png \
   78 		--enable-system-zlib \
   79 		--with-corba-src-zip=$SRC/corba-$version.tar.xz \
   80 		--with-hotspot-src-zip=$SRC/hotspot-$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-openjdk-src-zip=$SRC/openjdk-$version.tar.xz \
   87 		--with-pkgversion=CRUX \
   88 		--with-jdk-home=$JAVA_HOME
   89 
   90 	LC_ALL=C \
   91 	make
   92 
   93 	install -d -m 0755 $PKG/usr/lib/java/$name
   94 	cp -a openjdk.build/images/j2sdk-image/* $PKG/usr/lib/java/$name
   95 
   96 	install -d -m 0755 $PKG/etc/revdep.d
   97 	echo "/usr/lib/java/$name/jre/lib/amd64" > $PKG/etc/revdep.d/$name
   98 	echo "/usr/lib/java/$name/jre/lib/amd64/jli" >> $PKG/etc/revdep.d/$name
   99 	echo "/usr/lib/java/$name/jre/lib/amd64/server" >> $PKG/etc/revdep.d/$name
  100 
  101 	# remove unneeded files
  102 	rm -f $PKG/usr/lib/java/$name/src.zip
  103 	rm -rf $PKG/usr/lib/java/$name/{demo,sample}
  104 	rm -f $PKG/usr/lib/java/$name/man/ja
  105 	rm -rf $PKG/usr/lib/java/$name/man/ja_JP.UTF-8
  106 	rm -f $PKG/usr/lib/java/$name/{,jre/}THIRD_PARTY_README
  107 	find $PKG/usr/lib/java/$name -name '*.ja' -delete
  108 
  109 	# deduplicate
  110 	rm $PKG/usr/lib/java/$name/jre/lib/amd64/libjawt.so
  111 	ln -s ../../../lib/amd64/libjawt.so \
  112 		$PKG/usr/lib/java/$name/jre/lib/amd64/libjawt.so
  113 	rm $PKG/usr/lib/java/$name/jre/lib/amd64/jli/libjli.so
  114 	ln -s ../../../../lib/amd64/jli/libjli.so \
  115 		$PKG/usr/lib/java/$name/jre/lib/amd64/jli/libjli.so
  116 	for f in $PKG/usr/lib/java/$name/jre/bin/* ; do
  117 		if [ -f $PKG/usr/lib/java/$name/bin/${f##*/} ]; then
  118 			rm $f
  119 			ln -s ../../bin/${f##*/} $f
  120 		fi
  121 	done
  122 
  123 	sed -e "/# cd \/etc\/openssl\/certs/s//# cd \/usr\/share\/$name\/certs/" \
  124 		-e '/@AWK@/s,,/usr/bin/awk,' \
  125 		-e "/@DATADIR@/s,,/usr/share/$name," \
  126 		-e '/@ECHO@/s,,/bin/echo,' \
  127 		-e '/@EXPR@/s,,/usr/bin/expr,' \
  128 		-e '/@LN@/s,,/bin/ln,' \
  129 		-e '/@LS@/s,,/bin/ls,' \
  130 		-e '/@MKDIR@/s,,/bin/mkdir,' \
  131 		-e '/@OPENSSL@/s,,/usr/bin/openssl,' \
  132 		-e '/@PREFIX@/s,,/usr,' \
  133 		-e "/@SSLDIR@/s,,/usr/share/$name," \
  134 		-e '/@RM@/s,,/bin/rm,' \
  135 		-e 's,self extract,self -f $certfile extract,' \
  136 		-e 's,self rehash,self -f $certfile rehash,' \
  137 		$SRC/mozilla-rootcerts-$pkgsrc_quarter.sh > $SRC/mozilla-rootcerts
  138 
  139 	export JAVA_HOME=$PKG/usr/lib/java/$name
  140 	export PATH=$JAVA_HOME/bin:$OLD_PATH
  141 
  142 	# generate java's cacerts
  143 	# big thanks to pkgsrc's mozilla-rootcerts and openjdk pkg's for this part
  144 	rm -f $PKG/usr/lib/java/$name/jre/lib/security/cacerts
  145 	mkdir $SRC/cacerts
  146 	cd $SRC/cacerts
  147 	sh $SRC/mozilla-rootcerts -f $SRC/certdata-$certdata_rev.txt extract
  148 	for cert in *.pem; do
  149 		keytool \
  150 			-noprompt \
  151 			-importcert \
  152 			-keystore $PKG/usr/lib/java/$name/jre/lib/security/cacerts \
  153 			-alias $(echo $cert | sed 's,.*/\([^/]*\)\.pem,\1,') \
  154 			-file $cert \
  155 			-storepass changeit
  156 	done
  157 }

Generated by cgit