On Fri, 12 Jun 2020 11:05:27 +0200 Gaƫtan Rivet <gr...@u256.net> wrote:
> On 24/02/20 13:01 -0800, Stephen Hemminger wrote: > > Simple script to look for drivers and scripts that > > are missing requires SPDX header. > > > > Update the contribution guidelines to indicate that SPDX license > > identfier is required for this project. > > > > Signed-off-by: Stephen Hemminger <step...@networkplumber.org> > > --- > > v4 - add MAINTAINERS entry > > update coding style document > > change name of script > > > > MAINTAINERS | 1 + > > devtools/check-spdx-tag.sh | 77 ++++++++++++++++++++++++ > > doc/guides/contributing/coding_style.rst | 9 ++- > > 3 files changed, 85 insertions(+), 2 deletions(-) > > create mode 100755 devtools/check-spdx-tag.sh > > > > diff --git a/MAINTAINERS b/MAINTAINERS > > index 3d5e8d1104b2..6b0e042c5fbb 100644 > > --- a/MAINTAINERS > > +++ b/MAINTAINERS > > @@ -96,6 +96,7 @@ F: devtools/check-maintainers.sh > > F: devtools/check-forbidden-tokens.awk > > F: devtools/check-git-log.sh > > F: devtools/check-includes.sh > > +F: devtools/check-spdx-tag.sh > > F: devtools/check-symbol-maps.sh > > F: devtools/checkpatches.sh > > F: devtools/get-maintainer.sh > > diff --git a/devtools/check-spdx-tag.sh b/devtools/check-spdx-tag.sh > > new file mode 100755 > > index 000000000000..b1b8cdba4e4e > > --- /dev/null > > +++ b/devtools/check-spdx-tag.sh > > @@ -0,0 +1,77 @@ > > +#! /bin/sh > > +# SPDX-License-Identifier: BSD-3-Clause > > +# Copyright (c) 2019 Microsoft Corporation > > +# > > +# Produce a list of files with incorrect license tags > > + > > +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/' ':^doc/' ':^config/' ':^buildtools/' \ > > + ':^*.cocci' ':^*.abignore' \ > > + ':^*.def' ':^*.map' ':^*.ini' ':^*.data' ':^*.cfg' ':^*.txt' \ > > + > $tmpfile > > I find it easier to maintain an exclude list by setting a variable and > generating the relevant parameters: > > excludes='.git* .ci/* .travis.yml */Kbuild */README' > exclude_opt="" > set -f > for pattern in $excludes; do > exclude_opt="$exclude_opt ':^${pattern}'" > done > set +f > printf "\"%s\"\n" "$exclude_opt" > > However I recognize that means dealing with contrarian globbing issues in > shells, > so it comes at a price. But I find changing the exclude list much easier that > way. This is no easier to maintain. Doing more string stuff in shell is not worth it. If gets to be too much trouble, will consider moving to python3.