]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 346594: Move GraphViz check into Bugzilla::Install::Requirements
authormkanat%bugzilla.org <>
Tue, 1 Aug 2006 05:34:20 +0000 (05:34 +0000)
committermkanat%bugzilla.org <>
Tue, 1 Aug 2006 05:34:20 +0000 (05:34 +0000)
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> (module owner) a=myk

Bugzilla/Install/Requirements.pm
checksetup.pl

index c5342966aa0a1ee3824809254abe4a6c5a6392e9..e521f6e111697c59cd5c4dfe6365b9a1f20d58e7 100644 (file)
@@ -31,6 +31,7 @@ our @EXPORT = qw(
     MOD_PERL_MODULES
 
     check_requirements
+    check_graphviz
     have_vers
     vers_cmp
     install_command
@@ -347,6 +348,36 @@ sub check_requirements {
 
 }
 
+sub check_graphviz {
+    my ($output) = @_;
+
+    return 1 if (Bugzilla->params->{'webdotbase'} =~ /^https?:/);
+
+    printf("Checking for %15s %-9s ", "GraphViz", "(any)") if $output;
+
+    my $return = 0;
+    if(-x Bugzilla->params->{'webdotbase'}) {
+        print "ok: found\n" if $output;
+        $return = 1;
+    } else {
+        print "not a valid executable: " . Bugzilla->params->{'webdotbase'} . "\n";
+    }
+
+    my $webdotdir = bz_locations()->{'webdotdir'};
+    # Check .htaccess allows access to generated images
+    if (-e "$webdotdir/.htaccess") {
+        my $htaccess = new IO::File("$webdotdir/.htaccess", 'r') 
+            || die "$webdotdir/.htaccess: " . $!;
+        if (!grep(/png/, $htaccess->getlines)) {
+            print "Dependency graph images are not accessible.\n";
+            print "delete $webdotdir/.htaccess and re-run checksetup.pl to fix.\n";
+        }
+        $htaccess->close;
+    }
+
+    return $return;
+}
+
 
 # This was originally clipped from the libnet Makefile.PL, adapted here to
 # use the below vers_cmp routine for accurate version checking.
@@ -499,6 +530,16 @@ represent the name of the module and the version that we require.
              C<optional> - Which optional modules are installed and
                            up-to-date enough for Bugzilla.
 
+=item C<check_graphviz($output)>
+
+Description: Checks if the graphviz binary specified in the 
+  C<webdotbase> parameter is a valid binary, or a valid URL.
+
+Params:      C<$output> - C<$true> if you want the function to
+                 print out information about what it's doing.
+
+Returns:     C<1> if the check was successful, C<0> otherwise.
+
 =item C<vers_cmp($a, $b)>
 
  Description: This is a comparison function, like you would use in
index 889b363afee33e26024588d7fb6396fbe04be140..813aa0a8369652dd822e8abcc306e1e3489953d1 100755 (executable)
@@ -375,7 +375,6 @@ create_htaccess() if $lc_hash->{'create_htaccess'};
 
 # XXX Some parts of checksetup still need these, right now.
 my $datadir   = bz_locations()->{'datadir'};
-my $webdotdir = bz_locations()->{'webdotdir'};
 
 # Remove parameters from the params file that no longer exist in Bugzilla,
 # and set the defaults for new ones
@@ -402,27 +401,7 @@ fix_all_file_permissions(!$silent);
 # If we are using a local 'dot' binary, verify the specified binary exists
 # and that the generated images are accessible.
 #
-
-if( Bugzilla->params->{'webdotbase'} && Bugzilla->params->{'webdotbase'} !~ /^https?:/ ) {
-    printf("Checking for %15s %-9s ", "GraphViz", "(any)") unless $silent;
-    if(-x Bugzilla->params->{'webdotbase'}) {
-        print "ok: found\n" unless $silent;
-    } else {
-        print "not a valid executable: " . Bugzilla->params->{'webdotbase'} . "\n";
-    }
-
-    # Check .htaccess allows access to generated images
-    if(-e "$webdotdir/.htaccess") {
-        open HTACCESS, "$webdotdir/.htaccess";
-        if(! grep(/png/,<HTACCESS>)) {
-            print "Dependency graph images are not accessible.\n";
-            print "delete $webdotdir/.htaccess and re-run checksetup.pl to fix.\n";
-        }
-        close HTACCESS;
-    }
-    print "\n" unless $silent;
-}
-
+check_graphviz(!$silent) if Bugzilla->params->{'webdotbase'};
 
 ###########################################################################
 # Populate groups table