New Upstream Snapshot - jython

Ready changes

Summary

Merged new upstream version: 2.7.3+repack1+git20220914.1.ad164ef (was: 2.7.3+repack1).

Resulting package

Built on 2023-01-07T17:56 (took 52m14s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-snapshots jython-docapt install -t fresh-snapshots jython

Diff

diff --git a/.github/workflows/ant-javatest.yml b/.github/workflows/ant-javatest.yml
deleted file mode 100644
index ebcecaa..0000000
--- a/.github/workflows/ant-javatest.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-# Run ant javatest on Jython 2.7 (GitHub action)
-
-name: ant javatest 2.7
-
-on:
-  push:
-    branches: [ master ]
-  pull_request:
-    branches: [ master ]
-
-
-jobs:
-
-  ant-javatest:
-
-    runs-on: ${{ matrix.os }}
-
-    strategy:
-      matrix:
-        os: [ubuntu-latest, windows-latest]
-        java: [8, 11]
-      fail-fast: false
-
-    steps:
-    - run: echo "Branch ${{ github.ref }} of repository ${{ github.repository }}."
-
-    # Some tests require exactly-expected line endings
-    - run: git config --global core.autocrlf input
-
-    - uses: actions/checkout@v3
-
-    - name: Set up JDK ${{ matrix.java }}
-      uses: actions/setup-java@v3
-      with:
-        java-version: ${{ matrix.java }}
-        distribution: 'temurin'
-
-    - name: Build with Ant on ${{ matrix.os }}
-      run: ant -noinput -buildfile build.xml developer-build
-
-    - name: Unit test with Ant on ${{ matrix.os }}
-      run: ant -noinput -buildfile build.xml javatest
-
diff --git a/.github/workflows/ant-regrtest.yml b/.github/workflows/ant-regrtest.yml
deleted file mode 100644
index 223d461..0000000
--- a/.github/workflows/ant-regrtest.yml
+++ /dev/null
@@ -1,56 +0,0 @@
-# Run ant regrtest on Jython 2.7 (GitHub action)
-
-name: ant regrtest 2.7
-
-on:
-  push:
-    branches: [ master ]
-  pull_request:
-    branches: [ master ]
-
-
-jobs:
-
-  ant-regrtest-ubuntu-jdk8:
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - run: echo "Branch ${{ github.ref }} of repository ${{ github.repository }}."
-
-    # Some tests require exactly-expected line endings
-    - run: git config --global core.autocrlf input
-
-    - uses: actions/checkout@v3
-
-    - name: Set up JDK 8
-      uses: actions/setup-java@v3
-      with:
-        java-version: '8'
-        distribution: 'temurin'
-
-    - name: Regression test with Ant
-      run: ant -noinput -buildfile build.xml regrtest-ci
-
-
-  ant-regrtest-windows-jdk11:
-
-    runs-on: windows-latest
-
-    steps:
-    - run: echo "Branch ${{ github.ref }} of repository ${{ github.repository }}."
-
-    # Some tests require exactly-expected line endings
-    - run: git config --global core.autocrlf input
-
-    - uses: actions/checkout@v3
-
-    - name: Set up JDK 11
-      uses: actions/setup-java@v3
-      with:
-        java-version: '11'
-        distribution: 'temurin'
-
-    - name: Regression test with Ant
-      run: ant -noinput -buildfile build.xml regrtest-ci
-
diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml
deleted file mode 100644
index 6fedd46..0000000
--- a/.github/workflows/codespell.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Check text for common misspellings and report them (GitHub Action)
-# https://pypi.org/project/codespell
-
-name: codespell
-
-on: [pull_request, push]
-
-jobs:
-  codespell-text:
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v3
-    - run: pip install codespell
-    - run: codespell --count --ignore-words=Misc/codespell/words.ignore
-                  NEWS README.md README.txt LICENSE.txt Misc/INDEX Misc/codespell/README
-
diff --git a/.github/workflows/launcher-test.yml b/.github/workflows/launcher-test.yml
deleted file mode 100644
index 4f7c3fc..0000000
--- a/.github/workflows/launcher-test.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-# Test launcher for Jython 2.7 (GitHub action)
-
-# The motivation for the test was the mis-handling of JVM arguments
-# in jython.py, but we take this excuse to run a few tests on macOS,
-# where we don't currently run the regression test in full.
-
-name: launcher test 2.7
-
-on:
-  push:
-    branches: [ master ]
-  pull_request:
-    branches: [ master ]
-
-
-jobs:
-
-  launcher-test-macos-jdk8:
-
-    runs-on: macos-latest
-
-    steps:
-    - run: echo "Branch ${{ github.ref }} of repository ${{ github.repository }}."
-
-    # Some tests require exactly-expected line endings
-    - run: git config --global core.autocrlf input
-
-    - uses: actions/checkout@v3
-
-    - name: Set up JDK 8
-      uses: actions/setup-java@v3
-      with:
-        java-version: '8'
-        distribution: 'temurin'
-
-    - name: Build with Ant
-      run: ant -noinput -buildfile build.xml
-
-    - name: Show JVM arguments when launched by script
-      run: dist/bin/jython -c 'from java.lang.management import ManagementFactory; print ManagementFactory.getRuntimeMXBean().getInputArguments()'
-
-    - name: Show JVM arguments when launched by Python
-      run: python2 dist/bin/jython.py -c 'from java.lang.management import ManagementFactory; print ManagementFactory.getRuntimeMXBean().getInputArguments()'
-
-    - name: Regression tests for invocation of the interpreter with various command line arguments
-      run: dist/bin/jython -m test.test_cmd_line
-
-    - name: Regression tests for command line execution of scripts
-      run: python2 dist/bin/jython.py -m test.test_cmd_line_script
-
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 4feb914..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,63 +0,0 @@
-*.class
-*.pyc
-*.pyd
-*.pyo
-*.orig
-*.rej
-*.swp
-\#*
-*~
-
-.gradle
-
-# IntelliJ files
-*.eml
-*.ipr
-*.iml
-*.iws
-.idea/*
-
-# Eclipse files
-.classpath
-.externalToolBuilders/*
-.project
-.pydevproject
-
-# Netbeans files
-nbproject
-nbbuild.xml
-
-.vagrant
-
-.AppleDouble
-.DS_Store
-.settings
-__pycache__
-bin
-
-# Jython specific
-ant.properties
-build
-build2
-cachedir
-.jython_cache
-dist
-publications
-reports
-jffi*.dll
-$test_*
-*.tests
-
-profile.txt
-out
-
-# Stuff dropped by bug tests (just in case that ant target is used)
-bugtests/support_config.py
-bugtests/test392m.py
-bugtests/*.err
-bugtests/*.out
-bugtests/*.zip
-bugtests/**/*.jar
-bugtests/test*jar
-bugtests/test*cache/
-bugtests/test*javapackage/
diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py
new file mode 100644
index 0000000..b2f5f88
--- /dev/null
+++ b/Lib/ensurepip/__init__.py
@@ -0,0 +1,227 @@
+#!/usr/bin/env python2
+from __future__ import print_function
+
+import os
+import os.path
+import pkgutil
+import shutil
+import sys
+import tempfile
+
+
+__all__ = ["version", "bootstrap"]
+
+
+_SETUPTOOLS_VERSION = "41.0.1"
+
+_PIP_VERSION = "19.1"
+
+# pip currently requires ssl support, so we try to provide a nicer
+# error message when that is missing (http://bugs.python.org/issue19744)
+_MISSING_SSL_MESSAGE = ("pip {} requires SSL/TLS".format(_PIP_VERSION))
+try:
+    import ssl
+except ImportError:
+    ssl = None
+
+    def _require_ssl_for_pip():
+        raise RuntimeError(_MISSING_SSL_MESSAGE)
+else:
+    def _require_ssl_for_pip():
+        pass
+
+_PROJECTS = [
+    ("setuptools", _SETUPTOOLS_VERSION),
+    ("pip", _PIP_VERSION),
+]
+
+
+def _run_pip(args, additional_paths=None):
+    # Add our bundled software to the sys.path so we can import it
+    if additional_paths is not None:
+        sys.path = additional_paths + sys.path
+
+    # Install the bundled software
+    from pip._internal import main
+    main(args)
+
+
+def version():
+    """
+    Returns a string specifying the bundled version of pip.
+    """
+    return _PIP_VERSION
+
+
+def _disable_pip_configuration_settings():
+    # We deliberately ignore all pip environment variables
+    # when invoking pip
+    # See http://bugs.python.org/issue19734 for details
+    keys_to_remove = [k for k in os.environ if k.startswith("PIP_")]
+    for k in keys_to_remove:
+        del os.environ[k]
+    # We also ignore the settings in the default pip configuration file
+    # See http://bugs.python.org/issue20053 for details
+    os.environ['PIP_CONFIG_FILE'] = os.devnull
+
+
+def bootstrap(root=None, upgrade=False, user=False,
+              altinstall=False, default_pip=True,
+              verbosity=0):
+    """
+    Bootstrap pip into the current Python installation (or the given root
+    directory).
+
+    Note that calling this function will alter both sys.path and os.environ.
+    """
+    if altinstall and default_pip:
+        raise ValueError("Cannot use altinstall and default_pip together")
+
+    _require_ssl_for_pip()
+    _disable_pip_configuration_settings()
+
+    # By default, installing pip and setuptools installs all of the
+    # following scripts (X.Y == running Python version):
+    #
+    #   pip, pipX, pipX.Y, easy_install, easy_install-X.Y
+    #
+    # pip 1.5+ allows ensurepip to request that some of those be left out
+    if altinstall:
+        # omit pip, pipX and easy_install
+        os.environ["ENSUREPIP_OPTIONS"] = "altinstall"
+    elif not default_pip:
+        # omit pip and easy_install
+        os.environ["ENSUREPIP_OPTIONS"] = "install"
+
+    tmpdir = tempfile.mkdtemp()
+    try:
+        # Put our bundled wheels into a temporary directory and construct the
+        # additional paths that need added to sys.path
+        additional_paths = []
+        for project, version in _PROJECTS:
+            wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version)
+            whl = pkgutil.get_data(
+                "ensurepip",
+                "_bundled/{}".format(wheel_name),
+            )
+            with open(os.path.join(tmpdir, wheel_name), "wb") as fp:
+                fp.write(whl)
+
+            additional_paths.append(os.path.join(tmpdir, wheel_name))
+
+        # Construct the arguments to be passed to the pip command
+        args = ["install", "--no-index", "--find-links", tmpdir]
+        if root:
+            args += ["--root", root]
+        if upgrade:
+            args += ["--upgrade"]
+        if user:
+            args += ["--user"]
+        if verbosity:
+            args += ["-" + "v" * verbosity]
+
+        _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
+    finally:
+        shutil.rmtree(tmpdir, ignore_errors=True)
+
+
+def _uninstall_helper(verbosity=0):
+    """Helper to support a clean default uninstall process on Windows
+
+    Note that calling this function may alter os.environ.
+    """
+    # Nothing to do if pip was never installed, or has been removed
+    try:
+        import pip
+    except ImportError:
+        return
+
+    # If the pip version doesn't match the bundled one, leave it alone
+    if pip.__version__ != _PIP_VERSION:
+        msg = ("ensurepip will only uninstall a matching version "
+               "({!r} installed, {!r} bundled)")
+        print(msg.format(pip.__version__, _PIP_VERSION), file=sys.stderr)
+        return
+
+    _require_ssl_for_pip()
+    _disable_pip_configuration_settings()
+
+    # Construct the arguments to be passed to the pip command
+    args = ["uninstall", "-y"]
+    if verbosity:
+        args += ["-" + "v" * verbosity]
+
+    _run_pip(args + [p[0] for p in reversed(_PROJECTS)])
+
+
+def _main(argv=None):
+    if ssl is None:
+        print("Ignoring ensurepip failure: {}".format(_MISSING_SSL_MESSAGE),
+              file=sys.stderr)
+        return
+
+    import argparse
+    parser = argparse.ArgumentParser(prog="python -m ensurepip")
+    parser.add_argument(
+        "--version",
+        action="version",
+        version="pip {}".format(version()),
+        help="Show the version of pip that is bundled with this Python.",
+    )
+    parser.add_argument(
+        "-v", "--verbose",
+        action="count",
+        default=0,
+        dest="verbosity",
+        help=("Give more output. Option is additive, and can be used up to 3 "
+              "times."),
+    )
+    parser.add_argument(
+        "-U", "--upgrade",
+        action="store_true",
+        default=False,
+        help="Upgrade pip and dependencies, even if already installed.",
+    )
+    parser.add_argument(
+        "--user",
+        action="store_true",
+        default=False,
+        help="Install using the user scheme.",
+    )
+    parser.add_argument(
+        "--root",
+        default=None,
+        help="Install everything relative to this alternate root directory.",
+    )
+    parser.add_argument(
+        "--altinstall",
+        action="store_true",
+        default=False,
+        help=("Make an alternate install, installing only the X.Y versioned"
+              "scripts (Default: pipX, pipX.Y, easy_install-X.Y)"),
+    )
+    parser.add_argument(
+        "--default-pip",
+        action="store_true",
+        default=True,
+        dest="default_pip",
+        help=argparse.SUPPRESS,
+    )
+    parser.add_argument(
+        "--no-default-pip",
+        action="store_false",
+        dest="default_pip",
+        help=("Make a non default install, installing only the X and X.Y "
+              "versioned scripts."),
+    )
+
+    args = parser.parse_args(argv)
+
+    bootstrap(
+        root=args.root,
+        upgrade=args.upgrade,
+        user=args.user,
+        verbosity=args.verbosity,
+        altinstall=args.altinstall,
+        default_pip=args.default_pip,
+    )
diff --git a/Lib/ensurepip/_bundled/pip-19.1-py2.py3-none-any.whl b/Lib/ensurepip/_bundled/pip-19.1-py2.py3-none-any.whl
new file mode 100644
index 0000000..2d3ac5d
Binary files /dev/null and b/Lib/ensurepip/_bundled/pip-19.1-py2.py3-none-any.whl differ
diff --git a/Lib/ensurepip/_bundled/setuptools-41.0.1-py2.py3-none-any.whl b/Lib/ensurepip/_bundled/setuptools-41.0.1-py2.py3-none-any.whl
new file mode 100644
index 0000000..92836e9
Binary files /dev/null and b/Lib/ensurepip/_bundled/setuptools-41.0.1-py2.py3-none-any.whl differ
diff --git a/NEWS b/NEWS
index dd767b3..2f0e565 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,19 @@ For more details, three sources are available according to type:
  - [ GH-n ], please see https://github.com/jython/jython.
  - [ FM-n ], please see https://github.com/jython/frozen-mirror.
 
