From 0fb49375c0365e0ab247534cf6bb5d62191f7d13 Mon Sep 17 00:00:00 2001
From: Zooko O'Whielacronx <zooko@zooko.com>
Date: Mon, 17 Jan 2011 22:25:21 -0800
Subject: [PATCH] setup: bundle a copy of setuptools_darcs-1.2.12 This is to
 work-around
 https://bitbucket.org/tarek/distribute/issue/55/revision-control-plugin-automatically-installed-as-a-build-dependency-is-not-present-when-another-build-dependency-is-being
 . refs #1054.

---
 setuptools_darcs-1.2.12.egg/EGG-INFO/PKG-INFO |  32 ++++
 .../EGG-INFO/SOURCES.txt                      |  13 ++
 .../EGG-INFO/dependency_links.txt             |   1 +
 .../EGG-INFO/entry_points.txt                 |   3 +
 .../EGG-INFO/not-zip-safe                     |   1 +
 .../EGG-INFO/top_level.txt                    |   1 +
 .../setuptools_darcs/__init__.py              |   8 +
 .../setuptools_darcs/_version.py              |  16 ++
 .../setuptools_darcs/setuptools_darcs.py      |  79 ++++++++++
 .../doc/python-setuptools_darcs/README.txt    | 143 ++++++++++++++++++
 10 files changed, 297 insertions(+)
 create mode 100644 setuptools_darcs-1.2.12.egg/EGG-INFO/PKG-INFO
 create mode 100644 setuptools_darcs-1.2.12.egg/EGG-INFO/SOURCES.txt
 create mode 100644 setuptools_darcs-1.2.12.egg/EGG-INFO/dependency_links.txt
 create mode 100644 setuptools_darcs-1.2.12.egg/EGG-INFO/entry_points.txt
 create mode 100644 setuptools_darcs-1.2.12.egg/EGG-INFO/not-zip-safe
 create mode 100644 setuptools_darcs-1.2.12.egg/EGG-INFO/top_level.txt
 create mode 100644 setuptools_darcs-1.2.12.egg/setuptools_darcs/__init__.py
 create mode 100644 setuptools_darcs-1.2.12.egg/setuptools_darcs/_version.py
 create mode 100644 setuptools_darcs-1.2.12.egg/setuptools_darcs/setuptools_darcs.py
 create mode 100644 setuptools_darcs-1.2.12.egg/share/doc/python-setuptools_darcs/README.txt

