@@ -607,6 +607,7 @@ RECIPE_MAINTAINER:pn-python3-attrs = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-babel = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-bcrypt = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-build = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER:pn-python3-calver = "Trevor Gamblin <tgamblin@baylibre.com>"
RECIPE_MAINTAINER:pn-python3-certifi = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-cffi = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-chardet = "Tim Orling <tim.orling@konsulko.com>"
@@ -56,6 +56,7 @@ PTESTS_FAST = "\
popt \
python3-atomicwrites \
python3-bcrypt \
+ python3-calver \
python3-hypothesis \
python3-jinja2 \
python3-jsonpointer \
new file mode 100644
@@ -0,0 +1,32 @@
+From 390a233ed969f82b2ef209b23bfb523e785603f9 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Tue, 9 May 2023 10:19:41 -0400
+Subject: [PATCH] setup.py: hard-code version
+
+setup.py is pulling the build version from the current date rather than
+a release tag or other predictable method, causing reproducibility
+issues in builds. Patch this to make reproducible builds work while
+discussing this with upstream maintainer (or developing a patch that can
+make calver rely on a more standard pyproject.toml solution).
+
+Upstream-Status: Inappropriate (configuration)
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 73f6b10..2e27cf1 100644
+--- a/setup.py
++++ b/setup.py
+@@ -42,5 +42,5 @@ setup(
+ "use_calver = calver.integration:version",
+ ],
+ },
+- version=calver_version(True),
++ version=calver_version("2022.6.26"),
+ )
+--
+2.40.0
+
new file mode 100644
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
new file mode 100644
@@ -0,0 +1,29 @@
+SUMMARY = "Setuptools extension for CalVer package versions"
+HOMEPAGE = "https://github.com/di/calver"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = " \
+ git://github.com/di/calver;branch=master;protocol=https \
+ file://run-ptest \
+ file://0001-setup.py-hard-code-version.patch \
+"
+SRC_URI[sha256sum] = "e05493a3b17517ef1748fbe610da11f10485faa7c416b9d33fd4a52d74894f8b"
+SRCREV = "3268d8acf2c345f32a1c5f08ba25dc67f76cca81"
+
+inherit python_setuptools_build_meta ptest
+
+S = "${WORKDIR}/git"
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pretend \
+ ${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests ${D}${PTEST_PATH}/
+}
+
+BBCLASSEXTEND = "native nativesdk"
calver is "a setuptools extension for automatically defining your Python package version as a calendar version." It is required for python3-trove-classifiers (another new recipe), which in turn is required for the upgrade of python3-hatchling from 1.13.0 to work. Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> v6 addresses reproducibility by patching the source code, and fixes issues with that were missed from previous reviews. v5 moves these revision notes to the correct place. v4 adds the run-ptest script and adds maintainer info. v3 clarifies that the recipe now includes ptests, where v2 didn't make this clear and v1 didn't have them at all. --- meta/conf/distro/include/maintainers.inc | 1 + .../distro/include/ptest-packagelists.inc | 1 + .../0001-setup.py-hard-code-version.patch | 32 +++++++++++++++++++ .../python/python3-calver/run-ptest | 3 ++ .../python/python3-calver_2022.6.26.bb | 29 +++++++++++++++++ 5 files changed, 66 insertions(+) create mode 100644 meta/recipes-devtools/python/python3-calver/0001-setup.py-hard-code-version.patch create mode 100644 meta/recipes-devtools/python/python3-calver/run-ptest create mode 100644 meta/recipes-devtools/python/python3-calver_2022.6.26.bb