From acaf3462d00ab84abf42a941a45e0fe0c7c0f75d Mon Sep 17 00:00:00 2001 From: Yoann Congal Date: Sat, 3 May 2025 00:49:43 +0200 Subject: python3-evdev: upgrade 1.9.1 -> 1.9.2 * Remove a merged reproducibility patch * Adapt the --reproducible option Changelog (from [0]): 1.9.2 (May 01, 2025) ==================== - Add the "--reproducible" build option which removes the build date and used headers from the generated ``ecodes.c``. Example usage:: python -m build --config-setting=--build-option='build_ecodes --reproducible' -n - Use ``Generic`` to set precise type for ``InputDevice.path``. [0]: https://github.com/gvalkov/python-evdev/blob/v1.9.2/docs/changelog.rst Signed-off-by: Yoann Congal Signed-off-by: Khem Raj --- ...roducibility-option-for-building-ecodes.c.patch | 116 --------------------- .../recipes-devtools/python/python3-evdev_1.9.1.bb | 25 ----- .../recipes-devtools/python/python3-evdev_1.9.2.bb | 24 +++++ 3 files changed, 24 insertions(+), 141 deletions(-) delete mode 100644 meta-python/recipes-devtools/python/python3-evdev/0001-Add-a-reproducibility-option-for-building-ecodes.c.patch delete mode 100644 meta-python/recipes-devtools/python/python3-evdev_1.9.1.bb create mode 100644 meta-python/recipes-devtools/python/python3-evdev_1.9.2.bb diff --git a/meta-python/recipes-devtools/python/python3-evdev/0001-Add-a-reproducibility-option-for-building-ecodes.c.patch b/meta-python/recipes-devtools/python/python3-evdev/0001-Add-a-reproducibility-option-for-building-ecodes.c.patch deleted file mode 100644 index e730519884..0000000000 --- a/meta-python/recipes-devtools/python/python3-evdev/0001-Add-a-reproducibility-option-for-building-ecodes.c.patch +++ /dev/null @@ -1,116 +0,0 @@ -From d05c1c9dd298cb95d7feccbddb5caa043a319a01 Mon Sep 17 00:00:00 2001 -From: Yoann Congal -Date: Sun, 13 Apr 2025 00:52:13 +0200 -Subject: [PATCH] Add a reproducibility option for building ecodes.c - -ecodes.c currently contains the kernel info of the build machine and the -full path of the input*.h headers: This is not reproducible as output -can change even is headers content do not. Downstream distributions -might package ecodes.c and get non-reproducible output. - -To fix this: introduce a --reproducible option in the build: -- in setup.py build_ecodes command -- in underlying genecodes_c.py - -Note: These options are disabled by default so no change is expected in -current builds. - -Signed-off-by: Yoann Congal -Upstream-Status: Submitted [https://github.com/gvalkov/python-evdev/pull/242] ---- - setup.py | 13 ++++++++++--- - src/evdev/genecodes_c.py | 17 +++++++++++------ - 2 files changed, 21 insertions(+), 9 deletions(-) - -diff --git a/setup.py b/setup.py -index 6b721d7..3371199 100755 ---- a/setup.py -+++ b/setup.py -@@ -14,7 +14,7 @@ curdir = Path(__file__).resolve().parent - ecodes_c_path = curdir / "src/evdev/ecodes.c" - - --def create_ecodes(headers=None): -+def create_ecodes(headers=None, reproducibility=False): - if not headers: - include_paths = set() - cpath = os.environ.get("CPATH", "").strip() -@@ -65,7 +65,10 @@ def create_ecodes(headers=None): - - print("writing %s (using %s)" % (ecodes_c_path, " ".join(headers))) - with ecodes_c_path.open("w") as fh: -- cmd = [sys.executable, "src/evdev/genecodes_c.py", "--ecodes", *headers] -+ cmd = [sys.executable, "src/evdev/genecodes_c.py"] -+ if reproducibility: -+ cmd.append("--reproducibility") -+ cmd.extend(["--ecodes", *headers]) - run(cmd, check=True, stdout=fh) - - -@@ -74,17 +77,21 @@ class build_ecodes(Command): - - user_options = [ - ("evdev-headers=", None, "colon-separated paths to input subsystem headers"), -+ ("reproducibility", None, "hide host details (host/paths) to create a reproducible output"), - ] - - def initialize_options(self): - self.evdev_headers = None -+ self.reproducibility = False - - def finalize_options(self): - if self.evdev_headers: - self.evdev_headers = self.evdev_headers.split(":") -+ if self.reproducibility is None: -+ self.reproducibility = False - - def run(self): -- create_ecodes(self.evdev_headers) -+ create_ecodes(self.evdev_headers, reproducibility=self.reproducibility) - - - class build_ext(_build_ext.build_ext): -diff --git a/src/evdev/genecodes_c.py b/src/evdev/genecodes_c.py -index 5c2d946..24cad27 100644 ---- a/src/evdev/genecodes_c.py -+++ b/src/evdev/genecodes_c.py -@@ -15,22 +15,27 @@ headers = [ - "/usr/include/linux/uinput.h", - ] - --opts, args = getopt.getopt(sys.argv[1:], "", ["ecodes", "stubs"]) -+opts, args = getopt.getopt(sys.argv[1:], "", ["ecodes", "stubs", "reproducibility"]) - if not opts: -- print("usage: genecodes.py [--ecodes|--stubs] ") -+ print("usage: genecodes.py [--ecodes|--stubs] [--reproducibility] ") - exit(2) - - if args: - headers = args - -+reproducibility = ("--reproducibility", "") in opts -+ - - # ----------------------------------------------------------------------------- - macro_regex = r"#define\s+((?:KEY|ABS|REL|SW|MSC|LED|BTN|REP|SND|ID|EV|BUS|SYN|FF|UI_FF|INPUT_PROP)_\w+)" - macro_regex = re.compile(macro_regex) - --# Uname without hostname. --uname = list(os.uname()) --uname = " ".join((uname[0], *uname[2:])) -+if reproducibility: -+ uname = "hidden for reproducibility" -+else: -+ # Uname without hostname. -+ uname = list(os.uname()) -+ uname = " ".join((uname[0], *uname[2:])) - - - # ----------------------------------------------------------------------------- -@@ -138,5 +143,5 @@ elif ("--stubs", "") in opts: - template = template_stubs - - body = os.linesep.join(body) --text = template % (uname, headers, body) -+text = template % (uname, headers if not reproducibility else ["hidden for reproducibility"], body) - print(text.strip()) diff --git a/meta-python/recipes-devtools/python/python3-evdev_1.9.1.bb b/meta-python/recipes-devtools/python/python3-evdev_1.9.1.bb deleted file mode 100644 index af88770c59..0000000000 --- a/meta-python/recipes-devtools/python/python3-evdev_1.9.1.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "Python evdev lib" -HOMEPAGE = "https://github.com/gvalkov/python-evdev" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d7bd1cc4c71b706c7e2d4053aef50f2a" - -SRC_URI += "file://0001-Add-a-reproducibility-option-for-building-ecodes.c.patch" -SRC_URI[sha256sum] = "dc640a064cb1c9fe1f8b970dc2039945a2a275d7b7ee62284bf427238abe45ee" - -inherit pypi python_setuptools_build_meta - -do_compile:prepend() { - rm -rf ${S}/evdev/ecodes.c -} - -PEP517_BUILD_OPTS = "--config-setting=--build-option='build_ecodes \ - --evdev-headers ${STAGING_DIR_TARGET}/usr/include/linux/input.h:${STAGING_DIR_TARGET}/usr/include/linux/input-event-codes.h \ - --reproducibility'" - -RDEPENDS:${PN} += "\ - python3-ctypes \ - python3-fcntl \ - python3-io \ - python3-shell \ - python3-stringold \ - " diff --git a/meta-python/recipes-devtools/python/python3-evdev_1.9.2.bb b/meta-python/recipes-devtools/python/python3-evdev_1.9.2.bb new file mode 100644 index 0000000000..28c8ea4bc1 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-evdev_1.9.2.bb @@ -0,0 +1,24 @@ +SUMMARY = "Python evdev lib" +HOMEPAGE = "https://github.com/gvalkov/python-evdev" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d7bd1cc4c71b706c7e2d4053aef50f2a" + +SRC_URI[sha256sum] = "5d3278892ce1f92a74d6bf888cc8525d9f68af85dbe336c95d1c87fb8f423069" + +inherit pypi python_setuptools_build_meta + +do_compile:prepend() { + rm -rf ${S}/evdev/ecodes.c +} + +PEP517_BUILD_OPTS = "--config-setting=--build-option='build_ecodes \ + --evdev-headers ${STAGING_DIR_TARGET}/usr/include/linux/input.h:${STAGING_DIR_TARGET}/usr/include/linux/input-event-codes.h \ + --reproducible'" + +RDEPENDS:${PN} += "\ + python3-ctypes \ + python3-fcntl \ + python3-io \ + python3-shell \ + python3-stringold \ + " -- cgit v1.2.3-54-g00ecf