* [Buildroot] [PATCH v5] package/python-diskcache: new package
@ 2025-10-21 12:05 Marcus Hoffmann via buildroot
2026-02-02 16:44 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 2+ messages in thread
From: Marcus Hoffmann via buildroot @ 2025-10-21 12:05 UTC (permalink / raw)
To: buildroot; +Cc: James Hilliard, Thomas Petazzoni, Marcus Hoffmann
The package imports itself in setup.py to get the package-name and
version number. Dping this during the buildroot build would require
buisling host-python with sqlite support, which we are currently not set
up for. It also seems wasteful for just extracting the version number
and package name, so instead we replace the import by using a hardcoded
package-name and the version number stored in buildroot.
Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
---
Changes:
v2: remove accidentally commited .swp file
v3: fix python-diskcache.mk lint errors
v4: Rebase on current master
v5: split sed line, expand commit message on why we need to edit the
setup.py
---
DEVELOPERS | 3 +++
package/Config.in | 1 +
package/python-diskcache/Config.in | 8 +++++++
.../python-diskcache/python-diskcache.hash | 5 ++++
package/python-diskcache/python-diskcache.mk | 23 +++++++++++++++++++
.../tests/package/sample_python_diskcache.py | 9 ++++++++
.../tests/package/test_python_diskcache.py | 12 ++++++++++
7 files changed, 61 insertions(+)
create mode 100644 package/python-diskcache/Config.in
create mode 100644 package/python-diskcache/python-diskcache.hash
create mode 100644 package/python-diskcache/python-diskcache.mk
create mode 100644 support/testing/tests/package/sample_python_diskcache.py
create mode 100644 support/testing/tests/package/test_python_diskcache.py
diff --git a/DEVELOPERS b/DEVELOPERS
index 66199a5b72..15266b4583 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2272,6 +2272,7 @@ F: package/pico-sdk/
F: package/picotool/
F: package/python-apscheduler/
F: package/python-crc/
+F: package/python-diskcache/
F: package/python-django/
F: package/python-immutabledict/
F: package/python-jc/
@@ -2287,6 +2288,7 @@ F: package/python-waitress/
F: package/python-whitenoise/
F: support/testing/tests/package/test_python_apscheduler.py
F: support/testing/tests/package/test_python_crc.py
+F: support/testing/tests/package/test_python_diskcache.py
F: support/testing/tests/package/test_python_django.py
F: support/testing/tests/package/test_python_fastapi.py
F: support/testing/tests/package/test_python_pydantic.py
@@ -2298,6 +2300,7 @@ F: support/testing/tests/package/test_python_waitress.py
F: support/testing/tests/package/test_python_whitenoise.py
F: support/testing/tests/package/sample_python_apscheduler.py
F: support/testing/tests/package/sample_python_crc.py
+F: support/testing/tests/package/sample_python_diskcache.py
F: support/testing/tests/package/sample_python_django.py
F: support/testing/tests/package/sample_python_fastapi.py
F: support/testing/tests/package/sample_python_pydantic.py
diff --git a/package/Config.in b/package/Config.in
index 161d61728b..d8d5007186 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1089,6 +1089,7 @@ menu "External python modules"
source "package/python-dictdiffer/Config.in"
source "package/python-dicttoxml/Config.in"
source "package/python-dicttoxml2/Config.in"
+ source "package/python-diskcache/Config.in"
source "package/python-distro/Config.in"
source "package/python-django/Config.in"
source "package/python-django-enumfields/Config.in"
diff --git a/package/python-diskcache/Config.in b/package/python-diskcache/Config.in
new file mode 100644
index 0000000000..4bf6c57406
--- /dev/null
+++ b/package/python-diskcache/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_PYTHON_DISKCACHE
+ bool "python-diskcache"
+ select BR2_PACKAGE_PYTHON3_SQLITE # runtime
+ select BR2_PACKAGE_PYTHON3_ZLIB # runtime
+ help
+ Disk Cache -- Disk and file backed persistent cache.
+
+ http://www.grantjenks.com/docs/diskcache/
diff --git a/package/python-diskcache/python-diskcache.hash b/package/python-diskcache/python-diskcache.hash
new file mode 100644
index 0000000000..4befb40a4e
--- /dev/null
+++ b/package/python-diskcache/python-diskcache.hash
@@ -0,0 +1,5 @@
+# md5, sha256 from https://pypi.org/pypi/diskcache/json
+md5 d92b4afa944bb70ed38c84a622f7abb5 diskcache-5.6.3.tar.gz
+sha256 2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc diskcache-5.6.3.tar.gz
+# Locally computed sha256 checksums
+sha256 583546baa3fd93607d845126570677a401f508e228b5044fefbc3949af179672 LICENSE
diff --git a/package/python-diskcache/python-diskcache.mk b/package/python-diskcache/python-diskcache.mk
new file mode 100644
index 0000000000..930c70ba07
--- /dev/null
+++ b/package/python-diskcache/python-diskcache.mk
@@ -0,0 +1,23 @@
+################################################################################
+#
+# python-diskcache
+#
+################################################################################
+
+PYTHON_DISKCACHE_VERSION = 5.6.3
+PYTHON_DISKCACHE_SOURCE = diskcache-$(PYTHON_DISKCACHE_VERSION).tar.gz
+PYTHON_DISKCACHE_SITE = https://files.pythonhosted.org/packages/3f/21/1c1ffc1a039ddcc459db43cc108658f32c57d271d7289a2794e401d0fdb6
+PYTHON_DISKCACHE_SETUP_TYPE = setuptools
+PYTHON_DISKCACHE_LICENSE = Apache-2.0
+PYTHON_DISKCACHE_LICENSE_FILES = LICENSE
+
+define PYTHON_DISKCACHE_REMOVE_SELF_IMPORT
+ sed -i -e '/import diskcache/d' \
+ -e 's/diskcache.__title__/"diskcache"/' \
+ -e 's/diskcache.__version__/"$(PYTHON_DISKCACHE_VERSION)"/' \
+ $(@D)/setup.py
+endef
+
+PYTHON_DISKCACHE_POST_PATCH_HOOKS += PYTHON_DISKCACHE_REMOVE_SELF_IMPORT
+
+$(eval $(python-package))
diff --git a/support/testing/tests/package/sample_python_diskcache.py b/support/testing/tests/package/sample_python_diskcache.py
new file mode 100644
index 0000000000..8ba34daf6e
--- /dev/null
+++ b/support/testing/tests/package/sample_python_diskcache.py
@@ -0,0 +1,9 @@
+from diskcache import Cache
+
+cache = Cache()
+
+cache['test'] = 123
+assert cache['test'] == 123
+del cache['test']
+assert 'test' not in cache
+cache.close()
diff --git a/support/testing/tests/package/test_python_diskcache.py b/support/testing/tests/package/test_python_diskcache.py
new file mode 100644
index 0000000000..d8618c1681
--- /dev/null
+++ b/support/testing/tests/package/test_python_diskcache.py
@@ -0,0 +1,12 @@
+from tests.package.test_python import TestPythonPackageBase
+
+
+class TestPythonPy3DiskCache(TestPythonPackageBase):
+ __test__ = True
+ config = TestPythonPackageBase.config + \
+ """
+ BR2_PACKAGE_PYTHON3=y
+ BR2_PACKAGE_PYTHON_DISKCACHE=y
+ """
+ sample_scripts = ["tests/package/sample_python_diskcache.py"]
+ timeout = 10
--
2.51.1.dirty
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [Buildroot] [PATCH v5] package/python-diskcache: new package
2025-10-21 12:05 [Buildroot] [PATCH v5] package/python-diskcache: new package Marcus Hoffmann via buildroot
@ 2026-02-02 16:44 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-02-02 16:44 UTC (permalink / raw)
To: Marcus Hoffmann; +Cc: buildroot, James Hilliard, Marcus Hoffmann
On Tue, Oct 21, 2025 at 02:05:47PM +0200, Marcus Hoffmann via buildroot wrote:
> The package imports itself in setup.py to get the package-name and
> version number. Dping this during the buildroot build would require
> buisling host-python with sqlite support, which we are currently not set
> up for. It also seems wasteful for just extracting the version number
> and package name, so instead we replace the import by using a hardcoded
> package-name and the version number stored in buildroot.
>
> Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
Thanks a lot, applied! I only adjusted indentation in the .mk file and
added a comment above the hook to explain what's going on.
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] 2+ messages in thread
end of thread, other threads:[~2026-02-02 16:44 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-21 12:05 [Buildroot] [PATCH v5] package/python-diskcache: new package Marcus Hoffmann via buildroot
2026-02-02 16:44 ` Thomas Petazzoni via buildroot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.