search catalog using barcode
[koha.git] / Makefile.PL
index 277742a..b2a8daa 100644 (file)
@@ -2,18 +2,18 @@
 #
 # This file is part of Koha.
 #
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 #
-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
 #
-# You should have received a copy of the GNU General Public License along
-# with Koha; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
 #
 # Current maintainer MJR http://mjr.towers.org.uk/
 #
@@ -186,7 +186,9 @@ Directory for Zebra configuration files.
 
 =item ZEBRA_LOCK_DIR
 
-Directory for Zebra's lock files.
+Directory for Zebra's lock files.  This includes subdirs for authorities,
+biblios, and the zebra rebuild function.  Any activity to reindex
+zebra from koha should interlock here with rebuild_zebra.pl.
 
 =item ZEBRA_DATA_DIR
 
@@ -277,6 +279,7 @@ my $target_map = {
   './installer'                 => 'INTRANET_CGI_DIR',
   './errors'                    => {target => 'INTRANET_CGI_DIR'},
   './Koha'                      => 'PERL_MODULE_DIR',
+  './Koha.pm'                   => 'PERL_MODULE_DIR',
   './koha-tmpl/intranet-tmpl'   => {target => 'INTRANET_TMPL_DIR', trimdir => -1},
   './koha-tmpl/opac-tmpl'       => {target => 'OPAC_TMPL_DIR', trimdir => -1},
   './kohaversion.pl'            => 'INTRANET_CGI_DIR', 
@@ -302,6 +305,7 @@ my $target_map = {
   './reviews'                   => 'INTRANET_CGI_DIR',
   './rewrite-config.PL'         => 'NONE',
   './reviews'                   => 'INTRANET_CGI_DIR',
+  './rotating_collections'      => 'INTRANET_CGI_DIR',
   './serials'                   => 'INTRANET_CGI_DIR',
   './services'                  => 'INTRANET_CGI_DIR',
   './skel'                      => 'NONE',
@@ -318,6 +322,7 @@ my $target_map = {
   './skel/var/lib/koha/zebradb/biblios/register'  => { target => 'ZEBRA_DATA_DIR', trimdir => 6 },
   './skel/var/lib/koha/zebradb/biblios/shadow'  => { target => 'ZEBRA_DATA_DIR', trimdir => 6 },
   './skel/var/lib/koha/zebradb/biblios/tmp'  => { target => 'ZEBRA_DATA_DIR', trimdir => 6 },
+  './skel/var/lock/koha/zebradb/rebuild' => { target => 'ZEBRA_LOCK_DIR', trimdir => 6 },
   './skel/var/lib/koha/plugins' => { target => 'PLUGINS_DIR', trimdir => 6 },
   './sms'                       => 'INTRANET_CGI_DIR',
   './suggestion'                => 'INTRANET_CGI_DIR',
@@ -442,18 +447,10 @@ my %config_defaults = (
 
 # 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
 
 warn "Your platform appears to be $^O.\n" if $DEBUG;
 
-if ( $^O eq 'MSWin32' ) {
-       # Most Unix2Win32 ports seem to poke everything into the Program Files directory
-       # this could be changed to put some files (ie. libraries) into system32, etc.
-       $config_defaults{'INSTALL_MODE'} = 'single';
-       $config_defaults{'INSTALL_BASE'} = 'c:/progra~1/koha';  # Use 8.3 names to be safe...
-}
-elsif ( $^O eq 'cygwin' ) {
+if ( $^O eq 'cygwin' ) {
        # Most Unix2Win32 ports seem to poke everything into the Program Files directory
        # this could be changed to put some files (ie. libraries) into system32, etc.
        $config_defaults{'INSTALL_MODE'} = 'single';
@@ -472,7 +469,7 @@ my %valid_config_values = (
   'AUTH_INDEX_MODE' => { 'grs1' => 1, 'dom' => 1 },
   'BIB_INDEX_MODE'  => { 'grs1' => 1, 'dom' => 1 },
   'ZEBRA_MARC_FORMAT' => { 'marc21' => 1, 'normarc' => 1, 'unimarc' => 1 }, # FIXME should generate from contents of distributation
-  'ZEBRA_LANGUAGE'    => { 'en' => 1, 'es' => 1, 'fr' => 1, 'nb' => 1, 'ru' => 1, 'uk' => 1 }, # FIXME should generate from contents of distribution
+  'ZEBRA_LANGUAGE'    => { 'en' => 1, 'es' => 1, 'fr' => 1, 'gr' => 1, 'nb' => 1, 'ru' => 1, 'uk' => 1 }, # FIXME should generate from contents of distribution
   'ZEBRA_TOKENIZER' => { chr => 1, icu => 1 },
   'RUN_DATABASE_TESTS' => { 'yes' => 1, 'no' => 1 },
   'USE_MEMCACHED'      => { 'yes' => 1, 'no' => 1 },
@@ -500,6 +497,7 @@ my $pl_files = {
       'rewrite-config.PL' => [
          'blib/KOHA_CONF_DIR/koha-conf.xml',
          'blib/KOHA_CONF_DIR/koha-httpd.conf',
+         'blib/KOHA_CONF_DIR/log4perl.conf',
          'blib/ZEBRA_CONF_DIR/etc/default.idx',
          'blib/MISC_DIR/koha-install-log'
          ],
@@ -557,6 +555,10 @@ $config{ZEBRA_TOKENIZER_STMT} = $config{ZEBRA_TOKENIZER} eq 'icu'
     ? 'icuchain words-icu.xml'
     : 'charmap word-phrase-utf.chr';
 
+$config{ZEBRA_PTOKENIZER_STMT} = $config{ZEBRA_TOKENIZER} eq 'icu'
+    ? 'icuchain phrases-icu.xml'
+    : 'charmap word-phrase-utf.chr';
+
 my %test_suite_override_dirs = (
     KOHA_CONF_DIR  => ['etc'],
     ZEBRA_CONF_DIR => ['etc', 'zebradb'],
@@ -953,10 +955,10 @@ Primary language for Zebra indexing);
 Koha can use one of  two different indexing modes
 for the MARC bibliographic records:
 
-grs1 - uses the Zebra GRS-1 filter, available
-       for legacy support
 dom  - uses the DOM XML filter; offers improved
        functionality.
+grs1 - [DEPRECATED] uses the Zebra GRS-1 filter,
+       available for legacy support
 
 Bibliographic indexing mode);
     $msg .= _add_valid_values_disp('BIB_INDEX_MODE', $valid_values);
@@ -967,10 +969,10 @@ Bibliographic indexing mode);
 Koha can use one of  two different indexing modes
 for the MARC authorities records:
 
-grs1 - uses the Zebra GRS-1 filter, available
-       for legacy support
 dom  - uses the DOM XML filter; offers improved
        functionality.
+grs1 - [DEPRECATED] uses the Zebra GRS-1 filter,
+       available for legacy support
 
 Authorities indexing mode);
     $msg .= _add_valid_values_disp('AUTH_INDEX_MODE', $valid_values);
@@ -1200,9 +1202,7 @@ sub get_target_directories {
 
     my @basedir = File::Spec->splitdir($directories);
 
-       # for Win32 we need to prepend the volume to the directory path
-       if ( $^O eq 'MSWin32' ) { shift @basedir; unshift @basedir, $volume; }
-       elsif ( $^O eq 'cygwin' ) { shift @basedir; unshift @basedir, 'c:'; }   # in a cygwin environment, $volume is returned empty
+    if ( $^O eq 'cygwin' ) { shift @basedir; unshift @basedir, 'c:'; }   # in a cygwin environment, $volume is returned empty
 
     my $package = pop @basedir;
 
@@ -1252,7 +1252,9 @@ sub get_target_directories {
         $dirmap{'PAZPAR2_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'pazpar2');
         $dirmap{'MISC_DIR'} = File::Spec->catdir(@basedir, $package, 'misc');
         $dirmap{'SCRIPT_DIR'} = File::Spec->catdir(@basedir, $package, 'bin');
-        $dirmap{'SCRIPT_NONDEV_DIR'} = $dirmap{'SCRIPT_DIR'};
+        #For dev install, point NONDEV_DIR to misc in current dir (not base)
+        #Used by supportdir in koha-conf.xml (BZ 12031)
+        $dirmap{'SCRIPT_NONDEV_DIR'} = File::Spec->catdir($curdir, 'misc');
         $skipdirs{'SCRIPT_NONDEV_DIR'} = 1;
         $dirmap{'MAN_DIR'} = File::Spec->catdir(@basedir, $package, 'man');
         $dirmap{'DOC_DIR'} = File::Spec->catdir(@basedir, $package, 'doc');
@@ -1289,7 +1291,7 @@ sub get_target_directories {
 
     _get_env_overrides(\%dirmap);
     _get_argv_overrides(\%dirmap);
-    _add_destdir(\%dirmap) unless ($^O eq 'MSWin32');
+    _add_destdir(\%dirmap);
 
     return \%dirmap, \%skipdirs;
 }
@@ -1377,8 +1379,6 @@ sub display_configuration {
     print "perl Makefile.PL\n";
     print "\nor\n\n";
     print "DB_USER=my_koha DOC_DIR=/usr/local/info perl Makefile.PL\n\n";
-    print "If installing on a Win32 platform, be sure to use:\n";
-    print "'dmake -x MAXLINELENGTH=300000'\n\n";
 }
 
 =head2 find_zebra
@@ -1386,8 +1386,6 @@ sub display_configuration {
 Attempt to find Zebra - check user's PATH and
 a few other directories for zebrasrv and zebraidx.
 
-FIXME: doesn't handle Win32
-
 =cut
 
 sub find_zebra {
@@ -1409,8 +1407,6 @@ sub find_zebra {
 
 package MY;
 
-# This will have to be reworked in order to accommodate Win32...
-
 sub test {
     my $self = shift;
     my $test = $self->SUPER::test(@_);
@@ -1471,26 +1467,7 @@ install :: all install_koha set_koha_ownership set_koha_permissions warn_koha_en
           unless exists $skip_directories->{$key};
                        }
        }
-       elsif ($^O eq 'MSWin32' ) {     # On Win32, the install probably needs to be done under the user account koha will be running as...
-                                                               # We can attempt some creative things with command line utils such as CACLS which allows permission
-                                                               # management from Win32 cmd.exe, but permissions really only apply to NTFS.
-           foreach my $key (sort keys %$target_directories) {
-                   $install .= qq(
-KOHA_INST_$key = blib/$key
-KOHA_DEST_$key = $target_directories->{$key}
-) unless exists $skip_directories->{$key};
-               }
-               $install .= qq(
-install :: all install_koha warn_koha_env_vars
-\t\$(NOECHO) \$(NOOP)
-);
-               $install .= "install_koha ::\n";
-               $install .= "\t\$(MOD_INSTALL) \\\n";
-               foreach my $key (sort keys %$target_directories) {
-                       $install .= "\t\t\$(KOHA_INST_$key) \$(KOHA_DEST_$key) \\\n"
-        unless exists $skip_directories->{$key};
-               }
-       }
+
        $install .= "\n";
 
     $install .= "warn_koha_env_vars ::\n";
@@ -1525,10 +1502,10 @@ sub _update_zebra_conf_target {
     my $target = "\nupdate_zebra_conf ::\n";
     $target .= "\tumask 022; \$(MOD_INSTALL) \\\n";
     $target .= "\t\t\$(KOHA_INST_ZEBRA_CONF_DIR) \$(KOHA_DEST_ZEBRA_CONF_DIR) \n";
-    $target .= "\t\$(NOECHO) chmod -R u+w \$(KOHA_DEST_ZEBRA_CONF_DIR)\n" unless $^O eq "MSWin32";
+    $target .= "\t\$(NOECHO) chmod -R u+w \$(KOHA_DEST_ZEBRA_CONF_DIR)\n";
     $target .= "\tumask 022; \$(MOD_INSTALL) \\\n";
     $target .= "\t\t\$(KOHA_INST_PAZPAR2_CONF_DIR) \$(KOHA_DEST_PAZPAR2_CONF_DIR) \n";
-    $target .= "\t\$(NOECHO) chmod -R u+w \$(KOHA_DEST_PAZPAR2_CONF_DIR)\n" unless $^O eq "MSWin32";
+    $target .= "\t\$(NOECHO) chmod -R u+w \$(KOHA_DEST_PAZPAR2_CONF_DIR)\n";
 
     return $target;
 }
@@ -1563,7 +1540,6 @@ make_upgrade_backup ::
 
     return $upgrade;
 }
-
 sub postamble {
     # put directory mappings into Makefile
     # so that Make will export as environment
@@ -1572,13 +1548,7 @@ sub postamble {
 
     my $env;
        # Hereagain, we must alter syntax per platform...
-       if ( $^O eq 'MSWin32' ) {
-               # NOTE: it is imperative that there be no whitespaces in ENV=value...
-               $env = join("\n", map { "__${_}__=$target_directories->{$_}" } keys %$target_directories);
-               $env .= "\n\n";
-               $env .= join("\n", map { "__${_}__=$config{$_}" } keys %config);
-       }
-    else {
+        {
                $env = join("\n", map { "export __${_}__ := $target_directories->{$_}" } keys %$target_directories);
                $env .= "\n\n";
                $env .= join("\n", map { "export __${_}__ := $config{$_}" } keys %config);