mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-07-25 21:08:35 -07:00
dev-java/jython: remove vulnerable version.
Bug: https://bugs.gentoo.org/621876 Package-Manager: Portage-2.3.8, Repoman-2.3.3
This commit is contained in:
@@ -1,191 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
JAVA_PKG_IUSE="doc examples source"
|
||||
|
||||
inherit eutils java-pkg-2 java-ant-2 python-utils-r1 flag-o-matic
|
||||
|
||||
MY_PV=${PV/_beta/-b}
|
||||
MY_P=${PN}-${MY_PV}
|
||||
|
||||
DESCRIPTION="An implementation of Python written in Java"
|
||||
HOMEPAGE="http://www.jython.org"
|
||||
SRC_URI="http://search.maven.org/remotecontent?filepath=org/python/${PN}/${MY_PV}/${MY_P}-sources.jar"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="2.7"
|
||||
KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~x86-macos"
|
||||
IUSE="+readline test"
|
||||
REQUIRED_USE="test? ( readline )"
|
||||
|
||||
CDEPEND="dev-java/ant-core:0
|
||||
dev-java/antlr:3
|
||||
dev-java/netty-transport:0
|
||||
=dev-java/asm-5.0.3:4
|
||||
dev-java/commons-compress:0
|
||||
dev-java/guava:13
|
||||
>=dev-java/java-config-2.1.11-r3
|
||||
dev-java/jffi:1.2
|
||||
dev-java/jline:2
|
||||
dev-java/icu4j:52
|
||||
dev-java/jnr-constants:0
|
||||
dev-java/jnr-posix:3.0
|
||||
dev-java/jnr-netdb:1.0
|
||||
dev-java/stringtemplate:0
|
||||
dev-java/xerces:2
|
||||
java-virtuals/script-api:0
|
||||
java-virtuals/servlet-api:3.0
|
||||
readline? ( >=dev-java/libreadline-java-0.8.0:0 )"
|
||||
RDEPEND="${CDEPEND}
|
||||
>=virtual/jre-1.7"
|
||||
DEPEND="${CDEPEND}
|
||||
>=virtual/jdk-1.7
|
||||
app-arch/unzip
|
||||
test? (
|
||||
dev-java/junit:4
|
||||
dev-java/ant-junit:0
|
||||
)"
|
||||
|
||||
S=${WORKDIR}
|
||||
|
||||
RESTRICT="test"
|
||||
|
||||
JAVA_ANT_REWRITE_CLASSPATH="yes"
|
||||
EANT_GENTOO_CLASSPATH="asm-4,commons-compress,guava-13,jffi-1.2,jline-2,"
|
||||
EANT_GENTOO_CLASSPATH+="jnr-constants,script-api,servlet-api-3.0,"
|
||||
EANT_GENTOO_CLASSPATH+="stringtemplate,xerces-2,icu4j-52,netty-transport,jnr-posix-3.0"
|
||||
|
||||
JAVA_ANT_CLASSPATH_TAGS+=" java"
|
||||
|
||||
EANT_BUILD_TARGET="developer-build"
|
||||
EANT_TEST_EXTRA_ARGS="-Dpython.home=dist"
|
||||
|
||||
# jdbc-informix and jdbc-oracle-bin (requires registration) aren't exposed.
|
||||
# Uncomment and add to CDEPEND if you want either of them
|
||||
#EANT_GENTOO_CLASSPATH+=",jdbc-informix" EANT_EXTRA_ARGS+=" -Dinformix.present"
|
||||
#EANT_GENTOO_CLASSPATH+=",jdbc-oracle-bin" EANT_EXTRA_ARGS+=" -Doracle.present"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-2.5.2-distutils_scripts_location.patch
|
||||
"${FILESDIR}"/${PN}-2.5.2-respect_PYTHONPATH.patch
|
||||
"${FILESDIR}"/${PN}-2.7_beta1-ant.patch
|
||||
"${FILESDIR}"/${PN}-2.7_beta1-dont-always-recompile-classes.patch
|
||||
"${FILESDIR}"/${PN}-2.7_beta2-maxrepeat-import.patch
|
||||
"${FILESDIR}"/${PN}-2.7.0-build.xml.patch
|
||||
)
|
||||
|
||||
java_prepare() {
|
||||
find \( -name '*.jar' -o -name '*.class' \
|
||||
-o -name '*.pyc' -o -name '*.exe' \) -delete
|
||||
|
||||
epatch "${PATCHES[@]}"
|
||||
|
||||
if ! use readline; then
|
||||
rm -v src/org/python/util/ReadlineConsole.java || die
|
||||
fi
|
||||
|
||||
# needed for launchertest
|
||||
chmod +x tests/shell/test-jython.sh || die
|
||||
|
||||
# apparently this can cause problems
|
||||
append-flags -fno-stack-protector
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
use readline && EANT_GENTOO_CLASSPATH+=",libreadline-java"
|
||||
|
||||
EANT_GENTOO_CLASSPATH_EXTRA="$(java-pkg_getjars --with-dependencies antlr-3,jnr-posix-3.0)"
|
||||
EANT_GENTOO_CLASSPATH_EXTRA+=":$(java-pkg_getjars --build-only ant-core)"
|
||||
|
||||
sed -i -e "1 a\
|
||||
CLASSPATH=\"$(java-pkg_getjars "${EANT_GENTOO_CLASSPATH}"):${EANT_GENTOO_CLASSPATH_EXTRA}\"" \
|
||||
src/shell/jython || die
|
||||
|
||||
java-pkg-2_src_compile
|
||||
}
|
||||
|
||||
EANT_TEST_GENTOO_CLASSPATH="${EANT_GENTOO_CLASSPATH},junit-4"
|
||||
|
||||
src_test() {
|
||||
java-pkg-2_src_test
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local instdir=/usr/share/${PN}-${SLOT}
|
||||
|
||||
java-pkg_newjar dist/${PN}-dev.jar
|
||||
|
||||
java-pkg_register-optional-dependency jdbc-mysql
|
||||
java-pkg_register-optional-dependency jdbc-postgresql
|
||||
|
||||
insinto ${instdir}
|
||||
doins -r dist/{Lib,registry}
|
||||
|
||||
dodoc ACKNOWLEDGMENTS NEWS README.txt
|
||||
|
||||
use doc && java-pkg_dohtml -r dist/Doc/javadoc
|
||||
use source && java-pkg_dosrc src/*
|
||||
use examples && java-pkg_doexamples Demo/*
|
||||
|
||||
local java_args=(
|
||||
-Dpython.home="${EPREFIX}"/usr/share/${PN}-${SLOT}
|
||||
-Dpython.executable="${EPREFIX}"/usr/bin/jython${SLOT}
|
||||
-Dpython.cachedir="\${HOME}/.jythoncachedir"
|
||||
)
|
||||
|
||||
java-pkg_dolauncher jython${SLOT} \
|
||||
--main org.python.util.jython \
|
||||
--java_args "${java_args[*]}"
|
||||
|
||||
if use readline; then
|
||||
sed \
|
||||
-e "s/#\(python.console=org.python.util.ReadlineConsole\)/\1/" \
|
||||
-e "/#python.console.readlinelib=JavaReadline/a python.console.readlinelib=GnuReadline" \
|
||||
-i "${ED}"/usr/share/${PN}-${SLOT}/registry || die
|
||||
fi
|
||||
|
||||
# we need a wrapper to help python_optimize
|
||||
cat <<-EOF > "${T}"/jython
|
||||
exec java -cp "$(java-pkg_getjars "${EANT_GENTOO_CLASSPATH}"):${EANT_GENTOO_CLASSPATH_EXTRA}:dist/${PN}-dev.jar" \
|
||||
-Dpython.home="${ED}${instdir}" \
|
||||
-Dpython.cachedir="${T}/.jythoncachedir" \
|
||||
-Duser.home="${T}" \
|
||||
org.python.util.jython "\${@}"
|
||||
EOF
|
||||
chmod +x "${T}"/jython || die
|
||||
|
||||
local -x PYTHON="${T}"/jython
|
||||
# we can't get the path from the interpreter since it does some
|
||||
# magic that fails on non-installed copy...
|
||||
local PYTHON_SITEDIR=${EPREFIX}/usr/share/jython-${SLOT}/Lib/site-packages
|
||||
python_export jython${SLOT} EPYTHON
|
||||
|
||||
# compile tests (everything else is compiled already)
|
||||
# we're keeping it quiet since jython reports errors verbosely
|
||||
# and some of the tests are supposed to trigger compile errors
|
||||
python_optimize "${ED}${instdir}"/Lib/test &>/dev/null
|
||||
|
||||
# for python-exec
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_domodule epython.py
|
||||
|
||||
# some of the class files end up with newer timestamps than the files they
|
||||
# were generated from, make sure this doesn't happen
|
||||
find "${ED}${instdir}"/Lib/ -name '*.class' | xargs touch
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if ! has_version dev-java/jython ; then
|
||||
elog
|
||||
elog "readline can be configured in the registry:"
|
||||
elog
|
||||
elog "python.console=org.python.util.ReadlineConsole"
|
||||
elog "python.console.readlinelib=GnuReadline"
|
||||
elog
|
||||
elog "Global registry: '${EROOT}usr/share/${PN}-${SLOT}/registry'"
|
||||
elog "User registry: '~/.jython'"
|
||||
elog "See http://www.jython.org/docs/registry.html for more information."
|
||||
elog
|
||||
fi
|
||||
}
|
||||
@@ -5,9 +5,6 @@
|
||||
<email>java@gentoo.org</email>
|
||||
<name>Java</name>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="readline">Use GNU readline instead of jline</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<remote-id type="sourceforge">jython</remote-id>
|
||||
</upstream>
|
||||
|
||||
Reference in New Issue
Block a user