Bugzilla – Attachment 2115 Details for
Bug 4444
Centralize Code Handling Perl Dependencies
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[4/5] Ports installer/install.pl to new modules
0004-4-5-Enhancement-Bug-4444-Centralize-Code-Handling-Pe.patch (text/plain), 9.55 KB, created by
Chris Cormack
on 2010-05-16 01:31:00 UTC
(
hide
)
Description:
[4/5] Ports installer/install.pl to new modules
Filename:
MIME Type:
Creator:
Chris Cormack
Created:
2010-05-16 01:31:00 UTC
Size:
9.55 KB
patch
obsolete
>From 6144a2ef1561012ca88d8f722203c42daaa0e7ff Mon Sep 17 00:00:00 2001 >From: Chris Nighswonger <cnighswonger@foundations.edu> >Date: Wed, 12 May 2010 22:37:01 -0400 >Subject: [PATCH 4/5] [4/5] Enhancement Bug 4444: Centralize Code Handling Perl Dependencies >Content-Type: text/plain; charset="utf-8" > >Porting install.pl over to use C4::Installer::PerlModules >--- > installer/install.pl | 148 ++++---------------- > .../prog/en/modules/installer/step1.tmpl | 39 ++---- > 2 files changed, 42 insertions(+), 145 deletions(-) > >diff --git a/installer/install.pl b/installer/install.pl >index 80df97f..437d03f 100755 >--- a/installer/install.pl >+++ b/installer/install.pl >@@ -4,16 +4,15 @@ use strict; > use warnings; > use diagnostics; > >-# use Install; > use InstallAuth; >+use CGI; >+use IPC::Cmd; >+ > use C4::Context; > use C4::Output; > use C4::Languages qw(getAllLanguages getTranslatedLanguages); > use C4::Installer; > >-use CGI; >-use IPC::Cmd; >- > my $query = new CGI; > my $step = $query->param('step'); > >@@ -57,126 +56,35 @@ if ( $step && $step == 1 ) { > #Checking ALL perl Modules and services needed are installed. > #Whenever there is an error, adding a report to the page > $template->param( language => 1 ); >- my $problem; >+ $template->param( 'checkmodule' => 1 ); # we start with the assumption that there are no problems and set this to 0 if there are > > unless ( $] >= 5.006001 ) { # Bug 179 >- $template->param( "problems" => 1, "perlversion" => 1 ); >- $problem = 1; >- } >- >- # We could here use a special find >- my @missing = (); >- unless ( eval { require ZOOM } ) { >- push @missing, { name => "ZOOM" }; >- } >- unless ( eval { require YAML::Syck } ) { >- push @missing, { name => "YAML::Syck" }; >- } >- unless ( eval { require LWP::Simple } ) { >- push @missing, { name => "LWP::Simple" }; >- } >- unless ( eval { require XML::Simple } ) { >- push @missing, { name => "XML::Simple" }; >- } >- unless ( eval { require MARC::File::XML } ) { >- push @missing, { name => "MARC::File::XML" }; >- } >- unless ( eval { require MARC::File::USMARC } ) { >- push @missing, { name => "MARC::File::USMARC" }; >- } >- unless ( eval { require DBI } ) { >- push @missing, { name => "DBI" }; >- } >- unless ( eval { require Date::Manip } ) { >- push @missing, { name => "Date::Manip" }; >- } >- unless ( eval { require DBD::mysql } ) { >- push @missing, { name => "DBD::mysql" }; >- } >- unless ( eval { require HTML::Template::Pro } ) { >- push @missing, { name => "HTML::Template::Pro" }; >- } >- unless ( eval { require Date::Calc } ) { >- push @missing, { name => "Date::Calc" }; >- } >- unless ( eval { require Digest::MD5 } ) { >- push @missing, { name => "Digest::MD5" }; >- } >- unless ( eval { require MARC::Record } ) { >- push @missing, { name => "MARC::Record" }; >- } >- unless ( eval { require Mail::Sendmail } ) { >- push @missing, { name => "Mail::Sendmail", usagemail => 1 }; >- } >- unless ( eval { require List::MoreUtils } ) { >- push @missing, { name => "List::MoreUtils" }; >- } >- unless ( eval { require XML::RSS } ) { >- push @missing, { name => "XML::RSS" }; >- } >- unless ( eval { require CGI::Carp } ) { >- push @missing, { name => "CGI::Carp" }; >+ $template->param( problems => 1, perlversion => 1, checkmodule => 0 ); > } > >+ my $perl_modules = C4::Installer::PerlModules->new; >+ $perl_modules->version_info; > >-# The following modules are not mandatory, depends on how the library want to use Koha >- unless ( eval { require PDF::API2 } ) { >- if ( $#missing >= 0 ) { # only when $#missing >= 0 so this isn't fatal >- push @missing, { name => "PDF::API2", usagebarcode => 1 }; >- } >- } >- unless ( eval { require GD::Barcorde } ) { >- if ( $#missing >= 0 ) { # only when $#missing >= 0 so this isn't fatal >- push @missing, >- { name => "GD::Barcode", usagebarcode => 1, usagespine => 1 }; >- } >- } >- unless ( eval { require GD } ) { >- if ( $#missing >= 0 ) { # only when $#missing >= 0 so this isn't fatal >- push @missing, >- { name => "GD", usagepatronimages => 1 }; >- } >- } >- unless ( eval { require Graphics::Magick } ) { >- if ( $#missing >= 0 ) { # only when $#missing >= 0 so this isn't fatal >- push @missing, >- { name => "Graphics::Magick", usagepatroncards => 1 }; >- } >- } >- unless ( eval { require Data::Random } ) { >- if ( $#missing >= 0 ) { # only when $#missing >= 0 so this isn't fatal >- push @missing, { name => "Data::Random", usagebarcode => 1 }; >- } >- } >- unless ( eval { require PDF::Reuse::Barcode } ) { >- if ( $#missing >= 0 ) { # only when $#missing >= 0 so this isn't fatal >- push @missing, { name => "PDF::Reuse::Barcode", usagebarcode => 1 }; >- } >- } >- unless ( eval { require PDF::Report } ) { >- if ( $#missing >= 0 ) { # only when $#missing >= 0 so this isn't fatal >- push @missing, { name => "PDF::Report", usagebarcode => 1 }; >- } >- } >- unless ( eval { require Algorithm::CheckDigits } ) { >- if ( $#missing >= 0 ) { # only when $#missing >= 0 so this isn't fatal >- push @missing, { name => "Algorithm::CheckDigits", usagebarcode => 1 }; >- } >- } >- unless ( eval { require GD::Barcode::UPCE } ) { >- if ( $#missing >= 0 ) { # only when $#missing >= 0 so this isn't fatal >- push @missing, { name => "GD::Barcode::UPCE", usagepine => 1 }; >- } >- } >- unless ( eval { require Net::LDAP } ) { >- if ( $#missing >= 0 ) { # only when $#missing >= 0 so this isn't fatal >- push @missing, { name => "Net::LDAP", usageLDAP => 1 }; >+ my $modules = $perl_modules->get_attr('missing_pm'); >+ if (scalar(@$modules)) { >+ my @components = (); >+ my $checkmodule = 1; >+ foreach (@$modules) { >+ my ($module, $stats) = each %$_; >+ $checkmodule = 0 if $stats->{'required'}; >+ push( >+ @components, >+ { >+ name => $module, >+ version => $stats->{'min_ver'}, >+ require => $stats->{'required'}, >+ usage => $stats->{'usage'}, >+ } >+ ); > } >+ @components = sort {$a->{'name'} cmp $b->{'name'}} @components; >+ $template->param( missing_modules => \@components, checkmodule => $checkmodule ); > } >- $template->param( missings => \@missing ) if ( scalar(@missing) > 0 ); >- $template->param( 'checkmodule' => 1 ) >- unless ( scalar(@missing) && $problem ); >- > } > elsif ( $step && $step == 2 ) { > # >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step1.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step1.tmpl >index 3226622..23ecb65 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step1.tmpl >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step1.tmpl >@@ -31,32 +31,19 @@ listed, please inform your systems administrator.</p> > <!--/TMPL_UNLESS--> > <!--TMPL_IF Name="language"--> > <!--TMPL_UNLESS Name="checkmodule"--> >- <!--TMPL_IF Name="missing"--> >- <p>Some perl modules are missing.<br /> >+ <!--TMPL_IF Name="missing_modules"--> >+ <p>Some perl modules are missing. Modules in red <b>must</b> be installed before you may continue.<br /> > <ul> >- <!--TMPL_LOOP Name="missing"--> >+ <!--TMPL_LOOP Name="missing_modules"--> >+ <!--TMPL_IF Name="require"--> >+ <li style="color:#FF0000;font-weight:bold;"><!--TMPL_VAR Name="name"--> >+ <!-- TMPL_ELSE --> > <li><!--TMPL_VAR Name="name"--> >- <!--TMPL_IF Name="usagemail"--> >- <br /> This module is used whenever Koha has to send email. >- <!--TMPL_ELSIF Name="usagebarcode"--> >- <br /> This module is needed if you intend to print barcodes. >- <!--TMPL_ELSIF Name="usagespine"--> >- <br /> This module is needed if you intend to print spine labels. >- <!--TMPL_ELSIF Name="usageLDAP"--> >- <br /> This module is needed if you intend to use LDAP for authentication. >- <!--TMPL_ELSIF Name="usagepatronimages"--> >- <br /> This module is needed if you intend to use patron images. >- <!--TMPL_ELSIF Name="usagepatroncards"--> >- <br /> This module is needed if you intend to use the patron card creator. > <!--/TMPL_IF--> >+ <br /> Version: <!--TMPL_VAR Name="version"--> >+ <br /> Usage: <!--TMPL_VAR Name="usage"--> > </li> > <!--/TMPL_LOOP--> >- Please consider installing these modules before continuing. >- <pre> >- <!--TMPL_LOOP Name="missing"--> >- perl -MCPAN -e "install <!--TMPL_VAR Name="name"-->"; >- <!--/TMPL_LOOP--> >- </pre> > <!--/TMPL_IF--> > <!--TMPL_IF Name="problems"--> > <p>I encountered some problems.</p> >@@ -68,13 +55,15 @@ listed, please inform your systems administrator.</p> > </ul> > <!--/TMPL_IF--> > <!--/TMPL_UNLESS--> >- <!--TMPL_IF Name="checkmodule"--> > <form name="checkmodules" action="install.pl"> >-<p> All dependencies installed. >-</p> >+<!--TMPL_IF Name="checkmodule"--> > <input type="hidden" name="step" value="2" /> >+<p> All dependencies installed.</p> > <p>Please click next to continue <input value="Next >>" type="submit" /></p> >+<!-- TMPL_ELSE --> >+<input type="hidden" name="step" value="1" /> >+<p>Click to recheck dependencies <input value="Recheck" type="submit" /></p> >+<!--/TMPL_IF--> > </form> >- <!--/TMPL_IF--> > <!--/TMPL_IF--> > <!-- TMPL_INCLUDE name="intranet-bottom.inc" --> >-- >1.7.0.4 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 4444
:
2111
|
2112
|
2113
|
2114
| 2115 |
2116