Browse Source

Bug 13758: Move the Koha version from kohaversion.pl

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>
3.20.x
Jonathan Druart 7 years ago
committed by Tomas Cohen Arazi
parent
commit
11049f9d02
  1. 7
      C4/Auth.pm
  2. 33
      C4/Context.pm
  3. 3
      C4/External/OverDrive.pm
  4. 3
      C4/Installer.pm
  5. 20
      Koha.pm
  6. 3
      Koha/Template/Plugin/Koha.pm
  7. 4
      about.pl
  8. 4
      installer/data/mysql/updatedatabase.pl
  9. 4
      installer/install.pl
  10. 19
      kohaversion.pl
  11. 6
      opac/maintenance.pl
  12. 4
      opac/svc/overdrive_proxy
  13. 14
      t/Koha_Template_Plugin_Koha.t
  14. 7
      t/db_dependent/Context.t

7
C4/Auth.pm

@ -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 ) {

33
C4/Context.pm

@ -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} = $];

3
C4/External/OverDrive.pm

@ -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 {

3
C4/Installer.pm

@ -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')) {

20
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;

3
Koha/Template/Plugin/Koha.pm

@ -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 {

4
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') {

4
installer/data/mysql/updatedatabase.pl

@ -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;
}

4
installer/install.pl

@ -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(),
);
}
}

19
kohaversion.pl

@ -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

6
opac/maintenance.pl

@ -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;
1;

4
opac/svc/overdrive_proxy

@ -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' ) {

14
t/Koha_Template_Plugin_Koha.t

@ -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,

7
t/db_dependent/Context.t

@ -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)) {

Loading…
Cancel
Save