Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2 0/7] Add package/python-memray and dependencies
@ 2025-08-11 16:18 Fiona Klute via buildroot
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 1/7] package/elfutils: new option to enable building libdebuginfod for target Fiona Klute via buildroot
                   ` (6 more replies)
  0 siblings, 7 replies; 9+ messages in thread
From: Fiona Klute via buildroot @ 2025-08-11 16:18 UTC (permalink / raw)
  To: buildroot; +Cc: James Hilliard, Fiona Klute, Thomas Petazzoni

From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>

This series adds the Memray memory profiler for Python [1] and its
dependencies. I needed it to help reduce memory usage of some custom
tools, and figure it might be useful to others for
debugging/optimization, too.

The individual patches are fairly simple, mostly a bunch of new Python
packages. Memray itself includes a binary module that needs to be
cross-compiled.

package/elfutils gets an option to enable building libdebuginfod. Note
that this only enables building the library so software that
unconditionally links against it (like Memray) can be built, it does
not create any infrastructure to provide debug info for download.

Best regards,
Fiona

[1] https://github.com/bloomberg/memray

Changes v1 -> v2:
* package/elfutils (patch 1): add option to enable building
  libdebuginfod, instead of building it if requirements are met
* package/python-platformdirs (patch 4): add missing dependency on
  host-python-hatch-vcs
* package/python-memray (patch 7): add a runtime test
* package/python-memray (patch 7): select
  BR2_PACKAGE_ELFUTILS_LIBDEBUGINFOD instead of indirect dependencies
* package/python-memray (patch 7): select BR2_PACKAGE_PYTHON3_ZLIB
  (missing runtime dependency)


Fiona Klute (WIWA) (7):
  package/elfutils: new option to enable building libdebuginfod for
    target
  package/python-mdurl: new package
  package/python-markdown-it-py: new package
  package/python-platformdirs: new package
  package/python-rich: new package
  package/python-textual: new package
  package/python-memray: new package

 DEVELOPERS                                    |  8 ++++
 package/Config.in                             |  6 +++
 package/elfutils/Config.in                    | 11 ++++++
 package/elfutils/elfutils.mk                  |  9 ++++-
 package/python-markdown-it-py/Config.in       |  7 ++++
 .../python-markdown-it-py.hash                |  6 +++
 .../python-markdown-it-py.mk                  | 14 +++++++
 package/python-mdurl/Config.in                |  7 ++++
 package/python-mdurl/python-mdurl.hash        |  5 +++
 package/python-mdurl/python-mdurl.mk          | 14 +++++++
 package/python-memray/Config.in               | 19 ++++++++++
 package/python-memray/python-memray.hash      |  6 +++
 package/python-memray/python-memray.mk        | 22 +++++++++++
 package/python-platformdirs/Config.in         |  7 ++++
 .../python-platformdirs.hash                  |  5 +++
 .../python-platformdirs.mk                    | 15 ++++++++
 package/python-rich/Config.in                 |  9 +++++
 package/python-rich/python-rich.hash          |  5 +++
 package/python-rich/python-rich.mk            | 14 +++++++
 package/python-textual/Config.in              | 11 ++++++
 package/python-textual/python-textual.hash    |  5 +++
 package/python-textual/python-textual.mk      | 14 +++++++
 .../tests/package/sample_python_memray.py     | 10 +++++
 .../tests/package/test_python_memray.py       | 38 +++++++++++++++++++
 24 files changed, 265 insertions(+), 2 deletions(-)
 create mode 100644 package/python-markdown-it-py/Config.in
 create mode 100644 package/python-markdown-it-py/python-markdown-it-py.hash
 create mode 100644 package/python-markdown-it-py/python-markdown-it-py.mk
 create mode 100644 package/python-mdurl/Config.in
 create mode 100644 package/python-mdurl/python-mdurl.hash
 create mode 100644 package/python-mdurl/python-mdurl.mk
 create mode 100644 package/python-memray/Config.in
 create mode 100644 package/python-memray/python-memray.hash
 create mode 100644 package/python-memray/python-memray.mk
 create mode 100644 package/python-platformdirs/Config.in
 create mode 100644 package/python-platformdirs/python-platformdirs.hash
 create mode 100644 package/python-platformdirs/python-platformdirs.mk
 create mode 100644 package/python-rich/Config.in
 create mode 100644 package/python-rich/python-rich.hash
 create mode 100644 package/python-rich/python-rich.mk
 create mode 100644 package/python-textual/Config.in
 create mode 100644 package/python-textual/python-textual.hash
 create mode 100644 package/python-textual/python-textual.mk
 create mode 100644 support/testing/tests/package/sample_python_memray.py
 create mode 100644 support/testing/tests/package/test_python_memray.py

-- 
2.50.1

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

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

* [Buildroot] [PATCH v2 1/7] package/elfutils: new option to enable building libdebuginfod for target
  2025-08-11 16:18 [Buildroot] [PATCH v2 0/7] Add package/python-memray and dependencies Fiona Klute via buildroot
@ 2025-08-11 16:18 ` Fiona Klute via buildroot
  2026-01-02 17:17   ` Thomas Petazzoni via buildroot
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 2/7] package/python-mdurl: new package Fiona Klute via buildroot
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 9+ messages in thread
From: Fiona Klute via buildroot @ 2025-08-11 16:18 UTC (permalink / raw)
  To: buildroot; +Cc: James Hilliard, Fiona Klute, Thomas Petazzoni

From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>

This does not make debug info available, but allows building programs
that link against libdebuginfod.

Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
---
Changes v1 -> v2:
* add option to enable building libdebuginfod, instead of building it
  if requirements are met

 package/elfutils/Config.in   | 11 +++++++++++
 package/elfutils/elfutils.mk |  9 +++++++--
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/package/elfutils/Config.in b/package/elfutils/Config.in
index e866dd448b..a57a7e4d8e 100644
--- a/package/elfutils/Config.in
+++ b/package/elfutils/Config.in
@@ -33,4 +33,15 @@ comment "elfutils programs needs a glibc toolchain w/ C++"
 	depends on !BR2_TOOLCHAIN_USES_GLIBC \
 		|| !BR2_INSTALL_LIBSTDCPP
 
+config BR2_PACKAGE_ELFUTILS_LIBDEBUGINFOD
+	bool "build libdebuginfod"
+	default n
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # required for json-c
+	select BR2_PACKAGE_JSON_C
+	select BR2_PACKAGE_LIBCURL
+	help
+	  This option enables building libdebuginfod. Note that this
+	  only builds the library, it does not provide any service or
+	  data to download debug info.
+
 endif
diff --git a/package/elfutils/elfutils.mk b/package/elfutils/elfutils.mk
index 39d6607cdf..697ec538f1 100644
--- a/package/elfutils/elfutils.mk
+++ b/package/elfutils/elfutils.mk
@@ -49,8 +49,13 @@ ifeq ($(BR2_microblaze),y)
 ELFUTILS_CONF_OPTS += --disable-symbol-versioning
 endif
 
-# disable for now, needs "distro" support
-ELFUTILS_CONF_OPTS += --disable-libdebuginfod --disable-debuginfod
+ifeq ($(BR2_PACKAGE_ELFUTILS_LIBDEBUGINFOD),y)
+ELFUTILS_CONF_OPTS += --enable-libdebuginfod
+ELFUTILS_DEPENDENCIES += json-c libcurl
+else
+ELFUTILS_CONF_OPTS += --disable-libdebuginfod
+endif
+ELFUTILS_CONF_OPTS += --disable-debuginfod
 HOST_ELFUTILS_CONF_OPTS += --disable-libdebuginfod --disable-debuginfod
 
 ELFUTILS_CONF_ENV += \
-- 
2.50.1

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

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

* [Buildroot] [PATCH v2 2/7] package/python-mdurl: new package
  2025-08-11 16:18 [Buildroot] [PATCH v2 0/7] Add package/python-memray and dependencies Fiona Klute via buildroot
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 1/7] package/elfutils: new option to enable building libdebuginfod for target Fiona Klute via buildroot
@ 2025-08-11 16:18 ` Fiona Klute via buildroot
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 3/7] package/python-markdown-it-py: " Fiona Klute via buildroot
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Fiona Klute via buildroot @ 2025-08-11 16:18 UTC (permalink / raw)
  To: buildroot; +Cc: James Hilliard, Fiona Klute, Thomas Petazzoni

