mirror of
https://github.com/torvalds/linux
synced 2024-09-06 09:51:23 +00:00
scripts: sphinx-pre-install: fix a bug when using with venv
When python3 creates a venv, it adds python into it! This causes any upgrade recommendation to look like this: /devel/v4l/docs/sphinx_1.7.9/bin/python3 -m venv sphinx_2.4.4 . sphinx_2.4.4/bin/activate pip install -r ./Documentation/sphinx/requirements.txt With is wrong (and it may not work). So, when recomending an upgrade, exclude the venv dir from the search path, and get the system's python. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Link: https://lore.kernel.org/r/aa622ff71bebf6960fc0262fb90e7ebc7a999a02.1587478901.git.mchehab+huawei@kernel.org Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
parent
2834a7412b
commit
412b09ddad
|
@ -148,6 +148,24 @@ sub findprog($)
|
|||
}
|
||||
}
|
||||
|
||||
sub find_python_no_venv()
|
||||
{
|
||||
my $prog = shift;
|
||||
|
||||
my $cur_dir = qx(pwd);
|
||||
$cur_dir =~ s/\s+$//;
|
||||
|
||||
foreach my $dir (split(/:/, $ENV{PATH})) {
|
||||
next if ($dir =~ m,($cur_dir)/sphinx,);
|
||||
return "$dir/python3" if(-x "$dir/python3");
|
||||
}
|
||||
foreach my $dir (split(/:/, $ENV{PATH})) {
|
||||
next if ($dir =~ m,($cur_dir)/sphinx,);
|
||||
return "$dir/python" if(-x "$dir/python");
|
||||
}
|
||||
return "python";
|
||||
}
|
||||
|
||||
sub check_program($$)
|
||||
{
|
||||
my $prog = shift;
|
||||
|
@ -814,6 +832,8 @@ sub check_needs()
|
|||
|
||||
print "To upgrade Sphinx, use:\n\n" if ($rec_sphinx_upgrade);
|
||||
|
||||
$python_cmd = find_python_no_venv();
|
||||
|
||||
if ($need_venv) {
|
||||
printf "\t$python_cmd -m venv $virtenv_dir\n";
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue