From: Neil Horman Date: Wed, 3 Dec 2025 19:36:54 +0000 (-0500) Subject: Make find-doc-nits compatible accross git versions X-Git-Tag: 4.0-PRE-CLANG-FORMAT-WEBKIT~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=64e96ecf3c7edbd82322ddcc21a60be490ba2943;p=thirdparty%2Fopenssl.git Make find-doc-nits compatible accross git versions We recently found that the addition of a git config command in util/find-doc-nits is broken in some cases, sepecifically because git around version 2.46 broke command line compatibility, replacing the --regexp option with the --get-regexp option. So to maintain usage of this specific command to parse the .gitconfig file, we would need to do some extra version detection to construct the proper command line. However, find-doc-nits already has a fallback condition, which does some pure perl parsing of the gitconfig file, which works perfectly well. Instead of trying to do version matching to construct the right form of the git config command line, just remove it all, and rely on the perl parrse to do this work for us, which works currently in all cases. Fixes #29197 Reviewed-by: Tomas Mraz Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/29304) --- diff --git a/util/find-doc-nits b/util/find-doc-nits index f7092bf1290..fb3288c2d18 100755 --- a/util/find-doc-nits +++ b/util/find-doc-nits @@ -1297,33 +1297,14 @@ sub check_env_vars { my @env_headers; my @env_macro; - # Add submodules to the except_dirs - my $git_ok = 0; - open my $gs_pipe, '-|', "git config get --all " - . "--file \"$config{sourcedir}/.gitmodules\" " - . "--regexp '.*.path\$'"; - while (<$gs_pipe>) { - $git_ok = 1; - s/\R$//; # better chomp - print STDERR "DEBUG[check_env_vars]: adding \"$config{sourcedir}/$_\"" - . " to except_dirs\n" - if $debug; - push @except_dirs, "$config{sourcedir}/$_"; - } - close $gs_pipe; - # git call has failed, trying to parse .gitmodules manually - if (!$git_ok) { - print STDERR "DEBUG[check_env_vars]: .gitmodules parsing fallback\n" - if $debug; - if (open my $gs_file, '<', "$config{sourcedir}/.gitmodules") { - while (<$gs_file>) { - s/\R$//; # better chomp - if ($_ =~ /\s*path\s*=\s*(.*)$/) { - print STDERR "DEBUG[check_env_vars]: adding " - . "\"$config{sourcedir}/$1\" to except_dirs\n" - if $debug; - push @except_dirs, "$config{sourcedir}/$1"; - } + if (open my $gs_file, '<', "$config{sourcedir}/.gitmodules") { + while (<$gs_file>) { + s/\R$//; # better chomp + if ($_ =~ /\s*path\s*=\s*(.*)$/) { + print STDERR "DEBUG[check_env_vars]: adding " + . "\"$config{sourcedir}/$1\" to except_dirs\n" + if $debug; + push @except_dirs, "$config{sourcedir}/$1"; } } } @@ -1338,7 +1319,7 @@ sub check_env_vars { @except_env_files = map { realpath($_) } @except_env_files; # look for source files - $git_ok = 0; + my $git_ok = 0; open my $glf_pipe, '-|', "git ls-files -- \"$config{sourcedir}\""; while (<$glf_pipe>) { $git_ok = 1;