initial import of the packaging package in the standard library
diff --git a/Lib/packaging/compat.py b/Lib/packaging/compat.py
new file mode 100644
index 0000000..a82efd3
--- /dev/null
+++ b/Lib/packaging/compat.py
@@ -0,0 +1,57 @@
+"""Compatibility helpers.
+
+This module provides classes, variables and imports which are used to
+support packaging across Python 2.x and 3.x.
+"""
+
+from packaging import logger
+
+
+# XXX Having two classes with the same name is not a good thing.
+# XXX 2to3-related code should move from util to this module
+
+# TODO Move common code here: PY3 (bool indicating if we're on 3.x), any, etc.
+
+try:
+    from packaging.util import Mixin2to3 as _Mixin2to3
+    _CONVERT = True
+    _KLASS = _Mixin2to3
+except ImportError:
+    _CONVERT = False
+    _KLASS = object
+
+__all__ = ['Mixin2to3']
+
+
+class Mixin2to3(_KLASS):
+    """ The base class which can be used for refactoring. When run under
+    Python 3.0, the run_2to3 method provided by Mixin2to3 is overridden.
+    When run on Python 2.x, it merely creates a class which overrides run_2to3,
+    yet does nothing in particular with it.
+    """
+    if _CONVERT:
+
+        def _run_2to3(self, files, doctests=[], fixers=[]):
+            """ Takes a list of files and doctests, and performs conversion
+            on those.
+              - First, the files which contain the code(`files`) are converted.
+              - Second, the doctests in `files` are converted.
+              - Thirdly, the doctests in `doctests` are converted.
+            """
+            if fixers:
+                self.fixer_names = fixers
+
+            logger.info('converting Python code')
+            _KLASS.run_2to3(self, files)
+
+            logger.info('converting doctests in Python files')
+            _KLASS.run_2to3(self, files, doctests_only=True)
+
+            if doctests != []:
+                logger.info('converting doctest in text files')
+                _KLASS.run_2to3(self, doctests, doctests_only=True)
+    else:
+        # If run on Python 2.x, there is nothing to do.
+
+        def _run_2to3(self, files, doctests=[], fixers=[]):
+            pass