]> git.baikalelectronics.ru Git - kernel.git/commitdiff
checkpatch: use python3 to find codespell dictionary
authorSagar Patel <sagarmp@cs.unc.edu>
Wed, 23 Mar 2022 23:06:05 +0000 (16:06 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 Mar 2022 02:00:34 +0000 (19:00 -0700)
Commit ef51bd5cf6f8 ("checkpatch: get default codespell dictionary path
from package location") introduced the ability to search for the
codespell dictionary rather than hardcoding its path.

codespell requires Python 3.6 or above, but on some systems, the python
executable is a Python 2.7 interpreter.  In this case, searching for the
dictionary fails, subsequently making codespell fail:

  No codespell typos will be found - file '/usr/share/codespell/dictionary.txt': No such file or directory

So, use python3 to remove ambiguity.

In addition, when searching for dictionary.txt, do not check if the
codespell executable exists since,

 - checkpatch.pl only uses dictionary.txt, not the codespell
   executable.

 - codespell can be installed via a Python package manager, in which
   case the codespell executable may not be present in a typical $PATH,
   but a dictionary does exist.

Link: https://lkml.kernel.org/r/20220309180048.147672-1-sagarmp@cs.unc.edu
Signed-off-by: Sagar Patel <sagarmp@cs.unc.edu>
Reviewed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Cc: Joe Perches <joe@perches.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
scripts/checkpatch.pl

index 2653177f52d90254a2a8531c76c0e81ebb0c1059..577e029987011ebc7a24f6bf4ced4b17e9bdcdec 100755 (executable)
@@ -334,7 +334,7 @@ if ($user_codespellfile) {
 } elsif (!(-f $codespellfile)) {
        # If /usr/share/codespell/dictionary.txt is not present, try to find it
        # under codespell's install directory: <codespell_root>/data/dictionary.txt
-       if (($codespell || $help) && which("codespell") ne "" && which("python") ne "") {
+       if (($codespell || $help) && which("python3") ne "") {
                my $python_codespell_dict = << "EOF";
 
 import os.path as op
@@ -344,7 +344,7 @@ codespell_file = op.join(codespell_dir, 'data', 'dictionary.txt')
 print(codespell_file, end='')
 EOF
 
-               my $codespell_dict = `python -c "$python_codespell_dict" 2> /dev/null`;
+               my $codespell_dict = `python3 -c "$python_codespell_dict" 2> /dev/null`;
                $codespellfile = $codespell_dict if (-f $codespell_dict);
        }
 }