All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-oe][PATCH v2 0/4] python3-gpiod: fetch sources from pypi
@ 2023-04-14 11:51 Bartosz Golaszewski
  2023-04-14 11:51 ` [meta-python][PATCH v2 1/4] python3-gpiod: add missing run-time dependencies Bartosz Golaszewski
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Bartosz Golaszewski @ 2023-04-14 11:51 UTC (permalink / raw)
  To: Khem Raj, Bruce Ashfield, openembedded-devel; +Cc: Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

Khem,

There were two issues in the previous version. First, the gpiosim.h
header is not installed as it's for tests only so we need to manually
install it when ptests are enabled so that the python package can see
it in its sysroot. The second issue were the PTEST_FLAGS that were not
correctly expanded. I dropped them now as they are no longer needed when
using the python build front-end.

I added an additional patch which removed libgpiod-src.inc as it's no
longer required by python3-gpiod. Tested with gcc & clang and glibc & musl.

Bartosz Golaszewski (4):
  python3-gpiod: add missing run-time dependencies
  libgpiod: install the libgpiosim header
  python3-gpiod: fetch sources from pypi
  libgpiod: fold libgpiod-src.inc into libgpiod.inc

 .../recipes-support/libgpiod/libgpiod-src.inc |  1 -
 meta-oe/recipes-support/libgpiod/libgpiod.inc |  7 +--
 .../libgpiod/libgpiod_2.0.1.bb                |  6 +++
 .../python/python3-gpiod_2.0.1.bb             | 38 ++++++++++++++++
 .../python/python3-gpiod_2.0.bb               | 45 -------------------
 5 files changed, 48 insertions(+), 49 deletions(-)
 delete mode 100644 meta-oe/recipes-support/libgpiod/libgpiod-src.inc
 create mode 100644 meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb
 delete mode 100644 meta-python/recipes-devtools/python/python3-gpiod_2.0.bb

-- 
2.37.2



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [meta-python][PATCH v2 1/4] python3-gpiod: add missing run-time dependencies
  2023-04-14 11:51 [meta-oe][PATCH v2 0/4] python3-gpiod: fetch sources from pypi Bartosz Golaszewski
@ 2023-04-14 11:51 ` Bartosz Golaszewski
  2023-04-14 11:51 ` [meta-oe][PATCH v2 2/4] libgpiod: install the libgpiosim header Bartosz Golaszewski
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Bartosz Golaszewski @ 2023-04-14 11:51 UTC (permalink / raw)
  To: Khem Raj, Bruce Ashfield, openembedded-devel; +Cc: Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

The gpiod package needs some standard python modules so add them to
RDEPENDS.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 meta-python/recipes-devtools/python/python3-gpiod_2.0.bb | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/meta-python/recipes-devtools/python/python3-gpiod_2.0.bb b/meta-python/recipes-devtools/python/python3-gpiod_2.0.bb
index 93b7b935c..e39d5beb1 100644
--- a/meta-python/recipes-devtools/python/python3-gpiod_2.0.bb
+++ b/meta-python/recipes-devtools/python/python3-gpiod_2.0.bb
@@ -18,7 +18,11 @@ S = "${WORKDIR}/libgpiod-${PV}/bindings/python"
 inherit setuptools3 ptest
 
 DEPENDS += "libgpiod"
-RDEPENDS:${PN} += "libgpiod (>= 2.0)"
+RDEPENDS:${PN} += " \
+    libgpiod (>= 2.0) \
+    python3-datetime \
+    python3-profile \
+"
 RDEPENDS:${PN}-ptest += "python3-setuptools"
 
 export GPIOD_WITH_TESTS = "${@bb.utils.contains("PTEST_ENABLED", "1", "1", "0", d)}"
-- 
2.37.2



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [meta-oe][PATCH v2 2/4] libgpiod: install the libgpiosim header
  2023-04-14 11:51 [meta-oe][PATCH v2 0/4] python3-gpiod: fetch sources from pypi Bartosz Golaszewski
  2023-04-14 11:51 ` [meta-python][PATCH v2 1/4] python3-gpiod: add missing run-time dependencies Bartosz Golaszewski
