]> code.ossystems Code Review - openembedded-core.git/commitdiff
libevdev: Fix determinism issue
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 7 Feb 2020 12:29:56 +0000 (12:29 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 8 Feb 2020 13:39:22 +0000 (13:39 +0000)
We need to sort python dict output to be deterministic and generate consistent
header files.

(From OE-Core rev: 75e4cedb986379db2e8a897df52ee1363f9a9a80)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-support/libevdev/libevdev/determinism.patch [new file with mode: 0644]
meta/recipes-support/libevdev/libevdev_1.8.0.bb

diff --git a/meta/recipes-support/libevdev/libevdev/determinism.patch b/meta/recipes-support/libevdev/libevdev/determinism.patch
new file mode 100644 (file)
index 0000000..33a6076
--- /dev/null
@@ -0,0 +1,34 @@
+The order of dict values is not deterministic leading to differing header file generation.
+Sort to remove this inconsistency.
+
+RP 2020/2/7
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Upstream-Status: Pending
+
+Index: a/libevdev/make-event-names.py
+===================================================================
+--- a/libevdev/make-event-names.py
++++ b/libevdev/make-event-names.py
+@@ -67,10 +67,10 @@ def print_bits(bits, prefix):
+       if  not hasattr(bits, prefix):
+               return
+       print("static const char * const %s_map[%s_MAX + 1] = {" % (prefix, prefix.upper()))
+-      for val, name in list(getattr(bits, prefix).items()):
++      for val, name in sorted(list(getattr(bits, prefix).items())):
+               print(" [%s] = \"%s\"," % (name, name))
+       if prefix == "key":
+-              for val, name in list(getattr(bits, "btn").items()):
++              for val, name in sorted(list(getattr(bits, "btn").items())):
+                       print(" [%s] = \"%s\"," % (name, name))
+       print("};")
+       print("")
+@@ -111,7 +111,7 @@ def print_lookup(bits, prefix):
+       if not hasattr(bits, prefix):
+               return
+-      names = list(getattr(bits, prefix).items())
++      names = sorted(list(getattr(bits, prefix).items()))
+       if prefix == "btn":
+               names = names + btn_additional;
index 84274987d716bc081f2dfc67cf4eebd200b4e3b4..46ed5d786ae2ccdfbde5a6282d497cc667958751 100644 (file)
@@ -6,7 +6,8 @@ LICENSE = "MIT-X"
 LIC_FILES_CHKSUM = "file://COPYING;md5=75aae0d38feea6fda97ca381cb9132eb \
                     file://libevdev/libevdev.h;endline=21;md5=7ff4f0b5113252c2f1a828e0bbad98d1"
 
-SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz"
+SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz \
+           file://determinism.patch"
 SRC_URI[md5sum] = "879631080be18526737e33b63d848039"
 SRC_URI[sha256sum] = "20d3cae4efd277f485abdf8f2a7c46588e539998b5a08c2c4d368218379d4211"