> -----Original Message----- > From: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> > > Em Sat, 22 Feb 2020 08:16:44 +0100 > Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> escreveu: > > > 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. > > Indeed it seems that, with some versions of python, virtualenv -p python3 > don't work: > > https://stackoverflow.com/questions/23842713/using-python-3-in-virtualenv > > This could well be something already solved on most distros, but I think it > would be safer if we only add "-p python3" if it is Ubuntu 16.04 or upper > (and doing a similar test for Debian). OK - see the patch I will send shortly for what I came up with. -- Tim > > > > Note: the version of the distribution (and its name) is already stored > > at the global var $system_release. > > > > Cheers, > > Mauro