@ 2023-04-14 11:51 ` Bartosz Golaszewski
  2023-04-14 11:51 ` [meta-python][PATCH v2 3/4] python3-gpiod: fetch sources from pypi Bartosz Golaszewski
  2023-04-14 11:51 ` [meta-oe][PATCH v2 4/4] libgpiod: fold libgpiod-src.inc into libgpiod.inc Bartosz Golaszewski
  3 siblings, 0 replies; 5+ messages in thread
From: Bartosz Golaszewski @ 2023-04-14 11:51 UTC (permalink / raw)
  To: Khem Raj, Bruce Ashfield, openembedded-devel; +Cc: Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

This header is used for building tests. While libgpiod can access it
from the source tree, the python bindings that live in a separate recipe
must be able to use it from its recipe sysroot.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 meta-oe/recipes-support/libgpiod/libgpiod_2.0.1.bb | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/meta-oe/recipes-support/libgpiod/libgpiod_2.0.1.bb b/meta-oe/recipes-support/libgpiod/libgpiod_2.0.1.bb
index 50b9203a7..337554cd8 100644
--- a/meta-oe/recipes-support/libgpiod/libgpiod_2.0.1.bb
+++ b/meta-oe/recipes-support/libgpiod/libgpiod_2.0.1.bb
@@ -15,7 +15,13 @@ SRC_URI[sha256sum] = "b5367d28d045b36007a4ffd42cceda4c358737ef4f2ce22b0c1d05ec57
 PACKAGECONFIG[tests] = "--enable-tests --enable-tools --enable-bindings-cxx --enable-gpioset-interactive,--disable-tests,kmod util-linux glib-2.0 catch2 libedit"
 PACKAGECONFIG[gpioset-interactive] = "--enable-gpioset-interactive,--disable-gpioset-interactive,libedit"
 
+PACKAGES =+ "${PN}-ptest-dev"
 FILES:${PN}-tools += "${bindir}/gpionotify"
 FILES:${PN}-ptest += "${libdir}/libgpiosim.so.*"
+FILES:${PN}-ptest-dev += "${includedir}/gpiosim.h"
 
 RRECOMMENDS:${PN}-ptest += "kernel-module-gpio-sim"
+
+do_install_ptest:append() {
+    install -m 0644 ${S}/tests/gpiosim/gpiosim.h ${D}${includedir}/gpiosim.h
+}
-- 
2.37.2



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [meta-python][PATCH v2 3/4] python3-gpiod: fetch sources from pypi
  2023-04-14 11:51 [meta-oe][PATCH v2 0/4] python3-gpiod: fetch sources from pypi Bartosz Golaszewski
  2023-04-14 11:51 ` [meta-python][PATCH v2 1/4] python3-gpiod: add missing run-time dependencies Bartosz Golaszewski
  2023-04-14 11:51 ` [meta-oe][PATCH v2 2/4] libgpiod: install the libgpiosim header Bartosz Golaszewski
@ 2023-04-14 11:51 ` Bartosz Golaszewski
  2023-04-14 11:51 ` [meta-oe][PATCH v2 4/4] libgpiod: fold libgpiod-src.inc into libgpiod.inc Bartosz Golaszewski
  3 siblings, 0 replies; 5+ messages in thread
From: Bartosz Golaszewski @ 2023-04-14 11:51 UTC (permalink / raw)
  To: Khem Raj, Bruce Ashfield, openembedded-devel; +Cc: Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

Python bindings to libgpiod are now available on pypi. The source
package is a limited subset of the original repository. As such the
ptest package now requires the libgpiod-ptest to be available at
run-time (for libgpiosim.so against which the test C extension is
linked).

The problem with installing the C extensions for tests is now fixed so
drop the do_install:append(). We no longer have to pass any additional
CFLAGS to setup.py either.

We update the version of the recipe but the changes only apply to
building and packaging, there are no functional changes to the code.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 .../python/python3-gpiod_2.0.1.bb             | 38 ++++++++++++++
 .../python/python3-gpiod_2.0.bb               | 49 -------------------
 2 files changed, 38 insertions(+), 49 deletions(-)
 create mode 100644 meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb
 delete mode 100644 meta-python/recipes-devtools/python/python3-gpiod_2.0.bb

diff --git a/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb b/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb
new file mode 100644
index 000000000..f833e6903
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Python bindings for libgpiod."
+AUTHOR = "Bartosz Golaszewski <brgl@bgdev.pl>"
+
+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"
+
+SRC_URI += "file://run-ptest"
+
+SRC_URI[sha256sum] = "d5c0f9502e97e7359b9dd601e29f15d668983ce50f5c13323f3302845f790fa6"
+
+inherit setuptools3 ptest pypi
+
+PYPI_PACKAGE = "libgpiod"
+
+DEPENDS += "libgpiod"
+RDEPENDS:${PN} += " \
+    libgpiod (>= 2.0) \
+    python3-datetime \
+    python3-profile \
+"
+RDEPENDS:${PN}-ptest += " \
+    libgpiod-ptest \
+    python3-setuptools \
+"
+
+export GPIOD_WITH_TESTS = "${@bb.utils.contains("PTEST_ENABLED", "1", "1", "0", d)}"
+
+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 ${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 ${S}/tests/procname/*.py ${D}${PTEST_PATH}/gpiod-test/procname
+}
diff --git a/meta-python/recipes-devtools/python/python3-gpiod_2.0.bb b/meta-python/recipes-devtools/python/python3-gpiod_2.0.bb
deleted file mode 100644
index e39d5beb1..000000000
--- a/meta-python/recipes-devtools/python/python3-gpiod_2.0.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "Python bindings for libgpiod."
-AUTHOR = "Bartosz Golaszewski <brgl@bgdev.pl>"
-
-LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & CC-BY-SA-4.0"
-LIC_FILES_CHKSUM = " \
-    file://../../LICENSES/GPL-2.0-or-later.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-    file://../../LICENSES/LGPL-2.1-or-later.txt;md5=4b54a1fd55a448865a0b32d41598759d \
-    file://../../LICENSES/CC-BY-SA-4.0.txt;md5=fba3b94d88bfb9b81369b869a1e9a20f \
-"
-
-require recipes-support/libgpiod/libgpiod-src.inc
-
-SRC_URI += "file://run-ptest"
-
-SRC_URI[sha256sum] = "f74cbf82038b3cb98ebeb25bce55ee2553be28194002d2a9889b9268cce2dd07"
-S = "${WORKDIR}/libgpiod-${PV}/bindings/python"
-
-inherit setuptools3 ptest
-
-DEPENDS += "libgpiod"
-RDEPENDS:${PN} += " \
-    libgpiod (>= 2.0) \
-    python3-datetime \
-    python3-profile \
-"
-RDEPENDS:${PN}-ptest += "python3-setuptools"
-
-export GPIOD_WITH_TESTS = "${@bb.utils.contains("PTEST_ENABLED", "1", "1", "0", d)}"
-PTEST_CFLAGS = "${@bb.utils.contains("PTEST_ENABLED", "1", "-I../../tests/gpiosim", "", d)}"
-# Setuptools store full filesystem paths in DWARF files. Map them to './' to
-# avoid QA warnings.
-export CFLAGS = "${PTEST_CFLAGS} -fdebug-prefix-map=${B}=./"
-
-do_install:append() {
-    # Python setuptools have an issue where they install C extensions even if
-    # they're not in the list of packages to be packaged. This is how the test
-    # extensions end up being installed. Remove them here.
-    rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/tests/
-}
-
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/gpiod-test/gpiosim
-    install -d ${D}${PTEST_PATH}/gpiod-test/procname
-    install -m 0644 ${B}/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/*.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/*.py ${D}${PTEST_PATH}/gpiod-test/procname
-}
-- 
2.37.2



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [meta-oe][PATCH v2 4/4] libgpiod: fold libgpiod-src.inc into libgpiod.inc
  2023-04-14 11:51 [meta-oe][PATCH v2 0/4] python3-gpiod: fetch sources from pypi Bartosz Golaszewski
                   ` (2 preceding siblings ...)
  2023-04-14 11:51 ` [meta-python][PATCH v2 3/4] python3-gpiod: fetch sources from pypi Bartosz Golaszewski
@ 2023-04-14 11:51 ` Bartosz Golaszewski
  3 siblings, 0 replies; 5+ messages in thread
