[Buildroot] [PATCH 00/38] Python infrastructure and package conversion

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Sun Dec 8 22:14:29 UTC 2013


Hello,

This set of patches add a new infrastructure for Python packages,
which support both distutils and setuptools based packages. It also
converts all the current Python packages to this infrastructure, and
adds a bunch of new Python packages that have been sitting in
patchwork for a while.

Thanks to this infrastructure, the vast majority of Python packages no
longer need to write any <something>_CMDS. All they need to do is to
explicitly say, through the <pkg>_SETUP_TYPE variable, whether the
setup.py of the package is distutils-based or setuptools-based.

When it's setuptools-based, then the infrastructure will automatically
build host-setuptools an host-distutilscross.

A short overview of the patches:

 * Patches 1 and 2 make relatively unrelated fixes to the dialog
   package, which were found while doing the Python conversion of
   python-dialog.

 * Patch 3 adds the Python infrastructure itself.

 * Patches 4 to 25 convert all the existing Python packages to use the
   new infrastructure.

 * Patches 26 to 38 add new Python packages that have been sitting on
   patchwork for some time, including some contributed by Ryan
   Barnett, who did rebase them on the Python infrastructure.

This complete set of patches is available on a Git branch at:

  http://git.free-electrons.com/users/thomas-petazzoni/buildroot/log/?h=python-pkg

I have already started working on making the infrastructure work with
Python 3 as well, and I have a bunch of patches that do this. However,
they are not completely ready yet, and since Python modules anyway
can't be used today with Python 3, merging this Python 2 only package
infrastructure is not a regression.

Of course, testing is more than welcome.

Thanks a lot!

Thomas

Ludovic Desroches (4):
  python-versiontools: new package
  python-keyring: new package
  python-simplejson: new package
  python-json-schema-validator: new package

Ryan Barnett (6):
  python-tornado: new package
  python-pyasn: new package
  python-pycrypto: new package
  python-pysnmp: new package
  python-pysnmp-apps: new package
  python-pysnmp-mibs: new package

Thomas Petazzoni (25):
  dialog: add missing comment when thread support is missing
  dialog: remove useless POST_CLEAN command
  package: introduce Python package infrastructure
  python-bottle: convert to the Python package infrastructure
  python-crc16: convert to the Python package infrastructure
  python-dpkt: convert to the Python package infrastructure
  python-id3: convert to the Python package infrastructure
  python-ipy: convert to the Python package infrastructure
  python-m2crypto: convert to the Python package infrastructure
  python-mad: convert to the Python package infrastructure
  python-meld3: convert to the Python package infrastructure
  python-nfc: convert to the Python package infrastructure
  python-protobuf: convert to the Python package infrastructure
  python-pygame: convert to the Python package infrastructure
  python-pyparsing: convert to the Python package infrastructure
  python-pyro: convert to the Python package infrastructure
  python-pyzmq: convert to the Python package infrastructure
  python-serial: convert to the Python package infrastructure
  python-setuptools: convert to the Python package infrastructure
  scons: convert to the Python package infrastructure
  python-netifaces: convert to the Python package infrastructure
  supervisor: convert to the Python package infrastructure
  python-distutilscross: convert to the Python package infrastructure
  python-thrift: convert to the Python package infrastructure
  python-dialog: convert to the Python package infrastructure

Wojciech M. Zabolotny (2):
  python-pyusb: new package
  python-msgpack: new package

