Skip to content

Commit

Permalink
FL-2041: add oracle security updates
Browse files Browse the repository at this point in the history
  • Loading branch information
Oleg Vinichenko committed Jan 29, 2015
1 parent 195cb8b commit 7e56813
Show file tree
Hide file tree
Showing 6 changed files with 815 additions and 0 deletions.
4 changes: 4 additions & 0 deletions dev-java/oracle-jdk-bin/Manifest
Expand Up @@ -14,6 +14,8 @@ DIST jdk-7u72-linux-i586-demos.tar.gz 20810736 SHA256 8d192e284f43e8089bd3dfdfc9
DIST jdk-7u72-linux-i586.tar.gz 143400874 SHA256 0376c8a0280752b4389b6cb193d463826c55c821587d0278b7fea665a140f407 SHA512 eb20699405fb2d763c6b492bd2b7768e7949c35f77789ba14388aec34cb8f0886bb5375fdbbd4421e97d9528975a84c096ec348d5d7d47a3fd548c82d56410fe WHIRLPOOL 95414901f033108d05811dd72b06b4c1da368a26ead81f2ceb0524664d9671c9d678c1ade0c427c8ed8e6529ed54d1dc4106d8db318606bfb27bfca49b25330b
DIST jdk-7u72-linux-x64-demos.tar.gz 20884819 SHA256 677419afacad48b37d275fa0034b91d9541e2ad7b760853cf412d26ef5b84e52 SHA512 ded5a6be5b6c6dfe2fe41a04f325e677868ae680c9f0bbaf7f76274b29d75ecf4656d3245b45ab55a843b83136f9e5eb47ac5e021921ab16db30de0ee035a749 WHIRLPOOL e12aed5547f0a9c233a0680aa8567fb4fea6ed19aaa1f73a6fe33edbd9d76f4dcd435d4e204b01212c78f1f34f5e51e3d6a36e41481398cd87c504b4baece5f3
DIST jdk-7u72-linux-x64.tar.gz 142225987 SHA256 dd1d438e1b7d4b9bb5ea4659f2103b577d1568da51b53f97b736b3232eeade8e SHA512 2eb48ece34db591bb0caf70caa06a165cd37ed26c7c4a421ad715962672cf0582e9c74c82c70a8ef0ad3eaf6ff7267e37e0d47e9e9be6eb35ef5fe961fc08aba WHIRLPOOL e5a62124d9b2f8bc1b574af79052f4e1ce359d3fdbacd2195fcdfd1b4421864bf2f059275896451b31f3149a8246f85608e4d11dd773f6df3324a5d61d1a15ea
DIST jdk-7u76-linux-i586.tar.gz 143448263 SHA256 c339ac04e88b2e0d61c1a1a9f21541f3ce6082fdb38500cf2b8bb0ac5eb9a814 SHA512 c139573596a219ef25edcebc807d3d9f83c9cd2282237df2265c5ff88a186ca622a61c3f6e48df8ea0a75e1bb56974aac4576cb1f04615c40775daf4678bc68d WHIRLPOOL d9c3ec5748e35bd46c0874f029889573fa7cd083c23320d117dd50d25e8179220186290ffa40d4d1eace8266fad7edefd18e6741f96c17dda29f7b35ed30dec6
DIST jdk-7u76-linux-x64.tar.gz 142249690 SHA256 ce8ff4fed2cd16aea432edf8e94f21ccfe29e9d4a659bbbef3551982769e0c8c SHA512 f797b02d4018dc313ecb3237a2b1450df81360d1079a04905ae1a8b13a83e7f883a314b3dcba34c9f0c2da092fe7f2c38f270e42ef8deb966cb941d1be6dffa0 WHIRLPOOL e73d21769893d486c645240b6fb4df331ed55383dc82ebc9ea0e92ab487bc1b3d673532f98e2d4048ec4348eb2e16f74f8e6390da9dc0c9d3c5320df90129712
DIST jdk-8u11-linux-i586-demos.tar.gz 55209514 SHA256 5caba13473af9121542e4b308e3622bde02ced2eceb942a29fd94b339f594f7c SHA512 e29a5b9bb603aac4ccadeebb1ebf6e8023e535831958135297ed4e025260f31131c16e240340d66dbbb8cf1c240806d927d3ae7259fa1c69ddddd43d52a064e6 WHIRLPOOL c72e080c6537d4813ff5e1379f193339290ff36cbae6d174cd18d8ed9f0a874f0d248c94bda0eca7beb31d84cc38996d56c6d3354c2474a25586b1ff3ef37401
DIST jdk-8u11-linux-i586.tar.gz 159958812 SHA256 3981e6fb7d35b20ac3c05ec56fb3798ac1cd872a9e968bb3d77a718af7b146d1 SHA512 739b843b00223042599586e44f79c9e52f974dc945b8d0e0097bcc0de322dae227cb27b7dd85c8757abea5056ec2c4f13d006c1f473ecd4c6ad72f171b4c2718 WHIRLPOOL db758325edf361df23db6e49a72e8e235e36342fdada99fb437514d471bb03453c9dfe5b178578a30f53db8b6e3702d636209b1181834a9c6b8b6319a4a4656f
DIST jdk-8u11-linux-x64-demos.tar.gz 55259045 SHA256 38d2a5905031ade3b8c49d3629c11ddbd9a720c3a3e0316ff1f6cb4ab937c304 SHA512 00290bd23910b4ed6ccd83b6cc09a93c8daf0887db2438b18af963bc1e8012d4a78b22704175ced38f7094eb4225f44aaa41ff8f7dd574ae44c8b5684f57053d WHIRLPOOL 1c43539d7069fbcd895749d5b3c2765c88fa80abe88b2bdf86d33e631712b559aa004f3a8c19a12615b447100362474efa40e19b746a1b278912cae189eca346
Expand All @@ -22,5 +24,7 @@ DIST jdk-8u25-linux-i586-demos.tar.gz 61359482 SHA256 280e38297691ab144221032705
DIST jdk-8u25-linux-i586.tar.gz 162406866 SHA256 17f396a541db09c732032185f10f9c6eb42ac7b5776814602342de9655b2e0e2 SHA512 3579d9373ce73f41c436a054e6f4f0c2a4b3aaebe09c53285550d09d3614c48c1a5520f0bee2f2ba128dd66f1e86dcd64ae6191394e7c4c4d8a999dfc0e0dc02 WHIRLPOOL 66bc6c071737cd81b780a1ae4b49fd67dbf91d2d9d4c7208f6904dc74f349fb1f09676acfac306773246d101f265a30817db6479c64de82e979237c894cbc685
DIST jdk-8u25-linux-x64-demos.tar.gz 61392581 SHA256 0e45b9a38437149f05bfed78a6fba7258549a8033c2a2efe38e5a056f26ea198 SHA512 ffe2079f2df35fd72ffaa8b8af435e960b90e909b23ce1020ca68ed88f76f6cffa29f136544768224643ca04c485f98961114361399e19f668a3d02c0f958ec2 WHIRLPOOL 57d9fbd52e8f6cd9c54670d9aa6f2e49d13bc2efe7a80fd816d660e555c852ff550d5d9eec01e77c4a345e3d2b34d714ae1996bbf2eef81aff4f75a9b621cf1b
DIST jdk-8u25-linux-x64.tar.gz 160872482 SHA256 057f660799be2307d2eefa694da9d3fce8e165807948f5bcaa04f72845d2f529 SHA512 293f3f28e0f46dc15a2380016f7a3cb64f5cd7ffca191c648644fd396690ef82b034a74273e1de4bc0d2260695fa13a0785872084dd00e30ede831206931667b WHIRLPOOL 9d353ccb6c83674ec939b89564112d73b9b5706b44531333716fbec3d2a419690a68d8bb6474c91a7f15cb367a01d64903c3c1da7e9a887c907c0878001edfbe
DIST jdk-8u31-linux-i586.tar.gz 162439063 SHA256 1add6f526d3f4f43ab37508236f80e19dcb8e1d8faa1e42e668234067cc223eb SHA512 798e51eb963d4a8000f53ab0798a9946472918673b5ff7c9902bdd9499775c3538d263b8d13c9bb9143918187ee654b53a84fd3a743ff6da87d1c2637b57d7de WHIRLPOOL 13c63d2e22d2d37239cc461a2be19c6b863d06d9d3531630615f9a89b87779fa79097374f5dccd7ea699b1b6c3e5531a3b063536d97df234caaaa9cf162e1343
DIST jdk-8u31-linux-x64.tar.gz 160901914 SHA256 efe015e8402064bce298160538aa1c18470b78603257784ec6cd07ddfa98e437 SHA512 848b45316f27b6a5fc6fe63bcaab04520755978dfcdc6340a458e8b432d2e2cf09359c18bbba6e0aa1a994f53d4b03140f59cfb1c401d6cacca190234ede98b3 WHIRLPOOL 08639d28a1c8264939ed5ef194d4bf508f59225dfdc22cc1645bf2335c19d612f342a806e057c6b954719e2cb71628b49a8ea360675bf808f499b5dd34f63b8f
DIST jdk-8u6-linux-arm-vfp-hflt-demos.tar.gz 9366870 SHA256 5e0bfe12a99945a9bf80de037c376e7ed1101d6acd69409dec3c8f7fb068f600 SHA512 960c1d6c69ae2ba167ecc4e870644f7710ea8780c175a0feb4743c8101673ce02b831f3bbc0cc597e0c14631f2f2cfa40d9972350c966e160e960fb83c1c9e8a WHIRLPOOL b18b1f2095fbc554a2a6034d28ba438458c3141172419a191d3b69c33229cdf45a2374c84cfed5c87191f30823d74443511f75a883afc6fee660f12cc10c0f82
DIST jdk-8u6-linux-arm-vfp-hflt.tar.gz 87885180 SHA256 348252453db819a4cda146753b54b86ebd32191e47ff9f9be671e88aaf919d7c SHA512 176a3682b8e9dd6f14501546d99334d046d1fd099f72e1e32e3368b623129dfefdf0da184e9f5e210054712bd5cf7b0139816cefe64a359b3e352777b753f84c WHIRLPOOL 650a1188b268f2bc8f8b42cb365a2e61fdb5d49823623c06427c122c4b6b50f3e806d37f9588cdf6b2a4e1f23872f15898e1359c0dc864d4b7f6ce22905da2d4
252 changes: 252 additions & 0 deletions dev-java/oracle-jdk-bin/oracle-jdk-bin-1.7.0.76.ebuild
@@ -0,0 +1,252 @@
# Distributed under the terms of the GNU General Public License v2