+==============================================================================
+Jython 2.7.4
+==============================================================================
+
+New Features
+
+    - Nothing yet.
+
+
+Jython 2.7.4a1 Bugs fixed
+    - [ GH- ] 
+
+
 ==============================================================================
 Jython 2.7.3
 ==============================================================================
diff --git a/build.gradle b/build.gradle
index cc1c31d..0a0b119 100644
--- a/build.gradle
+++ b/build.gradle
@@ -45,7 +45,7 @@ import java.text.SimpleDateFormat
 // Versions are specified in this grammar:
 // <major> . <minor> ( . <micro> )? ( <release> <serial> )? ( - <word> )?
 
-version = '2.7.3'
+version = '2.7.4a1'
 
 // Valid examples (please preserve in comments):
 //version = '2.7.2a2'
diff --git a/build.xml b/build.xml
index 52dfe71..93e09a3 100644
--- a/build.xml
+++ b/build.xml
@@ -101,11 +101,11 @@ informix.jar = ../support/jdbc-4.10.12.jar
              specify that suffix by -Dsnapshot.name on the ant command line. -->
         <property name="jython.major_version" value="2"/>
         <property name="jython.minor_version" value="7"/>
-        <property name="jython.micro_version" value="3"/>
-        <property name="jython.release_level" value="${PY_RELEASE_LEVEL_FINAL}"/>
+        <property name="jython.micro_version" value="4"/>
+        <property name="jython.release_level" value="${PY_RELEASE_LEVEL_ALPHA}"/>
 
         <!-- Zero at full release: one-up number for alpha, beta and candidate versions. -->