From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>

Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
---
 DEVELOPERS                             |  1 +
 package/Config.in                      |  1 +
 package/python-mdurl/Config.in         |  7 +++++++
 package/python-mdurl/python-mdurl.hash |  5 +++++
 package/python-mdurl/python-mdurl.mk   | 14 ++++++++++++++
 5 files changed, 28 insertions(+)
 create mode 100644 package/python-mdurl/Config.in
 create mode 100644 package/python-mdurl/python-mdurl.hash
 create mode 100644 package/python-mdurl/python-mdurl.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index a28f3e8d57..8073742940 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1120,6 +1120,7 @@ N:	Fiona Klute <fiona.klute@gmx.de>
 F:	package/*/S*
 F:	package/panel-mipi-dbi-firmware/
 F:	package/python-aiomqtt/
+F:	package/python-mdurl/
 F:	package/python-pyasynchat/
 F:	package/python-pyasyncore/
 F:	support/testing/tests/package/sample_python_networkmanager_goi.py
diff --git a/package/Config.in b/package/Config.in
index 137f74ed82..e9ce49e2df 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1235,6 +1235,7 @@ menu "External python modules"
 	source "package/python-matplotlib/Config.in"
 	source "package/python-matplotlib-inline/Config.in"
 	source "package/python-mbstrdecoder/Config.in"
+	source "package/python-mdurl/Config.in"
 	source "package/python-memory-profiler/Config.in"
 	source "package/python-midiutil/Config.in"
 	source "package/python-mimeparse/Config.in"
diff --git a/package/python-mdurl/Config.in b/package/python-mdurl/Config.in
new file mode 100644
index 0000000000..6daf4d39c4
--- /dev/null
+++ b/package/python-mdurl/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_PYTHON_MDURL
+	bool "python-mdurl"
+	help
+	  This is a Python port of the JavaScript mdurl package, used by
+	  markdown-it-py.
+
+	  https://github.com/executablebooks/mdurl
diff --git a/package/python-mdurl/python-mdurl.hash b/package/python-mdurl/python-mdurl.hash
new file mode 100644
index 0000000000..932813e9f6
--- /dev/null
+++ b/package/python-mdurl/python-mdurl.hash
@@ -0,0 +1,5 @@
+# md5, sha256 from https://pypi.org/pypi/mdurl/json
+md5  f18eca6522b438354be2378f216a5a94  mdurl-0.1.2.tar.gz
+sha256  bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba  mdurl-0.1.2.tar.gz
+# Locally computed sha256 checksums
+sha256  7c605df6e28667a9603118e98274f64a49ce3eed0d26fccce9534a345e0ef955  LICENSE
diff --git a/package/python-mdurl/python-mdurl.mk b/package/python-mdurl/python-mdurl.mk
new file mode 100644
index 0000000000..c6ed397438
--- /dev/null
+++ b/package/python-mdurl/python-mdurl.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# python-mdurl
+#
+################################################################################
+
+PYTHON_MDURL_VERSION = 0.1.2
+PYTHON_MDURL_SOURCE = mdurl-$(PYTHON_MDURL_VERSION).tar.gz
+PYTHON_MDURL_SITE = https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90
+PYTHON_MDURL_SETUP_TYPE = flit
+PYTHON_MDURL_LICENSE = MIT
+PYTHON_MDURL_LICENSE_FILES = LICENSE
+
+$(eval $(python-package))
-- 
2.50.1

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

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

* [Buildroot] [PATCH v2 3/7] package/python-markdown-it-py: new package
  2025-08-11 16:18 [Buildroot] [PATCH v2 0/7] Add package/python-memray and dependencies Fiona Klute via buildroot
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 1/7] package/elfutils: new option to enable building libdebuginfod for target Fiona Klute via buildroot
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 2/7] package/python-mdurl: new package Fiona Klute via buildroot
@ 2025-08-11 16:18 ` Fiona Klute via buildroot
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 4/7] package/python-platformdirs: " Fiona Klute via buildroot
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Fiona Klute via buildroot @ 2025-08-11 16:18 UTC (permalink / raw)
  To: buildroot; +Cc: James Hilliard, Fiona Klute, Thomas Petazzoni

From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>

Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
---
 DEVELOPERS                                         |  1 +
 package/Config.in                                  |  1 +
 package/python-markdown-it-py/Config.in            |  7 +++++++
 .../python-markdown-it-py.hash                     |  6 ++++++
 .../python-markdown-it-py/python-markdown-it-py.mk | 14 ++++++++++++++
 5 files changed, 29 insertions(+)
 create mode 100644 package/python-markdown-it-py/Config.in
 create mode 100644 package/python-markdown-it-py/python-markdown-it-py.hash
 create mode 100644 package/python-markdown-it-py/python-markdown-it-py.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 8073742940..b4fa35a84c 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1120,6 +1120,7 @@ N:	Fiona Klute <fiona.klute@gmx.de>
 F:	package/*/S*
 F:	package/panel-mipi-dbi-firmware/
 F:	package/python-aiomqtt/
