Commit 56e5a633 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

scripts/sphinx-pre-install: don't use LaTeX with CentOS 7

There aren't enough texlive packages for LaTeX-based builds
to work on CentOS/RHEL <= 7.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent b308467c
...@@ -83,6 +83,17 @@ sub check_missing(%) ...@@ -83,6 +83,17 @@ sub check_missing(%)
foreach my $prog (sort keys %missing) { foreach my $prog (sort keys %missing) {
my $is_optional = $missing{$prog}; my $is_optional = $missing{$prog};
# At least on some LTS distros like CentOS 7, texlive doesn't
# provide all packages we need. When such distros are
# detected, we have to disable PDF output.
#
# So, we need to ignore the packages that distros would
# need for LaTeX to work
if ($is_optional == 2 && !$pdf) {
$optional--;
next;
}
if ($is_optional) { if ($is_optional) {
print "Warning: better to also install \"$prog\".\n"; print "Warning: better to also install \"$prog\".\n";
} else { } else {
...@@ -333,10 +344,10 @@ sub give_debian_hints() ...@@ -333,10 +344,10 @@ sub give_debian_hints()
if ($pdf) { if ($pdf) {
check_missing_file("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", check_missing_file("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf",
"fonts-dejavu", 1); "fonts-dejavu", 2);
} }
check_program("dvipng", 1) if ($pdf); check_program("dvipng", 2) if ($pdf);
check_missing(\%map); check_missing(\%map);
return if (!$need && !$optional); return if (!$need && !$optional);
...@@ -371,22 +382,40 @@ sub give_redhat_hints() ...@@ -371,22 +382,40 @@ sub give_redhat_hints()
# #
# Checks valid for RHEL/CentOS version 7.x. # Checks valid for RHEL/CentOS version 7.x.
# #
my $old = 0;
my $rel;
$rel = $1 if ($system_release =~ /release\s+(\d+)/);
if (!($system_release =~ /Fedora/)) { if (!($system_release =~ /Fedora/)) {
$map{"virtualenv"} = "python-virtualenv"; $map{"virtualenv"} = "python-virtualenv";
}
my $release; if ($rel && $rel < 8) {
$old = 1;
$pdf = 0;
$release = $1 if ($system_release =~ /Fedora\s+release\s+(\d+)/); printf("Note: texlive packages on RHEL/CENTOS <= 7 are incomplete. Can't support PDF output\n");
printf("If you want to build PDF, please read:\n");
printf("\thttps://www.systutorials.com/241660/how-to-install-tex-live-on-centos-7-linux/\n");
}
} else {
if ($rel && $rel < 26) {
$old = 1;
}
}
if (!$rel) {
printf("Couldn't identify release number\n");
$old = 1;
$pdf = 0;
}
check_rpm_missing(\@fedora26_opt_pkgs, 1) if ($pdf && $release >= 26); check_rpm_missing(\@fedora26_opt_pkgs, 2) if ($pdf && !$old);
check_rpm_missing(\@fedora_tex_pkgs, 1) if ($pdf); check_rpm_missing(\@fedora_tex_pkgs, 2) if ($pdf);
check_missing_tex(1) if ($pdf); check_missing_tex(2) if ($pdf);
check_missing(\%map); check_missing(\%map);
return if (!$need && !$optional); return if (!$need && !$optional);
if ($release >= 18) { if (!$old) {
# dnf, for Fedora 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 { } else {
...@@ -425,8 +454,8 @@ sub give_opensuse_hints() ...@@ -425,8 +454,8 @@ sub give_opensuse_hints()
"texlive-zapfding", "texlive-zapfding",
); );
check_rpm_missing(\@suse_tex_pkgs, 1) if ($pdf); check_rpm_missing(\@suse_tex_pkgs, 2) if ($pdf);
check_missing_tex(1) if ($pdf); check_missing_tex(2) if ($pdf);
check_missing(\%map); check_missing(\%map);
return if (!$need && !$optional); return if (!$need && !$optional);
...@@ -450,7 +479,7 @@ sub give_mageia_hints() ...@@ -450,7 +479,7 @@ sub give_mageia_hints()
"texlive-fontsextra", "texlive-fontsextra",
); );
check_rpm_missing(\@tex_pkgs, 1) if ($pdf); check_rpm_missing(\@tex_pkgs, 2) if ($pdf);
check_missing(\%map); check_missing(\%map);
return if (!$need && !$optional); return if (!$need && !$optional);
...@@ -473,7 +502,8 @@ sub give_arch_linux_hints() ...@@ -473,7 +502,8 @@ sub give_arch_linux_hints()
"texlive-latexextra", "texlive-latexextra",
"ttf-dejavu", "ttf-dejavu",
); );
check_pacman_missing(\@archlinux_tex_pkgs, 1) if ($pdf); check_pacman_missing(\@archlinux_tex_pkgs, 2) if ($pdf);
check_missing(\%map); check_missing(\%map);
return if (!$need && !$optional); return if (!$need && !$optional);
...@@ -492,7 +522,7 @@ sub give_gentoo_hints() ...@@ -492,7 +522,7 @@ sub give_gentoo_hints()
); );
check_missing_file("/usr/share/fonts/dejavu/DejaVuSans.ttf", check_missing_file("/usr/share/fonts/dejavu/DejaVuSans.ttf",
"media-fonts/dejavu", 1) if ($pdf); "media-fonts/dejavu", 2) if ($pdf);
check_missing(\%map); check_missing(\%map);
...@@ -560,7 +590,7 @@ sub check_distros() ...@@ -560,7 +590,7 @@ sub check_distros()
my %map = ( my %map = (
"sphinx-build" => "sphinx" "sphinx-build" => "sphinx"
); );
check_missing_tex(1) if ($pdf); check_missing_tex(2) if ($pdf);
check_missing(\%map); check_missing(\%map);
print "I don't know distro $system_release.\n"; print "I don't know distro $system_release.\n";
print "So, I can't provide you a hint with the install procedure.\n"; print "So, I can't provide you a hint with the install procedure.\n";
...@@ -589,11 +619,13 @@ sub check_needs() ...@@ -589,11 +619,13 @@ sub check_needs()
check_program("make", 0); check_program("make", 0);
check_program("gcc", 0); check_program("gcc", 0);
check_python_module("sphinx_rtd_theme", 1) if (!$virtualenv); check_python_module("sphinx_rtd_theme", 1) if (!$virtualenv);
check_program("xelatex", 1) if ($pdf);
check_program("dot", 1); check_program("dot", 1);
check_program("convert", 1); check_program("convert", 1);
check_program("rsvg-convert", 1) if ($pdf);
check_program("latexmk", 1) if ($pdf); # Extra PDF files - should use 2 for is_optional
check_program("xelatex", 2) if ($pdf);
check_program("rsvg-convert", 2) if ($pdf);
check_program("latexmk", 2) if ($pdf);
check_distros(); check_distros();
......
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