Message ID | 20231109204747.44268-1-brgl@bgdev.pl |
---|---|
State | Under Review |
Headers | show |
Series | [meta-python] python3-gpiod: update to v2.1.3 | expand |
This seems to be mixing native python headers in target build causing do_compile_ptest_base failure in some builds (seen in multilib builds but maybe it can be reproduced in regular 32bit target on 64bit build host): building 'tests.gpiosim._ext' extension creating /tmp/libgpiod-5k0x8gv3/tests creating /tmp/libgpiod-5k0x8gv3/tests/gpiosim ccache arm-oemllib32-linux-gnueabi-gcc -mthumb -mfpu=neon -mfloat-abi=softfp -mcpu=cortex-a9 -mtune=cortex-a9 -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -Werror=return-type -funwind-tables -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 --sysroot=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/lib32-recipe-sysroot -DNDEBUG -g -O3 -Wall -isystemTOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/recipe-sysroot-native/usr/include -O2 -pipe -isystemTOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/recipe-sysroot-native/usr/include -O2 -pipe -O2 -pipe -g -feliminate-unused-debug-types -fcanon-prefix-map -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/gpiod-2.1.3=/usr/src/debug/lib32-python3-gpiod/2.1.3-r0 -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/gpiod-2.1.3=/usr/src/debug/lib32-python3-gpiod/2.1.3-r0 -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/gpiod-2.1.3=/usr/src/debug/lib32-python3-gpiod/2.1.3-r0 -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/gpiod-2.1.3=/usr/src/debug/lib32-python3-gpiod/2.1.3-r0 -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/lib32-recipe-sysroot= -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/lib32-recipe-sysroot= -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/recipe-sysroot-native= -fPIC -D_GNU_SOURCE=1 -I../../include -I../../tests/gpiosim -ITOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/recipe-sysroot-native/usr/include/python3.11 -c tests/gpiosim/ext.c -o /tmp/libgpiod-5k0x8gv3/tests/gpiosim/ext.o -Wall -Wextra In file included from TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/recipe-sysroot-native/usr/include/python3.11/Python.h:38, from tests/gpiosim/ext.c:5: TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/recipe-sysroot-native/usr/include/python3.11/pyport.h:601:2: error: #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)." 601 | #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)." | ^~~~~ On Thu, Nov 9, 2023 at 9:47 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > > The python bindings for libgpiod have undergone several significant > changes that make them easier to use for users of pip. The libgpiod > sources are now vendored with the python3-gpiod as the biggest complaint > by far was the fact that if the system doesn't provide the correct > version of libgpiod, the python bindings won't build. > > This is however irrelevant for the meta-python recipe as we use the > provided switch to keep linking against the libgpiod provided by > meta-openembedded. > > We have changed the way the tests are built, they are now generated by a > separate build script and no longer by setup.py. The package now > correctly build with the preferred pep517 method so change the inherited > classes. > > We have also gained control over the gpiod module on pypi (which > previously hosted a pure python GPIO library) so the location of the > sources has changed. > > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > --- > ...-gpiod_2.0.1.bb => python3-gpiod_2.1.3.bb} | 25 ++++++++++++------- > 1 file changed, 16 insertions(+), 9 deletions(-) > rename meta-python/recipes-devtools/python/{python3-gpiod_2.0.1.bb => > python3-gpiod_2.1.3.bb} (54%) > > diff --git a/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb > b/meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb > similarity index 54% > rename from meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb > rename to meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb > index ea8c18562..ef2f01fd4 100644 > --- a/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb > +++ b/meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb > @@ -3,17 +3,18 @@ SUMMARY = "Python bindings for libgpiod." > LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & CC-BY-SA-4.0" > # The actual license files live in the upstream libgpiod from which the > pypi > # package is spun out. > -LIC_FILES_CHKSUM = > "file://setup.py;beginline=57;endline=57;md5=120334ed83ec0cb248605e775bd13b87" > +LIC_FILES_CHKSUM = > "file://setup.py;beginline=237;endline=237;md5=f5ddb56912b7f20bf94aa4d1bdcd3533" > > SRC_URI += "file://run-ptest" > > -SRC_URI[sha256sum] = > "d5c0f9502e97e7359b9dd601e29f15d668983ce50f5c13323f3302845f790fa6" > +SRC_URI[sha256sum] = > "a33193d6cab79d252329f71666a35a3668e04f1f82bf9b93ee2c9ae852398b20" > > -inherit setuptools3 ptest pypi > +inherit setuptools3-base python_pep517 ptest pypi > > -PYPI_PACKAGE = "libgpiod" > - > -DEPENDS += "libgpiod" > +DEPENDS += " \ > + libgpiod \ > + python3-setuptools-native \ > +" > RDEPENDS:${PN} += " \ > libgpiod (>= 2.0) \ > python3-datetime \ > @@ -24,14 +25,20 @@ RDEPENDS:${PN}-ptest += " \ > python3-setuptools \ > " > > -export GPIOD_WITH_TESTS = "${@bb.utils.contains("PTEST_ENABLED", "1", > "1", "0", d)}" > +export LINK_SYSTEM_LIBGPIOD = "1" > + > +do_compile_ptest() { > + ${STAGING_BINDIR_NATIVE}/python3-native/python3 build_tests.py > +} > > do_install_ptest() { > install -d ${D}${PTEST_PATH}/gpiod-test/gpiosim > install -d ${D}${PTEST_PATH}/gpiod-test/procname > install -m 0644 ${S}/tests/*.py ${D}${PTEST_PATH}/gpiod-test/ > - install -m 0644 ${B}/build/lib*/tests/gpiosim/_ext* > ${D}${PTEST_PATH}/gpiod-test/gpiosim > + install -m 0644 ${B}/tests/gpiosim/_ext* > ${D}${PTEST_PATH}/gpiod-test/gpiosim > install -m 0644 ${S}/tests/gpiosim/*.py > ${D}${PTEST_PATH}/gpiod-test/gpiosim > - install -m 0644 ${B}/build/lib*/tests/procname/_ext* > ${D}${PTEST_PATH}/gpiod-test/procname > + install -m 0644 ${B}/tests/procname/_ext* > ${D}${PTEST_PATH}/gpiod-test/procname > install -m 0644 ${S}/tests/procname/*.py > ${D}${PTEST_PATH}/gpiod-test/procname > } > + > +INSANE_SKIP:${PN}-ptest += "buildpaths" > -- > 2.40.1 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#106520): > https://lists.openembedded.org/g/openembedded-devel/message/106520 > Mute This Topic: https://lists.openembedded.org/mt/102494202/3617156 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [ > martin.jansa@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > >
> seen in multilib builds but maybe it can be reproduced in regular 32bit target on 64bit build host Yes, nodistro build for qemux86 shows the same: http://errors.yoctoproject.org/Errors/Build/174247/ On Wed, Nov 15, 2023 at 9:48 AM Martin Jansa via lists.openembedded.org <martin.jansa=gmail.com@lists.openembedded.org> wrote: > This seems to be mixing native python headers in target build causing > do_compile_ptest_base failure in some builds (seen in multilib builds but > maybe it can be reproduced in regular 32bit target on 64bit build host): > > building 'tests.gpiosim._ext' extension > creating /tmp/libgpiod-5k0x8gv3/tests > creating /tmp/libgpiod-5k0x8gv3/tests/gpiosim > ccache arm-oemllib32-linux-gnueabi-gcc -mthumb -mfpu=neon > -mfloat-abi=softfp -mcpu=cortex-a9 -mtune=cortex-a9 > -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security > -Werror=format-security -Werror=return-type -funwind-tables -D_TIME_BITS=64 > -D_FILE_OFFSET_BITS=64 > --sysroot=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/lib32-recipe-sysroot > -DNDEBUG -g -O3 -Wall > -isystemTOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/recipe-sysroot-native/usr/include > -O2 -pipe > -isystemTOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/recipe-sysroot-native/usr/include > -O2 -pipe -O2 -pipe -g -feliminate-unused-debug-types -fcanon-prefix-map > -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/gpiod-2.1.3=/usr/src/debug/lib32-python3-gpiod/2.1.3-r0 > -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/gpiod-2.1.3=/usr/src/debug/lib32-python3-gpiod/2.1.3-r0 > -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/gpiod-2.1.3=/usr/src/debug/lib32-python3-gpiod/2.1.3-r0 > -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/gpiod-2.1.3=/usr/src/debug/lib32-python3-gpiod/2.1.3-r0 > -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/lib32-recipe-sysroot= > -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/lib32-recipe-sysroot= > -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/recipe-sysroot-native= > -fPIC -D_GNU_SOURCE=1 -I../../include -I../../tests/gpiosim > -ITOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/recipe-sysroot-native/usr/include/python3.11 > -c tests/gpiosim/ext.c -o /tmp/libgpiod-5k0x8gv3/tests/gpiosim/ext.o -Wall > -Wextra > In file included from > TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/recipe-sysroot-native/usr/include/python3.11/Python.h:38, > from tests/gpiosim/ext.c:5: > TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-python3-gpiod/2.1.3/recipe-sysroot-native/usr/include/python3.11/pyport.h:601:2: > error: #error "LONG_BIT definition appears wrong for platform (bad > gcc/glibc config?)." > 601 | #error "LONG_BIT definition appears wrong for platform (bad > gcc/glibc config?)." > | ^~~~~ > > On Thu, Nov 9, 2023 at 9:47 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > >> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> >> >> The python bindings for libgpiod have undergone several significant >> changes that make them easier to use for users of pip. The libgpiod >> sources are now vendored with the python3-gpiod as the biggest complaint >> by far was the fact that if the system doesn't provide the correct >> version of libgpiod, the python bindings won't build. >> >> This is however irrelevant for the meta-python recipe as we use the >> provided switch to keep linking against the libgpiod provided by >> meta-openembedded. >> >> We have changed the way the tests are built, they are now generated by a >> separate build script and no longer by setup.py. The package now >> correctly build with the preferred pep517 method so change the inherited >> classes. >> >> We have also gained control over the gpiod module on pypi (which >> previously hosted a pure python GPIO library) so the location of the >> sources has changed. >> >> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> >> --- >> ...-gpiod_2.0.1.bb => python3-gpiod_2.1.3.bb} | 25 ++++++++++++------- >> 1 file changed, 16 insertions(+), 9 deletions(-) >> rename meta-python/recipes-devtools/python/{python3-gpiod_2.0.1.bb => >> python3-gpiod_2.1.3.bb} (54%) >> >> diff --git a/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb >> b/meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb >> similarity index 54% >> rename from meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb >> rename to meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb >> index ea8c18562..ef2f01fd4 100644 >> --- a/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb >> +++ b/meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb >> @@ -3,17 +3,18 @@ SUMMARY = "Python bindings for libgpiod." >> LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & CC-BY-SA-4.0" >> # The actual license files live in the upstream libgpiod from which the >> pypi >> # package is spun out. >> -LIC_FILES_CHKSUM = >> "file://setup.py;beginline=57;endline=57;md5=120334ed83ec0cb248605e775bd13b87" >> +LIC_FILES_CHKSUM = >> "file://setup.py;beginline=237;endline=237;md5=f5ddb56912b7f20bf94aa4d1bdcd3533" >> >> SRC_URI += "file://run-ptest" >> >> -SRC_URI[sha256sum] = >> "d5c0f9502e97e7359b9dd601e29f15d668983ce50f5c13323f3302845f790fa6" >> +SRC_URI[sha256sum] = >> "a33193d6cab79d252329f71666a35a3668e04f1f82bf9b93ee2c9ae852398b20" >> >> -inherit setuptools3 ptest pypi >> +inherit setuptools3-base python_pep517 ptest pypi >> >> -PYPI_PACKAGE = "libgpiod" >> - >> -DEPENDS += "libgpiod" >> +DEPENDS += " \ >> + libgpiod \ >> + python3-setuptools-native \ >> +" >> RDEPENDS:${PN} += " \ >> libgpiod (>= 2.0) \ >> python3-datetime \ >> @@ -24,14 +25,20 @@ RDEPENDS:${PN}-ptest += " \ >> python3-setuptools \ >> " >> >> -export GPIOD_WITH_TESTS = "${@bb.utils.contains("PTEST_ENABLED", "1", >> "1", "0", d)}" >> +export LINK_SYSTEM_LIBGPIOD = "1" >> + >> +do_compile_ptest() { >> + ${STAGING_BINDIR_NATIVE}/python3-native/python3 build_tests.py >> +} >> >> do_install_ptest() { >> install -d ${D}${PTEST_PATH}/gpiod-test/gpiosim >> install -d ${D}${PTEST_PATH}/gpiod-test/procname >> install -m 0644 ${S}/tests/*.py ${D}${PTEST_PATH}/gpiod-test/ >> - install -m 0644 ${B}/build/lib*/tests/gpiosim/_ext* >> ${D}${PTEST_PATH}/gpiod-test/gpiosim >> + install -m 0644 ${B}/tests/gpiosim/_ext* >> ${D}${PTEST_PATH}/gpiod-test/gpiosim >> install -m 0644 ${S}/tests/gpiosim/*.py >> ${D}${PTEST_PATH}/gpiod-test/gpiosim >> - install -m 0644 ${B}/build/lib*/tests/procname/_ext* >> ${D}${PTEST_PATH}/gpiod-test/procname >> + install -m 0644 ${B}/tests/procname/_ext* >> ${D}${PTEST_PATH}/gpiod-test/procname >> install -m 0644 ${S}/tests/procname/*.py >> ${D}${PTEST_PATH}/gpiod-test/procname >> } >> + >> +INSANE_SKIP:${PN}-ptest += "buildpaths" >> -- >> 2.40.1 >> >> >> >> >> > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#106749): > https://lists.openembedded.org/g/openembedded-devel/message/106749 > Mute This Topic: https://lists.openembedded.org/mt/102494202/3617156 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [ > martin.jansa@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > >
diff --git a/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb b/meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb similarity index 54% rename from meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb rename to meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb index ea8c18562..ef2f01fd4 100644 --- a/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb +++ b/meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb @@ -3,17 +3,18 @@ SUMMARY = "Python bindings for libgpiod." LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & CC-BY-SA-4.0" # The actual license files live in the upstream libgpiod from which the pypi # package is spun out. -LIC_FILES_CHKSUM = "file://setup.py;beginline=57;endline=57;md5=120334ed83ec0cb248605e775bd13b87" +LIC_FILES_CHKSUM = "file://setup.py;beginline=237;endline=237;md5=f5ddb56912b7f20bf94aa4d1bdcd3533" SRC_URI += "file://run-ptest" -SRC_URI[sha256sum] = "d5c0f9502e97e7359b9dd601e29f15d668983ce50f5c13323f3302845f790fa6" +SRC_URI[sha256sum] = "a33193d6cab79d252329f71666a35a3668e04f1f82bf9b93ee2c9ae852398b20" -inherit setuptools3 ptest pypi +inherit setuptools3-base python_pep517 ptest pypi -PYPI_PACKAGE = "libgpiod" - -DEPENDS += "libgpiod" +DEPENDS += " \ + libgpiod \ + python3-setuptools-native \ +" RDEPENDS:${PN} += " \ libgpiod (>= 2.0) \ python3-datetime \ @@ -24,14 +25,20 @@ RDEPENDS:${PN}-ptest += " \ python3-setuptools \ " -export GPIOD_WITH_TESTS = "${@bb.utils.contains("PTEST_ENABLED", "1", "1", "0", d)}" +export LINK_SYSTEM_LIBGPIOD = "1" + +do_compile_ptest() { + ${STAGING_BINDIR_NATIVE}/python3-native/python3 build_tests.py +} do_install_ptest() { install -d ${D}${PTEST_PATH}/gpiod-test/gpiosim install -d ${D}${PTEST_PATH}/gpiod-test/procname install -m 0644 ${S}/tests/*.py ${D}${PTEST_PATH}/gpiod-test/ - install -m 0644 ${B}/build/lib*/tests/gpiosim/_ext* ${D}${PTEST_PATH}/gpiod-test/gpiosim + install -m 0644 ${B}/tests/gpiosim/_ext* ${D}${PTEST_PATH}/gpiod-test/gpiosim install -m 0644 ${S}/tests/gpiosim/*.py ${D}${PTEST_PATH}/gpiod-test/gpiosim - install -m 0644 ${B}/build/lib*/tests/procname/_ext* ${D}${PTEST_PATH}/gpiod-test/procname + install -m 0644 ${B}/tests/procname/_ext* ${D}${PTEST_PATH}/gpiod-test/procname install -m 0644 ${S}/tests/procname/*.py ${D}${PTEST_PATH}/gpiod-test/procname } + +INSANE_SKIP:${PN}-ptest += "buildpaths"