]> xenbits.xensource.com Git - people/dwmw2/xen.git/commitdiff
tools/include/xen-foreign: Add SPDX identifier to generated headers
authorAnthony PERARD <anthony.perard@citrix.com>
Thu, 3 Nov 2022 11:52:01 +0000 (11:52 +0000)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Wed, 16 Nov 2022 16:15:23 +0000 (16:15 +0000)
The headers install in "/usr/include/xen/foreign/" are missing a
licence header. This patch adds a SPDX identifier to clarify that
the MIT licence is used.

The script now check that the licence of the input file is also MIT,
by checking for the presence of the SPDX identifier.

Also add information about which files are used to generate the
headers.

Reported-by: Andrew Cooper <Andrew.Cooper3@citrix.com>
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Release-acked-by: Henry Wang <Henry.Wang@arm.com>
tools/include/xen-foreign/mkheader.py

index fb268f0dcecb275094e0d62b519e9c9e6b21232c..081b57f842a2de0eaa8757889c3b133724977648 100644 (file)
@@ -1,5 +1,7 @@
 #!/usr/bin/python
 
+from __future__ import print_function
+
 import sys, re;
 from structs import unions, structs, defines;
 
@@ -114,23 +116,39 @@ input  = "";
 output = "";
 fileid = re.sub("[-.]", "_", "__FOREIGN_%s__" % outfile.upper());
 
-# read input header files
 for name in infiles:
     f = open(name, "r");
+
+    # Sanity check the licence of the input file(s)
+    line = f.readline()
+    if line != "/* SPDX-License-Identifier: MIT */\n":
+        print("Error: %s %s Missing or unexpected SPDX tag '%s'" %
+              (sys.argv[0], name, line.strip()), file=sys.stderr)
+        exit(1)
+
     input += f.read();
     f.close();
 
+# replace path in "infiles" by path in '/usr/include' to avoid exposing the
+# build directory path in the generated headers.
+headers_name_list = ""
+public_headers_location = 'xen/include/public/'
+for name in infiles:
+    i = name.rindex(public_headers_location)
+    i += len(public_headers_location)
+    headers_name_list += " xen/%s" % (name[i:])
+
 # add header
-output += """
+output += """/* SPDX-License-Identifier: MIT */
 /*
  * public xen defines and struct for %s
- * generated by %s -- DO NOT EDIT
+ * generated from%s by %s -- DO NOT EDIT
  */
 
 #ifndef %s
 #define %s 1
 
-""" % (arch, sys.argv[0], fileid, fileid)
+""" % (arch, headers_name_list, sys.argv[0], fileid, fileid)
 
 if arch in header:
     output += header[arch];