The Linux kernel UAPI header files are licensed under /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ Allows files with this license to be included in coreboot. For more details about this particular license: https://www.kernel.org/doc/html/v4.17/process/license-rules.html https://spdx.org/licenses/Linux-syscall-note.html Change-Id: I4f0f8d36c637a66a6999a18321fdbc4c42d5751e Signed-off-by: Rajat Jain <rajatja@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/39887 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
		
			
				
	
	
		
			143 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| # This file is part of the coreboot project.
 | |
| #
 | |
| # Copyright (C) 2010 coresystems GmbH
 | |
| # Copyright (C) 2016 Google Inc.
 | |
| #
 | |
| # This program is free software; you can redistribute it and/or modify
 | |
| # it under the terms of the GNU General Public License as published by
 | |
| # the Free Software Foundation; version 2 of the License.
 | |
| #
 | |
| # This program is distributed in the hope that it will be useful,
 | |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| # GNU General Public License for more details.
 | |
| #
 | |
| #
 | |
| # DESCR: Check that files in have valid license headers
 | |
| # $1 is an optional command line parameter containing directories to check
 | |
| 
 | |
| # regex list of files and directories to exclude from the search
 | |
| HEADER_EXCLUDED="\
 | |
| ^src/lib/gnat/|\
 | |
| ^src/vendorcode/|\
 | |
| ^util/amdtools/example_input/|\
 | |
| ^util/cbfstool/lzma/|\
 | |
| ^util/kconfig/|\
 | |
| Kconfig|\
 | |
| \<COPYING\>|\
 | |
| \<LICENSE\>|\
 | |
| \<README\>|\
 | |
| Changelog|\
 | |
| TODO|\
 | |
| EXAMPLE|\
 | |
| NEWS|\
 | |
| ChangeLog|\
 | |
| Dockerfile|\
 | |
| \.in$|\
 | |
| \.[18]$|\
 | |
| \.md$|\
 | |
| \.wiki$|\
 | |
| \.xxdump$|\
 | |
| \.spec$|\
 | |
| \.txt$|\
 | |
| \.jpg$|\
 | |
| \.cksum$|\
 | |
| \.bin$|\
 | |
| \.vbt$|\
 | |
| \.hex$|\
 | |
| \.patch$|\
 | |
| _shipped$|\
 | |
| /microcode-[^/]*.h$|\
 | |
| /sdram-.*\.inc$|\
 | |
| Makefile\.inc|\
 | |
| \.fmd|\
 | |
| \.cb|\
 | |
| \.cfg$|\
 | |
| \.spd|\
 | |
| config|\
 | |
| cmos\.layout|\
 | |
| cmos\.default\
 | |
| "
 | |
| 
 | |
| HEADER_TEXT="license header"
 | |
| 
 | |
| #space separated list of directories to test
 | |
| if [ "$1" = "" ]; then
 | |
| 	HEADER_DIRS="src util"
 | |
| else
 | |
| 	HEADER_DIRS="$1"
 | |
| fi
 | |
| 
 | |
| if [ "$2" = "SPDX_ONLY" ]; then
 | |
| 	SPDX_ONLY=1
 | |
| 	HEADER_TEXT="SPDX identifier"
 | |
| fi
 | |
| 
 | |
| LC_ALL=C export LC_ALL
 | |
| 
 | |
| #get initial list from git, removing HEADER_EXCLUDED files.
 | |
| #make a copy to check for the old style header later.
 | |
| headerlist=$(git ls-files $HEADER_DIRS | egrep -v "($HEADER_EXCLUDED)")
 | |
| 
 | |
| #update headerlist by removing files that match the license string
 | |
| check_for_license() {
 | |
| 	if [ -n "$headerlist" ] && [ -z "$2" ]; then
 | |
| 		headerlist="$(grep -iL "$1" $headerlist 2>/dev/null)"
 | |
| 	elif [ -n "$headerlist" ]; then
 | |
| 		p1list="$(grep -il "$1" $headerlist 2>/dev/null)"
 | |
| 		p2list="$(grep -il "$2" $headerlist 2>/dev/null)"
 | |
| 
 | |
| 		# Make list of files that were in both previous lists
 | |
| 		pbothlist="$(echo $p1list $p2list | tr ' ' "\n" | \
 | |
| 			sort | uniq -d)"
 | |
| 
 | |
| 		# Remove all files that were in both of the previous lists
 | |
| 		# Note that this is unstable if we ever get any filenames
 | |
| 		# with spaces.
 | |
| 		headerlist="$(echo $headerlist $pbothlist | tr ' ' "\n" | \
 | |
| 			sort | uniq -u)"
 | |
| 	fi
 | |
| }
 | |
| 
 | |
| #search the files for license headers
 | |
| check_for_license 'SPDX-License-Identifier: Apache-2.0'
 | |
| check_for_license 'SPDX-License-Identifier: BSD-3-Clause'
 | |
| check_for_license 'SPDX-License-Identifier: GPL-2.0-only'
 | |
| check_for_license 'SPDX-License-Identifier: GPL-2.0-or-later'
 | |
| check_for_license 'SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note'
 | |
| check_for_license 'SPDX-License-Identifier: GPL-3.0-only'
 | |
| check_for_license 'SPDX-License-Identifier: GPL-3.0-or-later'
 | |
| check_for_license 'SPDX-License-Identifier: ISC'
 | |
| check_for_license 'SPDX-License-Identifier: MIT'
 | |
| check_for_license 'SPDX-License-Identifier: X11'
 | |
| 
 | |
| # This is 4 clause ("with advertising") but the University of Berkeley
 | |
| # declared that 4th clause void, see
 | |
| # ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
 | |
| # With this, BSD-4-Clause-UC becomes GPLv2 compatible, and so SPDX doesn't
 | |
| # differentiate between this license with or without advertising.
 | |
| check_for_license 'SPDX-License-Identifier: BSD-4-Clause-UC'
 | |
| 
 | |
| if [ ! "${SPDX_ONLY}" = "1" ]; then
 | |
| check_for_license "under the terms of the GNU General Public License" \
 | |
| 		"WITHOUT ANY WARRANTY"
 | |
| check_for_license 'IS PROVIDED .*"AS IS"'
 | |
| check_for_license 'IS DISTRIBUTED .*"AS IS"'
 | |
| check_for_license "IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE"
 | |
| check_for_license '"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES'
 | |
| check_for_license 'assumes any liability or responsibility for the use'
 | |
| check_for_license 'THE AUTHORS DISCLAIM.*ALL WARRANTIES WITH REGARD TO THIS SOFTWARE'
 | |
| check_for_license 'No license required'
 | |
| check_for_license 'GNU Lesser General Public'
 | |
| fi
 | |
| 
 | |
| for file in $headerlist; do
 | |
| 	# Verify the file exists, and has content that requires a header
 | |
| 	# This assumes that a file that has 4 lines or fewer is not notable
 | |
| 	# enough to require a license.
 | |
| 	if [ -f "$file" ] && [ "$(wc -l < "$file")" -gt 4 ]; then
 | |
| 		echo "$file has no recognized ${HEADER_TEXT}."
 | |
| 	fi
 | |
| done
 |