Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH RFC 0/2] Update package/rpi-rgb-led-matrix
@ 2025-12-26 16:07 J. Neuschäfer via buildroot
  2025-12-26 16:07 ` [Buildroot] [PATCH RFC 1/2] package/python-pillow: install libImaging headers J. Neuschäfer via buildroot
  2025-12-26 16:07 ` [Buildroot] [PATCH RFC 2/2] package/rpi-rgb-led-matrix: update to latest git version (2025-12-22) J. Neuschäfer via buildroot
  0 siblings, 2 replies; 6+ messages in thread
From: J. Neuschäfer via buildroot @ 2025-12-26 16:07 UTC (permalink / raw)
  To: buildroot
  Cc: Angelo Compagnucci, Grzegorz Blach, James Hilliard,
	J. Neuschäfer

This brings the rpi-rgb-led-matrix and python-rgbmatrix packages
up to date. One thing that stands out is the additional dependency
on python-pillow's libImaging headers, which requires:

1. the python-pillow package to install the headers somewhere
2. the python-rgbmatrix package to pick them up.

I've made an attempt at this, which works but doesn't seem optimal,
especially the fact that I'm installing to $(STAGING_DIR)/usr/include
rather than .../python$(PYTHON3_VERSION_MAJOR). Comments are appreciated.

Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
---
J. Neuschäfer (2):
      package/python-pillow: install libImaging headers
      package/rpi-rgb-led-matrix: update to latest git version (2025-12-22)

 package/python-pillow/python-pillow.mk             | 6 ++++++
 package/python-rgbmatrix/Config.in                 | 1 +
 package/python-rgbmatrix/python-rgbmatrix.hash     | 2 +-
 package/python-rgbmatrix/python-rgbmatrix.mk       | 4 ++--
 package/rpi-rgb-led-matrix/rpi-rgb-led-matrix.hash | 2 +-
 package/rpi-rgb-led-matrix/rpi-rgb-led-matrix.mk   | 2 +-
 6 files changed, 12 insertions(+), 5 deletions(-)
---
base-commit: 61ca67a5b202c3b81089abc30f67aa88edf73dd2
change-id: 20251226-rgbmatrix-bump-f1e5ec424fd2

Best regards,
-- 
J. Neuschäfer <j.neuschaefer@gmx.net>

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH RFC 1/2] package/python-pillow: install libImaging headers
  2025-12-26 16:07 [Buildroot] [PATCH RFC 0/2] Update package/rpi-rgb-led-matrix J. Neuschäfer via buildroot
@ 2025-12-26 16:07 ` J. Neuschäfer via buildroot
  2025-12-27 23:14   ` Thomas Petazzoni via buildroot
  2025-12-26 16:07 ` [Buildroot] [PATCH RFC 2/2] package/rpi-rgb-led-matrix: update to latest git version (2025-12-22) J. Neuschäfer via buildroot
  1 sibling, 1 reply; 6+ messages in thread
From: J. Neuschäfer via buildroot @ 2025-12-26 16:07 UTC (permalink / raw)
  To: buildroot
  Cc: Angelo Compagnucci, Grzegorz Blach, James Hilliard,
	J. Neuschäfer

python-rgbmatrix depends[1] on Imaging.h since commit bf45676 ("Refactor
broken unsafe SetImagePillow()").

Debian only installs four headers[2], but this seems insufficient,
because Imaging.h includes at least one header that is not on this list
(Arrow.h).

[1]: https://github.com/hzeller/rpi-rgb-led-matrix/pull/1818
[2]: https://sources.debian.org/src/pillow/12.0.0-1/debian/rules#L106
---
 package/python-pillow/python-pillow.mk | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/package/python-pillow/python-pillow.mk b/package/python-pillow/python-pillow.mk
index 80961b92a5..3ae4938dc5 100644
--- a/package/python-pillow/python-pillow.mk
+++ b/package/python-pillow/python-pillow.mk
@@ -12,6 +12,7 @@ PYTHON_PILLOW_LICENSE_FILES = LICENSE
 PYTHON_PILLOW_CPE_ID_VENDOR = python
 PYTHON_PILLOW_CPE_ID_PRODUCT = pillow
 PYTHON_PILLOW_SETUP_TYPE = setuptools
+PYTHON_PILLOW_INSTALL_STAGING = YES
 
 PYTHON_PILLOW_DEPENDENCIES = host-pkgconf
 PYTHON_PILLOW_BUILD_OPTS = \
@@ -75,4 +76,9 @@ else
 PYTHON_PILLOW_BUILD_OPTS += -Czlib=disable
 endif
 
+define PYTHON_PILLOW_INSTALL_LIBIMAGING_HEADERS_STAGING
+	$(INSTALL) -D -m 0644 -t $(STAGING_DIR)/usr/include $(@D)/src/libImaging/*.h
+endef
+PYTHON_PILLOW_POST_INSTALL_STAGING_HOOKS += PYTHON_PILLOW_INSTALL_LIBIMAGING_HEADERS_STAGING
+
 $(eval $(python-package))

-- 
2.51.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH RFC 2/2] package/rpi-rgb-led-matrix: update to latest git version (2025-12-22)
  2025-12-26 16:07 [Buildroot] [PATCH RFC 0/2] Update package/rpi-rgb-led-matrix J. Neuschäfer via buildroot
  2025-12-26 16:07 ` [Buildroot] [PATCH RFC 1/2] package/python-pillow: install libImaging headers J. Neuschäfer via buildroot
