Commit 412b09dd authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Jonathan Corbet

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: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/aa622ff71bebf6960fc0262fb90e7ebc7a999a02.1587478901.git.mchehab+huawei@kernel.orgSigned-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 2834a741
......@@ -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 {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment