Bug 13758: Move the Koha version from kohaversion.pl
authorJonathan Druart <jonathan.druart@biblibre.com>
Tue, 17 Mar 2015 15:02:41 +0000 (16:02 +0100)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Thu, 7 May 2015 14:39:04 +0000 (11:39 -0300)
It will permit not to run another perl interpreter.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

14 files changed:
C4/Auth.pm
C4/Context.pm
C4/External/OverDrive.pm
C4/Installer.pm
Koha.pm [new file with mode: 0644]
Koha/Template/Plugin/Koha.pm
about.pl
installer/data/mysql/updatedatabase.pl
installer/install.pl
kohaversion.pl
opac/maintenance.pl
opac/svc/overdrive_proxy
t/Koha_Template_Plugin_Koha.t
t/db_dependent/Context.t

index 4b02701..9a5d6b4 100644 (file)
@@ -30,6 +30,7 @@ use C4::Templates;    # to get the template
 use C4::Languages;
 use C4::Branch;       # GetBranches
 use C4::Search::History;
+use Koha;
 use Koha::AuthUtils qw(hash_password);
 use POSIX qw/strftime/;
 use List::MoreUtils qw/ any /;
@@ -662,7 +663,7 @@ sub _version_check {
     # there is no DB version, it's a fresh install,
     # go to web installer
     # there is a DB version, compare it to the code version
-    my $kohaversion = C4::Context::KOHAVERSION;
+    my $kohaversion = Koha::version();
 
     # remove the 3 last . to have a Perl number
     $kohaversion =~ s/(.*\..*)\.(.*)\.(.*)/$1$2$3/;
@@ -1311,7 +1312,7 @@ sub check_api_auth {
         # database has not been installed yet
         return ( "maintenance", undef, undef );
     }
-    my $kohaversion = C4::Context::KOHAVERSION;
+    my $kohaversion = Koha::version();
     $kohaversion =~ s/(.*\..*)\.(.*)\.(.*)/$1$2$3/;
     if ( C4::Context->preference('Version') < $kohaversion ) {
 
@@ -1565,7 +1566,7 @@ sub check_cookie_auth {
         # database has not been installed yet
         return ( "maintenance", undef );
     }
-    my $kohaversion = C4::Context::KOHAVERSION;
+    my $kohaversion = Koha::version();
     $kohaversion =~ s/(.*\..*)\.(.*)\.(.*)/$1$2$3/;
     if ( C4::Context->preference('Version') < $kohaversion ) {
 
index 42e7aa2..a51f5c7 100644 (file)
@@ -103,6 +103,7 @@ use ZOOM;
 use XML::Simple;
 use C4::Boolean;
 use C4::Debug;
+use Koha;
 use POSIX ();
 use DateTime::TimeZone;
 use Module::Load::Conditional qw(can_load);
@@ -204,36 +205,6 @@ $context = undef;        # Initially, no context is set
 @context_stack = ();        # Initially, no saved contexts
 
 
-=head2 KOHAVERSION
-
-returns the kohaversion stored in kohaversion.pl file
-
-=cut
-
-sub KOHAVERSION {
-    my $cgidir = C4::Context->intranetdir;
-
-    # Apparently the GIT code does not run out of a CGI-BIN subdirectory
-    # but distribution code does?  (Stan, 1jan08)
-    if(-d $cgidir . "/cgi-bin"){
-        my $cgidir .= "/cgi-bin";
-    }
-    
-    do $cgidir."/kohaversion.pl" || die "NO $cgidir/kohaversion.pl";
-    return kohaversion();
-}
-
-=head2 final_linear_version
-
-Returns the version number of the final update to run in updatedatabase.pl.
-This number is equal to the version in kohaversion.pl
-
-=cut
-
-sub final_linear_version {
-    return KOHAVERSION;
-}
-
 =head2 read_config_file
 
 Reads the specified Koha config file. 
@@ -1199,7 +1170,7 @@ Gets various version info, for core Koha packages, Currently called from carp ha
 # A little example sub to show more debugging info for CGI::Carp
 sub get_versions {
     my %versions;
-    $versions{kohaVersion}  = KOHAVERSION();
+    $versions{kohaVersion}  = Koha::version();
     $versions{kohaDbVersion} = C4::Context->preference('version');
     $versions{osVersion} = join(" ", POSIX::uname());
     $versions{perlVersion} = $];
index bed0d55..338dd76 100644 (file)
@@ -20,6 +20,7 @@ package C4::External::OverDrive;
 use strict;
 use warnings;
 
+use Koha;
 use JSON;
 use Koha::Cache;
 use HTTP::Request;
@@ -39,7 +40,7 @@ BEGIN {
 
 sub _request {
     my ( $request ) = @_;
-    my $ua = LWP::UserAgent->new( "Koha " . C4::Context->KOHAVERSION );
+    my $ua = LWP::UserAgent->new( "Koha " . $KOHA::VERSION );
 
     my $response;
     eval {
index 0ccde90..d15be1f 100644 (file)
@@ -24,6 +24,7 @@ use Encode qw( encode is_utf8 );
 our $VERSION = 3.07.00.049;
 use C4::Context;
 use C4::Installer::PerlModules;
+use Koha;
 
 =head1 NAME
 
@@ -389,7 +390,7 @@ Koha software version.
 sub set_version_syspref {
     my $self = shift;
 
-    my $kohaversion=C4::Context::KOHAVERSION;
+    my $kohaversion = Koha::version();
     # remove the 3 last . to have a Perl number
     $kohaversion =~ s/(.*\..*)\.(.*)\.(.*)/$1$2$3/;
     if (C4::Context->preference('Version')) {
diff --git a/Koha.pm b/Koha.pm
new file mode 100644 (file)
index 0000000..6560e61
--- /dev/null
+++ b/Koha.pm
@@ -0,0 +1,20 @@
+package Koha;
+
+use Modern::Perl;
+
+use vars qw{ $VERSION };
+
+#the kohaversion is divided in 4 parts :
+# - #1 : the major number. 3 atm
+# - #2 : the functional release. 00 atm
+# - #3 : the subnumber, moves only on a public release
+# - #4 : the developer version. The 4th number is the database subversion.
+#        used by developers when the database changes. updatedatabase take care of the changes itself
+#        and is automatically called by Auth.pm when needed.
+$VERSION = "3.19.00.038";
+
+sub version {
+    return $VERSION;
+}
+
+1;
index 7d562e7..ecb6266 100644 (file)
@@ -23,6 +23,7 @@ use Encode qw( encode );
 use base qw( Template::Plugin );
 
 use C4::Context;
+use Koha;
 
 =pod
 
@@ -46,7 +47,7 @@ sub Preference {
 }
 
 sub Version {
-    my $version_string = C4::Context::KOHAVERSION;
+    my $version_string = Koha::version();
     my ($major,$minor,$maintenance,$development) = split('\.',$version_string);
 
     return {
index cf8ab4f..34c98ef 100755 (executable)
--- a/about.pl
+++ b/about.pl
@@ -33,6 +33,8 @@ use C4::Auth;
 use C4::Context;
 use C4::Installer;
 
+use Koha;
+
 #use Smart::Comments '####';
 
 my $query = new CGI;
@@ -47,7 +49,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     }
 );
 
-my $kohaVersion   = C4::Context::KOHAVERSION;
+my $kohaVersion   = Koha::version();
 my $osVersion     = `uname -a`;
 my $perl_path = $^X;
 if ($^O ne 'VMS') {
index 1161752..394e4ba 100755 (executable)
@@ -39,6 +39,8 @@ use C4::Installer;
 use C4::Dates;
 use Koha::Database;
 
+use Koha;
+
 use MARC::Record;
 use MARC::File::XML ( BinaryEncoding => 'utf8' );
 
@@ -10509,7 +10511,7 @@ sub CheckVersion {
     return 1 if ( $proposed_version =~ m/XXX/ );
 
     if ( C4::Context->preference("Version") < $version_number
-        && $version_number <= TransformToNum( C4::Context->final_linear_version ) )
+        && $version_number <= TransformToNum( $Koha::VERSION ) )
     {
         return 1;
     }
index 1fbc685..6b56777 100755 (executable)
@@ -14,6 +14,8 @@ use C4::Templates;
 use C4::Languages qw(getAllLanguages getTranslatedLanguages);
 use C4::Installer;
 
+use Koha;
+
 my $query = new CGI;
 my $step  = $query->param('step');
 
@@ -398,7 +400,7 @@ elsif ( $step && $step == 3 ) {
                 $dbversion = "$1.$2.$3.$4";
                 $template->param("upgrading" => 1,
                                 "dbversion" => $dbversion,
-                                "kohaversion" => C4::Context->KOHAVERSION,
+                                "kohaversion" => Koha::version(),
                                 );
             }
         }
index f4259db..d215634 100644 (file)
@@ -1,23 +1,10 @@
 # the next koha public release version number;
 
-=head1 FUNCTIONS
-
-=head2 kohaversion
-
-the kohaversion is divided in 4 parts :
- - #1 : the major number. 3 atm
- - #2 : the functional release. 00 atm
- - #3 : the subnumber, moves only on a public release
- - #4 : the developer version. The 4th number is the database subversion.
-        used by developers when the database changes. updatedatabase take care of the changes itself
-        and is automatically called by Auth.pm when needed.
-
-=cut
-
-use strict;
+use Modern::Perl;
+use Koha;
 
 sub kohaversion {
-    our $VERSION = '3.19.00.038';
+    our $VERSION = $Koha::VERSION;
     # version needs to be set this way
     # so that it can be picked up by Makefile.PL
     # during install
index 2a1cad8..1839e2e 100755 (executable)
@@ -22,11 +22,13 @@ use C4::Auth;
 use C4::Output;
 use C4::Templates qw/gettemplate/;
 
+use Koha;
+
 my $query = new CGI;
 my $template = C4::Templates::gettemplate( 'maintenance.tt', 'opac', $query, 0 );
 
 my $koha_db_version = C4::Context->preference('Version');
-my $kohaversion     = C4::Context::KOHAVERSION;
+my $kohaversion     = Koha::version();
 # Strip dots from version
 $kohaversion     =~ s/\.//g if defined $kohaversion;
 $koha_db_version =~ s/\.//g if defined $koha_db_version;
@@ -40,4 +42,4 @@ else {
     print $query->redirect("/cgi-bin/koha/opac-main.pl");
 }
 
-1;
\ No newline at end of file
+1;
index 22f4b1b..fdddbbb 100755 (executable)
@@ -42,6 +42,8 @@ use C4::Context;
 use C4::External::OverDrive;
 use C4::Output;
 
+use Koha;
+
 my $query = new CGI;
 
 my $token;
@@ -62,7 +64,7 @@ if ( !IsOverDriveEnabled() || !( $token = GetOverDriveToken() ) ) {
 my $request = HTTP::Request::Common::GET( "https://api.overdrive.com/v1" . $query->path_info . '?' . $query->query_string );
 $request->header( Authorization => $token );
 
-my $ua = LWP::UserAgent->new( "Koha " . C4::Context->KOHAVERSION );
+my $ua = LWP::UserAgent->new( "Koha " . Koha::version() );
 
 my $response = $ua->request( $request ) ;
 if ( $response->code eq '500' ) {
index e22e0d8..50c198f 100644 (file)
@@ -26,19 +26,19 @@ use String::Random;
 use_ok( 'Koha::Template::Plugin::Koha' );
 ok( my $cache = Koha::Template::Plugin::Koha->new() );
 
-subtest "Koha::Template::Plugin::Koha::Version tests" => sub {
+subtest "Koha::Template::Plugin::Koha::version tests" => sub {
 
     plan tests => 2;
 
-    # Variables for mocking KOHAVERSION
+    # Variables for mocking Koha::version()
     my $major;
     my $minor;
     my $maintenance;
     my $development;
 
-    # Mock C4::Context::KOHAVERSION
-    my $context = new Test::MockModule('C4::Context');
-    $context->mock( 'KOHAVERSION', sub {
+    # Mock Koha::version()
+    my $koha = new Test::MockModule('Koha');
+    $koha->mock( 'Version', sub {
         return "$major.$minor.$maintenance.$development";
     });
 
@@ -49,7 +49,7 @@ subtest "Koha::Template::Plugin::Koha::Version tests" => sub {
     $maintenance = $rnd->randregex('\d\d');
     $development = $rnd->randregex('\d\d\d');
     my $version = "$major.$minor.$maintenance.$development";
-    my $res = Koha::Template::Plugin::Koha::Version( $version );
+    my $res = Koha::Template::Plugin::Koha::version( $version );
     is_deeply( $res, {
         major       => $major,
         release     => $major . "." . $minor,
@@ -64,7 +64,7 @@ subtest "Koha::Template::Plugin::Koha::Version tests" => sub {
     $maintenance = $rnd->randregex('\d\d');
     $development = "000";
     $version = "$major.$minor.$maintenance.$development";
-    $res = Koha::Template::Plugin::Koha::Version( $version );
+    $res = Koha::Template::Plugin::Koha::version( $version );
     is_deeply( $res, {
         major       => $major,
         release     => $major . "." . $minor,
index feb2a43..8d93c99 100755 (executable)
@@ -20,13 +20,6 @@ BEGIN {
 
 ok($koha = C4::Context->new,  'C4::Context->new');
 ok($dbh = C4::Context->dbh(), 'Getting dbh from C4::Context');
-ok($ret = C4::Context->KOHAVERSION, '  (function)  KOHAVERSION = ' . ($ret||''));
-ok($ret =       $koha->KOHAVERSION, '       $koha->KOHAVERSION = ' . ($ret||''));
-ok(
-    TransformVersionToNum( C4::Context->final_linear_version ) <=
-      TransformVersionToNum( C4::Context->KOHAVERSION ),
-    'Final linear version is less than or equal to kohaversion.pl'
-);
 my @keys = keys %$koha;
 my $width = 0;
 if (ok(@keys)) {