From 0e68998f22b847d90753daac3808bedc4500cde6 Mon Sep 17 00:00:00 2001 From: Frédéric Buclin Date: Thu, 30 Apr 2015 17:10:08 +0200 Subject: Bug 1158563: makedocs.pl is unable to load File::Copy::Recursive installed in bugzilla/lib/ r=dkl a=glob --- Bugzilla/Install/Requirements.pm | 1 + docs/lib/Pod/Simple/HTML/Bugzilla.pm | 1 + docs/lib/Pod/Simple/HTMLBatch/Bugzilla.pm | 1 + docs/makedocs.pl | 54 +++++++++++-------------------- t/011pod.t | 1 + t/Support/Files.pm | 4 +-- 6 files changed, 25 insertions(+), 37 deletions(-) diff --git a/Bugzilla/Install/Requirements.pm b/Bugzilla/Install/Requirements.pm index 797f85453..4dbb0caef 100644 --- a/Bugzilla/Install/Requirements.pm +++ b/Bugzilla/Install/Requirements.pm @@ -462,6 +462,7 @@ use constant FEATURE_FILES => ( moving => ['importxml.pl'], auth_ldap => ['Bugzilla/Auth/Verify/LDAP.pm'], auth_radius => ['Bugzilla/Auth/Verify/RADIUS.pm'], + documentation => ['docs/makedocs.pl'], inbound_email => ['email_in.pl'], jobqueue => ['Bugzilla/Job/*', 'Bugzilla/JobQueue.pm', 'Bugzilla/JobQueue/*', 'jobqueue.pl'], diff --git a/docs/lib/Pod/Simple/HTML/Bugzilla.pm b/docs/lib/Pod/Simple/HTML/Bugzilla.pm index 66e1d7b59..ffbd0775c 100644 --- a/docs/lib/Pod/Simple/HTML/Bugzilla.pm +++ b/docs/lib/Pod/Simple/HTML/Bugzilla.pm @@ -9,6 +9,7 @@ package Pod::Simple::HTML::Bugzilla; use 5.10.1; use strict; +use warnings; use parent qw(Pod::Simple::HTML); diff --git a/docs/lib/Pod/Simple/HTMLBatch/Bugzilla.pm b/docs/lib/Pod/Simple/HTMLBatch/Bugzilla.pm index bc60d0374..cb61082df 100644 --- a/docs/lib/Pod/Simple/HTMLBatch/Bugzilla.pm +++ b/docs/lib/Pod/Simple/HTMLBatch/Bugzilla.pm @@ -9,6 +9,7 @@ package Pod::Simple::HTMLBatch::Bugzilla; use 5.10.1; use strict; +use warnings; use parent qw(Pod::Simple::HTMLBatch); diff --git a/docs/makedocs.pl b/docs/makedocs.pl index 31ad0c610..6f353dc6d 100755 --- a/docs/makedocs.pl +++ b/docs/makedocs.pl @@ -1,4 +1,4 @@ -#!/usr/bin/perl -w +#!/usr/bin/perl # 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/. @@ -25,36 +25,23 @@ use 5.10.1; use strict; +use warnings; -use Cwd; -use File::Find; use File::Basename; -use File::Copy::Recursive qw(rcopy); - -# We need to be in this directory to use our libraries. -BEGIN { - require File::Basename; - import File::Basename qw(dirname); - chdir dirname($0); -} +BEGIN { 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::Constants qw(BUGZILLA_VERSION bz_locations); - +use Cwd; +use File::Copy::Recursive qw(rcopy); +use File::Find; use File::Path qw(rmtree); use File::Which qw(which); +use Pod::Simple; + +use Bugzilla::Constants qw(BUGZILLA_VERSION bz_locations); +use Pod::Simple::HTMLBatch::Bugzilla; +use Pod::Simple::HTML::Bugzilla; ############################################################################### # Subs @@ -65,8 +52,8 @@ sub MakeDocs { my ($name, $cmdline) = @_; say "Creating $name documentation ..." if defined $name; - say "$cmdline\n"; - system($cmdline) == 0 + say "make $cmdline\n"; + system('make', $cmdline) == 0 or $error_found = 1; print "\n"; } @@ -125,7 +112,7 @@ my $docparent = getcwd(); foreach my $lang (@langs) { chdir "$docparent/$lang"; - make_pod() if $pod_simple; + make_pod(); next if grep { $_ eq '--pod-only' } @ARGV; @@ -144,10 +131,7 @@ foreach my $lang (@langs) { } # Collect up local extension documentation into the extensions/ dir. - # Clear out old extensions docs - # For the life of me, I cannot get rmtree() to work here. It just returns - # silently without deleting anything - no errors. - system("rm -rf $lang/rst/extensions/*"); + rmtree("$lang/rst/extensions", 0, 1); foreach my $ext_name (keys %extensions) { my $src = $extensions{$ext_name} . "/*"; @@ -158,16 +142,16 @@ foreach my $lang (@langs) { chdir "$docparent/$lang"; - MakeDocs('HTML', 'make html'); - MakeDocs('TXT', 'make text'); + MakeDocs('HTML', 'html'); + MakeDocs('TXT', 'text'); if (grep { $_ eq '--with-pdf' } @ARGV) { if (which('pdflatex')) { - MakeDocs('PDF', 'make latexpdf'); + MakeDocs('PDF', 'latexpdf'); } elsif (which('rst2pdf')) { rmtree('pdf', 0, 1); - MakeDocs('PDF', 'make pdf'); + MakeDocs('PDF', 'pdf'); } else { say 'pdflatex or rst2pdf not found. Skipping PDF file creation'; diff --git a/t/011pod.t b/t/011pod.t index 71294dfe6..9c092eeb1 100644 --- a/t/011pod.t +++ b/t/011pod.t @@ -49,6 +49,7 @@ use constant MODULE_WHITELIST => qw( Bugzilla::Extension:: Bugzilla::Job:: Bugzilla::Migrate:: + docs::lib::Pod::Simple:: ); # Capture the TESTOUT from Test::More or Test::Builder for printing errors. diff --git a/t/Support/Files.pm b/t/Support/Files.pm index 85fa9f583..f3fae58fc 100644 --- a/t/Support/Files.pm +++ b/t/Support/Files.pm @@ -17,8 +17,8 @@ use File::Find; our @additional_files = (); our @files = glob('*'); -find(sub { push(@files, $File::Find::name) if $_ =~ /\.pm$/;}, 'Bugzilla'); -push(@files, 'extensions/create.pl'); +find(sub { push(@files, $File::Find::name) if $_ =~ /\.pm$/;}, qw(Bugzilla docs)); +push(@files, 'extensions/create.pl', 'docs/makedocs.pl'); our @extensions = grep { $_ ne 'extensions/create.pl' && ! -e "$_/disabled" } -- cgit v1.2.3-24-g4f1b