EAPI="5"

inherit eutils java-vm-2 prefix versionator

JDK_URI="http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html"
JCE_URI="http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html"

FX_VERSION="2_2_72"

MY_PV="$(get_version_component_range 2)u$(get_version_component_range 4)"
S_PV="$(replace_version_separator 3 '_')"

AT_x86="jdk-${MY_PV}-linux-i586.tar.gz"
AT_amd64="jdk-${MY_PV}-linux-x64.tar.gz"
#AT_arm_hflt="jdk-${MY_PV}-linux-arm-vfp-hflt.tar.gz"
AT_arm_hflt="jdk-7u60-linux-arm-vfp-hflt.tar.gz"
#AT_arm_sflt="jdk-${MY_PV}-linux-arm-vfp-sflt.tar.gz"
AT_arm_sflt="jdk-7u60-linux-arm-vfp-sflt.tar.gz"

FXDEMOS_linux="javafx_samples-${FX_VERSION}-linux.zip"

#DEMOS_x86="jdk-${MY_PV}-linux-i586-demos.tar.gz"
#DEMOS_amd64="jdk-${MY_PV}-linux-x64-demos.tar.gz"
#DEMOS_arm_hflt="jdk-${MY_PV}-linux-arm-vfp-hflt-demos.tar.gz"
#DEMOS_arm_hflt="jdk-7u60-linux-arm-vfp-hflt-demos.tar.gz"
#DEMOS_arm_sflt="jdk-${MY_PV}-linux-arm-vfp-sflt-demos.tar.gz"
DEMOS_arm_sflt="jdk-7u60-linux-arm-vfp-sflt-demos.tar.gz"

