diff options
author | Hongxu Jia <hongxu.jia@windriver.com> | 2017-05-26 03:37:30 -0400 |
---|---|---|
committer | Martin Jansa <Martin.Jansa@gmail.com> | 2017-06-05 11:01:47 +0200 |
commit | abc5a71c4d216742dc2af4b475136262ac169612 (patch) | |
tree | 2f5c60e63f45ffc89332034d5f15f946482fd94d /meta-python/recipes-extended/python-pyparted | |
parent | 0cf7b58745b1bc28d3affef49d5b56128287a576 (diff) | |
download | meta-openembedded-contrib-abc5a71c4d216742dc2af4b475136262ac169612.tar.gz |
python3-pyparted: add a python3 recipe
- Split to a common python-pyparted.inc for python2 and python3
- Tweak 0001-fix-version-float-check.patch for python3 to fix
do_compile errror
----
| ERROR: python3 setup.py build_ext execution failed.
| Traceback (most recent call last):
| File "setup.py", line 62, in <module>
| check_mod_version('libparted', need_libparted_version)
| File "setup.py", line 55, in check_mod_version
| match = re.search('([0-9]+\.[0-9]+)', modversion)
| File "work/core2-64-wrs-linux/python3-pyparted/3.10.7+gitAU
TOINC+69c4a478e4-r0/recipe-sysroot-native/usr/lib/python3.5/re.py",
line 173, in search
| return _compile(pattern, flags).search(string)
| TypeError: cannot use a string pattern on a bytes-like object
----
The reason is the return of subprocess.check_output is byte in python3,
but string in python2
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta-python/recipes-extended/python-pyparted')
4 files changed, 63 insertions, 19 deletions
diff --git a/meta-python/recipes-extended/python-pyparted/python-pyparted.inc b/meta-python/recipes-extended/python-pyparted/python-pyparted.inc new file mode 100644 index 0000000000..65f8ca14db --- /dev/null +++ b/meta-python/recipes-extended/python-pyparted/python-pyparted.inc @@ -0,0 +1,21 @@ +DESCRIPTION = "pyparted is a set of Python modules that provide Python programmers \ +an interface to libparted, the GNU parted library for disk partitioning and \ +filesystem manipulation." +SUMMARY = "Python bindings for libparted" +HOMEPAGE = "https://github.com/rhinstaller/pyparted" +LICENSE = "GPL-2.0+" +LIC_FILES_CHKSUM = "\ + file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \ + file://src/_pedmodule.c;startline=10;endline=22;md5=ebcb25dde1ac9c46e986dec79b404e7e \ +" +DEPENDS += "parted" + +# upstream only publishes releases in github archives which are discouraged +SRCREV = "69c4a478e43d3eff6ae3a0116fa38da06776d5f5" +SRC_URI = "git://github.com/rhinstaller/pyparted.git;protocol=https \ + file://0001-fix-version-float-check.patch \ +" +S = "${WORKDIR}/git" + +RDEPENDS_${PN} += "parted (>= 2.3)" +RDEPENDS_${PN}_class-native = "" diff --git a/meta-python/recipes-extended/python-pyparted/python-pyparted_3.10.7.bb b/meta-python/recipes-extended/python-pyparted/python-pyparted_3.10.7.bb index 8335d08c32..8a15a89fd9 100644 --- a/meta-python/recipes-extended/python-pyparted/python-pyparted_3.10.7.bb +++ b/meta-python/recipes-extended/python-pyparted/python-pyparted_3.10.7.bb @@ -1,27 +1,12 @@ -DESCRIPTION = "pyparted is a set of Python modules that provide Python programmers \ -an interface to libparted, the GNU parted library for disk partitioning and \ -filesystem manipulation." -SUMMARY = "Python bindings for libparted" -HOMEPAGE = "https://github.com/rhinstaller/pyparted" -LICENSE = "GPL-2.0+" -LIC_FILES_CHKSUM = "\ - file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \ - file://src/_pedmodule.c;startline=10;endline=22;md5=ebcb25dde1ac9c46e986dec79b404e7e \ -" -DEPENDS += "parted python-re" +require python-pyparted.inc -PV = "3.10.7+git${SRCPV}" +DEPENDS += "python-re" -# upstream only publishes releases in github archives which are discouraged -SRCREV = "69c4a478e43d3eff6ae3a0116fa38da06776d5f5" -SRC_URI = "git://github.com/rhinstaller/pyparted.git;protocol=https \ - file://0001-fix-version-float-check.patch \ -" -S = "${WORKDIR}/git" +PV = "3.10.7+git${SRCPV}" inherit distutils -RDEPENDS_${PN} += "python-stringold python-codecs python-math parted (>= 2.3)" +RDEPENDS_${PN} += "python-stringold python-codecs python-math" RDEPENDS_${PN}_class-native = "" BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-extended/python-pyparted/python3-pyparted/0001-fix-version-float-check.patch b/meta-python/recipes-extended/python-pyparted/python3-pyparted/0001-fix-version-float-check.patch new file mode 100644 index 0000000000..14fb0bb3e5 --- /dev/null +++ b/meta-python/recipes-extended/python-pyparted/python3-pyparted/0001-fix-version-float-check.patch @@ -0,0 +1,26 @@ +check_mod_version breaks if module version is of x.y.z form +use a regex to help cast x.y.z version to a float + +Upstream-Status: Pending + +Index: git/setup.py +=================================================================== +--- git.orig/setup.py ++++ git/setup.py +@@ -25,6 +25,7 @@ import glob + import os + import platform + import sys ++import re + from distutils.ccompiler import new_compiler + from distutils.errors import CompileError + from distutils.errors import LinkError +@@ -51,6 +52,8 @@ def pkgconfig(*packages, **kwargs): + + def check_mod_version(module, version): + modversion = subprocess.check_output(["pkg-config", "--modversion", module]) ++ match = re.search(b'([0-9]+\.[0-9]+)', modversion) ++ modversion = match.group(0) + if not float(modversion) >= float(version): + sys.stderr.write("*** Minimum required %s version: %s, found: %s\n" % (module, version, modversion,)) + sys.exit(1) diff --git a/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.10.7.bb b/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.10.7.bb new file mode 100644 index 0000000000..ff72c2a655 --- /dev/null +++ b/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.10.7.bb @@ -0,0 +1,12 @@ +require python-pyparted.inc + +DEPENDS += "python3-re" + +PV = "3.10.7+git${SRCPV}" + +inherit distutils3 + +RDEPENDS_${PN} += "python3-stringold python3-codecs python3-math" +RDEPENDS_${PN}_class-native = "" + +BBCLASSEXTEND = "native" |