+F:	package/python-markdown-it-py/
 F:	package/python-mdurl/
 F:	package/python-pyasynchat/
 F:	package/python-pyasyncore/
diff --git a/package/Config.in b/package/Config.in
index e9ce49e2df..04041b11f2 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1228,6 +1228,7 @@ menu "External python modules"
 	source "package/python-magic-wormhole-transit-relay/Config.in"
 	source "package/python-mako/Config.in"
 	source "package/python-markdown/Config.in"
+	source "package/python-markdown-it-py/Config.in"
 	source "package/python-markdown2/Config.in"
 	source "package/python-markupsafe/Config.in"
 	source "package/python-marshmallow/Config.in"
diff --git a/package/python-markdown-it-py/Config.in b/package/python-markdown-it-py/Config.in
new file mode 100644
index 0000000000..b05a875bc9
--- /dev/null
+++ b/package/python-markdown-it-py/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_PYTHON_MARKDOWN_IT_PY
+	bool "python-markdown-it-py"
+	select BR2_PACKAGE_PYTHON_MDURL # runtime
+	help
+	  Python port of markdown-it. Markdown parsing, done right!
+
+	  https://github.com/executablebooks/markdown-it-py
diff --git a/package/python-markdown-it-py/python-markdown-it-py.hash b/package/python-markdown-it-py/python-markdown-it-py.hash
new file mode 100644
index 0000000000..bc28feea7d
--- /dev/null
+++ b/package/python-markdown-it-py/python-markdown-it-py.hash
@@ -0,0 +1,6 @@
+# md5, sha256 from https://pypi.org/pypi/markdown-it-py/json
+md5  a00d59ed2704f6590fdde0e9bad04c7c  markdown-it-py-3.0.0.tar.gz
+sha256  e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb  markdown-it-py-3.0.0.tar.gz
+# Locally computed sha256 checksums
+sha256  4a2260d6e2cd0f5a151a1e86dbfe7d3ed552b1e2beabf9941c1ba5c49cbce484  LICENSE
+sha256  792c48c5a849a15fdf9e37e8bcf9e6d1dd13b32b46c642a748a0a46a9919d473  LICENSE.markdown-it
diff --git a/package/python-markdown-it-py/python-markdown-it-py.mk b/package/python-markdown-it-py/python-markdown-it-py.mk
new file mode 100644
index 0000000000..aac0845185
--- /dev/null
+++ b/package/python-markdown-it-py/python-markdown-it-py.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# python-markdown-it-py
+#
+################################################################################
+
+PYTHON_MARKDOWN_IT_PY_VERSION = 3.0.0
+PYTHON_MARKDOWN_IT_PY_SOURCE = markdown-it-py-$(PYTHON_MARKDOWN_IT_PY_VERSION).tar.gz
+PYTHON_MARKDOWN_IT_PY_SITE = https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0
+PYTHON_MARKDOWN_IT_PY_SETUP_TYPE = flit
+PYTHON_MARKDOWN_IT_PY_LICENSE = MIT
+PYTHON_MARKDOWN_IT_PY_LICENSE_FILES = LICENSE LICENSE.markdown-it
+
+$(eval $(python-package))
-- 
2.50.1

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

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