JCE_DIR="UnlimitedJCEPolicy"
JCE_FILE="${JCE_DIR}JDK7.zip"

DESCRIPTION="Oracle's Java SE Development Kit"
HOMEPAGE="http://www.oracle.com/technetwork/java/javase/"
MIR_URI="http://build.funtoo.org/distfiles/oracle-java"
SRC_URI="
amd64? ( ${MIR_URI}/${AT_amd64} )
x86? ( ${MIR_URI}/${AT_x86} )
arm? ( ${MIR_URI}/${AT_arm_sflt} ${MIR_URI}/${AT_arm_hflt} )
jce? ( ${MIR_URI}/${JCE_FILE} )"

LICENSE="Oracle-BCLA-JavaSE"
SLOT="1.7"
KEYWORDS="*"
IUSE="+X alsa aqua derby doc +fontconfig jce nsplugin pax_kernel selinux source"

RESTRICT="mirror strip"
QA_PREBUILT="*"

COMMON_DEP="
selinux? ( sec-policy/selinux-java )"
RDEPEND="${COMMON_DEP}
X? ( !aqua? (
x11-libs/libX11
x11-libs/libXext
x11-libs/libXi
x11-libs/libXrender
x11-libs/libXtst
) )
alsa? ( media-libs/alsa-lib )
doc? ( dev-java/java-sdk-docs:1.7 )
fontconfig? ( media-libs/fontconfig )
!prefix? ( sys-libs/glibc )"
# scanelf won't create a PaX header, so depend on paxctl to avoid fallback
# marking. #427642
DEPEND="${COMMON_DEP}
jce? ( app-arch/unzip )
pax_kernel? ( sys-apps/paxctl )"

