scripts: sphinx-pre-install: change the warning for version < 2.4.4
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Tue, 21 Apr 2020 14:31:06 +0000 (16:31 +0200)
committerJonathan Corbet <corbet@lwn.net>
Tue, 28 Apr 2020 18:52:02 +0000 (12:52 -0600)
As requested by Jon, change the version check, in order to not
emit a warning if version is >= 1.7.9, but below 2.4.4.

After this patch, if someone used an older version, it will
say:

./scripts/sphinx-pre-install
Sphinx version 1.7.9
Note: It is recommended at least Sphinx version 2.4.4 if you need PDF support.
Detected OS: Fedora release 31 (Thirty One).

To upgrade Sphinx, use:

/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

If you want to exit the virtualenv, you can use:
deactivate

All optional dependencies are met.
Needed package dependencies are met.

If Sphinx is not detected at all, it

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/79584d317ba16f5d4f37801c5ee57cf04085f962.1587478901.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
scripts/sphinx-pre-install

index 249edb3932af0afeb3590208a764e473e912287d..0d5684c08bbc67c2f83886ea0577e9c63a63a795 100755 (executable)
@@ -29,6 +29,8 @@ my $install = "";
 my $virtenv_dir = "";
 my $python_cmd = "";
 my $min_version;
+my $rec_version = "1.7.9";     # PDF won't build here
+my $min_pdf_version = "2.4.4"; # Min version where pdf builds
 
 #
 # Command line arguments
@@ -254,7 +256,7 @@ sub get_sphinx_version($)
 
 sub check_sphinx()
 {
-       my $rec_version;
+       my $default_version;
        my $cur_version;
 
        open IN, $conf or die "Can't open $conf";
@@ -271,15 +273,15 @@ sub check_sphinx()
        open IN, $requirement_file or die "Can't open $requirement_file";
        while (<IN>) {
                if (m/^\s*Sphinx\s*==\s*([\d\.]+)$/) {
-                       $rec_version=$1;
+                       $default_version=$1;
                        last;
                }
        }
        close IN;
 
-       die "Can't get recommended sphinx version from $requirement_file" if (!$min_version);
+       die "Can't get default sphinx version from $requirement_file" if (!$default_version);
 
-       $virtenv_dir = $virtenv_prefix . $rec_version;
+       $virtenv_dir = $virtenv_prefix . $default_version;
 
        my $sphinx = get_sphinx_fname();
        if ($sphinx eq "") {
@@ -294,7 +296,7 @@ sub check_sphinx()
 
        if ($cur_version lt $min_version) {
                printf "ERROR: Sphinx version is %s. It should be >= %s (recommended >= %s)\n",
-                      $cur_version, $min_version, $rec_version;;
+                      $cur_version, $min_version, $default_version;
                $need_sphinx = 1;
                return;
        }
@@ -302,6 +304,13 @@ sub check_sphinx()
        if ($cur_version lt $rec_version) {
                printf "Sphinx version %s\n", $cur_version;
                print "Warning: It is recommended at least Sphinx version $rec_version.\n";
+               print "         If you want pdf, you need at least $min_pdf_version.\n";
+               $rec_sphinx_upgrade = 1;
+               return;
+       }
+       if ($cur_version lt $min_pdf_version) {
+               printf "Sphinx version %s\n", $cur_version;
+               print "Note: It is recommended at least Sphinx version $min_pdf_version if you need PDF support.\n";
                $rec_sphinx_upgrade = 1;
                return;
        }