diff mbox

[v2,1/1] python-thrift: new package

Message ID 1363185808-14279-1-git-send-email-viniciustinti@gmail.com
State Superseded
Headers show

Commit Message

Vinicius Tinti March 13, 2013, 2:43 p.m. UTC
Add Python bindings for the Apache Thrift RPC.

Thrift is an interface definition language that is used to define and create
services for numerous languages using remote procedure calls (RPC).

This patch does not include the Thrift code generator. It only includes the
Thrift libraries used at runtime.

Signed-off-by: Tiago Maluta <tiagomaluta@gmail.com>
Signed-off-by: Vinicius Tinti <viniciustinti@gmail.com>
---
 package/Config.in                      |    1 +
 package/python-thrift/Config.in        |    7 +++++++
 package/python-thrift/python-thrift.mk |   23 +++++++++++++++++++++++
 3 files changed, 31 insertions(+)
 create mode 100644 package/python-thrift/Config.in
 create mode 100644 package/python-thrift/python-thrift.mk

Comments

Arnout Vandecappelle March 13, 2013, 8:35 p.m. UTC | #1
On 03/13/13 15:43, Vinicius Tinti wrote:
> Add Python bindings for the Apache Thrift RPC.
>
> Thrift is an interface definition language that is used to define and create
> services for numerous languages using remote procedure calls (RPC).
>
> This patch does not include the Thrift code generator. It only includes the
> Thrift libraries used at runtime.
>
> Signed-off-by: Tiago Maluta <tiagomaluta@gmail.com>
> Signed-off-by: Vinicius Tinti <viniciustinti@gmail.com>

  When you post a v2 of a patch, it is nice if you can add a changelog 
below your signed-off-by line (separated by ---).

> ---
>   package/Config.in                      |    1 +
>   package/python-thrift/Config.in        |    7 +++++++
>   package/python-thrift/python-thrift.mk |   23 +++++++++++++++++++++++
>   3 files changed, 31 insertions(+)
>   create mode 100644 package/python-thrift/Config.in
>   create mode 100644 package/python-thrift/python-thrift.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index a65054c..8467735 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -334,6 +334,7 @@ source "package/python-pygame/Config.in"
>   source "package/python-pyparsing/Config.in"
>   source "package/python-serial/Config.in"
>   source "package/python-setuptools/Config.in"
> +source "package/python-thrift/Config.in"
>   endmenu
>   endif
>   source "package/ruby/Config.in"
> diff --git a/package/python-thrift/Config.in b/package/python-thrift/Config.in
> new file mode 100644
> index 0000000..f4ad4ba
> --- /dev/null
> +++ b/package/python-thrift/Config.in
> @@ -0,0 +1,7 @@
> +config BR2_PACKAGE_PYTHON_THRIFT
> +	bool "python-thrift"
> +	help
> +	  python-thrift is a Python bindings for the Apache Thrift RPC system.
> +
> +	  http://thrift.apache.org/
> +

  Redundant empty line at end of file.

> diff --git a/package/python-thrift/python-thrift.mk b/package/python-thrift/python-thrift.mk
> new file mode 100644
> index 0000000..40ae57b
> --- /dev/null
> +++ b/package/python-thrift/python-thrift.mk
> @@ -0,0 +1,23 @@
> +#############################################################
> +#
> +# python-thrift
> +#
> +#############################################################
> +
> +PYTHON_THRIFT_VERSION = 0.9.0
> +PYTHON_THRIFT_SOURCE = thrift-$(PYTHON_THRIFT_VERSION).tar.gz

  This is the default, so can be removed.

> +PYTHON_THRIFT_SITE = https://pypi.python.org/packages/source/t/thrift/
> +PYTHON_THRIFT_LICENSE = Apache v2.0

  We currently have Apache-v2 (ImageMagick), Apache-2.0 (lua-msgpack) and 
Apache v2.0 (zxing). I personally prefer Apache-2.0.


