summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Thomson <wltjr@gentoo.org>2007-01-26 01:46:38 +0000
committerWilliam Thomson <wltjr@gentoo.org>2007-01-26 01:46:38 +0000
commite4b3805e1059f0c44ecf47629a625b503cf277d9 (patch)
tree00ea86c05516979dd746f6a4ded78dafadb07bb7 /app-emulation/emul-linux-x86-java
parentStable on Alpha. (diff)
downloadgentoo-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')
-rw-r--r--app-emulation/emul-linux-x86-java/ChangeLog9
-rw-r--r--app-emulation/emul-linux-x86-java/emul-linux-x86-java-1.6.0.ebuild133
-rw-r--r--app-emulation/emul-linux-x86-java/files/construct-1.6.sh273
-rw-r--r--app-emulation/emul-linux-x86-java/files/construct.sh2
-rw-r--r--app-emulation/emul-linux-x86-java/files/digest-emul-linux-x86-java-1.6.03
-rw-r--r--app-emulation/emul-linux-x86-java/files/emul-linux-x86-java-1.6.env16
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"