Bug 14868 - Update swagger.min.json
[koha.git] / Makefile.PL
index 3af2486..fd0725b 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/
 #
@@ -240,6 +240,10 @@ Directory for external Koha plugins.
 
 Directory for PazPar2 configuration files.
 
+=item FONT_DIR
+
+Directory where DejaVu fonts are installed.
+
 =item NONE
 
 This is a dummy target used to explicitly state
@@ -256,6 +260,7 @@ my $target_map = {
   './about.pl'                  => 'INTRANET_CGI_DIR',
   './acqui'                     => 'INTRANET_CGI_DIR',
   './admin'                     => 'INTRANET_CGI_DIR',
+  './api'                       => { target => 'API_CGI_DIR', trimdir => -1 },
   './authorities'               => 'INTRANET_CGI_DIR',
   './basket'                    => 'INTRANET_CGI_DIR',
   './C4'                        => 'PERL_MODULE_DIR',
@@ -269,7 +274,7 @@ my $target_map = {
   './circ'                      => 'INTRANET_CGI_DIR',
   './course_reserves'           => 'INTRANET_CGI_DIR',
   './docs/history.txt'          => { target => 'DOC_DIR', trimdir => -1 },
-  './offline_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 },
@@ -279,9 +284,10 @@ 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', 
+  './kohaversion.pl'            => 'INTRANET_CGI_DIR',
   './labels'                    => 'INTRANET_CGI_DIR',
   './mainpage.pl'               => 'INTRANET_CGI_DIR',
   './Makefile.PL'               => 'NONE',
@@ -441,23 +447,16 @@ my %config_defaults = (
   'PATH_TO_ZEBRA' => '',
   'USE_MEMCACHED'     => 'no',
   'MEMCACHED_SERVERS' => '127.0.0.1:11211',
-  'MEMCACHED_NAMESPACE' => 'KOHA'
+  'MEMCACHED_NAMESPACE' => 'KOHA',
+  'FONT_DIR'          => '/usr/share/fonts/truetype/ttf-dejavu'
 );
 
 # 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';
@@ -504,6 +503,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'
          ],
@@ -1070,7 +1070,7 @@ PazPar2 port?);
     }
 
   $msg = q(
-Use memcached and memoize to cache the results of some function calls?
+Use memcached 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);
@@ -1088,6 +1088,9 @@ Memcached namespace?);
       $config{'MEMCACHED_NAMESPACE'} = _get_value('MEMCACHED_NAMESPACE', $msg, $defaults->{'MEMCACHED_NAMESPACE'}, $valid_values, $install_log_values);
   }
 
+  $msg = q(
+Path to DejaVu fonts?);
+  $config{'FONT_DIR'} = _get_value('FONT_DIR', $msg, $defaults->{'FONT_DIR'}, $valid_values, $install_log_values);
 
 
   $msg = q(
@@ -1208,9 +1211,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;
 
@@ -1218,6 +1219,7 @@ sub get_target_directories {
     my %dirmap = ();
     my %skipdirs = ();
     if ($mode eq 'single') {
+        $dirmap{'API_CGI_DIR'} = File::Spec->catdir(@basedir, $package, 'api');
         $dirmap{'INTRANET_CGI_DIR'} = File::Spec->catdir(@basedir, $package, 'intranet', 'cgi-bin');
         $dirmap{'INTRANET_TMPL_DIR'} = File::Spec->catdir(@basedir, $package, 'intranet', 'htdocs', 'intranet-tmpl');
         $dirmap{'INTRANET_WWW_DIR'} = File::Spec->catdir(@basedir, $package, 'intranet', 'htdocs');
@@ -1241,6 +1243,8 @@ sub get_target_directories {
         $dirmap{'ZEBRA_RUN_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'run', 'zebradb');
     } elsif ($mode eq 'dev') {
         my $curdir = File::Spec->rel2abs(File::Spec->curdir());
+        $dirmap{'API_CGI_DIR'} = File::Spec->catdir($curdir, 'api');
+        $skipdirs{'API_CGI_DIR'} = 1;
         $dirmap{'INTRANET_CGI_DIR'} = File::Spec->catdir($curdir);
         $skipdirs{'INTRANET_CGI_DIR'} = 1;
         $dirmap{'INTRANET_TMPL_DIR'} = File::Spec->catdir($curdir, 'koha-tmpl', 'intranet-tmpl');
@@ -1274,6 +1278,7 @@ sub get_target_directories {
         $dirmap{'ZEBRA_RUN_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'run', 'zebradb');
     } else {
         # mode is standard, i.e., 'fhs'
+        $dirmap{'API_CGI_DIR'} = File::Spec->catdir(@basedir, $package, 'api');
         $dirmap{'INTRANET_CGI_DIR'} = File::Spec->catdir(@basedir, $package, 'intranet', 'cgi-bin');
         $dirmap{'INTRANET_TMPL_DIR'} = File::Spec->catdir(@basedir, $package, 'intranet', 'htdocs', 'intranet-tmpl');
         $dirmap{'INTRANET_WWW_DIR'} = File::Spec->catdir(@basedir, $package, 'intranet', 'htdocs');
@@ -1299,7 +1304,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;
 }
@@ -1387,8 +1392,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
@@ -1396,8 +1399,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 {
@@ -1419,8 +1420,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(@_);
@@ -1481,26 +1480,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";
@@ -1535,10 +1515,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;
 }
@@ -1573,7 +1553,6 @@ make_upgrade_backup ::
 
     return $upgrade;
 }
-
 sub postamble {
     # put directory mappings into Makefile
     # so that Make will export as environment
@@ -1582,13 +1561,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);