* [Buildroot] [PATCH v2 1/1] package/python-sysv-ipc: new package
@ 2026-04-16 8:06 Vincent Cruz
2026-05-30 17:16 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 2+ messages in thread
From: Vincent Cruz @ 2026-04-16 8:06 UTC (permalink / raw)
To: buildroot; +Cc: Vincent Jardin, James Hilliard, Thomas Petazzoni, Vincent Cruz
From: Vincent Jardin <vjardin@free.fr>
python-sysv-ipc provides Python bindings for System V IPC primitives
(semaphores, shared memory and message queues).
https://github.com/osvenskan/sysv_ipc
Signed-off-by: Vincent Jardin <vjardin@free.fr>
Signed-off-by: Vincent Cruz <mooz@blockos.org>
---
Changes v1 -> v2:
- Bump version to 1.2.0
- Add test
Tested with Buildroot gitlab CI:
https://gitlab.com/v_cz/buildroot/-/pipelines/2455626637
---
DEVELOPERS | 2 +
package/Config.in | 1 +
package/python-sysv-ipc/Config.in | 7 ++++
package/python-sysv-ipc/python-sysv-ipc.hash | 4 ++
package/python-sysv-ipc/python-sysv-ipc.mk | 16 ++++++++
.../tests/package/sample_python_sysv_ipc.py | 26 +++++++++++++
.../tests/package/test_python_sysv_ipc.py | 39 +++++++++++++++++++
.../rootfs-overlay/root/ping.py | 17 ++++++++
.../rootfs-overlay/root/pong.py | 17 ++++++++
9 files changed, 129 insertions(+)
create mode 100644 package/python-sysv-ipc/Config.in
create mode 100644 package/python-sysv-ipc/python-sysv-ipc.hash
create mode 100644 package/python-sysv-ipc/python-sysv-ipc.mk
create mode 100644 support/testing/tests/package/sample_python_sysv_ipc.py
create mode 100644 support/testing/tests/package/test_python_sysv_ipc.py
create mode 100644 support/testing/tests/package/test_python_sysv_ipc/rootfs-overlay/root/ping.py
create mode 100644 support/testing/tests/package/test_python_sysv_ipc/rootfs-overlay/root/pong.py
diff --git a/DEVELOPERS b/DEVELOPERS
index b20cf7d93c..fb4731168b 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -3372,6 +3372,8 @@ F: package/dpdk/
F: package/libecoli/
F: package/libnss-ato/
F: package/libyang-cpp/
+F: package/python-sysv-ipc/
+F: package/rpmsg-echo-test/
F: package/sysrepo-cpp/
N: Vincent Prince <vincent.prince.fr@gmail.com>
diff --git a/package/Config.in b/package/Config.in
index d0f148699b..30c8a77bde 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1439,6 +1439,7 @@ menu "External python modules"
source "package/python-starlette/Config.in"
source "package/python-sympy/Config.in"
source "package/python-systemd/Config.in"
+ source "package/python-sysv-ipc/Config.in"
source "package/python-tabledata/Config.in"
source "package/python-tcolorpy/Config.in"
source "package/python-telnetlib3/Config.in"
diff --git a/package/python-sysv-ipc/Config.in b/package/python-sysv-ipc/Config.in
new file mode 100644
index 0000000000..487935b680
--- /dev/null
+++ b/package/python-sysv-ipc/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_PYTHON_SYSV_IPC
+ bool "python-sysv-ipc"
+ help
+ System V IPC primitives (semaphores, shared memory and
+ message queues) for Python.
+
+ https://github.com/osvenskan/sysv_ipc
diff --git a/package/python-sysv-ipc/python-sysv-ipc.hash b/package/python-sysv-ipc/python-sysv-ipc.hash
new file mode 100644
index 0000000000..ecdd154035
--- /dev/null
+++ b/package/python-sysv-ipc/python-sysv-ipc.hash
@@ -0,0 +1,4 @@
+# From https://pypi.org/pypi/sysv-ipc/1.2.0/json
+sha256 ef96ab33bb62e4d14142f0be0524dcc0c3c70c96442df2fc773c67b7c7514199 sysv_ipc-1.2.0.tar.gz
+# Locally computed
+sha256 ca1c736814f4b73052ba877eaa9e09b40c7e22f1b5d025236246227cc1d87fdc LICENSE
diff --git a/package/python-sysv-ipc/python-sysv-ipc.mk b/package/python-sysv-ipc/python-sysv-ipc.mk
new file mode 100644
index 0000000000..82efc21168
--- /dev/null
+++ b/package/python-sysv-ipc/python-sysv-ipc.mk
@@ -0,0 +1,16 @@
+################################################################################
+#
+# python-sysv-ipc
+#
+################################################################################
+
+PYTHON_SYSV_IPC_VERSION = 1.2.0
+PYTHON_SYSV_IPC_SOURCE = sysv_ipc-$(PYTHON_SYSV_IPC_VERSION).tar.gz
+PYTHON_SYSV_IPC_SITE = https://files.pythonhosted.org/packages/f2/5e/59208c6dd05ebc6f46ce2023c4fc01ffe814a1967d21b35d312c7e6ffeae
+
+PYTHON_SYSV_IPC_LICENSE = BSD-3-Clause
+PYTHON_SYSV_IPC_LICENSE_FILES = PKG-INFO LICENSE
+
+PYTHON_SYSV_IPC_SETUP_TYPE = setuptools
+
+$(eval $(python-package))
diff --git a/support/testing/tests/package/sample_python_sysv_ipc.py b/support/testing/tests/package/sample_python_sysv_ipc.py
new file mode 100644
index 0000000000..1b5941329c
--- /dev/null
+++ b/support/testing/tests/package/sample_python_sysv_ipc.py
@@ -0,0 +1,26 @@
+import subprocess
+import sys
+import sysv_ipc
+
+key = [303, 808]
+iterations = 6
+
+queue = [
+ sysv_ipc.MessageQueue(key[0], sysv_ipc.IPC_CREX),
+ sysv_ipc.MessageQueue(key[1], sysv_ipc.IPC_CREX)
+]
+
+procs = [None] * 2
+
+procs[0] = subprocess.Popen([sys.executable, "/root/ping.py", str(key[0]), str(key[1]), str(iterations)])
+procs[1] = subprocess.Popen([sys.executable, "/root/pong.py", str(key[1]), str(key[0]), str(iterations)])
+
+for p in procs:
+ try:
+ errs = p.wait(timeout=15)
+ except subprocess.TimeoutExpired:
+ p.kill()
+ errs = p.wait()
+
+for q in queue:
+ q.remove()
diff --git a/support/testing/tests/package/test_python_sysv_ipc.py b/support/testing/tests/package/test_python_sysv_ipc.py
new file mode 100644
index 0000000000..e6a697dfcf
--- /dev/null
+++ b/support/testing/tests/package/test_python_sysv_ipc.py
@@ -0,0 +1,39 @@
+import os
+import infra
+from tests.package.test_python import TestPythonPackageBase
+
+
+class TestPythonSysVIPC(TestPythonPackageBase):
+ rootfs_overlay = infra.filepath("tests/package/test_python_sysv_ipc/rootfs-overlay")
+
+ __test__ = True
+ config = TestPythonPackageBase.config + \
+ f"""
+ BR2_PACKAGE_PYTHON3=y
+ BR2_PACKAGE_PYTHON_SYSV_IPC=y
+ BR2_ROOTFS_OVERLAY="{rootfs_overlay}"
+ """
+ sample_scripts = ["tests/package/sample_python_sysv_ipc.py"]
+
+ def test_run(self):
+ self.login()
+ self.check_sample_scripts_exist()
+
+ cmd = self.interpreter + " " + os.path.basename(self.sample_scripts[0])
+ output, ret = self.emulator.run(cmd, timeout=self.timeout)
+
+ self.assertEqual(ret, 0)
+ self.assertEqual(output, [
+ 'ping 0',
+ 'pong 0',
+ 'ping 1',
+ 'pong 1',
+ 'ping 2',
+ 'pong 2',
+ 'ping 3',
+ 'pong 3',
+ 'ping 4',
+ 'pong 4',
+ 'ping 5',
+ 'pong 5',
+ ])
diff --git a/support/testing/tests/package/test_python_sysv_ipc/rootfs-overlay/root/ping.py b/support/testing/tests/package/test_python_sysv_ipc/rootfs-overlay/root/ping.py
new file mode 100644
index 0000000000..d5c1df3879
--- /dev/null
+++ b/support/testing/tests/package/test_python_sysv_ipc/rootfs-overlay/root/ping.py
@@ -0,0 +1,17 @@
+import argparse
+import sysv_ipc
+
+parser = argparse.ArgumentParser()
+parser.add_argument("input", help="input message queue key", type=int)
+parser.add_argument("output", help="output message queue key", type=int)
+parser.add_argument("count", help="iterations count", type=int)
+args = parser.parse_args()
+
+incoming = sysv_ipc.MessageQueue(args.input)
+outgoing = sysv_ipc.MessageQueue(args.output)
+
+for i in range(0, args.count):
+ outgoing.send(f"ping {i}")
+
+ s, _ = incoming.receive()
+ print(s.decode())
diff --git a/support/testing/tests/package/test_python_sysv_ipc/rootfs-overlay/root/pong.py b/support/testing/tests/package/test_python_sysv_ipc/rootfs-overlay/root/pong.py
new file mode 100644
index 0000000000..9fe672a6e4
--- /dev/null
+++ b/support/testing/tests/package/test_python_sysv_ipc/rootfs-overlay/root/pong.py
@@ -0,0 +1,17 @@
+import argparse
+import sysv_ipc
+
+parser = argparse.ArgumentParser()
+parser.add_argument("input", help="input message queue key", type=int)
+parser.add_argument("output", help="output message queue key", type=int)
+parser.add_argument("count", help="iterations count", type=int)
+args = parser.parse_args()
+
+incoming = sysv_ipc.MessageQueue(args.input)
+outgoing = sysv_ipc.MessageQueue(args.output)
+
+for i in range(0, args.count):
+ s, _ = incoming.receive()
+ print(s.decode())
+
+ outgoing.send(f"pong {i}")
--
2.51.0
_______________________________________________
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 v2 1/1] package/python-sysv-ipc: new package
2026-04-16 8:06 [Buildroot] [PATCH v2 1/1] package/python-sysv-ipc: new package Vincent Cruz
@ 2026-05-30 17:16 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-05-30 17:16 UTC (permalink / raw)
To: Vincent Cruz; +Cc: buildroot, Vincent Jardin, James Hilliard
Hello Vincent,
On Thu, Apr 16, 2026 at 10:06:38AM +0200, Vincent Cruz wrote:
> From: Vincent Jardin <vjardin@free.fr>
>
> python-sysv-ipc provides Python bindings for System V IPC primitives
> (semaphores, shared memory and message queues).
>
> https://github.com/osvenskan/sysv_ipc
>
> Signed-off-by: Vincent Jardin <vjardin@free.fr>
> Signed-off-by: Vincent Cruz <mooz@blockos.org>
Thanks, applied to next, with some minor adjustements.
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-05-30 17:16 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-16 8:06 [Buildroot] [PATCH v2 1/1] package/python-sysv-ipc: new package Vincent Cruz
2026-05-30 17:16 ` 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.