@ 2025-12-26 16:07 ` J. Neuschäfer via buildroot
  1 sibling, 0 replies; 6+ messages in thread
From: J. Neuschäfer via buildroot @ 2025-12-26 16:07 UTC (permalink / raw)
  To: buildroot
  Cc: Angelo Compagnucci, Grzegorz Blach, James Hilliard,
	J. Neuschäfer

Since the last update, many open pull requests were merged.

Commit log: https://github.com/hzeller/rpi-rgb-led-matrix/compare/f55736f7595b...cb6ef3adf643

Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
---
 package/python-rgbmatrix/Config.in                 | 1 +
 package/python-rgbmatrix/python-rgbmatrix.hash     | 2 +-
 package/python-rgbmatrix/python-rgbmatrix.mk       | 4 ++--
 package/rpi-rgb-led-matrix/rpi-rgb-led-matrix.hash | 2 +-
 package/rpi-rgb-led-matrix/rpi-rgb-led-matrix.mk   | 2 +-
 5 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/package/python-rgbmatrix/Config.in b/package/python-rgbmatrix/Config.in
index 32fd6d191a..6851e0c2c6 100644
--- a/package/python-rgbmatrix/Config.in
+++ b/package/python-rgbmatrix/Config.in
@@ -5,6 +5,7 @@ config BR2_PACKAGE_PYTHON_RGBMATRIX
 	depends on BR2_TOOLCHAIN_HAS_THREADS  # rpi-rgb-led-matrix
 	depends on !BR2_STATIC_LIBS  # rpi-rgb-led-matrix
 	select BR2_PACKAGE_HOST_PYTHON_CYTHON
+	select BR2_PACKAGE_PYTHON_PILLOW
 	select BR2_PACKAGE_RPI_RGB_LED_MATRIX
 
 comment "python-rgbmatrix needs a toolchain w/ C++, threads, dynamic libraries"
diff --git a/package/python-rgbmatrix/python-rgbmatrix.hash b/package/python-rgbmatrix/python-rgbmatrix.hash
index 175081eb5d..7f1040aeda 100644
--- a/package/python-rgbmatrix/python-rgbmatrix.hash
+++ b/package/python-rgbmatrix/python-rgbmatrix.hash
@@ -1,3 +1,3 @@
 # Locally computed
-sha256  9a6da5b0ad730883a5fa18afc59b1297b4b05eb581c2c14ae50a3583296a4bed  python-rgbmatrix-f55736f7595bc028451658996eedea9742688bbc.tar.gz
+sha256  25f31481d4f281518a91cf62d4c3473d5d1067ec071d996650cf40885c38b3a7  python-rgbmatrix-cb6ef3adf643882603708962941c68e81c195ee4.tar.gz
 sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  COPYING
diff --git a/package/python-rgbmatrix/python-rgbmatrix.mk b/package/python-rgbmatrix/python-rgbmatrix.mk
index 2bd5bc97b7..5c7e39710d 100644
--- a/package/python-rgbmatrix/python-rgbmatrix.mk
+++ b/package/python-rgbmatrix/python-rgbmatrix.mk
@@ -5,14 +5,14 @@
 ################################################################################
 
 # When updating the version, please also update rpi-rgb-led-matrix
-PYTHON_RGBMATRIX_VERSION = f55736f7595bc028451658996eedea9742688bbc  # 2024-08-18
+PYTHON_RGBMATRIX_VERSION = cb6ef3adf643882603708962941c68e81c195ee4
 PYTHON_RGBMATRIX_SITE = $(call github,hzeller,rpi-rgb-led-matrix,$(PYTHON_RGBMATRIX_VERSION))
 PYTHON_RGBMATRIX_LICENSE = GPL-2.0
 PYTHON_RGBMATRIX_LICENSE_FILES = COPYING
 PYTHON_RGBMATRIX_INSTALL_STAGING = YES
 PYTHON_RGBMATRIX_SETUP_TYPE = setuptools
 PYTHON_RGBMATRIX_SUBDIR = bindings/python
-PYTHON_RGBMATRIX_DEPENDENCIES = host-python-cython rpi-rgb-led-matrix
+PYTHON_RGBMATRIX_DEPENDENCIES = host-python-cython python-pillow rpi-rgb-led-matrix
 
 # Generate bindings with cython
 define PYTHON_RGBMATRIX_CYTHON
diff --git a/package/rpi-rgb-led-matrix/rpi-rgb-led-matrix.hash b/package/rpi-rgb-led-matrix/rpi-rgb-led-matrix.hash
index ee6c50dee0..b7eb30de02 100644
--- a/package/rpi-rgb-led-matrix/rpi-rgb-led-matrix.hash
+++ b/package/rpi-rgb-led-matrix/rpi-rgb-led-matrix.hash
@@ -1,3 +1,3 @@
 # Locally computed:
-sha256  9a6da5b0ad730883a5fa18afc59b1297b4b05eb581c2c14ae50a3583296a4bed  rpi-rgb-led-matrix-f55736f7595bc028451658996eedea9742688bbc.tar.gz
+sha256  25f31481d4f281518a91cf62d4c3473d5d1067ec071d996650cf40885c38b3a7  rpi-rgb-led-matrix-cb6ef3adf643882603708962941c68e81c195ee4.tar.gz
 sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  COPYING
diff --git a/package/rpi-rgb-led-matrix/rpi-rgb-led-matrix.mk b/package/rpi-rgb-led-matrix/rpi-rgb-led-matrix.mk
index 593bc96b5d..1d5cfbe13e 100644
--- a/package/rpi-rgb-led-matrix/rpi-rgb-led-matrix.mk
+++ b/package/rpi-rgb-led-matrix/rpi-rgb-led-matrix.mk
@@ -5,7 +5,7 @@
 ################################################################################
 
 # When updating the version, please also update python-rgbmatrix
-RPI_RGB_LED_MATRIX_VERSION = f55736f7595bc028451658996eedea9742688bbc
+RPI_RGB_LED_MATRIX_VERSION = cb6ef3adf643882603708962941c68e81c195ee4
 RPI_RGB_LED_MATRIX_SITE = $(call github,hzeller,rpi-rgb-led-matrix,$(RPI_RGB_LED_MATRIX_VERSION))
 RPI_RGB_LED_MATRIX_LICENSE = GPL-2.0
 RPI_RGB_LED_MATRIX_LICENSE_FILES = COPYING

-- 
2.51.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH RFC 1/2] package/python-pillow: install libImaging headers
  2025-12-26 16:07 ` [Buildroot] [PATCH RFC 1/2] package/python-pillow: install libImaging headers J. Neuschäfer via buildroot