S="${WORKDIR}"/jdk${S_PV}

check_tarballs_available() {
local uri=$1; shift
local dl= unavailable=
for dl in "${@}"; do
[[ ! -f "${DISTDIR}/${dl}" ]] && unavailable+=" ${dl}"
done

if [[ -n "${unavailable}" ]]; then
if [[ -z ${_check_tarballs_available_once} ]]; then
einfo
einfo "Oracle requires you to download the needed files manually after"
einfo "accepting their license through a javascript capable web browser."
einfo
_check_tarballs_available_once=1
fi
einfo "Download the following files:"
for dl in ${unavailable}; do
einfo " ${dl}"
done
einfo "at '${uri}'"
einfo "and move them to '${DISTDIR}'"
einfo
fi
}

src_unpack() {
# Special case for ARM soft VS hard float.
if use arm ; then
if [[ ${CHOST} == *-hardfloat-* ]] ; then
unpack jdk-${MY_PV}-linux-arm-vfp-hflt.tar.gz
else
unpack jdk-${MY_PV}-linux-arm-vfp-sflt.tar.gz
fi
use jce && unpack ${JCE_FILE}
else
default
fi
}

src_prepare() {
if use jce; then
mv "${WORKDIR}"/${JCE_DIR} "${S}"/jre/lib/security/ || die
fi
}

