tools/include/xen-foreign: Add SPDX identifier to generated headers

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>
This commit is contained in:
Anthony PERARD authored and Andrew Cooper committed 2022-11-16 16:15:23 +00:00
1 parent 224dab9416
commit c62748312e
1 file changed
+22 -4
+22 -4
View 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];
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.