diff mbox series

[v1,1/1] package/python-ncclient: new package

Message ID 20260107180108.2470425-2-vjardin@free.fr
State Superseded
Headers show
Series package/python-ncclient: new package | expand

Commit Message

Vincent Jardin Jan. 7, 2026, 6:01 p.m. UTC
This package provides Python bindings for NETCONF clients. It
facilitates client-side scripting and application development
around NETCONF protocol for network device configuration.

Signed-off-by: Vincent Jardin <vjardin@free.fr>
---
 DEVELOPERS                                   |  1 +
 package/Config.in                            |  1 +
 package/python-ncclient/Config.in            | 16 +++++++++++++++
 package/python-ncclient/python-ncclient.hash |  5 +++++
 package/python-ncclient/python-ncclient.mk   | 21 ++++++++++++++++++++
 5 files changed, 44 insertions(+)
 create mode 100644 package/python-ncclient/Config.in
 create mode 100644 package/python-ncclient/python-ncclient.hash
 create mode 100644 package/python-ncclient/python-ncclient.mk

Comments

Thomas Petazzoni Jan. 7, 2026, 10:47 p.m. UTC | #1
Hello Vincent,

On Wed,  7 Jan 2026 19:01:08 +0100
Vincent Jardin via buildroot <buildroot@buildroot.org> wrote:

> diff --git a/package/python-ncclient/Config.in b/package/python-ncclient/Config.in
> new file mode 100644
> index 0000000000..2be69efb2b
> --- /dev/null
> +++ b/package/python-ncclient/Config.in
> @@ -0,0 +1,16 @@
> +config BR2_PACKAGE_PYTHON_NCCLIENT
> +	bool "python-ncclient"
> +	depends on BR2_PACKAGE_PYTHON3

Not needed.

> +	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # python-paramiko
> +	select BR2_PACKAGE_PYTHON_LXML
> +	select BR2_PACKAGE_PYTHON_PARAMIKO
> +	select BR2_PACKAGE_PYTHON_SIX
> +	help
> +	  ncclient is a Python library for NETCONF clients. It
> +	  facilitates client-side scripting and application
> +	  development around NETCONF.
> +
> +	  https://github.com/ncclient/ncclient
> +
> +comment "python-ncclient needs python3 and host Rust (for paramiko)"
> +	depends on !BR2_PACKAGE_PYTHON3 || !BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS

Not needed. BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS is an
architecture dependency, so we don't write a comment about it, since
there's nothing the user can do about it.

> diff --git a/package/python-ncclient/python-ncclient.mk b/package/python-ncclient/python-ncclient.mk
> new file mode 100644
> index 0000000000..ca1b23e441
> --- /dev/null
> +++ b/package/python-ncclient/python-ncclient.mk
> @@ -0,0 +1,21 @@
> +################################################################################
> +#
> +# python-ncclient
> +#
> +################################################################################
> +
> +PYTHON_NCCLIENT_VERSION = 0.7.0
> +PYTHON_NCCLIENT_SOURCE = ncclient-$(PYTHON_NCCLIENT_VERSION).tar.gz
> +PYTHON_NCCLIENT_SITE = https://files.pythonhosted.org/packages/source/n/ncclient
> +
> +PYTHON_NCCLIENT_LICENSE = Apache-2.0
> +PYTHON_NCCLIENT_LICENSE_FILES = LICENSE
> +
> +PYTHON_NCCLIENT_SETUP_TYPE = setuptools
> +
> +PYTHON_NCCLIENT_DEPENDENCIES = \
> +	python-lxml \
> +	python-paramiko \
> +	python-six

Are you sure these are build-time dependencies? Most of the time Python
modules are only run-time dependencies.

And as asked for some other patches, a test case in support/testing/
would be nice.

Thanks!

Thomas
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index f982e3123a..4185cbb57c 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -3359,6 +3359,7 @@  F:	package/bfscripts/
 F:	package/dpdk/
 F:	package/libecoli/
 F:	package/libyang-cpp/
+F:	package/python-ncclient/
 F:	package/sysrepo-cpp/
 
 N:	Vincent Prince <vincent.prince.fr@gmail.com>
diff --git a/package/Config.in b/package/Config.in
index def3db0e50..141e0e07d8 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1247,6 +1247,7 @@  menu "External python modules"
 	source "package/python-mwscrape2slob/Config.in"
 	source "package/python-mypy/Config.in"
 	source "package/python-mypy-extensions/Config.in"
+	source "package/python-ncclient/Config.in"
 	source "package/python-nested-dict/Config.in"
 	source "package/python-netaddr/Config.in"
 	source "package/python-netifaces/Config.in"
diff --git a/package/python-ncclient/Config.in b/package/python-ncclient/Config.in
new file mode 100644
index 0000000000..2be69efb2b
--- /dev/null
+++ b/package/python-ncclient/Config.in
@@ -0,0 +1,16 @@ 
+config BR2_PACKAGE_PYTHON_NCCLIENT
+	bool "python-ncclient"
+	depends on BR2_PACKAGE_PYTHON3
+	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # python-paramiko
+	select BR2_PACKAGE_PYTHON_LXML
+	select BR2_PACKAGE_PYTHON_PARAMIKO
+	select BR2_PACKAGE_PYTHON_SIX
+	help
+	  ncclient is a Python library for NETCONF clients. It
+	  facilitates client-side scripting and application
+	  development around NETCONF.
+
+	  https://github.com/ncclient/ncclient
+
+comment "python-ncclient needs python3 and host Rust (for paramiko)"
+	depends on !BR2_PACKAGE_PYTHON3 || !BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
diff --git a/package/python-ncclient/python-ncclient.hash b/package/python-ncclient/python-ncclient.hash
new file mode 100644
index 0000000000..e3a46c8175
--- /dev/null
+++ b/package/python-ncclient/python-ncclient.hash
@@ -0,0 +1,5 @@ 
+# From https://pypi.org/pypi/ncclient/0.7.0/json
+sha256  318e8e3e72b1d2a766f3665cabef33436fd25b607da5f15657a199c648a68435  ncclient-0.7.0.tar.gz
+
+# Locally computed
+sha256  cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30  LICENSE
diff --git a/package/python-ncclient/python-ncclient.mk b/package/python-ncclient/python-ncclient.mk
new file mode 100644
index 0000000000..ca1b23e441
--- /dev/null
+++ b/package/python-ncclient/python-ncclient.mk
@@ -0,0 +1,21 @@ 
+################################################################################
+#
+# python-ncclient
+#
+################################################################################
+
+PYTHON_NCCLIENT_VERSION = 0.7.0
+PYTHON_NCCLIENT_SOURCE = ncclient-$(PYTHON_NCCLIENT_VERSION).tar.gz
+PYTHON_NCCLIENT_SITE = https://files.pythonhosted.org/packages/source/n/ncclient
+
+PYTHON_NCCLIENT_LICENSE = Apache-2.0
+PYTHON_NCCLIENT_LICENSE_FILES = LICENSE
+
+PYTHON_NCCLIENT_SETUP_TYPE = setuptools
+
+PYTHON_NCCLIENT_DEPENDENCIES = \
+	python-lxml \
+	python-paramiko \
+	python-six
+
+$(eval $(python-package))