lkml.org 
[lkml]   [2022]   [Mar]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    SubjectRe: [PATCH] checkpatch: use python3 to find codespell dictionary
    From
    Hi Sagar,

    On 08/03/2022 04:55, Sagar Patel wrote:
    > Commit 0ee3e7b8893e ("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
    > binary 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 the dictionary, do not check if the
    > codespell binary exists since codespell can be installed via a Python
    > package manager. In this case, a codespell binary is not exported in
    > $PATH, but a dictionary does exist.

    Installing codespell via pip will place the 'codespell' executable under
    the user's $HOME/.local/bin/ and it expects that it is in PATH:

    # pip install codespell
    Defaulting to user installation because normal site-packages is not writeable
    Collecting codespell
    Downloading codespell-2.1.0-py3-none-any.whl (177 kB)
    |████████████████████████████████| 177 kB 1.9 MB/s
    Installing collected packages: codespell
    WARNING: The script codespell is installed in '/home/my_user/.local/bin' which is not on PATH.
    Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

    Having said that, the executable itself is not used by checkpatch.pl, so

    Reviewed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>

    >
    > Signed-off-by: Sagar Patel <sagarmp@cs.unc.edu>
    > ---
    > scripts/checkpatch.pl | 4 ++--
    > 1 file changed, 2 insertions(+), 2 deletions(-)
    >
    > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
    > index b01c36a15d9d..46302e074b18 100755
    > --- a/scripts/checkpatch.pl
    > +++ b/scripts/checkpatch.pl
    > @@ -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);
    > }
    > }

    --
    Péter

    \
     
     \ /
      Last update: 2022-03-08 09:00    [W:5.465 / U:0.216 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site