Message ID | 1488385119-14452-1-git-send-email-christian.kellermann@solectrix.de |
---|---|
State | Accepted |
Headers | show |
On Wed, Mar 1, 2017 at 5:18 PM, Christian Kellermann <christian.kellermann@solectrix.de> wrote: > Adds the python binding for libftdi to buildroot. > > Signed-off-by: Christian Kellermann <christian.kellermann@solectrix.de> Reviewed-by: Yegor Yefremov <yegorslists@googlemail.com> > --- > Changes: > > v2 -> v3: > - Style fixes > - Patch description added > - added myself to DEVELOPERS > > v1 -> v2: > - Formatting > - Removed unneeded dependency > - Use setuptools as SETUP_TYPE > --- > DEVELOPERS | 3 +++ > package/Config.in | 1 + > .../0001-do-not-use-find-library.patch | 31 ++++++++++++++++++++++ > package/python-pylibftdi/Config.in | 11 ++++++++ > package/python-pylibftdi/python-libftdi.hash | 3 +++ > package/python-pylibftdi/python-libftdi.mk | 15 +++++++++++ > 6 files changed, 64 insertions(+) > create mode 100644 package/python-pylibftdi/0001-do-not-use-find-library.patch > create mode 100644 package/python-pylibftdi/Config.in > create mode 100644 package/python-pylibftdi/python-libftdi.hash > create mode 100644 package/python-pylibftdi/python-libftdi.mk > > diff --git a/DEVELOPERS b/DEVELOPERS > index 09a0a6e..8cb2b5a 100644 > --- a/DEVELOPERS > +++ b/DEVELOPERS > @@ -305,6 +305,9 @@ F: package/micropython/ > F: package/micropython-lib/ > F: package/syslog-ng/ > > +N: Christian Kellermann <christian.kellermann@solectrix.de> > +F: package/python-pylibftdi/ > + > N: Christian Stewart <christian@paral.in> > F: linux/linux-ext-aufs.mk > F: package/aufs/ > diff --git a/package/Config.in b/package/Config.in > index 26893e5..8248331 100644 > --- a/package/Config.in > +++ b/package/Config.in > @@ -769,6 +769,7 @@ menu "External python modules" > source "package/python-pygments/Config.in" > source "package/python-pyicu/Config.in" > source "package/python-pyinotify/Config.in" > + source "package/python-pylibftdi/Config.in" > source "package/python-pylru/Config.in" > source "package/python-pymysql/Config.in" > source "package/python-pynacl/Config.in" > diff --git a/package/python-pylibftdi/0001-do-not-use-find-library.patch b/package/python-pylibftdi/0001-do-not-use-find-library.patch > new file mode 100644 > index 0000000..ae8fe2d > --- /dev/null > +++ b/package/python-pylibftdi/0001-do-not-use-find-library.patch > @@ -0,0 +1,31 @@ > +Hard code library loading > + > +Shortcut the search for the libraries in case the built in > +find_library is broken. > + > +As buildroot does not ship any of the external programs that the core > +procedure use to find libraries use the canonical name of the shared > +object and load it. > + > +In this case this affects loading libftdi and libusb. > + > +This should be reliable as we specify said libs as dependencies of > +this package. > + > +Signed-off-by: Christian Kellermann <christian.kellermann@solectrix.de> > + > +--- > +diff -purN pylibftdi-0.15.0.orig/pylibftdi/driver.py pylibftdi-0.15.0/pylibftdi/driver.py > +--- pylibftdi-0.15.0.orig/pylibftdi/driver.py 2015-04-26 22:41:39.000000000 +0200 > ++++ pylibftdi-0.15.0/pylibftdi/driver.py 2017-02-27 13:08:56.502958000 +0100 > +@@ -121,8 +121,8 @@ class Driver(object): > + lib = getattr(cdll, lib_path) > + break > + if lib is None: > +- raise LibraryMissingError('{} library not found (search: {})'.format( > +- name, search_list)) > ++ return cdll.LoadLibrary(name + '.so') > ++ > + return lib > + > + @property > diff --git a/package/python-pylibftdi/Config.in b/package/python-pylibftdi/Config.in > new file mode 100644 > index 0000000..f829071 > --- /dev/null > +++ b/package/python-pylibftdi/Config.in > @@ -0,0 +1,11 @@ > +config BR2_PACKAGE_PYTHON_PYLIBFTDI > + bool "python-pylibftdi" > + select BR2_PACKAGE_LIBFTDI > + depends on BR2_TOOLCHAIN_HAS_THREADS # libusb > + help > + This package contains the python language binding libftdi. > + > + https://pypi.python.org/pypi/pylibftdi > + > +comment "python-pylibftdi needs a toolchain w/ threads" > + depends on !BR2_TOOLCHAIN_HAS_THREADS > diff --git a/package/python-pylibftdi/python-libftdi.hash b/package/python-pylibftdi/python-libftdi.hash > new file mode 100644 > index 0000000..54b33a1 > --- /dev/null > +++ b/package/python-pylibftdi/python-libftdi.hash > @@ -0,0 +1,3 @@ > +# md5 from https://pypi.python.org/pypi/pylibftdi/json, sha256 locally computed > +md5 eaee7fb3a67f33a35a164a9628daaafe pylibftdi-0.15.0.tar.gz > +sha256 51ef08ebcc4ec3eaec2366e9648d3f8fa1b737ea507a7f3a374ac58abf148e77 pylibftdi-0.15.0.tar.gz > diff --git a/package/python-pylibftdi/python-libftdi.mk b/package/python-pylibftdi/python-libftdi.mk > new file mode 100644 > index 0000000..b375abb > --- /dev/null > +++ b/package/python-pylibftdi/python-libftdi.mk > @@ -0,0 +1,15 @@ > +################################################################################ > +# > +# python-libftdi > +# > +################################################################################ > + > +PYTHON_PYLIBFTDI_VERSION = 0.15.0 > +PYTHON_PYLIBFTDI_SOURCE = pylibftdi-$(PYTHON_PYLIBFTDI_VERSION).tar.gz > +PYTHON_PYLIBFTDI_SITE = https://pypi.python.org/packages/e5/bb/d7a86dbd7685e3866ea75d21c6c726d01706fdc0aa5dc9051ce18ae65693 > +PYTHON_PYLIBFTDI_LICENSE = MIT > +PYTHON_PYLIBFTDI_LICENSE_FILES = LICENSE.txt > +PYTHON_PYLIBFTDI_DEPENDENCIES = libftdi > +PYTHON_PYLIBFTDI_SETUP_TYPE = setuptools > + > +$(eval $(python-package)) > -- > 2.1.4 >
Hello, On Wed, 1 Mar 2017 17:18:39 +0100, Christian Kellermann wrote: > Adds the python binding for libftdi to buildroot. > > Signed-off-by: Christian Kellermann <christian.kellermann@solectrix.de> > --- > Changes: Applied to master, thanks. Thomas
Hello, On Wed, 1 Mar 2017 17:18:39 +0100, Christian Kellermann wrote: > Adds the python binding for libftdi to buildroot. > > Signed-off-by: Christian Kellermann <christian.kellermann@solectrix.de> > --- > Changes: This package causes a build issue: Traceback (most recent call last): File "/home/test/autobuild/run/instance-0/output/host/usr/lib/python3.5/py_compile.py", line 125, in compile _optimize=optimize) File "<frozen importlib._bootstrap_external>", line 700, in source_to_code File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed File "/home/test/autobuild/run/instance-0/output/target/usr/lib/python3.5/site-packages/pylibftdi/driver.py", line 124 return cdll.LoadLibrary(name + '.so') ^ TabError: inconsistent use of tabs and spaces in indentation See http://autobuild.buildroot.net/results/67c/67cddfdb801e83acfd9f197f5661fd43fa38a092/build-end.log for the full log. Could you have a look ? Thanks, Thomas
Thomas, Christian, All, On 2017-03-06 09:20 +0100, Thomas Petazzoni spake thusly: > On Wed, 1 Mar 2017 17:18:39 +0100, Christian Kellermann wrote: > > Adds the python binding for libftdi to buildroot. > > > > Signed-off-by: Christian Kellermann <christian.kellermann@solectrix.de> > > --- > > Changes: > > This package causes a build issue: > > Traceback (most recent call last): > File "/home/test/autobuild/run/instance-0/output/host/usr/lib/python3.5/py_compile.py", line 125, in compile > _optimize=optimize) > File "<frozen importlib._bootstrap_external>", line 700, in source_to_code > File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed > File "/home/test/autobuild/run/instance-0/output/target/usr/lib/python3.5/site-packages/pylibftdi/driver.py", line 124 > return cdll.LoadLibrary(name + '.so') > ^ > TabError: inconsistent use of tabs and spaces in indentation That is because of our patch 0001-do-not-use-find-library.patch which introduces leading tabs instead of spaces. Patch incoming... Regards, Yann E. MORIN.
diff --git a/DEVELOPERS b/DEVELOPERS index 09a0a6e..8cb2b5a 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -305,6 +305,9 @@ F: package/micropython/ F: package/micropython-lib/ F: package/syslog-ng/ +N: Christian Kellermann <christian.kellermann@solectrix.de> +F: package/python-pylibftdi/ + N: Christian Stewart <christian@paral.in> F: linux/linux-ext-aufs.mk F: package/aufs/ diff --git a/package/Config.in b/package/Config.in index 26893e5..8248331 100644 --- a/package/Config.in +++ b/package/Config.in @@ -769,6 +769,7 @@ menu "External python modules" source "package/python-pygments/Config.in" source "package/python-pyicu/Config.in" source "package/python-pyinotify/Config.in" + source "package/python-pylibftdi/Config.in" source "package/python-pylru/Config.in" source "package/python-pymysql/Config.in" source "package/python-pynacl/Config.in" diff --git a/package/python-pylibftdi/0001-do-not-use-find-library.patch b/package/python-pylibftdi/0001-do-not-use-find-library.patch new file mode 100644 index 0000000..ae8fe2d --- /dev/null +++ b/package/python-pylibftdi/0001-do-not-use-find-library.patch @@ -0,0 +1,31 @@ +Hard code library loading + +Shortcut the search for the libraries in case the built in +find_library is broken. + +As buildroot does not ship any of the external programs that the core +procedure use to find libraries use the canonical name of the shared +object and load it. + +In this case this affects loading libftdi and libusb. + +This should be reliable as we specify said libs as dependencies of +this package. + +Signed-off-by: Christian Kellermann <christian.kellermann@solectrix.de> + +--- +diff -purN pylibftdi-0.15.0.orig/pylibftdi/driver.py pylibftdi-0.15.0/pylibftdi/driver.py +--- pylibftdi-0.15.0.orig/pylibftdi/driver.py 2015-04-26 22:41:39.000000000 +0200 ++++ pylibftdi-0.15.0/pylibftdi/driver.py 2017-02-27 13:08:56.502958000 +0100 +@@ -121,8 +121,8 @@ class Driver(object): + lib = getattr(cdll, lib_path) + break + if lib is None: +- raise LibraryMissingError('{} library not found (search: {})'.format( +- name, search_list)) ++ return cdll.LoadLibrary(name + '.so') ++ + return lib + + @property diff --git a/package/python-pylibftdi/Config.in b/package/python-pylibftdi/Config.in new file mode 100644 index 0000000..f829071 --- /dev/null +++ b/package/python-pylibftdi/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_PYTHON_PYLIBFTDI + bool "python-pylibftdi" + select BR2_PACKAGE_LIBFTDI + depends on BR2_TOOLCHAIN_HAS_THREADS # libusb + help + This package contains the python language binding libftdi. + + https://pypi.python.org/pypi/pylibftdi + +comment "python-pylibftdi needs a toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/python-pylibftdi/python-libftdi.hash b/package/python-pylibftdi/python-libftdi.hash new file mode 100644 index 0000000..54b33a1 --- /dev/null +++ b/package/python-pylibftdi/python-libftdi.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/pylibftdi/json, sha256 locally computed +md5 eaee7fb3a67f33a35a164a9628daaafe pylibftdi-0.15.0.tar.gz +sha256 51ef08ebcc4ec3eaec2366e9648d3f8fa1b737ea507a7f3a374ac58abf148e77 pylibftdi-0.15.0.tar.gz diff --git a/package/python-pylibftdi/python-libftdi.mk b/package/python-pylibftdi/python-libftdi.mk new file mode 100644 index 0000000..b375abb --- /dev/null +++ b/package/python-pylibftdi/python-libftdi.mk @@ -0,0 +1,15 @@ +################################################################################ +# +# python-libftdi +# +################################################################################ + +PYTHON_PYLIBFTDI_VERSION = 0.15.0 +PYTHON_PYLIBFTDI_SOURCE = pylibftdi-$(PYTHON_PYLIBFTDI_VERSION).tar.gz +PYTHON_PYLIBFTDI_SITE = https://pypi.python.org/packages/e5/bb/d7a86dbd7685e3866ea75d21c6c726d01706fdc0aa5dc9051ce18ae65693 +PYTHON_PYLIBFTDI_LICENSE = MIT +PYTHON_PYLIBFTDI_LICENSE_FILES = LICENSE.txt +PYTHON_PYLIBFTDI_DEPENDENCIES = libftdi +PYTHON_PYLIBFTDI_SETUP_TYPE = setuptools + +$(eval $(python-package))
Adds the python binding for libftdi to buildroot. Signed-off-by: Christian Kellermann <christian.kellermann@solectrix.de> --- Changes: v2 -> v3: - Style fixes - Patch description added - added myself to DEVELOPERS v1 -> v2: - Formatting - Removed unneeded dependency - Use setuptools as SETUP_TYPE --- DEVELOPERS | 3 +++ package/Config.in | 1 + .../0001-do-not-use-find-library.patch | 31 ++++++++++++++++++++++ package/python-pylibftdi/Config.in | 11 ++++++++ package/python-pylibftdi/python-libftdi.hash | 3 +++ package/python-pylibftdi/python-libftdi.mk | 15 +++++++++++ 6 files changed, 64 insertions(+) create mode 100644 package/python-pylibftdi/0001-do-not-use-find-library.patch create mode 100644 package/python-pylibftdi/Config.in create mode 100644 package/python-pylibftdi/python-libftdi.hash create mode 100644 package/python-pylibftdi/python-libftdi.mk