* [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