[dpdk-dev] [PATCH v5] devtools: add new SPDX license compliance checker

Thomas Monjalon thomas at monjalon.net
Fri Jul 31 00:06:23 CEST 2020


15/07/2020 01:21, Stephen Hemminger:
> Simple script to look for drivers and scripts that
> are missing requires SPDX header.
> 
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
[...]
> +#! /bin/sh
> +# SPDX-License-Identifier: BSD-3-Clause
> +# Copyright 2020 Microsoft Corporation
> +#
> +# Produce a list of files with incorrect license tags
> +
> +errors=0
> +warnings=0
> +quiet=false
> +verbose=false
> +
> +print_usage () {
> +    echo "usage: $(basename $0) [-q] [-v]"
> +    exit 1
> +}
> +
> +check_spdx() {
> +    if  $verbose;  then
> +	echo "Files without SPDX License"
> +	echo "--------------------------"
> +    fi
> +    git grep -L SPDX-License-Identifier -- \
> +	':^.git*' ':^.ci/*' ':^.travis.yml' \
> +	':^README' ':^MAINTAINERS' ':^VERSION' ':^ABI_VERSION' \
> +	':^*/Kbuild' ':^*/README' \
> +	':^license/' ':^config/' ':^buildtools/' \
> +	':^*.cocci' ':^*.abignore' \
> +	':^*.def' ':^*.map' ':^*.ini' ':^*.data' ':^*.cfg' ':^*.txt' \
> +	':^*.svg' ':^*.png'\

I don't agree with this list of files.
But I guess we can start with that and be more strict in future.

> +	> $tmpfile
> +
> +    errors=$(wc -l < $tmpfile)
> +    $quiet || cat $tmpfile
> +}
> +
> +check_boilerplate() {
> +    if $verbose ; then
> +	echo
> +	echo "Files with redundant license text"
> +	echo "---------------------------------"
> +    fi
> +
> +    git grep -l Redistribution -- \
> +	':^license/' ':^/devtools/check-spdx-tag.sh' > $tmpfile
> +
> +    warnings=$(wc -l <$tmpfile)
> +    $quiet || cat $tmpfile
> +}
> +
> +while getopts qvh ARG ; do
> +	case $ARG in
> +		q ) quiet=true ;;
> +		v ) verbose=true ;;
> +		h ) print_usage ; exit 0 ;;
> +		? ) print_usage ; exit 1 ;;
> +	esac
> +done
> +shift $(($OPTIND - 1))
> +
> +tmpfile=$(mktemp)

Should be mktemp -t dpdk.checkspdx.XXXXXX
to keep namespace of our temp files. Will fix.

> +trap 'rm -f -- "$tmpfile"' INT TERM HUP EXIT

Why catching HUP signal?


Applied, thanks





More information about the dev mailing list