Re: [PATCH v2] checkpatch: Allow to pass config directory
From: Simon Glass
Date: Thu Mar 26 2026 - 13:55:34 EST
Hi Petr,
On Tue, 24 Feb 2026 at 11:20, Petr Vorel <pvorel@xxxxxxx> wrote:
>
> checkpatch.pl searches for .checkpatch.conf in $HOME and .scripts
> (in current working directory). Allow to pass directory via
How about: Allow passing a directory
> 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).
>
> While at it, document all directories in help.
>
> Suggested-by: Joe Perches <joe@xxxxxxxxxxx>
> Signed-off-by: Petr Vorel <pvorel@xxxxxxx>
> ---
> NOTE: if you don't like the way how directories are printed in help
> (user's home directory path instead of $HOME) I can change it.
>
> $ ./scripts/checkpatch.pl -h
> ...
> When FILE is - read standard input.
>
> CONFIGURATION FILE
>
> Script searches for a configuration file .checkpatch.conf in path:
> $CHECKPATCH_CONFIG_DIR:.:/home/foo:.scripts
It looks like this can be a colon-separated list of dirs - perhaps
document that, if intended?
>
> Link to v1:
> https://lore.kernel.org/lkml/20260202144221.76765-1-pvorel@xxxxxxx/
> https://lore.kernel.org/lkml/20260202144221.76765-2-pvorel@xxxxxxx/
>
> Changes v1->v2:
> * Use environment variable instead of --conf-dir option (Joe Perches)
> NOTE: I'd slightly prefer using --conf-dir (more convenient for user).
Agreed.
> * squash documentation into this commit
>
> Kind regards,
> Petr
>
> scripts/checkpatch.pl | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index bec7930cdd66..e47fec115ee7 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,10 @@ Options:
> -h, --help, --version display this help and exit
>
> When FILE is - read standard input.
> +
> +CONFIGURATION FILE
> +Script searches for a configuration file $configuration_file in path:
> +\$$env_config_dir:$def_configuration_dirs
> EOM
>
> exit($exitcode);
> @@ -1531,8 +1537,10 @@ sub which {
>
> sub which_conf {
> my ($conf) = @_;
> + my $paths = $ENV{$env_config_dir} . ':' if exists($ENV{$env_config_dir});
How about splitting it so that the variable cannot be undef ?
my $paths = $def_configuration_dirs;
$paths = "$ENV{$env_config_dir}:$paths" if exists($ENV{$env_config_dir});
> + $paths .= $def_configuration_dirs;
>
> - foreach my $path (split(/:/, ".:$ENV{HOME}:.scripts")) {
> + foreach my $path (split(/:/, $paths)) {
> if (-e "$path/$conf") {
> return "$path/$conf";
> }
> --
> 2.51.0
>
>
Regards,
Simon