-        <property name="jython.release_serial" value="0"/>
+        <property name="jython.release_serial" value="1"/>
     </target>
 
     <target name="common-constants">
diff --git a/debian/changelog b/debian/changelog
index b4acd31..8a98dd4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+jython (2.7.3+repack1+git20220914.1.ad164ef-1) UNRELEASED; urgency=low
+
+  * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Sat, 07 Jan 2023 17:42:59 -0000
+
 jython (2.7.3+repack1-1) unstable; urgency=medium
 
   * New upstream release
diff --git a/debian/patches/00-missing-dep.patch b/debian/patches/00-missing-dep.patch
index 285285f..06a936d 100644
--- a/debian/patches/00-missing-dep.patch
+++ b/debian/patches/00-missing-dep.patch
@@ -1,9 +1,9 @@
 Description: Adds antlr-runtime to the classpath
 Author: Emmanuel Bourg <ebourg@apache.org>
-Index: jython/build.xml
+Index: jython.git/build.xml
 ===================================================================
---- jython.orig/build.xml
-+++ jython/build.xml
+--- jython.git.orig/build.xml
++++ jython.git/build.xml
 @@ -250,7 +250,10 @@ informix.jar = ../support/jdbc-4.10.12.j
  
              <!-- Other JARs (alphabetical) -->
diff --git a/debian/patches/01-classpath.patch b/debian/patches/01-classpath.patch
index edb4d49..bc9189c 100644
--- a/debian/patches/01-classpath.patch
+++ b/debian/patches/01-classpath.patch
@@ -1,10 +1,10 @@
 Description: patch build.xml to extract, re-arrange and re-inject
  classpaths. See debian/rules.
 Author: Gilles Filippini <pini@deian.org>
-Index: jython/build.xml
+Index: jython.git/build.xml
 ===================================================================
---- jython.orig/build.xml
-+++ jython/build.xml
+--- jython.git.orig/build.xml
++++ jython.git/build.xml
 @@ -237,7 +237,7 @@ informix.jar = ../support/jdbc-4.10.12.j
              <istrue value="${oracle.present}"/>
          </condition>
diff --git a/debian/patches/05-no-com.carrotsearch.sizeof.patch b/debian/patches/05-no-com.carrotsearch.sizeof.patch
index e84a8fc..999caf5 100644
--- a/debian/patches/05-no-com.carrotsearch.sizeof.patch
+++ b/debian/patches/05-no-com.carrotsearch.sizeof.patch
@@ -1,7 +1,7 @@
-Index: jython/Lib/test/test_sys.py
+Index: jython.git/Lib/test/test_sys.py
 ===================================================================
---- jython.orig/Lib/test/test_sys.py
-+++ jython/Lib/test/test_sys.py
+--- jython.git.orig/Lib/test/test_sys.py
++++ jython.git/Lib/test/test_sys.py
 @@ -273,61 +273,6 @@ class SysModuleTest(unittest.TestCase):
          self.assertEqual(out, '?')
  
@@ -73,10 +73,10 @@ Index: jython/Lib/test/test_sys.py
  
  if __name__ == "__main__":
      test_main()
-Index: jython/src/org/python/core/PySystemState.java
+Index: jython.git/src/org/python/core/PySystemState.java
 ===================================================================
---- jython.orig/src/org/python/core/PySystemState.java
-+++ jython/src/org/python/core/PySystemState.java
+--- jython.git.orig/src/org/python/core/PySystemState.java
++++ jython.git/src/org/python/core/PySystemState.java
 @@ -55,8 +55,6 @@ import org.python.expose.ExposedType;
  import org.python.modules.Setup;
  import org.python.util.Generic;
diff --git a/debian/patches/08-java-backward-compatibility.patch b/debian/patches/08-java-backward-compatibility.patch
index e11903a..465ed7c 100644
--- a/debian/patches/08-java-backward-compatibility.patch
+++ b/debian/patches/08-java-backward-compatibility.patch
@@ -1,10 +1,10 @@
 Description: Preserves the backward compatibility with previous Java versions when built with Java 11+
 Author: Emmanuel Bourg <ebourg@apache.org>
 Forwarded: not
-Index: jython/build.xml
+Index: jython.git/build.xml
 ===================================================================
---- jython.orig/build.xml
-+++ jython/build.xml
+--- jython.git.orig/build.xml
++++ jython.git/build.xml
 @@ -700,6 +700,7 @@ The text for an official release would c
                  destdir="${compile.dir}"
                  target="${jdk.target.version}"
diff --git a/debian/patches/CVE-2019-16935.patch b/debian/patches/CVE-2019-16935.patch
index 4a903cc..2406951 100644
--- a/debian/patches/CVE-2019-16935.patch
+++ b/debian/patches/CVE-2019-16935.patch
@@ -5,10 +5,10 @@ Description: fix CVE-2019-16935
  Patch backported from cython commit 8eb6415
 Origin: https://github.com/python/cpython/commit/8eb64155ff26823542ccf0225b3d57b6ae36ea89
 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1027149
-Index: jython/lib-python/2.7/DocXMLRPCServer.py
+Index: jython.git/lib-python/2.7/DocXMLRPCServer.py
 ===================================================================
---- jython.orig/lib-python/2.7/DocXMLRPCServer.py
-+++ jython/lib-python/2.7/DocXMLRPCServer.py
+--- jython.git.orig/lib-python/2.7/DocXMLRPCServer.py
++++ jython.git/lib-python/2.7/DocXMLRPCServer.py
 @@ -20,6 +20,16 @@ from SimpleXMLRPCServer import (SimpleXM
              CGIXMLRPCRequestHandler,
              resolve_dotted_attribute)