From: Bartosz Golaszewski @ 2023-04-14 11:51 UTC (permalink / raw)
  To: Khem Raj, Bruce Ashfield, openembedded-devel; +Cc: Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

Now that python3-gpiod fetches the sources from pypi, we no longer need
to provide the SRC_URI in a separate include. Fold it into the
libgpiod.inc used locally only.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 meta-oe/recipes-support/libgpiod/libgpiod-src.inc | 1 -
 meta-oe/recipes-support/libgpiod/libgpiod.inc     | 7 ++++---
 2 files changed, 4 insertions(+), 4 deletions(-)
 delete mode 100644 meta-oe/recipes-support/libgpiod/libgpiod-src.inc

diff --git a/meta-oe/recipes-support/libgpiod/libgpiod-src.inc b/meta-oe/recipes-support/libgpiod/libgpiod-src.inc
deleted file mode 100644
index 6bab4c1f4..000000000
--- a/meta-oe/recipes-support/libgpiod/libgpiod-src.inc
+++ /dev/null
@@ -1 +0,0 @@
-SRC_URI += "https://www.kernel.org/pub/software/libs/libgpiod/libgpiod-${PV}.tar.xz"
diff --git a/meta-oe/recipes-support/libgpiod/libgpiod.inc b/meta-oe/recipes-support/libgpiod/libgpiod.inc
index abb6544ec..53f9ec49c 100644
--- a/meta-oe/recipes-support/libgpiod/libgpiod.inc
+++ b/meta-oe/recipes-support/libgpiod/libgpiod.inc
@@ -1,11 +1,12 @@
 SUMMARY = "C library and tools for interacting with the linux GPIO character device"
 AUTHOR = "Bartosz Golaszewski <brgl@bgdev.pl>"
 
-require libgpiod-src.inc
-
 inherit autotools pkgconfig ptest
 
-SRC_URI += "file://run-ptest"
+SRC_URI += " \
+    https://www.kernel.org/pub/software/libs/libgpiod/libgpiod-${PV}.tar.xz \
+    file://run-ptest \
+"
 
 PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx"
 
-- 
2.37.2



^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-04-14 11:52 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-14 11:51 [meta-oe][PATCH v2 0/4] python3-gpiod: fetch sources from pypi Bartosz Golaszewski
2023-04-14 11:51 ` [meta-python][PATCH v2 1/4] python3-gpiod: add missing run-time dependencies Bartosz Golaszewski
2023-04-14 11:51 ` [meta-oe][PATCH v2 2/4] libgpiod: install the libgpiosim header Bartosz Golaszewski
2023-04-14 11:51 ` [meta-python][PATCH v2 3/4] python3-gpiod: fetch sources from pypi Bartosz Golaszewski
2023-04-14 11:51 ` [meta-oe][PATCH v2 4/4] libgpiod: fold libgpiod-src.inc into libgpiod.inc Bartosz Golaszewski

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.