diff options
author | William Thomson <wltjr@gentoo.org> | 2007-01-26 01:46:38 +0000 |
---|---|---|
committer | William Thomson <wltjr@gentoo.org> | 2007-01-26 01:46:38 +0000 |
commit | e4b3805e1059f0c44ecf47629a625b503cf277d9 (patch) | |
tree | 00ea86c05516979dd746f6a4ded78dafadb07bb7 /app-emulation/emul-linux-x86-java | |
parent | Stable on Alpha. (diff) | |
download | gentoo-2-e4b3805e1059f0c44ecf47629a625b503cf277d9.tar.gz gentoo-2-e4b3805e1059f0c44ecf47629a625b503cf277d9.tar.bz2 gentoo-2-e4b3805e1059f0c44ecf47629a625b503cf277d9.zip |
Added 1.6.0 version of emul package, providing a 1.6 plugin for amd64
(Portage version: 2.1.2-r1)
Diffstat (limited to 'app-emulation/emul-linux-x86-java')
6 files changed, 434 insertions, 2 deletions
diff --git a/app-emulation/emul-linux-x86-java/ChangeLog b/app-emulation/emul-linux-x86-java/ChangeLog index 86d71e3416f6..4c16836b91b4 100644 --- a/app-emulation/emul-linux-x86-java/ChangeLog +++ b/app-emulation/emul-linux-x86-java/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for app-emulation/emul-linux-x86-java # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/emul-linux-x86-java/ChangeLog,v 1.15 2007/01/26 00:54:15 wltjr Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-emulation/emul-linux-x86-java/ChangeLog,v 1.16 2007/01/26 01:46:38 wltjr Exp $ + +*emul-linux-x86-java-1.6.0 (26 Jan 2007) + + 26 Jan 2007; William L. Thomson Jr. <wltjr@gentoo.org> + +files/emul-linux-x86-java-1.6.env, +files/construct-1.6.sh, + files/construct.sh, +emul-linux-x86-java-1.6.0.ebuild: + Added 1.6.0 version of emul package, providing a 1.6 plugin for amd64 *emul-linux-x86-java-1.5.0.10 (26 Jan 2007) diff --git a/app-emulation/emul-linux-x86-java/emul-linux-x86-java-1.6.0.ebuild b/app-emulation/emul-linux-x86-java/emul-linux-x86-java-1.6.0.ebuild new file mode 100644 index 000000000000..2724ae14e5f2 --- /dev/null +++ b/app-emulation/emul-linux-x86-java/emul-linux-x86-java-1.6.0.ebuild @@ -0,0 +1,133 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/emul-linux-x86-java/emul-linux-x86-java-1.6.0.ebuild,v 1.1 2007/01/26 01:46:38 wltjr Exp $ + +inherit java-vm-2 eutils + +#MY_PVL=${PV%.*}_${PV##*.} +#MY_PVA=${PV//./_} + +#At="jdk-${MY_PVA}-dlj-linux-i586.bin" +At="jdk-6-dlj-linux-i586.bin" +DESCRIPTION="32bit version Sun's J2SE Development Kit" +HOMEPAGE="http://java.sun.com/j2se/1.6.0/" +SRC_URI="http://download.java.net/dlj/binaries/${At}" + +SLOT="1.6" +LICENSE="dlj-1.1" +KEYWORDS="-* ~amd64" +RESTRICT="nostrip" +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" + +QA_TEXTRELS_amd64="opt/${P}/lib/i386/motif21/libmawt.so + opt/${P}/lib/i386/libdeploy.so" + +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-${SLOT}.sh bundled-jdk sun-jdk-${PV} ${P} || die "construct-${SLOT}.sh failed" + + ${S}/bin/java -client -Xshare:dump +} + +src_install() { + local dirs="bin lib man javaws plugin" + dodir /opt/${P} + + for i in $dirs ; do + cp -pPR $i ${D}/opt/${P}/ || die "failed to copy" + done + dodoc 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 + + install_mozilla_plugin /opt/${P}/plugin/i386/$plugin_dir/libjavaplugin_oji.so + fi + + # 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." +} diff --git a/app-emulation/emul-linux-x86-java/files/construct-1.6.sh b/app-emulation/emul-linux-x86-java/files/construct-1.6.sh new file mode 100644 index 000000000000..39c7b911fe19 --- /dev/null +++ b/app-emulation/emul-linux-x86-java/files/construct-1.6.sh @@ -0,0 +1,273 @@ +#!/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="${T}/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/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/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="${T}/jdk.bin.comm.txt" +cat <<EOF > $jdkcomm +bin/ControlPanel +bin/java +bin/javaws +bin/keytool +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/app-emulation/emul-linux-x86-java/files/construct.sh b/app-emulation/emul-linux-x86-java/files/construct.sh index 3f5f6d45eb1a..7ee0e42729bc 100644 --- a/app-emulation/emul-linux-x86-java/files/construct.sh +++ b/app-emulation/emul-linux-x86-java/files/construct.sh @@ -228,7 +228,7 @@ EOF elimdups() { echo "eliminating duplication between the JDK and JDK/jre..." - jdkcomm="${T}/tmp/jdk.bin.comm.txt" + jdkcomm="${T}/jdk.bin.comm.txt" cat <<EOF > $jdkcomm bin/ControlPanel bin/java diff --git a/app-emulation/emul-linux-x86-java/files/digest-emul-linux-x86-java-1.6.0 b/app-emulation/emul-linux-x86-java/files/digest-emul-linux-x86-java-1.6.0 new file mode 100644 index 000000000000..451ffa45a63d --- /dev/null +++ b/app-emulation/emul-linux-x86-java/files/digest-emul-linux-x86-java-1.6.0 @@ -0,0 +1,3 @@ +MD5 f4481c4e064cec06a65d7751d9105c6d jdk-6-dlj-linux-i586.bin 62718862 +RMD160 4ff9f1f82b20f0dbd792e6765c02d87749e00aac jdk-6-dlj-linux-i586.bin 62718862 +SHA256 1c4f98edb6c1b379807d9dab61971c0271b2b4cf1f1be914cc85354744408467 jdk-6-dlj-linux-i586.bin 62718862 diff --git a/app-emulation/emul-linux-x86-java/files/emul-linux-x86-java-1.6.env b/app-emulation/emul-linux-x86-java/files/emul-linux-x86-java-1.6.env new file mode 100644 index 000000000000..f5f3c307c5bc --- /dev/null +++ b/app-emulation/emul-linux-x86-java/files/emul-linux-x86-java-1.6.env @@ -0,0 +1,16 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/emul-linux-x86-java/files/emul-linux-x86-java-1.6.env,v 1.1 2007/01/26 01:46:38 wltjr Exp $ + +VERSION="Sun 32bit JRE @PV@" +JAVA_HOME=/opt/@P@ +JRE_HOME=/opt/@P@ +PATH="${JAVA_HOME}/bin:${JAVA_HOME}/javaws" +ROOTPATH="${JAVA_HOME}/bin:${JAVA_HOME}/javaws" +LDPATH="${JAVA_HOME}/lib/i386/:${JAVA_HOME}/lib/i386/native_threads/:${JAVA_HOME}/lib/i386/xawt/:${JAVA_HOME}/lib/i386/server/" +MANPATH="/opt/@P@/man" +PROVIDES_TYPE="JRE" +PROVIDES_VERSION="1.6" +BOOTCLASSPATH="${JAVA_HOME}/lib/rt.jar:${JAVA_HOME}/lib/i18n.jar:${JAVA_HOME}/lib/sunrsasign.jar:${JAVA_HOME}/lib/jsse.jar:${JAVA_HOME}/lib/jce.jar:${JAVA_HOME}/lib/charsets.jar" +GENERATION="2" +ENV_VARS="JAVA_HOME JRE_HOME PATH ROOTPATH LDPATH MANPATH" |