src_install() {
local dest="/opt/${P}"
local ddest="${ED}${dest}"

# Create files used as storage for system preferences.
mkdir jre/.systemPrefs || die
touch jre/.systemPrefs/.system.lock || die
touch jre/.systemPrefs/.systemRootModFile || die

# We should not need the ancient plugin for Firefox 2 anymore, plus it has
# writable executable segments
if use x86; then
rm -vf {,jre/}lib/i386/libjavaplugin_oji.so \
{,jre/}lib/i386/libjavaplugin_nscp*.so
rm -vrf jre/plugin/i386
fi
# Without nsplugin flag, also remove the new plugin
local arch=${ARCH};
use x86 && arch=i386;
if ! use nsplugin; then
rm -vf {,jre/}lib/${arch}/libnpjp2.so \
{,jre/}lib/${arch}/libjavaplugin_jni.so
fi

dodoc COPYRIGHT
dohtml README.html

dodir "${dest}"
cp -pPR bin include jre lib man "${ddest}" || die

if use derby; then
cp -pPR db "${ddest}" || die
fi

if use jce; then
dodir "${dest}"/jre/lib/security/strong-jce
mv "${ddest}"/jre/lib/security/US_export_policy.jar \
"${ddest}"/jre/lib/security/strong-jce || die
mv "${ddest}"/jre/lib/security/local_policy.jar \
"${ddest}"/jre/lib/security/strong-jce || die
dosym "${dest}"/jre/lib/security/${JCE_DIR}/US_export_policy.jar \
"${dest}"/jre/lib/security/US_export_policy.jar
dosym "${dest}"/jre/lib/security/${JCE_DIR}/local_policy.jar \
"${dest}"/jre/lib/security/local_policy.jar
fi

if use nsplugin; then
install_mozilla_plugin "${dest}"/jre/lib/${arch}/libnpjp2.so
fi

if use source; then
cp -p src.zip "${ddest}" || die
fi

if use !arm && use !x86-macos && use !x64-macos ; then
# Install desktop file for the Java Control Panel.
# Using ${PN}-${SLOT} to prevent file collision with jre and or
# other slots. make_desktop_entry can't be used as ${P} would
# end up in filename.
newicon jre/lib/desktop/icons/hicolor/48x48/apps/sun-jcontrol.png \
sun-jcontrol-${PN}-${SLOT}.png || die
sed -e "s#Name=.*#Name=Java Control Panel for Oracle JDK ${SLOT}#" \
-e "s#Exec=.*#Exec=/opt/${P}/jre/bin/jcontrol#" \
-e "s#Icon=.*#Icon=sun-jcontrol-${PN}-${SLOT}#" \
-e "s#Application;##" \
-e "/Encoding/d" \
jre/lib/desktop/applications/sun_java.desktop \
> "${T}"/jcontrol-${PN}-${SLOT}.desktop || die
domenu "${T}"/jcontrol-${PN}-${SLOT}.desktop
fi

# Prune all fontconfig files so libfontconfig will be used and only install
# a Gentoo specific one if fontconfig is disabled.
# http://docs.oracle.com/javase/7/docs/technotes/guides/intl/fontconfig.html
rm "${ddest}"/jre/lib/fontconfig.*
if ! use fontconfig; then
cp "${FILESDIR}"/fontconfig.Gentoo.properties "${T}"/fontconfig.properties || die
eprefixify "${T}"/fontconfig.properties
insinto "${dest}"/jre/lib/
doins "${T}"/fontconfig.properties
fi

# This needs to be done before CDS - #215225
java-vm_set-pax-markings "${ddest}"

# see bug #207282
einfo "Creating the Class Data Sharing archives"
case ${ARCH} in
arm|ia64)
${ddest}/bin/java -client -Xshare:dump || die
;;
x86)
${ddest}/bin/java -client -Xshare:dump || die
# limit heap size for large memory on x86 #467518
# this is a workaround and shouldn't be needed.
${ddest}/bin/java -server -Xms64m -Xmx64m -Xshare:dump || die
;;
*)
${ddest}/bin/java -server -Xshare:dump || die
;;
esac

# Remove empty dirs we might have copied
find "${D}" -type d -empty -exec rmdir -v {} + || die

if use x86-macos || use x64-macos ; then
# fix misc install_name issues
pushd "${ddest}"/jre/lib > /dev/null || die
local lib needed nlib npath
for lib in \
libJObjC libdecora-sse libglass libjavafx-{font,iio} \
libjfxmedia libjfxwebkit libprism-es2 ;
do
lib=${lib}.dylib
einfo "Fixing self-reference of ${lib}"
install_name_tool \
-id "${EPREFIX}${dest}/jre/lib/${lib}" \
"${lib}"
done
popd > /dev/null
for nlib in jdk1{5,6} ; do
install_name_tool -change \
/usr/lib/libgcc_s_ppc64.1.dylib \
$($(tc-getCC) -print-file-name=libgcc_s_ppc64.1.dylib) \
"${ddest}"/lib/visualvm/profiler/lib/deployed/${nlib}/mac/libprofilerinterface.jnilib
install_name_tool -id \
"${EPREFIX}${dest}"/lib/visualvm/profiler/lib/deployed/${nlib}/mac/libprofilerinterface.jnilib \
"${ddest}"/lib/visualvm/profiler/lib/deployed/${nlib}/mac/libprofilerinterface.jnilib
done
fi

set_java_env
java-vm_revdep-mask
java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
}

0 comments on commit 7e56813

Please sign in to comment.