* [Buildroot] [PATCH v2 4/7] package/python-platformdirs: new package
  2025-08-11 16:18 [Buildroot] [PATCH v2 0/7] Add package/python-memray and dependencies Fiona Klute via buildroot
                   ` (2 preceding siblings ...)
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 3/7] package/python-markdown-it-py: " Fiona Klute via buildroot
@ 2025-08-11 16:18 ` Fiona Klute via buildroot
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 5/7] package/python-rich: " Fiona Klute via buildroot
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Fiona Klute via buildroot @ 2025-08-11 16:18 UTC (permalink / raw)
  To: buildroot; +Cc: James Hilliard, Fiona Klute, Thomas Petazzoni

From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>

Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
---
Changes v1 -> v2:
* add missing dependency on host-python-hatch-vcs

 DEVELOPERS                                        |  1 +
 package/Config.in                                 |  1 +
 package/python-platformdirs/Config.in             |  7 +++++++
 .../python-platformdirs/python-platformdirs.hash  |  5 +++++
 .../python-platformdirs/python-platformdirs.mk    | 15 +++++++++++++++
 5 files changed, 29 insertions(+)
 create mode 100644 package/python-platformdirs/Config.in
 create mode 100644 package/python-platformdirs/python-platformdirs.hash
 create mode 100644 package/python-platformdirs/python-platformdirs.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index b4fa35a84c..91cae6cf2e 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1122,6 +1122,7 @@ F:	package/panel-mipi-dbi-firmware/
 F:	package/python-aiomqtt/
 F:	package/python-markdown-it-py/
 F:	package/python-mdurl/
+F:	package/python-platformdirs/
 F:	package/python-pyasynchat/
 F:	package/python-pyasyncore/
 F:	support/testing/tests/package/sample_python_networkmanager_goi.py
diff --git a/package/Config.in b/package/Config.in
index 04041b11f2..3d343c3c91 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1285,6 +1285,7 @@ menu "External python modules"
 	source "package/python-pigpio/Config.in"
 	source "package/python-pillow/Config.in"
 	source "package/python-pip/Config.in"
+	source "package/python-platformdirs/Config.in"
 	source "package/python-pluggy/Config.in"
 	source "package/python-ply/Config.in"
 	source "package/python-portend/Config.in"
diff --git a/package/python-platformdirs/Config.in b/package/python-platformdirs/Config.in
new file mode 100644
index 0000000000..b0cde72585
--- /dev/null
+++ b/package/python-platformdirs/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_PYTHON_PLATFORMDIRS
+	bool "python-platformdirs"
+	help
+	  A small Python package for determining appropriate
+	  platform-specific dirs, e.g. a "user data dir".
+
+	  https://github.com/tox-dev/platformdirs
diff --git a/package/python-platformdirs/python-platformdirs.hash b/package/python-platformdirs/python-platformdirs.hash
new file mode 100644
index 0000000000..b35d10dba1
--- /dev/null
+++ b/package/python-platformdirs/python-platformdirs.hash
@@ -0,0 +1,5 @@
+# md5, sha256 from https://pypi.org/pypi/platformdirs/json
+md5  90aef8202386996ce2e4b560a9f1d3e6  platformdirs-4.3.8.tar.gz
+sha256  3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc  platformdirs-4.3.8.tar.gz
+# Locally computed sha256 checksums
+sha256  29e0fd62e929850e86eb28c3fdccf0cefdf4fa94879011cffb3d0d4bed6d4db6  LICENSE
diff --git a/package/python-platformdirs/python-platformdirs.mk b/package/python-platformdirs/python-platformdirs.mk
new file mode 100644
index 0000000000..b24d6d78d8
--- /dev/null
+++ b/package/python-platformdirs/python-platformdirs.mk
@@ -0,0 +1,15 @@
+################################################################################
+#
+# python-platformdirs
+#
+################################################################################
+
+PYTHON_PLATFORMDIRS_VERSION = 4.3.8
+PYTHON_PLATFORMDIRS_SOURCE = platformdirs-$(PYTHON_PLATFORMDIRS_VERSION).tar.gz
+PYTHON_PLATFORMDIRS_SITE = https://files.pythonhosted.org/packages/fe/8b/3c73abc9c759ecd3f1f7ceff6685840859e8070c4d947c93fae71f6a0bf2
+PYTHON_PLATFORMDIRS_SETUP_TYPE = hatch
+PYTHON_PLATFORMDIRS_LICENSE = MIT
+PYTHON_PLATFORMDIRS_LICENSE_FILES = LICENSE
+PYTHON_PLATFORMDIRS_DEPENDENCIES = host-python-hatch-vcs
+
+$(eval $(python-package))
-- 
2.50.1

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

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