@@ -36,10 +36,10 @@ Index: jython/lib-python/2.7/DocXMLRPCServer.py
  
  class DocXMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
      """XML-RPC and documentation request handler class.
-Index: jython/lib-python/2.7/test/test_docxmlrpc.py
+Index: jython.git/lib-python/2.7/test/test_docxmlrpc.py
 ===================================================================
---- jython.orig/lib-python/2.7/test/test_docxmlrpc.py
-+++ jython/lib-python/2.7/test/test_docxmlrpc.py
+--- jython.git.orig/lib-python/2.7/test/test_docxmlrpc.py
++++ jython.git/lib-python/2.7/test/test_docxmlrpc.py
 @@ -1,5 +1,6 @@
  from DocXMLRPCServer import DocXMLRPCServer
  import httplib
diff --git a/debian/patches/antlr-getEOFToken.patch b/debian/patches/antlr-getEOFToken.patch
index fda317b..9cdb9c0 100644
--- a/debian/patches/antlr-getEOFToken.patch
+++ b/debian/patches/antlr-getEOFToken.patch
@@ -1,8 +1,8 @@
 Description: ANTLR 3.2 doesn't have the getEOFToken() method
-Index: jython/grammar/Python.g
+Index: jython.git/grammar/Python.g
 ===================================================================
---- jython.orig/grammar/Python.g
-+++ jython/grammar/Python.g
+--- jython.git.orig/grammar/Python.g
++++ jython.git/grammar/Python.g
 @@ -267,7 +267,7 @@ private ErrorHandler errorHandler;
                      eofWhileNested = true;
                  }
@@ -12,10 +12,10 @@ Index: jython/grammar/Python.g
              }
              try {
                  mTokens();
-Index: jython/grammar/PythonPartial.g
+Index: jython.git/grammar/PythonPartial.g
 ===================================================================
---- jython.orig/grammar/PythonPartial.g
-+++ jython/grammar/PythonPartial.g
+--- jython.git.orig/grammar/PythonPartial.g
++++ jython.git/grammar/PythonPartial.g
 @@ -138,7 +138,7 @@ private ErrorHandler errorHandler;
                      eofWhileNested = true;
                  }
diff --git a/debian/patches/javadoc-classpath.patch b/debian/patches/javadoc-classpath.patch
index 420f08a..96ab54c 100644
--- a/debian/patches/javadoc-classpath.patch
+++ b/debian/patches/javadoc-classpath.patch
@@ -1,7 +1,7 @@
-Index: jython/build.xml
+Index: jython.git/build.xml
 ===================================================================
---- jython.orig/build.xml
-+++ jython/build.xml
+--- jython.git.orig/build.xml
++++ jython.git/build.xml
 @@ -1048,6 +1048,7 @@ The text for an official release would c
          <path id="javadoc.classpath">
              <pathelement path="${java.class.path}" />
diff --git a/debian/patches/reproducible-builds.patch b/debian/patches/reproducible-builds.patch
index 240d098..e62cc23 100644
--- a/debian/patches/reproducible-builds.patch
+++ b/debian/patches/reproducible-builds.patch
@@ -1,7 +1,7 @@
-Index: jython/build.xml
+Index: jython.git/build.xml
 ===================================================================
---- jython.orig/build.xml
-+++ jython/build.xml
+--- jython.git.orig/build.xml
++++ jython.git/build.xml
 @@ -740,8 +740,12 @@ The text for an official release would c
              <arg path="${out}"/>
              <arg value="-lib"/>
diff --git a/extlibs/antlr-complete-3.5.2.jar b/extlibs/antlr-complete-3.5.2.jar
new file mode 100644
index 0000000..260de76
Binary files /dev/null and b/extlibs/antlr-complete-3.5.2.jar differ
diff --git a/extlibs/antlr-runtime-3.5.2.jar b/extlibs/antlr-runtime-3.5.2.jar
new file mode 100644
index 0000000..d48e3e8
Binary files /dev/null and b/extlibs/antlr-runtime-3.5.2.jar differ
diff --git a/extlibs/asm-9.3.jar b/extlibs/asm-9.3.jar
new file mode 100644
index 0000000..bd8b948
Binary files /dev/null and b/extlibs/asm-9.3.jar differ
diff --git a/extlibs/asm-commons-9.3.jar b/extlibs/asm-commons-9.3.jar
new file mode 100644
index 0000000..3ce4b82
Binary files /dev/null and b/extlibs/asm-commons-9.3.jar differ
diff --git a/extlibs/asm-util-9.3.jar b/extlibs/asm-util-9.3.jar
new file mode 100644
index 0000000..15e5efd
Binary files /dev/null and b/extlibs/asm-util-9.3.jar differ
diff --git a/extlibs/bcpkix-jdk18on-1.71.jar b/extlibs/bcpkix-jdk18on-1.71.jar
new file mode 100644
index 0000000..e2f51bd
Binary files /dev/null and b/extlibs/bcpkix-jdk18on-1.71.jar differ
diff --git a/extlibs/bcprov-jdk18on-1.71.jar b/extlibs/bcprov-jdk18on-1.71.jar
new file mode 100644
index 0000000..c996730
Binary files /dev/null and b/extlibs/bcprov-jdk18on-1.71.jar differ
diff --git a/extlibs/commons-compress-1.21.jar b/extlibs/commons-compress-1.21.jar
new file mode 100644
index 0000000..4892334
Binary files /dev/null and b/extlibs/commons-compress-1.21.jar differ
diff --git a/extlibs/cpptasks/cpptasks.jar b/extlibs/cpptasks/cpptasks.jar
new file mode 100644
index 0000000..1febc9c
Binary files /dev/null and b/extlibs/cpptasks/cpptasks.jar differ
diff --git a/extlibs/failureaccess-1.0.1.jar b/extlibs/failureaccess-1.0.1.jar
new file mode 100644
index 0000000..9b56dc7
Binary files /dev/null and b/extlibs/failureaccess-1.0.1.jar differ
diff --git a/extlibs/guava-31.0.1-jre.jar b/extlibs/guava-31.0.1-jre.jar
new file mode 100644
index 0000000..324887d
Binary files /dev/null and b/extlibs/guava-31.0.1-jre.jar differ
diff --git a/extlibs/icu4j-71.1.jar b/extlibs/icu4j-71.1.jar
new file mode 100644
index 0000000..7c5cb50
Binary files /dev/null and b/extlibs/icu4j-71.1.jar differ
diff --git a/extlibs/jarjar-1.7.2.jar b/extlibs/jarjar-1.7.2.jar
new file mode 100644
index 0000000..305260e
Binary files /dev/null and b/extlibs/jarjar-1.7.2.jar differ
diff --git a/extlibs/java-sizeof-0.0.5.jar b/extlibs/java-sizeof-0.0.5.jar
new file mode 100644
index 0000000..23c555c
Binary files /dev/null and b/extlibs/java-sizeof-0.0.5.jar differ
diff --git a/extlibs/jffi-1.3.9.jar b/extlibs/jffi-1.3.9.jar
new file mode 100644
index 0000000..2e89e06
Binary files /dev/null and b/extlibs/jffi-1.3.9.jar differ
diff --git a/extlibs/jffi-Darwin.jar b/extlibs/jffi-Darwin.jar
new file mode 100644
index 0000000..5622852
Binary files /dev/null and b/extlibs/jffi-Darwin.jar differ
diff --git a/extlibs/jffi-aarch64-Linux.jar b/extlibs/jffi-aarch64-Linux.jar
new file mode 100644
index 0000000..1d4438e
Binary files /dev/null and b/extlibs/jffi-aarch64-Linux.jar differ
diff --git a/extlibs/jffi-arm-Linux.jar b/extlibs/jffi-arm-Linux.jar
new file mode 100644
index 0000000..f9a048b
Binary files /dev/null and b/extlibs/jffi-arm-Linux.jar differ
diff --git a/extlibs/jffi-i386-FreeBSD.jar b/extlibs/jffi-i386-FreeBSD.jar
new file mode 100644
index 0000000..8235a34
Binary files /dev/null and b/extlibs/jffi-i386-FreeBSD.jar differ
diff --git a/extlibs/jffi-i386-Linux.jar b/extlibs/jffi-i386-Linux.jar
new file mode 100644
index 0000000..7e23b40
Binary files /dev/null and b/extlibs/jffi-i386-Linux.jar differ
diff --git a/extlibs/jffi-i386-OpenBSD.jar b/extlibs/jffi-i386-OpenBSD.jar
new file mode 100644
index 0000000..8235a34
Binary files /dev/null and b/extlibs/jffi-i386-OpenBSD.jar differ
diff --git a/extlibs/jffi-i386-SunOS.jar b/extlibs/jffi-i386-SunOS.jar
new file mode 100644
index 0000000..68bcacc
Binary files /dev/null and b/extlibs/jffi-i386-SunOS.jar differ
diff --git a/extlibs/jffi-i386-Windows.jar b/extlibs/jffi-i386-Windows.jar
new file mode 100644
index 0000000..90a6bae
Binary files /dev/null and b/extlibs/jffi-i386-Windows.jar differ
diff --git a/extlibs/jffi-ppc-AIX.jar b/extlibs/jffi-ppc-AIX.jar
new file mode 100644
index 0000000..eed0ab7
Binary files /dev/null and b/extlibs/jffi-ppc-AIX.jar differ
diff --git a/extlibs/jffi-ppc-Linux.jar b/extlibs/jffi-ppc-Linux.jar
new file mode 100644
index 0000000..8235a34
Binary files /dev/null and b/extlibs/jffi-ppc-Linux.jar differ
diff --git a/extlibs/jffi-ppc64-Linux.jar b/extlibs/jffi-ppc64-Linux.jar
new file mode 100644
index 0000000..cfae4bb
Binary files /dev/null and b/extlibs/jffi-ppc64-Linux.jar differ
diff --git a/extlibs/jffi-ppc64le-Linux.jar b/extlibs/jffi-ppc64le-Linux.jar
new file mode 100644
index 0000000..7931dd1
Binary files /dev/null and b/extlibs/jffi-ppc64le-Linux.jar differ
diff --git a/extlibs/jffi-s390x-Linux.jar b/extlibs/jffi-s390x-Linux.jar
new file mode 100644
index 0000000..559e9d2
Binary files /dev/null and b/extlibs/jffi-s390x-Linux.jar differ
diff --git a/extlibs/jffi-sparc-SunOS.jar b/extlibs/jffi-sparc-SunOS.jar
new file mode 100644
index 0000000..8235a34
Binary files /dev/null and b/extlibs/jffi-sparc-SunOS.jar differ
diff --git a/extlibs/jffi-sparcv9-SunOS.jar b/extlibs/jffi-sparcv9-SunOS.jar
new file mode 100644
index 0000000..306788c
Binary files /dev/null and b/extlibs/jffi-sparcv9-SunOS.jar differ
diff --git a/extlibs/jffi-x86_64-FreeBSD.jar b/extlibs/jffi-x86_64-FreeBSD.jar
new file mode 100644
index 0000000..32824a7
Binary files /dev/null and b/extlibs/jffi-x86_64-FreeBSD.jar differ
diff --git a/extlibs/jffi-x86_64-Linux.jar b/extlibs/jffi-x86_64-Linux.jar
new file mode 100644
index 0000000..99deb01
Binary files /dev/null and b/extlibs/jffi-x86_64-Linux.jar differ
diff --git a/extlibs/jffi-x86_64-OpenBSD.jar b/extlibs/jffi-x86_64-OpenBSD.jar
new file mode 100644
index 0000000..3e14e03
Binary files /dev/null and b/extlibs/jffi-x86_64-OpenBSD.jar differ
diff --git a/extlibs/jffi-x86_64-SunOS.jar b/extlibs/jffi-x86_64-SunOS.jar
new file mode 100644
index 0000000..b824042
Binary files /dev/null and b/extlibs/jffi-x86_64-SunOS.jar differ
diff --git a/extlibs/jffi-x86_64-Windows.jar b/extlibs/jffi-x86_64-Windows.jar
new file mode 100644
index 0000000..667e48d
Binary files /dev/null and b/extlibs/jffi-x86_64-Windows.jar differ
diff --git a/extlibs/jline-2.14.5.jar b/extlibs/jline-2.14.5.jar
new file mode 100644
index 0000000..761acd4
Binary files /dev/null and b/extlibs/jline-2.14.5.jar differ
diff --git a/extlibs/jnr-constants-0.10.3.jar b/extlibs/jnr-constants-0.10.3.jar
new file mode 100644
index 0000000..54f14d6
Binary files /dev/null and b/extlibs/jnr-constants-0.10.3.jar differ
diff --git a/extlibs/jnr-ffi-2.2.12.jar b/extlibs/jnr-ffi-2.2.12.jar
new file mode 100644
index 0000000..db0e03f
Binary files /dev/null and b/extlibs/jnr-ffi-2.2.12.jar differ
diff --git a/extlibs/jnr-netdb-1.2.0.jar b/extlibs/jnr-netdb-1.2.0.jar
new file mode 100644
index 0000000..e394345
Binary files /dev/null and b/extlibs/jnr-netdb-1.2.0.jar differ
diff --git a/extlibs/jnr-posix-3.1.15.jar b/extlibs/jnr-posix-3.1.15.jar
new file mode 100644
index 0000000..5d6492b
Binary files /dev/null and b/extlibs/jnr-posix-3.1.15.jar differ
diff --git a/extlibs/junit-4.10.jar b/extlibs/junit-4.10.jar
new file mode 100644
index 0000000..bf5c0b9
Binary files /dev/null and b/extlibs/junit-4.10.jar differ
diff --git a/extlibs/mockrunner-0.4.1/jar/commons-logging-1.0.4.jar b/extlibs/mockrunner-0.4.1/jar/commons-logging-1.0.4.jar
new file mode 100644
index 0000000..b73a80f
Binary files /dev/null and b/extlibs/mockrunner-0.4.1/jar/commons-logging-1.0.4.jar differ
diff --git a/extlibs/mockrunner-0.4.1/jar/j2ee1.3/servlet.jar b/extlibs/mockrunner-0.4.1/jar/j2ee1.3/servlet.jar
new file mode 100644
index 0000000..74329dc
Binary files /dev/null and b/extlibs/mockrunner-0.4.1/jar/j2ee1.3/servlet.jar differ
diff --git a/extlibs/mockrunner-0.4.1/jar/jakarta-oro-2.0.8.jar b/extlibs/mockrunner-0.4.1/jar/jakarta-oro-2.0.8.jar
new file mode 100644
index 0000000..23488d2
Binary files /dev/null and b/extlibs/mockrunner-0.4.1/jar/jakarta-oro-2.0.8.jar differ
diff --git a/extlibs/mockrunner-0.4.1/jar/jdom.jar b/extlibs/mockrunner-0.4.1/jar/jdom.jar
new file mode 100644
index 0000000..97c85f5
Binary files /dev/null and b/extlibs/mockrunner-0.4.1/jar/jdom.jar differ
diff --git a/extlibs/mockrunner-0.4.1/jar/nekohtml.jar b/extlibs/mockrunner-0.4.1/jar/nekohtml.jar
new file mode 100644
index 0000000..0be0231
Binary files /dev/null and b/extlibs/mockrunner-0.4.1/jar/nekohtml.jar differ
diff --git a/extlibs/mockrunner-0.4.1/jar/xml-apis-2.11.0.jar b/extlibs/mockrunner-0.4.1/jar/xml-apis-2.11.0.jar
new file mode 100644
index 0000000..4673346
Binary files /dev/null and b/extlibs/mockrunner-0.4.1/jar/xml-apis-2.11.0.jar differ
diff --git a/extlibs/mockrunner-0.4.1/lib/jdk1.5/j2ee1.3/dependencies.txt b/extlibs/mockrunner-0.4.1/lib/jdk1.5/j2ee1.3/dependencies.txt
new file mode 100644
index 0000000..cfa9a27
--- /dev/null
+++ b/extlibs/mockrunner-0.4.1/lib/jdk1.5/j2ee1.3/dependencies.txt
@@ -0,0 +1,135 @@
+This file lists all the jar files provided by Mockrunner and
+the required third party libraries for each jar. Please note
+that this file is created automatically by analyzing the
+compile time dependencies of all classes in the jar. This
+is done recursively, i.e. the dependencies of the third-party
+jars are recognized as well. If you add all dependend jars
+for a specified mockrunner-xyz.jar to your classpath, you
+are on the safe side. However, not all listed dependencies
+are necessary at runtime in all cases. Especially with the 
+"all-in-one"-file mockrunner.jar you don't have to add everything 
+to the classpath. E.g. if you're only using EJB and JMS, you don't have 
+to add the web related jar files, because the necessary factories and modules 
+are created when they are used and lazy initialized respectively. 
+Please note that the Struts test framework only needs CGLib, if custom action
+mappings are used. The jasper related jar files are only necessary if
+the JasperJspFactory is used. If you only need one technology it's recommended 
+to use the  corresponding jar file instead of the "all-in-one" mockrunner.jar. 
+E.g. if you only want to use the JDBC test framework, you can use 
+mockrunner-jdbc.jar. Please note that each mockrunner-xyz.jar file contains a 
+jarversion.txt  which lists the Mockrunner version and the supported JDK and 
+J2EE version.
+
+Created: 06/26/2008 05:59 PM
+
+Jar file name: mockrunner-tag.jar
+
+Depends on: 
+
+commons-beanutils-1.7.0.jar
+commons-logging-1.0.4.jar
+jakarta-oro-2.0.8.jar
+jdom.jar
+junit.jar
+nekohtml.jar
+servlet.jar
+xercesImpl.jar
+xml-apis.jar
+
+
+Jar file name: mockrunner-jms.jar
+
+Depends on: 
+
+commons-logging-1.0.4.jar
+jakarta-oro-2.0.8.jar
+jboss-j2ee.jar
+junit.jar
+
+
+Jar file name: mockrunner-servlet.jar
+
+Depends on: 
+
+commons-logging-1.0.4.jar
+jakarta-oro-2.0.8.jar
+jdom.jar
+junit.jar
+nekohtml.jar
+servlet.jar
+xercesImpl.jar
+xml-apis.jar
+
+
+Jar file name: mockrunner.jar
+
+Depends on: 
+
+cglib-nodep-2.2.jar
+commons-beanutils-1.7.0.jar
+commons-digester-1.8.jar
+commons-logging-1.0.4.jar
+commons-validator-1.3.1.jar
+jakarta-oro-2.0.8.jar
+jboss-j2ee.jar
+jdom.jar
+junit.jar
+mockejb.jar
+nekohtml.jar
+servlet.jar
+struts.jar
+xercesImpl.jar
+xml-apis.jar
+
+
+Jar file name: mockrunner-jca.jar
+
+Depends on: 
+
+commons-logging-1.0.4.jar
+jakarta-oro-2.0.8.jar
+jboss-j2ee.jar
+junit.jar
+
+
+Jar file name: mockrunner-jdbc.jar
+
+Depends on: 
+
+commons-logging-1.0.4.jar
+jakarta-oro-2.0.8.jar
+jdom.jar
+junit.jar
+xml-apis.jar
+
+
+Jar file name: mockrunner-ejb.jar
+
+Depends on: 
+
+cglib-nodep-2.2.jar
+commons-beanutils-1.7.0.jar
+commons-logging-1.0.4.jar
+jakarta-oro-2.0.8.jar
+jboss-j2ee.jar
+junit.jar
+mockejb.jar
+
+
+Jar file name: mockrunner-struts.jar
+
+Depends on: 
+
+cglib-nodep-2.2.jar
+commons-beanutils-1.7.0.jar
+commons-digester-1.8.jar
+commons-logging-1.0.4.jar
+commons-validator-1.3.1.jar
+jakarta-oro-2.0.8.jar
+jdom.jar
+junit.jar
+nekohtml.jar
+servlet.jar
+struts.jar
+xercesImpl.jar
+xml-apis.jar
diff --git a/extlibs/mockrunner-0.4.1/lib/jdk1.5/j2ee1.3/mockrunner-servlet.jar b/extlibs/mockrunner-0.4.1/lib/jdk1.5/j2ee1.3/mockrunner-servlet.jar
new file mode 100644
index 0000000..a2b3bf9
Binary files /dev/null and b/extlibs/mockrunner-0.4.1/lib/jdk1.5/j2ee1.3/mockrunner-servlet.jar differ
diff --git a/extlibs/mockrunner-0.4.1/readme.txt b/extlibs/mockrunner-0.4.1/readme.txt
new file mode 100644
index 0000000..7afac71
--- /dev/null
+++ b/extlibs/mockrunner-0.4.1/readme.txt
@@ -0,0 +1,9 @@
+This contains the minimal set of jars from mockrunner-0.4.1 to run the modjy
+tests against j2ee1.3 with jdk1.5.
+
+These are run from the main Jython directory as part of "ant test",
+or from tests/modjy with "ant". In the latter case, JYTHON_HOME must
+be set to the project/dist folder and MOCKRUNNER_HOME to this folder.
+
+xml-apis-*.jar is added to mockrunner because it is needed for these tests,
+but not for Jython generally.
diff --git a/extlibs/mysql-connector-java-5.1.42-bin.jar b/extlibs/mysql-connector-java-5.1.42-bin.jar
new file mode 100644
index 0000000..4c6df38
Binary files /dev/null and b/extlibs/mysql-connector-java-5.1.42-bin.jar differ
diff --git a/extlibs/netty-buffer-4.1.73.Final.jar b/extlibs/netty-buffer-4.1.73.Final.jar
new file mode 100644
index 0000000..19ad0bb
Binary files /dev/null and b/extlibs/netty-buffer-4.1.73.Final.jar differ
diff --git a/extlibs/netty-codec-4.1.73.Final.jar b/extlibs/netty-codec-4.1.73.Final.jar
new file mode 100644
index 0000000..22dd393
Binary files /dev/null and b/extlibs/netty-codec-4.1.73.Final.jar differ
diff --git a/extlibs/netty-common-4.1.73.Final.jar b/extlibs/netty-common-4.1.73.Final.jar
new file mode 100644
index 0000000..f9bbaf0
Binary files /dev/null and b/extlibs/netty-common-4.1.73.Final.jar differ
diff --git a/extlibs/netty-handler-4.1.73.Final.jar b/extlibs/netty-handler-4.1.73.Final.jar
new file mode 100644
index 0000000..ae0a606
Binary files /dev/null and b/extlibs/netty-handler-4.1.73.Final.jar differ
diff --git a/extlibs/netty-resolver-4.1.73.Final.jar b/extlibs/netty-resolver-4.1.73.Final.jar
new file mode 100644
index 0000000..00071b3
Binary files /dev/null and b/extlibs/netty-resolver-4.1.73.Final.jar differ
diff --git a/extlibs/netty-transport-4.1.73.Final.jar b/extlibs/netty-transport-4.1.73.Final.jar
new file mode 100644
index 0000000..5f7ce75
Binary files /dev/null and b/extlibs/netty-transport-4.1.73.Final.jar differ
diff --git a/extlibs/postgresql-42.1.1.jre7.jar b/extlibs/postgresql-42.1.1.jre7.jar
new file mode 100644
index 0000000..99b60a3
Binary files /dev/null and b/extlibs/postgresql-42.1.1.jre7.jar differ
diff --git a/extlibs/profile.jar b/extlibs/profile.jar
new file mode 100644
index 0000000..4c0af29
Binary files /dev/null and b/extlibs/profile.jar differ
diff --git a/extlibs/profile.properties b/extlibs/profile.properties
new file mode 100644
index 0000000..0acd965
--- /dev/null
+++ b/extlibs/profile.properties
@@ -0,0 +1,69 @@
+#
+# Is the profiler on or off when the app starts?
+# (on | off)
+# default = on
+#
+profiler=on
+#
+# Can the profiler be controlled remotely ?
+# (on | off)
+# default = off
+#
+remote=off
+#
+# TCP listen port for remote control
+# default =15599
+#
+port=15599
+#
+#
+#ClassLoaderFilter.1=com.mentorgen.tools.profile.instrument.clfilter.StandardClassLoaderFilter
+#
+# What is the maximum depth for thread dumps
+# (-1 means no limit)
+# default = -1
+# (you may also use 'compact')
+#
+thread-depth=compact
+#
+# When compacting thread dumps, what in the minimum total time you want
+# to show 
+# default = 10 (ms)
+#
+thread.compact.threshold.ms=1
+#
+# What is the maximum number of methods to show in the method dump
+# (-1 means no limit)
+# default = -1
+# (you may also use 'compact')
+#
+max-method-count=10
+#
+# defaults to 10
+#
+method.compact.threshold.ms=1
+#
+# What is the default file name for the profile information
+# default=./profile.txt
+#
+file=profile.txt
+#
+# What packages are excluded from the display
+# (comma separated)
+# Note: com.mentorgen.tools.profile is always excluded
+#
+include=python
+#
+# Track Object Allocation (very expensive)
+# values: on, off
+# default = off
+#
+#track.object.alloc=on
+#
+output=text
+#output-method-signatures=yes
+#profiler-class=net.sourceforge.jiprof.timeline.TimeLineProfiler
+#clock-resolution=ms
+
+output-summary-only=yes
+accept-class-loaders=org.python.core.BytecodeLoader
diff --git a/extlibs/servlet-api-2.5.jar b/extlibs/servlet-api-2.5.jar
new file mode 100644
index 0000000..fb52493
Binary files /dev/null and b/extlibs/servlet-api-2.5.jar differ
diff --git a/extlibs/xercesImpl-2.12.2.jar b/extlibs/xercesImpl-2.12.2.jar
new file mode 100644
index 0000000..ccbae9f
Binary files /dev/null and b/extlibs/xercesImpl-2.12.2.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/lib-python/2.7/distutils/command/wininst-6.0.exe b/lib-python/2.7/distutils/command/wininst-6.0.exe
new file mode 100644
index 0000000..f57c855
Binary files /dev/null and b/lib-python/2.7/distutils/command/wininst-6.0.exe differ
diff --git a/lib-python/2.7/distutils/command/wininst-7.1.exe b/lib-python/2.7/distutils/command/wininst-7.1.exe
new file mode 100644
index 0000000..1433bc1
Binary files /dev/null and b/lib-python/2.7/distutils/command/wininst-7.1.exe differ
diff --git a/lib-python/2.7/distutils/command/wininst-8.0.exe b/lib-python/2.7/distutils/command/wininst-8.0.exe
new file mode 100644
index 0000000..7403bfa
Binary files /dev/null and b/lib-python/2.7/distutils/command/wininst-8.0.exe differ
diff --git a/lib-python/2.7/distutils/command/wininst-9.0-amd64.exe b/lib-python/2.7/distutils/command/wininst-9.0-amd64.exe
new file mode 100644
index 0000000..11d8011
Binary files /dev/null and b/lib-python/2.7/distutils/command/wininst-9.0-amd64.exe differ
diff --git a/lib-python/2.7/distutils/command/wininst-9.0.exe b/lib-python/2.7/distutils/command/wininst-9.0.exe
new file mode 100644
index 0000000..dadb31d
Binary files /dev/null and b/lib-python/2.7/distutils/command/wininst-9.0.exe differ
diff --git a/lib-python/2.7/ensurepip/__init__.py b/lib-python/2.7/ensurepip/__init__.py
new file mode 100644
index 0000000..98dae76
--- /dev/null
+++ b/lib-python/2.7/ensurepip/__init__.py
@@ -0,0 +1,227 @@
+#!/usr/bin/env python2
+from __future__ import print_function
+
+import os
+import os.path
+import pkgutil
+import shutil
+import sys
+import tempfile
+
+
+__all__ = ["version", "bootstrap"]
+
+
+_SETUPTOOLS_VERSION = "7.0"
+
+_PIP_VERSION = "1.5.6"
+
+# pip currently requires ssl support, so we try to provide a nicer
+# error message when that is missing (http://bugs.python.org/issue19744)
+_MISSING_SSL_MESSAGE = ("pip {} requires SSL/TLS".format(_PIP_VERSION))
+try:
+    import ssl
+except ImportError:
+    ssl = None
+
+    def _require_ssl_for_pip():
+        raise RuntimeError(_MISSING_SSL_MESSAGE)
+else:
+    def _require_ssl_for_pip():
+        pass
+
+_PROJECTS = [
+    ("setuptools", _SETUPTOOLS_VERSION),
+    ("pip", _PIP_VERSION),
+]
+
+
+def _run_pip(args, additional_paths=None):
+    # Add our bundled software to the sys.path so we can import it
+    if additional_paths is not None:
+        sys.path = additional_paths + sys.path
+
+    # Install the bundled software
+    import pip
+    pip.main(args)
+
+
+def version():
+    """
+    Returns a string specifying the bundled version of pip.
+    """
+    return _PIP_VERSION
+
+
+def _disable_pip_configuration_settings():
+    # We deliberately ignore all pip environment variables
+    # when invoking pip
+    # See http://bugs.python.org/issue19734 for details
+    keys_to_remove = [k for k in os.environ if k.startswith("PIP_")]
+    for k in keys_to_remove:
+        del os.environ[k]
+    # We also ignore the settings in the default pip configuration file
+    # See http://bugs.python.org/issue20053 for details
+    os.environ['PIP_CONFIG_FILE'] = os.devnull
+
+
+def bootstrap(root=None, upgrade=False, user=False,
+              altinstall=False, default_pip=True,
+              verbosity=0):
+    """
+    Bootstrap pip into the current Python installation (or the given root
+    directory).
+
+    Note that calling this function will alter both sys.path and os.environ.
+    """
+    if altinstall and default_pip:
+        raise ValueError("Cannot use altinstall and default_pip together")
+
+    _require_ssl_for_pip()
+    _disable_pip_configuration_settings()
+
+    # By default, installing pip and setuptools installs all of the
+    # following scripts (X.Y == running Python version):
+    #
+    #   pip, pipX, pipX.Y, easy_install, easy_install-X.Y
+    #
+    # pip 1.5+ allows ensurepip to request that some of those be left out
+    if altinstall:
+        # omit pip, pipX and easy_install
+        os.environ["ENSUREPIP_OPTIONS"] = "altinstall"
+    elif not default_pip:
+        # omit pip and easy_install
+        os.environ["ENSUREPIP_OPTIONS"] = "install"
+
+    tmpdir = tempfile.mkdtemp()
+    try:
+        # Put our bundled wheels into a temporary directory and construct the
+        # additional paths that need added to sys.path
+        additional_paths = []
+        for project, version in _PROJECTS:
+            wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version)
+            whl = pkgutil.get_data(
+                "ensurepip",
+                "_bundled/{}".format(wheel_name),
+            )
+            with open(os.path.join(tmpdir, wheel_name), "wb") as fp:
+                fp.write(whl)
+
+            additional_paths.append(os.path.join(tmpdir, wheel_name))
+
+        # Construct the arguments to be passed to the pip command
+        args = ["install", "--no-index", "--find-links", tmpdir]
+        if root:
+            args += ["--root", root]
+        if upgrade:
+            args += ["--upgrade"]
+        if user:
+            args += ["--user"]
+        if verbosity:
+            args += ["-" + "v" * verbosity]
+
+        _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
+    finally:
+        shutil.rmtree(tmpdir, ignore_errors=True)
+
+
+def _uninstall_helper(verbosity=0):
+    """Helper to support a clean default uninstall process on Windows
+
+    Note that calling this function may alter os.environ.
+    """
+    # Nothing to do if pip was never installed, or has been removed
+    try:
+        import pip
+    except ImportError:
+        return
+
+    # If the pip version doesn't match the bundled one, leave it alone
+    if pip.__version__ != _PIP_VERSION:
+        msg = ("ensurepip will only uninstall a matching version "
+               "({!r} installed, {!r} bundled)")
+        print(msg.format(pip.__version__, _PIP_VERSION), file=sys.stderr)
+        return
+
+    _require_ssl_for_pip()
+    _disable_pip_configuration_settings()
+
+    # Construct the arguments to be passed to the pip command
+    args = ["uninstall", "-y"]
+    if verbosity:
+        args += ["-" + "v" * verbosity]
+
+    _run_pip(args + [p[0] for p in reversed(_PROJECTS)])
+
+
+def _main(argv=None):
+    if ssl is None:
+        print("Ignoring ensurepip failure: {}".format(_MISSING_SSL_MESSAGE),
+              file=sys.stderr)
+        return
+
+    import argparse
+    parser = argparse.ArgumentParser(prog="python -m ensurepip")
+    parser.add_argument(
+        "--version",
+        action="version",
+        version="pip {}".format(version()),
+        help="Show the version of pip that is bundled with this Python.",
+    )
+    parser.add_argument(
+        "-v", "--verbose",
+        action="count",
+        default=0,
+        dest="verbosity",
+        help=("Give more output. Option is additive, and can be used up to 3 "
+              "times."),
+    )
+    parser.add_argument(
+        "-U", "--upgrade",
+        action="store_true",
+        default=False,
+        help="Upgrade pip and dependencies, even if already installed.",
+    )
+    parser.add_argument(
+        "--user",
+        action="store_true",
+        default=False,
+        help="Install using the user scheme.",
+    )
+    parser.add_argument(
+        "--root",
+        default=None,
+        help="Install everything relative to this alternate root directory.",
+    )
+    parser.add_argument(
+        "--altinstall",
+        action="store_true",
+        default=False,
+        help=("Make an alternate install, installing only the X.Y versioned"
+              "scripts (Default: pipX, pipX.Y, easy_install-X.Y)"),
+    )
+    parser.add_argument(
+        "--default-pip",
+        action="store_true",
+        default=True,
+        dest="default_pip",
+        help=argparse.SUPPRESS,
+    )
+    parser.add_argument(
+        "--no-default-pip",
+        action="store_false",
+        dest="default_pip",
+        help=("Make a non default install, installing only the X and X.Y "
+              "versioned scripts."),
+    )
+
+    args = parser.parse_args(argv)
+
+    bootstrap(
+        root=args.root,
+        upgrade=args.upgrade,
+        user=args.user,
+        verbosity=args.verbosity,
+        altinstall=args.altinstall,
+        default_pip=args.default_pip,
+    )
diff --git a/lib-python/2.7/ensurepip/__main__.py b/lib-python/2.7/ensurepip/__main__.py
new file mode 100644
index 0000000..77527d7
--- /dev/null
+++ b/lib-python/2.7/ensurepip/__main__.py
@@ -0,0 +1,4 @@
+import ensurepip
+
+if __name__ == "__main__":
+    ensurepip._main()
diff --git a/lib-python/2.7/ensurepip/_uninstall.py b/lib-python/2.7/ensurepip/_uninstall.py
new file mode 100644
index 0000000..750365e
--- /dev/null
+++ b/lib-python/2.7/ensurepip/_uninstall.py
@@ -0,0 +1,30 @@
+"""Basic pip uninstallation support, helper for the Windows uninstaller"""
+
+import argparse
+import ensurepip
+
+
+def _main(argv=None):
+    parser = argparse.ArgumentParser(prog="python -m ensurepip._uninstall")
+    parser.add_argument(
+        "--version",
+        action="version",
+        version="pip {}".format(ensurepip.version()),
+        help="Show the version of pip this will attempt to uninstall.",
+    )
+    parser.add_argument(
+        "-v", "--verbose",
+        action="count",
+        default=0,
+        dest="verbosity",
+        help=("Give more output. Option is additive, and can be used up to 3 "
+              "times."),
+    )
+
+    args = parser.parse_args(argv)
+
+    ensurepip._uninstall_helper(verbosity=args.verbosity)
+
+
+if __name__ == "__main__":
+    _main()
diff --git a/src/shell/jython.exe b/src/shell/jython.exe
new file mode 100755
index 0000000..bdaa447
Binary files /dev/null and b/src/shell/jython.exe differ

Debdiff

File lists identical (after any substitutions)

No differences were encountered between the control files of package jython

No differences were encountered between the control files of package jython-doc

More details

Full run details