> +PYTHON_THRIFT_LICENSE_FILES = README
> +
> +PYTHON_THRIFT_DEPENDENCIES = python
> +
> +define PYTHON_THRIFT_BUILD_CMDS
> +	(cd $(@D); $(HOST_DIR)/usr/bin/python setup.py build)
> +endef
> +
> +define PYTHON_THRIFT_INSTALL_TARGET_CMDS
> +	(cd $(@D); $(HOST_DIR)/usr/bin/python setup.py install --prefix=$(TARGET_DIR)/usr)
> +endef

  Unfortunately, installation fails when host-python-distutilscross has 
been installed already (by python-protobuf or python-netifaces).


------
running install
Checking .pth file support in $(TARGET_DIR)/usr/lib/python2.7/site-packages/
$(HOST_DIR)/usr/bin/python -E -c pass
TEST FAILED: $(TARGET_DIR)/usr/lib/python2.7/site-packages/ does NOT 
support .pth files
error: bad install directory or PYTHONPATH

You are attempting to install a package to a directory that is not
on PYTHONPATH and which Python does not read ".pth" files from.  The
installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

     $(TARGET_DIR)/usr/lib/python2.7/site-packages/
------

  What happens is very clear: we're installing using the host-python, 
which doesn't look at TARGET_DIR to load packages. I would expect that 
distutilscross knows how to deal with that, but haven't found how...

  Regards,
  Arnout

> +
> +$(eval $(generic-package))
>
Vinicius Tinti March 14, 2013, 4:15 p.m. UTC | #2
On Wed, Mar 13, 2013 at 5:35 PM, Arnout Vandecappelle <arnout@mind.be>wrote:

> On 03/13/13 15:43, Vinicius Tinti wrote:
>
>> Add Python bindings for the Apache Thrift RPC.
>>
>> Thrift is an interface definition language that is used to define and
>> create
>> services for numerous languages using remote procedure calls (RPC).
>>
>> This patch does not include the Thrift code generator. It only includes
>> the
>> Thrift libraries used at runtime.
>>
>> Signed-off-by: Tiago Maluta <tiagomaluta@gmail.com>
>> Signed-off-by: Vinicius Tinti <viniciustinti@gmail.com>
>>
>
>  When you post a v2 of a patch, it is nice if you can add a changelog
> below your signed-off-by line (separated by ---).
>

Got it.


>
>
 ---