* [Buildroot] [PATCH v2 5/7] package/python-rich: new package
  2025-08-11 16:18 [Buildroot] [PATCH v2 0/7] Add package/python-memray and dependencies Fiona Klute via buildroot
                   ` (3 preceding siblings ...)
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 4/7] package/python-platformdirs: " Fiona Klute via buildroot
@ 2025-08-11 16:18 ` Fiona Klute via buildroot
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 6/7] package/python-textual: " Fiona Klute via buildroot
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 7/7] package/python-memray: " Fiona Klute via buildroot
  6 siblings, 0 replies; 9+ messages in thread
From: Fiona Klute via buildroot @ 2025-08-11 16:18 UTC (permalink / raw)
  To: buildroot; +Cc: James Hilliard, Fiona Klute, Thomas Petazzoni

From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>

Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
---
 DEVELOPERS                           |  1 +
 package/Config.in                    |  1 +
 package/python-rich/Config.in        |  9 +++++++++
 package/python-rich/python-rich.hash |  5 +++++
 package/python-rich/python-rich.mk   | 14 ++++++++++++++
 5 files changed, 30 insertions(+)
 create mode 100644 package/python-rich/Config.in
 create mode 100644 package/python-rich/python-rich.hash
 create mode 100644 package/python-rich/python-rich.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 91cae6cf2e..757ee138ba 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1125,6 +1125,7 @@ F:	package/python-mdurl/
 F:	package/python-platformdirs/
 F:	package/python-pyasynchat/
 F:	package/python-pyasyncore/
+F:	package/python-rich/
 F:	support/testing/tests/package/sample_python_networkmanager_goi.py
 F:	support/testing/tests/package/test_nftables.py
 F:	support/testing/tests/package/test_python_networkmanager_goi.py
diff --git a/package/Config.in b/package/Config.in
index 3d343c3c91..14aab8ad3e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1384,6 +1384,7 @@ menu "External python modules"
 	source "package/python-requests-toolbelt/Config.in"
 	source "package/python-rfc3987/Config.in"
 	source "package/python-rgbmatrix/Config.in"
+	source "package/python-rich/Config.in"
 	source "package/python-rpds-py/Config.in"
 	source "package/python-rpi-gpio/Config.in"
 	source "package/python-rpi-ws281x/Config.in"
diff --git a/package/python-rich/Config.in b/package/python-rich/Config.in
new file mode 100644
index 0000000000..d7f3cdf54a
--- /dev/null
+++ b/package/python-rich/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_PYTHON_RICH
+	bool "python-rich"
+	select BR2_PACKAGE_PYTHON_MARKDOWN_IT_PY # runtime
+	select BR2_PACKAGE_PYTHON_PYGMENTS # runtime
+	help
+	  Render rich text, tables, progress bars, syntax
+	  highlighting, markdown and more to the terminal.
+
+	  https://github.com/Textualize/rich
diff --git a/package/python-rich/python-rich.hash b/package/python-rich/python-rich.hash
new file mode 100644
index 0000000000..87c58f42e3
--- /dev/null
+++ b/package/python-rich/python-rich.hash
@@ -0,0 +1,5 @@
+# md5, sha256 from https://pypi.org/pypi/rich/json
+md5  38baf395e7860be314c6c29fcac8637d  rich-14.1.0.tar.gz
+sha256  e497a48b844b0320d45007cdebfeaeed8db2a4f4bcf49f15e455cfc4af11eaa8  rich-14.1.0.tar.gz
+# Locally computed sha256 checksums
+sha256  deed7c17a4318158190a3ea239cc879a5a50271cebb98ae7025f48fbe58dca15  LICENSE
diff --git a/package/python-rich/python-rich.mk b/package/python-rich/python-rich.mk
new file mode 100644
index 0000000000..e6564347a5
--- /dev/null
+++ b/package/python-rich/python-rich.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# python-rich
+#
+################################################################################
+
+PYTHON_RICH_VERSION = 14.1.0
+PYTHON_RICH_SOURCE = rich-$(PYTHON_RICH_VERSION).tar.gz
+PYTHON_RICH_SITE = https://files.pythonhosted.org/packages/fe/75/af448d8e52bf1d8fa6a9d089ca6c07ff4453d86c65c145d0a300bb073b9b
+PYTHON_RICH_SETUP_TYPE = poetry
+PYTHON_RICH_LICENSE = MIT
+PYTHON_RICH_LICENSE_FILES = LICENSE
+
+$(eval $(python-package))
-- 
2.50.1

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

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

* [Buildroot] [PATCH v2 6/7] package/python-textual: new package
  2025-08-11 16:18 [Buildroot] [PATCH v2 0/7] Add package/python-memray and dependencies Fiona Klute via buildroot
                   ` (4 preceding siblings ...)
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 5/7] package/python-rich: " Fiona Klute via buildroot
@ 2025-08-11 16:18 ` Fiona Klute via buildroot
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 7/7] package/python-memray: " Fiona Klute via buildroot
  6 siblings, 0 replies; 9+ messages in thread
