Blame patch

Packit Service 4b33e2
RHBZ: #1729039
Packit Service 4b33e2
Upstream status: RHEL >= 8.0.0 only
Packit Service 4b33e2
Packit Service 4b33e2
Add modinfo -F vermagic KMOD to the ksc-report, namely the section
Packit Service 4b33e2
identifier.
Packit Service 4b33e2
Packit Service 4b33e2
Before: {kmod.ko}
Packit Service 4b33e2
Now:    {kmod.ko@4.18.0-48.el8.x86_64 SMP mod_unload modversions}
Packit Service 4b33e2
Packit Service 4b33e2
This will help to determine against which kernel were modules
Packit Service 4b33e2
compiled against. This is a non-intrusive change that does not
Packit Service 4b33e2
alter the existing structure of ksc report and requires only minor
Packit Service 4b33e2
changes to existing ksc parsers/lexers.
Packit Service 4b33e2
Packit Service 4b33e2
Signed-off-by: Čestmír Kalina <ckalina@redhat.com>
Packit Service 4b33e2
---
Packit Service 4b33e2
 ksc.py | 13 ++++++++++++-
Packit Service 4b33e2
 1 file changed, 12 insertions(+), 1 deletion(-)
Packit Service 4b33e2
Packit Service 4b33e2
diff --git a/ksc.py b/ksc.py
Packit Service 4b33e2
index 2664d26..57df894 100755
Packit Service 4b33e2
--- a/ksc.py
Packit Service 4b33e2
+++ b/ksc.py
Packit Service 4b33e2
@@ -63,6 +63,7 @@ class Ksc(object):
Packit Service 4b33e2
         self.releasedir = None
Packit Service 4b33e2
         self.symvers = None
Packit Service 4b33e2
         self.arch = None
Packit Service 4b33e2
+        self.vermagic = {}
Packit Service 4b33e2
         if mock:
Packit Service 4b33e2
             self.releasename = '7.0'
Packit Service 4b33e2
         else:
Packit Service 4b33e2
@@ -77,6 +78,7 @@ class Ksc(object):
Packit Service 4b33e2
         self.justifications = {}
Packit Service 4b33e2
         self.matchdata = None
Packit Service 4b33e2
         self.total = None
Packit Service 4b33e2
+        self.vermagic = {}
Packit Service 4b33e2
Packit Service 4b33e2
     def main(self, mock_options=None):
Packit Service 4b33e2
         """
Packit Service 4b33e2
@@ -401,7 +403,10 @@ class Ksc(object):
Packit Service 4b33e2
Packit Service 4b33e2
                 f.write(command)
Packit Service 4b33e2
                 for ko_file in self.all_symbols_used:
Packit Service 4b33e2
-                    f.write("\n{%s}\n\n" % os.path.basename(ko_file))
Packit Service 4b33e2
+                    f.write("\n{%s@%s}\n\n" % (
Packit Service 4b33e2
+                        os.path.basename(ko_file),
Packit Service 4b33e2
+                        self.vermagic[ko_file].strip()
Packit Service 4b33e2
+                    ))
Packit Service 4b33e2
                     self.write_result(f, ko_file)
Packit Service 4b33e2
Packit Service 4b33e2
             if not self.mock:
Packit Service 4b33e2
@@ -544,6 +549,12 @@ class Ksc(object):
Packit Service 4b33e2
Packit Service 4b33e2
         self.defined_symbols[path] = set()
Packit Service 4b33e2
Packit Service 4b33e2
+        try:
Packit Service 4b33e2
+            self.vermagic[path] = run("modinfo -F vermagic '%s'" % path)
Packit Service 4b33e2
+        except Exception as e:
Packit Service 4b33e2
+            print(e)
Packit Service 4b33e2
+            sys.exit(1)
Packit Service 4b33e2
+
Packit Service 4b33e2
         try:
Packit Service 4b33e2
             out = run("nm '%s'" % path)
Packit Service 4b33e2
         except Exception as e:
Packit Service 4b33e2
-- 
Packit Service 4b33e2
2.21.0