>>   package/Config.in                      |    1 +
>>   package/python-thrift/Config.**in        |    7 +++++++
>>   package/python-thrift/python-**thrift.mk <http://python-thrift.mk> |
>> 23 +++++++++++++++++++++++
>>   3 files changed, 31 insertions(+)
>>   create mode 100644 package/python-thrift/Config.**in
>>   create mode 100644 package/python-thrift/python-**thrift.mk<http://python-thrift.mk>
>>
>> diff --git a/package/Config.in b/package/Config.in
>> index a65054c..8467735 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -334,6 +334,7 @@ source "package/python-pygame/Config.**in"
>>   source "package/python-pyparsing/**Config.in"
>>   source "package/python-serial/Config.**in"
>>   source "package/python-setuptools/**Config.in"
>> +source "package/python-thrift/Config.**in"
>>   endmenu
>>   endif
>>   source "package/ruby/Config.in"
>> diff --git a/package/python-thrift/**Config.in b/package/python-thrift/**
>> Config.in
>> new file mode 100644
>> index 0000000..f4ad4ba
>> --- /dev/null
>> +++ b/package/python-thrift/**Config.in
>> @@ -0,0 +1,7 @@
>> +config BR2_PACKAGE_PYTHON_THRIFT
>> +       bool "python-thrift"
>> +       help
>> +         python-thrift is a Python bindings for the Apache Thrift RPC
>> system.
>> +
>> +         http://thrift.apache.org/
>> +
>>
>
>  Redundant empty line at end of file.
>
>
Ok. I will remove. Note that there are other python modules that are with
this (i.e. python-serial).


>  diff --git a/package/python-thrift/python**-thrift.mk<http://python-thrift.mk>b/package/python-thrift/
>> python**-thrift.mk <http://python-thrift.mk>
>> new file mode 100644
>> index 0000000..40ae57b
>> --- /dev/null
>> +++ b/package/python-thrift/python**-thrift.mk <http://python-thrift.mk>
>> @@ -0,0 +1,23 @@
>> +#############################**##############################**##
>> +#
>> +# python-thrift
>> +#
>> +#############################**##############################**##
>> +
>> +PYTHON_THRIFT_VERSION = 0.9.0
>> +PYTHON_THRIFT_SOURCE = thrift-$(PYTHON_THRIFT_**VERSION).tar.gz
>>
>
>  This is the default, so can be removed.
>
>
Can I keep it? I think it makes more clear.


>  +PYTHON_THRIFT_SITE = https://pypi.python.org/**packages/source/t/thrift/<https://pypi.python.org/packages/source/t/thrift/>
>> +PYTHON_THRIFT_LICENSE = Apache v2.0
>>
>
>  We currently have Apache-v2 (ImageMagick), Apache-2.0 (lua-msgpack) and
> Apache v2.0 (zxing). I personally prefer Apache-2.0.
>
>
Changed to Apache-2.0.


>
>  +PYTHON_THRIFT_LICENSE_FILES = README
>> +
>> +PYTHON_THRIFT_DEPENDENCIES = python
>> +
>> +define PYTHON_THRIFT_BUILD_CMDS
>> +       (cd $(@D); $(HOST_DIR)/usr/bin/python setup.py build)
>> +endef
>> +
>> +define PYTHON_THRIFT_INSTALL_TARGET_**CMDS
>> +       (cd $(@D); $(HOST_DIR)/usr/bin/python setup.py install
>> --prefix=$(TARGET_DIR)/usr)
>> +endef
>>
>
>  Unfortunately, installation fails when host-python-distutilscross has
> been installed already (by python-protobuf or python-netifaces).
>
>
------
> running install
> Checking .pth file support in $(TARGET_DIR)/usr/lib/python2.**
> 7/site-packages/
> $(HOST_DIR)/usr/bin/python -E -c pass
> TEST FAILED: $(TARGET_DIR)/usr/lib/python2.**7/site-packages/ does NOT
> support .pth files
> error: bad install directory or PYTHONPATH
>
> You are attempting to install a package to a directory that is not
> on PYTHONPATH and which Python does not read ".pth" files from.  The
> installation directory you specified (via --install-dir, --prefix, or
> the distutils default setting) was:
>
>     $(TARGET_DIR)/usr/lib/python2.**7/site-packages/
> ------
>
>  What happens is very clear: we're installing using the host-python, which
> doesn't look at TARGET_DIR to load packages. I would expect that
> distutilscross knows how to deal with that, but haven't found how...
>
>

I have used the code from python-netifaces. It builds without generating an
error at least. Do you think it is ok?

+define PYTHON_THRIFT_BUILD_CMDS
+       (cd $(@D); \
+               PYTHONXCPREFIX="$(STAGING_DIR)/usr/" \
+               LDFLAGS="-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib" \
+       $(HOST_DIR)/usr/bin/python setup.py build -x)
+endef
+
+define PYTHON_THRIFT_INSTALL_TARGET_CMDS
+       (cd $(@D);
PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
\
+       $(HOST_DIR)/usr/bin/python setup.py install
--prefix=$(TARGET_DIR)/usr)
+endef



>  Regards,
>  Arnout
>
>  +
>> +$(eval $(generic-package))
>>
>>
>
> --
> Arnout Vandecappelle                          arnout at mind be
> Senior Embedded Software Architect            +32-16-286500
> Essensium/Mind                                http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/**arnoutvandecappelle<http://www.linkedin.com/in/arnoutvandecappelle>
> GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
>

Best regards,
Tinti
Arnout Vandecappelle March 15, 2013, 12:33 p.m. UTC | #3
On 03/14/13 17:15, Tinti wrote:
> On Wed, Mar 13, 2013 at 5:35 PM, Arnout Vandecappelle <arnout@mind.be
> <mailto:arnout@mind.be>> wrote:
>
>     On 03/13/13 15:43, Vinicius Tinti wrote:
[snip]
>         b/package/python-thrift/python__-thrift.mk <http://python-thrift.mk>
>         new file mode 100644
>         index 0000000..40ae57b
>         --- /dev/null
>         +++ b/package/python-thrift/python__-thrift.mk
>         <http://python-thrift.mk>
>         @@ -0,0 +1,23 @@
>         +#############################__##############################__##
>         +#
>         +# python-thrift
>         +#
>         +#############################__##############################__##
>         +
>         +PYTHON_THRIFT_VERSION = 0.9.0
>         +PYTHON_THRIFT_SOURCE = thrift-$(PYTHON_THRIFT_VERSION).tar.gz
>
>
>       This is the default, so can be removed.
>
>
> Can I keep it? I think it makes more clear.

  Although I agree, the rule in buildroot is that it is removed when it 
is the default. So no, you cannot keep it.

>
>         +PYTHON_THRIFT_SITE =
>         https://pypi.python.org/__packages/source/t/thrift/
>         <https://pypi.python.org/packages/source/t/thrift/>
>         +PYTHON_THRIFT_LICENSE = Apache v2.0
>
>
>       We currently have Apache-v2 (ImageMagick), Apache-2.0 (lua-msgpack)
>     and Apache v2.0 (zxing). I personally prefer Apache-2.0.
>
>
> Changed to Apache-2.0.

  Apache-2.0 is just my personal preference, so wait a bit until some 
others have voiced their opinion.


>         +PYTHON_THRIFT_LICENSE_FILES = README
>         +
>         +PYTHON_THRIFT_DEPENDENCIES = python
>         +
>         +define PYTHON_THRIFT_BUILD_CMDS
>         +       (cd $(@D); $(HOST_DIR)/usr/bin/python setup.py build)
>         +endef
>         +
>         +define PYTHON_THRIFT_INSTALL_TARGET___CMDS
>         +       (cd $(@D); $(HOST_DIR)/usr/bin/python setup.py install
>         --prefix=$(TARGET_DIR)/usr)
>         +endef
>
>
>       Unfortunately, installation fails when host-python-distutilscross
>     has been installed already (by python-protobuf or python-netifaces).
>
>     ------
>     running install
>     Checking .pth file support in
>     $(TARGET_DIR)/usr/lib/python2.__7/site-packages/
>     $(HOST_DIR)/usr/bin/python -E -c pass
>     TEST FAILED: $(TARGET_DIR)/usr/lib/python2.__7/site-packages/ does
>     NOT support .pth files
>     error: bad install directory or PYTHONPATH
>
>     You are attempting to install a package to a directory that is not
>     on PYTHONPATH and which Python does not read ".pth" files from.  The
>     installation directory you specified (via --install-dir, --prefix, or
>     the distutils default setting) was:
>
>          $(TARGET_DIR)/usr/lib/python2.__7/site-packages/
>     ------
>
>       What happens is very clear: we're installing using the host-python,
>     which doesn't look at TARGET_DIR to load packages. I would expect
>     that distutilscross knows how to deal with that, but haven't found how...
>
>
>
> I have used the code from python-netifaces. It builds without generating
> an error at least. Do you think it is ok?

  Strange... Can you check that if you first build 
host-python-distutilscross and then python-thrift, it still works for 
you? So:

make python-distutilscross
make python-thrift-dirclean
make python-thrift

  And a sanity check: do you use current git master as a base?

>
> +define PYTHON_THRIFT_BUILD_CMDS
> +       (cd $(@D); \
> +               PYTHONXCPREFIX="$(STAGING_DIR)/usr/" \
> +               LDFLAGS="-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib" \
> +       $(HOST_DIR)/usr/bin/python setup.py build -x)
> +endef
> +
> +define PYTHON_THRIFT_INSTALL_TARGET_CMDS
> +       (cd $(@D);
> PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
> \
> +       $(HOST_DIR)/usr/bin/python setup.py install
> --prefix=$(TARGET_DIR)/usr)
> +endef


  I have no problem with this workaround, even though it is a bit ugly. 
You should add a comment to explain why this is needed though (before the 
define, otherwise the comment is interrupting the backslashified region).

  When you send a new patch with this change, I'll test it in my environment.


  Regards,
  Arnout
Vinicius Tinti March 18, 2013, 2:53 a.m. UTC | #4
On Fri, Mar 15, 2013 at 9:33 AM, Arnout Vandecappelle <arnout@mind.be>wrote:

> On 03/14/13 17:15, Tinti wrote:
>
>> On Wed, Mar 13, 2013 at 5:35 PM, Arnout Vandecappelle <arnout@mind.be
>> <mailto:arnout@mind.be>> wrote:
>>
>>     On 03/13/13 15:43, Vinicius Tinti wrote:
>>
> [snip]
>
>>         b/package/python-thrift/python**__-thrift.mk<http://python__-thrift.mk><
>> http://python-thrift.mk>
>>
>>         new file mode 100644
>>         index 0000000..40ae57b
>>         --- /dev/null
>>         +++ b/package/python-thrift/python**__-thrift.mk<http://python__-thrift.mk>
>>         <http://python-thrift.mk>
>>         @@ -0,0 +1,23 @@
>>         +#############################**__############################**
>> ##__##
>>         +#
>>         +# python-thrift
>>         +#
>>         +#############################**__############################**
>> ##__##
>>
>>         +
>>         +PYTHON_THRIFT_VERSION = 0.9.0
>>         +PYTHON_THRIFT_SOURCE = thrift-$(PYTHON_THRIFT_**VERSION).tar.gz
>>
>>
>>       This is the default, so can be removed.
>>
>>
>> Can I keep it? I think it makes more clear.
>>
>
>  Although I agree, the rule in buildroot is that it is removed when it is
> the default. So no, you cannot keep it.
>

Ok.


>
>
>>         +PYTHON_THRIFT_SITE =
>>         https://pypi.python.org/__**packages/source/t/thrift/<https://pypi.python.org/__packages/source/t/thrift/>
>>
>>         <https://pypi.python.org/**packages/source/t/thrift/<https://pypi.python.org/packages/source/t/thrift/>
>> >
>>         +PYTHON_THRIFT_LICENSE = Apache v2.0
>>
>>
>>       We currently have Apache-v2 (ImageMagick), Apache-2.0 (lua-msgpack)
>>     and Apache v2.0 (zxing). I personally prefer Apache-2.0.
>>
>>
>> Changed to Apache-2.0.
>>
>
>  Apache-2.0 is just my personal preference, so wait a bit until some
> others have voiced their opinion.
>
>
Right.


>          +PYTHON_THRIFT_LICENSE_FILES = README
>>         +
>>         +PYTHON_THRIFT_DEPENDENCIES = python
>>         +
>>         +define PYTHON_THRIFT_BUILD_CMDS
>>         +       (cd $(@D); $(HOST_DIR)/usr/bin/python setup.py build)
>>         +endef
>>         +
>>         +define PYTHON_THRIFT_INSTALL_TARGET__**_CMDS
>>
>>         +       (cd $(@D); $(HOST_DIR)/usr/bin/python setup.py install
>>         --prefix=$(TARGET_DIR)/usr)
>>         +endef
>>
>>
>>       Unfortunately, installation fails when host-python-distutilscross
>>     has been installed already (by python-protobuf or python-netifaces).
>>
>>     ------
>>     running install
>>     Checking .pth file support in
>>     $(TARGET_DIR)/usr/lib/python2.**__7/site-packages/
>>     $(HOST_DIR)/usr/bin/python -E -c pass
>>     TEST FAILED: $(TARGET_DIR)/usr/lib/python2.**__7/site-packages/ does
>>
>>     NOT support .pth files
>>     error: bad install directory or PYTHONPATH
>>
>>     You are attempting to install a package to a directory that is not
>>     on PYTHONPATH and which Python does not read ".pth" files from.  The
>>     installation directory you specified (via --install-dir, --prefix, or
>>     the distutils default setting) was:
>>
>>          $(TARGET_DIR)/usr/lib/python2.**__7/site-packages/
>>
>>     ------
>>
>>       What happens is very clear: we're installing using the host-python,
>>     which doesn't look at TARGET_DIR to load packages. I would expect
>>     that distutilscross knows how to deal with that, but haven't found
>> how...
>>
>>
>>
>> I have used the code from python-netifaces. It builds without generating
>> an error at least. Do you think it is ok?
>>
>
>  Strange... Can you check that if you first build
> host-python-distutilscross and then python-thrift, it still works for you?
> So:
>
> make python-distutilscross
> make python-thrift-dirclean
> make python-thrift
>
>  And a sanity check: do you use current git master as a base?
>
>
Yes, I am using git://git.buildroot.net/buildroot. But I dont have the
python-distutilscross target available. I have tried even to enable all
python modules. Am I doing something wrong?


>
>> +define PYTHON_THRIFT_BUILD_CMDS
>> +       (cd $(@D); \
>> +               PYTHONXCPREFIX="$(STAGING_DIR)**/usr/" \
>> +               LDFLAGS="-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib" \
>> +       $(HOST_DIR)/usr/bin/python setup.py build -x)
>> +endef
>> +
>> +define PYTHON_THRIFT_INSTALL_TARGET_**CMDS
>> +       (cd $(@D);
>> PYTHONPATH=$(TARGET_DIR)/usr/**lib/python$(PYTHON_VERSION_**
>> MAJOR)/site-packages
>> \
>> +       $(HOST_DIR)/usr/bin/python setup.py install
>> --prefix=$(TARGET_DIR)/usr)
>> +endef
>>
>
>
>  I have no problem with this workaround, even though it is a bit ugly. You
> should add a comment to explain why this is needed though (before the
> define, otherwise the comment is interrupting the backslashified region).
>
>
I have simply copy how python-protocolbuf and python-netifaces are doing
the installation. But the truth is that I don't really know why it must be
done this way. By the code we can see that it uses an intermediate
directory.

Do you think that /* Avoid directory conflicts by using an intermediate
install directory. Needed to work with python-protocolbuf and
python-netifaces. */ is enough?


>  When you send a new patch with this change, I'll test it in my
> environment.
>
>
>  Regards,
>  Arnout
>
> --
> Arnout Vandecappelle                          arnout at mind be
> Senior Embedded Software Architect            +32-16-286500
> Essensium/Mind                                http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/**arnoutvandecappelle<http://www.linkedin.com/in/arnoutvandecappelle>
> GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
>

Best regards.
Tinti
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index a65054c..8467735 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -334,6 +334,7 @@  source "package/python-pygame/Config.in"
 source "package/python-pyparsing/Config.in"
 source "package/python-serial/Config.in"
 source "package/python-setuptools/Config.in"
+source "package/python-thrift/Config.in"
 endmenu
 endif
 source "package/ruby/Config.in"
diff --git a/package/python-thrift/Config.in b/package/python-thrift/Config.in
new file mode 100644
index 0000000..f4ad4ba
--- /dev/null
+++ b/package/python-thrift/Config.in
@@ -0,0 +1,7 @@ 
+config BR2_PACKAGE_PYTHON_THRIFT
+	bool "python-thrift"
+	help
+	  python-thrift is a Python bindings for the Apache Thrift RPC system.
+
+	  http://thrift.apache.org/
+
diff --git a/package/python-thrift/python-thrift.mk b/package/python-thrift/python-thrift.mk
new file mode 100644
index 0000000..40ae57b
--- /dev/null
+++ b/package/python-thrift/python-thrift.mk
@@ -0,0 +1,23 @@ 
+#############################################################
+#
+# python-thrift
+#
+#############################################################
+
+PYTHON_THRIFT_VERSION = 0.9.0
+PYTHON_THRIFT_SOURCE = thrift-$(PYTHON_THRIFT_VERSION).tar.gz
+PYTHON_THRIFT_SITE = https://pypi.python.org/packages/source/t/thrift/
+PYTHON_THRIFT_LICENSE = Apache v2.0
+PYTHON_THRIFT_LICENSE_FILES = README
+
+PYTHON_THRIFT_DEPENDENCIES = python
+
+define PYTHON_THRIFT_BUILD_CMDS
+	(cd $(@D); $(HOST_DIR)/usr/bin/python setup.py build)
+endef
+
+define PYTHON_THRIFT_INSTALL_TARGET_CMDS
+	(cd $(@D); $(HOST_DIR)/usr/bin/python setup.py install --prefix=$(TARGET_DIR)/usr)
+endef
+
+$(eval $(generic-package))