From: Petr Vorel <pvorel@suse.cz>
To: Simon Glass <sjg@chromium.org>
Cc: linux-kernel@vger.kernel.org, Joe Perches <joe@perches.com>,
Dwaipayan Ray <dwaipayanray1@gmail.com>,
Lukas Bulwahn <lukas.bulwahn@gmail.com>
Subject: Re: [PATCH v5 1/2] checkpatch: Allow passing config directory
Date: Mon, 20 Apr 2026 15:04:42 +0200 [thread overview]
Message-ID: <20260420130442.GA477476@pevik> (raw)
In-Reply-To: <CAFLszThvcm+Ht81yKUjgGXUO_OtySehBWgQLD18swTO51r0Tow@mail.gmail.com>
> Hi Petr,
> On Sat, 18 Apr 2026 at 05:04, Petr Vorel <pvorel@suse.cz> wrote:
> > checkpatch.pl searches for .checkpatch.conf in $CWD, $HOME and
> > $CWD/.scripts. Allow passing a single directory via
> > CHECKPATCH_CONFIG_DIR environment variable. This allows to directly use
> > project configuration file for projects which vendored checkpatch.pl
> > (e.g. LTP or u-boot).
> > Although it'd be more convenient for user to add --conf-dir option
> > (instead of using environment variable), code would get ugly because
> > options from the configuration file needs to be read before processing
> > command line options with Getopt::Long.
> > While at it, document directories and environment variable in help.
> > Signed-off-by: Petr Vorel <pvorel@suse.cz>
> > ---
> > Changes in v5 (all by sashiko agent):
> > https://sashiko.dev/#/patchset/20260415143636.272605-1-pvorel%40suse.cz
> > * Move warning to don't wrongly warn when $CHECKPATCH_CONFIG_DIR is not set
> > (sigh).
> > Link to v4:
> > https://lore.kernel.org/lkml/20260415143636.272605-1-pvorel@suse.cz/
> > Link to v3:
> > https://lore.kernel.org/lkml/20260408120603.54351-1-pvorel@suse.cz/
> > Link to v2:
> > https://lore.kernel.org/lkml/20260224181623.89904-1-pvorel@suse.cz/
> > Link to v1:
> > https://lore.kernel.org/lkml/20260202144221.76765-2-pvorel@suse.cz/
> > scripts/checkpatch.pl | 19 ++++++++++++++++---
> > 1 file changed, 16 insertions(+), 3 deletions(-)
> > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> > index 0492d6afc9a1f..8f7a42da12869 100755
> > --- a/scripts/checkpatch.pl
> > +++ b/scripts/checkpatch.pl
> > @@ -57,6 +57,8 @@ my %ignore_type = ();
> > my @ignore = ();
> > my $help = 0;
> > my $configuration_file = ".checkpatch.conf";
> > +my $def_configuration_dirs = ".:$ENV{HOME}:.scripts";
> > +my $env_config_dir = 'CHECKPATCH_CONFIG_DIR';
> > my $max_line_length = 100;
> > my $ignore_perl_version = 0;
> > my $minimum_perl_version = 5.10.0;
> > @@ -146,6 +148,11 @@ Options:
> > -h, --help, --version display this help and exit
> > When FILE is - read standard input.
> > +
> > +CONFIGURATION FILE
> > +Default configuration options can be stored in $configuration_file,
> > +search path: '$def_configuration_dirs' or in a directory specified by
> > +\$$env_config_dir environment variable (fallback to the default search path).
> > EOM
> > exit($exitcode);
> > @@ -237,7 +244,7 @@ sub list_types {
> > exit($exitcode);
> > }
> > -my $conf = which_conf($configuration_file);
> > +my $conf = which_conf($configuration_file, $env_config_dir, $def_configuration_dirs);
> > if (-f $conf) {
> > my @conf_args;
> > open(my $conffile, '<', "$conf")
> > @@ -1531,9 +1538,15 @@ sub which {
> > }
> > sub which_conf {
> > - my ($conf) = @_;
> > + my ($conf, $env_key, $paths) = @_;
> > + my $env_dir = $ENV{$env_key};
> > +
> > + if (defined($env_dir)) {
> > + return "$env_dir/$conf" if (-e "$env_dir/$conf");
> > + warn "$P: Can't find a readable $conf in '$env_dir', fallback to default locations: $!\n";
> Just some optional nits
> I think you should drop the $! as the errno might be stale here.
> 'falling back to' would read better
+1
> > + }
> > - foreach my $path (split(/:/, ".:$ENV{HOME}:.scripts")) {
> > + foreach my $path (split(/:/, $paths)) {
> > if (-e "$path/$conf") {
> > return "$path/$conf";
> > }
> > --
> > 2.53.0
> Reviewed-by: Simon Glass <sjg@chromium.org>
At this point I dare to add your RBT in next version.
Kind regards,
Petr
next prev parent reply other threads:[~2026-04-20 13:04 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-17 17:03 [PATCH v5 1/2] checkpatch: Allow passing config directory Petr Vorel
2026-04-17 17:03 ` [PATCH v5 2/2] checkpatch: Add option to not force /* */ for SPDX Petr Vorel
2026-04-19 23:50 ` Simon Glass
2026-04-19 23:50 ` [PATCH v5 1/2] checkpatch: Allow passing config directory Simon Glass
2026-04-20 13:04 ` Petr Vorel [this message]
2026-04-20 19:32 ` Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260420130442.GA477476@pevik \
--to=pvorel@suse.cz \
--cc=dwaipayanray1@gmail.com \
--cc=joe@perches.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lukas.bulwahn@gmail.com \
--cc=sjg@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.