scripts/sphinx-pre-install: add '-p python3' to virtualenv
authorTim Bird <tim.bird@sony.com>
Tue, 25 Feb 2020 01:34:41 +0000 (18:34 -0700)
committerJonathan Corbet <corbet@lwn.net>
Mon, 2 Mar 2020 20:08:11 +0000 (13:08 -0700)
With Ubuntu 16.04 (and presumably Debian distros of the same age),
the instructions for setting up a python virtual environment should
do so with the python 3 interpreter.  On these older distros, the
default python (and virtualenv command) might be python2 based.

Some of the packages that sphinx relies on are now only available
for python3.  If you don't specify the python3 interpreter for
the virtualenv, you get errors when doing the pip installs for
various packages

Fix this by adding '-p python3' to the virtualenv recommendation
line.

Signed-off-by: Tim Bird <tim.bird@sony.com>
Link: https://lore.kernel.org/r/1582594481-23221-1-git-send-email-tim.bird@sony.com
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
scripts/sphinx-pre-install

index a8f0c002a34058f99de455f045f61fa5a6b28b4b..fa3fb05cd54bea8f67f906f150fafcc508a2a769 100755 (executable)
@@ -701,11 +701,26 @@ sub check_needs()
                } else {
                        my $rec_activate = "$virtenv_dir/bin/activate";
                        my $virtualenv = findprog("virtualenv-3");
+                       my $rec_python3 = "";
                        $virtualenv = findprog("virtualenv-3.5") if (!$virtualenv);
                        $virtualenv = findprog("virtualenv") if (!$virtualenv);
                        $virtualenv = "virtualenv" if (!$virtualenv);
 
-                       printf "\t$virtualenv $virtenv_dir\n";
+                       my $rel = "";
+                       if (index($system_release, "Ubuntu") != -1) {
+                               $rel = $1 if ($system_release =~ /Ubuntu\s+(\d+)[.]/);
+                               if ($rel && $rel >= 16) {
+                                       $rec_python3 = " -p python3";
+                               }
+                       }
+                       if (index($system_release, "Debian") != -1) {
+                               $rel = $1 if ($system_release =~ /Debian\s+(\d+)/);
+                               if ($rel && $rel >= 7) {
+                                       $rec_python3 = " -p python3";
+                               }
+                       }
+
+                       printf "\t$virtualenv$rec_python3 $virtenv_dir\n";
                        printf "\t. $rec_activate\n";
                        printf "\tpip install -r $requirement_file\n";
                        deactivate_help();