# $Id$ PNAME="java8-sun" PVER="1.8.0.131" PBUILD="r1" SPLIT_PACKAGES="java8-jre-sun java8-jdk-sun java8-src-sun java8-demos-sun" PCAT="dev-java" HOMEPAGE="http://java.sun.com/javase/8/" JRE_DEPEND=">= dev-java/java-environment-1 >= virtual/glibc" SDEPEND=">= app-arch/unzip-5 >= sys-apps/sed-4" # provided java version JAVA_PVER="1.8.0-sun-${PVER}" # both files must be fetch or our md5-logic breaks SRCFILE_x86="jdk-${PVER:2:1}u$(echo ${PVER:6} | sed 's/0\([0-9]\)/\1/')-linux-i586.tar.gz" SRCFILE_x86_64="jdk-${PVER:2:1}u$(echo ${PVER:6} | sed 's/0\([0-9]\)/\1/')-linux-x64.tar.gz" DEMOS_SRCFILE_x86="jdk-${PVER:2:1}u$(echo ${PVER:6} | sed 's/0\([0-9]\)/\1/')-linux-i586-demos.tar.gz" DEMOS_SRCFILE_x86_64="jdk-${PVER:2:1}u$(echo ${PVER:6} | sed 's/0\([0-9]\)/\1/')-linux-x64-demos.tar.gz" # decide between x86 and x86_64 arch SRCFILE="$(marchsrcfile)" DEMOS_SRCFILE="$(marchsrcfile DEMOS_SRCFILE)" SRCDIR="${BUILDDIR}/jdk${PVER%.*}_${PVER##*.}" sminclude mtools # only use local mirrors SRC_URI=( mirror://sun-jdk/${SRCFILE_x86} mirror://sun-jdk/${SRCFILE_x86_64} mirror://sun-jdk/${DEMOS_SRCFILE_x86} mirror://sun-jdk/${DEMOS_SRCFILE_x86_64} ) # upstream pver is something like 6u6 UP2PVER="${PVER:2:1}u$(echo ${PVER:6} | sed 's/0\([0-9]\)/\1/')" UP2DATE="updatecmd http://java.com/de/download/manual.jsp | grep 'Version.*Update' | sed 's:.*Version\ \(.*\)\ Update\ \(.*\):\1u\2:'" split_info_java8-jre-sun() { DESCRIPTION="Sun Java8 Runtime Environment ${PVER}." DEPEND="${JRE_DEPEND}" PROVIDE="virtual/java" } split_info_java8-jdk-sun() { DESCRIPTION="Sun Java8 Development Kit ${PVER}." DEPEND="== dev-java/java8-jre-sun-${PVER}" PROVIDE="virtual/java-jdk" } split_info_java8-src-sun() { DESCRIPTION="Sun Java8 developmend source." DEPEND="== dev-java/java8-jdk-sun-${PVER}" } split_info_java8-demos-sun() { DESCRIPTION="Sun Java8 samples and demos." DEPEND="== dev-java/java8-jdk-sun-${PVER}" } src_prepare() { munpack ${SRCFILE} || die munpack ${DEMOS_SRCFILE} || die } src_install_java8-jre-sun() { cd ${SRCDIR} local JAVA_DIR="/usr/$(mlibdir)/jvm/java-${JAVA_PVER}" # needed directories minstalldir ${JAVA_DIR} || die mcopy -R ${SRCDIR}/jre ${JAVA_DIR} || die mchown -R root:root ${JAVA_DIR} || die local PLATFORM="${ARCH}" [[ ${ARCH} = i*86 ]] && export PLATFORM="i386" [[ ${ARCH} = x86_64 ]] && export PLATFORM="amd64" # install mozilla plugin libnpjp2 (x86 & x86_64) - only >=firefox-3.x minstalldir /usr/$(mlibdir)/nsbrowser/plugins || die mlink ${JAVA_DIR}/jre/lib/${PLATFORM}/libnpjp2.so \ /usr/$(mlibdir)/nsbrowser/plugins || die # install java environment into /etc/java MCONFIG="/etc/java/java8-sun/jre.conf" mclearconfig || die # if no jdk installed, the java_home has the suffix /jre # gets overriden with installed jdk (22-java-jdk env) maddconfig "JAVA_HOME=\"${JAVA_DIR}/jre\"" || die maddconfig "JRE_HOME=\"${JAVA_DIR}/jre\"" || die maddconfig "CLASSPATH=\"${JAVA_DIR}/jre/lib/rt.jar\"" || die # maddconfig "CLASSPATH=\"${JAVA_DIR}/jre/lib/i18n.jar\"" || die # maddconfig "CLASSPATH=\"${JAVA_DIR}/jre/lib/sunrsasign.jar\"" || die maddconfig "CLASSPATH=\"${JAVA_DIR}/jre/lib/jsse.jar\"" || die maddconfig "CLASSPATH=\"${JAVA_DIR}/jre/lib/jce.jar\"" || die maddconfig "CLASSPATH=\"${JAVA_DIR}/jre/lib/charsets.jar\"" || die maddconfig "PATH=\"${JAVA_DIR}/jre/bin\"" || die maddconfig "ROOTPATH=\"${JAVA_DIR}/jre/bin\"" || die maddconfig "LDPATH=\"${JAVA_DIR}/jre/lib/${PLATFORM}/\"" || die maddconfig "LDPATH=\"${JAVA_DIR}/jre/lib/${PLATFORM}/headless/\"" || die maddconfig "LDPATH=\"${JAVA_DIR}/jre/lib/${PLATFORM}/xawt/\"" || die maddconfig "LDPATH=\"${JAVA_DIR}/jre/lib/${PLATFORM}/server/\"" || die maddconfig "LDPATH=\"${JAVA_DIR}/jre/lib/${PLATFORM}/jli/\"" || die } src_install_java8-jdk-sun() { cd ${SRCDIR} local JAVA_DIR="/usr/$(mlibdir)/jvm/java-${JAVA_PVER}" minstalldir /usr/$(mlibdir)/jvm || die mcopy -R ${SRCDIR} ${JAVA_DIR} || die mchown -R root:root ${JAVA_DIR} || die # save space and symlink some twice installed binaries local i for i in $(find ${SRCDIR}/jre/bin -type f -printf '%f\n') do if [[ -x ${BINDIR}/${JAVA_DIR}/bin/${i} ]] then rm ${BINDIR}/${JAVA_DIR}/bin/${i} || die mlink ../jre/bin/${i} ${JAVA_DIR}/bin/${i} || die fi done # now remove the jre if [[ -d ${BINDIR}/${JAVA_DIR}/jre ]] then rm -r ${BINDIR}/${JAVA_DIR}/jre || die fi # remove sources if [[ -f ${BINDIR}/${JAVA_DIR}/src.zip ]] then rm -r ${BINDIR}/${JAVA_DIR}/src.zip || die fi # now demos and samples if [[ -d ${BINDIR}/${JAVA_DIR}/demo ]] then rm -r ${BINDIR}/${JAVA_DIR}/demo || die fi if [[ -d ${BINDIR}/${JAVA_DIR}/sample ]] then rm -r ${BINDIR}/${JAVA_DIR}/sample || die fi if [[ -f ${BINDIR}/${JAVA_DIR}/bin/java-rmi.cgi ]] then rm -f ${BINDIR}/${JAVA_DIR}/bin/java-rmi.cgi || die fi # install java environment into /etc/java MCONFIG="/etc/java/java8-sun/jdk.conf" mclearconfig || die maddconfig "JAVA_HOME=\"${JAVA_DIR}\"" || die maddconfig "JDK_HOME=\"${JAVA_DIR}\"" || die maddconfig "JAVAC=\"${JAVA_DIR}/bin/javac\"" || die maddconfig "PATH=\"${JAVA_DIR}/bin\"" || die maddconfig "ROOTPATH=\"${JAVA_DIR}/bin\"" || die maddconfig "MANPATH=\"${JAVA_DIR}/man\"" || die } src_install_java8-src-sun() { cd ${SRCDIR} local JAVA_DIR="/usr/$(mlibdir)/jvm/java-${JAVA_PVER}" minstalldir ${JAVA_DIR} || die mcopy -R ${SRCDIR}/src.zip ${JAVA_DIR} || die mchown -R root:root ${JAVA_DIR} || die } src_install_java8-demos-sun() { cd ${SRCDIR} local JAVA_DIR="/usr/$(mlibdir)/jvm/java-${JAVA_PVER}" minstalldir ${JAVA_DIR} || die mcopy -R ${SRCDIR}/demo ${JAVA_DIR}/ || die mcopy -R ${SRCDIR}/sample ${JAVA_DIR}/ || die minstalldir ${JAVA_DIR}/sample/rmi || die minstallexec ${SRCDIR}/bin/java-rmi.cgi ${JAVA_DIR}/sample/rmi || die mchown -R root:root ${JAVA_DIR} || die } postinstall_java8-jre-sun() { ${MROOT}/usr/sbin/java-update --use-old java8-sun } preinstall_java8-jdk-sun() { # delete the deprecated one [ -f ${MROOT}/etc/env.d/20java-jdk ] && rm ${MROOT}/etc/env.d/20java-jdk } postinstall_java8-jdk-sun() { ${MROOT}/usr/sbin/java-update --use-old java8-sun }