diff options
author | Joshua Nichols <nichoj@gentoo.org> | 2006-08-17 07:21:26 +0000 |
---|---|---|
committer | Joshua Nichols <nichoj@gentoo.org> | 2006-08-17 07:21:26 +0000 |
commit | 03e196d7c9e129ec3fd330bf5e491b2e4d205c4c (patch) | |
tree | 56c3ee9afb4f35a01e87903928b466a7c9af7a69 /dev-java/sun-jre-bin | |
parent | Version bump. (diff) | |
download | gentoo-2-03e196d7c9e129ec3fd330bf5e491b2e4d205c4c.tar.gz gentoo-2-03e196d7c9e129ec3fd330bf5e491b2e4d205c4c.tar.bz2 gentoo-2-03e196d7c9e129ec3fd330bf5e491b2e4d205c4c.zip |
Version bump, and uses new DLJ distributed files
(Portage version: 2.1.1_pre4-r4)
Diffstat (limited to 'dev-java/sun-jre-bin')
-rw-r--r-- | dev-java/sun-jre-bin/ChangeLog | 8 | ||||
-rw-r--r-- | dev-java/sun-jre-bin/files/construct.sh | 282 | ||||
-rw-r--r-- | dev-java/sun-jre-bin/files/digest-sun-jre-bin-1.5.0.08 | 6 | ||||
-rw-r--r-- | dev-java/sun-jre-bin/sun-jre-bin-1.5.0.08.ebuild | 156 |
4 files changed, 451 insertions, 1 deletions
diff --git a/dev-java/sun-jre-bin/ChangeLog b/dev-java/sun-jre-bin/ChangeLog index 18b9e2bdda2d..d8a6397e91e4 100644 --- a/dev-java/sun-jre-bin/ChangeLog +++ b/dev-java/sun-jre-bin/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for dev-java/sun-jre-bin # Copyright 2000-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-java/sun-jre-bin/ChangeLog,v 1.51 2006/07/06 10:42:15 nelchael Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-java/sun-jre-bin/ChangeLog,v 1.52 2006/08/17 07:21:26 nichoj Exp $ + +*sun-jre-bin-1.5.0.08 (17 Aug 2006) + + 17 Aug 2006; Joshua Nichols <nichoj@gentoo.org> +files/construct.sh, + +sun-jre-bin-1.5.0.08.ebuild: + Version bump, and uses new DLJ distributed files 06 Jul 2006; Krzysiek Pawlik <nelchael@gentoo.org> sun-jre-bin-1.4.2.10.ebuild, sun-jre-bin-1.4.2.10-r2.ebuild, diff --git a/dev-java/sun-jre-bin/files/construct.sh b/dev-java/sun-jre-bin/files/construct.sh new file mode 100644 index 000000000000..5f6ff7f0f161 --- /dev/null +++ b/dev-java/sun-jre-bin/files/construct.sh @@ -0,0 +1,282 @@ +#!/bin/bash +# construct.sh +# example construction of JRE and JDK directories from the DLJ bundles +# +# Copyright © 2006 Sun Microsystems, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Sun, Sun Microsystems, the Sun logo and Java, Java HotSpot, +# and JVM trademarks or registered trademarks of Sun Microsystems, +# Inc. in the U.S. and other countries. + + +program=`basename $0` + +usage () { + echo "usage: ${program} path/to/unbundle-jdk path/to/linux-jdk path/to/linux-jre" +} + +getargs() { + undir=$1 + jdkdir=$2 + jredir=$3 + if [ ! -d $undir ]; then + echo "${program}: unbundle directory not found: $undir" + exit 2 + fi + # make sure javahome is the JDK + javahome=`echo $undir/*/demo` + if [ ! -d $javahome ]; then + echo "${program}: unbundle directory incorrect: $undir" + echo " expecting $undir/jdk1.5.0_xx" + exit 2 + else + javahome=`dirname $javahome` + fi + # verify JDK dir + jdkdirp=`dirname $jdkdir` + jdkbase=`basename $jdkdir` + if [ ! -d $jdkdirp ]; then + echo "${program}: parent directory for JDK does not exist: $jdkdirp" + exit 2 + fi + savedir=`pwd` + cd $jdkdirp + jdkdirp=`pwd` + cd $savedir + jdkdir=$jdkdirp/$jdkbase + # verify JRE dir + jredirp=`dirname $jredir` + jrebase=`basename $jredir` + if [ ! -d $jredirp ]; then + echo "${program}: parent directory for JRE does not exist: $jredirp" + exit 2 + fi + savedir=`pwd` + cd $jredirp + jredirp=`pwd` + cd $savedir + jredir=$jredirp/$jrebase +} + +checkfiles() { + if [ -r $jdkdir ]; then + echo "${program}: directory for JDK already exists: $jdkdir" + exit 2 + fi + if [ -r $jredir ]; then + echo "${program}: directory for JRE already exists: $jredir" + exit 2 + fi +} + +copytree() { + echo "copying over the JDK tree..." + cp -a $javahome $jdkdir +} + +linkrel() { + target=$1 + link=$2 + # make a softlink from the $link to the $target + # make this a relative link + targetb=(`echo $target | tr '/' ' '`) + linkb=(`echo $link | tr '/' ' '`) + (( n = ${#targetb[*]} )) + (( m = ${#linkb[*]} )) + c=$n # common length + if [ $m -lt $c ]; then + (( c = m )) + fi + for (( i = 0 ; i < c ; i++ )); do + if [ ${targetb[$i]} != ${linkb[$i]} ]; then + # echo components differ, stopping + break + fi + done + rel="" + for (( j = i + 1; j < m ; j++ )); do + if [ -z $rel ]; then + rel=".." + else + rel="$rel/.." + fi + done + for (( j = i; j < n ; j++ )); do + if [ -z $rel ]; then + rel=${targetb[$j]} + else + rel="$rel/${targetb[$j]}" + fi + done + ln -s $rel $link +} + +createjre() { + echo "creating JRE directory..." + # absolute link + # ln -s $jdkdir/jre $jredir + # relative link + linkrel $jdkdir/jre $jredir +} + +unpackjars() { + echo "unpacking jars..." + unpack200=$jdkdir/bin/unpack200 + if [ ! -x $unpack200 ]; then + echo "${program}: file missing $unpack200" + exit 1 + fi + cd $jdkdir + PACKED_JARS=`find . -name '*.pack'` + for i in $PACKED_JARS; do + # echo $i + jdir=`dirname $i` + jbase=`basename $i .pack` + if ! $unpack200 $jdkdir/$jdir/$jbase.pack $jdkdir/$jdir/$jbase.jar; then + echo "${program}: error unpacking $jdkdir/$jdir/$jbase.jar" + fi + if [ ! -r $jdkdir/$jdir/$jbase.jar ]; then + echo "${program}: missing $jdkdir/$jdir/$jbase.jar" + else + echo " $jdir/$jbase.jar" + # remove pack file + rm $jdkdir/$jdir/$jbase.pack + fi + done +} + +preparecds() { + # if this is a client installation... + compiler="`$jdkdir/bin/java -client -version 2>&1 | tail -n +3 | cut -d' ' -f1-4`" + if [ "X$compiler" = "XJava HotSpot(TM) Client VM" ]; then + # create the CDS archive + echo "creating the class data sharing archive..." + if ! $jdkdir/bin/java -client -Xshare:dump > /dev/null 2>&1; then + echo "returned error code $?" + fi + fi +} + +jreman () { + echo "setting up the JRE man pages..." + # note this list is slightly different for OpenSolaris bundles + jreman=/tmp/jre.man.txt +cat <<EOF > $jreman +man/ja_JP.eucJP/man1/java.1 +man/ja_JP.eucJP/man1/javaws.1 +man/ja_JP.eucJP/man1/keytool.1 +man/ja_JP.eucJP/man1/kinit.1 +man/ja_JP.eucJP/man1/klist.1 +man/ja_JP.eucJP/man1/ktab.1 +man/ja_JP.eucJP/man1/orbd.1 +man/ja_JP.eucJP/man1/pack200.1 +man/ja_JP.eucJP/man1/policytool.1 +man/ja_JP.eucJP/man1/rmid.1 +man/ja_JP.eucJP/man1/rmiregistry.1 +man/ja_JP.eucJP/man1/servertool.1 +man/ja_JP.eucJP/man1/tnameserv.1 +man/ja_JP.eucJP/man1/unpack200.1 +man/man1/java.1 +man/man1/javaws.1 +man/man1/keytool.1 +man/man1/kinit.1 +man/man1/klist.1 +man/man1/ktab.1 +man/man1/orbd.1 +man/man1/pack200.1 +man/man1/policytool.1 +man/man1/rmid.1 +man/man1/rmiregistry.1 +man/man1/servertool.1 +man/man1/tnameserv.1 +man/man1/unpack200.1 +EOF + # create jre/man directory + # mkdir $jdkdir/jre/man + # move the real JRE man pages to jre/man + # link the JDK JRE man pages to jre/man + # real JDK man pages stay where they are + for m in `cat $jreman`; do + manpath=`dirname $jdkdir/jre/$m` + mkdir -p $manpath + mv $jdkdir/$m $jdkdir/jre/$m + linkrel $jdkdir/jre/$m $jdkdir/$m + done + # link in Japanese man pages + ln -s ja_JP.eucJP $jdkdir/jre/man/ja + rm $jreman +} + +elimdups() { + echo "eliminating duplication between the JDK and JDK/jre..." + jdkcomm=/tmp/jdk.bin.comm.txt +cat <<EOF > $jdkcomm +bin/ControlPanel +bin/java +bin/javaws +bin/keytool +bin/kinit +bin/klist +bin/ktab +bin/orbd +bin/pack200 +bin/policytool +bin/rmid +bin/rmiregistry +bin/servertool +bin/tnameserv +bin/unpack200 +EOF + # note there is little point in linking these common files + # COPYRIGHT + # LICENSE + # THIRDPARTYLICENSEREADME.txt + # And this file is unique to the JDK + # README.html + # And these files are unique to the JDK/jre/ + # CHANGES + # README + # Welcome.html + for p in `cat $jdkcomm`; do + rm $jdkdir/$p + # this is a relative link + ln -s ../jre/$p $jdkdir/$p + done + rm $jdkcomm +} + +if [ $# -eq 3 ] ; then + getargs $1 $2 $3 + checkfiles + copytree + createjre + unpackjars + preparecds + jreman + elimdups +else + usage + exit 1 +fi + +exit 0 + diff --git a/dev-java/sun-jre-bin/files/digest-sun-jre-bin-1.5.0.08 b/dev-java/sun-jre-bin/files/digest-sun-jre-bin-1.5.0.08 new file mode 100644 index 000000000000..89b29a996b47 --- /dev/null +++ b/dev-java/sun-jre-bin/files/digest-sun-jre-bin-1.5.0.08 @@ -0,0 +1,6 @@ +MD5 e6388e30448ffd7ccaaca3cfc0708e44 jdk-1_5_0_08-dlj-linux-amd64.bin 43854617 +RMD160 c6669cba980b9097c6921041ee3af8753587ea37 jdk-1_5_0_08-dlj-linux-amd64.bin 43854617 +SHA256 a4a4baa5488c7be8b109ed6c1f460a8b30861ae546c050c319de41e987bc857f jdk-1_5_0_08-dlj-linux-amd64.bin 43854617 +MD5 3e2935cca24ceb54dd2181892a3d5456 jdk-1_5_0_08-dlj-linux-i586.bin 49498712 +RMD160 11c01f6391cec0476a3d96306a7bee7ec82d8425 jdk-1_5_0_08-dlj-linux-i586.bin 49498712 +SHA256 e96ebeefb5116182c01f6e3fb306d24f1b81ba6849b76b0d4705051b01647ce8 jdk-1_5_0_08-dlj-linux-i586.bin 49498712 diff --git a/dev-java/sun-jre-bin/sun-jre-bin-1.5.0.08.ebuild b/dev-java/sun-jre-bin/sun-jre-bin-1.5.0.08.ebuild new file mode 100644 index 000000000000..2cf318b83cbd --- /dev/null +++ b/dev-java/sun-jre-bin/sun-jre-bin-1.5.0.08.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-java/sun-jre-bin/sun-jre-bin-1.5.0.08.ebuild,v 1.1 2006/08/17 07:21:26 nichoj Exp $ + +inherit java-vm-2 eutils + +MY_PVL=${PV%.*}_${PV##*.} +MY_PVA=${PV//./_} +#S="${WORKDIR}/jdk${MY_PVL}" + +X86_AT="jdk-${MY_PVA}-dlj-linux-i586.bin" +AMD64_AT="jdk-${MY_PVA}-dlj-linux-amd64.bin" +if use x86; then + At=${X86_AT} +elif use amd64; then + At=${AMD64_AT} +fi +DESCRIPTION="Sun's J2SE Development Kit, version ${PV}" +HOMEPAGE="http://java.sun.com/j2se/1.5.0/" +SRC_URI="x86? ( http://download.java.net/dlj/binaries/${X86_AT} ) + amd64? ( http://download.java.net/dlj/binaries/${AMD64_AT} )" +SLOT="1.5" +LICENSE="dlj-1.1" +KEYWORDS="~amd64 ~x86 -*" +# Restrict stricter because of textrels +RESTRICT="nostrip stricter" +IUSE="X alsa nsplugin" + +JAVA_VM_NO_GENERATION1=true + +RDEPEND="alsa? ( media-libs/alsa-lib ) + X? ( || ( ( x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXau + x11-libs/libXdmcp + x11-libs/libXext + x11-libs/libXi + x11-libs/libXp + x11-libs/libXt + x11-libs/libXtst + ) + virtual/x11 + ) + )" + +JAVA_PROVIDE="jdbc-stdext jdbc-rowset" + +PACKED_JARS="lib/rt.jar lib/jsse.jar lib/charsets.jar lib/ext/localedata.jar lib/plugin.jar lib/javaws.jar lib/deploy.jar" + +# this is needed for proper operating under a PaX kernel without activated grsecurity acl +CHPAX_CONSERVATIVE_FLAGS="pemsv" + +src_unpack() { + if [ ! -r ${DISTDIR}/${At} ]; then + die "cannot read ${At}. Please check the permission and try again." + fi + + mkdir bundled-jdk + cd bundled-jdk + sh ${DISTDIR}/${At} --accept-license --unpack || die "Failed to unpack" + + cd .. + bash ${FILESDIR}/construct.sh bundled-jdk sun-jdk-${PV} ${P} || die "construct.sh failed" + + ${S}/bin/java -client -Xshare:dump +} + +src_install() { + local dirs="bin javaws lib man plugin" + dodir /opt/${P} + + for i in $dirs ; do + cp -pPR $i ${D}/opt/${P}/ || die "failed to copy" + done + dodoc CHANGES README THIRDPARTYLICENSEREADME.txt + dohtml Welcome.html + dodir /opt/${P}/share/ + + if use nsplugin; then + local plugin_dir="ns7-gcc29" + if has_version '>=sys-devel/gcc-3' ; then + plugin_dir="ns7" + fi + + if use x86 ; then + install_mozilla_plugin /opt/${P}/plugin/i386/$plugin_dir/libjavaplugin_oji.so + else + eerror "No plugin available for amd64 arch" + fi + fi + + # TODO Don't think we still needs these -nichoj + # create dir for system preferences + #dodir /opt/${P}/jre/.systemPrefs + # Create files used as storage for system preferences. + #touch ${D}/opt/${P}/jre/.systemPrefs/.system.lock + #chmod 644 ${D}/opt/${P}/jre/.systemPrefs/.system.lock + #touch ${D}/opt/${P}/jre/.systemPrefs/.systemRootModFile + #chmod 644 ${D}/opt/${P}/jre/.systemPrefs/.systemRootModFile + + # FIXME figure out how to handle the control pannel conflict with + # sun-jdk-bin + + # install control panel for Gnome/KDE +# sed -e "s/INSTALL_DIR\/JRE_NAME_VERSION/\/opt\/${P}\/jre/" \ +# -e "s/\(Name=Java\)/\1 Control Panel ${SLOT}/" \ +# ${D}/opt/${P}/plugin/desktop/sun_java.desktop > \ +# ${T}/sun_java-${SLOT}.desktop + +# domenu ${T}/sun_java-${SLOT}.desktop + + set_java_env +} + +pkg_postinst() { + # Set as default VM if none exists + java-vm-2_pkg_postinst + + # if chpax is on the target system, set the appropriate PaX flags + # this will not hurt the binary, it modifies only unused ELF bits + # but may confuse things like AV scanners and automatic tripwire + if has_version sys-apps/chpax + then + echo + einfo "setting up conservative PaX flags for java" + + for paxkills in "java" + do + chpax -${CHPAX_CONSERVATIVE_FLAGS} /opt/${P}/bin/$paxkills + done + + # /opt/$VM/jre/bin/java_vm + chpax -${CHPAX_CONSERVATIVE_FLAGS} /opt/${P}/bin/java_vm + + einfo "you should have seen lots of chpax output above now" + ewarn "make sure the grsec ACL contains those entries also" + ewarn "because enabling it will override the chpax setting" + ewarn "on the physical files - help for PaX and grsecurity" + ewarn "can be given by #gentoo-hardened + hardened@gentoo.org" + fi + + if ! use X; then + local xwarn="virtual/x11 and/or" + fi + + echo + ewarn "Some parts of Sun's JDK require ${xwarn} virtual/lpr to be installed." + ewarn "Be careful which Java libraries you attempt to use." + + echo + einfo " Be careful: ${P}'s Java compiler uses" + einfo " '-source 1.5' as default. Some keywords such as 'enum'" + einfo " are not valid identifiers any more in that mode," + einfo " which can cause incompatibility with certain sources." +} |