Hi Tim, Em Fri, 21 Feb 2020 22:15:36 +0000 "Bird, Tim" <Tim.Bird@xxxxxxxx> escreveu: > (Resend: Sorry for the dup. I forgot to include the maintainers, and I had the LKML > address wrong.) > > I was trying to set up my machine to do some documentation work, > and I had some problems with the sphinx install. I figured out how to work > around the issue, but I have a question about how to add the information > to scripts/sphinx-pre-install (or whether it should go somewhere else). > > Detailed messages below, but the TLl;DR is that I got the message: > ------- > You should run: > > sudo apt-get install dvipng fonts-noto-cjk latexmk librsvg2-bin texlive-xetex > /usr/bin/virtualenv sphinx_1.7.9 > . sphinx_1.7.9/bin/activate > pip install -r ./Documentation/sphinx/requirements.txt > ... > ------ > > The pip install step didn't work, and I found that I needed to have everything > based on python3 instead. When I replaced: > /usr/bin/virtualenv sphinx_1.7.9 > with > /usr/bin/virtualenv -p python3 sphinx_1.7.9 > everything worked. > > This message is coming from scripts/sphinx-pre-install (I believe on line 708). > > Should I go ahead and submit a patch to add '-p python3' to that line? > > Are there any downsides to enforcing that the virtualenv used for the > documentation build use python3 only? Actually, the script tries to detect if python3 is installed. Currently, it does it by seeking for a python3 variant of virtualenv. If it finds, it changes the recommendation accordingly. The actual code with does that is this one: my $virtualenv = findprog("virtualenv-3"); $virtualenv = findprog("virtualenv-3.5") if (!$virtualenv); $virtualenv = findprog("virtualenv") if (!$virtualenv); $virtualenv = "virtualenv" if (!$virtualenv); This works fine on older Fedora distros (and probably CentOS/RHEL), where there is a python3 variant of virtualenv. On Ubuntu (and Fedora 31), it will just use virtualenv. So, perhaps if we add something like this (untested): my $python = findprog("python3"); if ($python) $virtualenv = "$virtualenv -p $python"; it would make the trick. Please notice, however, that this could cause troubles with some distros that might have a version of virtualenv that won't work with the above. So, perhaps we should add something like the above inside give_debian_hints(), and either ensure that other Debian and Ubuntu LTS versions will work with such change, or add some checks for the Ubuntu/Debian versions where we know this works. Note: the version of the distribution (and its name) is already stored at the global var $system_release. Cheers, Mauro