debian/0000775000000000000000000000000013160620523007166 5ustar debian/source.lintian-overrides0000664000000000000000000000011712243403252014044 0ustar jython source: cvsignore-file-in-source jython source: source-contains-CVS-dir debian/jython-doc.links0000664000000000000000000000011212243403252012277 0ustar /usr/share/doc/jython-doc/html/javadoc /usr/share/doc/jython-doc/api-html debian/jython-doc.override0000664000000000000000000000010212243403252012775 0ustar jython-doc: copyright-should-refer-to-common-license-file-for-gpl debian/jython.docs0000664000000000000000000000003312243403252011346 0ustar ACKNOWLEDGMENTS README.txt debian/jython.override0000664000000000000000000000073512243403252012246 0ustar # The GPL is mentioned only for historical reasons. jython: copyright-should-refer-to-common-license-file-for-gpl # The Jython interpreter is not known by lintian. At least until #669911 is fixed. jython: unusual-interpreter usr/share/jython/Lib/* #!/usr/bin/jython # These jars actually contain Python code. Not detected by pure-Java tooling. jython: codeless-jar usr/share/jython/Lib/test/classimport.jar jython: codeless-jar usr/share/jython/Lib/test/classimport_Lib.jar debian/jython.10000664000000000000000000001144112243403252010563 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH JYTHON 1 "July 7, 2001" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME jython \- Python seamlessly integrated with Java .SH SYNOPSIS .B jython [ \fB\-i\fP ] [ \fB\-S\fP ] [ \fB\-v\fP ] [ \fB\-D\fP\fIproperty\fP\fB=\fP\fIvalue\fP ... ] [ \fB\-W\fP\fIargument\fP ] .br [ \fB\-E\fP\fIcodec\fP ] [ \fB\-Q\fP\fIargument\fP ] .br [ \fB\-jar\fP \fIjar\fP | \fB\-c\fP \fIcmd\fP | \fIfile\fP | \fB\-\fP ] [ \fIscript-args\fP ] .PP .B jython [ \fB\-\-help\fP | \fB\-\-version\fP ] .SH DESCRIPTION \fBJython\fP is an implementation of the high-level, dynamic, object-oriented language Python seamlessly integrated with the Java platform. The predecessor to Jython, JPython, is certified as 100% Pure Java. .PP Jython is complementary to Java and is especially suited for the following tasks: .PP .TP .I Embedded scripting: Java programmers can add the Jython libraries to their system to allow end users to write simple or complicated scripts that add functionality to the application. .TP .I Interactive experimentation: Jython provides an interactive interpreter that can be used to interact with Java packages or with running Java applications. This allows programmers to experiment with and debug any Java system using Jython. .TP .I Rapid application development: Python programs are typically 2-10X shorter than the equivalent Java program. This translates directly to increased programmer productivity. The seamless interaction between Python and Java allows developers to freely mix the two languages both during development and in shipping products. .PP To make a jython script executable on your system you can add the following line to the top of the file: .PP .RS .I #!/usr/bin/env jython .RE .PP You will also need to add execute permissions to the script using .BR chmod (1). Note that \fI#!/usr/bin/jython\fP will not work; you must use \fI#!/usr/bin/env jython\fP. This is because /usr/bin/jython is a script itself, not a compiled binary. .SH OPTIONS A summary of options is included below. .TP .B \-i Continue running Jython interactively after running the given script, and force prompts even if standard input doesn't appear to be a terminal. .TP .B \-S Don't imply \fIimport site\fP on initialisation. .TP .B \-v Trace import statements on error output. .TP .B \fB\-D\fP\fIproperty\fP\fB=\fP\fIvalue\fP Set the Jython property \fIproperty\fP to \fIvalue\fP; see .BR jython.conf (5) for details of available properties. .TP .B \fB\-W\fP\fIargument\fP Warning control. The full form of argument is \fIaction\fP:\fImessage\fP:\fIcategory\fP:\fImodule\fP:\fIline\fP. Trailing empty fields may be omitted. Multiple \fB-W\fP options may be given. See documentation of the \fIwarnings\fP module for details. .TP .B \fB\-E\fP\fIcodec\fP Set the encoding used to read module source files from disk. .TP .B \fB\-Q\fP\fIargument\fP Division control. See PEP 239 for details. Valid arguments are \fIold\fP, \fInew\fP, \fIwarn\fP and \fIwarnall\fP. .TP \fB\-jar\fP \fIjar\fP The program to run is read from the file \fI__run__.py\fP in the specified \fIjar\fP archive. .TP \fB\-c\fP \fIcmd\fP The program to run is passed as the \fIcmd\fP string. This option terminates the options list. .TP .I file The program to run is the script \fIfile\fP. .TP .B \- The program to run is read from standard input (default behaviour). Interactive mode is used if running on a tty. This flag allows you to pipe a file into Jython and have it be treated correctly. .TP .I script-args Command-line arguments to pass to the Jython script in \fIsys.argv[1:]\fP. .TP .B \-\-help Print a usage message and exit. .TP .B \-\-version Print the Jython version number and exit. .SH ENVIRONMENT VARIABLES .TP JAVA (default: /usr/bin/java) The Java interpreter to use when running Jython. .TP JAVA_OPTIONS (default: empty) Options to pass to the Java interpreter when running Jython. .SH SEE ALSO .BR jythonc (1), .BR jython.conf (5). .PP If the Debian package \fIjython-doc\fP is installed, full documentation from the Jython authors will be available in \fI/usr/share/doc/jython-doc/html/\fP. .SH AUTHOR This manual page was prepared by Ben Burton for the Debian GNU/Linux system (but may be used by others). It is based upon the official Jython documentation. debian/compat0000664000000000000000000000000212243403252010363 0ustar 5 debian/rules0000775000000000000000000001055612243427761010267 0ustar #!/usr/bin/make -f # Sample debian/rules that uses debhelper. # GNU copyright 1997 to 1999 by Joey Hess. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 jarname = jython jarversion = `dpkg-parsechangelog| gawk '/Version/ { match($$0, /Version: (.*)-[0-9]+/, arr) ; print arr[1] }'` tmp = debian/tmp overrides = $(tmp)/usr/share/lintian/overrides javadir = $(tmp)/usr/share/java jythondir = $(tmp)/usr/share/jython confdir = $(tmp)/etc/jython docdir = $(tmp)/usr/share/doc/jython-doc INSTALL_DIR = install -p -d -o root -g root -m 755 INSTALL_FILE = install -p -o root -g root -m 644 INSTALL_BIN = install -p -o root -g root -m 755 build: build-arch build-indep build-arch: build-indep: build-stamp build-stamp: dh_testdir mkdir -p extlibs/ # create links to external libs expected by ANT build.xml ln -s /usr/share/java/junit.jar extlibs/junit-3.8.2.jar ln -s /usr/share/java/libreadline-java.jar extlibs/libreadline-java-0.8.jar ln -s /usr/share/java/jline.jar extlibs/jline-0.9.95-SNAPSHOT.jar ln -s /usr/share/java/servlet-api-2.5.jar extlibs/servlet-api-2.5.jar ln -s /usr/share/java/mysql-connector-java.jar extlibs/mysql-connector-java-5.1.6.jar ln -s /usr/share/java/postgresql-jdbc4.jar extlibs/postgresql-8.3-603.jdbc4.jar ln -s /usr/share/java/antlr.jar extlibs/antlr-2.7.7.jar ln -s /usr/share/java/antlr3.jar extlibs/antlr-3.1.3.jar ln -s /usr/share/java/antlr3-runtime.jar extlibs/antlr-runtime-3.1.3.jar ln -s /usr/share/java/stringtemplate.jar extlibs/stringtemplate-3.2.jar ln -s /usr/share/java/livetribe-jsr223.jar extlibs/livetribe-jsr223-2.0.5.jar ln -s /usr/share/java/asm3.jar extlibs/asm-3.1.jar ln -s /usr/share/java/asm3-commons.jar extlibs/asm-commons-3.1.jar ln -s /usr/share/java/libconstantine-java.jar extlibs/constantine.jar ln -s /usr/share/java/guava.jar extlibs/guava-r07.jar ln -s /usr/share/java/jaffl.jar extlibs/jaffl.jar ln -s /usr/share/java/jffi.jar extlibs/jffi.jar ln -s /usr/share/java/jnr-posix.jar extlibs/jnr-posix.jar ln -s /usr/share/java/jnr-netdb.jar extlibs/jnr-netdb-0.4.jar # Build the class files. ant -nouserlib developer-build jar javadoc # -nouserlib is required to prevent conflicts with the ant jython plugin touch build-stamp clean: dh_testdir dh_testroot rm -f build-stamp ant clean dh_clean install: build dh_testdir dh_testroot dh_clean -k dh_installdirs # Install the jar and make all the appropriate symlinks. $(INSTALL_DIR) $(javadir) $(INSTALL_DIR) $(jythondir) $(INSTALL_FILE) dist/jython-dev.jar $(javadir)/$(jarname)-$(jarversion).jar ln -s $(jarname)-$(jarversion).jar $(javadir)/$(jarname).jar # do not install tests rm -rf dist/Lib/test cp -r dist/Lib $(jythondir) # no more Tools (yet) #cp -r dist/Tools $(jythondir) # Make all modules with a shebang line executable for f in `find $(jythondir)/Lib -name "*.py"` ; do \ if head -1 $$f | grep --quiet "^#\!" ; then \ chmod +x $$f; \ fi; \ done # Install the registry. $(INSTALL_DIR) $(confdir) $(INSTALL_FILE) registry $(confdir)/jython.conf # Install the scripts. $(INSTALL_DIR) $(tmp)/usr/bin $(INSTALL_BIN) debian/jython_perl $(tmp)/usr/bin/jython # Install doc $(INSTALL_DIR) $(docdir) $(INSTALL_DIR) $(docdir)/html cp -a dist/Doc/javadoc $(docdir)/html # Move files into correct directories. #$(INSTALL_DIR) $(docdir) #mv $(jythondir)/Demo $(docdir)/examples # Install lintian and linda overrides. for pkg in `dh_listpackages`; do \ if test -e debian/$$pkg.override; then \ $(INSTALL_DIR) debian/$$pkg/usr/share/lintian/overrides; \ $(INSTALL_FILE) debian/$$pkg.override \ debian/$$pkg/usr/share/lintian/overrides/$$pkg; \ fi; \ if test -e debian/$$pkg.linda; then \ $(INSTALL_DIR) debian/$$pkg/usr/share/linda/overrides; \ $(INSTALL_FILE) debian/$$pkg.linda \ debian/$$pkg/usr/share/linda/overrides/$$pkg; \ fi; \ done # Build architecture-dependent files here. binary-arch: # Build architecture-independent files here. binary-indep: build install dh_testdir dh_testroot dh_install -i --sourcedir=debian/tmp dh_installdocs -i dh_installexamples -i dh_installmenu -i dh_installman -i dh_installchangelogs -i NEWS dh_link -i dh_compress -i dh_fixperms -i dh_installdeb -i dh_perl -i dh_gencontrol -i dh_md5sums -i dh_builddeb -i binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install build build-arch build-indep debian/jython-doc.README.Debian0000664000000000000000000000043712243403252013307 0ustar Jython documentation for Debian ----------------- This package provides the Jython Java API documentation in /usr/share/doc/jython-doc Jython itself is available with the jython Debian package. The complete Jython documentation is available at http://jython.org/currentdocs.html debian/changelog0000664000000000000000000003245413160620523011050 0ustar jython (2.5.3-1ubuntu0.1) trusty-security; urgency=high [ Simon Quigley ] * SECURITY UPDATE: Creates executables class files with wrong permissions (LP: #1714728) - CVE-2013-2027 - 1-CVE-2013-2027.patch - 2-CVE-2013-2027.patch - 3-CVE-2013-2027.patch - Thanks to Lubomir Rintel for the patches! [ Markus Koschany ] * SECURITY UPDATE: Unsafe deserialization may lead to arbitrary code execution - CVE-2016-4000 - CVE-2016-4000.patch -- Simon Quigley Wed, 20 Sep 2017 21:10:50 -0500 jython (2.5.3-1) unstable; urgency=low * New upstream release (Closes: #690116) * Adopt the package under the pkg-java umbrella (Closes: #705825) * Standards-Version updated to 3.9.5 * Import in the pkg-java VCS * Switch to dpkg-source 3.0 (quilt) format * jython should work unde virtualenv (Closes: #705146) Thanks to Arthur Noel for the patch * Update of the description (Closes: #676831) -- Sylvestre Ledru Thu, 21 Nov 2013 14:25:27 +0100 jython (2.5.2-2) unstable; urgency=low * Orphaning this package. -- Nicolas Duboc Sat, 20 Apr 2013 16:43:20 +0200 jython (2.5.2-1) unstable; urgency=low * New upstream release 2.5.2 (closes: #623625) * Bumped version of Debian policy compliance to 3.9.3 (nothing to do) * Added some lintian overrides to ignore some very special cases. * Tests are no longer installed (saving about 1/3 of the package size). * Fixed dependency declarations. -- Nicolas Duboc Sun, 06 May 2012 10:26:34 +0200 jython (2.5.1-2) unstable; urgency=low * Added missing build-dependency declaration on jline (closes: #591114) * Bumped version of Debian policy compliance to 3.9.1 (nothing to do) * sys.executable Python variable is now set by perl launcher (closes: #591478) -- Nicolas Duboc Wed, 04 Aug 2010 09:09:00 +0200 jython (2.5.1-1) unstable; urgency=low * New upstream release (closes: #497352) * Acknowledged 2.2.1-2.1 NMU. * Added Homepage field in control file. * libservlet-java is now a suggestion, needed only to write servlets in jython * Removed the jythonc command, which is no longer available in 2.5. * Removed the obsolete html documentation. -- Nicolas Duboc Fri, 09 Jul 2010 18:02:19 +0200 jython (2.2.1-2.1) unstable; urgency=low * Non-maintainer upload. * Update build/runtime dependencies to appropriate default-j* packages. (Closes: #463114, #570195) * lintian error/warning fixes. - debian/control - Move ant to build-depends. - Add misc:Depends to dependencies. - Update standards version to 3.8.4. - debian/*.doc-base.* - Remove 'Apps' from 'Section' value. - Remove single white space at the end of file. - debian/copyright - Convert to UTF-8 encoding. -- Onkar Shinde Sat, 20 Mar 2010 13:25:59 +0530 jython (2.2.1-2) unstable; urgency=low * Fixed typo in Recommends (java-gcp-compat-dev -> java-gcj-compat-dev) (closes: #454791) -- Nicolas Duboc Sat, 09 Aug 2008 14:53:53 +0200 jython (2.2.1-1) unstable; urgency=low * New upstream release. (closes: #440148, #281038) * Default config is now set by jython start script through Java properties * Updated the jython(1) man page for new options in version 2.2. * Updated menu entry for the renamed 'Applications' entry. * Replaced the DH_COMPAT line in rules by the debian/compat file. * Use an editline-compatile method to inhibit completion on Tab. -- Nicolas Duboc Thu, 18 Oct 2007 17:28:08 +0200 jython (2.1.0-23) unstable; urgency=low * Install the upstream NEWS file as /usr/share/doc/changelog (closes: #314711) * Compile zxJDBC (closes: #137090) * Replaced the xml package by the PyXML distribution included in upstream binary package of Jython 2.1 (PyXML 0.6.6) * Replaced the drv_xmlproc.py file with a newer version from PyXML CVS (closes: #276873) * Do not include package dirs of the python-2.1 package in jython search path. * Removed the test for python2.1 from /usr/bin/jythonc (closes: #388046) * Depends on java-gcj-compat instead of gij directly (closes: #240213) * Build using java-gcj-compat-dev. -- Nicolas Duboc Tue, 3 Oct 2006 15:59:30 +0200 jython (2.1.0-22) unstable; urgency=low * New maintainer (closes: #315289) * Binary package now includes the standard library modules and no longer depends on python2.1 (closes: #362292) * Debian policy compliance bumped to 3.7.2 (nothing to do) -- Nicolas Duboc Fri, 14 Jul 2006 15:41:57 +0200 jython (2.1.0-21) unstable; urgency=low * Orphaning package (see #315289 for details). * Switched from debhelper compatibility level 3 to 5 (updated build-depends, no other changes required). * Bumped standards-version to 3.6.2 (no changes required). -- Ben Burton Tue, 21 Feb 2006 23:28:19 +1100 jython (2.1.0-20) unstable; urgency=low * Use libservlet2.3-java instead of libservlet2.2-java (closes: #301042). * If /usr/bin/java is broken or missing, use $JAVA_HOME/bin/java as a final fallback (closes: #297546). Displays prominent warnings if this is necessary, since it means the system is misconfigured. -- Ben Burton Fri, 25 Mar 2005 15:25:34 +1100 jython (2.1.0-19) unstable; urgency=low * Replaced /usr/bin/jython with a perl script rewritten from scratch. It behaves in much the same way, except that: - all command-line options and $JAVA_OPTIONS are scanned for JNI library path components (-Djava.library.path=...), which are then merged with /usr/lib/jni into a single JNI library path that is passed to the java runtime (closes: #278007); - all other command-line options of the form -Djava.... are assumed to be java options and are thus merged into $JAVA_OPTIONS instead (i.e., they are passed to the java runtime and not jython itself). * Added /usr/lib/python2.1/site-packages and /usr/lib/site-python to the python path (along with /usr/lib/python2.1 which was already present). -- Ben Burton Mon, 25 Oct 2004 18:59:38 +1000 jython (2.1.0-18) unstable; urgency=low * Build with -target 1.3 so that jikes doesn't treat "assert" as a keyword. * Changed recommends from www-browser to (w3m | www-browser) in jython-doc. * Fixed typo in jythonc manpage (closes: #258002). -- Ben Burton Wed, 7 Jul 2004 20:46:25 +1000 jython (2.1.0-17) unstable; urgency=low * Use python's pixmap in the debian menu entry. -- Ben Burton Sun, 14 Mar 2004 14:11:15 +1100 jython (2.1.0-16) unstable; urgency=low * Build using jikes-gij instead of gcj to avoid crashes under kaffe (assertion `e->start_pc <= e->end_pc'). -- Ben Burton Sat, 3 Jan 2004 10:47:28 +1100 jython (2.1.0-15) unstable; urgency=low * Changed recommends python2.1 to depends - the recommends seems to have caused a little too much confusion (closes: #224922). -- Ben Burton Tue, 30 Dec 2003 09:11:52 +1100 jython (2.1.0-14) unstable; urgency=low * Build in servlet material now that libservlet2.2-java is back in main. * Build in other previously-excluded material that is now supported by gcj. * Quit with a polite error message if users try to run jythonc without python2.1. * Bumped standards-version to 3.6.1. -- Ben Burton Tue, 30 Sep 2003 01:08:47 +1000 jython (2.1.0-13) unstable; urgency=low * Inhibit tab completion in the readline console where possible (closes: #184838). * Minor update for manpage jython.conf.5. -- Ben Burton Wed, 27 Aug 2003 13:50:38 +1000 jython (2.1.0-12) unstable; urgency=low * Include /usr/lib/jni in JNI path since some JVMs still don't reflect java policy. * Bumped standards-version to 3.6.0. * Slight manpage cleanup. -- Ben Burton Tue, 19 Aug 2003 16:42:36 -0500 jython (2.1.0-11) unstable; urgency=low * Builds using gcj (default version) instead of gcj-3.2 (closes: #196068). * Builds with -fno-assert. * Moving into section python. * Bumped standards-version to 3.5.10.0. -- Ben Burton Thu, 5 Jun 2003 10:53:40 +1000 jython (2.1.0-10) unstable; urgency=low * Suggest defaults for virtual package dependencies. * Added lintian/linda overrides. * New maintainer email address. * linux.conf.au rocks! -- Ben Burton Sat, 25 Jan 2003 13:38:52 +0800 jython (2.1.0-9) unstable; urgency=low * Patch for exception printing in interactive interpreter (closes: #166843). * Bumped standards-version to 3.5.7.0. -- Ben Burton Tue, 29 Oct 2002 09:08:29 +1100 jython (2.1.0-8) unstable; urgency=low * Finally get rid of whichjava. It's only needed for jikes users, and if people have /usr/bin/javac pointing to jikes (and not jikes-gij, etc), they should have $CLASSPATH set anyway to make javac behave properly. -- Ben Burton Thu, 3 Oct 2002 12:06:19 +1000 jython (2.1.0-7) unstable; urgency=low * Added support for passing options to the Java interpreter through environment variable $JAVA_OPTIONS (closes: #161187). -- Ben Burton Wed, 18 Sep 2002 09:00:48 +1000 jython (2.1.0-6) unstable; urgency=low * Build uses gcj-3.2 instead of jikes. * Pruned jython dependencies since JVMs are now providing virtual java packages. * Updated whichjava to recognise gij-3.2. * Added /usr/lib to java.library.path since some JVMs don't include it by default (closes: Bug#160765). -- Ben Burton Sat, 14 Sep 2002 17:56:37 +1000 jython (2.1.0-5) unstable; urgency=low * Don't build PyServlet.class since servlet libraries have moved from main to contrib (closes: Bug#154051). -- Ben Burton Fri, 2 Aug 2002 14:16:08 +1000 jython (2.1.0-4) unstable; urgency=low * Empty input lines no longer break readline consoles (closes: Bug#145613). -- Ben Burton Mon, 24 Jun 2002 00:27:30 +1000 jython (2.1.0-3) unstable; urgency=low * Don't search for bootstrap classes unless you really have to (closes: Bug#148591). * Added gij-3.1 details to whichjava script. -- Ben Burton Fri, 31 May 2002 14:00:27 +1000 jython (2.1.0-2) unstable; urgency=high * Updated to reflect relocated kaffe classes. * Build-depends on newer (non-broken) jikes (closes: Bug#141259). -- Ben Burton Fri, 19 Apr 2002 19:54:19 +1000 jython (2.1.0-1) unstable; urgency=low * New upstream release (closes: Bug#129335). * Removed debugging output from startup scripts (closes: Bug#125681). -- Ben Burton Sat, 9 Feb 2002 18:22:49 +1100 jython (2.1-beta1-1) unstable; urgency=low * New upstream release. * Incorporated merge of libeditline-java and libreadline-java. -- Ben Burton Sun, 9 Dec 2001 14:45:15 -0600 jython (2.1-alpha3-6) unstable; urgency=low * Depends: made more flexible until all of the JVM packages provide javaN-runtime. * Looks for (and recommends) CPython 2.1 and no other version. -- Ben Burton Wed, 21 Nov 2001 10:19:03 -0600 jython (2.1-alpha3-5) unstable; urgency=low * Updated to conform to new python policy (closes: Bug#118250). * Recommends python (>= 2.1.1-2) (closes: Bug#118429). * Improved CPython path determination in /usr/bin/jython. * Updated to conform to new java policy. * Added patched imaplib.py to /usr/share/jython/Lib (thanks dman). -- Ben Burton Wed, 7 Nov 2001 18:01:22 -0600 jython (2.1-alpha3-4) unstable; urgency=low * Adapted to renaming of lib-editline-java to libeditline-java. * Replaced Build-Depends with Build-Depends-Indep. -- Ben Burton Sat, 27 Oct 2001 18:32:39 -0500 jython (2.1-alpha3-3) unstable; urgency=low * Added support for new j2se1.3 packages. -- Ben Burton Sun, 23 Sep 2001 22:58:54 -0500 jython (2.1-alpha3-2) unstable; urgency=low * Oops, I buggered up the cachedir in the previous upload - fixed. * Brought in warnings.py from CPython 2.1 for use with jythonc. * Updated whichjava and whichjavac. -- Ben Burton Mon, 3 Sep 2001 12:24:03 -0500 jython (2.1-alpha3-1) unstable; urgency=low * New upstream release. * Added readline support using lib-editline-java. * Serious reworking of startup scripts. * Made all scripts sh-compilant. * No longer clobbers $CLASSPATH (closes: Bug#110830). -- Ben Burton Sat, 1 Sep 2001 09:34:50 -0500 jython (2.1-alpha1-3) unstable; urgency=low * Added recognition of the Open Runtime Platform (which Jython cannot use). * Ensures findjava and findjavac specifically start by checking for /usr/bin/java and /usr/bin/javac respectively. * Removed debian/conffiles since debhelper picks these up anyway. * Updated standards-version to 3.5.6. * Cleaned up debian/rules. -- Ben Burton Tue, 14 Aug 2001 08:41:01 +1000 jython (2.1-alpha1-2) unstable; urgency=low * Made findjava* scripts use /bin/bash (closes: Bug#104522). -- Ben Burton Sun, 29 Jul 2001 02:22:22 +1000 jython (2.1-alpha1-1) unstable; urgency=low * Initial Release (Closes: Bug#68287). -- Ben Burton Mon, 2 Jul 2001 17:32:26 -0500 debian/jython.menu0000664000000000000000000000015512243403252011367 0ustar ?package(jython):needs="text" section="Applications/Programming"\ title="Jython" command="/usr/bin/jython" debian/jython.install0000664000000000000000000000007312243403252012070 0ustar etc/jython/* usr/bin/* usr/share/jython/* usr/share/java/* debian/jython.manpages0000664000000000000000000000004512243403252012214 0ustar debian/jython.1 debian/jython.conf.5 debian/jython.conf.50000664000000000000000000001104312243403252011511 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH JYTHON.CONF 5 "September 2, 2001" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME jython.conf \- Jython registry for system-wide options .SH DESCRIPTION When running .BR jython (1) or .BR jythonc (1), a number of properties may be set to customise Jython's behaviour. Properties can be assigned values in any of the following four ways. This list is arranged from lowest to highest priority; thus for instance a property set in a user's personal registry will override the same property set in the system-wide registry. .TP .I Java system properties Jython options may be set in the standard Java system properties. However, since the jython and jythonc startup scripts take responsibility for starting the Java interpreter, it is unlikely that you will use this method of Jython configuration. .TP .I Jython system-wide registry The system-wide registry is the file \fI/etc/jython/jython.conf\fP. It contains a number of lines of the form \fIproperty\fP\fB=\fP\fIvalue\fP. Lines that are empty or that begin with a hash (#) are ignored. .TP .I User's personal registry The user's personal registry is the file \fI~/.jython\fP. Its format is the same as for the system-wide registry. .TP .I Command-line options Properties may be specified when running jython or jythonc at the command-line. They are set using command-line options of the form \fB\-D\fP\fIproperty\fP\fB=\fP\fIvalue\fP. .SH PROPERTIES The following properties may be set in the Jython registry. Other less used properties are also available; see the comments in the default system-wide registry for further details. .PP If a property is marked \fI(auto)\fP, the jython and jythonc startup scripts will attempt to set this property automatically, although it can still be overridden in the system or user registry or on the command-line. .TP .BR python.cachedir " (auto)" The directory to use for caches (currently just package information). This directory must be writable by the user. If the directory is an absolute path then it is used as given; otherwise it is interpreted as relative to the root Jython directory (/usr/share/jython/). .TP .BR python.console The name of the console class to use when running Jython from the command prompt. An alternative console class that emulates GNU readline can be specified using this property. .TP .BR python.jythonc.classpath " (auto)" Extensions to the Java property \fIjava.class.path\fP for use with jythonc. This is used to put extra classes on your Java compiler's classpath (and the core Java classes as well if your Java compiler requires them). .TP .BR python.jythonc.compiler " (auto)" The Java compiler to use with jythonc when turning generated Java code into Java class files. This should be the absolute path to a Java compiler, or the name of a compiler on your standard PATH. .TP .BR python.jythonc.compileropts Options to pass to the Java compiler when using jythonc. .TP .BR python.path " (auto)" The path on which Jython will look for additional python modules when importing. This variable has a similar function to CPython's PYTHONPATH environment variable. .TP .B python.security.respectJavaAccessibility Normally, Jython can only provide access to public members of classes. However if this property is set to \fIfalse\fP and you are using Java 1.2 then Jython can access non-public fields, methods and constructors. .TP .B python.verbose Sets the verbosity level for informative messages. All messages with at least the specified severity will be displayed. Valid values in order of increasing verbosity are \fIerror\fP, \fIwarning\fP, \fImessage\fP, \fIcomment\fP and \fIdebug\fP. .SH SEE ALSO .BR jython (1), .BR jythonc (1). .PP If the Debian package \fIjython-doc\fP is installed, full documentation from the Jython authors will be available in \fI/usr/share/doc/jython-doc/html/\fP. .SH AUTHOR This manual page was prepared by Ben Burton for the Debian GNU/Linux system (but may be used by others). It is based upon the official Jython documentation. debian/jython-doc.docs0000664000000000000000000000003312243403252012111 0ustar ACKNOWLEDGMENTS README.txt debian/jython.links0000664000000000000000000000006312243403252011541 0ustar /etc/jython/jython.conf /usr/share/jython/registry debian/source/0000775000000000000000000000000012243404741010471 5ustar debian/source/format0000664000000000000000000000001412243404741011677 0ustar 3.0 (quilt) debian/NEWS0000664000000000000000000000104512243403252007664 0ustar jython (2.5.1-1) unstable; urgency=low The jythonc command was removed in Jython 2.5. See the Jython FAQ for details (http://wiki.python.org/jython/JythonFaq/ProgrammingJython). -- Nicolas Duboc Sun, 27 Jun 2010 16:04:38 +0200 jython (2.1.0-22) unstable; urgency=low With this new version jython 2.1 no longer depends on python 2.1 to provide the standard library modules. Instead these modules are now included in the jython package. -- Nicolas Duboc Sat, 27 May 2006 18:56:37 +0200 debian/copyright0000664000000000000000000002422712243403252011127 0ustar This package was debianized by Ben Burton on Mon, 2 Jul 2001 17:32:26 -0500. It is now maintained by Nicolas Duboc since July 14th 2006. This version was downloaded from the Jython Mercurial repository at http://hg.python.org revision 91332231a448 which corresponds to the v2.5.2 tag. Third party jar libraries in the extlibs directory have been deleted before recreating the original upstream tarball. Upstream Authors: Finn Bock, Jim Hugunin, Barry Warsaw, Guido van Rossum and others. A. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING JYTHON ======================================================= PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 -------------------------------------------- 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using this software ("Jython") in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Jython alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2007 Python Software Foundation; All Rights Reserved" are retained in Jython alone or in any derivative version prepared by Licensee. 3. In the event Licensee prepares a derivative work that is based on or incorporates Jython or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Jython. 4. PSF is making Jython available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF JYTHON WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF JYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING JYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By copying, installing or otherwise using Jython, Licensee agrees to be bound by the terms and conditions of this License Agreement. Jython 2.0, 2.1 License ================================ Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Jython Developers All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the Jython Developers nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. JPython 1.1.x Software License. ========================= ______________________________________________________________________ IMPORTANT: PLEASE READ THE FOLLOWING AGREEMENT CAREFULLY. BY CLICKING ON THE "ACCEPT" BUTTON WHERE INDICATED, OR BY INSTALLING, COPYING OR OTHERWISE USING THE SOFTWARE, YOU ARE DEEMED TO HAVE AGREED TO THE TERMS AND CONDITIONS OF THIS AGREEMENT. ______________________________________________________________________ JPython version 1.1.x 1. This LICENSE AGREEMENT is between the Corporation for National Research Initiatives, having an office at 1895 Preston White Drive, Reston, VA 20191 ("CNRI"), and the Individual or Organization ("Licensee") accessing and using JPython version 1.1.x in source or binary form and its associated documentation as provided herein ("Software"). 2. Subject to the terms and conditions of this License Agreement, CNRI hereby grants Licensee a non-exclusive, non-transferable, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use the Software alone or in any derivative version, provided, however, that CNRI's License Agreement and CNRI's notice of copyright, i.e., "Copyright ©1996-1999 Corporation for National Research Initiatives; All Rights Reserved" are both retained in the Software, alone or in any derivative version prepared by Licensee. Alternatively, in lieu of CNRI's License Agreement, Licensee may substitute the following text (omitting the quotes), provided, however, that such text is displayed prominently in the Software alone or in any derivative version prepared by Licensee: "JPython (Version 1.1.x) is made available subject to the terms and conditions in CNRI's License Agreement. This Agreement may be located on the Internet using the following unique, persistent identifier (known as a handle): 1895.22/1006. The License may also be obtained from a proxy server on the Web using the following URL: http://hdl.handle.net/1895.22/1006." 3. In the event Licensee prepares a derivative work that is based on or incorporates the Software or any part thereof, and wants to make the derivative work available to the public as provided herein, then Licensee hereby agrees to indicate in any such work, in a prominently visible way, the nature of the modifications made to CNRI's Software. 4. Licensee may not use CNRI trademarks or trade name, including JPython or CNRI, in a trademark sense to endorse or promote products or services of Licensee, or any third party. Licensee may use the mark JPython in connection with Licensee's derivative versions that are based on or incorporate the Software, but only in the form "JPython-based ___________________," or equivalent. 5. CNRI is making the Software available to Licensee on an "AS IS" basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 6. CNRI SHALL NOT BE LIABLE TO LICENSEE OR OTHER USERS OF THE SOFTWARE FOR ANY INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. SOME STATES DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY SO THE ABOVE DISCLAIMER MAY NOT APPLY TO LICENSEE. 7. This License Agreement may be terminated by CNRI (i) immediately upon written notice from CNRI of any material breach by the Licensee, if the nature of the breach is such that it cannot be promptly remedied; or (ii) sixty (60) days following notice from CNRI to Licensee of a material remediable breach, if Licensee has not remedied such breach within that sixty-day period. 8. This License Agreement shall be governed by and interpreted in all respects by the law of the State of Virginia, excluding conflict of law provisions. Nothing in this Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between CNRI and Licensee. 9. By clicking on the "ACCEPT" button where indicated, or by installing, copying or otherwise using the Software, Licensee agrees to be bound by the terms and conditions of this License Agreement. [ACCEPT BUTTON] B. HISTORY OF THE SOFTWARE ======================================================= JPython was created in late 1997 by Jim Hugunin. Jim was also the primary developer while he was at CNRI. In February 1999 Barry Warsaw took over as primary developer and released JPython version 1.1. In October 2000 Barry helped move the software to SourceForge where it was renamed to Jython. Jython 2.0 and 2.1 were developed under the Jython specific license below. From the 2.2 release on, Jython contributors have signed Python Software Foundation contributor agreements and releases are covered under the Python Software Foundation license version 2. The standard library is covered by the Python Software Foundation license as well. See the Lib/LICENSE file for details. The zxJDBC package was written by Brian Zimmer and originally licensed under the GNU Public License. The package is now covered by the Jython Software License. The command line interpreter is covered by the Apache Software License. See the org/apache/LICENSE file for details. debian/jython_perl0000664000000000000000000001535312243405232011454 0ustar #!/usr/bin/perl -w # # Used to start the Jython interpreter. # # Copyright (C) 2004-2005, Ben Burton # Released under the GPL. use strict; use File::Basename; use Text::ParseWords; # Debian constants. # my $jythonHome = '/usr/share/jython'; my $jythonHome = dirname(dirname($0)); my $debianJNIDir = '/usr/lib/jni'; my $defaultRuntime = '/usr/bin/java'; # Establish the user's home directory. # my $home = $ENV{HOME} || $ENV{LOGDIR}; $home or bail("I cannot determine your home directory.", "Please set \$HOME and try again."); # Decide upon the Java runtime. # my $javaRuntime = undef; if ($ENV{JAVA}) { $javaRuntime = $ENV{JAVA}; } elsif (-x $defaultRuntime) { $javaRuntime = $defaultRuntime; } else { &warn("The default Java runtime ($defaultRuntime) cannot be executed.", "Since every Java runtime in Debian must supply an alternative", "for $defaultRuntime, your system is almost certainly misconfigured."); if ($ENV{JAVA_HOME}) { &warn("Using \$JAVA_HOME/bin/java instead."); $javaRuntime = "$ENV{JAVA_HOME}/bin/java"; } else { bail("I cannot find an appropriate Java runtime to use instead.", "Please set \$JAVA to the appropriate binary and try again."); } } # Decide upon and export the classpath. # Add in $CLASSPATH as well as other useful libraries if they exist. # my $classpath = '/usr/share/java/jython.jar'; appendClasspath($ENV{CLASSPATH}); appendJar('/usr/share/java/antlr3-runtime.jar'); # direct dependency of jython appendJar('/usr/share/java/stringtemplate.jar'); # dependency of antlr3-runtime appendJar('/usr/share/java/antlr.jar'); # dependency of stringtemplate appendJar('/usr/share/java/asm3.jar'); # direct dependency of jython appendJar('/usr/share/java/asm3-commons.jar'); # direct dependency of jython appendJar('/usr/share/java/asm3-tree.jar'); # dependency of asm3-commons # asm3-commons also depends on asm3, already included appendJar('/usr/share/java/constantine.jar'); # direct dependency of jython appendJar('/usr/share/java/guava.jar'); # direct dependency of jython appendJar('/usr/share/java/jsr305.jar'); # dependency of guava appendJar('/usr/share/java/jnr-posix.jar'); # direct dependency of jython appendJar('/usr/share/java/jaffl.jar'); # dependency of jnr-posix appendJar('/usr/share/java/jffi.jar'); # dependency of jaffl appendJar('/usr/lib/jffi/jffi-native.jar'); # dependency of jffi-native # jaffl also depends on asm3, already included appendJar('/usr/share/java/jnr-x86asm.jar'); # dependency of jaffl # jnr-posix also depends on constantine, already included appendJar('/usr/share/java/jnr-netdb.jar'); # direct dependency of jython # jnr-netdb also depends on jaffl, already included appendJar('/usr/share/java/livetribe-jsr223.jar'); # direct dependency of jython appendJar('/usr/share/java/jline.jar'); # direct dependency of jython appendJar('/usr/share/java/servlet-api-2.5.jar'); # direct dependency of jython appendJar('/usr/share/java/libreadline-java.jar'); # direct dependency of jython appendJar('/usr/share/java/mysql-connector-java.jar'); # direct dependency of jython appendJar('/usr/share/java/postgresql-jdbc4.jar'); # direct dependency of jython $ENV{CLASSPATH} = $classpath; # Decide upon the python path. my $jythonPath = "/usr/lib/site-python:/usr/share/jython/Lib"; # Set up the cache directory. # my $cacheDir = "$home/.jython-cache"; if (-e $cacheDir and ! -d $cacheDir) { # The expected cache directory exists but is not a directory. # Use a temporary directory instead. $cacheDir = `mktemp -dt jython-cache.XXXXXX` or bail("Could not create temporary cache directory."); chomp $cacheDir; } if (! -e $cacheDir) { # Create a new cache directory. mkdir $cacheDir or bail("Could not create cache directory $cacheDir."); } # We will build up a JNI library path from various places. # my $jniPath = ''; # Run through $JAVA_OPTIONS and extract the java arguments. # Any JNI library path arguments will be removed and put into $jniPath # instead. # my @javaArgs = (); if ($ENV{JAVA_OPTIONS}) { foreach my $arg (shellwords($ENV{JAVA_OPTIONS})) { if ($arg =~ /^-Djava\.library\.path=(.+)$/) { $jniPath = $jniPath ? "$jniPath:$1" : "$1"; } else { push @javaArgs, $arg; } } } # Run through the command-line options and extract the jython arguments. # Any -Djava... arguments will be reassigned as java arguments instead # (unless it's for the JNI library path, in which case it will go to # $jniPath). # my @jythonArgs = (); foreach my $arg (@ARGV) { if ($arg =~ /^-Djava\.library\.path=(.+)$/) { $jniPath = $jniPath ? "$jniPath:$1" : "$1"; } elsif ($arg =~ /^-Djava/) { push @javaArgs, $arg; } else { push @jythonArgs, $arg; } } # Finish by adding the debian JNI directory to $jniPath if it's not # already present, since some popular non-free JVMs still don't support # it (grumble). # if ($jniPath !~ /(^|:)$debianJNIDir($|:)/) { $jniPath = $jniPath ? "$jniPath:$debianJNIDir" : $debianJNIDir; } # Invoke jython! # my @fullCommandLine = ( $javaRuntime ); push @fullCommandLine, @javaArgs; push @fullCommandLine, "-Djava.library.path=$jniPath"; push @fullCommandLine, "-Dpython.home=$jythonHome"; push @fullCommandLine, "-Dpython.path=$jythonPath"; push @fullCommandLine, "-Dpython.executable=$0"; push @fullCommandLine, "-Dpython.cachedir=$cacheDir"; push @fullCommandLine, "-Dpython.console=org.python.util.ReadlineConsole"; push @fullCommandLine, "-Dpython.console.readlinelib=Editline"; $ENV{CALLED_FROM_JYTHONC} and push @fullCommandLine, "-Dpython.jythonc.compiler=$ENV{JAVAC}"; push @fullCommandLine, 'org.python.util.jython'; push @fullCommandLine, @jythonArgs; $ENV{JYTHON_WRAPPER_DEBUG} and print "$ENV{CLASSPATH}\n\n@fullCommandLine\n\n"; exec @fullCommandLine or exit(1); # All done. # exit 0; # Helper routines: # Print the given warning messages to stderr, one per line. # The messages should not contain trailing newlines. # sub warn { foreach (@_) { print STDERR "WARNING: $_\n"; } } # Print the given error messages to stderr, one per line, and exit. # The messages should not contain trailing newlines. # sub bail { foreach (@_) { print STDERR "ERROR: $_\n"; } exit 1; } # Append the given string to the classpath if it's non-empty. # sub appendClasspath { my $string = shift; $string and $classpath = "$classpath:$string"; } # Append the given jar to the classpath if it exists. # sub appendJar { my $jar = shift; -e $jar and $classpath = "$classpath:$jar"; } # Append the given directory to the python path if it exists. # sub appendPythonDir { my $dir = shift; -d $dir and $jythonPath = "$jythonPath:$dir"; } debian/control0000664000000000000000000000475213160620523010601 0ustar Source: jython Section: python Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian Java Maintainers Build-Depends: debhelper (>> 5.0.0), ant, gawk Build-Depends-Indep: default-jdk, python, junit, libasm3-java, antlr3 (>= 3.1), libconstantine-java, libjnr-posix-java, # the following two lines are required as a workaround for bug #633958 libjffi-java, libjnr-x86asm-java, # end of workaround liblivetribe-jsr223-java, libguava-java, libjnr-netdb-java, libreadline-java, libjline-java, libservlet2.5-java, libmysql-java, libpostgresql-jdbc-java Standards-Version: 3.9.5 Homepage: http://www.jython.org/ Vcs-Svn: svn://svn.debian.org/svn/pkg-java/trunk/jython Vcs-Browser: http://svn.debian.org/wsvn/pkg-java/trunk/jython/ Package: jython Architecture: all Section: python Depends: ${misc:Depends}, ${perl:Depends}, default-jre-headless | java5-runtime-headless, libasm3-java, antlr3 (>= 3.1), libconstantine-java, libjnr-posix-java, # the following two lines are required as a workaround for bug #633958 libjffi-java, libjnr-x86asm-java, # end of workaround liblivetribe-jsr223-java, libguava-java, libjnr-netdb-java, libreadline-java (>= 0.8), libjline-java Recommends: default-jdk | java-compiler Suggests: jython-doc, libmysql-java, libpostgresql-jdbc-java, libservlet2.5-java Description: Python seamlessly integrated with Java Jython is an implementation of the high-level, dynamic, object-oriented language Python seamlessly integrated with the Java platform. The predecessor to Jython, JPython, is certified as 100% Pure Java. . Jython is complementary to Java and allows the two languages to be freely mixed. It is especially suited for embedded scripting, interactive experimentation and rapid application development, and it can interact with Java packages or with running Java applications. Package: jython-doc Architecture: all Section: doc Depends: ${misc:Depends} Recommends: w3m | www-browser Suggests: jython Description: Jython documentation including API docs Official documentation for Jython, an implementation of Python seamlessly integrated with Java. This includes detailed Jython usage information as well as the API documentation for the Jython classes. . This package only contains documentation specific to Jython; for general Python documentation including a Python language reference and tutorial, see Python web site : http://docs.python.org/. debian/patches/0000775000000000000000000000000013160620523010615 5ustar debian/patches/1-CVE-2013-2027.patch0000664000000000000000000000176213160620523013372 0ustar Description: Make cache not accessible by anyone else Sensitive information might be being cached or umask can be too relaxed, allowing writes. . This is patch 1/3 fixing CVE-2013-2027. Author: Lubomir Rintel Origin: https://build.opensuse.org/request/show/284056 Bug-SUSE: https://bugzilla.suse.com/show_bug.cgi?id=916224 Bug-Ubuntu: https://bugs.launchpad.net/bugs/1714728 Last-Update: 2017-09-02 --- a/src/org/python/core/packagecache/CachedJarsPackageManager.java +++ b/src/org/python/core/packagecache/CachedJarsPackageManager.java @@ -672,6 +672,12 @@ public abstract class CachedJarsPackageM return false; } + aCachedir1.setReadable(false, false); + aCachedir1.setWritable(false, false); + aCachedir1.setExecutable(false, false); + aCachedir1.setReadable(true, true); + aCachedir1.setWritable(true, true); + aCachedir1.setExecutable(true, true); this.cachedir = aCachedir1; return true; debian/patches/CVE-2016-4000.patch0000664000000000000000000000751413160620523013231 0ustar From: Markus Koschany Date: Fri, 16 Jun 2017 21:29:16 +0200 Subject: CVE-2016-4000 I decided to leave out the changes in test_new.py because they didn't seem important to me. Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864859 Bug-Upstream: http://bugs.jython.org/issue2454 Origin: https://hg.python.org/jython/rev/d06e29d100c0 --- Lib/test/test_java_integration.py | 24 +++++++++++++++++++++--- src/org/python/core/PyBytecode.java | 6 ++++++ src/org/python/core/PyFunction.java | 4 ++++ 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/Lib/test/test_java_integration.py b/Lib/test/test_java_integration.py index 37f158f..2314470 100644 --- a/Lib/test/test_java_integration.py +++ b/Lib/test/test_java_integration.py @@ -9,8 +9,9 @@ import re from collections import deque from test import test_support -from java.lang import (ClassCastException, ExceptionInInitializerError, String, Runnable, System, - Runtime, Math, Byte) +from java.lang import ( + ClassCastException, ExceptionInInitializerError, UnsupportedOperationException, + String, Runnable, System, Runtime, Math, Byte) from java.math import BigDecimal, BigInteger from java.io import (ByteArrayInputStream, ByteArrayOutputStream, File, FileInputStream, FileNotFoundException, FileOutputStream, FileWriter, ObjectInputStream, @@ -526,13 +527,30 @@ class SerializationTest(unittest.TestCase): self.assertEqual(date_list, roundtrip_serialization(date_list)) def test_java_serialization_pycode(self): - def universal_answer(): return 42 serialized_code = roundtrip_serialization(universal_answer.func_code) self.assertEqual(eval(serialized_code), universal_answer()) + def test_java_serialization_pyfunction(self): + # Not directly supported due to lack of general utility + # (globals will usually be in the function object in + # func_globals), and problems with unserialization + # vulnerabilities. Users can always subclass from PyFunction + # for specific cases, as seen in PyCascading + import new + def f(): + return 6 * 7 + max(0, 1, 2) + # However, using the new module, it's possible to create a + # function with no globals, which means the globals will come + # from the current context + g = new.function(f.func_code, {}, "g") + # But still forbid Java deserialization of this function + # object. Use pickling or other support instead. + with self.assertRaises(UnsupportedOperationException): + roundtrip_serialization(g) + def test_builtin_names(self): import __builtin__ names = [x for x in dir(__builtin__)] diff --git a/src/org/python/core/PyBytecode.java b/src/org/python/core/PyBytecode.java index 9418fe8..ba12e4c 100644 --- a/src/org/python/core/PyBytecode.java +++ b/src/org/python/core/PyBytecode.java @@ -66,6 +66,12 @@ public class PyBytecode extends PyBaseCode { debug = defaultDebug; + if (argcount < 0) { + throw Py.ValueError("code: argcount must not be negative"); + } else if (nlocals < 0) { + throw Py.ValueError("code: nlocals must not be negative"); + } + co_argcount = nargs = argcount; co_varnames = varnames; co_nlocals = nlocals; // maybe assert = varnames.length; diff --git a/src/org/python/core/PyFunction.java b/src/org/python/core/PyFunction.java index 18de08d..8042163 100644 --- a/src/org/python/core/PyFunction.java +++ b/src/org/python/core/PyFunction.java @@ -450,4 +450,8 @@ public class PyFunction extends PyObject implements InvocationHandler { @Override public boolean isSequenceType() { return false; } + + private Object readResolve() { + throw new UnsupportedOperationException(); + } } debian/patches/01-build.patch0000664000000000000000000000111312243427020013145 0ustar Description: Adds antlr-runtime to the classpath Author: Emmanuel Bourg --- a/build.xml +++ b/build.xml @@ -183,6 +183,7 @@ + debian/patches/3-CVE-2013-2027.patch0000664000000000000000000000416013160620523013367 0ustar Description: Use cache dir for classes too Instead of attempting to write them next to source files. Java 6 API does not allow for setting sane permissions (i.e. same as those of a source file) and relying on defaults is a security hazard which can lead to information disclosure, or, in case of a too relaxed umask, arbitrary code execution. . Also, this will likely improve performance for non-privileged users which can not write to their distribution's packaged jython tree. . This is patch 3/3 fixing CVE-2013-2027. Author: Lubomir Rintel Origin: https://build.opensuse.org/request/show/284056 Bug-SUSE: https://bugzilla.suse.com/show_bug.cgi?id=916224 Bug-Ubuntu: https://bugs.launchpad.net/bugs/1714728 Last-Update: 2017-09-02 --- a/src/org/python/core/PySystemState.java +++ b/src/org/python/core/PySystemState.java @@ -951,6 +951,12 @@ public class PySystemState extends PyObj Py.newString(Version.getHGVersion())); } + public static File classCache() { + if (cachedir == null) + return null; + return new File(cachedir, "classes"); + } + public static boolean isPackageCacheEnabled() { return cachedir != null; } --- a/src/org/python/core/imp.java +++ b/src/org/python/core/imp.java @@ -253,7 +253,15 @@ public class imp { } public static String makeCompiledFilename(String filename) { - return filename.substring(0, filename.length() - 3) + "$py.class"; + String basename = filename.substring(0, filename.length() - 3) + + "$py.class"; + File cache = Py.getSystemState().classCache(); + + if (cache == null) { + return basename; + } else { + return new File(cache, basename).getPath(); + } } /** @@ -284,6 +292,7 @@ public class imp { if (man != null) { man.checkWrite(compiledFilename); } + new File(compiledFilename).getParentFile().mkdirs(); fop = new FileOutputStream(compiledFilename); fop.write(compiledSource); fop.close(); debian/patches/series0000664000000000000000000000014513160620523012032 0ustar 01-build.patch 1-CVE-2013-2027.patch 2-CVE-2013-2027.patch 3-CVE-2013-2027.patch CVE-2016-4000.patch debian/patches/2-CVE-2013-2027.patch0000664000000000000000000000270413160620523013370 0ustar Description: Avoid code duplication with makeCompiledFilename() This is patch 2/3 fixing CVE-2013-2027. Author: Lubomir Rintel Origin: https://build.opensuse.org/request/show/284056 Bug-SUSE: https://bugzilla.suse.com/show_bug.cgi?id=916224 Bug-Ubuntu: https://bugs.launchpad.net/bugs/1714728 Last-Update: 2017-09-02 --- a/src/org/python/core/imp.java +++ b/src/org/python/core/imp.java @@ -526,7 +526,7 @@ public class imp { static PyObject loadFromSource(PySystemState sys, String name, String modName, String entry) { String dirName = sys.getPath(entry); String sourceName = "__init__.py"; - String compiledName = "__init__$py.class"; + String compiledName = makeCompiledFilename(sourceName); // display names are for identification purposes (e.g. __file__): when entry is // null it forces java.io.File to be a relative path (e.g. foo/bar.py instead of // /tmp/foo/bar.py) @@ -551,7 +551,7 @@ public class imp { if (!pkg) { Py.writeDebug(IMPORT_LOG, "trying source " + dir.getPath()); sourceName = name + ".py"; - compiledName = name + "$py.class"; + compiledName = makeCompiledFilename(sourceName); displaySourceName = new File(displayDirName, sourceName).getPath(); displayCompiledName = new File(displayDirName, compiledName).getPath(); sourceFile = new File(dirName, sourceName); debian/jython-doc.doc-base.api0000664000000000000000000000050112243403252013406 0ustar Document: jython-doc-api Title: Jython API Documentation Author: Jython Development Team Abstract: API documentation for the Jython classes. Section: Programming Format: HTML Index: /usr/share/doc/jython-doc/html/javadoc/index.html Files: /usr/share/doc/jython-doc/html/javadoc/*.html debian/jython-doc.install0000664000000000000000000000003312243403252012627 0ustar usr/share/doc/jython-doc/* debian/jython.README.Debian0000664000000000000000000000056312243403252012544 0ustar Jython for Debian ----------------- The Jython classes are stored in the archive /usr/share/java/jython.jar. Consult the jython(1) man page for details about invocation of the Jython interpreter. The Jython API is provided by the jython-doc package in /usr/share/doc/jython-doc. The complete Jython documentation is available at http://jython.org/currentdocs.html