* [Buildroot] [PATCH 06/13] package/python-nmcli: new package
@ 2026-04-28 17:20 Alexandre Ondet
2026-05-30 22:00 ` Marcus Hoffmann via buildroot
0 siblings, 1 reply; 5+ messages in thread
From: Alexandre Ondet @ 2026-04-28 17:20 UTC (permalink / raw)
To: buildroot; +Cc: Alexandre Ondet, James Hilliard, Thomas Petazzoni
Signed-off-by: Alexandre Ondet <frcomdev@gmail.com>
---
package/Config.in | 1 +
package/python-nmcli/Config.in | 6 ++++++
package/python-nmcli/python-nmcli.hash | 3 +++
package/python-nmcli/python-nmcli.mk | 14 ++++++++++++++
4 files changed, 24 insertions(+)
create mode 100644 package/python-nmcli/Config.in
create mode 100644 package/python-nmcli/python-nmcli.hash
create mode 100644 package/python-nmcli/python-nmcli.mk
diff --git a/package/Config.in b/package/Config.in
index 754bdee9f4..83c9e0809c 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1261,6 +1261,7 @@ menu "External python modules"
source "package/python-netifaces/Config.in"
source "package/python-networkmanager/Config.in"
source "package/python-networkx/Config.in"
+ source "package/python-nmcli/Config.in"
source "package/python-numpy/Config.in"
source "package/python-oauthlib/Config.in"
source "package/python-opcua-asyncio/Config.in"
diff --git a/package/python-nmcli/Config.in b/package/python-nmcli/Config.in
new file mode 100644
index 0000000000..acdb6a1423
--- /dev/null
+++ b/package/python-nmcli/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_PYTHON_NMCLI
+ bool "python-nmcli"
+ help
+ Python wrapper for nmcli (NetworkManager).
+
+ https://github.com/ushiboy/nmcli
\ No newline at end of file
diff --git a/package/python-nmcli/python-nmcli.hash b/package/python-nmcli/python-nmcli.hash
new file mode 100644
index 0000000000..d11842e3e8
--- /dev/null
+++ b/package/python-nmcli/python-nmcli.hash
@@ -0,0 +1,3 @@
+# From https://pypi.org/pypi/nmcli/1.7.0/json
+sha256 4fb17b6c33d276a264a27b7109fa1d70987570536fa8852b51830f9f7732f982 nmcli-1.7.0.tar.gz
+sha256 9dbbc4debacc85f5f5f074614cd9cadd61da09eaa19f98f6bbb5463c34133820 LICENSE.txt
\ No newline at end of file
diff --git a/package/python-nmcli/python-nmcli.mk b/package/python-nmcli/python-nmcli.mk
new file mode 100644
index 0000000000..449131974d
--- /dev/null
+++ b/package/python-nmcli/python-nmcli.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# python-nmcli
+#
+################################################################################
+
+PYTHON_NMCLI_VERSION = 1.7.0
+PYTHON_NMCLI_SOURCE = nmcli-$(PYTHON_NMCLI_VERSION).tar.gz
+PYTHON_NMCLI_SITE = https://files.pythonhosted.org/packages/source/n/nmcli
+PYTHON_NMCLI_SETUP_TYPE = setuptools
+PYTHON_NMCLI_LICENSE = MIT
+PYTHON_NMCLI_LICENSE_FILES = LICENSE.txt
+
+$(eval $(python-package))
\ No newline at end of file
--
2.53.0.windows.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Buildroot] [PATCH 06/13] package/python-nmcli: new package
2026-04-28 17:20 [Buildroot] [PATCH 06/13] package/python-nmcli: new package Alexandre Ondet
@ 2026-05-30 22:00 ` Marcus Hoffmann via buildroot
2026-06-11 19:15 ` Alexandre Ondet
0 siblings, 1 reply; 5+ messages in thread
From: Marcus Hoffmann via buildroot @ 2026-05-30 22:00 UTC (permalink / raw)
To: Alexandre Ondet, buildroot; +Cc: James Hilliard, Thomas Petazzoni
Hi Alexandre,
some comments below.
On 4/28/26 19:20, Alexandre Ondet wrote:
> Signed-off-by: Alexandre Ondet <frcomdev@gmail.com>
> ---
> package/Config.in | 1 +
> package/python-nmcli/Config.in | 6 ++++++
> package/python-nmcli/python-nmcli.hash | 3 +++
> package/python-nmcli/python-nmcli.mk | 14 ++++++++++++++
> 4 files changed, 24 insertions(+)
> create mode 100644 package/python-nmcli/Config.in
> create mode 100644 package/python-nmcli/python-nmcli.hash
> create mode 100644 package/python-nmcli/python-nmcli.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 754bdee9f4..83c9e0809c 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1261,6 +1261,7 @@ menu "External python modules"
> source "package/python-netifaces/Config.in"
> source "package/python-networkmanager/Config.in"
> source "package/python-networkx/Config.in"
> + source "package/python-nmcli/Config.in"
> source "package/python-numpy/Config.in"
> source "package/python-oauthlib/Config.in"
> source "package/python-opcua-asyncio/Config.in"
> diff --git a/package/python-nmcli/Config.in b/package/python-nmcli/Config.in
> new file mode 100644
> index 0000000000..acdb6a1423
> --- /dev/null
> +++ b/package/python-nmcli/Config.in
> @@ -0,0 +1,6 @@
> +config BR2_PACKAGE_PYTHON_NMCLI
> + bool "python-nmcli"
This should depend on BR2_PACKAGE_NETWORK_MANAGER, as it probably
doesn't make any sense to have this package without also having
network-manager on your device?
And then you can select BR2_PACKAGE_NETWORK_MANAGER_CLI to ensure the
nmcli part also gets enabled automatically when you enable python-nmcli.
> + help
> + Python wrapper for nmcli (NetworkManager).
> +
> + https://github.com/ushiboy/nmcli
> \ No newline at end of file
> diff --git a/package/python-nmcli/python-nmcli.hash b/package/python-nmcli/python-nmcli.hash
> new file mode 100644
> index 0000000000..d11842e3e8
> --- /dev/null
> +++ b/package/python-nmcli/python-nmcli.hash
> @@ -0,0 +1,3 @@
> +# From https://pypi.org/pypi/nmcli/1.7.0/json
> +sha256 4fb17b6c33d276a264a27b7109fa1d70987570536fa8852b51830f9f7732f982 nmcli-1.7.0.tar.gz
> +sha256 9dbbc4debacc85f5f5f074614cd9cadd61da09eaa19f98f6bbb5463c34133820 LICENSE.txt
> \ No newline at end of file
> diff --git a/package/python-nmcli/python-nmcli.mk b/package/python-nmcli/python-nmcli.mk
> new file mode 100644
> index 0000000000..449131974d
> --- /dev/null
> +++ b/package/python-nmcli/python-nmcli.mk
> @@ -0,0 +1,14 @@
> +################################################################################
> +#
> +# python-nmcli
> +#
> +################################################################################
> +
> +PYTHON_NMCLI_VERSION = 1.7.0
> +PYTHON_NMCLI_SOURCE = nmcli-$(PYTHON_NMCLI_VERSION).tar.gz
> +PYTHON_NMCLI_SITE = https://files.pythonhosted.org/packages/source/n/nmcli
> +PYTHON_NMCLI_SETUP_TYPE = setuptools
> +PYTHON_NMCLI_LICENSE = MIT
> +PYTHON_NMCLI_LICENSE_FILES = LICENSE.txt
> +
> +$(eval $(python-package))
> \ No newline at end of file
Please make sure your files all have a newline at the end.
A general note for these type of packages with runtime dependencies
(which applies to python packages in general but also for this
specifically for the network-manager dependency): it would be really
good to add a runtime test together with the package [1]. It helps to
test the package when reviewing and ensures it doesn't silently break
with some network-manager update.
I've marked this as changes requested in patchwork.
Best,
Marcus
[1]
https://nightly.buildroot.org/manual.html#_using_the_runtime_tests_framework
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Buildroot] [PATCH 06/13] package/python-nmcli: new package
2026-05-30 22:00 ` Marcus Hoffmann via buildroot
@ 2026-06-11 19:15 ` Alexandre Ondet
2026-06-11 19:16 ` [Buildroot] [PATCH] package/python-nmcli: fix dependencies and add runtime test Alexandre Ondet
2026-06-12 10:54 ` [Buildroot] [PATCH 06/13] package/python-nmcli: new package Marcus Hoffmann via buildroot
0 siblings, 2 replies; 5+ messages in thread
From: Alexandre Ondet @ 2026-06-11 19:15 UTC (permalink / raw)
To: buildroot; +Cc: buildroot, james.hilliard1, thomas.petazzoni
Hi Marcus,
Thanks for the review. Updated patch attached:
- BR2_PACKAGE_NETWORK_MANAGER dependency and BR2_PACKAGE_NETWORK_MANAGER_CLI select
- trailing newlines in all package files
- runtime test exercising nmcli.general.status() with systemd + NetworkManager
Best regards,
Alexandre
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH] package/python-nmcli: fix dependencies and add runtime test
2026-06-11 19:15 ` Alexandre Ondet
@ 2026-06-11 19:16 ` Alexandre Ondet
2026-06-12 10:54 ` [Buildroot] [PATCH 06/13] package/python-nmcli: new package Marcus Hoffmann via buildroot
1 sibling, 0 replies; 5+ messages in thread
From: Alexandre Ondet @ 2026-06-11 19:16 UTC (permalink / raw)
To: buildroot; +Cc: buildroot, james.hilliard1, thomas.petazzoni
Depend on network-manager and select nmcli support so the Python wrapper can invoke the nmcli binary at runtime. Add a runtime test that boots with systemd and exercises nmcli.general.status().
---
package/python-nmcli/Config.in | 4 +++-
package/python-nmcli/python-nmcli.hash | 2 +-
package/python-nmcli/python-nmcli.mk | 2 +-
.../tests/package/sample_python_nmcli.py | 8 +++++++
.../tests/package/test_python_nmcli.py | 24 +++++++++++++++++++
5 files changed, 37 insertions(+), 3 deletions(-)
create mode 100644 support/testing/tests/package/sample_python_nmcli.py
create mode 100644 support/testing/tests/package/test_python_nmcli.py
diff --git a/package/python-nmcli/Config.in b/package/python-nmcli/Config.in
index acdb6a1423..ad282f0584 100644
--- a/package/python-nmcli/Config.in
+++ b/package/python-nmcli/Config.in
@@ -1,6 +1,8 @@
config BR2_PACKAGE_PYTHON_NMCLI
bool "python-nmcli"
+ depends on BR2_PACKAGE_NETWORK_MANAGER # runtime
+ select BR2_PACKAGE_NETWORK_MANAGER_CLI
help
Python wrapper for nmcli (NetworkManager).
- https://github.com/ushiboy/nmcli
\ No newline at end of file
+ https://github.com/ushiboy/nmcli
diff --git a/package/python-nmcli/python-nmcli.hash b/package/python-nmcli/python-nmcli.hash
index d11842e3e8..5bf087fde9 100644
--- a/package/python-nmcli/python-nmcli.hash
+++ b/package/python-nmcli/python-nmcli.hash
@@ -1,3 +1,3 @@
# From https://pypi.org/pypi/nmcli/1.7.0/json
sha256 4fb17b6c33d276a264a27b7109fa1d70987570536fa8852b51830f9f7732f982 nmcli-1.7.0.tar.gz
-sha256 9dbbc4debacc85f5f5f074614cd9cadd61da09eaa19f98f6bbb5463c34133820 LICENSE.txt
\ No newline at end of file
+sha256 9dbbc4debacc85f5f5f074614cd9cadd61da09eaa19f98f6bbb5463c34133820 LICENSE.txt
diff --git a/package/python-nmcli/python-nmcli.mk b/package/python-nmcli/python-nmcli.mk
index 449131974d..63f258238b 100644
--- a/package/python-nmcli/python-nmcli.mk
+++ b/package/python-nmcli/python-nmcli.mk
@@ -11,4 +11,4 @@ PYTHON_NMCLI_SETUP_TYPE = setuptools
PYTHON_NMCLI_LICENSE = MIT
PYTHON_NMCLI_LICENSE_FILES = LICENSE.txt
-$(eval $(python-package))
\ No newline at end of file
+$(eval $(python-package))
diff --git a/support/testing/tests/package/sample_python_nmcli.py b/support/testing/tests/package/sample_python_nmcli.py
new file mode 100644
index 0000000000..5fa8dee0c4
--- /dev/null
+++ b/support/testing/tests/package/sample_python_nmcli.py
@@ -0,0 +1,8 @@
+#!/usr/bin/env python3
+
+import nmcli
+
+general = nmcli.general.status()
+print(general)
+
+assert general.state is not None
diff --git a/support/testing/tests/package/test_python_nmcli.py b/support/testing/tests/package/test_python_nmcli.py
new file mode 100644
index 0000000000..20fffa2356
--- /dev/null
+++ b/support/testing/tests/package/test_python_nmcli.py
@@ -0,0 +1,24 @@
+from tests.package.test_python import TestPythonPackageBase
+
+
+class TestPythonPy3Nmcli(TestPythonPackageBase):
+ __test__ = True
+ # Can't use TestPythonPackageBase.config because we need headers
+ # >= 5.4 for network-manager, so we have to use the bleeding-edge
+ # toolchain.
+ config = \
+ """
+ BR2_arm=y
+ BR2_TOOLCHAIN_EXTERNAL=y
+ BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
+ BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_GLIBC_BLEEDING_EDGE=y
+ BR2_PACKAGE_PYTHON3=y
+ BR2_INIT_SYSTEMD=y
+ BR2_PACKAGE_NETWORK_MANAGER=y
+ BR2_PACKAGE_PYTHON_NMCLI=y
+ BR2_TARGET_ROOTFS_CPIO=y
+ # BR2_TARGET_ROOTFS_TAR is not set
+ """
+ sample_scripts = ["tests/package/sample_python_nmcli.py"]
+
+ timeout = 30
--
2.53.0.windows.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Buildroot] [PATCH 06/13] package/python-nmcli: new package
2026-06-11 19:15 ` Alexandre Ondet
2026-06-11 19:16 ` [Buildroot] [PATCH] package/python-nmcli: fix dependencies and add runtime test Alexandre Ondet
@ 2026-06-12 10:54 ` Marcus Hoffmann via buildroot
1 sibling, 0 replies; 5+ messages in thread
From: Marcus Hoffmann via buildroot @ 2026-06-12 10:54 UTC (permalink / raw)
To: Alexandre Ondet, buildroot; +Cc: james.hilliard1, thomas.petazzoni
Hi Alexandre,
On 6/11/26 21:15, Alexandre Ondet wrote:
> Hi Marcus,
>
> Thanks for the review. Updated patch attached:
Thanks for this iteration, but please send a proper v2, not an
incremental patch.
See: https://nightly.buildroot.org/manual.html#submitting-patches
>
> - BR2_PACKAGE_NETWORK_MANAGER dependency and BR2_PACKAGE_NETWORK_MANAGER_CLI select
> - trailing newlines in all package files
> - runtime test exercising nmcli.general.status() with systemd + NetworkManager
Can you also add yourself to the DEVELOPERS file for the new package and
test files you are adding? See
https://nightly.buildroot.org/manual.html#DEVELOPERS
>
> Best regards,
> Alexandre
Best,
Marcus
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-06-12 10:54 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-28 17:20 [Buildroot] [PATCH 06/13] package/python-nmcli: new package Alexandre Ondet
2026-05-30 22:00 ` Marcus Hoffmann via buildroot
2026-06-11 19:15 ` Alexandre Ondet
2026-06-11 19:16 ` [Buildroot] [PATCH] package/python-nmcli: fix dependencies and add runtime test Alexandre Ondet
2026-06-12 10:54 ` [Buildroot] [PATCH 06/13] package/python-nmcli: new package Marcus Hoffmann 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.