# $Id$ PNAME="java6-sun" PVER="1.6.0.45" PBUILD="r1" SPLIT_PACKAGES="java6-jre-sun java6-jdk-sun java6-src-sun java6-demos-sun" PCAT="dev-java" HOMEPAGE="http://java.sun.com/javase/6/" JRE_DEPEND=">= dev-java/java-environment-1 >= virtual/glibc" SDEPEND=">= app-arch/unzip-5 >= virtual/sed" # provided java version JAVA_PVER="1.6.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.bin" SRCFILE_x86_64="jdk-${PVER:2:1}u$(echo ${PVER:6} | sed 's/0\([0-9]\)/\1/')-linux-x64.bin" 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}/${PNAME}-${PVER}" # official script from sun; fetch it at # https://jdk-distros.dev.java.net/source/browse/*checkout*/jdk-distros/trunk/utils/construct.sh CONSTRUCTSH="construct-rev148.sh" sminclude mtools # only use local mirrors, as upstream has dropped the support for java 1.6.0.x 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} mirror://sun-jdk/${CONSTRUCTSH} mirror://sun-jdk/construct-magellan-fix.patch ) # 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_v6.jsp | grep '^Version' | sed 's:.*Version\ \(.*\)\ Update\ \(.*\):\1u\2:'" split_info_java6-jre-sun() { DESCRIPTION="Sun Java6 Runtime Environment ${PVER}." DEPEND="${JRE_DEPEND}" PROVIDE="virtual/java" } split_info_java6-jdk-sun() { DESCRIPTION="Sun Java6 Development Kit ${PVER}." DEPEND="== dev-java/java6-jre-sun-${PVER}" PROVIDE="virtual/java-jdk" } split_info_java6-src-sun() { DESCRIPTION="Sun Java6 developmend source." DEPEND="== dev-java/java6-jdk-sun-${PVER}" } split_info_java6-demos-sun() { DESCRIPTION="Sun Java6 samples and demos." DEPEND="== dev-java/java6-jdk-sun-${PVER}" } src_prepare() { install -d ${SRCDIR} || die cd ${SRCDIR} cp ${SOURCEDIR}/${PNAME}/${CONSTRUCTSH} ${SRCDIR} || die # fix some issues with construct mpatch construct-magellan-fix.patch || die install -d ${SRCDIR}/unbundle-jdk || die cd ${SRCDIR}/unbundle-jdk sh ${SOURCEDIR}/${PNAME}/${SRCFILE} --accept-license || die # unpack demos cd ${SRCDIR} munpack ${DEMOS_SRCFILE} unbundle-jdk || die # unbundle java cd ${SRCDIR} sh ${CONSTRUCTSH} unbundle-jdk linux-jdk linux-jre || die } src_install_java6-jre-sun() { cd ${SRCDIR} local JAVA_DIR="/usr/$(mlibdir)/jvm/java-${JAVA_PVER}" # needed directories minstalldir ${JAVA_DIR} || die minstalldir /usr/$(mlibdir)/nsbrowser/plugins || die # now install the jre mv linux-jdk/jre ${BINDIR}/${JAVA_DIR} || die local PLATFORM="${ARCH}" [[ ${ARCH} = i*86 ]] && export PLATFORM="i386" [[ ${ARCH} = x86_64 ]] && export PLATFORM="amd64" # install mozilla plugin oji (x86 only) - only <=firefox-2.x if [[ ${ARCH} = i*86 ]] then mlink ${JAVA_DIR}/jre/plugin/${PLATFORM}/ns7/libjavaplugin_oji.so \ /usr/$(mlibdir)/nsbrowser/plugins || die fi # install mozilla plugin libnpjp2 (x86 & x86_64) - only >=firefox-3.x mlink ${JAVA_DIR}/jre/lib/${PLATFORM}/libnpjp2.so \ /usr/$(mlibdir)/nsbrowser/plugins || die # install java environment into /etc/java MCONFIG="/etc/java/java6-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}/native_threads/\"" || 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_java6-jdk-sun() { cd ${SRCDIR} local JAVA_DIR="/usr/$(mlibdir)/jvm/java-${JAVA_PVER}" # needed directories minstalldir /usr/$(mlibdir)/jvm || die # remove the sources, they are way to big rm -f ${SRCDIR}/linux-jdk/src.zip || die # same for the demos rm -rf ${SRCDIR}/linux-jdk/demos || die rm -rf ${SRCDIR}/linux-jdk/demo || die rm -rf ${SRCDIR}/linux-jdk/db/demo || die rm -rf ${SRCDIR}/linux-jdk/sample || die # jre is provided by sun-jre rm -rf ${SRCDIR}/linux-jdk/jre || die # now install the jdk mv linux-jdk ${BINDIR}/${JAVA_DIR} || die # install java environment into /etc/java MCONFIG="/etc/java/java6-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_java6-src-sun() { cd ${SRCDIR} local JAVA_DIR="/usr/$(mlibdir)/jvm/java-${JAVA_PVER}" minstalldir ${JAVA_DIR} || die mcopy -R unbundle-jdk/jdk${PVER%.*}_${PVER##*.}/src.zip ${JAVA_DIR} || die mchown -R root:root ${JAVA_DIR} || die } src_install_java6-demos-sun() { cd ${SRCDIR} local JAVA_DIR="/usr/$(mlibdir)/jvm/java-${JAVA_PVER}" minstalldir ${JAVA_DIR} || die mcopy -R unbundle-jdk/jdk${PVER%.*}_${PVER##*.}/demo ${JAVA_DIR}/ || die mcopy -R unbundle-jdk/jdk${PVER%.*}_${PVER##*.}/sample ${JAVA_DIR}/ || die mchown -R root:root ${JAVA_DIR} || die } postinstall_java6-jre-sun() { ${MROOT}/usr/sbin/java-update --use-old java6-sun } preinstall_java6-jdk-sun() { # delete the deprecated one [ -f ${MROOT}/etc/env.d/20java-jdk ] && rm ${MROOT}/etc/env.d/20java-jdk } postinstall_java6-jdk-sun() { ${MROOT}/usr/sbin/java-update --use-old java6-sun }