@ 2025-12-27 23:14   ` Thomas Petazzoni via buildroot
  2025-12-28 18:53     ` J. Neuschäfer via buildroot
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-12-27 23:14 UTC (permalink / raw)
  To: J. Neuschäfer via buildroot
  Cc: J. Neuschäfer, Angelo Compagnucci, Grzegorz Blach,
	James Hilliard

Hello J,

Thanks for your patch!

On Fri, 26 Dec 2025 17:07:10 +0100
J. Neuschäfer via buildroot <buildroot@buildroot.org> wrote:

> python-rgbmatrix depends[1] on Imaging.h since commit bf45676 ("Refactor
> broken unsafe SetImagePillow()").

You should clarify here: "and therefore changing python-pillow to
install this header is needed prior to bumping python-rgbmatrix".

> Debian only installs four headers[2], but this seems insufficient,
> because Imaging.h includes at least one header that is not on this list
> (Arrow.h).
> 
> [1]: https://github.com/hzeller/rpi-rgb-led-matrix/pull/1818

Please point to the commit that has been merged, not some "random" PR.

> [2]: https://sources.debian.org/src/pillow/12.0.0-1/debian/rules#L106

Please add your Signed-off-by line here.

Curious: python-pillow would for me be a... Python module. And so would
be python-rgbmatrix. But with your patch, we install some C/C++
headers. So python-pillow includes a native library, and
python-rgbmatrix directly links against this library? How was it
working prior to this change?

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH RFC 1/2] package/python-pillow: install libImaging headers
  2025-12-27 23:14   ` Thomas Petazzoni via buildroot
@ 2025-12-28 18:53     ` J. Neuschäfer via buildroot
  2025-12-28 19:09       ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 6+ messages in thread
