[U-Boot] [PATCH v3] patman: add distutils based installer

Chris Packham judge.packham at gmail.com
Wed Jul 22 11:21:46 CEST 2015


To make it easier to use patman on other projects add a distutils style
installer. Now patman can be installed with

  cd u-boot/tools/patman && python setup.py install

There are also the usual distutils options for creating source/binary
distributions of patman.

Tested-by: Simon Glass <sjg at chromium.org>
Signed-off-by: Chris Packham <judge.packham at gmail.com>

---
This gives us something that can be distributed separately as well as
in-tree. The import trick allows the python module "patman" to be
distributed and enables in-tree use without moving things around. An
alternative would be to move the files into a sub directory
(unfortunately a directory called "patman" would clash with the existing
symlink).

Thanks,
Chris

Changes in v3:
- Add installation instructions to tools/patman/README
- Drop RFC, Add sign-off
- Collect tested tag from Simon

Changes in v2:
- Install as "patman" package
- Allow running in-tree or out-of-tree

 tools/patman/README      | 11 +++++++++++
 tools/patman/__init__.py |  3 +++
 tools/patman/patman.py   | 20 ++++++++++++--------
 tools/patman/setup.py    | 13 +++++++++++++
 4 files changed, 39 insertions(+), 8 deletions(-)
 create mode 100644 tools/patman/__init__.py
 create mode 100644 tools/patman/setup.py

diff --git a/tools/patman/README b/tools/patman/README
index 27ec90a..5bd74c4 100644
--- a/tools/patman/README
+++ b/tools/patman/README
@@ -135,6 +135,17 @@ Similar to the above, but skip the first commit and take the next 5. This
 is useful if your top commit is for setting up testing.
 
 
+How to install it
+=================
+
+The most up to date version of patman can be found in the U-boot sources.
+However to use it on other projects it may be more convenient to install it as
+a standalone application. A distutils installer is included, this can be used
+to install patman:
+
+$ cd tools/patman && python setup.py install
+
+
 How to add tags
 ===============
 
diff --git a/tools/patman/__init__.py b/tools/patman/__init__.py
new file mode 100644
index 0000000..7cbe5fa
--- /dev/null
+++ b/tools/patman/__init__.py
@@ -0,0 +1,3 @@
+__all__ = ['checkpatch', 'command', 'commit', 'cros_subprocess',
+           'get_maintainer', 'gitutil', 'patchstream', 'project',
+           'series', 'settings', 'terminal', 'test']
diff --git a/tools/patman/patman.py b/tools/patman/patman.py
index 6c6473e..e76fc42 100755
--- a/tools/patman/patman.py
+++ b/tools/patman/patman.py
@@ -14,14 +14,18 @@ import sys
 import unittest
 
 # Our modules
-import checkpatch
-import command
-import gitutil
-import patchstream
-import project
-import settings
-import terminal
-import test
+try:
+    from patman import checkpatch, command, gitutil, patchstream, \
+        project, settings, terminal, test
+except ImportError:
+    import checkpatch
+    import command
+    import gitutil
+    import patchstream
+    import project
+    import settings
+    import terminal
+    import test
 
 
 parser = OptionParser()
diff --git a/tools/patman/setup.py b/tools/patman/setup.py
new file mode 100644
index 0000000..e61804f
--- /dev/null
+++ b/tools/patman/setup.py
@@ -0,0 +1,13 @@
+#
+# SPDX-License-Identifier:      GPL-2.0+
+#
+from distutils.core import setup
+setup(name='patman',
+      version='1.0',
+      license='GPL-2.0+',
+      scripts=['patman'],
+      packages=['patman'],
+      package_dir={'patman': ''},
+      package_data={'patman': ['README']},
+      classifiers=['Environment :: Console',
+                   'Topic :: Software Development'])
-- 
2.5.0.rc0



More information about the U-Boot mailing list