diff dev-java/sun-jdk/sun-jdk-1.4.2.19.ebuild @ 146:44698527bb83

preserve sun-jdk-1.4 from the offical portage
author Dirk Olmes <dirk@xanthippe.ping.de>
date Wed, 18 Nov 2009 10:35:12 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dev-java/sun-jdk/sun-jdk-1.4.2.19.ebuild	Wed Nov 18 10:35:12 2009 +0100
@@ -0,0 +1,169 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-java/sun-jdk/sun-jdk-1.4.2.19.ebuild,v 1.4 2009/05/29 20:30:58 caster Exp $
+
+JAVA_SUPPORTS_GENERATION_1="true"
+inherit pax-utils java-vm-2 eutils
+
+MY_PV=${PV%.*}_${PV##*.}
+MY_PN=j2sdk
+MY_P=${MY_PN}${MY_PV}
+MY_PVB=${PV%.*}
+
+At="j2sdk-${PV//./_}-linux-i586.bin"
+jce_policy="jce_policy-${MY_PVB//./_}.zip"
+
+S="${WORKDIR}/${MY_P}"
+DESCRIPTION="Sun's Java SE Development Kit"
+HOMEPAGE="http://java.sun.com/j2se/1.4.2/"
+SRC_URI="x86? ( ${At} )
+		jce? ( ${jce_policy} )"
+SLOT="1.4"
+LICENSE="sun-bcla-java-vm"
+KEYWORDS="x86"
+# files are prestripped
+RESTRICT="fetch strip"
+IUSE="X alsa doc examples jce nsplugin odbc"
+
+DEPEND="sys-apps/sed
+	app-arch/unzip"
+
+RDEPEND="
+	alsa? ( media-libs/alsa-lib )
+	doc? ( =dev-java/java-sdk-docs-1.4.2* )
+	X? (
+		x11-libs/libXext
+		x11-libs/libXi
+		x11-libs/libXp
+		x11-libs/libXtst
+		x11-libs/libXt
+		x11-libs/libX11
+	)
+	odbc? ( dev-db/unixODBC )"
+
+JAVA_PROVIDE="jdbc-stdext"
+
+DL_PREFIX="https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef="
+DOWNLOAD_URL="${DL_PREFIX}${MY_PN}-${MY_PV}-oth-JPR@CDS-CDS_Developer"
+DOWNLOAD_URL_JCE="${DL_PREFIX}7503-jce-1.4.2-oth-JPR@CDS-CDS_Developer"
+
+QA_TEXTRELS_x86="opt/${P}/jre/lib/i386/libawt.so
+	opt/${P}/jre/plugin/i386/ns4/libjavaplugin.so
+	opt/${P}/jre/plugin/i386/ns610/libjavaplugin_oji.so
+	opt/${P}/jre/plugin/i386/ns610-gcc32/libjavaplugin_oji.so"
+QA_DT_HASH="opt/${P}/.*"
+
+pkg_nofetch() {
+	einfo "Please download ${At} from:"
+	einfo ${DOWNLOAD_URL}
+	einfo "and move it to ${DISTDIR}"
+	if use jce; then
+		echo
+		einfo "Also download ${jce_policy} from:"
+		einfo ${DOWNLOAD_URL_JCE}
+		einfo "Java(TM) Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files"
+		einfo "and move it to ${DISTDIR}"
+	fi
+}
+
+src_unpack() {
+	if [ ! -r "${DISTDIR}/${At}" ]; then
+		die "cannot read ${At}. Please check the permission and try again."
+	fi
+	if use jce; then
+		if [ ! -r "${DISTDIR}/${jce_policy}" ]; then
+			die "cannot read ${jce_policy}. Please check the permission and try again."
+		fi
+	fi
+	#Search for the ELF Header
+	testExp=$(echo -e '\0177\0105\0114\0106\0001\0001\0001')
+	startAt=`grep -aonm 1 ${testExp}  ${DISTDIR}/${At} | cut -d: -f1`
+	tail -n +${startAt} "${DISTDIR}/${At}" > install.sfx
+	chmod +x install.sfx
+	./install.sfx || die
+	rm install.sfx
+
+	if [[ -f ${S}/lib/unpack ]]; then
+		UNPACK_CMD=${S}/lib/unpack
+		chmod +x $UNPACK_CMD
+		sed -i 's#/tmp/unpack.log#/dev/null\x00\x00\x00\x00\x00\x00#g' $UNPACK_CMD
+		local PACKED_JARS="lib/tools.jar jre/lib/rt.jar jre/lib/jsse.jar \
+			jre/lib/charsets.jar jre/lib/ext/localedata.jar jre/lib/plugin.jar \
+			jre/javaws/javaws.jar"
+		for i in $PACKED_JARS; do
+			PACK_FILE=${S}/`dirname $i`/`basename $i .jar`.pack
+			if [ -f ${PACK_FILE} ]; then
+				echo "	unpacking: $i"
+				$UNPACK_CMD ${PACK_FILE} "${S}"/$i
+				rm -f ${PACK_FILE}
+			fi
+		done
+	fi
+}
+
+src_install() {
+	local dirs="bin include jre lib man"
+	dodir /opt/${P}
+
+	cp -dPR ${dirs} "${D}/opt/${P}/"
+
+	# Set PaX markings on all JDK/JRE executables to allow code-generation on
+	# the heap by the JIT compiler.
+	pax-mark srpm $(list-paxables "${D}"/opt/${P}/{,/jre}/bin/*)
+
+	dodoc COPYRIGHT README THIRDPARTYLICENSEREADME.txt || die
+	dohtml README.html || die
+	if use examples; then
+		cp -pPR demo "${D}/opt/${P}/" || die
+	fi
+
+	cp -pPR src.zip "${D}/opt/${P}/" || die
+
+	if use jce ; then
+		# Using unlimited jce while still retaining the strong jce
+		# May have repercussions when you find you cannot symlink libraries
+		# in classpaths.
+		cd "${D}/opt/${P}/jre/lib/security"
+		unzip "${DISTDIR}/${jce_policy}"
+		mv jce unlimited-jce
+		dodir /opt/${P}/jre/lib/security/strong-jce
+		mv "${D}/opt/${P}/jre/lib/security/US_export_policy.jar" \
+			"${D}/opt/${P}/jre/lib/security/strong-jce" || die
+		mv "${D}/opt/${P}/jre/lib/security/local_policy.jar" \
+			"${D}/opt/${P}/jre/lib/security/strong-jce" || die
+		dosym /opt/${P}/jre/lib/security/unlimited-jce/US_export_policy.jar /opt/${P}/jre/lib/security/
+		dosym /opt/${P}/jre/lib/security/unlimited-jce/local_policy.jar /opt/${P}/jre/lib/security/
+	fi
+
+	if use nsplugin; then
+		local plugin_dir="ns610"
+		if has_version '>=sys-devel/gcc-3.2' ; then
+			plugin_dir="ns610-gcc32"
+		fi
+
+		install_mozilla_plugin /opt/${P}/jre/plugin/i386/${plugin_dir}/libjavaplugin_oji.so
+	fi
+
+	# bug #147259
+	dosym ../jre/javaws/javaws /opt/${P}/bin/javaws
+	dosym ../javaws/javaws /opt/${P}/jre/bin/javaws
+
+	# create dir for system preferences
+	dodir /opt/${P}/.systemPrefs
+	# Create files used as storage for system preferences.
+	touch "${D}/opt/${P}/.systemPrefs/.system.lock"
+	chmod 644 "${D}/opt/${P}/.systemPrefs/.system.lock"
+	touch "${D}/opt/${P}/.systemPrefs/.systemRootModFile"
+	chmod 644 "${D}/opt/${P}/.systemPrefs/.systemRootModFile"
+
+	# 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}/jre/plugin/desktop/sun_java.desktop" > \
+		"${T}/sun_java-${SLOT}.desktop"
+
+	domenu "${T}/sun_java-${SLOT}.desktop"
+
+	set_java_env
+	java-vm_revdep-mask
+}