Commit 9b756a9d authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Jonathan Corbet

scripts/sphinx-pre-install: add minimum support for RHEL

RHEL 7.x and clone distros are shipped with Sphinx 1.1.x,
with is incompatible with Kernel ReST markups.

So, on those systems, the only alternative is to install
it via a Python virtual environment.

While seeking for "pip" on CentOS 7.3, I noticed that it
is not really needed, as python-virtualenv has its version
packaged there already. So, remove this from the list of
requirements for all distributions.

With regards to PDF, we need at least texlive-tabulary
extension, but that is not shipped there (at least on
CentOS). So, disable PDF packages as a whole.

Please notice, however, that texlive + amsmath is needed for
ReST to properly handle ReST ".. math::" tags. Yet, Sphinx
fall back to display the LaTeX math expressions as-is, if
such extension is not available.

So, let's just disable all texlive packages as a whole.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 3d91a353
...@@ -216,7 +216,6 @@ sub check_sphinx() ...@@ -216,7 +216,6 @@ sub check_sphinx()
$prog = findprog("virtualenv-3.5") if (!$prog); $prog = findprog("virtualenv-3.5") if (!$prog);
check_program("virtualenv", 0) if (!$prog); check_program("virtualenv", 0) if (!$prog);
check_program("pip", 0) if (!findprog("pip3"));
$need_sphinx = 1; $need_sphinx = 1;
} else { } else {
add_package("python-sphinx", 0); add_package("python-sphinx", 0);
...@@ -256,7 +255,6 @@ sub give_debian_hints() ...@@ -256,7 +255,6 @@ sub give_debian_hints()
"python-sphinx" => "python3-sphinx", "python-sphinx" => "python3-sphinx",
"sphinx_rtd_theme" => "python3-sphinx-rtd-theme", "sphinx_rtd_theme" => "python3-sphinx-rtd-theme",
"virtualenv" => "virtualenv", "virtualenv" => "virtualenv",
"pip" => "python3-pip",
"dot" => "graphviz", "dot" => "graphviz",
"convert" => "imagemagick", "convert" => "imagemagick",
"Pod::Usage" => "perl-modules", "Pod::Usage" => "perl-modules",
...@@ -282,7 +280,6 @@ sub give_redhat_hints() ...@@ -282,7 +280,6 @@ sub give_redhat_hints()
"python-sphinx" => "python3-sphinx", "python-sphinx" => "python3-sphinx",
"sphinx_rtd_theme" => "python3-sphinx_rtd_theme", "sphinx_rtd_theme" => "python3-sphinx_rtd_theme",
"virtualenv" => "python3-virtualenv", "virtualenv" => "python3-virtualenv",
"pip" => "python3-pip",
"dot" => "graphviz", "dot" => "graphviz",
"convert" => "ImageMagick", "convert" => "ImageMagick",
"Pod::Usage" => "perl-Pod-Usage", "Pod::Usage" => "perl-Pod-Usage",
...@@ -302,6 +299,13 @@ sub give_redhat_hints() ...@@ -302,6 +299,13 @@ sub give_redhat_hints()
"dejavu-sans-mono-fonts", "dejavu-sans-mono-fonts",
); );
#
# Checks valid for RHEL/CentOS version 7.x.
#
if (! $system_release =~ /Fedora/) {
$map{"virtualenv"} = "python-virtualenv";
}
my $release; my $release;
$release = $1 if ($system_release =~ /Fedora\s+release\s+(\d+)/); $release = $1 if ($system_release =~ /Fedora\s+release\s+(\d+)/);
...@@ -312,7 +316,14 @@ sub give_redhat_hints() ...@@ -312,7 +316,14 @@ sub give_redhat_hints()
check_missing(\%map); check_missing(\%map);
return if (!$need && !$optional); return if (!$need && !$optional);
if ($release >= 18) {
# dnf, for Fedora 18+
printf("You should run:\n\n\tsudo dnf install -y $install\n"); printf("You should run:\n\n\tsudo dnf install -y $install\n");
} else {
# yum, for RHEL (and clones) or Fedora version < 18
printf("You should run:\n\n\tsudo yum install -y $install\n");
}
} }
sub give_opensuse_hints() sub give_opensuse_hints()
...@@ -321,7 +332,6 @@ sub give_opensuse_hints() ...@@ -321,7 +332,6 @@ sub give_opensuse_hints()
"python-sphinx" => "python3-sphinx", "python-sphinx" => "python3-sphinx",
"sphinx_rtd_theme" => "python3-sphinx_rtd_theme", "sphinx_rtd_theme" => "python3-sphinx_rtd_theme",
"virtualenv" => "python3-virtualenv", "virtualenv" => "python3-virtualenv",
"pip" => "python3-pip",
"dot" => "graphviz", "dot" => "graphviz",
"convert" => "ImageMagick", "convert" => "ImageMagick",
"Pod::Usage" => "perl-Pod-Usage", "Pod::Usage" => "perl-Pod-Usage",
...@@ -360,7 +370,6 @@ sub give_mageia_hints() ...@@ -360,7 +370,6 @@ sub give_mageia_hints()
"python-sphinx" => "python3-sphinx", "python-sphinx" => "python3-sphinx",
"sphinx_rtd_theme" => "python3-sphinx_rtd_theme", "sphinx_rtd_theme" => "python3-sphinx_rtd_theme",
"virtualenv" => "python3-virtualenv", "virtualenv" => "python3-virtualenv",
"pip" => "python3-pip",
"dot" => "graphviz", "dot" => "graphviz",
"convert" => "ImageMagick", "convert" => "ImageMagick",
"Pod::Usage" => "perl-Pod-Usage", "Pod::Usage" => "perl-Pod-Usage",
...@@ -372,8 +381,6 @@ sub give_mageia_hints() ...@@ -372,8 +381,6 @@ sub give_mageia_hints()
"texlive-fontsextra", "texlive-fontsextra",
); );
my $release;
check_rpm_missing(\@tex_pkgs, 1) if ($pdf); check_rpm_missing(\@tex_pkgs, 1) if ($pdf);
check_missing(\%map); check_missing(\%map);
...@@ -386,7 +393,6 @@ sub give_arch_linux_hints() ...@@ -386,7 +393,6 @@ sub give_arch_linux_hints()
my %map = ( my %map = (
"sphinx_rtd_theme" => "python-sphinx_rtd_theme", "sphinx_rtd_theme" => "python-sphinx_rtd_theme",
"virtualenv" => "python-virtualenv", "virtualenv" => "python-virtualenv",
"pip" => "python-pip",
"dot" => "graphviz", "dot" => "graphviz",
"convert" => "imagemagick", "convert" => "imagemagick",
"xelatex" => "texlive-bin", "xelatex" => "texlive-bin",
...@@ -410,7 +416,6 @@ sub give_gentoo_hints() ...@@ -410,7 +416,6 @@ sub give_gentoo_hints()
my %map = ( my %map = (
"sphinx_rtd_theme" => "dev-python/sphinx_rtd_theme", "sphinx_rtd_theme" => "dev-python/sphinx_rtd_theme",
"virtualenv" => "dev-python/virtualenv", "virtualenv" => "dev-python/virtualenv",
"pip" => "dev-python/pip",
"dot" => "media-gfx/graphviz", "dot" => "media-gfx/graphviz",
"convert" => "media-gfx/imagemagick", "convert" => "media-gfx/imagemagick",
"xelatex" => "dev-texlive/texlive-xetex media-fonts/dejavu", "xelatex" => "dev-texlive/texlive-xetex media-fonts/dejavu",
...@@ -438,6 +443,18 @@ sub check_distros() ...@@ -438,6 +443,18 @@ sub check_distros()
give_redhat_hints; give_redhat_hints;
return; return;
} }
if ($system_release =~ /CentOS/) {
give_redhat_hints;
return;
}
if ($system_release =~ /Scientific Linux/) {
give_redhat_hints;
return;
}
if ($system_release =~ /Oracle Linux Server/) {
give_redhat_hints;
return;
}
if ($system_release =~ /Fedora/) { if ($system_release =~ /Fedora/) {
give_redhat_hints; give_redhat_hints;
return; return;
...@@ -488,9 +505,22 @@ sub check_distros() ...@@ -488,9 +505,22 @@ sub check_distros()
sub check_needs() sub check_needs()
{ {
if ($system_release) { if ($system_release) {
print "Checking if the needed tools for $system_release are available\n"; print "Detected OS: $system_release.\n";
} else { } else {
print "Checking if the needed tools are present\n"; print "Unknown OS\n";
}
# RHEL 7.x and clones have Sphinx version 1.1.x and incomplete texlive
if (($system_release =~ /Red Hat Enterprise Linux/) ||
($system_release =~ /CentOS/) ||
($system_release =~ /Scientific Linux/) ||
($system_release =~ /Oracle Linux Server/)) {
$virtualenv = 1;
$pdf = 0;
printf("NOTE: On this distro, Sphinx and TexLive shipped versions are incompatible\n");
printf("with doc build. So, use Sphinx via a Python virtual environment.\n\n");
printf("This script can't install a TexLive version that would provide PDF.\n");
} }
# Check for needed programs/tools # Check for needed programs/tools
......
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