From: Fiona Klute via buildroot @ 2025-08-11 16:18 UTC (permalink / raw)
  To: buildroot; +Cc: James Hilliard, Fiona Klute, Thomas Petazzoni

From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>

Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
---
 DEVELOPERS                                 |  1 +
 package/Config.in                          |  1 +
 package/python-textual/Config.in           | 11 +++++++++++
 package/python-textual/python-textual.hash |  5 +++++
 package/python-textual/python-textual.mk   | 14 ++++++++++++++
 5 files changed, 32 insertions(+)
 create mode 100644 package/python-textual/Config.in
 create mode 100644 package/python-textual/python-textual.hash
 create mode 100644 package/python-textual/python-textual.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 757ee138ba..c04a7df05b 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1126,6 +1126,7 @@ F:	package/python-platformdirs/
 F:	package/python-pyasynchat/
 F:	package/python-pyasyncore/
 F:	package/python-rich/
+F:	package/python-textual/
 F:	support/testing/tests/package/sample_python_networkmanager_goi.py
 F:	support/testing/tests/package/test_nftables.py
 F:	support/testing/tests/package/test_python_networkmanager_goi.py
diff --git a/package/Config.in b/package/Config.in
index 14aab8ad3e..dfaa2486a5 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1451,6 +1451,7 @@ menu "External python modules"
 	source "package/python-termcolor/Config.in"
 	source "package/python-terminaltables/Config.in"
 	source "package/python-texttable/Config.in"
+	source "package/python-textual/Config.in"
 	source "package/python-tftpy/Config.in"
 	source "package/python-thrift/Config.in"
 	source "package/python-tinycss2/Config.in"
diff --git a/package/python-textual/Config.in b/package/python-textual/Config.in
new file mode 100644
index 0000000000..aecf050ec9
--- /dev/null
+++ b/package/python-textual/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_PYTHON_TEXTUAL
+	bool "python-textual"
+	select BR2_PACKAGE_PYTHON_MARKDOWN_IT_PY # runtime
+	select BR2_PACKAGE_PYTHON_PLATFORMDIRS # runtime
+	select BR2_PACKAGE_PYTHON_PYGMENTS # runtime
+	select BR2_PACKAGE_PYTHON_RICH # runtime
+	select BR2_PACKAGE_PYTHON_TYPING_EXTENSIONS # runtime
+	help
+	  Modern Text User Interface framework.
+
+	  https://github.com/Textualize/textual
diff --git a/package/python-textual/python-textual.hash b/package/python-textual/python-textual.hash
new file mode 100644
index 0000000000..692e0d757b
--- /dev/null
+++ b/package/python-textual/python-textual.hash
@@ -0,0 +1,5 @@
+# md5, sha256 from https://pypi.org/pypi/textual/json
+md5  cb43b8d6d3903ca171330a626cfa05e5  textual-5.3.0.tar.gz
+sha256  1b6128b339adef2e298cc23ab4777180443240ece5c232f29b22960efd658d4d  textual-5.3.0.tar.gz
+# Locally computed sha256 checksums
+sha256  94f290a762376dfdb7768e42070618b0abfd2a2799eab1b1c097816c3a39eb57  LICENSE
diff --git a/package/python-textual/python-textual.mk b/package/python-textual/python-textual.mk
new file mode 100644
index 0000000000..49cccc299d
--- /dev/null
+++ b/package/python-textual/python-textual.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# python-textual
+#
+################################################################################
+
+PYTHON_TEXTUAL_VERSION = 5.3.0
+PYTHON_TEXTUAL_SOURCE = textual-$(PYTHON_TEXTUAL_VERSION).tar.gz
+PYTHON_TEXTUAL_SITE = https://files.pythonhosted.org/packages/ba/ce/f0f938d33d9bebbf8629e0020be00c560ddfa90a23ebe727c2e5aa3f30cf
+PYTHON_TEXTUAL_SETUP_TYPE = poetry
+PYTHON_TEXTUAL_LICENSE = MIT
+PYTHON_TEXTUAL_LICENSE_FILES = LICENSE
+
+$(eval $(python-package))
-- 
2.50.1

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

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

* [Buildroot] [PATCH v2 7/7] package/python-memray: new package
  2025-08-11 16:18 [Buildroot] [PATCH v2 0/7] Add package/python-memray and dependencies Fiona Klute via buildroot
                   ` (5 preceding siblings ...)
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 6/7] package/python-textual: " Fiona Klute via buildroot
@ 2025-08-11 16:18 ` Fiona Klute via buildroot
  6 siblings, 0 replies; 9+ messages in thread
From: Fiona Klute via buildroot @ 2025-08-11 16:18 UTC (permalink / raw)
  To: buildroot; +Cc: James Hilliard, Fiona Klute, Thomas Petazzoni