Zoltan Gyarmati (1):
  python-configobj: new package

 docs/manual/adding-packages-python.txt             | 136 +++++++++++++
 docs/manual/adding-packages.txt                    |   2 +
 package/Config.in                                  |  13 ++
 package/Makefile.in                                |   1 +
 package/dialog/Config.in                           |   4 +
 package/dialog/dialog.mk                           |   5 -
 package/pkg-python.mk                              | 219 +++++++++++++++++++++
 package/python-bottle/python-bottle.mk             |  12 +-
 package/python-configobj/Config.in                 |  10 +
 package/python-configobj/python-configobj.mk       |  14 ++
 package/python-crc16/python-crc16.mk               |  25 +--
 package/python-dialog/python-dialog.mk             |  14 +-
 .../python-distutilscross/python-distutilscross.mk |  13 +-
 package/python-dpkt/python-dpkt.mk                 |  13 +-
 package/python-id3/python-id3.mk                   |  13 +-
 package/python-ipy/python-ipy.mk                   |  17 +-
 package/python-json-schema-validator/Config.in     |   8 +
 .../python-json-schema-validator.mk                |  15 ++
 package/python-keyring/Config.in                   |   8 +
 package/python-keyring/python-keyring.mk           |  19 ++
 package/python-m2crypto/python-m2crypto.mk         |  20 +-
 package/python-mad/python-mad.mk                   |  20 +-
 package/python-meld3/python-meld3.mk               |  12 +-
 package/python-msgpack/Config.in                   |  16 ++
 package/python-msgpack/python-msgpack.mk           |  15 ++
 package/python-netifaces/Config.in                 |   1 -
 package/python-netifaces/python-netifaces.mk       |  19 +-
 package/python-nfc/python-nfc.mk                   |  13 +-
 package/python-protobuf/python-protobuf.mk         |  20 +-
 package/python-pyasn/Config.in                     |  13 ++
 package/python-pyasn/python-pyasn.mk               |  19 ++
 package/python-pycrypto/Config.in                  |   9 +
 package/python-pycrypto/python-pycrypto.mk         |  35 ++++
 package/python-pygame/python-pygame.mk             |  25 +--
 package/python-pyparsing/python-pyparsing.mk       |  28 +--
 package/python-pyro/python-pyro.mk                 |   8 +-
 package/python-pysnmp-apps/Config.in               |  13 ++
 package/python-pysnmp-apps/python-pysnmp-apps.mk   |  16 ++
 package/python-pysnmp-mibs/Config.in               |  13 ++
 package/python-pysnmp-mibs/python-pysnmp-mibs.mk   |  16 ++
 package/python-pysnmp/Config.in                    |  14 ++
 package/python-pysnmp/python-pysnmp.mk             |  17 ++
 package/python-pyusb/Config.in                     |  14 ++
 package/python-pyusb/python-pyusb.mk               |  14 ++
 package/python-pyzmq/python-pyzmq.mk               |  26 +--
 package/python-serial/python-serial.mk             |  13 +-
 package/python-setuptools/python-setuptools.mk     |  28 +--
 package/python-simplejson/Config.in                |   7 +
 package/python-simplejson/python-simplejson.mk     |  14 ++
 package/python-thrift/python-thrift.mk             |  26 +--
 package/python-tornado/Config.in                   |   8 +
 package/python-tornado/python-tornado.mk           |  13 ++
 package/python-versiontools/Config.in              |   7 +
 package/python-versiontools/python-versiontools.mk |  13 ++
 package/scons/scons.mk                             |  13 +-
 package/supervisor/Config.in                       |   1 -
 package/supervisor/supervisor.mk                   |  22 +--
 57 files changed, 810 insertions(+), 332 deletions(-)
 create mode 100644 docs/manual/adding-packages-python.txt
 create mode 100644 package/pkg-python.mk
 create mode 100644 package/python-configobj/Config.in
 create mode 100644 package/python-configobj/python-configobj.mk
 create mode 100644 package/python-json-schema-validator/Config.in
 create mode 100644 package/python-json-schema-validator/python-json-schema-validator.mk
 create mode 100644 package/python-keyring/Config.in
 create mode 100644 package/python-keyring/python-keyring.mk
 create mode 100644 package/python-msgpack/Config.in
 create mode 100644 package/python-msgpack/python-msgpack.mk
 create mode 100644 package/python-pyasn/Config.in
 create mode 100644 package/python-pyasn/python-pyasn.mk
 create mode 100644 package/python-pycrypto/Config.in
 create mode 100644 package/python-pycrypto/python-pycrypto.mk
 create mode 100644 package/python-pysnmp-apps/Config.in
 create mode 100644 package/python-pysnmp-apps/python-pysnmp-apps.mk
 create mode 100644 package/python-pysnmp-mibs/Config.in
 create mode 100644 package/python-pysnmp-mibs/python-pysnmp-mibs.mk
 create mode 100644 package/python-pysnmp/Config.in
 create mode 100644 package/python-pysnmp/python-pysnmp.mk
 create mode 100644 package/python-pyusb/Config.in
 create mode 100644 package/python-pyusb/python-pyusb.mk
 create mode 100644 package/python-simplejson/Config.in
 create mode 100644 package/python-simplejson/python-simplejson.mk
 create mode 100644 package/python-tornado/Config.in
 create mode 100644 package/python-tornado/python-tornado.mk
 create mode 100644 package/python-versiontools/Config.in
 create mode 100644 package/python-versiontools/python-versiontools.mk

-- 
1.8.1.2



More information about the buildroot mailing list