#! /bin/sh # SPDX-License-Identifier: Apache-2.0 # # (c) 2019, Google progname="${0##*/}" USAGE="USAGE: ${progname} < kernel_build_error_log ${progname} kernel_build_error_log Add MODULE_LICENSE to all the files. Must be performed in the root directory." if [ X"--help" = X"${1}" -o X"{-h}" = X"${1}" ]; then echo "${USAGE}" >&2 exit fi INPUT= if [ 1 = ${#} ]; then INPUT=${1} shift fi if [ 0 != ${#} ]; then echo "Unexpected Argument: ${*}" >&2 echo >&2 echo "${USAGE}" >&2 exit 1 fi convert_to_module_name() { echo "${1##*/}" | sed 's@[-_]@ @g s@ *@ @g s@^btfm @BTFM @ s@^msm @MSM @ s@ dma\( \|$\)@ DMA\1@g s@ irq\( \|$\)@ IRQ\1@g s@ io\( \|$\)@ I/O\1@g s@ mem\( \|$\)@ memory\1@g s@ hw\( \|$\)@ hardware\1@g s@ jpeg\( \|$\)@ JPEG\1@g s@ mgr$@ manager@ s@ util$@ utilities@ s@\(^\| \)a@\1A@g s@\(^\| \)b@\1B@g s@\(^\| \)c@\1C@g s@\(^\| \)d@\1D@g s@\(^\| \)e@\1E@g s@\(^\| \)f@\1F@g s@\(^\| \)g@\1G@g s@\(^\| \)h@\1H@g s@\(^\| \)i@\1I@g s@\(^\| \)j@\1J@g s@\(^\| \)k@\1K@g s@\(^\| \)l@\1L@g s@\(^\| \)m@\1M@g s@\(^\| \)n@\1N@g s@\(^\| \)o@\1O@g s@\(^\| \)p@\1P@g s@\(^\| \)q@\1Q@g s@\(^\| \)r@\1R@g s@\(^\| \)s@\1S@g s@\(^\| \)t@\1T@g s@\(^\| \)u@\1U@g s@\(^\| \)v@\1V@g s@\(^\| \)w@\1W@g s@\(^\| \)x@\1X@g s@\(^\| \)y@\1Y@g s@\(^\| \)z@\1Z@g' } sed -n \ 's/WARNING: modpost: missing MODULE_LICENSE() in \(.*\)[.]o$/\1/p' \ ${INPUT} | sort -u | while read f; do F=${f}.c if [ ! -f "${F}" ]; then F=${f%${f##*/}}`echo ${f##*/} | tr -- - _`.c if [ ! -f "${F}" ]; then F=${F%.c}_core.c if [ ! -f "${F}" ]; then F=${f%${f##*/}}`echo ${f##*/} | tr _ -`.c if [ ! -f "${F}" ]; then F=${F%.c}_core.c if [ ! -f "${F}" ]; then echo WARNING: ${f}.c not found, needs a MODULE_LICENSE >&2 continue fi fi fi fi fi if grep MODULE_LICENSE ${F} >/dev/null 2>/dev/null; then echo INFO: MODULE_LICENSE already present in ${F} >&2 continue fi module="`convert_to_module_name ${f}`" if [ -z "${module}" ]; then echo ERROR: ${f} can not be converted into a module name >&2 continue fi sed -i "\${ a \\ \\ MODULE_LICENSE(\"GPL v2\");\\ MODULE_DESCRIPTION(\"${module}\"); }" ${F} && echo INFO: Added MODULE_LICENSE to ${F} >&2 || echo ERROR: Failed to add MODULE_LICENSE to ${F} >&2 done