'./changelanguage.pl' => 'INTRANET_CGI_DIR',
'./check_sysprefs.pl' => 'NONE',
'./circ' => 'INTRANET_CGI_DIR',
+ './offline_circ' => 'INTRANET_CGI_DIR',
'./edithelp.pl' => 'INTRANET_CGI_DIR',
'./etc' => { target => 'KOHA_CONF_DIR', trimdir => -1 },
'./etc/zebradb' => { target => 'ZEBRA_CONF_DIR', trimdir => -1 },
'./reviews' => 'INTRANET_CGI_DIR',
'./rewrite-config.PL' => 'NONE',
'./reviews' => 'INTRANET_CGI_DIR',
- './rss' => 'MISC_DIR',
'./serials' => 'INTRANET_CGI_DIR',
'./skel' => 'NONE',
'./skel/var/log/koha' => { target => 'LOG_DIR', trimdir => -1 },
'./suggestion' => 'INTRANET_CGI_DIR',
'./svc' => 'INTRANET_CGI_DIR',
'./t' => 'NONE',
+ './tags' => 'INTRANET_CGI_DIR',
'./tmp' => 'NONE', # FIXME need to determine whether
# Koha generates any persistent temp files
# that should go in /var/tmp/koha
'PAZPAR2_PORT' => '11002',
'RUN_DATABASE_TESTS' => 'no',
'PATH_TO_ZEBRA' => '',
+ 'USE_MEMCACHED' => 'no',
+ 'MEMCACHED_SERVERS' => '127.0.0.1:11211',
+ 'MEMCACHED_NAMESPACE' => 'KOHA'
);
-# set some default configuratio options based on OS
+# set some default configuration options based on OS
# more conditions need to be added for other OS's
# this should probably also incorporate usage of Win32::GetOSName() and/or Win32::GetOSVersion()
# to allow for more granular decisions based on which Win32 platform
'ZEBRA_MARC_FORMAT' => { 'marc21' => 1, 'unimarc' => 1 }, # FIXME should generate from contents of distributation
'ZEBRA_LANGUAGE' => { 'en' => 1, 'fr' => 1 }, # FIXME should generate from contents of distribution
'RUN_DATABASE_TESTS' => { 'yes' => 1, 'no' => 1 },
+ 'USE_MEMCACHED' => { 'yes' => 1, 'no' => 1 },
);
# get settings from command-line
);
WriteMakefile(
- NAME => 'koha',
- #VERSION => strftime('2.9.%Y%m%d%H',gmtime),
- VERSION_FROM => 'kohaversion.pl',
- ABSTRACT => 'Award-winning integrated library system (ILS) and Web OPAC',
- AUTHOR => 'Koha Developers <koha-devel@nongnu.org>',
- NO_META => 1,
- PREREQ_PM => {
-# awaiting package maintainer's use of $VERSION
-#'Algorithm::CheckDigits' => 0.48,
-#'Algorithm::CheckDigits::M43_001' => 0.48,
-'Biblio::EndnoteStyle' => 0.05,
-'CGI' => 3.15,
-'CGI::Carp' => 1.29,
-'CGI::Session' => '4.10',
-'Class::Factory::Util' => 1.6,
-'Class::Accessor' => 0.30,
-'DBD::mysql' => 4.004,
-'DBI' => 1.53,
-'Data::ICal' => 0.13,
-'Data::Dumper' => 2.121,
-'Date::Calc' => 5.4,
-'Date::ICal' => 1.72,
-'Date::Manip' => 5.44,
-'Digest::MD5' => 2.36,
-'File::Temp' => 0.16,
-'GD::Barcode::UPCE' => 1.1,
-'Getopt::Long' => 2.35,
-'Getopt::Std' => 1.05,
-'HTML::Template::Pro' => 0.69,
-'HTML::Scrubber' => 0.08,
-'HTTP::Cookies' => 1.39,
-'HTTP::Request::Common' => 1.26,
-'Image::Magick' => 6.2,
-'LWP::Simple' => 1.41,
-'LWP::UserAgent' => 2.033,
-'Lingua::Stem' => 0.82,
-'List::Util' => 1.18,
-'List::MoreUtils' => 0.21,
-'Locale::Language' => 2.07,
-'MARC::Charset' => 0.98,
-'MARC::Crosswalk::DublinCore' => 0.02,
-'MARC::File::XML' => 0.88,
-'MARC::Record' => 2.00,
-'MIME::Base64' => 3.07,
-'MIME::QuotedPrint' => 3.07,
-'Mail::Sendmail' => 0.79,
-'Net::LDAP' => 0.33,
-'Net::LDAP::Filter' => 0.14,
-'Net::Z3950::ZOOM' => 1.16,
-'PDF::API2' => 2.000,
-'PDF::API2::Page' => 2.000,
-'PDF::API2::Util' => 2.000,
-'PDF::Reuse' => 0.33,
-'PDF::Reuse::Barcode' => 0.05,
-'POE' => 0.9999,
-'POSIX' => 1.09,
-'Schedule::At' => 1.06,
-'Term::ANSIColor' => 1.10,
-'Test' => 1.25,
-'Test::Harness' => 2.56,
-'Test::More' => 0.62,
-'Text::CSV' => 0.01,
-'Text::CSV_XS' => 0.32,
-'Text::Iconv' => 1.7,
-'Text::Wrap' => 2005.082401,
-'Time::HiRes' => 1.86,
-'Time::localtime' => 1.02,
-'Unicode::Normalize' => 0.32,
-'XML::Dumper' => 0.81,
-'XML::LibXML' => 1.59,
-'XML::LibXSLT' => 1.59,
-'XML::SAX::ParserFactory' => 1.01,
-'XML::Simple' => 2.14,
-'XML::RSS' => 1.31,
-'YAML::Syck' => 0.71,
- },
-
- # File tree mapping
- PM => $file_map,
-
- # Man pages generated from POD
- INSTALLMAN1DIR => File::Spec->catdir($target_directories->{'MAN_DIR'}, 'man1'),
- INSTALLMAN3DIR => File::Spec->catdir($target_directories->{'MAN_DIR'}, 'man3'),
-
- PL_FILES => $pl_files,
-
+ NAME => 'koha',
+ #VERSION => strftime('2.9.%Y%m%d%H',gmtime),
+ VERSION_FROM => 'kohaversion.pl',
+ ABSTRACT => 'Award-winning integrated library system (ILS) and Web OPAC',
+ AUTHOR => 'Koha Developers <koha-devel@nongnu.org>',
+ NO_META => 1,
+ PREREQ_PM => {
+ 'Algorithm::CheckDigits' => 0.50,
+ 'Biblio::EndnoteStyle' => 0.05,
+ 'CGI' => 3.15,
+ 'CGI::Carp' => 1.29,
+ 'CGI::Session' => 4.20,
+ 'CGI::Session::Serialize::yaml' => 4.20,
+ 'Class::Factory::Util' => 1.6,
+ 'Class::Accessor' => 0.30,
+ 'DBD::mysql' => 4.004,
+ 'DBD::SQLite2' => 0.33, # optional, used for offline circulation
+ 'DBI' => 1.53,
+ 'Data::Dumper' => 2.121,
+ 'Data::ICal' => 0.13,
+ 'Date::Calc' => 5.4,
+ 'Date::ICal' => 1.72,
+ 'Date::Manip' => 5.44,
+ 'Digest::MD5' => 2.36,
+ 'Digest::SHA' => 5.43,
+ 'Email::Date' => 1.103,
+ 'File::Temp' => 0.16,
+ 'GD' => 2.39, #optional
+ 'GD::Barcode::UPCE' => 1.1,
+ 'Getopt::Long' => 2.35,
+ 'Getopt::Std' => 1.05,
+ 'HTML::Template::Pro' => 0.69,
+ 'HTML::Scrubber' => 0.08,
+ 'HTTP::Cookies' => 1.39,
+ 'HTTP::OAI' => 3.20,
+ 'HTTP::Request::Common' => 1.26,
+ 'IPC::Cmd' => 0.46,
+ 'JSON' => 2.07, # Needed by admin/item_circulation_alerts.pl
+ 'LWP::Simple' => 1.41,
+ 'LWP::UserAgent' => 2.033,
+ 'Lingua::Stem' => 0.82,
+ 'List::Util' => 1.18,
+ 'List::MoreUtils' => 0.21,
+ 'Locale::Language' => 2.07,
+ 'MARC::Charset' => 0.98,
+ 'MARC::Crosswalk::DublinCore' => 0.02,
+ 'MARC::File::XML' => 0.88,
+ 'MARC::Record' => 2.00,
+ 'MIME::Base64' => 3.07,
+ 'MIME::Lite' => 3.00,
+ 'MIME::QuotedPrint' => 3.07,
+ 'Mail::Sendmail' => 0.79,
+ 'Memoize::Memcached' => 0.03, # optional
+ 'Net::LDAP' => 0.33, # optional
+ 'Net::LDAP::Filter' => 0.14, # optional
+ 'Net::Z3950::ZOOM' => 1.16,
+ 'Number::Format' => 1.52,
+ 'PDF::API2' => 2.000,
+ 'PDF::API2::Page' => 2.000,
+ 'PDF::API2::Util' => 2.000,
+ 'PDF::API2::Simple' => 1.000,
+ 'PDF::Table' => 0.9.3,
+ 'PDF::Reuse' => 0.33,
+ 'PDF::Reuse::Barcode' => 0.05,
+ 'POE' => 0.9999,
+ 'POSIX' => 1.09,
+ 'Schedule::At' => 1.06,
+ 'Storable' => 2.21,
+ 'SMS::Send' => 0.05, # optional
+ 'Term::ANSIColor' => 1.10,
+ 'Test' => 1.25,
+ 'Test::Harness' => 2.56,
+ 'Test::More' => 0.80,
+ 'Text::CSV' => 0.01,
+ 'Text::CSV_XS' => 0.32,
+ 'Text::Iconv' => 1.7,
+ 'Text::Wrap' => 2005.082401,
+ 'Time::HiRes' => 1.86,
+ 'Time::localtime' => 1.02,
+ 'Unicode::Normalize' => 0.32,
+ 'URI::Escape' => 1.36,
+ 'XML::Dumper' => 0.81,
+ 'XML::LibXML' => 1.59,
+ 'XML::LibXSLT' => 1.59,
+ 'XML::SAX::ParserFactory' => 1.01,
+ 'XML::SAX::Writer' => 0.44,
+ 'XML::Simple' => 2.14,
+ 'XML::RSS' => 1.31,
+ 'YAML::Syck' => 0.71,
+ },
+
+ # File tree mapping
+ PM => $file_map,
+
+ # Man pages generated from POD
+ # ExtUtils::MakeMaker already manage $(DESTDIR)
+ INSTALLMAN1DIR => File::Spec->catdir(_strip_destdir($target_directories->{'MAN_DIR'}), 'man1'),
+ INSTALLMAN3DIR => File::Spec->catdir(_strip_destdir($target_directories->{'MAN_DIR'}), 'man3'),
+
+ PL_FILES => $pl_files,
);
=head1 FUNCTIONS
Configuration directory:);
# FIXME - home directory portability consideration apply
- $install_base_default = (exists $ENV{'HOME'}) ? "$ENV{'HOME'}/koha-dev" : "$defaults->{'INSTALL_BASE'}-dev";
+ $install_base_default =
+ $ENV{DESTDIR}
+ || ( exists $ENV{HOME} ? "$ENV{HOME}/koha-dev" : "$defaults->{'INSTALL_BASE'}-dev" )
+ ;
} elsif ($config{'INSTALL_MODE'} eq 'single') {
$msg = "\nPlease specify the directory in which to install Koha";
# FIXME -- we're assuming under a 'single' mode install
}
}
+ $msg = q(
+Use memcached and memoize to cache the results of some function calls?
+This provides a signficant performance improvement.
+You will need a Memcached server running.);
+ $msg .= _add_valid_values_disp('USE_MEMCACHED', $valid_values);
+ $config{'USE_MEMCACHED'} = _get_value('USE_MEMCACHED', $msg, $defaults->{'USE_MEMCACHED'}, $valid_values, $install_log_values);
+ if ($config{'USE_MEMCACHED'} eq 'yes'){
+ $msg = q(
+Since you've chosen to use caching, you must specify the memcached servers and the namespace to use:
+);
+ $msg = q(
+Memcached server address?);
+ $config{'MEMCACHED_SERVERS'} = _get_value('MEMCACHED_SERVERS', $msg, $defaults->{'MEMCACHED_SERVERS'}, $valid_values, $install_log_values);
+
+ $msg = q(
+Memcached namespace?);
+ $config{'MEMCACHED_NAMESPACE'} = _get_value('MEMCACHED_NAMESPACE', $msg, $defaults->{'MEMCACHED_NAMESPACE'}, $valid_values, $install_log_values);
+ }
+
+
$msg = q(
Would you like to run the database-dependent test suite?);
_get_env_overrides(\%dirmap);
_get_argv_overrides(\%dirmap);
+ _add_destdir(\%dirmap);
return \%dirmap, \%skipdirs;
}
@ARGV = @new_argv;
}
+sub _strip_destdir {
+ my $dir = shift;
+ $dir =~ s/^\$\(DESTDIR\)//;
+ return $dir;
+}
+
+sub _add_destdir {
+ my $dirmap = shift;
+
+ foreach my $key (keys %$dirmap) {
+ $dirmap->{$key} = '$(DESTDIR)'.$dirmap->{$key};
+ }
+}
+
sub display_configuration {
my $config = shift;
my $dirmap = shift;
# installation and uninstallation targets.
# If installation is on Win32, we need to do permissions different from *nix
- if ( $^O =~ /darwin|linux|cygwin|freebsd/ ) { # this value needs to be verified for each platform and modified accordingly
+ if ( $^O =~ /darwin|linux|cygwin|freebsd|solaris/ ) { # this value needs to be verified for each platform and modified accordingly
foreach my $key (sort keys %$target_directories) {
$install .= qq(
KOHA_INST_$key = blib/$key
$install .= "\n";
$install .= "set_koha_ownership ::\n";
+# Do not try to change ownership if DESTDIR is set
if ($config{'INSTALL_MODE'} eq 'standard' and $config{'KOHA_USER'} ne "root") {
foreach my $key (sort keys %$target_directories) {
- $install .= "\t\$(NOECHO) chown -R $config{'KOHA_USER'}:$config{'KOHA_GROUP'} \$(KOHA_DEST_$key)\n"
+ $install .= "\t\$(NOECHO) if test -z \"\$(DESTDIR)\"; then chown -R $config{'KOHA_USER'}:$config{'KOHA_GROUP'} \$(KOHA_DEST_$key); fi\n"
unless ($config{'INSTALL_ZEBRA'} ne "yes" and $key =~ /ZEBRA/) or exists $skip_directories->{$key};
}
} else {
# these directories will be relocated to the 't' directory
foreach my $dirname ( keys %$target_directories ) {
- my $dir = $target_directories->{$dirname};
+ my $dir = main::_strip_destdir( $target_directories->{$dirname} );
if ( exists $test_suite_override_dirs{$dirname} ) {
$dir = main::get_test_dir($dirname);
}