From: J. Neuschäfer via buildroot @ 2025-12-28 18:53 UTC (permalink / raw)
  To: Thomas Petazzoni
  Cc: J. Neuschäfer via buildroot, J. Neuschäfer,
	Angelo Compagnucci, Grzegorz Blach, James Hilliard

On Sun, Dec 28, 2025 at 12:14:15AM +0100, Thomas Petazzoni wrote:
> Hello J,
> 
> Thanks for your patch!
> 
> On Fri, 26 Dec 2025 17:07:10 +0100
> J. Neuschäfer via buildroot <buildroot@buildroot.org> wrote:
> 
> > python-rgbmatrix depends[1] on Imaging.h since commit bf45676 ("Refactor
> > broken unsafe SetImagePillow()").
> 
> You should clarify here: "and therefore changing python-pillow to
> install this header is needed prior to bumping python-rgbmatrix".

Will do

> 
> > Debian only installs four headers[2], but this seems insufficient,
> > because Imaging.h includes at least one header that is not on this list
> > (Arrow.h).
> > 
> > [1]: https://github.com/hzeller/rpi-rgb-led-matrix/pull/1818
> 
> Please point to the commit that has been merged, not some "random" PR.

Will do, it's

https://github.com/hzeller/rpi-rgb-led-matrix/commit/bf45676acb9aad3e453833c3a13033ab0650abb3

> 
> > [2]: https://sources.debian.org/src/pillow/12.0.0-1/debian/rules#L106
> 
> Please add your Signed-off-by line here.

Indeed, I forgot!

> Curious: python-pillow would for me be a... Python module. And so would
> be python-rgbmatrix. But with your patch, we install some C/C++
> headers. So python-pillow includes a native library, and
> python-rgbmatrix directly links against this library? How was it
> working prior to this change?

Pretty much. python-pillow is a Python module, but it's partially
implemented in C. python-rgbmatrix (the Python module for the
rpi-rgb-led-matrix C++ library) accesses internal state of objects
created by python-pillow. There is no direct linking, both native
libraries exist in the same process because they are loaded as part of
their respective Python modules. Prior to this commit, python-rgbmatrix
included its own definition of struct ImagingMemoryInstance (called
PillowImagingInstance). With this commit, pillow's Imaging.h is included
to get the struct layout and ultimately the offset of the "image32"
member.

Thanks!
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH RFC 1/2] package/python-pillow: install libImaging headers
  2025-12-28 18:53     ` J. Neuschäfer via buildroot
@ 2025-12-28 19:09       ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-12-28 19:09 UTC (permalink / raw)
  To: J. Neuschäfer
  Cc: J. Neuschäfer via buildroot, Angelo Compagnucci,
	Grzegorz Blach, James Hilliard

On Sun, 28 Dec 2025 19:53:09 +0100
J. Neuschäfer <j.neuschaefer@gmx.net> wrote:

> Pretty much. python-pillow is a Python module, but it's partially
> implemented in C. python-rgbmatrix (the Python module for the
> rpi-rgb-led-matrix C++ library) accesses internal state of objects
> created by python-pillow. There is no direct linking, both native
> libraries exist in the same process because they are loaded as part of
> their respective Python modules. Prior to this commit, python-rgbmatrix
> included its own definition of struct ImagingMemoryInstance (called
> PillowImagingInstance). With this commit, pillow's Imaging.h is included
> to get the struct layout and ultimately the offset of the "image32"
> member.

Awesome explanation, thanks a lot! Could you copy/paste this into the
commit message?

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

end of thread, other threads:[~2025-12-28 19:09 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-26 16:07 [Buildroot] [PATCH RFC 0/2] Update package/rpi-rgb-led-matrix J. Neuschäfer via buildroot
2025-12-26 16:07 ` [Buildroot] [PATCH RFC 1/2] package/python-pillow: install libImaging headers J. Neuschäfer via buildroot
2025-12-27 23:14   ` Thomas Petazzoni via buildroot
2025-12-28 18:53     ` J. Neuschäfer via buildroot
2025-12-28 19:09       ` Thomas Petazzoni via buildroot
2025-12-26 16:07 ` [Buildroot] [PATCH RFC 2/2] package/rpi-rgb-led-matrix: update to latest git version (2025-12-22) J. Neuschäfer via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox