[Buildroot] [git commit branch/next] package/python-jc: new package

Arnout Vandecappelle arnout at mind.be
Sun Mar 3 20:32:30 UTC 2024


commit: https://git.buildroot.net/buildroot/commit/?id=2ce680b991d390a75990e7cb1a55acc9ace7ae81
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/next

All dependencies are optional, and thus only mentioned in the package
help text.

Signed-off-by: Marcus Hoffmann <buildroot at bubu1.eu>
[Arnout:
 - add to DEVELOPERS;
 - add BSD-3-Clause license for vendored pbPlist.
]
Signed-off-by: Arnout Vandecappelle <arnout at mind.be>
---
 DEVELOPERS                                      |  1 +
 package/Config.in                               |  1 +
 package/python-jc/Config.in                     | 12 ++++++++++++
 package/python-jc/python-jc.hash                |  5 +++++
 package/python-jc/python-jc.mk                  | 14 ++++++++++++++
 support/testing/tests/package/test_python_jc.py | 22 ++++++++++++++++++++++
 6 files changed, 55 insertions(+)

diff --git a/DEVELOPERS b/DEVELOPERS
index 0bfe91f064..a6364cdd44 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2092,6 +2092,7 @@ F:	utils/config
 F:	utils/diffconfig
 
 N:	Marcus Hoffmann <bubu at bubu1.eu>
+F:	package/python-jc/
 F:	support/testing/tests/package/test_python_fastapi.py
 F:	support/testing/tests/package/sample_python_fastapi.py
 
diff --git a/package/Config.in b/package/Config.in
index bf0fe078b9..bbcc5b5774 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1150,6 +1150,7 @@ menu "External python modules"
 	source "package/python-janus/Config.in"
 	source "package/python-jaraco-classes/Config.in"
 	source "package/python-jaraco-functools/Config.in"
+	source "package/python-jc/Config.in"
 	source "package/python-jedi/Config.in"
 	source "package/python-jeepney/Config.in"
 	source "package/python-jinja2/Config.in"
diff --git a/package/python-jc/Config.in b/package/python-jc/Config.in
new file mode 100644
index 0000000000..b88150e069
--- /dev/null
+++ b/package/python-jc/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_PYTHON_JC
+	bool "python-jc"
+	help
+	  Converts the output of popular command-line tools and file-
+	  types to JSON.
+
+	  Optionally requires python-pygments for syntax highlighting,
+	  python-ruamel-yaml for yaml parsing and output and
+	  python-xmltodict for xml parsing. PYTHON3_PYEXPAT is required
+	  for xml and plist parsers.
+
+	  https://github.com/kellyjonbrazil/jc
diff --git a/package/python-jc/python-jc.hash b/package/python-jc/python-jc.hash
new file mode 100644
index 0000000000..f54e69eaeb
--- /dev/null
+++ b/package/python-jc/python-jc.hash
@@ -0,0 +1,5 @@
+# md5, sha256 from https://pypi.org/pypi/jc/json
+md5  80e4c7d46ec856255577c6b364e7f931  jc-1.25.1.tar.gz
+sha256  683352e903ece9a86eae0c3232188e40178139e710c740a466ef91ed87c4cc7e  jc-1.25.1.tar.gz
+# Locally computed sha256 checksums
+sha256  6493f2db400f4166ca0956cf192a41aa092bd1396ff463e7fdaf51f257c10497  LICENSE.md
diff --git a/package/python-jc/python-jc.mk b/package/python-jc/python-jc.mk
new file mode 100644
index 0000000000..ec8826d1c2
--- /dev/null
+++ b/package/python-jc/python-jc.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# python-jc
+#
+################################################################################
+
+PYTHON_JC_VERSION = 1.25.1
+PYTHON_JC_SOURCE = jc-$(PYTHON_JC_VERSION).tar.gz
+PYTHON_JC_SITE = https://files.pythonhosted.org/packages/53/a6/065f0796a0a21bc040bc88c8a33410c12729a2a6f4c269d0349f685796da
+PYTHON_JC_SETUP_TYPE = setuptools
+PYTHON_JC_LICENSE = MIT, BSD-3-Clause (bundled pbPlist)
+PYTHON_JC_LICENSE_FILES = LICENSE.md
+
+$(eval $(python-package))
diff --git a/support/testing/tests/package/test_python_jc.py b/support/testing/tests/package/test_python_jc.py
new file mode 100644
index 0000000000..974ce0c4b0
--- /dev/null
+++ b/support/testing/tests/package/test_python_jc.py
@@ -0,0 +1,22 @@
+from tests.package.test_python import TestPythonPackageBase
+
+
+class TestPythonPy3Jc(TestPythonPackageBase):
+    __test__ = True
+    # We deliberately run the test without the optional dependencies,
+    # as this configuration is less tested upstream.
+    config = TestPythonPackageBase.config + \
+        """
+        BR2_PACKAGE_PYTHON3=y
+        BR2_PACKAGE_PYTHON_JC=y
+        """
+    timeout = 60
+
+    def test_run(self):
+        self.login()
+        cmd = "jc -h > /dev/null 2>&1"
+        self.assertRunOk(cmd, timeout=self.timeout)
+        cmd = "jc id | grep -q root"
+        self.assertRunOk(cmd, timeout=self.timeout)
+        cmd = "jc env | grep -q PATH"
+        self.assertRunOk(cmd, self.timeout)



More information about the buildroot mailing list