From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>

Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
---
Changes v1 -> v2:
* add a runtime test
* select BR2_PACKAGE_ELFUTILS_LIBDEBUGINFOD instead of indirect dependencies
* select BR2_PACKAGE_PYTHON3_ZLIB (missing runtime dependency)

 DEVELOPERS                                    |  3 ++
 package/Config.in                             |  1 +
 package/python-memray/Config.in               | 19 ++++++++++
 package/python-memray/python-memray.hash      |  6 +++
 package/python-memray/python-memray.mk        | 22 +++++++++++
 .../tests/package/sample_python_memray.py     | 10 +++++
 .../tests/package/test_python_memray.py       | 38 +++++++++++++++++++
 7 files changed, 99 insertions(+)
 create mode 100644 package/python-memray/Config.in
 create mode 100644 package/python-memray/python-memray.hash
 create mode 100644 package/python-memray/python-memray.mk
 create mode 100644 support/testing/tests/package/sample_python_memray.py
 create mode 100644 support/testing/tests/package/test_python_memray.py

diff --git a/DEVELOPERS b/DEVELOPERS
index c04a7df05b..3a3610e59f 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1122,13 +1122,16 @@ F:	package/panel-mipi-dbi-firmware/
 F:	package/python-aiomqtt/
 F:	package/python-markdown-it-py/
 F:	package/python-mdurl/
+F:	package/python-memray/
 F:	package/python-platformdirs/
 F:	package/python-pyasynchat/
 F:	package/python-pyasyncore/
 F:	package/python-rich/
 F:	package/python-textual/
+F:	support/testing/tests/package/sample_python_memray.py
 F:	support/testing/tests/package/sample_python_networkmanager_goi.py
 F:	support/testing/tests/package/test_nftables.py
+F:	support/testing/tests/package/test_python_memray.py
 F:	support/testing/tests/package/test_python_networkmanager_goi.py
 
 N:	Flávio Tapajós <flavio.tapajos@newtesc.com.br>
diff --git a/package/Config.in b/package/Config.in
index dfaa2486a5..e99205db4a 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1238,6 +1238,7 @@ menu "External python modules"
 	source "package/python-mbstrdecoder/Config.in"
 	source "package/python-mdurl/Config.in"
 	source "package/python-memory-profiler/Config.in"
+	source "package/python-memray/Config.in"
 	source "package/python-midiutil/Config.in"
 	source "package/python-mimeparse/Config.in"
 	source "package/python-minimalmodbus/Config.in"
diff --git a/package/python-memray/Config.in b/package/python-memray/Config.in
new file mode 100644
index 0000000000..8f8af751bf
--- /dev/null
+++ b/package/python-memray/Config.in
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_PYTHON_MEMRAY
+	bool "python-memray"
+	depends on BR2_USE_WCHAR # required for elfutils
+	depends on !BR2_STATIC_LIBS # required for elfutils
+	depends on BR2_TOOLCHAIN_HAS_THREADS # required for elfutils
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # required for elfutils with libdebuginfod
+	depends on BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS
+	select BR2_PACKAGE_ELFUTILS
+	select BR2_PACKAGE_ELFUTILS_LIBDEBUGINFOD
+	select BR2_PACKAGE_LIBUNWIND
+	select BR2_PACKAGE_LZ4
+	select BR2_PACKAGE_PYTHON3_ZLIB # runtime
+	select BR2_PACKAGE_PYTHON_JINJA2 # runtime
+	select BR2_PACKAGE_PYTHON_RICH # runtime
+	select BR2_PACKAGE_PYTHON_TEXTUAL # runtime
+	help
+	  A memory profiler for Python applications.
+
+	  https://github.com/bloomberg/memray
diff --git a/package/python-memray/python-memray.hash b/package/python-memray/python-memray.hash
new file mode 100644
index 0000000000..bde66a24d9
--- /dev/null
+++ b/package/python-memray/python-memray.hash
@@ -0,0 +1,6 @@
+# md5, sha256 from https://pypi.org/pypi/memray/json
+md5  b48d378a5e5ca043a210781a2023dbe6  memray-1.17.2.tar.gz
+sha256  eb75c075874a6eccddf361513d9d4a9223dd940580c6370a6ba5339bae5d0ba2  memray-1.17.2.tar.gz
+# Locally computed sha256 checksums
+sha256  c973dd08e49022a4017ffd457116b046ebe07fc71a644fd760d64183869ca97f  LICENSE
+sha256  ef8a9b3247488f8901ca60de9b17b745d7bd67e5ec1e622f80d62364572200d8  src/vendor/libbacktrace/LICENSE
diff --git a/package/python-memray/python-memray.mk b/package/python-memray/python-memray.mk
new file mode 100644
index 0000000000..ee2605a9b0
--- /dev/null
+++ b/package/python-memray/python-memray.mk
@@ -0,0 +1,22 @@
+################################################################################
+#
+# python-memray
+#
+################################################################################
+
+PYTHON_MEMRAY_VERSION = 1.17.2
+PYTHON_MEMRAY_SOURCE = memray-$(PYTHON_MEMRAY_VERSION).tar.gz
+PYTHON_MEMRAY_SITE = https://files.pythonhosted.org/packages/df/40/66e6ae86c0a22b8b998779fa8d6c0ab9ee63f0943198adcf714934286cbf
+PYTHON_MEMRAY_SETUP_TYPE = setuptools
+PYTHON_MEMRAY_LICENSE = Apache-2.0
+PYTHON_MEMRAY_LICENSE_FILES = LICENSE src/vendor/libbacktrace/LICENSE
+PYTHON_MEMRAY_DEPENDENCIES = host-python-cython host-python-pkgconfig lz4 elfutils libunwind
+
+# Define cross-compile target for bundled & patched libbacktrace.
+PYTHON_MEMRAY_ENV = MEMRAY_LIBBACKTRACE_TARGET=$(GNU_TARGET_NAME)
+
+# Sources must be compiled with -fPIC, otherwise linking with -flto
+# (which memray sets by default) fails.
+PYTHON_MEMRAY_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -fPIC"
+
+$(eval $(python-package))
diff --git a/support/testing/tests/package/sample_python_memray.py b/support/testing/tests/package/sample_python_memray.py
new file mode 100644
index 0000000000..a1c6db7b5d
--- /dev/null
+++ b/support/testing/tests/package/sample_python_memray.py
@@ -0,0 +1,10 @@
+# The test needs some code to profile, it does not have to be much.
+
+def run(a):
+    print(a[0])
+
+
+if __name__ == '__main__':
+    # make sure there's at least a small allocation
+    a = ['Hello World!']
+    run(a)
diff --git a/support/testing/tests/package/test_python_memray.py b/support/testing/tests/package/test_python_memray.py
new file mode 100644
index 0000000000..aaf50bcaa4
--- /dev/null
+++ b/support/testing/tests/package/test_python_memray.py
@@ -0,0 +1,38 @@
+from tests.package.test_python import TestPythonPackageBase
+import os
+
+
+class TestPythonMemray(TestPythonPackageBase):
+    __test__ = True
+    config = TestPythonPackageBase.config + \
+        """
+        BR2_PACKAGE_PYTHON3=y
+        BR2_PACKAGE_PYTHON_MEMRAY=y
+        """
+    sample_scripts = ["tests/package/sample_python_memray.py"]
+
+    def test_run(self):
+        self.login()
+        self.check_sample_scripts_exist()
+        test_trace = "/tmp/trace.bin"
+        test_flame = "/tmp/trace.html"
+
+        # profile the sample script
+        cmd = "%s -m memray run -o %s %s" % (self.interpreter, test_trace, os.path.basename(self.sample_scripts[0]))
+        output, exit_code = self.emulator.run(cmd, timeout=15)
+        self.assertEqual(exit_code, 0)
+        self.assertIn("Hello World!", output)
+
+        # generate statistics
+        cmd = "%s -m memray stats %s" % (self.interpreter, test_trace)
+        output, exit_code = self.emulator.run(cmd, timeout=15)
+        self.assertEqual(exit_code, 0)
+        self.assertTrue(any(filter(lambda line: "alloc" in line, output)))
+
+        # generate flamegraph
+        cmd = "%s -m memray flamegraph -o %s %s" % (self.interpreter, test_flame, test_trace)
+        output, exit_code = self.emulator.run(cmd, timeout=15)
+        self.assertEqual(exit_code, 0)
+        # rough plausibility check if the output file is HTML
+        cmd = "grep -i '</html>' %s" % (test_flame,)
+        self.assertEqual(exit_code, 0)
-- 
2.50.1

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

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

