get_maintainer: lazy load JSON::PP only when --json is used
PATCH 1/1 get_maintainer: lazy load JSON::PP only when --json is used
After commit 09d8b39563e8 ("get_maintainer: add --json output mode"), I can no longer use get_maintainer.pl; it fails at compile time if JSON::PP is not installed even when --json is not requested.
This module is only needed with the --json option. Use "require" to load this module dynamically inside the "if ($json)" block instead.
--- scripts/get_maintainer.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
scripts/get_maintainer.pl +1 -1
@@ -21,7 +21,6 @@ use Cwd; use File::Find; use File::Spec::Functions; use open qw(:std :encoding(UTF-8)); -use JSON::PP; my $cur_path = fastgetcwd() . '/'; my $lk_path = "./";
@@ -685,6 +684,7 @@ if ($json) { $result{web} = \@web if ($web); $result{bug} = \@bug if ($bug); + require JSON::PP; my $json_encoder = JSON::PP->new->canonical->utf8; print($json_encoder->encode(\%result) . "\n"); } else {
Signature · 1 line
2.55.0
Joe Perches
maintainerQuoted 2 lines · Oleg Nesterov
After commit
09d8b39563e8("get_maintainer: add --json output mode"), I can no longer use get_maintainer.pl; it fails at compile time
?
Just verifying that you mean when using perl directly and not something like perlcc.
Quoted 1 line
if
JSON::PPis not installed even when --json is not requested.
What version of perl are you using?
I believe JSON is bundled since perl 5.14
Quoted 2 lines
This module is only needed with the --json option. Use "require" to load this module dynamically inside the "if ($json)" block instead.
The patch may be sensible but could fail the same way if you used the --json option with your version.
scripts/get_maintainer.pl
Quoted 1 line
scripts/get_maintainer.pl +0
-0
[]
scripts/get_maintainer.pl if ($json) { · line 687
Quoted 13 lines
scripts/get_maintainer.pl +1
-1@@ -21,7 +21,6 @@ use Cwd; use File::Find; use File::Spec::Functions; use open qw(:std :encoding(UTF-8)); -use JSON::PP; my $cur_path = fastgetcwd() . '/'; my $lk_path = "./";@@ -685,6 +684,7 @@ if ($json) { $result{web} = \@web if ($web); $result{bug} = \@bug if ($bug); + require JSON::PP;
style nit:
I likely would have placed this require immediately after the if ($json) {
Quoted 5 lines
scripts/get_maintainer.pl +0
-0my $json_encoder = JSON::PP->new->canonical->utf8; print($json_encoder->encode(\%result) . "\n"); } else {```
Quoted 9 lines · Joe Perches
Quoted 2 lines · Oleg Nesterov
After commit
09d8b39563e8("get_maintainer: add --json output mode"), I can no longer use get_maintainer.pl; it fails at compile time?
Just verifying that you mean when using perl directly and not something like perlcc.
Yes,
Quoted 3 lines
Quoted 1 line
if
JSON::PPis not installed even when --json is not requested.What version of perl are you using?
v5.42.3
Quoted 1 line
I believe JSON is bundled since perl 5.14
Well, JSON::PP is not installed on my Fedora release 44
Quoted 5 lines
Quoted 2 lines
This module is only needed with the --json option. Use "require" to load this module dynamically inside the "if ($json)" block instead.
The patch may be sensible but could fail the same way if you used the --json option with your version.
Of course, "./scripts/get_maintainer.pl --json ..." will still fail the same way without JSON::PP. But with this patch get_maintainer.pl works without the --json option.
Quoted 14 lines
scripts/get_maintainer.pl
Quoted 1 line
scripts/get_maintainer.pl +0
-0[]
Quoted 12 lines
scripts/get_maintainer.pl +0
-1@@ -21,7 +21,6 @@ use Cwd; use File::Find; use File::Spec::Functions; use open qw(:std :encoding(UTF-8)); -use JSON::PP; my $cur_path = fastgetcwd() . '/'; my $lk_path = "./";@@ -685,6 +684,7 @@ if ($json) { $result{web} = \@web if ($web); $result{bug} = \@bug if ($bug);
Quoted 5 lines
scripts/get_maintainer.pl if ($json) { · line 687
Quoted 1 line
scripts/get_maintainer.pl +1
-0+ require JSON::PP;style nit:
I likely would have placed this require immediately after the if ($json) {
I am fine either way... should I send V2 ?
Oleg.
Joe Perches
maintainerQuoted 8 lines · Oleg Nesterov
Quoted 1 line · Joe Perches
On Fri, 2026-10-30 at 16:43 +0100, Oleg Nesterov wrote:
After commit
09d8b39563e8("get_maintainer: add --json output mode"),Quoted 4 lines
Quoted 1 line
I can no longer use get_maintainer.pl; it fails at compile time
Just verifying that you mean when using perl directly and not something like perlcc.
Quoted 7 lines
Yes,
Quoted 2 lines
Quoted 1 line
if
JSON::PPis not installed even when --json is not requested.What version of perl are you using?
v5.42.3
Quoted 1 line
I believe JSON is bundled since perl 5.14
Well,
JSON::PPis not installed on my Fedora release 44
Hmm. Odd.
Quoted 8 lines
Quoted 4 lines
Quoted 2 lines
This module is only needed with the --json option. Use "require" to load this module dynamically inside the "if ($json)" block instead.
The patch may be sensible but could fail the same way if you used the --json option with your version.
Of course, "
./scripts/get_maintainer.pl--json ..." will still fail the same way withoutJSON::PP. But with this patch get_maintainer.pl works without the --json option.
What does that failure output?
Quoted 14 lines
Quoted 14 lines
scripts/get_maintainer.pl
Quoted 1 line
scripts/get_maintainer.pl +0
-0[]
Quoted 12 lines
scripts/get_maintainer.pl +0
-1@@ -21,7 +21,6 @@ use Cwd; use File::Find; use File::Spec::Functions; use open qw(:std :encoding(UTF-8)); -use JSON::PP; my $cur_path = fastgetcwd() . '/'; my $lk_path = "./";@@ -685,6 +684,7 @@ if ($json) { $result{web} = \@web if ($web); $result{bug} = \@bug if ($bug);
Quoted 6 lines
Quoted 4 lines
scripts/get_maintainer.pl if ($json) { · line 687
Quoted 1 line
scripts/get_maintainer.pl +1
-0+ require JSON::PP;style nit:
I likely would have placed this require immediately after the if ($json) {I am fine either way... should I send V2 ?
Dunno. Depending on the current failure output
maybe adding something like the below is better:
use Module::Load::Conditional qw(check_install);
if (!check_install(module => 'JSON:PP')) {
die "$P: --json not available - missing perl module JSON:PP\n";
}Quoted 5 lines · Joe Perches
Quoted 3 lines · Oleg Nesterov
Quoted 2 lines · Joe Perches
Quoted 2 lines
This module is only needed with the --json option. Use "require" to load this module dynamically inside the "if ($json)" block instead.
Quoted 8 lines
Quoted 6 lines
Quoted 2 lines
The patch may be sensible but could fail the same way if you used the --json option with your version.
Of course, "
./scripts/get_maintainer.pl--json ..." will still fail the same way withoutJSON::PP. But with this patch get_maintainer.pl works without the --json option.What does that failure output?
Hmm. I am not sure I understand you concerns. Let me add more details. So, I think this patch makes no difference if JSON::PP is installed. Do you agree?
Now lets see what happens on my machine where JSON::PP is NOT installed. Without --json:
Before this patch:
$ ./scripts/get_maintainer.pl ./scripts/get_maintainer.pl Can't locate JSON/PP.pm in @INC (you may need to install the JSON::PP module) (@INC entries checked: /usr/local/lib64/perl5/5.42 /usr/local/share/perl5/5.42 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./scripts/get_maintainer.pl line 24. BEGIN failed--compilation aborted at ./scripts/get_maintainer.pl line 24.
After:
$ ./scripts/get_maintainer.pl ./scripts/get_maintainer.pl Joe Perches <[email protected]> (maintainer:GET_MAINTAINER SCRIPT) [email protected] (open list)
With --json:
Before this patch:
$ ./scripts/get_maintainer.pl --json ./scripts/get_maintainer.pl Can't locate JSON/PP.pm in @INC (you may need to install the JSON::PP module) (@INC entries checked: /usr/local/lib64/perl5/5.42 /usr/local/share/perl5/5.42 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./scripts/get_maintainer.pl line 24. BEGIN failed--compilation aborted at ./scripts/get_maintainer.pl line 24.
After:
$ ./scripts/get_maintainer.pl --json ./scripts/get_maintainer.pl Can't locate JSON/PP.pm in @INC (you may need to install the JSON::PP module) (@INC entries checked: /usr/local/lib64/perl5/5.42 /usr/local/share/perl5/5.42 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./scripts/get_maintainer.pl line 665.
Same failure. Sorry, I don't understand what is not clear for you :(
Quoted 8 lines
Dunno. Depending on the current failure output
maybe adding something like the below is better:use
Module::Load::Conditionalqw(check_install);if (!check_install(module => 'JSON:PP')) { die "$P: --json not available - missing perl module JSON:PP\n"; }
But why? Why make get_maintainer.pl depend on yet another module? FYI, on my Fedora 44
$ perl -we 'use Module::Load::Conditional qw(check_install);' Can't locate Module/Load/Conditional.pm in @INC (you may need to install the Module::Load::Conditional module) (@INC entries checked: /usr/local/lib64/perl5/5.42 /usr/local/share/perl5/5.42 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at -e line 1. BEGIN failed--compilation aborted at -e line 1.
And for what ???
If we want to "improve" the errmsg, we can use "eval { require JSON::PP; }; die ... if $@" but this looks absolutely pointless to me.
Let me repeat. If JSON::PP is not installed, then get_maintainer.pl with --json:
fails the same way before or after this patch, I see nothing to improve.
without --json:
fails before this patch, works after this patch
Sorry, I really can't understand your concerns.
Oleg.
Quoted 26 lines · Oleg Nesterov
Quoted 8 lines · Joe Perches
Dunno. Depending on the current failure output
maybe adding something like the below is better:use
Module::Load::Conditionalqw(check_install);if (!check_install(module => 'JSON:PP')) { die "$P: --json not available - missing perl module JSON:PP\n"; }But why? Why make get_maintainer.pl depend on yet another module? FYI, on my Fedora 44
$ perl -we 'use Module::Load::Conditional qw(check_install);' Can't locate Module/Load/Conditional.pm in @INC (you may need to install the Module::Load::Conditional module) (@INC entries checked: /usr/local/lib64/perl5/5.42 /usr/local/share/perl5/5.42 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at -e line 1. BEGIN failed--compilation aborted at -e line 1.And for what ???
If we want to "improve" the errmsg, we can use "eval { require
JSON::PP; }; die ... if $@" but this looks absolutely pointless to me.Let me repeat. If
JSON::PPis not installed, then get_maintainer.pl with --json:
Quoted 8 lines
fails the same way before or after this patch, I see nothing to improve.
without --json:
fails before this patch, works after this patch
Sorry, I really can't understand your concerns.
I think that Oleg's change makes sense. The only reason I originally relied on JSON::PP was because I was under the impression that it falls under the "pure perl code" guidelines and gets autoinstalled with perl.
Signature · 2 lines
Thanks, Sasha
Joe Perches
maintainerQuoted 54 lines · Oleg Nesterov
Quoted 9 lines · Joe Perches
Quoted 7 lines · Oleg Nesterov
Quoted 4 lines
Quoted 2 lines
This module is only needed with the --json option. Use "require" to load this module dynamically inside the "if ($json)" block instead.
The patch may be sensible but could fail the same way if you used the --json option with your version.
Of course, "
./scripts/get_maintainer.pl--json ..." will still fail the same way withoutJSON::PP. But with this patch get_maintainer.pl works without the --json option.What does that failure output?
Hmm. I am not sure I understand you concerns. Let me add more details. So, I think this patch makes no difference if
JSON::PPis installed. Do you agree?Now lets see what happens on my machine where
JSON::PPis NOT installed. Without --json:Before this patch:
$ ./scripts/get_maintainer.pl ./scripts/get_maintainer.pl Can't locate JSON/PP.pm in @INC (you may need to install the JSON::PP module) (@INC entries checked: /usr/local/lib64/perl5/5.42 /usr/local/share/perl5/5.42 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./scripts/get_maintainer.pl line 24. BEGIN failed--compilation aborted at ./scripts/get_maintainer.pl line 24.After:
$ ./scripts/get_maintainer.pl ./scripts/get_maintainer.pl Joe Perches <[[email protected]](mailto:[email protected])> (maintainer:GET_MAINTAINER SCRIPT) [[email protected]](mailto:[email protected]) (open list)With --json:
Before this patch:
$ ./scripts/get_maintainer.pl --json ./scripts/get_maintainer.pl Can't locate JSON/PP.pm in @INC (you may need to install the JSON::PP module) (@INC entries checked: /usr/local/lib64/perl5/5.42 /usr/local/share/perl5/5.42 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./scripts/get_maintainer.pl line 24. BEGIN failed--compilation aborted at ./scripts/get_maintainer.pl line 24.After:
$ ./scripts/get_maintainer.pl --json ./scripts/get_maintainer.pl Can't locate JSON/PP.pm in @INC (you may need to install the JSON::PP module) (@INC entries checked: /usr/local/lib64/perl5/5.42 /usr/local/share/perl5/5.42 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./scripts/get_maintainer.pl line 665.Same failure. Sorry, I don't understand what is not clear for you :(
Quoted 8 lines
Dunno. Depending on the current failure output
maybe adding something like the below is better:use
Module::Load::Conditionalqw(check_install);if (!check_install(module => 'JSON:PP')) { die "$P: --json not available - missing perl module JSON:PP\n"; }
Quoted 6 lines
But why? Why make get_maintainer.pl depend on yet another module? FYI, on my Fedora 44
$ perl -we 'use Module::Load::Conditional qw(check_install);' Can't locate Module/Load/Conditional.pm in @INC (you may need to install the Module::Load::Conditional module) (@INC entries checked: /usr/local/lib64/perl5/5.42 /usr/local/share/perl5/5.42 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at -e line 1. BEGIN failed--compilation aborted at -e line 1.
Module::Load is a core perl module since 5.10 and
I think you are using a broken version of a perl installation and I think you should:
$ sudo dnf install perl-core
Quoted 1 line
And for what ???
My idea is to make it more obvious _why_ something fails and not like get_maintainer itself is broken.
Quoted 2 lines
If we want to "improve" the errmsg, we can use "eval { require
JSON::PP; }; die ... if $@" but this looks absolutely pointless to me.
We disagree. I prefer output errors to look less broken.
Quoted 15 lines · Joe Perches
Quoted 13 lines · Oleg Nesterov
Quoted 9 lines
Dunno. Depending on the current failure output
maybe adding something like the below is better:use
Module::Load::Conditionalqw(check_install);if (!check_install(module => 'JSON:PP')) { die "$P: --json not available - missing perl module JSON:PP\n"; }But why? Why make get_maintainer.pl depend on yet another module? FYI, on my Fedora 44
Quoted 7 lines
Quoted 3 lines
$ perl -we 'use Module::Load::Conditional qw(check_install);' Can't locate Module/Load/Conditional.pm in @INC (you may need to install the Module::Load::Conditional module) (@INC entries checked: /usr/local/lib64/perl5/5.42 /usr/local/share/perl5/5.42 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at -e line 1. BEGIN failed--compilation aborted at -e line 1.
Module::Loadis a core perl module since 5.10 andI think you are using a broken version of a perl installation
And how do you think it is broken? my laptop runs the fresh Fedora 44.
I used ./scripts/get_maintainer.pl many years, almost every day, and I never needed to install the additional modules. Until ("get_maintainer: add --json output mode")
Quoted 3 lines
and I think you should:
$ sudo dnf install perl-core
Oh. I LOVE perl. Damn I still consider myself as a perl programmer ;)
But why do you think I should install the additional modules (which I will never use) on my machine???
Again, again, again. AFAICS, this patch makes no difference if JSON::PP is installed. Please correct me.
It just allows to use get_maintainer.pl without --json in the case when JSON::PP is NOT installed. This is the ONLY difference afaics.
Quoted 4 lines
Quoted 1 line
And for what ???
My idea is to make it more obvious _why_ something fails and not like
get_maintaineritself is broken.
Good idea! But again, again, again, if JSON::PP is not installed, then the failure message is the same with or without my patch. Just get_maintainer.pl does NOT fail without --json.
Although to be honest "Can't locate JSON/PP.pm ..." looks very clear to me, but you can make it more obvious with or without my patch.
Quoted 4 lines
Quoted 2 lines
If we want to "improve" the errmsg, we can use "eval { require
JSON::PP; }; die ... if $@" but this looks absolutely pointless to me.We disagree. I prefer output errors to look less broken.
less broken than what? see above.
It's not that we disagree... Worse, we can't understand each other :( Perhaps is this my fault.
Oleg.
Joe Perches
maintainerQuoted 15 lines · Oleg Nesterov
Quoted 1 line · Joe Perches
On Fri, 2026-10-30 at 22:44 +0100, Oleg Nesterov wrote:
Dunno. Depending on the current failure output
Quoted 11 lines
Quoted 11 lines
Quoted 7 lines
maybe adding something like the below is better:
use
Module::Load::Conditionalqw(check_install);if (!check_install(module => 'JSON:PP')) { die "$P: --json not available - missing perl module JSON:PP\n"; }But why? Why make get_maintainer.pl depend on yet another module? FYI, on my Fedora 44
Quoted 7 lines
$ perl -we 'use Module::Load::Conditional qw(check_install);' Can't locate Module/Load/Conditional.pm in @INC (you may need to install the Module::Load::Conditional module) (@INC entries checked: /usr/local/lib64/perl5/5.42 /usr/local/share/perl5/5.42 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at -e line 1. BEGIN failed--compilation aborted at -e line 1.Quoted 3 lines
Module::Loadis a core perl module since 5.10 and
I think you are using a broken version of a perl installationAnd how do you think it is broken? my laptop runs the fresh Fedora 44.
It doesn't include perl-core ;)
Quoted 3 lines
I used
./scripts/get_maintainer.plmany years, almost every day, and I never needed to install the additional modules. Until ("get_maintainer: add --json output mode")
I think that was added in Linus' 7.2 in mid August and in -next since April
Quoted 5 lines
Quoted 3 lines
and I think you should:
$ sudo dnf install perl-coreOh. I LOVE perl. Damn I still consider myself as a perl programmer ;)
:) I don't consider myself one...
Quoted 2 lines
But why do you think I should install the additional modules (which I will never use) on my machine???
Just like you have to add development-tools to that install.
Quoted 2 lines
Again, again, again. AFAICS, this patch makes no difference if
JSON::PPis installed. Please correct me.
Why? You're not wrong.
Quoted 11 lines
It just allows to use get_maintainer.pl without --json in the case when
JSON::PPis NOT installed. This is the ONLY difference afaics.Quoted 3 lines
Quoted 1 line
And for what ???
My idea is to make it more obvious _why_ something fails and not like
get_maintaineritself is broken.Good idea! But again, again, again, if
JSON::PPis not installed, then the failure message is the same with or without my patch. Just get_maintainer.pl does NOT fail without --json.Although to be honest "Can't locate JSON/PP.pm ..." looks very clear to me, but you can make it more obvious with or without my patch.
Quoted 7 lines
Quoted 3 lines
Quoted 2 lines
If we want to "improve" the errmsg, we can use "eval { require
JSON::PP; }; die ... if $@" but this looks absolutely pointless to me.We disagree. I prefer output errors to look less broken.
less broken than what? see above.
It's not that we disagree... Worse, we can't understand each other :( Perhaps is this my fault.
I don't disagree with the concept of the patch.
I think we understand each other fine, you just care less about the output error message. What gets output now is from perl and I think it looks less like get_maintainer is working properly.
cheers, Joe
Quoted 10 lines · Joe Perches
Quoted 8 lines · Oleg Nesterov
Quoted 4 lines
Quoted 4 lines
But why? Why make get_maintainer.pl depend on yet another module? FYI, on my Fedora 44
$ perl -we 'use Module::Load::Conditional qw(check_install);' Can't locate Module/Load/Conditional.pm in @INC (you may need to install the Module::Load::Conditional module) (@INC entries checked: /usr/local/lib64/perl5/5.42 /usr/local/share/perl5/5.42 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at -e line 1. BEGIN failed--compilation aborted at -e line 1.Quoted 1 line
Quoted 5 lines
Quoted 3 lines
Quoted 2 lines
Module::Loadis a core perl module since 5.10 and
I think you are using a broken version of a perl installationAnd how do you think it is broken? my laptop runs the fresh Fedora 44.
It doesn't include perl-core ;)
you can blame the Fedora maintainers, not me ;)
Quoted 5 lines
Quoted 3 lines
I used
./scripts/get_maintainer.plmany years, almost every day, and I never needed to install the additional modules. Until ("get_maintainer: add --json output mode")I think that was added in Linus' 7.2 in mid August and in -next since April
Yes, I hit this problem months ago, but didn't have time to send the fix. So I had to have "git revert 09d8b39563e84fc245d642182715a7e0e024b0f2" in my local trees until today.
Quoted 4 lines
Quoted 2 lines
It's not that we disagree... Worse, we can't understand each other :( Perhaps is this my fault.
I don't disagree with the concept of the patch.
Great, then perhaps you can ACK my trivial patch? Then we can discuss the possible improvements.
Quoted 2 lines
I think we understand each other fine, you just care less about the output error message.
Yes, it is true in that I don't really care about the output error message.
But then again. This error message can only happen if JSON::PP is not installed, and my patch doesn't make it worse?
Oleg.
Joe Perches
maintainerQuoted 4 lines · Oleg Nesterov
Quoted 3 lines · Joe Perches
Quoted 2 lines · Oleg Nesterov
Quoted 2 lines
Quoted 2 lines
But why? Why make get_maintainer.pl depend on yet another module? FYI, on my Fedora 44
[]
Quoted 7 lines
Quoted 5 lines
Quoted 4 lines
Quoted 2 lines
Module::Loadis a core perl module since 5.10 and
I think you are using a broken version of a perl installationAnd how do you think it is broken? my laptop runs the fresh Fedora 44.
It doesn't include perl-core ;)
you can blame the Fedora maintainers, not me ;)
<smile>
That'd be the same as blaming the Fedora maintainers for not including development-tools by default.
Quoted 7 lines
Quoted 5 lines
Quoted 3 lines
I used
./scripts/get_maintainer.plmany years, almost every day, and I never needed to install the additional modules. Until ("get_maintainer: add --json output mode")I think that was added in Linus' 7.2 in mid August and in -next since April
Yes, I hit this problem months ago, but didn't have time to send the fix.
Nor apparently have time to send an email to the get_maintainer maintainer about it either.
Quoted 3 lines
Quoted 1 line
I don't disagree with the concept of the patch.
Great, then perhaps you can ACK my trivial patch? Then we can discuss the possible improvements.
Maybe when it's done without needing updates.
In the meantime, you have an easy workaround with dnf install perl-core.
Quoted 7 lines
Quoted 2 lines
I think we understand each other fine, you just care less about the output error message.
Yes, it is true in that I don't really care about the output error message.
But then again. This error message can only happen if
JSON::PPis not installed, and my patch doesn't make it worse?
Quoted 10 lines · Joe Perches
Quoted 5 lines · Oleg Nesterov
Quoted 2 lines · Joe Perches
I think that was added in Linus' 7.2 in mid August and in -next since April
Yes, I hit this problem months ago, but didn't have time to send the fix.
Nor apparently have time to send an email to the
get_maintainermaintainer about it either.
No. I knew that this problem is trivial and I can send the trivial fix when I have time to check the code and write the changelog.
Quoted 4 lines
Quoted 2 lines
Great, then perhaps you can ACK my trivial patch? Then we can discuss the possible improvements.
Maybe when it's done without needing updates.
Sorry, I don't understand...
Quoted 1 line
In the meantime, you have an easy workaround with dnf install perl-core.
Sure. Or I guess I can install perl-JSON-PP.noarch... most probably this is the necessary module.
OK. So in essence you NACK this change. OK, maintainer is always right. I won't argue even if I don't understand why you dislike this trivial change. Afaics it can't make any regression, it just allows to continue to use get_maintainer.pl without JSON::PP, as it was always possible.
Oleg.
PATCH v2 1/1 get_maintainer: lazy load JSON::PP only when --json is used
In reply to Oleg NesterovAfter commit 09d8b39563e8 ("get_maintainer: add --json output mode"), I can no longer use get_maintainer.pl; it fails at compile time if JSON::PP is not installed even when --json is not requested.
This module is only needed with the --json option. Use "require" to load this module dynamically inside the "if ($json)" block instead.
--- scripts/get_maintainer.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
scripts/get_maintainer.pl +2 -1
@@ -21,7 +21,6 @@ use Cwd; use File::Find; use File::Spec::Functions; use open qw(:std :encoding(UTF-8)); -use JSON::PP; my $cur_path = fastgetcwd() . '/'; my $lk_path = "./";
@@ -663,6 +662,8 @@ my @maintainers = get_maintainers(); @bug = uniq(@bug) if ($bug); if ($json) { + require JSON::PP; + my @json_maintainers; for my $m (@maintainers) { my ($addr, $role);
Signature · 1 line
2.55.0