View | Details | Raw Unified | Return to bug 28519
Collapse All | Expand All

(-)a/C4/Auth.pm (-29 / +5 lines)
Lines 1-31 Link Here
1
package CGI::Session::Serialize::yamlxs;
2
# Proof of concept: CGI::Session::Serialize::yamlxs for CGI::Session:
3
4
use strict;
5
use warnings;
6
7
# hacky hack to trick CGI::Session loader for serializers not to die in its "require":
8
$INC{'CGI/Session/Serialize/yamlxs.pm'} = '1';
9
10
use CGI::Session::ErrorHandler;
11
use YAML::XS ();
12
13
$CGI::Session::Serialize::yamlxs::VERSION = '0.1';
14
@CGI::Session::Serialize::yamlxs::ISA     = ( "CGI::Session::ErrorHandler" );
15
16
sub freeze {
17
    my ($self, $data) = @_;
18
    return YAML::XS::Dump($data);
19
}
20
21
sub thaw {
22
    my ($self, $string) = @_;
23
    return (YAML::XS::Load($string))[0];
24
}
25
# ********************************************************************
26
27
28
29
package C4::Auth;
1
package C4::Auth;
30
2
31
# Copyright 2000-2002 Katipo Communications
3
# Copyright 2000-2002 Katipo Communications
Lines 1899-1905 sub _get_session_params { Link Here
1899
sub get_session {
1871
sub get_session {
1900
    my $sessionID      = shift;
1872
    my $sessionID      = shift;
1901
    my $params = _get_session_params();
1873
    my $params = _get_session_params();
1902
    return CGI::Session->new( $params->{dsn}, $sessionID, $params->{dsn_args} );
1874
    my $session = CGI::Session->new( $params->{dsn}, $sessionID, $params->{dsn_args} );
1875
    if ( ! $session ){
1876
        die CGI::Session->errstr();
1877
    }
1878
    return $session;
1903
}
1879
}
1904
1880
1905
1881
(-)a/Makefile.PL (-2 / +37 lines)
Lines 334-339 my $target_map = { Link Here
334
  './koha-tmpl/opac-tmpl'       => {target => 'OPAC_TMPL_DIR', trimdir => -1},
334
  './koha-tmpl/opac-tmpl'       => {target => 'OPAC_TMPL_DIR', trimdir => -1},
335
  './kohaversion.pl'            => 'INTRANET_CGI_DIR',
335
  './kohaversion.pl'            => 'INTRANET_CGI_DIR',
336
  './labels'                    => 'INTRANET_CGI_DIR',
336
  './labels'                    => 'INTRANET_CGI_DIR',
337
  './lib'                       => {target => 'PERL_MODULE_LIB_DIR', trimdir => -1},
337
  './mainpage.pl'               => 'INTRANET_CGI_DIR',
338
  './mainpage.pl'               => 'INTRANET_CGI_DIR',
338
  './Makefile.PL'               => 'NONE',
339
  './Makefile.PL'               => 'NONE',
339
  './MANIFEST.SKIP'             => 'NONE',
340
  './MANIFEST.SKIP'             => 'NONE',
Lines 1433-1438 sub get_target_directories { Link Here
1433
        $dirmap{'OPAC_TMPL_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs', 'opac-tmpl');
1434
        $dirmap{'OPAC_TMPL_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs', 'opac-tmpl');
1434
        $dirmap{'OPAC_WWW_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs');
1435
        $dirmap{'OPAC_WWW_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs');
1435
        $dirmap{'PERL_MODULE_DIR'} = File::Spec->catdir(@basedir, $package, 'lib');
1436
        $dirmap{'PERL_MODULE_DIR'} = File::Spec->catdir(@basedir, $package, 'lib');
1437
        $dirmap{'PERL_MODULE_LIB_DIR'} = File::Spec->catdir(@basedir, $package, 'lib');
1436
        $dirmap{'KOHA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc');
1438
        $dirmap{'KOHA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc');
1437
        $dirmap{'ZEBRA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'zebradb');
1439
        $dirmap{'ZEBRA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'zebradb');
1438
        $dirmap{'Z3950_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'z3950');
1440
        $dirmap{'Z3950_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'z3950');
Lines 1464-1471 sub get_target_directories { Link Here
1464
        $skipdirs{'OPAC_TMPL_DIR'} = 1;
1466
        $skipdirs{'OPAC_TMPL_DIR'} = 1;
1465
        $dirmap{'OPAC_WWW_DIR'} = File::Spec->catdir($curdir, 'koha-tmpl');
1467
        $dirmap{'OPAC_WWW_DIR'} = File::Spec->catdir($curdir, 'koha-tmpl');
1466
        $skipdirs{'OPAC_WWW_DIR'} = 1;
1468
        $skipdirs{'OPAC_WWW_DIR'} = 1;
1469
        #NOTE: We're hacking the dirmap here, so that PERL_MODULE_DIR tokens get rewritten correctly for git installs
1467
        $dirmap{'PERL_MODULE_DIR'} = File::Spec->catdir($curdir);
1470
        $dirmap{'PERL_MODULE_DIR'} = File::Spec->catdir($curdir);
1468
        $skipdirs{'PERL_MODULE_DIR'} = 1;
1471
        $skipdirs{'PERL_MODULE_DIR'} = 1;
1472
        $dirmap{'PERL_MODULE_LIB_DIR'} = File::Spec->catdir($curdir,'lib');
1473
        $skipdirs{'PERL_MODULE_LIB_DIR'} = 1;
1469
        $dirmap{'KOHA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc');
1474
        $dirmap{'KOHA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc');
1470
        $dirmap{'ZEBRA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'zebradb');
1475
        $dirmap{'ZEBRA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'zebradb');
1471
        $dirmap{'Z3950_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'z3950');
1476
        $dirmap{'Z3950_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'z3950');
Lines 1494-1499 sub get_target_directories { Link Here
1494
        $dirmap{'OPAC_TMPL_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs', 'opac-tmpl');
1499
        $dirmap{'OPAC_TMPL_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs', 'opac-tmpl');
1495
        $dirmap{'OPAC_WWW_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs');
1500
        $dirmap{'OPAC_WWW_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs');
1496
        $dirmap{'PERL_MODULE_DIR'} = File::Spec->catdir(@basedir, $package, 'lib');
1501
        $dirmap{'PERL_MODULE_DIR'} = File::Spec->catdir(@basedir, $package, 'lib');
1502
        $dirmap{'PERL_MODULE_LIB_DIR'} = File::Spec->catdir(@basedir, $package, 'lib');
1497
        $dirmap{'KOHA_CONF_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'etc', $package);
1503
        $dirmap{'KOHA_CONF_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'etc', $package);
1498
        $dirmap{'ZEBRA_CONF_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'etc', $package, 'zebradb');
1504
        $dirmap{'ZEBRA_CONF_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'etc', $package, 'zebradb');
1499
        $dirmap{'Z3950_CONF_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'etc', $package, 'z3950');
1505
        $dirmap{'Z3950_CONF_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'etc', $package, 'z3950');
Lines 1646-1651 sub install { Link Here
1646
    # This means that we're completely overriding EU::MM's default
1652
    # This means that we're completely overriding EU::MM's default
1647
    # installation and uninstallation targets.
1653
    # installation and uninstallation targets.
1648
1654
1655
    my $perl5lib_dirs = _build_perl5lib_string({ target_dirs => $target_directories });
1656
1649
# If installation is on Win32, we need to do permissions different from *nix
1657
# If installation is on Win32, we need to do permissions different from *nix
1650
    if ( $^O =~ /darwin|linux|cygwin|freebsd|solaris/ ) { # this value needs to be verified for each platform and modified accordingly
1658
    if ( $^O =~ /darwin|linux|cygwin|freebsd|solaris/ ) { # this value needs to be verified for each platform and modified accordingly
1651
	    foreach my $key (sort keys %$target_directories) {
1659
	    foreach my $key (sort keys %$target_directories) {
Lines 1700-1706 install :: all install_koha set_koha_ownership set_koha_permissions warn_koha_en Link Here
1700
    $install .= "\t\$(NOECHO) \$(ECHO) you should set the following environment variables:\n";
1708
    $install .= "\t\$(NOECHO) \$(ECHO) you should set the following environment variables:\n";
1701
    $install .= "\t\$(NOECHO) \$(ECHO)\n";
1709
    $install .= "\t\$(NOECHO) \$(ECHO)\n";
1702
    $install .= "\t\$(NOECHO) \$(ECHO) export KOHA_CONF=\$(KOHA_DEST_KOHA_CONF_DIR)/koha-conf.xml\n";
1710
    $install .= "\t\$(NOECHO) \$(ECHO) export KOHA_CONF=\$(KOHA_DEST_KOHA_CONF_DIR)/koha-conf.xml\n";
1703
    $install .= "\t\$(NOECHO) \$(ECHO) export PERL5LIB=$target_directories->{'PERL_MODULE_DIR'}\n";
1711
    $install .= "\t\$(NOECHO) \$(ECHO) export PERL5LIB=$perl5lib_dirs\n";
1704
    $install .= "\t\$(NOECHO) \$(ECHO)\n";
1712
    $install .= "\t\$(NOECHO) \$(ECHO)\n";
1705
    $install .= "\t\$(NOECHO) \$(ECHO) For other post-installation tasks, please consult the README.\n";
1713
    $install .= "\t\$(NOECHO) \$(ECHO) For other post-installation tasks, please consult the README.\n";
1706
    $install .= "\t\$(NOECHO) \$(ECHO)\n";
1714
    $install .= "\t\$(NOECHO) \$(ECHO)\n";
Lines 1767-1775 sub postamble { Link Here
1767
    # rewrite-confg.PL
1775
    # rewrite-confg.PL
1768
1776
1769
    my $env;
1777
    my $env;
1778
1779
    #NOTE: Build __PERL5LIB_DIRS__ for rewrite-config.PL
1780
    my $perl5lib_dirs = _build_perl5lib_string({ target_dirs => $target_directories });
1781
    if ($perl5lib_dirs){
1782
        $env .= "export __PERL5LIB_DIRS__ := $perl5lib_dirs\n"
1783
    }
1784
1770
	# Hereagain, we must alter syntax per platform...
1785
	# Hereagain, we must alter syntax per platform...
1771
        {
1786
        {
1772
		$env = join("\n", map { "export __${_}__ := $target_directories->{$_}" } keys %$target_directories);
1787
		$env .= join("\n", map { "export __${_}__ := $target_directories->{$_}" } keys %$target_directories);
1773
		$env .= "\n\n";
1788
		$env .= "\n\n";
1774
		$env .= join("\n", map { "export __${_}__ := $config{$_}" } keys %config);
1789
		$env .= join("\n", map { "export __${_}__ := $config{$_}" } keys %config);
1775
	}
1790
	}
Lines 1777-1782 sub postamble { Link Here
1777
    return "$env\n";
1792
    return "$env\n";
1778
}
1793
}
1779
1794
1795
sub _build_perl5lib_string {
1796
    my ($args) = @_;
1797
    my %unique_map = ();
1798
    my $perl5lib_str;
1799
    my $target_dirs = $args->{target_dirs};
1800
    my @dir_codes = ("PERL_MODULE_DIR","PERL_MODULE_LIB_DIR");
1801
    if ($target_dirs){
1802
        foreach my $code (@dir_codes){
1803
            my $path = $target_dirs->{ $code };
1804
            if ($path){
1805
                $unique_map{$path} = 1 unless $unique_map{$path};
1806
            }
1807
        }
1808
        my @paths = sort keys %unique_map;
1809
        if (@paths){
1810
            $perl5lib_str = join(':',@paths);
1811
        }
1812
    }
1813
    return $perl5lib_str;
1814
}
1780
1815
1781
__END__
1816
__END__
1782
1817
(-)a/debian/scripts/koha-functions.sh (-1 / +1 lines)
Lines 330-336 adjust_paths_dev_install() Link Here
330
    if [ "$dev_install" != "" ] && [ "$dev_install" != "0" ]; then
330
    if [ "$dev_install" != "" ] && [ "$dev_install" != "0" ]; then
331
        DEV_INSTALL=1
331
        DEV_INSTALL=1
332
        KOHA_HOME=$(run_safe_xmlstarlet $instancename intranetdir)
332
        KOHA_HOME=$(run_safe_xmlstarlet $instancename intranetdir)
333
        PERL5LIB=$KOHA_HOME
333
        PERL5LIB="$KOHA_HOME:$KOHA_HOME/lib"
334
    else
334
    else
335
        DEV_INSTALL=""
335
        DEV_INSTALL=""
336
    fi
336
    fi
(-)a/etc/koha-httpd.conf (-3 / +3 lines)
Lines 16-22 Link Here
16
#  CustomLog __LOG_DIR__/koha-opac-access.log combined
16
#  CustomLog __LOG_DIR__/koha-opac-access.log combined
17
#  TransferLog __LOG_DIR__/koha-opac-access.log
17
#  TransferLog __LOG_DIR__/koha-opac-access.log
18
   SetEnv KOHA_CONF "__KOHA_CONF_DIR__/koha-conf.xml"
18
   SetEnv KOHA_CONF "__KOHA_CONF_DIR__/koha-conf.xml"
19
   SetEnv PERL5LIB "__PERL_MODULE_DIR__"
19
   SetEnv PERL5LIB "__PERL5LIB_DIRS__"
20
20
21
   # This syntax allows you to override a system preference
21
   # This syntax allows you to override a system preference
22
   # for a given virtual host. Use with caution!
22
   # for a given virtual host. Use with caution!
Lines 143-149 Link Here
143
   ErrorLog __LOG_DIR__/koha-error_log
143
   ErrorLog __LOG_DIR__/koha-error_log
144
#  TransferLog __LOG_DIR__/koha-access.log
144
#  TransferLog __LOG_DIR__/koha-access.log
145
   SetEnv KOHA_CONF "__KOHA_CONF_DIR__/koha-conf.xml"
145
   SetEnv KOHA_CONF "__KOHA_CONF_DIR__/koha-conf.xml"
146
   SetEnv PERL5LIB "__PERL_MODULE_DIR__"
146
   SetEnv PERL5LIB "__PERL5LIB_DIRS__"
147
   Options +FollowSymLinks
147
   Options +FollowSymLinks
148
148
149
   # If you are overriding any system preferences,
149
   # If you are overriding any system preferences,
Lines 254-260 Link Here
254
#  DocumentRoot __INTRANET_CGI_DIR__/api
254
#  DocumentRoot __INTRANET_CGI_DIR__/api
255
#  ServerName api.__WEBSERVER_HOST__:__WEBSERVER_PORT__
255
#  ServerName api.__WEBSERVER_HOST__:__WEBSERVER_PORT__
256
#  SetEnv KOHA_CONF "__KOHA_CONF_DIR__/koha-conf.xml"
256
#  SetEnv KOHA_CONF "__KOHA_CONF_DIR__/koha-conf.xml"
257
#  SetEnv PERL5LIB "__PERL_MODULE_DIR__"
257
#  SetEnv PERL5LIB "__PERL5LIB_DIRS__"
258
#  ErrorLog __LOG_DIR__/koha-api-error_log
258
#  ErrorLog __LOG_DIR__/koha-api-error_log
259
#
259
#
260
#  <IfModule mod_rewrite.c>
260
#  <IfModule mod_rewrite.c>
(-)a/etc/koha-worker.service (-1 / +1 lines)
Lines 4-10 Description=Koha Task Queue Worker Link Here
4
After=syslog.target network.target
4
After=syslog.target network.target
5
5
6
[Service]
6
[Service]
7
Environment=PERL5LIB=__PERL_MODULE_DIR__
7
Environment=PERL5LIB=__PERL5LIB_DIRS__
8
Environment=KOHA_CONF=__KOHA_CONF_DIR__/koha-conf.xml
8
Environment=KOHA_CONF=__KOHA_CONF_DIR__/koha-conf.xml
9
ExecStart=__SCRIPT_DIR__/background_jobs_worker.pl
9
ExecStart=__SCRIPT_DIR__/background_jobs_worker.pl
10
Restart=on-failure
10
Restart=on-failure
(-)a/lib/CGI/Session/Serialize/yamlxs.pm (+22 lines)
Line 0 Link Here
1
package CGI::Session::Serialize::yamlxs;
2
3
use strict;
4
use warnings;
5
6
use CGI::Session::ErrorHandler;
7
use YAML::XS ();
8
9
$CGI::Session::Serialize::yamlxs::VERSION = '0.1';
10
@CGI::Session::Serialize::yamlxs::ISA     = ( "CGI::Session::ErrorHandler" );
11
12
sub freeze {
13
    my ($self, $data) = @_;
14
    return YAML::XS::Dump($data);
15
}
16
17
sub thaw {
18
    my ($self, $string) = @_;
19
    return (YAML::XS::Load($string))[0];
20
}
21
22
1;
(-)a/misc/bin/koha-index-daemon-ctl.sh (-1 / +1 lines)
Lines 32-38 GROUP=__KOHA_GROUP__ Link Here
32
DBNAME=__DB_NAME__
32
DBNAME=__DB_NAME__
33
NAME=koha-index-daemon-$DBNAME
33
NAME=koha-index-daemon-$DBNAME
34
LOGDIR=__LOG_DIR__
34
LOGDIR=__LOG_DIR__
35
PERL5LIB=__PERL_MODULE_DIR__
35
PERL5LIB="__PERL5LIB_DIRS__"
36
KOHA_CONF=__KOHA_CONF_DIR__/koha-conf.xml
36
KOHA_CONF=__KOHA_CONF_DIR__/koha-conf.xml
37
ERRLOG=$LOGDIR/koha-index-daemon.err
37
ERRLOG=$LOGDIR/koha-index-daemon.err
38
STDOUT=$LOGDIR/koha-index-daemon.log
38
STDOUT=$LOGDIR/koha-index-daemon.log
(-)a/misc/koha-install-log (+2 lines)
Lines 64-66 FONT_DIR=__FONT_DIR__ Link Here
64
USE_ELASTICSEARCH=__USE_ELASTICSEARCH__
64
USE_ELASTICSEARCH=__USE_ELASTICSEARCH__
65
ELASTICSEARCH_SERVERS=__ELASTICSEARCH_SERVERS__
65
ELASTICSEARCH_SERVERS=__ELASTICSEARCH_SERVERS__
66
ELASTICSEARCH_INDEX=__ELASTICSEARCH_INDEX__
66
ELASTICSEARCH_INDEX=__ELASTICSEARCH_INDEX__
67
PERL_MODULE_LIB_DIR=__PERL_MODULE_LIB_DIR__
68
PERL5LIB_DIRS=__PERL5LIB_DIRS__
(-)a/rewrite-config.PL (-1 / +2 lines)
Lines 159-164 my %configuration = ( Link Here
159
  '__SMTP_USER_NAME__' => '',
159
  '__SMTP_USER_NAME__' => '',
160
  '__SMTP_PASSWORD__'  => '',
160
  '__SMTP_PASSWORD__'  => '',
161
  '__SMTP_DEBUG__'     => '0',
161
  '__SMTP_DEBUG__'     => '0',
162
  '__PERL_MODULE_LIB_DIR__'  => "$prefix/lib",
163
  '__PERL5LIB_DIRS__'  => "$prefix/lib",
162
);
164
);
163
165
164
# Override configuration from the environment
166
# Override configuration from the environment
165
- 

Return to bug 28519