Lines Matching +full:sub +full:- +full:system

2 # SPDX-License-Identifier: GPL-2.0-or-later
5 # Copyright (c) 2017-2020 Mauro Carvalho Chehab <mchehab@kernel.org>
51 'amsfonts.sty' => 'texlive-amsfonts',
52 'amsmath.sty' => 'texlive-amsmath',
53 'amssymb.sty' => 'texlive-amsfonts',
54 'amsthm.sty' => 'texlive-amscls',
55 'anyfontsize.sty' => 'texlive-anyfontsize',
56 'atbegshi.sty' => 'texlive-oberdiek',
57 'bm.sty' => 'texlive-tools',
58 'capt-of.sty' => 'texlive-capt-of',
59 'cmap.sty' => 'texlive-cmap',
60 'ecrm1000.tfm' => 'texlive-ec',
61 'eqparbox.sty' => 'texlive-eqparbox',
62 'eu1enc.def' => 'texlive-euenc',
63 'fancybox.sty' => 'texlive-fancybox',
64 'fancyvrb.sty' => 'texlive-fancyvrb',
65 'float.sty' => 'texlive-float',
66 'fncychap.sty' => 'texlive-fncychap',
67 'footnote.sty' => 'texlive-mdwtools',
68 'framed.sty' => 'texlive-framed',
69 'luatex85.sty' => 'texlive-luatex85',
70 'multirow.sty' => 'texlive-multirow',
71 'needspace.sty' => 'texlive-needspace',
72 'palatino.sty' => 'texlive-psnfss',
73 'parskip.sty' => 'texlive-parskip',
74 'polyglossia.sty' => 'texlive-polyglossia',
75 'tabulary.sty' => 'texlive-tabulary',
76 'threeparttable.sty' => 'texlive-threeparttable',
77 'titlesec.sty' => 'texlive-titlesec',
78 'ucs.sty' => 'texlive-ucs',
79 'upquote.sty' => 'texlive-upquote',
80 'wrapfig.sty' => 'texlive-wrapfig',
87 sub check_missing(%)
101 $optional--;
120 sub add_package($$)
133 sub check_missing_file($$$)
140 return if(-e $_);
146 sub findprog($)
149 return "$_/$_[0]" if(-x "$_/$_[0]");
153 sub find_python_no_venv()
162 return "$dir/python3" if(-x "$dir/python3");
166 return "$dir/python" if(-x "$dir/python");
171 sub check_program($$)
181 sub check_perl_module($$)
186 my $err = system("perl -M$prog -e 1 2>/dev/null /dev/null");
192 sub check_python_module($$)
199 my $err = system("$python_cmd -c 'import $prog' 2>/dev/null /dev/null");
205 sub check_rpm_missing($$)
211 my $err = system("rpm -q '$prog' 2>/dev/null >/dev/null");
216 sub check_pacman_missing($$)
222 my $err = system("pacman -Q '$prog' 2>/dev/null >/dev/null");
227 sub check_missing_tex($)
243 sub get_sphinx_fname()
245 my $fname = "sphinx-build";
248 $fname = "sphinx-build-3";
257 sub get_sphinx_version($)
262 open IN, "$cmd --version 2>&1 |";
264 if (m/^\s*sphinx-build\s+([\d\.]+)((\+\/[\da-f]+)|(b\d+))?$/) {
278 sub check_sphinx()
334 sub catcheck($)
337 $res = qx(cat $_[0]) if (-r $_[0]);
341 sub which($)
348 return $name if (-x $name );
354 # Subroutines that check distro-specific hints
357 sub give_debian_hints()
360 "python-sphinx" => "python3-sphinx",
361 "sphinx_rtd_theme" => "python3-sphinx-rtd-theme",
362 "ensurepip" => "python3-venv",
366 "Pod::Usage" => "perl-modules",
367 "xelatex" => "texlive-xetex",
368 "rsvg-convert" => "librsvg2-bin",
373 "fonts-dejavu", 2);
375 check_missing_file(["/usr/share/fonts/noto-cjk/NotoSansCJK-Regular.ttc",
376 "/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc",
377 "/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc"],
378 "fonts-noto-cjk", 2);
385 printf("You should run:\n\n\tsudo apt-get install $install\n");
388 sub give_redhat_hints()
391 "python-sphinx" => "python3-sphinx",
392 "sphinx_rtd_theme" => "python3-sphinx_rtd_theme",
393 "virtualenv" => "python3-virtualenv",
396 "Pod::Usage" => "perl-Pod-Usage",
397 "xelatex" => "texlive-xetex-bin",
398 "rsvg-convert" => "librsvg2-tools",
402 "graphviz-gd", # Fedora 26: needed for PDF support
406 "texlive-collection-fontsrecommended",
407 "texlive-collection-latex",
408 "texlive-xecjk",
409 "dejavu-sans-fonts",
410 "dejavu-serif-fonts",
411 "dejavu-sans-mono-fonts",
422 $map{"virtualenv"} = "python-virtualenv";
430 printf("\thttps://www.systutorials.com/241660/how-to-install-tex-live-on-centos-7-linux/\n");
444 check_missing_file(["/usr/share/fonts/google-noto-cjk/NotoSansCJK-Regular.ttc"],
445 "google-noto-sans-cjk-ttc-fonts", 2);
457 printf("You should run:\n\n\tsudo dnf install -y $install\n");
460 printf("You should run:\n\n\tsudo yum install -y $install\n");
464 sub give_opensuse_hints()
467 "python-sphinx" => "python3-sphinx",
468 "sphinx_rtd_theme" => "python3-sphinx_rtd_theme",
469 "virtualenv" => "python3-virtualenv",
472 "Pod::Usage" => "perl-Pod-Usage",
473 "xelatex" => "texlive-xetex-bin",
476 # On Tumbleweed, this package is also named rsvg-convert
477 $map{"rsvg-convert"} = "rsvg-view" if (!($system_release =~ /Tumbleweed/));
480 "texlive-babel-english",
481 "texlive-caption",
482 "texlive-colortbl",
483 "texlive-courier",
484 "texlive-dvips",
485 "texlive-helvetic",
486 "texlive-makeindex",
487 "texlive-metafont",
488 "texlive-metapost",
489 "texlive-palatino",
490 "texlive-preview",
491 "texlive-times",
492 "texlive-zapfchan",
493 "texlive-zapfding",
496 $map{"latexmk"} = "texlive-latexmk-bin";
508 printf("You should run:\n\n\tsudo zypper install --no-recommends $install\n");
511 sub give_mageia_hints()
514 "python-sphinx" => "python3-sphinx",
515 "sphinx_rtd_theme" => "python3-sphinx_rtd_theme",
516 "virtualenv" => "python3-virtualenv",
519 "Pod::Usage" => "perl-Pod-Usage",
521 "rsvg-convert" => "librsvg2",
525 "texlive-fontsextra",
528 $map{"latexmk"} = "texlive-collection-basic";
534 $noto_sans = "noto-sans-cjk-fonts";
535 @tex_pkgs = ( "texlive-collection-fontsextra" );
538 $noto_sans = "google-noto-sans-cjk-ttc-fonts";
543 check_missing_file(["/usr/share/fonts/google-noto-cjk/NotoSansCJK-Regular.ttc",
544 "/usr/share/fonts/TTF/NotoSans-Regular.ttf"],
555 sub give_arch_linux_hints()
558 "sphinx_rtd_theme" => "python-sphinx_rtd_theme",
559 "virtualenv" => "python-virtualenv",
562 "xelatex" => "texlive-bin",
563 "latexmk" => "texlive-core",
564 "rsvg-convert" => "extra/librsvg",
568 "texlive-core",
569 "texlive-latexextra",
570 "ttf-dejavu",
575 check_missing_file(["/usr/share/fonts/noto-cjk/NotoSansCJK-Regular.ttc"],
576 "noto-fonts-cjk", 2);
582 printf("You should run:\n\n\tsudo pacman -S $install\n");
585 sub give_gentoo_hints()
588 "sphinx_rtd_theme" => "dev-python/sphinx_rtd_theme",
589 "virtualenv" => "dev-python/virtualenv",
590 "dot" => "media-gfx/graphviz",
591 "convert" => "media-gfx/imagemagick",
592 "xelatex" => "dev-texlive/texlive-xetex media-fonts/dejavu",
593 "rsvg-convert" => "gnome-base/librsvg",
597 "media-fonts/dejavu", 2) if ($pdf);
600 check_missing_file(["/usr/share/fonts/noto-cjk/NotoSansCJKsc-Regular.otf",
601 "/usr/share/fonts/noto-cjk/NotoSerifCJK-Regular.ttc"],
602 "media-fonts/noto-cjk", 2);
611 my $imagemagick = "media-gfx/imagemagick svg png";
612 my $cairo = "media-gfx/graphviz cairo pdf";
617 printf("\tsudo su -c 'echo \"$imagemagick\" > $portage_imagemagick'\n")
620 printf("\tsudo su -c 'echo \"$cairo\" > $portage_cairo'\n");
623 printf("\tsudo emerge --ask $install\n");
627 sub check_distros()
629 # Distro-specific hints
680 # Fall-back to generic hint code for other distros
684 "sphinx-build" => "sphinx"
697 sub deactivate_help()
703 sub get_virtenv()
715 $sphinx_cmd =~ s/activate/sphinx-build/;
716 next if (! -f $sphinx_cmd);
728 sub recommend_sphinx_upgrade()
732 # Avoid running sphinx-builds from venv if $cur_version is good
738 # Get the highest version from sphinx_*/bin/sphinx-build and the
766 # - minimal supported version;
767 # - minimal PDF version;
768 # - recommended version.
770 sub recommend_sphinx_version($)
782 # sphinx-build is present and its version is >= $min_version
855 printf "\tpip install -r $requirement_file\n";
859 sub check_needs()
878 my $tmp = qx($python_cmd --version 2>&1);
892 add_package("python-sphinx", 0);
903 $virtualenv_cmd = findprog("virtualenv-3");
904 $virtualenv_cmd = findprog("virtualenv-3.5") if (!$virtualenv_cmd);
910 $virtualenv_cmd = "$python_cmd -m venv";
923 # Extra PDF files - should use 2 for is_optional
925 check_program("rsvg-convert", 2) if ($pdf);
928 # Do distro-specific checks and output distro-install commands
939 # Check if sphinx-build is called sphinx-build-3
941 printf "\tsudo ln -sf %s /usr/bin/sphinx-build\n\n",
942 which("sphinx-build-3");
966 if ($arg eq "--no-virtualenv") {
968 } elsif ($arg eq "--no-pdf"){
970 } elsif ($arg eq "--version-check"){
973 print "Usage:\n\t$0 <--no-virtualenv> <--no-pdf> <--version-check>\n\n";
975 print "\t--no-virtualenv\t- Recommend installing Sphinx instead of using a virtualenv\n";
976 print "\t--version-check\t- if version is compatible, don't check for missing dependencies\n";
977 print "\t--no-pdf\t- don't check for dependencies required to build PDF docs\n\n";
978 exit -1;
983 # Determine the system type. There's no standard unique way that would
992 $system_release = qx(lsb_release -d) if which("lsb_release");
994 $system_release = catcheck("/etc/system-release") if !$system_release;
995 $system_release = catcheck("/etc/redhat-release") if !$system_release;
996 $system_release = catcheck("/etc/lsb-release") if !$system_release;
997 $system_release = catcheck("/etc/gentoo-release") if !$system_release;
1002 if (open IN, "cat /etc/os-release|") {