#!/usr/bin/perl -w # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # This Source Code Form is "Incompatible With Secondary Licenses", as # defined by the Mozilla Public License, v. 2.0. # This script compiles all the documentation. # # Required software: # # 1) Sphinx documentation builder (python-sphinx package on Debian/Ubuntu) # # 2) pdflatex, which means the following Debian/Ubuntu packages: # * texlive-latex-base # * texlive-latex-recommended # * texlive-latex-extra # * texlive-fonts-recommended # # All these TeX packages together are close to a gig :-| But after you've # installed them, you can remove texlive-latex-extra-doc to save 400MB. use 5.10.1; use strict; use Cwd; # We need to be in this directory to use our libraries. BEGIN { require File::Basename; import File::Basename qw(dirname); chdir dirname($0); } use lib qw(.. ../lib lib); # We only compile our POD if Pod::Simple is installed. We do the checks # this way so that if there's a compile error in Pod::Simple::HTML::Bugzilla, # makedocs doesn't just silently fail, but instead actually tells us there's # a compile error. my $pod_simple; if (eval { require Pod::Simple }) { require Pod::Simple::HTMLBatch::Bugzilla; require Pod::Simple::HTML::Bugzilla; $pod_simple = 1; }; use Bugzilla::Install::Requirements qw(REQUIRED_MODULES OPTIONAL_MODULES); use Bugzilla::Constants qw(DB_MODULE BUGZILLA_VERSION); use File::Path qw(rmtree); use File::Which qw(which); ############################################################################### # Generate minimum version list ############################################################################### my $modules = REQUIRED_MODULES; my $opt_modules = OPTIONAL_MODULES; my $template; { open(TEMPLATE, '<', 'definitions.rst.tmpl') or die('Could not open definitions.rst.tmpl: ' . $!); local $/; $template =