| # Copyright 1999-2016 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=4 |
| |
| JAVA_PKG_IUSE="readline source doc servletapi mysql postgres examples oracle" |
| #jdnc |
| |
| inherit base java-pkg-2 java-ant-2 |
| |
| MY_PV="installer-2.2.1" |
| PYVER="2.2.3" |
| |
| DESCRIPTION="An implementation of Python written in Java" |
| HOMEPAGE="http://www.jython.org" |
| SRC_URI="http://www.python.org/ftp/python/${PYVER%_*}/Python-${PYVER}.tgz |
| mirror://sourceforge/${PN}/${PN}_${MY_PV}.jar" |
| |
| LICENSE="PSF-2" |
| SLOT="0" |
| KEYWORDS="amd64 ppc64 x86" |
| IUSE="" |
| |
| CDEPEND=" |
| dev-java/jakarta-oro:2.0 |
| readline? ( >=dev-java/libreadline-java-0.8.0:0 ) |
| mysql? ( >=dev-java/jdbc-mysql-3.1:0 ) |
| postgres? ( dev-java/jdbc-postgresql:0 ) |
| oracle? ( dev-java/jdbc-oracle-bin:10.2 ) |
| servletapi? ( java-virtuals/servlet-api:2.5 ) |
| !<=dev-java/freemarker-2.3.10" |
| RDEPEND="${CDEPEND} |
| >=virtual/jre-1.5" |
| DEPEND="${CDEPEND} |
| >=virtual/jdk-1.5 |
| dev-java/javacc" |
| |
| S="${WORKDIR}" |
| |
| #Tests currently very broken. Need to investigate whether that |
| #is jython's or gentoo's doing. |
| RESTRICT="test" |
| |
| java_prepare() { |
| epatch "${FILESDIR}/${P}-build.xml.patch" |
| |
| rm -Rfv org || die "Unable to remove class files." |
| find . -iname '*.jar' | xargs rm -fv || die "Unable to remove bundled jars" |
| |
| echo javacc.jar="$(java-pkg_getjars --build-only javacc)" > ant.properties |
| |
| if use readline; then |
| echo "readline.jar=$(java-pkg_getjars libreadline-java)" >> \ |
| ant.properties |
| fi |
| if use servletapi; then |
| echo "servlet.jar=$(java-pkg_getjar --virtual servlet-api-2.5 servlet-api.jar)" \ |
| >> ant.properties |
| fi |
| if use mysql; then |
| echo "mysql.jar=$(java-pkg_getjar jdbc-mysql jdbc-mysql.jar)" \ |
| >> ant.properties |
| fi |
| |
| if use postgres; then |
| echo \ |
| "postgresql.jar=$(java-pkg_getjar jdbc-postgresql jdbc-postgresql.jar)"\ |
| >> ant.properties |
| fi |
| |
| if use oracle; then |
| echo \ |
| "oracle.jar=$(java-pkg-getjar jdbc-oracle-bin-10.2 ojdbc14.jar)" \ |
| >> ant.properties |
| fi |
| } |
| |
| src_compile() { |
| local antflags="-Dbase.path=src/java -Dsource.dir=src/java/src" |
| local pylib="Python-${PYVER}/Lib" |
| antflags="${antflags} -Dpython.lib=${pylib} -Dsvn.checkout.dir=." |
| LC_ALL=C eant ${antflags} developer-build $(use_doc javadoc) |
| } |
| |
| src_test() { |
| local antflags="-Dbase.path=src/java -Dsource.dir=src/java/src" |
| antflags="${antflags} -Dpython.home=dist" |
| local pylib="Python-${PYVER}/Lib" |
| antflags="${antflags} -Dpython.lib=${pylib}" |
| eant ${antflags} bugtest |
| } |
| |
| src_install() { |
| java-pkg_dojar "dist/${PN}.jar" |
| |
| dodoc README.txt NEWS ACKNOWLEDGMENTS |
| use doc && dohtml -r Doc/* |
| |
| local java_args="-Dpython.home=/usr/share/jython" |
| java_args="${java_args} -Dpython.cachedir=\${HOME}/.jythoncachedir" |
| |
| java-pkg_dolauncher jythonc \ |
| --main "org.python.util.jython" \ |
| --java_args "${java_args}" \ |
| --pkg_args "${java_args} /usr/share/jython/tools/jythonc/jythonc.py" |
| |
| java-pkg_dolauncher jython \ |
| --main "org.python.util.jython" \ |
| --pkg_args "${java_args}" |
| |
| insinto /usr/share/${PN} |
| doins -r dist/Lib registry |
| |
| insinto /usr/share/${PN}/tools |
| doins -r dist/Tools/* |
| |
| use doc && java-pkg_dojavadoc dist/Doc/javadoc |
| use source && java-pkg_dosrc src |
| use examples && java-pkg_doexamples dist/Demo/* |
| } |
| |
| pkg_postinst() { |
| if use readline; then |
| elog "To use readline you need to add the following to your registry" |
| elog |
| elog "python.console=org.python.util.ReadlineConsole" |
| elog "python.console.readlinelib=GnuReadline" |
| elog |
| elog "The global registry can be found in /usr/share/${PN}/registry" |
| elog "User registry in \$HOME/.jython" |
| elog "See http://www.jython.org/docs/registry.html for more information" |
| elog "" |
| fi |
| } |