diff options
author | Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org> | 2010-12-13 14:11:43 +0000 |
---|---|---|
committer | Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org> | 2010-12-13 14:11:43 +0000 |
commit | b3b34b515032dc1f4877dfd9be041d83df3e23e7 (patch) | |
tree | 7c0a6a9fa0aac787ca82869732552e5c6071288b /dev-java | |
parent | Revision bump to fix crashing when using qt-4.7 (diff) | |
download | gentoo-2-b3b34b515032dc1f4877dfd9be041d83df3e23e7.tar.gz gentoo-2-b3b34b515032dc1f4877dfd9be041d83df3e23e7.tar.bz2 gentoo-2-b3b34b515032dc1f4877dfd9be041d83df3e23e7.zip |
Properly use python.eclass. Add "readline", "ssl", "threads" and "xml" USE flags. Support PYTHONDONTWRITEBYTECODE in Distutils. Rename "jython-2.5" script to "jython2.5". Respect JYTHON_SYSTEM_CACHEDIR and delete unsetting of EPYTHON in "jython2.5" script.
(Portage version: 2.2.0_alpha8/cvs/Linux x86_64)
Diffstat (limited to 'dev-java')
-rw-r--r-- | dev-java/jython/ChangeLog | 13 | ||||
-rw-r--r-- | dev-java/jython/files/jython-2.5.1-distutils_byte_compilation.patch | 48 | ||||
-rw-r--r-- | dev-java/jython/files/python-2.5.5-distutils_byte_compilation.patch | 37 | ||||
-rw-r--r-- | dev-java/jython/jython-2.5.1-r2.ebuild | 178 |
4 files changed, 275 insertions, 1 deletions
diff --git a/dev-java/jython/ChangeLog b/dev-java/jython/ChangeLog index 453cd69146c0..c022e2e6876c 100644 --- a/dev-java/jython/ChangeLog +++ b/dev-java/jython/ChangeLog @@ -1,6 +1,17 @@ # ChangeLog for dev-java/jython # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-java/jython/ChangeLog,v 1.69 2010/03/20 13:17:20 arfrever Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-java/jython/ChangeLog,v 1.70 2010/12/13 14:11:43 arfrever Exp $ + +*jython-2.5.1-r2 (13 Dec 2010) + + 13 Dec 2010; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org> + +jython-2.5.1-r2.ebuild, + +files/jython-2.5.1-distutils_byte_compilation.patch, + +files/python-2.5.5-distutils_byte_compilation.patch: + Properly use python.eclass. Add "readline", "ssl", "threads" and "xml" USE + flags. Support PYTHONDONTWRITEBYTECODE in Distutils. Rename "jython-2.5" + script to "jython2.5". Respect JYTHON_SYSTEM_CACHEDIR and delete unsetting of + EPYTHON in "jython2.5" script. 20 Mar 2010; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org> jython-2.5.1-r1.ebuild, diff --git a/dev-java/jython/files/jython-2.5.1-distutils_byte_compilation.patch b/dev-java/jython/files/jython-2.5.1-distutils_byte_compilation.patch new file mode 100644 index 000000000000..9ba2cc51924c --- /dev/null +++ b/dev-java/jython/files/jython-2.5.1-distutils_byte_compilation.patch @@ -0,0 +1,48 @@ +--- Lib/distutils/tests/test_build_py.py ++++ Lib/distutils/tests/test_build_py.py +@@ -92,6 +92,25 @@ + os.chdir(cwd) + sys.stdout = sys.__stdout__ + ++ def test_dont_write_bytecode(self): ++ # makes sure byte_compile is not used ++ pkg_dir, dist = self.create_dist() ++ cmd = build_py(dist) ++ cmd.compile = 1 ++ cmd.optimize = 1 ++ ++ old_dont_write_bytecode = os.environ.get("PYTHONDONTWRITEBYTECODE") ++ os.environ["PYTHONDONTWRITEBYTECODE"] = "1" ++ try: ++ cmd.byte_compile([]) ++ finally: ++ if old_dont_write_bytecode is None: ++ del os.environ["PYTHONDONTWRITEBYTECODE"] ++ else: ++ os.environ["PYTHONDONTWRITEBYTECODE"] = old_dont_write_bytecode ++ ++ self.assertTrue('byte-compiling is disabled' in self.logs[0][1]) ++ + def test_suite(): + return unittest.makeSuite(BuildPyTestCase) + +--- Lib/distutils/util.py ++++ Lib/distutils/util.py +@@ -11,6 +11,7 @@ + from distutils.dep_util import newer + from distutils.spawn import spawn + from distutils import log ++from distutils.errors import DistutilsByteCompileError + + def get_platform (): + """Return a string that identifies the current platform. This is used +@@ -397,6 +398,9 @@ + generated in indirect mode; unless you know what you're doing, leave + it set to None. + """ ++ # nothing is done if PYTHONDONTWRITEBYTECODE environment variable is set ++ if os.environ.get("PYTHONDONTWRITEBYTECODE") is not None: ++ raise DistutilsByteCompileError('byte-compiling is disabled.') + + # First, if the caller didn't force us into direct or indirect mode, + # figure out which mode we should be in. We take a conservative diff --git a/dev-java/jython/files/python-2.5.5-distutils_byte_compilation.patch b/dev-java/jython/files/python-2.5.5-distutils_byte_compilation.patch new file mode 100644 index 000000000000..d029247dd256 --- /dev/null +++ b/dev-java/jython/files/python-2.5.5-distutils_byte_compilation.patch @@ -0,0 +1,37 @@ +--- Lib/distutils/command/build_py.py ++++ Lib/distutils/command/build_py.py +@@ -418,6 +418,10 @@ + + + def byte_compile (self, files): ++ if os.environ.get("PYTHONDONTWRITEBYTECODE") is not None: ++ self.warn('byte-compiling is disabled, skipping.') ++ return ++ + from distutils.util import byte_compile + prefix = self.build_lib + if prefix[-1] != os.sep: +--- Lib/distutils/command/install_lib.py ++++ Lib/distutils/command/install_lib.py +@@ -121,6 +121,10 @@ + return outfiles + + def byte_compile (self, files): ++ if os.environ.get("PYTHONDONTWRITEBYTECODE") is not None: ++ self.warn('byte-compiling is disabled, skipping.') ++ return ++ + from distutils.util import byte_compile + + # Get the "--root" directory supplied to the "install" command, +--- Lib/distutils/errors.py ++++ Lib/distutils/errors.py +@@ -76,6 +76,8 @@ + class DistutilsTemplateError (DistutilsError): + """Syntax error in a file list template.""" + ++class DistutilsByteCompileError(DistutilsError): ++ """Byte compile error.""" + + # Exception classes used by the CCompiler implementation classes + class CCompilerError (Exception): diff --git a/dev-java/jython/jython-2.5.1-r2.ebuild b/dev-java/jython/jython-2.5.1-r2.ebuild new file mode 100644 index 000000000000..980574fc8819 --- /dev/null +++ b/dev-java/jython/jython-2.5.1-r2.ebuild @@ -0,0 +1,178 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-java/jython/jython-2.5.1-r2.ebuild,v 1.1 2010/12/13 14:11:43 arfrever Exp $ + +JAVA_PKG_IUSE="source doc examples oracle" +#informix missing. This is a jdbc driver, similar to oracle use flag +#functionality. + +EAPI="3" + +inherit base java-pkg-2 java-ant-2 python + +DESCRIPTION="An implementation of Python written in Java" +HOMEPAGE="http://www.jython.org" + +PYVER="2.5.5" + +SRC_URI="http://www.python.org/ftp/python/${PYVER%_*}/Python-${PYVER}.tgz + mirror://gentoo/${P}.tar.bz2" + +LICENSE="PSF-2.2" +SLOT="2.5" +PYTHON_ABI="${SLOT}-jython" +KEYWORDS="~amd64 ~x86" +IUSE="+readline +ssl +threads +xml" + +#>=dev-java/jdbc-mysql-3.1 +#dev-java/jdbc-postgresql +CDEPEND="=dev-java/jakarta-oro-2.0* + >=dev-java/libreadline-java-0.8.0 + dev-java/asm:3 + oracle? ( dev-java/jdbc-oracle-bin:10.2 ) + java-virtuals/servlet-api:2.5 + !<=dev-java/freemarker-2.3.10 + dev-java/constantine:0 + dev-java/jline:0 + dev-java/jna-posix:0 + dev-java/jna:0 + dev-java/antlr:0 + dev-java/antlr:3 + dev-java/stringtemplate:0 + dev-java/xerces:2 + dev-java/jsr223:0 + >=dev-java/java-config-2.1.11-r3" +RDEPEND=">=virtual/jre-1.5 + ${CDEPEND}" +DEPEND=">=virtual/jdk-1.5 + dev-java/ant-core:0 + dev-java/junit:0 + ${CDEPEND}" + +pkg_setup() { + java-pkg-2_pkg_setup + python_pkg_setup +} + +java_prepare() { + epatch "${FILESDIR}/${P}-build.patch" + epatch "${FILESDIR}/${P}-distutils_byte_compilation.patch" + epatch "${FILESDIR}/${P}-distutils_scripts_location.patch" + epatch "${FILESDIR}/${P}-respect_PYTHONPATH.patch" + + rm -Rfv org || die "Unable to remove class files." + find extlibs -iname '*.jar' | xargs rm -fv || die "Unable to remove bundled jars" + find "${WORKDIR}" -iname '*.pyc' | xargs rm -fv + java-pkg_jar-from --into extlibs libreadline-java libreadline-java.jar \ + libreadline-java-0.8.jar + java-pkg_jar-from --into extlibs antlr-3 antlr3.jar antlr-3.1.3.jar + java-pkg_jar-from --into extlibs antlr antlr.jar antlr-2.7.7.jar + java-pkg_jar-from --into extlibs stringtemplate stringtemplate.jar \ + stringtemplate-3.2.jar + java-pkg_jar-from --into extlibs servlet-api-2.5 servlet-api.jar \ + servlet-api-2.5.jar + java-pkg_jar-from --into extlibs asm-3 asm.jar asm-3.1.jar + java-pkg_jar-from --into extlibs asm-3 asm-commons.jar \ + asm-commons-3.1.jar + java-pkg_jar-from --into extlibs constantine constantine.jar \ + constantine-0.4.jar + java-pkg_jar-from --into extlibs jline jline.jar \ + jline-0.9.95-SNAPSHOT.jar + java-pkg_jar-from --into extlibs jna jna.jar + java-pkg_jar-from --into extlibs jna-posix jna-posix.jar + java-pkg_jar-from --build-only --into extlibs ant-core ant.jar + java-pkg_jar-from --build-only --into extlibs junit junit.jar \ + junit-3.8.2.jar + java-pkg_jar-from --into extlibs xerces-2 xercesImpl.jar + java-pkg_jar-from --into extlibs jsr223 script-api.jar \ + livetribe-jsr223-2.0.5.jar + + echo "has.repositories.connection=false" > ant.properties + + if use oracle; then + echo \ + "oracle.jar=$(java-pkg-getjar jdbc-oracle-bin-10.2 ojdbc14.jar)" \ + >> ant.properties + fi + + pushd "${WORKDIR}/Python-${PYVER}" > /dev/null + epatch "${FILESDIR}/python-${PYVER}-distutils_byte_compilation.patch" + popd > /dev/null +} + +src_compile() { + local antflags="" + local pylib="../Python-${PYVER}/Lib" + antflags="${antflags} -Dpython.lib=${pylib}" + eant ${antflags} developer-build $(use_doc javadoc) +} + +# Restrict tests as some dont compile and others (a couple) are broken. +RESTRICT="test" +src_test() { +#[exec] 311 tests OK. +#[exec] 3 tests skipped: +#[exec] test_subprocess test_urllib2net test_urllibnet +#[exec] 2 tests failed: +#[exec] test_pbcvm test_pkgimport +#[exec] 2 fails unexpected: +#[exec] test_pbcvm test_pkgimport + local antflags="" + antflags+=" -Dgentoo.library.path=$(java-config -di jna-posix)" + antflags+=" -Dpython.home=dist" + local pylib="../Python-${PYVER}/Lib" + antflags+=" -Dpython.lib=${pylib}" + ANT_TASKS="ant-junit" eant ${antflags} test +} + +src_install() { + dodoc README.txt NEWS ACKNOWLEDGMENTS README.txt + cd dist || die + java-pkg_newjar "${PN}-dev.jar" + + local java_args="-Dpython.home=/usr/share/${PN}-${SLOT}" + java_args+=" -Dpython.cachedir=\$([[ -n \"\${JYTHON_SYSTEM_CACHEDIR}\" ]] && echo ${EPREFIX}/var/cache/${PN}/${SLOT}-\${EUID} || echo \${HOME}/.jythoncachedir)" + java_args+=" -Dpython.executable=${EPREFIX}/usr/bin/jython${SLOT}" + + java-pkg_dolauncher jython${SLOT} \ + --main "org.python.util.jython" \ + --pkg_args "${java_args}" + + java-pkg_register-optional-dependency jdbc-mysql + java-pkg_register-optional-dependency jdbc-postgresql + + insinto /usr/share/${PN}-${SLOT} + doins -r Lib registry + python_clean_installation_image -q + + use doc && java-pkg_dojavadoc Doc/javadoc + use source && java-pkg_dosrc ../src + cd "${S}" + use examples && java-pkg_doexamples Demo/* + + 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 "sed failed" + fi +} + +pkg_postinst() { + python_mod_optimize -f -x "/(site-packages|test|tests)/" $(python_get_libdir) + + 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 +} + +pkg_postrm() { + python_mod_cleanup $(python_get_libdir) +} |