* Re: [Buildroot] [PATCH v2 1/7] package/elfutils: new option to enable building libdebuginfod for target
  2025-08-11 16:18 ` [Buildroot] [PATCH v2 1/7] package/elfutils: new option to enable building libdebuginfod for target Fiona Klute via buildroot
@ 2026-01-02 17:17   ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 9+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-01-02 17:17 UTC (permalink / raw)
  To: Fiona Klute via buildroot; +Cc: Fiona Klute, James Hilliard

Hello Fiona,

On Mon, 11 Aug 2025 18:18:03 +0200
Fiona Klute via buildroot <buildroot@buildroot.org> wrote:

> From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>
> 
> This does not make debug info available, but allows building programs
> that link against libdebuginfod.
> 
> Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
> ---
> Changes v1 -> v2:
> * add option to enable building libdebuginfod, instead of building it
>   if requirements are met

Whole series applied to master, with only very minor tweaks (dropping
"default n", simplifying comments on Config.in depends on, etc.)

Thanks a lot!

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

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

end of thread, other threads:[~2026-01-02 17:17 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-11 16:18 [Buildroot] [PATCH v2 0/7] Add package/python-memray and dependencies Fiona Klute via buildroot
2025-08-11 16:18 ` [Buildroot] [PATCH v2 1/7] package/elfutils: new option to enable building libdebuginfod for target Fiona Klute via buildroot
2026-01-02 17:17   ` Thomas Petazzoni via buildroot
2025-08-11 16:18 ` [Buildroot] [PATCH v2 2/7] package/python-mdurl: new package Fiona Klute via buildroot
2025-08-11 16:18 ` [Buildroot] [PATCH v2 3/7] package/python-markdown-it-py: " Fiona Klute via buildroot
2025-08-11 16:18 ` [Buildroot] [PATCH v2 4/7] package/python-platformdirs: " Fiona Klute via buildroot
2025-08-11 16:18 ` [Buildroot] [PATCH v2 5/7] package/python-rich: " Fiona Klute via buildroot
2025-08-11 16:18 ` [Buildroot] [PATCH v2 6/7] package/python-textual: " Fiona Klute via buildroot
2025-08-11 16:18 ` [Buildroot] [PATCH v2 7/7] package/python-memray: " Fiona Klute via buildroot

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