lkml.org 
[lkml]   [2019]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.2 058/144] scripts/sphinx-pre-install: dont use LaTeX with CentOS 7
    Date
    [ Upstream commit 56e5a633923793b31515795ad30156a307572c1e ]

    There aren't enough texlive packages for LaTeX-based builds
    to work on CentOS/RHEL <= 7.

    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    scripts/sphinx-pre-install | 68 ++++++++++++++++++++++++++++----------
    1 file changed, 50 insertions(+), 18 deletions(-)

    diff --git a/scripts/sphinx-pre-install b/scripts/sphinx-pre-install
    index 778f3ae918775..4cc2b3ee5209f 100755
    --- a/scripts/sphinx-pre-install
    +++ b/scripts/sphinx-pre-install
    @@ -77,6 +77,17 @@ sub check_missing(%)
    foreach my $prog (sort keys %missing) {
    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) {
    print "Warning: better to also install \"$prog\".\n";
    } else {
    @@ -326,10 +337,10 @@ sub give_debian_hints()

    if ($pdf) {
    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);

    return if (!$need && !$optional);
    @@ -364,22 +375,40 @@ sub give_redhat_hints()
    #
    # 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/)) {
    $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(\@fedora_tex_pkgs, 1) if ($pdf);
    - check_missing_tex(1) if ($pdf);
    + check_rpm_missing(\@fedora26_opt_pkgs, 2) if ($pdf && !$old);
    + check_rpm_missing(\@fedora_tex_pkgs, 2) if ($pdf);
    + check_missing_tex(2) if ($pdf);
    check_missing(\%map);

    return if (!$need && !$optional);

    - if ($release >= 18) {
    + if (!$old) {
    # dnf, for Fedora 18+
    printf("You should run:\n\n\tsudo dnf install -y $install\n");
    } else {
    @@ -418,8 +447,8 @@ sub give_opensuse_hints()
    "texlive-zapfding",
    );

    - check_rpm_missing(\@suse_tex_pkgs, 1) if ($pdf);
    - check_missing_tex(1) if ($pdf);
    + check_rpm_missing(\@suse_tex_pkgs, 2) if ($pdf);
    + check_missing_tex(2) if ($pdf);
    check_missing(\%map);

    return if (!$need && !$optional);
    @@ -443,7 +472,7 @@ sub give_mageia_hints()
    "texlive-fontsextra",
    );

    - check_rpm_missing(\@tex_pkgs, 1) if ($pdf);
    + check_rpm_missing(\@tex_pkgs, 2) if ($pdf);
    check_missing(\%map);

    return if (!$need && !$optional);
    @@ -466,7 +495,8 @@ sub give_arch_linux_hints()
    "texlive-latexextra",
    "ttf-dejavu",
    );
    - check_pacman_missing(\@archlinux_tex_pkgs, 1) if ($pdf);
    + check_pacman_missing(\@archlinux_tex_pkgs, 2) if ($pdf);
    +
    check_missing(\%map);

    return if (!$need && !$optional);
    @@ -485,7 +515,7 @@ sub give_gentoo_hints()
    );

    check_missing_file("/usr/share/fonts/dejavu/DejaVuSans.ttf",
    - "media-fonts/dejavu", 1) if ($pdf);
    + "media-fonts/dejavu", 2) if ($pdf);

    check_missing(\%map);

    @@ -553,7 +583,7 @@ sub check_distros()
    my %map = (
    "sphinx-build" => "sphinx"
    );
    - check_missing_tex(1) if ($pdf);
    + check_missing_tex(2) if ($pdf);
    check_missing(\%map);
    print "I don't know distro $system_release.\n";
    print "So, I can't provide you a hint with the install procedure.\n";
    @@ -591,11 +621,13 @@ sub check_needs()
    check_program("make", 0);
    check_program("gcc", 0);
    check_python_module("sphinx_rtd_theme", 1) if (!$virtualenv);
    - check_program("xelatex", 1) if ($pdf);
    check_program("dot", 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();

    --
    2.20.1


    \
     
     \ /
      Last update: 2019-08-14 19:08    [W:2.233 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site