diff --git a/setuptools_darcs-1.2.12.egg/EGG-INFO/PKG-INFO b/setuptools_darcs-1.2.12.egg/EGG-INFO/PKG-INFO
new file mode 100644
index 00000000..8e032517
--- /dev/null
+++ b/setuptools_darcs-1.2.12.egg/EGG-INFO/PKG-INFO
@@ -0,0 +1,32 @@
+Metadata-Version: 1.0
+Name: setuptools-darcs
+Version: 1.2.12
+Summary: setuptools plugin for darcs
+Home-page: http://tahoe-lafs.org/trac/setuptools_darcs
+Author: Zooko O'Whielacronx
+Author-email: zooko@zooko.com
+License: BSD
+Description: UNKNOWN
+Keywords: distutils setuptools setup darcs
+Platform: UNKNOWN
+Classifier: Framework :: Setuptools Plugin
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: License :: OSI Approved :: BSD License
+Classifier: License :: DFSG approved
+Classifier: Intended Audience :: Developers
+Classifier: Operating System :: Microsoft
+Classifier: Operating System :: Microsoft :: Windows
+Classifier: Operating System :: Unix
+Classifier: Operating System :: POSIX :: Linux
+Classifier: Operating System :: POSIX
+Classifier: Operating System :: MacOS :: MacOS X
+Classifier: Operating System :: Microsoft :: Windows :: Windows NT/2000
+Classifier: Operating System :: OS Independent
+Classifier: Natural Language :: English
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.4
+Classifier: Programming Language :: Python :: 2.5
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Topic :: Utilities
+Classifier: Topic :: Software Development :: Libraries
diff --git a/setuptools_darcs-1.2.12.egg/EGG-INFO/SOURCES.txt b/setuptools_darcs-1.2.12.egg/EGG-INFO/SOURCES.txt
new file mode 100644
index 00000000..f3d9ab9a
--- /dev/null
+++ b/setuptools_darcs-1.2.12.egg/EGG-INFO/SOURCES.txt
@@ -0,0 +1,13 @@
+
+README.txt
+setup.cfg
+setup.py
+setuptools_darcs/__init__.py
+setuptools_darcs/_version.py
+setuptools_darcs/setuptools_darcs.py
+setuptools_darcs.egg-info/PKG-INFO
+setuptools_darcs.egg-info/SOURCES.txt
+setuptools_darcs.egg-info/dependency_links.txt
+setuptools_darcs.egg-info/entry_points.txt
+setuptools_darcs.egg-info/not-zip-safe
+setuptools_darcs.egg-info/top_level.txt
\ No newline at end of file
diff --git a/setuptools_darcs-1.2.12.egg/EGG-INFO/dependency_links.txt b/setuptools_darcs-1.2.12.egg/EGG-INFO/dependency_links.txt
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/setuptools_darcs-1.2.12.egg/EGG-INFO/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/setuptools_darcs-1.2.12.egg/EGG-INFO/entry_points.txt b/setuptools_darcs-1.2.12.egg/EGG-INFO/entry_points.txt
new file mode 100644
index 00000000..51f2125b
--- /dev/null
+++ b/setuptools_darcs-1.2.12.egg/EGG-INFO/entry_points.txt
@@ -0,0 +1,3 @@
+[setuptools.file_finders]
+darcs = setuptools_darcs.setuptools_darcs:find_files_for_darcs
+
diff --git a/setuptools_darcs-1.2.12.egg/EGG-INFO/not-zip-safe b/setuptools_darcs-1.2.12.egg/EGG-INFO/not-zip-safe
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/setuptools_darcs-1.2.12.egg/EGG-INFO/not-zip-safe
@@ -0,0 +1 @@
+
diff --git a/setuptools_darcs-1.2.12.egg/EGG-INFO/top_level.txt b/setuptools_darcs-1.2.12.egg/EGG-INFO/top_level.txt
new file mode 100644
index 00000000..de954827
--- /dev/null
+++ b/setuptools_darcs-1.2.12.egg/EGG-INFO/top_level.txt
@@ -0,0 +1 @@
+setuptools_darcs
diff --git a/setuptools_darcs-1.2.12.egg/setuptools_darcs/__init__.py b/setuptools_darcs-1.2.12.egg/setuptools_darcs/__init__.py
new file mode 100644
index 00000000..03549d3e
--- /dev/null
+++ b/setuptools_darcs-1.2.12.egg/setuptools_darcs/__init__.py
@@ -0,0 +1,8 @@
+__version__ = "unknown"
+try:
+    from _version import __version__
+except ImportError:
+    # We're running in a tree that hasn't run darcsver from the pyutil library,
+    # and didn't come with a _version.py, so we don't know what our version
+    # is. This should not happen very often.
+    pass
diff --git a/setuptools_darcs-1.2.12.egg/setuptools_darcs/_version.py b/setuptools_darcs-1.2.12.egg/setuptools_darcs/_version.py
new file mode 100644
index 00000000..78d58b29
--- /dev/null
+++ b/setuptools_darcs-1.2.12.egg/setuptools_darcs/_version.py
@@ -0,0 +1,16 @@
+
+# This is the version of this tree, as created by setup.py darcsver from the Darcs patch
+# information: the main version number is taken from the most recent release
+# tag. If some patches have been added since the last release, this will have a
+# -NN "build number" suffix, or else a -rNN "revision number" suffix. Please see
+# pyutil.version_class for a description of what the different fields mean.
+
+verstr = "1.2.12"
+try:
+    from pyutil.version_class import Version as pyutil_Version
+    __version__ = pyutil_Version(verstr)
+except (ImportError, ValueError):
+    # Maybe there is no pyutil installed, or this may be an older version of
+    # pyutil.version_class which does not support SVN-alike revision numbers.
+    from distutils.version import LooseVersion as distutils_Version
+    __version__ = distutils_Version(verstr)
diff --git a/setuptools_darcs-1.2.12.egg/setuptools_darcs/setuptools_darcs.py b/setuptools_darcs-1.2.12.egg/setuptools_darcs/setuptools_darcs.py
new file mode 100644
index 00000000..627265fa
--- /dev/null
+++ b/setuptools_darcs-1.2.12.egg/setuptools_darcs/setuptools_darcs.py
@@ -0,0 +1,79 @@
+import os, re
+
+from subprocess import Popen, PIPE
+
+THISDIR_RE=re.compile("What's new in \"(.*)\"")
+
+def exec_darcs(darcscmd):
+    cmd = ['darcs'] + darcscmd
+    try:
+        p = Popen(cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True)
+    except EnvironmentError:
+        cmd = ['realdarcs.exe'] + darcscmd
+        p = Popen(cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True)
+        
+    output = p.communicate()[0]
+    return (p.returncode, output)
+
+def run_darcs_query_manifest():
+    return exec_darcs(['query', 'manifest'])
+
+def run_darcs_whatsnew_dot():
+    return exec_darcs(['whatsnew', '.'])
+
+def find_files_for_darcs(dirname):
+    try:
+        unused, whatsnewoutput = run_darcs_whatsnew_dot()
+        queryretcode, queryoutput = run_darcs_query_manifest()
+    except EnvironmentError:
+        if not os.path.exists('PKG-INFO'):
+            from distutils import log
+            log.info("Unable to execute darcs -- if you are building a package with 'setup.py sdist', 'setup.py bdist_egg', or other package-building commands, then the resulting package might be missing some files.  If you are not building a package then you can ignore this warning.")
+        # Oh well -- just return None.
+        return
+
+    if queryretcode != 0:
+        if not os.path.exists('PKG-INFO'):
+            from distutils import log
+            log.warn("Failure to get the list of managed files from darcs -- if you are building a package with 'setup.py sdist', 'setup.py bdist_egg', or other package-building commands, then the resulting package might be missing some files.  If you are not building a package then you can ignore this warning.")
+        # Oh well -- just return None.
+        return
+
+    # We got output.
+    mo = THISDIR_RE.search(whatsnewoutput)
+    if mo:
+        curdirname = mo.group(1)
+        while curdirname.endswith('/'):
+            curdirname = curdirname[:-1]
+        curdirname += "/"
+    else:
+        curdirname = ""
+
+    # Prepend this directory.
+    rel_to_repo_dirname = curdirname + dirname
+
+    # Normalize rel_to_repo_dirname from local form to the form that setuptools uses to the form that "darcs query manifest" outputs (unix form).
+    rel_to_repo_dirname = rel_to_repo_dirname.replace('\\', '/')
+    while rel_to_repo_dirname.endswith('/'):
+        rel_to_repo_dirname = rel_to_repo_dirname[:-1]
+
+    # Append a '/' to make sure we don't match "foobar" when rel_to_repo_dirname is "foo".
+    if rel_to_repo_dirname:
+        rel_to_repo_dirname += '/'
+
+    warn = True
+    for fn in queryoutput.split('\n'):
+        if fn == ".":
+            continue
+        if fn.startswith('./'):
+            fn = fn[2:]
+        if fn.startswith(rel_to_repo_dirname):
+            fn = fn[len(rel_to_repo_dirname):]
+            warn = False
+            # We need to replace "/" by "\\" because setuptools can't includes web/*.xhtml files on Windows, due of path separator
+            # This correct ticket #1033
+            yield fn.replace('/', os.sep)
+
+    if warn and not os.path.exists('PKG-INFO'):
+        from distutils import log
+        log.warn("Didn't find any files in directory \"%s\" (full path: \"%s\") that were managed by darcs revision control -- if you are building a package with 'setup.py sdist', 'setup.py bdist_egg', or other package-building commands, then the resulting package might be missing some files.  If you are not building a package then you can ignore this warning." % (dirname, os.path.abspath(rel_to_repo_dirname),))
diff --git a/setuptools_darcs-1.2.12.egg/share/doc/python-setuptools_darcs/README.txt b/setuptools_darcs-1.2.12.egg/share/doc/python-setuptools_darcs/README.txt
new file mode 100644
index 00000000..b881110c
--- /dev/null
+++ b/setuptools_darcs-1.2.12.egg/share/doc/python-setuptools_darcs/README.txt
@@ -0,0 +1,143 @@
+
+setuptools_darcs Manual
+=======================
+
+About
+-----
+
+This is a plugin for setuptools that integrates darcs.  Once
+installed, Setuptools can be told to include in a package distribution
+all the files tracked by darcs.  This is an alternative to explicit
+inclusion specifications with `MANIFEST.in`.
+
+A distribution here refers to a package that you create using
+setup.py, ex:
+
+  python setup.py sdist
+  python setup.py bdist_egg
+  python setup.py bdist_rpm
+
+This package was formerly known as setuptools_darcs_plugin.  The name
+change is the result of an agreement by the setuptools plugin
+developers to provide a uniform naming convention.
+
+
+Installation
+------------
+
+With easy_install:
+
+  easy_install setuptools_darcs
+
+Alternative manual installation:
+
+  tar -zxvf setuptools_darcs-X.Y.Z.tar.gz
+  cd setuptools_darcs-X.Y.Z
+  python setup.py install
+
+Where X.Y.Z is a version number.
+
+Alternative to make a specific package use setuptools_darcs without
+installing setuptools_darcs into the system:
+
+  Put "setup_requires=['setuptools_darcs']" in the call to setup() in
+  the package's setup.py file.
+
+
+Usage
+-----
+
+To use this plugin, you must first package your python module with
+`setup.py` and use setuptools.  The former is well documented in the
+distutils manual:
+
+  http://docs.python.org/dist/dist.html
+
+To use setuptools instead of distutils, just edit `setup.py` and
+change
+
+  from distutils.core import setup
+
+to
+
+  from setuptools import setup
+
+When setuptools builds a source package, it always includes all files
+tracked by your revision control system, if it knows how to learn what
+those files are.
+
+When setuptools builds a binary package, you can ask it to include all
+files tracked by your revision control system, by adding this argument
+to your invocation of `setup()`:
+
+  setup(...,
+    include_package_data=True,
+    ...)
+
+This plugin lets setuptools know what files are tracked by your darcs
+revision control tool.  setuptools ships with support for cvs and
+subversion.  Other plugins like this one are available for bzr, git,
+monotone, and mercurial, at least.
+
+It might happen that you track files with your revision control system
+that you don't want to include in your packages.  In that case, you
+can prevent setuptools from packaging those files with a directive in
+your `MANIFEST.in`, ex:
+
+  exclude .darcs-boringfile
+  recursive-exclude images *.xcf *.blend
+
+In this example, we prevent setuptools from packaging
+`.darcs-boringfile` and the Gimp and Blender source files found under
+the `images` directory.
+
+Alternatively, files to exclude from the package can be listed in the
+`setup()` directive:
+
+  setup(...,
+    exclude_package_data = {'': ['.darcs-boringfile'],
+    			    'images': ['*.xcf', '*.blend']},
+    ...)
+
+
+Gotchas
+-------
+
+If someone clones your darcs repository using darcs but does not
+install this plugin, then when they run a package building command
+they will not get all the right files.  On the other hand if someone
+gets a source distribution that was created by "./setup.py sdist",
+then it will come with a list of all files, so they will not need
+darcs in order to build a distribution themselves.
+
+You can make sure that anyone who uses your setup.py file has this
+plugin by adding a `setup_requires` argument.
+
+  setup_requires=[]
+  # setuptools_darcs is required to produce complete distributions (such as with
+  # "sdist" or "bdist_egg"), unless there is a ${PKG}.egg-info/SOURCES.txt file
+  # present which contains a complete list of files that should be included in
+  # distributions.
+  # http://pypi.python.org/pypi/setuptools_darcs
+  setup_requires.append('setuptools_darcs >= 1.1.0')
+
+  setup(...,
+    setup_requires = setup_requires,
+    ...)
+
+
+References
+----------
+
+How to distribute Python modules with Distutils:
+
+  http://docs.python.org/dist/dist.html
+
+
+Setuptools complete manual:
+
+  http://peak.telecommunity.com/DevCenter/setuptools
+
+
+Thanks to Yannick Gingras for providing the prototype for this
+README.txt.
-- 
2.45.2