Merge branch 'master' of http://manage-gmc.dev.kohalibrary.com/koha-installer
authorJoshua Ferraro <jmf@liblime.com>
Wed, 19 Dec 2007 19:48:55 +0000 (13:48 -0600)
committerJoshua Ferraro <jmf@liblime.com>
Wed, 19 Dec 2007 19:48:55 +0000 (13:48 -0600)
90 files changed:
C4/Context.pm
C4/Search.pm
Makefile.PL [changed mode: 0755->0644]
README.txt
etc/koha-conf.xml
etc/koha-httpd.conf
etc/zebradb/authorities/etc/record.abs [deleted file]
etc/zebradb/authorities/etc/record_unimarc.abs [deleted file]
etc/zebradb/authorities/key/README [deleted file]
etc/zebradb/authorities/lock/README [deleted file]
etc/zebradb/authorities/register/README [deleted file]
etc/zebradb/authorities/shadow/README [deleted file]
etc/zebradb/authorities/tmp/README [deleted file]
etc/zebradb/biblios/etc/record.abs [deleted file]
etc/zebradb/biblios/etc/record_unimarc.abs [deleted file]
etc/zebradb/biblios/key/README [deleted file]
etc/zebradb/biblios/lock/README [deleted file]
etc/zebradb/biblios/register/README [deleted file]
etc/zebradb/biblios/tmp/README [deleted file]
etc/zebradb/etc/sort-string-utf.chr [deleted file]
etc/zebradb/etc/sort-string-utf_french.chr [deleted file]
etc/zebradb/lang_defs/en/sort-string-utf.chr [new file with mode: 0644]
etc/zebradb/lang_defs/fr/sort-string-utf.chr [new file with mode: 0644]
etc/zebradb/marc_defs/marc21/authorities/record.abs [new file with mode: 0644]
etc/zebradb/marc_defs/marc21/biblios/record.abs [new file with mode: 0644]
etc/zebradb/marc_defs/unimarc/authorities/record.abs [new file with mode: 0644]
etc/zebradb/marc_defs/unimarc/biblios/record.abs [new file with mode: 0644]
etc/zebradb/zebra-authorities.cfg
etc/zebradb/zebra-biblios.cfg
fix-perl-path.PL [new file with mode: 0644]
installer/install.pl
koha-tmpl/intranet-tmpl/prog/en/modules/installer/auth.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/installer/step2.tmpl
kohaversion.pl
members/member-password.pl
misc/benchmark.pl
misc/bulkauthimport.pl
misc/bulkupdate.pl
misc/cleanmarcdb.pl
misc/commit_biblios_file.pl
misc/compare_iso_and_marc_parameters.pl
misc/cronjobs/build_browser_and_cloud.pl
misc/cronjobs/j2a.pl
misc/cronjobs/longoverdue.pl
misc/cronjobs/notifyMailsOp.pl
misc/cronjobs/overduenotices-30.pl
misc/cronjobs/overduenotices.pl
misc/cronjobs/reservefix.pl
misc/cronjobs/services_throttle.pl
misc/cronjobs/smsoverdues.pl
misc/cronjobs/update_items.pl
misc/cronjobs/zebraqueue_start.pl
misc/dumpmarc.pl
misc/exportauth.pl
misc/fines-sanop.pl
misc/fines2.pl
misc/kohalib.pl [new file with mode: 0644]
misc/marcimport_to_biblioitems.pl
misc/merge_authority.pl
misc/migration_tools/22_to_30/convert_to_utf8.pl
misc/migration_tools/22_to_30/export_Authorities.pl
misc/migration_tools/22_to_30/export_Authorities_xml.pl
misc/migration_tools/22_to_30/missing090field.pl
misc/migration_tools/22_to_30/move_marc_to_authheader.pl
misc/migration_tools/22_to_30/move_marc_to_biblioitems.pl
misc/migration_tools/22_to_30/rebuild_leader.pl
misc/migration_tools/22_to_30/rebuild_unimarc_100.pl
misc/migration_tools/bulkmarcimport.pl
misc/missing090field.pl
misc/rebuild_marc_newframework.pl
misc/rebuildnonmarc.pl
misc/spellcheck_suggest/make_spellcheck_suggest.pl
misc/stage_biblios_file.pl
misc/sync_koha_plugin.pl
misc/xmlintobiblioitems.pl
misc/zebraqueue_daemon.pl
rewrite-config.PL
skel/README [new file with mode: 0644]
skel/var/lib/koha/zebradb/authorities/key/README [new file with mode: 0644]
skel/var/lib/koha/zebradb/authorities/register/README [new file with mode: 0644]
skel/var/lib/koha/zebradb/authorities/shadow/README [new file with mode: 0644]
skel/var/lib/koha/zebradb/authorities/tmp/README [new file with mode: 0644]
skel/var/lib/koha/zebradb/biblios/key/README [new file with mode: 0644]
skel/var/lib/koha/zebradb/biblios/register/README [new file with mode: 0644]
skel/var/lib/koha/zebradb/biblios/shadow/README [new file with mode: 0644]
skel/var/lib/koha/zebradb/biblios/tmp/README [new file with mode: 0644]
skel/var/lock/koha/zebradb/authorities/README [new file with mode: 0644]
skel/var/lock/koha/zebradb/biblios/README [new file with mode: 0644]
skel/var/log/koha/README [new file with mode: 0644]
skel/var/run/koha/zebradb/README [new file with mode: 0644]

index 1b02b63..6591e62 100644 (file)
@@ -71,7 +71,7 @@ C4::Context - Maintain and manipulate the context of a Koha script
 
   use C4::Context;
 
-  use C4::Context("/path/to/koha.xml");
+  use C4::Context("/path/to/koha-conf.xml");
 
   $config_value = C4::Context->config("config_variable");
 
@@ -86,7 +86,7 @@ C4::Context - Maintain and manipulate the context of a Koha script
 =head1 DESCRIPTION
 
 When a Koha script runs, it makes use of a certain number of things:
-configuration settings in F</etc/koha.xml>, a connection to the Koha
+configuration settings in F</etc/koha/koha-conf.xml>, a connection to the Koha
 databases, and so forth. These things make up the I<context> in which
 the script runs.
 
@@ -107,7 +107,7 @@ different contexts to search both databases. Such scripts should use
 the C<&set_context> and C<&restore_context> functions, below.
 
 By default, C4::Context reads the configuration from
-F</etc/koha.xml>. This may be overridden by setting the C<$KOHA_CONF>
+F</etc/koha/koha-conf.xml>. This may be overridden by setting the C<$KOHA_CONF>
 environment variable to the pathname of a configuration file to use.
 
 =head1 METHODS
@@ -123,7 +123,7 @@ environment variable to the pathname of a configuration file to use.
 # config
 #    A reference-to-hash whose keys and values are the
 #    configuration variables and values specified in the config
-#    file (/etc/koha.xml).
+#    file (/etc/koha/koha-conf.xml).
 # dbh
 #    A handle to the appropriate database for this context.
 # dbh_stack
@@ -132,8 +132,30 @@ environment variable to the pathname of a configuration file to use.
 # Zconn
 #     A connection object for the Zebra server
 
-use constant CONFIG_FNAME => "/etc/koha.xml";
+# Koha's main configuration file koha-conf.xml
+# is searched for according to this priority list:
+#
+# 1. Path supplied via use C4::Context '/path/to/koha-conf.xml'
+# 2. Path supplied in KOHA_CONF environment variable.
+# 3. Path supplied in INSTALLED_CONFIG_FNAME, as long
+#    as value has changed from its default of 
+#    '__KOHA_CONF_DIR__/koha-conf.xml', as happens
+#    when Koha is installed in 'standard' or 'single'
+#    mode.
+# 4. Path supplied in CONFIG_FNAME.
+#
+# The first entry that refers to a readable file is used.
+
+use constant CONFIG_FNAME => "/etc/koha/koha-conf.xml";
                 # Default config file, if none is specified
+                
+my $INSTALLED_CONFIG_FNAME = '__KOHA_CONF_DIR__/koha-conf.xml';
+                # path to config file set by installer
+                # __KOHA_CONF_DIR__ is set by rewrite-confg.PL
+                # when Koha is installed in 'standard' or 'single'
+                # mode.  If Koha was installed in 'dev' mode, 
+                # __KOHA_CONF_DIR__ is *not* rewritten; instead
+                # developers should set the KOHA_CONF environment variable 
 
 $context = undef;        # Initially, no context is set
 @context_stack = ();        # Initially, no saved contexts
@@ -167,7 +189,7 @@ Reads the specified Koha config file.
 
 Returns an object containing the configuration variables. The object's
 structure is a bit complex to the uninitiated ... take a look at the
-koha.xml file as well as the XML::Simple documentation for details. Or,
+koha-conf.xml file as well as the XML::Simple documentation for details. Or,
 here are a few examples that may give you what you need:
 
 The simple elements nested within the <config> element:
@@ -223,11 +245,11 @@ sub import {
 =item new
 
   $context = new C4::Context;
-  $context = new C4::Context("/path/to/koha.xml");
+  $context = new C4::Context("/path/to/koha-conf.xml");
 
 Allocates a new context. Initializes the context from the specified
 file, which defaults to either the file given by the C<$KOHA_CONF>
-environment variable, or F</etc/koha.xml>.
+environment variable, or F</etc/koha/koha-conf.xml>.
 
 C<&new> does not set this context as the new default context; for
 that, use C<&set_context>.
@@ -250,7 +272,18 @@ sub new {
     {
         # If the $KOHA_CONF environment variable is set, use
         # that. Otherwise, use the built-in default.
-        $conf_fname = $ENV{"KOHA_CONF"} || CONFIG_FNAME;
+        if (exists $ENV{"KOHA_CONF"} and $ENV{'KOHA_CONF'} and -e  $ENV{"KOHA_CONF"} and -s  $ENV{"KOHA_CONF"}) {
+            $conf_fname = $ENV{"KOHA_CONF"};
+        } elsif ($INSTALLED_CONFIG_FNAME !~ /__KOHA_CONF_DIR/ and -e $INSTALLED_CONFIG_FNAME and -s $INSTALLED_CONFIG_FNAME) {
+            # NOTE: be careful -- don't change __KOHA_CONF_DIR in the above
+            # regex to anything else -- don't want installer to rewrite it
+            $conf_fname = $INSTALLED_CONFIG_FNAME;
+        } elsif (-e CONFIG_FNAME and -s CONFIG_FNAME) {
+            $conf_fname = CONFIG_FNAME;
+        } else {
+            warn "unable to locate Koha configuration file koha-conf.xml";
+            return undef;
+        }
     }
         # Load the desired config file.
     $self = read_config_file($conf_fname);
@@ -447,7 +480,7 @@ creates one and connects.
 
 C<$self> 
 
-C<$server> one of the servers defined in the koha.xml file
+C<$server> one of the servers defined in the koha-conf.xml file
 
 C<$async> whether this is a asynchronous connection
 
@@ -478,7 +511,7 @@ $context->{"Zconn"} = &_new_Zconn($server,$async);
 
 Internal function. Creates a new database connection from the data given in the current context and returns it.
 
-C<$server> one of the servers defined in the koha.xml file
+C<$server> one of the servers defined in the koha-conf.xml file
 
 C<$async> whether this is a asynchronous connection
 
index 31cd87d..9dfef9d 100644 (file)
@@ -158,7 +158,7 @@ this function performs a simple search on the catalog using zoom.
 =item C<input arg:>
 
     * $query could be a simple keyword or a complete CCL query wich is depending on your ccl file.
-    * @servers is optionnal. default one is read on koha.xml
+    * @servers is optionnal. default one is read on koha-conf.xml
 
 =item C<Output arg:>
     * $error is a string which containt the description error if there is one. Else it's empty.
old mode 100755 (executable)
new mode 100644 (file)
index 7b59a44..114bf3f
 # Current maintainer MJR http://mjr.towers.org.uk/
 # See http://www.koha.org/wiki/?page=KohaInstaller
 #
-# 2007-11-05 Corrected CGI copy to include entire 'installer' subdir structure. -fbcit
+
+use strict;
+use warnings;
 use ExtUtils::MakeMaker;
 use POSIX;
+use File::Spec;
 
+my $DEBUG = 0;
 die "perl 5.6.1 or later required" unless ($] >= 5.006001);
 
+# Hash up directory structure & files beginning with the directory we were called from (should be the base of koha)...
+
+my $dirtree = hashdir('.');
+my %result = ();
+
 =head1 NAME
 
 Makefile.PL - Koha packager and installer
@@ -73,11 +82,6 @@ Hash of perl modules and versions required.
 
 Hash of file mappings
 
-=head2 CONFIGURE
-
-Maybe use prompt() here in future to get configuration values 
-interactively at installation time.
-
 =head2 PL_FILES
 
 This is a hash of PL scripts to run after installation and
@@ -87,15 +91,365 @@ to generate initial configuration files in future.
 
 =cut
 
-WriteMakefile(
+=head2 target_map
+
+This is a hash mapping directories and files in the
+source tree to installation target directories.  The rules
+for this mapping are:
+
+=over 4
+
+=item If a directory or file is specified, it and its
+contents will be copied to the installation target directory.
+
+=item If a subdirectory of a mapped directory is specified,
+its target overrides the parent's target for that subdirectory.
+
+=item The value of each map entry may either be a scalar containing 
+one target or a reference to a hash containing 'target' and 'trimdir'
+keys.
+
+=item Any files at the top level of the source tree that are
+not included in the map will not be installed.
+
+=item Any directories at the top level of the source tree
+that are not included in the map will be installed in
+INTRANET_CGI_DIR.  This is a sensible default given the
+current organization of the source tree, but (FIXME) it
+would be better to reorganize the source tree to better
+match the installation system, to allow adding new directories
+without having to adjust Makefile.PL each time.  The idea
+is to make the C<$target_map> hash as minimal as possible.
+
+=back
+
+The permitted installation targets are:
+
+=over 4
+
+=item INTRANET_CGI_DIR 
+
+CGI scripts for intranet (staff) interface.
+
+=item INTRANET_TMPL_DIR
+
+HTML templates for the intranet interface.
+
+=item INTRANET_WWW_DIR
+
+HTML files, images, etc. for DocumentRoot for the intranet interface.
+
+=item OPAC_CGI_DIR
+
+CGI scripts for OPAC (public) interface.
+
+=item OPAC_TMPL_DIR
+
+HTML templates for the OPAC interface.
+
+=item OPAC_WWW_DIR
+
+HTML files, images, etc. for DocumentRoot for the OPAC interface.
+
+=item PERL_MODULE_DIR
+
+Perl modules (at present just the C4 modules) that are intimately
+tied to Koha.  Depending on the installation options, these
+may or may not be installed one of the standard directories
+in Perl's default @LIB.
+
+=item KOHA_CONF_DIR
+
+Directory for Koha configuration files.
+
+=item ZEBRA_CONF_DIR
+
+Directory for Zebra configuration files.
+
+=item ZEBRA_LOCK_DIR
+
+Directory for Zebra's lock files.
+
+=item ZEBRA_DATA_DIR
+
+Directory for Zebra's data files.
+
+=item ZEBRA_RUN_DIR
+
+Directory for Zebra's UNIX-domain sockets.
+
+=item MISC_DIR
+
+Directory for for miscellaenous scripts, among other
+things the translation toolkit and RSS feed tools.
+
+=item SCRIPT_DIR
+
+Directory for command-line scripts and daemons.
+
+=item MAN_DIR
+
+Directory for man pages created from POD -- will mostly
+contain information of interest to Koha developers.
+
+=item DOC_DIR
+
+Directory for Koha documentation accessed from the 
+command-line, e.g., READMEs.
+
+=item LOG_DIR
+
+Directory for Apache and Zebra logs produced by Koha.
+
+=item NONE
+
+This is a dummy target used to explicitly state
+that a given file or directory is not to be installed.
+This is used either for parts of the installer itself
+or for development tools that are not applicable to a
+production installation.
+
+=back
+
+=cut
+
+my $target_map = {
+  './about.pl'                  => 'INTRANET_CGI_DIR',
+  './acqui'                     => 'INTRANET_CGI_DIR',
+  './admin'                     => 'INTRANET_CGI_DIR',
+  './authorities'               => 'INTRANET_CGI_DIR',
+  './C4'                        => 'PERL_MODULE_DIR',
+  './C4/SIP/t'                  => 'NONE',
+  './C4/SIP/koha_test'          => 'NONE',
+  './C4/tests'                  => 'NONE',
+  './catalogue'                 => 'INTRANET_CGI_DIR',
+  './cataloguing'               => 'INTRANET_CGI_DIR',
+  './changelanguage.pl'         => 'INTRANET_CGI_DIR',
+  './check_sysprefs.pl'         => 'NONE',
+  './circ'                      => 'INTRANET_CGI_DIR',
+  './edithelp.pl'               => 'INTRANET_CGI_DIR',
+  './etc'                       => { target => 'KOHA_CONF_DIR', trimdir => -1 },
+  './etc/zebradb'               => { target => 'ZEBRA_CONF_DIR', trimdir => -1 },
+  './help.pl'                   => 'INTRANET_CGI_DIR', 
+  './installer-CPAN.pl'         => 'NONE',
+  './installer'                 => 'INTRANET_CGI_DIR',
+  './koha-tmpl/errors'          => {target => 'INTRANET_CGI_DIR', trimdir => 2},
+  './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', 
+  './labels'                    => 'INTRANET_CGI_DIR',
+  './mainpage.pl'               => 'INTRANET_CGI_DIR',
+  './Makefile.PL'               => 'NONE',
+  './MANIFEST.SKIP'             => 'NONE',
+  './members'                   => 'INTRANET_CGI_DIR',
+  './misc'                      => { target => 'SCRIPT_DIR', trimdir => -1 }, 
+  './misc/info'                 => { target => 'DOC_DIR', trimdir => 2 },
+  './misc/release notes'        => { target => 'DOC_DIR', trimdir => 2 },
+  './misc/translator'           => { target => 'MISC_DIR', trimdir => 2 }, 
+  './misc/installer_devel_notes' => 'NONE',
+  './opac'                      => 'OPAC_CGI_DIR',
+  './README.txt'                => 'NONE',
+  './reports'                   => 'INTRANET_CGI_DIR',
+  './reserve'                   => 'INTRANET_CGI_DIR',
+  './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 },
+  './skel/var/run/koha/zebradb' => { target => 'ZEBRA_RUN_DIR', trimdir => -1 },
+  './skel/var/lock/koha/zebradb/authorities' => { target => 'ZEBRA_LOCK_DIR', trimdir => 6 },
+  './skel/var/lib/koha/zebradb/authorities/key'  => { target => 'ZEBRA_DATA_DIR', trimdir => 6 },
+  './skel/var/lib/koha/zebradb/authorities/register'  => { target => 'ZEBRA_DATA_DIR', trimdir => 6 },
+  './skel/var/lib/koha/zebradb/authorities/shadow'  => { target => 'ZEBRA_DATA_DIR', trimdir => 6 },
+  './skel/var/lib/koha/zebradb/authorities/tmp'  => { target => 'ZEBRA_DATA_DIR', trimdir => 6 },
+  './skel/var/lock/koha/zebradb/biblios' => { target => 'ZEBRA_LOCK_DIR', trimdir => 6 },
+  './skel/var/lib/koha/zebradb/biblios/key'  => { target => 'ZEBRA_DATA_DIR', trimdir => 6 },
+  './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 },
+  './sms'                       => 'INTRANET_CGI_DIR',
+  './suggestion'                => 'INTRANET_CGI_DIR',
+  './svc'                       => 'INTRANET_CGI_DIR',
+  './t'                         => 'NONE',
+  './tmp'                       => 'NONE', # FIXME need to determine whether 
+                                           # Koha generates any persistent temp files
+                                           # that should go in /var/tmp/koha
+  './tools'                     => 'INTRANET_CGI_DIR',
+  './virtualshelves'            => 'INTRANET_CGI_DIR',
+  # ignore files and directories created by the install itself
+  './pm_to_blib'                => 'NONE',
+  './blib'                      => 'NONE',
+};
+
+=head1 CONFIGURATION OPTIONS
+
+The following configuration options are used by the installer.
+
+=over 4
+
+=item INSTALL_MODE
+
+Specifies whether installation will be FHS-compliant (default,
+assumes user has root), put everything under
+a single directory (for users installing on a web host
+that allows CGI scripts and a MySQL database but not root 
+access), or development (for a developer who wants to run
+Koha from a git clone with no fuss).
+
+=item INSTALL_BASE
+
+Directory under which most components will go.  Default
+value will vary depending on INSTALL_MODE.
+
+=item DB_TYPE
+
+Type of DBMS (e.g., mysql or Pg).
+
+=item DB_HOST
+
+Name of DBMS server.
+
+=item DB_PORT
+
+Port that DBMS server is listening on.
+
+=item DB_NAME
+
+Name of the DBMS database for Koha.
+
+=item DB_USER
+
+Name of DBMS user account for Koha's database.
+
+=item DB_PASS
+
+Pasword of DMBS user account for Koha's database.
+
+=item INSTALL_ZEBRA
+
+Whether to install Zebra configuration files and data
+directories.
+
+=item ZEBRA_MARC_FORMAT
+
+Specifies format of MARC records to be indexed by Zebra.
+
+=item ZEBRA_LANGUAGE
+
+Specifies primary language of records that will be 
+indexed by Zebra.
+
+=item ZEBRA_USER
+
+Internal Zebra user account for the index.
+
+=item ZEBRA_PASS
+
+Internal Zebra user account's password.
+
+=item KOHA_USER
+
+System user account that will own Koha's files.
+
+=item KOHA_GROUP
+
+System group that will own Koha's files.
+
+=back
+
+=cut
+
+# default configuration options
+my %config_defaults = (
+  'DB_TYPE'           => 'mysql',
+  'DB_HOST'           => 'localhost',
+  'DB_NAME'           => 'koha',    
+  'DB_USER'           => 'kohaadmin',
+  'DB_PASS'           => 'katikoan',
+  'INSTALL_ZEBRA'     => 'yes',
+  'ZEBRA_MARC_FORMAT' => 'marc21',
+  'ZEBRA_LANGUAGE'    => 'en',
+  'ZEBRA_USER'        => 'kohauser',
+  'ZEBRA_PASS'        => 'zebrastripes',
+  'KOHA_USER'         => 'koha',
+  'KOHA_GROUP'        => 'koha',
+);
+
+# set some default configuratio 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' ) {
+       # 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...
+}
+else {
+       $config_defaults{'INSTALL_MODE'} = 'standard';
+       $config_defaults{'INSTALL_BASE'} = '/usr/share/koha';
+}
+
+# valid values for certain configuration options
+my %valid_config_values = (
+  'INSTALL_MODE'  => { 'standard' => 1, 'single' => 1, 'dev' => 1 },
+  'DB_TYPE' => { 'mysql' => 1, 'Pg' => 1 },
+  'INSTALL_ZEBRA' => { 'yes' => 1, 'no' => 1 },
+  '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
+);
+
+my %config = get_configuration(\%config_defaults, \%valid_config_values);
+my ($target_directories, $skip_directories) = get_target_directories(\%config);
+display_configuration(\%config, $target_directories);
+my $file_map = {};
+get_file_map($target_map, $dirtree, $file_map, $config{'INSTALL_ZEBRA'} eq "yes" ? 1: 0);
 
+my $pl_files = {
+      'rewrite-config.PL' => [
+         'blib/KOHA_CONF_DIR/koha-conf.xml',
+         'blib/KOHA_CONF_DIR/koha-httpd.conf'
+         ],
+         'fix-perl-path.PL' => [       # this script ensures the correct shebang line for the platform installed on...
+                'blib'
+                ]
+};
+
+if ($config{'INSTALL_ZEBRA'} eq "yes") {
+    push @{ $pl_files->{'rewrite-config.PL'} }, (
+        'blib/ZEBRA_CONF_DIR/etc/passwd',
+        'blib/ZEBRA_CONF_DIR/zebra-biblios.cfg',
+        'blib/ZEBRA_CONF_DIR/zebra-authorities.cfg'
+    );
+}
+
+if ($config{'INSTALL_MODE'} ne "dev") {
+    push @{ $pl_files->{'rewrite-config.PL'} }, (
+        'blib/PERL_MODULE_DIR/C4/Context.pm',
+        'blib/SCRIPT_DIR/kohalib.pl'
+    );
+}
+
+WriteMakefile(
     NAME => 'koha',
     #VERSION => strftime('2.9.%Y%m%d%H',gmtime),
-    VERSION_FROM => 'C4/Context.pm',
+    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.48,
 'Biblio::EndnoteStyle' => 0.05,
 'CGI' => 3.15,
 'CGI::Carp' => 1.29,
@@ -104,8 +458,10 @@ WriteMakefile(
 'Class::Accessor' => 0.30,
 'DBD::mysql' => 3.0008,
 'DBI' => 1.53,
+'Data::ICal' => 0.13,
 'Data::Dumper' => 2.121_08,
 'Date::Calc' => 5.4,
+'Date::ICal' => 1.72,
 'Date::Manip' => 5.44,
 'Digest::MD5' => 2.36,
 'File::Temp' => 0.16,
@@ -119,21 +475,24 @@ WriteMakefile(
 'LWP::UserAgent' => 2.033,
 'Lingua::Stem' => 0.82,
 'List::Util' => 1.18,
+'List::MoreUtils' => 0.22,
 'Locale::Language' => 2.07,
 'MARC::Charset' => 0.98,
-'MARC::Crosswalk::DublinCore' => 0.03,
+'MARC::Crosswalk::DublinCore' => 0.02,
 'MARC::File::XML' => 0.88,
 'MARC::Record' => 2.00,
-'MARC::Crosswalk::DublinCore' => 0.02,
 'MIME::Base64' => 3.07,
 'MIME::QuotedPrint' => 3.07,
 'Mail::Sendmail' => 0.79,
+'Net::LDAP' => 0.34,
+'Net::LDAP::Filter' => 0.34,
 '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,
@@ -155,106 +514,676 @@ WriteMakefile(
         },
 
        # File tree mapping
-       PM => map_tree(),
+       PM => $file_map,
 
-       # disable tests
-       'test' => {TESTS => 't/dummy.t'},
+    # Man pages generated from POD
+    INSTALLMAN1DIR => File::Spec->catdir($target_directories->{'MAN_DIR'}, 'man1'),
+    INSTALLMAN3DIR => File::Spec->catdir($target_directories->{'MAN_DIR'}, 'man3'),
 
-#   CONFIGURE => sub {
-#     # Ask for options with prompt($question,$default) calls here?
-#     return { macro => { 'export TEST' => '755' } }
-#     },
+    PL_FILES => $pl_files,
 
-   PL_FILES => { # generator => target(s)
-      'rewrite-config.PL' => [
-         '$(PREFIX)/share/koha/etc/koha-conf.xml',
-         '$(PREFIX)/share/koha/etc/koha-httpd.conf',
-         '$(PREFIX)/share/koha/etc/zebradb/etc/passwd',
-         '$(PREFIX)/share/koha/etc/zebradb/zebra-biblios.cfg',
-         '$(PREFIX)/share/koha/etc/zebradb/zebra-authorities.cfg'
-         ]
-   }
-#     'opac/getfromintranet.PL' => ['$(INST_LIBDIR)/opac/cgi-bin/detail.pl','$(INST_LIBDIR)/opac/cgi-bin/moredetail.pl','$(INST_LIBDIR)/opac/cgi-bin/search.pl','$(INST_LIBDIR)/opac/cgi-bin/subjectsearch.pl','$(INST_LIBDIR)/opac/cgi-bin/logout.pl'],
-#     'misc/koha.conf.PL' => '$(INST_LIBDIR)/../etc/koha.conf',
-#     'misc/apache-koha.conf.PL' => '$(INST_LIBDIR)/../etc/apache-koha.conf',
-#     'misc/koha.sql.PL' => '$(INST_LIBDIR)/intranet/scripts/koha.sql',
-#     'z3950/z3950-daemon-options.PL' => '$(INST_LIBDIR)/intranet/scripts/z3950daemon/z3950-daemon-options',
-#     # fake target to check permissions
-#     'misc/chmod.PL' => '$(INST_LIBDIR)/fake-target'
-#     }
-   # need to set ownerships
-   # need to load koha.sql
-   # need to link koha-httpd.conf
-   # need to start z3950-daemon
 );
 
 =head1 FUNCTIONS
 
-=head2 map_tree
+=head2 hashdir
 
-This function lists all files and where to install each one.
-It returns a hash reference suitable for the PM variable above.
+This function recurses through the directory structure and builds
+a hash of hashes containing the structure with arrays holding filenames.
+This directory hashing routine was taken from BrowserUK @ http://www.perlmonks.org/?node_id=219919
 
 =cut
 
-sub map_tree {
-       my %result => ();
+sub hashdir{
+    my $dir = shift;
+    opendir my $dh, $dir or die $!;
+    my $tree = {}->{$dir} = {};
+    while( my $file = readdir($dh) ) {
+        next if $file =~ m/^\.{1,2}/ and $file !~ /^\.htaccess/; # .htaccess is a special case
+        my $path = $dir .'/' . $file;
+        $tree->{$file} = hashdir($path), next if -d $path;
+        push @{$tree->{'.'}}, $file;
+    }
+    return $tree;
+}
+
+=head2 get_file_map 
+
+This function combines the target_map and file hash to
+map each source file to its destination relative to
+the set of installation targets.
 
-=pod
+Output will be a hash mapping from each source file
+to its destination value, like this:
 
-C4/*.pm is copied to perl's lib namespace.
+'mainpage.pl' => '$(INTRANET_CGI_DIR)/mainpage.pl'
 
 =cut
-       foreach my $src (glob("C4/*.pm")) {
-               $result{$src} = '$(INST_LIBDIR)/'.$src;
-       }
 
-=pod
+sub get_file_map {
+    my $target_map = shift;
+    my $dirtree = shift;
+    my $file_map = shift;
+    my $install_zebra = shift;
+    my $curr_path = @_ ? shift : ['.'];
 
-CGIs are copied to $(PREFIX)/lib/cgi-bin/koha/
-and other scripts to koha/
+    # Traverse the directory tree.
+    # For each file or directory, identify the
+    # most specific match in the target_map
+    foreach my $dir (sort keys %{ $dirtree }) {
+        if ($dir eq '.') {
+            # deal with files in directory
+            foreach my $file (sort @{ $dirtree->{$dir} }) {
+                my $targetdir = undef;
+                my $matchlevel = undef;
+                # first, see if there is a match on this specific
+                # file in the target map
+                my $filepath = join("/", @$curr_path, $file);
+                if (exists $target_map->{$filepath}) {
+                    $targetdir = $target_map->{$filepath};
+                    $matchlevel = scalar(@$curr_path) + 1;
+                } else {
+                    # no match on the specific file; look for
+                    # a directory match
+                    for (my $i = scalar(@$curr_path) - 1; $i >= 0; $i--)  {
+                        my $dirpath = join("/", @$curr_path[0..$i]);
+                        if (exists $target_map->{$dirpath}) {
+                            $targetdir = $target_map->{$dirpath};
+                            $matchlevel = $i + 1;
+                            last;
+                        }
+                    }
+                }
+                if (defined $targetdir) {
+                     _add_to_file_map($file_map, $targetdir, $curr_path, $file, $matchlevel, $install_zebra);
+                } else {
+                    my $path = join("/", @$curr_path);
+                    print "failed to map: $path/$file\n" if $DEBUG;
+                }
+            }
+        } else {
+            # dealing with subdirectory
+            push @$curr_path, $dir;
+            get_file_map($target_map, $dirtree->{$dir}, $file_map, $install_zebra, $curr_path);
+            pop @$curr_path;
+        }
+    }
+}
 
-=cut
-       foreach my $src ("mainpage.pl","help.pl","kohaversion.pl",glob("*/*.pl"),glob("installer/*"),glob("installer/*/*/*/*"),glob("*/*/*.pl"),glob("*/*/*/*.pl")) {
-               if ($src =~ /(misc|updater|rss)\//) {
-                       $result{$src} = '$(INST_LIBDIR)/koha/'.$src;
-               } else {
-                       $result{$src} = '$(PREFIX)/lib/cgi-bin/koha/'.$src;
-               }
-       }
+sub _add_to_file_map {
+    my $file_map = shift;
+    my $targetdir = shift;
+    my $curr_path = shift;
+    my $file = shift;
+    my $matchlevel = shift;
+    my $install_zebra = shift;
+    my $dest_path = @_ ? shift : $curr_path;
+
+    # The target can be one of the following:
+    # 1. scalar representing target symbol
+    # 2. hash ref containing target and trimdir keys
+    #
+    # Consequently, this routine traverses this structure,
+    # calling itself recursively, until it deals with
+    # all of the scalar target symbols.
+    if (ref $targetdir eq 'HASH') {
+        my $subtarget = $targetdir->{target};
+        if (exists $targetdir->{trimdir}) {
+            # if we get here, we've specified that
+            # rather than installing the file to
+            # $(TARGET)/matching/dirs/subdirs/file,
+            # we want to install it to
+            # $(TARGET)/subdirs/file
+            #
+            # Note that this the only place where
+            # $matchlevel is used.
+            my @new_dest_path = @$dest_path;
+            if ($targetdir->{trimdir} == -1)  {
+                splice @new_dest_path, 0, $matchlevel;
+            } else {
+                splice @new_dest_path, 0, $targetdir->{trimdir};
+            }
+            _add_to_file_map($file_map, $subtarget, $curr_path, $file, $matchlevel, $install_zebra, \@new_dest_path);
+        } else {
+            # actually getting here means that the
+            # target was unnecessarily listed
+            # as a hash, but we'll forgive that
+            _add_to_file_map($file_map, $subtarget, $curr_path, $file, $matchlevel, $install_zebra);
+        }
+    } elsif ($targetdir ne 'NONE' and $targetdir ne '') {
+        my $source = File::Spec->catfile(@$curr_path, $file);
+        my $destination = File::Spec->catfile('blib', $targetdir, @$dest_path, $file);
+        #print "$source => $destination\n"; # DEBUG
+        # quote spaces in file names
+        # FIXME: this is of questionable portability and
+        # probably depends on user's make recognizing this
+        # quoting syntax -- probably better to remove
+        # spaces and shell metacharacters from all file names
+        $source =~ s/ /\\ /g;
+        $destination =~ s/ /\\ /g;
+      
+        $file_map->{$source} = $destination unless (!$install_zebra and $targetdir =~ /ZEBRA/);
+    }
+}
 
-=pod
+=head2 get_configuration_options
 
-Templates are copied to koha/templates,
+This prompts the user for various configuration options.
 
 =cut
-       foreach my $src (glob("koha-tmpl/*"),glob("koha-tmpl/intranet-tmpl/*/*/*"),glob("koha-tmpl/intranet-tmpl/*/*/*/*"),glob("koha-tmpl/intranet-tmpl/*/*/*/*/*"),glob("koha-tmpl/opac-tmpl/*/*/*"),glob("koha-tmpl/opac-tmpl/*/*/*/*"),glob("koha-tmpl/opac-tmpl/*/*/*/*/*")) {
 
-=pod
+sub get_configuration {
+  my $defaults = shift;
+  my $valid_values = shift;
+  my %config = ();
+
+  my $msg = q(
+By default, Koha can be installed in one of three ways:
+
+standard: Install files in conformance with the Filesystem
+          Hierarchy Standard (FHS).  This is the default mode
+          and should be used when installing a production
+          Koha system.  On Unix systems, root access is 
+          needed to complete a standard installation.
+
+single:   Install files under a single directory.  This option
+          is useful for installing Koha without root access, e.g.,
+          on a web host that allows CGI scripts and MySQL databases
+          but requires the user to keep all files under the user's
+          HOME directory.
+
+dev:      Create a set of symbolic links and configuration files to
+          allow Koha to run directly from the source distribution.
+          This mode is useful for developers who want to run
+          Koha from a git clone.
+
+Installation mode);
+    $msg .= _add_valid_values_disp('INSTALL_MODE', $valid_values);
+    $config{'INSTALL_MODE'} = _get_value('INSTALL_MODE', $msg, $defaults->{'INSTALL_MODE'}, $valid_values);
+
+    # set message and default value for INSTALL_BASE
+    # depending on value of INSTALL_MODE
+    my $install_base_default = $defaults->{'INSTALL_BASE'};
+    if ($config{'INSTALL_MODE'} eq 'dev') {
+        $msg = q(
+Please specify the directory in which to install Koha's
+active configuration files and (if applicable) the
+Zebra database.  Koha's CGI scripts and templates will
+be run from the current directory.
 
-excluding non-files and whitespace in filenames.
+Configuration directory:);
+        # FIXME - home directory portability consideration apply
+        $install_base_default = (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
+        # that user will likely want to install under the home
+        # directory.  This is OK in and of itself, but we should
+        # use File::HomeDir to locate the home directory portably.  
+        # This is deferred for now because File::HomeDir is not yet
+        # core.
+               # --we must also keep this portable to the major OS's -fbcit
+        $install_base_default = (exists $ENV{'HOME'}) ? "$ENV{'HOME'}/koha" : $defaults->{'INSTALL_BASE'};
+    } else {
+        # must be standard
+        $msg = q(
+Please specify the directory under which most Koha files 
+will be installed.
+
+Note that if you are planning in installing more than 
+one instance of Koha, you may want to modify the last
+component of the directory path, which will be used
+as the package name in the FHS layout.
+
+Base installation directory);
+    }
+    $config{'INSTALL_BASE'} = _get_value('INSTALL_BASE', $msg, $install_base_default, $valid_values);
+
+    $config{'INSTALL_BASE'} = File::Spec->rel2abs($config{'INSTALL_BASE'});
+       print "INSTALL_BASE=$config{'INSTALL_BASE'}\r\n" if $DEBUG;
+    if ($config{'INSTALL_MODE'} eq "standard") {
+        $msg = q(
+Since you are using the 'standard' install
+mode, you should run 'make install' as root.
+However, it is recommended that a non-root
+user (on Unix and Linux platforms) have 
+ownership of Koha's files, including the
+Zebra indexes if applicable.
+
+Please specify a user account.  This
+user account does not need to exist
+right now, but it needs to exist
+before you run 'make install'.  Please
+note that for security reasons, this
+user should not be the same as the user
+account Apache runs under.
+
+User account);
+        $config{'KOHA_USER'} = _get_value('KOHA_USER', $msg, $defaults->{'KOHA_USER'}, $valid_values);
+
+        $msg = q(
+Please specify the group that should own
+Koha's files.  As above, this group need
+not exist right now, but should be created
+before you run 'make install'.
+
+Group);
+        $config{'KOHA_GROUP'} = _get_value('KOHA_GROUP', $msg, $defaults->{'KOHA_GROUP'}, $valid_values);
+    }
+
+    $msg = q(
+Please specify which database engine you will use
+to store data in Koha.  The choices are MySQL and
+PostgreSQL; please note that at the moment
+PostgreSQL support is highly experimental.
+
+DBMS to use);
+    $msg .= _add_valid_values_disp('DB_TYPE', $valid_values);
+    $config{'DB_TYPE'} = _get_value('DB_TYPE', $msg, $defaults->{'DB_TYPE'}, $valid_values);
+
+    $msg = q(
+Please specify the name or address of your 
+database server.  Note that the database 
+does not have to exist at this point, it
+can be created after running 'make install'
+and before you try using Koha for the first time.
+
+Database server);
+    $config{'DB_HOST'} = _get_value('DB_HOST', $msg, $defaults->{'DB_HOST'}, $valid_values);
+
+    $msg = q(
+Please specify the port used to connect to the
+DMBS);
+    my $db_port_default = $config{'DB_TYPE'} eq 'mysql' ? '3306' : '5432';
+    $config{'DB_PORT'} = _get_value('DB_PORT', $msg, $db_port_default, $valid_values);
+
+    $msg = q(
+Please specify the name of the database to be
+used by Koha);
+    $config{'DB_NAME'} = _get_value('DB_NAME', $msg, $defaults->{'DB_NAME'}, $valid_values);
+
+    $msg = q(
+Please specify the user that owns the database to be
+used by Koha);
+    $config{'DB_USER'} = _get_value('DB_USER', $msg, $defaults->{'DB_USER'}, $valid_values);
+
+    $msg = q(
+Please specify the password of the user that owns the 
+database to be used by Koha);
+    $config{'DB_PASS'} = _get_value('DB_PASS', $msg, $defaults->{'DB_PASS'}, $valid_values);
+
+    $msg = q(
+Koha can use the Zebra search engine for high-performance
+searching of bibliographic and authority records.  If you
+have installed the Zebra software and would like to use it,
+please answer 'yes' to the following question.  Otherwise, 
+Koha will default to using its internal search engine.
+
+Please note that if you choose *NOT* to install Zebra,
+koha-conf.xml will still contain some references to Zebra
+settings.  Those references will be ignored by Koha.
+
+Install the Zebra configuration files?);
+    $msg .= _add_valid_values_disp('INSTALL_ZEBRA', $valid_values);
+    $config{'INSTALL_ZEBRA'} = _get_value('INSTALL_ZEBRA', $msg, $defaults->{'INSTALL_ZEBRA'}, $valid_values);
+
+    if ($config{'INSTALL_ZEBRA'} eq 'yes') {
+        $msg = q(
+Since you've chosen to use Zebra with Koha,
+you must specify the primary MARC format of the
+records to be indexed by Zebra.
+
+Koha provides Zebra configuration files for MARC 21
+and UNIMARC.
+
+MARC format for Zebra indexing);
+        $msg .= _add_valid_values_disp('ZEBRA_MARC_FORMAT', $valid_values);
+        $config{'ZEBRA_MARC_FORMAT'} = _get_value('ZEBRA_MARC_FORMAT', $msg, $defaults->{'ZEBRA_MARC_FORMAT'}, $valid_values);
+        $msg = q(
+Koha supplies Zebra configuration files tuned for
+searching either English (en) or French (fr) MARC
+records.
+
+Primary language for Zebra indexing);
+        $msg .= _add_valid_values_disp('ZEBRA_LANGUAGE', $valid_values);
+        $config{'ZEBRA_LANGUAGE'} = _get_value('ZEBRA_LANGUAGE', $msg, $defaults->{'ZEBRA_LANGUAGE'}, $valid_values);
+
+        $msg = q(
+Please specify Zebra database user);
+        $config{'ZEBRA_USER'} = _get_value('ZEBRA_USER', $msg, $defaults->{'ZEBRA_USER'}, $valid_values);
+
+        $msg = q(
+Please specify the Zebra database password);
+        $config{'ZEBRA_PASS'} = _get_value('ZEBRA_PASS', $msg, $defaults->{'ZEBRA_PASS'}, $valid_values);
+
+    }
+
+    print "\n\n";
+    return %config;
+}
+
+sub _add_valid_values_disp {
+    my $key = shift;
+    my $valid_values = shift;
+   
+    my $disp = "";
+    if (exists $valid_values->{$key}) {
+        $disp = " (" . join(", ", sort keys %{ $valid_values->{$key} }) . ")";
+    }
+    return $disp;
+}
+
+sub _get_value {
+    my $key = shift;
+    my $msg = shift;
+    my $default = shift;
+    my $valid_values = shift;
+
+    # override default value from environment
+    if (exists $ENV{$key}) {
+        $default = $ENV{$key};
+        $msg .= " (default from environment)";
+    }
+
+    my $val = prompt($msg, $default);
+
+    while (exists $valid_values->{$key} and 
+           $val ne $default and
+           not exists $valid_values->{$key}->{$val}) {
+        my $retry_msg = "Value '$val' is not a valid option.\n";
+        $retry_msg .= "Please enter a value";
+        $retry_msg .= _add_valid_values_disp($key, $valid_values);
+        $val = prompt($retry_msg, $default);
+    }
+    return $val;
+}
+
+=head2 get_target_directories 
+
+Creates a hash mapping from symbols for installation target
+directories to actual directory paths.
+
+Also returns a hash indicating targets for which 
+files need not be copied -- this is used for the 'dev'
+mode installation, where some files are installed in place.
 
 =cut
-               if ((-f $src) && ($src !~ /(\s)/)) {
-                       $result{$src} = '$(INST_LIBDIR)/koha/templates/'.$src;
+
+sub get_target_directories {
+    my $config = shift;
+
+    my $base = $config->{'INSTALL_BASE'};
+    my $mode = $config->{'INSTALL_MODE'};
+
+    # get last component of install base directory
+    # to treat as package name
+    my ($volume, $directories, $file) = File::Spec->splitpath($base, 1);
+
+    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
+
+    my $package = pop @basedir;
+
+
+    my %dirmap = ();
+    my %skipdirs = ();
+    if ($mode eq 'single') {
+        $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');
+        $dirmap{'OPAC_CGI_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'cgi-bin');
+        $dirmap{'OPAC_TMPL_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs', 'opac-tmpl');
+        $dirmap{'OPAC_WWW_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs');
+        $dirmap{'PERL_MODULE_DIR'} = File::Spec->catdir(@basedir, $package, 'lib');
+        $dirmap{'KOHA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc');
+        $dirmap{'ZEBRA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'zebradb');
+        $dirmap{'MISC_DIR'} = File::Spec->catdir(@basedir, $package, 'misc');
+        $dirmap{'SCRIPT_DIR'} = File::Spec->catdir(@basedir, $package, 'bin');
+        $dirmap{'MAN_DIR'} = File::Spec->catdir(@basedir, $package, 'man');
+        $dirmap{'DOC_DIR'} = File::Spec->catdir(@basedir, $package, 'doc');
+        $dirmap{'ZEBRA_LOCK_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'lock', 'zebradb');
+        $dirmap{'LOG_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'log');
+        $dirmap{'ZEBRA_DATA_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'lib', 'zebradb');
+        $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{'INTRANET_CGI_DIR'} = File::Spec->catdir($curdir);
+        $skipdirs{'INTRANET_CGI_DIR'} = 1;
+        $dirmap{'INTRANET_TMPL_DIR'} = File::Spec->catdir($curdir, 'koha-tmpl', 'intranet-tmpl');
+        $skipdirs{'INTRANET_TMPL_DIR'} = 1;
+        $dirmap{'INTRANET_WWW_DIR'} = File::Spec->catdir($curdir, 'koha-tmpl');
+        $skipdirs{'INTRANET_WWW_DIR'} = 1;
+        $dirmap{'OPAC_CGI_DIR'} = File::Spec->catdir($curdir, 'opac');
+        $skipdirs{'OPAC_CGI_DIR'} = 1;
+        $dirmap{'OPAC_TMPL_DIR'} = File::Spec->catdir($curdir, 'koha-tmpl', 'opac-tmpl');
+        $skipdirs{'OPAC_TMPL_DIR'} = 1;
+        $dirmap{'OPAC_WWW_DIR'} = File::Spec->catdir($curdir, 'koha-tmpl');
+        $skipdirs{'OPAC_WWW_DIR'} = 1;
+        $dirmap{'PERL_MODULE_DIR'} = File::Spec->catdir($curdir);
+        $skipdirs{'PERL_MODULE_DIR'} = 1;
+        $dirmap{'KOHA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc');
+        $dirmap{'ZEBRA_CONF_DIR'} = File::Spec->catdir(@basedir, $package, 'etc', 'zebradb');
+        $dirmap{'MISC_DIR'} = File::Spec->catdir(@basedir, $package, 'misc');
+        $dirmap{'SCRIPT_DIR'} = File::Spec->catdir(@basedir, $package, 'bin');
+        $skipdirs{'SCRIPT_DIR'} = 1;
+        $dirmap{'MAN_DIR'} = File::Spec->catdir(@basedir, $package, 'man');
+        $dirmap{'DOC_DIR'} = File::Spec->catdir(@basedir, $package, 'doc');
+        $dirmap{'ZEBRA_LOCK_DIR'} = File::Spec->catdir(@basedir, $package, 'var', 'lock', 'zebradb');
+        $dirmap{'LOG_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'log');
+        $dirmap{'ZEBRA_DATA_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'lib', 'zebradb');
+        $dirmap{'ZEBRA_RUN_DIR'} =  File::Spec->catdir(@basedir, $package, 'var', 'run', 'zebradb');
+    } else {
+        # mode is standard, i.e., 'fhs'
+        $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');
+        $dirmap{'OPAC_CGI_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'cgi-bin');
+        $dirmap{'OPAC_TMPL_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs', 'opac-tmpl');
+        $dirmap{'OPAC_WWW_DIR'} = File::Spec->catdir(@basedir, $package, 'opac', 'htdocs');
+        $dirmap{'PERL_MODULE_DIR'} = File::Spec->catdir(@basedir, $package, 'lib');
+        $dirmap{'KOHA_CONF_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'etc', $package);
+        $dirmap{'ZEBRA_CONF_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'etc', $package, 'zebradb');
+        $dirmap{'MISC_DIR'} = File::Spec->catdir(@basedir, $package, 'misc');
+        $dirmap{'SCRIPT_DIR'} = File::Spec->catdir(@basedir, $package, 'bin');
+        $dirmap{'MAN_DIR'} = File::Spec->catdir(@basedir, $package, 'man');
+        $dirmap{'DOC_DIR'} = File::Spec->catdir(@basedir, $package, 'doc');
+        $dirmap{'ZEBRA_LOCK_DIR'} = File::Spec->catdir(File::Spec->rootdir(), 'var', 'lock', $package, 'zebradb');
+        $dirmap{'LOG_DIR'} =  File::Spec->catdir(File::Spec->rootdir(), 'var', 'log', $package);
+        $dirmap{'ZEBRA_DATA_DIR'} =  File::Spec->catdir(File::Spec->rootdir(), 'var', 'lib', $package, 'zebradb');
+        $dirmap{'ZEBRA_RUN_DIR'} =  File::Spec->catdir(File::Spec->rootdir(), 'var', 'run', $package, 'zebradb');
+    }
+
+    _get_env_overrides(\%dirmap);
+    _get_argv_overrides(\%dirmap);
+
+    return \%dirmap, \%skipdirs;
+}
+
+sub _get_env_overrides {
+    my $dirmap = shift;
+
+    foreach my $key (keys %$dirmap) {
+        if (exists $ENV{$key}) {
+            $dirmap->{$key} = $ENV{$key};
+            print "Setting $key from environment\n";
+        }
+    }
+}
+
+sub _get_argv_overrides {
+    my $dirmap = shift;
+    
+    my @new_argv = ();
+    for (my $i = 0; $i <= $#ARGV; $i++) {
+        if ($ARGV[$i] =~ /^([^=]+)=([^=]+)$/ and exists $dirmap->{$1}) {
+            $dirmap->{$1} = $2;
+        } else {
+            push @new_argv, $ARGV[$i];
+        }
+    }
+    @ARGV = @new_argv;
+}
+
+sub display_configuration {
+    my $config = shift;
+    my $dirmap = shift;
+    print "\n\nKoha will be installed with the following configuration parameters:\n\n";
+    foreach my $key (sort keys %$config) {
+        print sprintf("%-25.25s%s\n", $key, $config->{$key});
+    }
+
+    print "\nand in the following directories:\n\n";
+    foreach my $key (sort keys %$dirmap) {
+        print sprintf("%-25.25s%s\n", $key, $dirmap->{$key});
+    }
+    print "\n\nTo change any configuration setting, please run\n";
+    print "perl Makefile.PL again.  To override one of the target\n";
+    print "directories, you can do so on the command line like this:\n";
+    print "\nperl Makefile.PL PERL_MODULE_DIR=/usr/share/perl/5.8\n\n";
+    print "You can also set different default values for parameters\n";
+    print "or override directory locations by using environment variables.\n";
+    print "\nFor example:\n\n";
+    print "export DB_USER=my_koha\n";
+    print "perl Makefile.PL\n";
+    print "\nor\n\n";
+    print "DB_USER=my_koha DOC_DIR=/usr/local/info perl Makefile.PL\n\n";
+}
+
+package MY;
+
+# This will have to be reworked in order to accommodate Win32...
+
+sub test {
+    my $self = shift;
+    my $test = $self->SUPER::test(@_);
+    $test =~ s!\$\(INST_LIB\)!blib/PERL_MODULE_DIR!g;
+    return $test;
+}
+
+sub install {
+    my $self = shift;
+    my $install = ""; 
+    # NOTE: we're *not* doing this: my $install = $self->SUPER::install(@_);
+    # This means that we're completely overriding EU::MM's default
+    # installation and uninstallation targets.
+
+# If installation is on Win32, we need to do permissions different from *nix
+    if ( $^O =~ /linux|cygwin/ ) { # 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
+KOHA_DEST_$key = $target_directories->{$key}
+)                      unless ($config{'INSTALL_ZEBRA'} ne "yes" and $key =~ /ZEBRA/) or exists $skip_directories->{$key};
                }
-       }
-=pod
+               $install .= qq(
+install :: all install_koha set_koha_ownership set_koha_permissions warn_koha_env_vars
+\t\$(NOECHO) \$(NOOP)
+);
+                       $install .= "install_koha ::\n";      
+                       $install .= "\t\$(NOECHO) umask 022; \$(MOD_INSTALL) \\\n";
+                       foreach my $key (sort keys %$target_directories) {
+                               $install .= "\t\t\$(KOHA_INST_$key) \$(KOHA_DEST_$key) \\\n" 
+                                       unless ($config{'INSTALL_ZEBRA'} ne "yes" and $key =~ /ZEBRA/) or exists $skip_directories->{$key};
+                       }
+                       $install .= "\t\t\$(INST_MAN1DIR) \$(DESTINSTALLMAN1DIR) \\\n";
+                       $install .= "\t\t\$(INST_MAN3DIR) \$(DESTINSTALLMAN3DIR)\n";
 
-etc files are copied to /usr/share/koha/etc/
+                       $install .= "\n";
+                       $install .= "set_koha_ownership ::\n";
+                       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"
+                                               unless ($config{'INSTALL_ZEBRA'} ne "yes" and $key =~ /ZEBRA/) or exists $skip_directories->{$key};
+                               }
+                       } else {
+                               $install .= "\t\t\$(NOECHO) \$(NOOP)\n\n";
+                       }
 
-=cut
-       # Misc etc to koha/etc
-       foreach my $src (glob("etc/zebradb/*/*/*"),glob("etc/zebradb/*/*"),glob("etc/zebradb/*"),glob("etc/*")) {
-               if (-f $src) {
-                       $result{$src} = '$(PREFIX)/share/koha/'.$src;
+                       $install .= "\n";
+                       $install .= "set_koha_permissions ::\n";
+                       # This is necessary because EU::MM installs files
+                       # as either 0444 or 0555, and we want the owner
+                       # of Koha's files to have write permission by default.
+                       foreach my $key (sort keys %$target_directories) {
+                               $install .= "\t\$(NOECHO) chmod -R u+w \$(KOHA_DEST_$key)\n"
+                                       unless ($config{'INSTALL_ZEBRA'} ne "yes" and $key =~ /ZEBRA/) or 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 ($config{'INSTALL_ZEBRA'} ne "yes" and $key =~ /ZEBRA/) or 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 ($config{'INSTALL_ZEBRA'} ne "yes" and $key =~ /ZEBRA/) or exists $skip_directories->{$key};
                }
        }
+       $install .= "\t\t\$(INST_MAN1DIR) \$(DESTINSTALLMAN1DIR) \\\n";
+       $install .= "\t\t\$(INST_MAN3DIR) \$(DESTINSTALLMAN3DIR)\n";
+
+       $install .= "\n";
+
+    $install .= "warn_koha_env_vars ::\n";
+    $install .= "\t\$(NOECHO) \$(ECHO)\n";
+    $install .= "\t\$(NOECHO) \$(ECHO) Koha\\'s files have now been installed. \n";
+    $install .= "\t\$(NOECHO) \$(ECHO)\n";
+    $install .= "\t\$(NOECHO) \$(ECHO) In order to use Koha\\'s command-line batch jobs,\n";
+    $install .= "\t\$(NOECHO) \$(ECHO) you should set the following environment variables:\n";
+    $install .= "\t\$(NOECHO) \$(ECHO)\n";
+    $install .= "\t\$(NOECHO) \$(ECHO) export KOHA_CONF=\$(KOHA_DEST_KOHA_CONF_DIR)/koha-conf.xml\n";
+    $install .= "\t\$(NOECHO) \$(ECHO) export PERL5LIB=$target_directories->{'PERL_MODULE_DIR'}\n";
+    $install .= "\t\$(NOECHO) \$(ECHO)\n";
+    $install .= "\t\$(NOECHO) \$(ECHO) If installing on a Win32 platform, be sure to use:\n";
+    $install .= "\t\$(NOECHO) \$(ECHO) 'dmake -x MAXLINELENGTH=300000'\n";
+    $install .= "\t\$(NOECHO) \$(ECHO)\n";
+    $install .= "\t\$(NOECHO) \$(ECHO) For other post-installation tasks, please consult the README.\n";
+    $install .= "\t\$(NOECHO) \$(ECHO)\n";
+
+    return $install;
+}
+
+sub postamble {
+    # put directory mappings into Makefile
+    # so that Make will export as environment
+    # variables -- this is for the use of
+    # rewrite-confg.PL
 
+    # quote '$' in the two password parameters
+    my %config = %config;
+    $config{'DB_PASS'} =~ s/\$/\$\$/g;
+    $config{'ZEBRA_PASS'} =~ s/\$/\$\$/g;
 
-       return \%result;
+       # Hereagain, we must alter syntax per platform...
+       if ( $^O eq 'MSWin32' ) {
+               # NOTE: it is imperative that there be no whitespaces in ENV=value...
+               my $env = join("\n", map { "__${_}__=$target_directories->{$_}" } keys %$target_directories); 
+               $env .= "\n\n";
+               $env .= join("\n", map { "__${_}__=$config{$_}" } keys %config);
+               return "$env\n";
+       }
+    else {
+               my $env = join("\n", map { "export __${_}__ := $target_directories->{$_}" } keys %$target_directories); 
+               $env .= "\n\n";
+               $env .= join("\n", map { "export __${_}__ := $config{$_}" } keys %config);
+               return "$env\n";
+       }
 }
 
+
 __END__
 
 
@@ -262,9 +1191,10 @@ __END__
 
 ExtUtils::MakeMaker(3)
 
-=head1 AUTHOR
+=head1 AUTHORS
 
 MJ Ray mjr at phonecoop.coop
+Galen Charlton galen.charlton at liblime.com
 
 =cut
-
+FIXME: deal with .htaccess
index b6a2bbe..018b73d 100644 (file)
@@ -40,7 +40,8 @@ and some webserver (preferably Apache) before installing Koha.
  
 MySQL 5: Create a database called 'koha,' owned by 'kohaadmin'
 user, with a password set. Note: kohaadmin must have at least the
-following privileges: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP.
+following privileges: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP,
+ALTER, and LOCK TABLES.
 
 PostgreSQL 8.2.5: Create a database called 'koha,' owned by 'kohaadmin' 
 user, with a password set. Note: kohaadmin must be a superuser. You
@@ -48,15 +49,16 @@ must also add plpgsql to the koha database.
 
 Default installation instructions:
 
-0. export DB_PASS=thePasswordYouChose
 1. perl Makefile.PL
+  (you will be prompted to answer a number of questions)
 2. make
-3. sudo make install
-4. ln -s /usr/share/koha/etc/koha-httpd.conf /etc/apache2/sites-available/koha
-5. a2enmod rewrite
-6. a2ensite koha && /etc/init.d/apache2 reload
-7. zebrasrv -c /usr/share/koha/etc/koha-conf.xml
-8. Browse to http://servername:8080/ and answer the questions
+3.(optional) make test 
+4. sudo make install
+5. ln -s /etc/koha/koha-httpd.conf /etc/apache2/sites-available/koha
+6. a2enmod rewrite
+7. a2ensite koha && /etc/init.d/apache2 reload
+8. zebrasrv -f /etc/koha/koha-conf.xml
+9. Browse to http://servername:8080/ and answer the questions
 
 OR if you want to install all dependencies from CPAN and are root, you can
 replace steps 1-3 with "perl install-CPAN.pl" but this is non-standard and
@@ -64,11 +66,8 @@ may not be safe.  Nevertheless, it's pretty cool when it works.
 
 The defaults will install Koha to places that follow relevant standards,
 such as the File Hierarchy Standard.  If you want to install Koha to a
-different directory like /opt/koha, then replace step 1 with:
-1a. export PREFIX=/opt/koha
-1b. export CGI_DIR=/opt/koha/cgi
-1c. export LOG_DIR=/opt/koha/log
-1d. perl Makefile.PL PREFIX=/opt/koha
+different directory like /opt/koha, then replace step 1 with (for example):
+1. perl Makefile.PL INTRANET_CGI_DIR=/www/cgi-bin
 
 You can change most of the defaults in a similar way, such as DB_HOST.
 For full instructions on how to override the default settings, run
index 93d46d9..c944fe3 100644 (file)
@@ -4,30 +4,30 @@
 <!-- scheme: tcp, ssl, unix, http, sru -->
 <!-- can run all servers on tcp, but the unix socket is faster -->
 
-<listen id="biblioserver" >unix:__BASE_DIR__/tmp/bibliosocket</listen>
-<listen id="authorityserver" >unix:__BASE_DIR__/tmp/authoritysocket</listen>
+<listen id="biblioserver" >unix:__ZEBRA_RUN_DIR__/bibliosocket</listen>
+<listen id="authorityserver" >unix:__ZEBRA_RUN_DIR__/authoritysocket</listen>
 <!-- public server runs on tcp -->
 <!-- <listen id="publicserver" >tcp:@:9999</listen> -->
 
 <!-- BIBLIOGRAPHIC RECORDS -->
 <server id="biblioserver"  listenref="biblioserver"> 
-    <directory>__BASE_DIR__/zebradb/biblios</directory>
-    <config>__PREFIX__/share/koha/etc/zebradb/zebra-biblios.cfg</config>
-    <cql2rpn>__PREFIX__/share/koha/etc/zebradb/pqf.properties</cql2rpn>
+    <directory>__ZEBRA_DATA_DIR__/biblios</directory>
+    <config>__ZEBRA_CONF_DIR__/zebra-biblios.cfg</config>
+    <cql2rpn>__ZEBRA_CONF_DIR__/pqf.properties</cql2rpn>
 </server>
 <serverinfo id="biblioserver">
-        <ccl2rpn>__PREFIX__/share/koha/etc/zebradb/ccl.properties</ccl2rpn>
+        <ccl2rpn>__ZEBRA_CONF_DIR__/ccl.properties</ccl2rpn>
         <user>__ZEBRA_USER__</user>    
         <password>__ZEBRA_PASS__</password>
 </serverinfo>
 
 <!-- AUTHORITY RECORDS -->
 <server id="authorityserver"  listenref="authorityserver" >
-    <directory>__BASE_DIR__/zebradb/authorities</directory>
-    <config>__PREFIX__/share/koha/etc/zebradb/zebra-authorities.cfg</config>
+    <directory>__ZEBRA_DATA_DIR__/authorities</directory>
+    <config>__ZEBRA_CONF_DIR__/zebra-authorities.cfg</config>
 </server>
 <serverinfo id="authorityserver">
-    <ccl2rpn>__PREFIX__/share/koha/etc/zebradb/ccl.properties</ccl2rpn>
+    <ccl2rpn>__ZEBRA_CONF_DIR__/ccl.properties</ccl2rpn>
     <user>__ZEBRA_USER__</user>
     <password>__ZEBRA_PASS__</password>
 </serverinfo>
  <biblioservershadow>1</biblioservershadow>
  <authorityserver>authorities</authorityserver>
  <authorityservershadow>1</authorityservershadow>
- <intranetdir>__CGI_DIR__</intranetdir>
- <opacdir>__CGI_DIR__/opac</opacdir>
- <opachtdocs>__BASE_DIR__/templates/koha-tmpl/opac-tmpl</opachtdocs>
- <intrahtdocs>__BASE_DIR__/templates/koha-tmpl/intranet-tmpl</intrahtdocs>
- <includes>__BASE_DIR__/templates/koha-tmpl/intranet-tmpl/default/en/includes/</includes>
+ <intranetdir>__INTRANET_CGI_DIR__</intranetdir>
+ <opacdir>__OPAC_CGI_DIR__/opac</opacdir>
+ <opachtdocs>__OPAC_TMPL_DIR__</opachtdocs>
+ <intrahtdocs>__INTRANET_TMPL_DIR__</intrahtdocs>
+ <includes>__INTRANET_TMPL_DIR__/default/en/includes/</includes>
 </config>
 </yazgfs>
index 077a76e..542e2e6 100644 (file)
@@ -5,16 +5,17 @@
 ## OPAC
 <VirtualHost __WEBSERVER_IP__:__WEBSERVER_PORT__>
    ServerAdmin  __WEBMASTER_EMAIL__
-   DocumentRoot __BASE_DIR__/templates/koha-tmpl/
+   DocumentRoot __OPAC_WWW_DIR__
    ServerName __WEBSERVER_HOST__
 #  ServerAlias opac.mydomain.com
-   ScriptAlias /cgi-bin/koha/ "__CGI_DIR__/opac/"
-   ScriptAlias /index.html "__CGI_DIR__/opac/opac-main.pl"
-   ScriptAlias /opac-search.pl "__CGI_DIR__/opac/search"
-   ScriptAlias /search "__CGI_DIR__/opac/search"
+   ScriptAlias /cgi-bin/koha/ "__OPAC_CGI_DIR__/opac/"
+   ScriptAlias /index.html "__OPAC_CGI_DIR__/opac/opac-main.pl"
+   ScriptAlias /opac-search.pl "__OPAC_CGI_DIR__/opac/search"
+   ScriptAlias /search "__OPAC_CGI_DIR__/opac/search"
    ErrorLog __LOG_DIR__/koha-opac-error_log
 #  TransferLog __LOG_DIR__/koha-opac-access_log
-   SetEnv KOHA_CONF "__PREFIX__/share/koha/etc/koha-conf.xml"
+   SetEnv KOHA_CONF "__KOHA_CONF_DIR__/koha-conf.xml"
+   SetEnv PERL5LIB "__PERL_MODULE_DIR__"
    Options +FollowSymLinks
 
 #  Rewrite Rules
 ## Intranet
 <VirtualHost __WEBSERVER_IP__:__WEBSERVER_PORT_LIBRARIAN__>
    ServerAdmin __WEBMASTER_EMAIL__
-   DocumentRoot __BASE_DIR__/templates/koha-tmpl/
+   DocumentRoot __INTRANET_WWW_DIR__
    ServerName __WEBSERVER_HOST__:__WEBSERVER_PORT_LIBRARIAN__
 #  ServerAlias intranet.mydomain.com
-   ScriptAlias /cgi-bin/koha/ "__CGI_DIR__/"
-   ScriptAlias /index.html "__CGI_DIR__/mainpage.pl"
-   ScriptAlias /search "__CGI_DIR__/search.pl"
+   ScriptAlias /cgi-bin/koha/ "__INTRANET_CGI_DIR__/"
+   ScriptAlias /index.html "__INTRANET_CGI_DIR__/mainpage.pl"
+   ScriptAlias /search "__INTRANET_CGI_DIR__/search.pl"
    ErrorLog __LOG_DIR__/koha-error_log
 #  TransferLog __LOG_DIR__/koha-access_log
-   SetEnv KOHA_CONF "__PREFIX__/share/koha/etc/koha-conf.xml"
+   SetEnv KOHA_CONF "__KOHA_CONF_DIR__/koha-conf.xml"
+   SetEnv PERL5LIB "__PERL_MODULE_DIR__"
    Options +FollowSymLinks
    RewriteEngine On    
 #  Uncomment to turn on rewrite logging
diff --git a/etc/zebradb/authorities/etc/record.abs b/etc/zebradb/authorities/etc/record.abs
deleted file mode 100644 (file)
index d6b4569..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-# $Id: record_authorities_unimarc.abs,v 1.1.2.1 2006/11/28 10:11:56 tipaul Exp $
-
-# indexing rules. It
-# results in a server which provides a passable Bath level 0 and 1 service
-############################################################################
-# IMPORTANT : this file MUST be renamed record.abs : this name is "hardcoded" in zebra
-# the default record.abs is designed for MARC21.
-############################################################################
-# NOTE: This is designed to be used with the grs.marcxml input filter
-# for ISO2709 (ANSI Z39.2) or grs.xml for MARCXML-formatted records. It
-# won't work for the old grs.marc input filter, which yields a different
-# internal structure.
-
-encoding utf-8
-name authorities
-#attset auth1.att
-attset bib1.att
-esetname F @
-esetname B @
-
-marc usmarc.mar
-systag sysno rank
-xpath disable
-
-all any
-melm 001               Local-Number
-melm 152$b             Authority/format-id
-#melm 005        Version-id
-#melm 015        IASDN
-
-
-########################
-# Coded fields
-########################
-#melm 100$a      date-entered-on-file:n:range(data,0,8),date-entered-on-file:s:range(data,0,8),auth-status:n:range(data,8,1),auth-status:s:range(data,8,1),language:n:range(data,9,3),language:s:range(data,9,3),char-encoding:w:range(data,13,4),char-encoding:s:range(data,13,4),ff100-17:w:range(data,17,3),ff100-21:w:range(data,21,2),ff100-23:w:range(data,23,1)
-
-#melm 101$a     Language
-#melm 102$a     Country-heading
-# Subject-Heading
-#melm 106$a     Vaut 0(inutilisable sujet-matiere),1 (utilisable sujet-matiere)ou 2(utilisable uniquement sujet-matiere)
-#melm 120$a Obligatoire sur Autorite NP : Sexe et discrimination
-#melm 123$a Obligatoire sur Autorite GEO : Localisation
-#melm 150$a Obligatoire sur Autorite CO : Type de collectivite
-# 4XX$3 5XX$3 7XX$3 authority number
-# 4XX$5 5XX$5 7XX$5 Linking type
-# 4XX$7 5XX$7 7XX$7 Script Cataloguing
-# 4XX$8 5XX$8 7XX$8 Language
-
-
-############ HEADINGS ##################
-melm 100$a Heading:w,Heading:p,Heading:s, personal-heading,personal-heading:w,personal-heading:s,personal-heading:p
-melm 110$a Heading:w,Heading:p,Heading:s,corporate-heading
-melm 110$a Heading:w,Heading:p,Heading:s,Conference-heading
-melm 115$a Heading:w,Heading:p,Heading:s,Name-geographic
-#melm 216 Name-corporate
-melm 120$a Heading:w,Heading:p,Heading:s,personal-heading,personal-heading:w,personal-heading:s,personal-heading:p
-melm 130$a Heading:w,Heading:p,Heading:s,Title-Uniform,Title-Uniform:w,Title-Uniform:s,Title-Uniform:p
-melm 135$a Heading:w,Heading:p,Heading:s,Title-Uniform,Title-Uniform:w,Title-Uniform:s,Title-Uniform:p
-melm 150$a Heading:w,Heading:p,Heading:s,Subject-heading, Subject-heading:w,Subject-heading:s,Subject-heading:p
-
-melm 100 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s, personal-Heading-Entity,personal-Heading-Entity:w,personal-Heading-Entity:s,personal-Heading-Entity:p
-melm 110 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s,corporate-Heading-Entity
-melm 110 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s,Conference-Heading-Entity
-melm 115 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s,Name-geographic-Entity
-#melm 216 Name-corporate
-melm 120 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s,personal-Heading-Entity,personal-Heading-Entity:w,personal-Heading-Entity:s,personal-Heading-Entity:p
-melm 130 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s,Title-Uniform-entity,Title-Uniform-entity:w,Title-Uniform:s,Title-Uniform-entity:p
-melm 135 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s,Title-Uniform-entity,Title-Uniform-entity:w,Title-Uniform:s,Title-Uniform-entity:p
-melm 150 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s,Subject-Thesaurus
-
-#210 Heading - Corporate Body Name
-#215 Heading - Territorial or Geographical Name
-#216 Heading - Trademark
-#220 Heading - Family Name
-#230 Heading - Uniform Title
-#235 Heading - Collective Uniform Title
-#240 Heading - Name/Title
-#245 Heading - Name/Collective Uniform Title
-#250 Heading - Topical Subject
-#260 Heading - Place Access
-#280 Heading - Form, Genre or Physical Characteristics
-#melm 712              Author,Author:p,Author:s
-
-############# Rejected forms ##################
-#melm 400$a See, See:w,See:p,See:s,personal-see,personal-see:w,personal-see:s,personal-see:p
-#melm 410$a See, See:w,See:p,See:s,corporate-see
-#melm 410$a See, See:w,See:p,See:s,Conference-see
-#melm 415$a See, See:w,See:p,See:s,Name-geographic-see
-##melm 416 Name-corporate
-#melm 440$a See, See:w,See:p,See:s,personal-see,personal-see:w,personal-see:s,personal-see:p
-#melm 430$a See, See:w,See:p,See:s,Title-Uniform-see,Title-Uniform-see:w,Title-Uniform-see:s,Title-Uniform-see:p
-#melm 435$a See, See:w,See:p,See:s,Title-Uniform-see,Title-Uniform-see:w,Title-Uniform-see:s,Title-Uniform-see:p
-#melm 450$a See, See:w,See:p,See:s,Subject-see,Subject-see:w,Subject-see:s,Subject-see,:p
-#melm 400 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,personal-See-Entity,personal-See-Entity:w,personal-See-Entity:s,personal-See-Entity:p
-#melm 410 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,corporate-See-Entity
-#melm 410 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,Conference-See-Entity
-#melm 415 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,Name-geographic-See-Entity
-##melm 416 Name-corporate
-#melm 440 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,personal-See-Entity,personal-See-Entity:w,personal-See-Entity:s,personal-See-Entity:p
-#melm 430 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,Title-Uniform-See-Entity,Title-Uniform-See-Entity:w,Title-Uniform-See-Entity:s,Title-Uniform-See-Entity:p
-#melm 435 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,Title-Uniform-See-Entity,Title-Uniform-See-Entity:w,Title-Uniform-See-Entity:s,Title-Uniform-See-Entity:p
-#melm 450 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,Subject-See-Entity,Subject-See-Entity:w,Subject-See-Entity:s,Subject-See-Entity,:p
-#
-##410 Heading - Corporate Body Name
-##415 Heading - Territorial or Geographical Name
-##416 Heading - Trademark
-##440 Heading - Family Name
-##430 Heading - Uniform Title
-##435 Heading - Collective Uniform Title
-##440 Heading - Name/Title
-##445 Heading - Name/Collective Uniform Title
-##450 Heading - Topical Subject
-##460 Heading - Place Access
-##480 Heading - Form, Genre or Physical Characteristics
-##melm 714             Author,Author:p,Author:s
-#
-############# Related forms ##################
-#melm 500$a personal-see-also,personal-see-also:w,personal-see-also:s,personal-see-also:p
-#melm 510$a corporate-see-also
-#melm 510$a Conference-see-also
-#melm 515$a Name-geographic-see-also
-##melm 416 Name-corporate
-#melm 540$a personal-see-also,personal-see-also:w,personal-see-also:s,personal-see-also:p
-#melm 530$a Title-Uniform-see-also,Title-Uniform-see-also:w,Title-Uniform-see-also:s,Title-Uniform-see-also:p
-#melm 535$a Title-Uniform-see-also,Title-Uniform-see-also:w,Title-Uniform-see-also:s,Title-Uniform-see-also:p
-#melm 550$a Subject-see-also,Subject-see-also:w,Subject-see-also:s,Subject-see-also:p
-##510 Heading - Corporate Body Name
-##515 Heading - Territorial or Geographical Name
-##516 Heading - Trademark
-##550 Heading - Family Name
-##530 Heading - Uniform Title
-##535 Heading - Collective Uniform Title
-##540 Heading - Name/Title
-###545 Heading - Name/Collective Uniform Title
-##550 Heading - Topical Subject
-##560 Heading - Place Access
-##580 Heading - Form, Genre or Physical Characteristics
-##melm 714             Author,Author:p,Author:s
-#
-############# Parallel forms ##################
-#melm 700$a personal-parallel,personal-parallel:w,personal-parallel:s,personal-parallel:p
-#melm 710$a corporate-parallel
-#melm 710$a Conference-parallel
-#melm 715$a Name-geographic-parallel
-##melm 716 Name-corporate
-#melm 770$a personal-parallel,personal-parallel:w,personal-parallel:s,personal-parallel:p
-#melm 730$a Title-Uniform-parallel,Title-Uniform-parallel:w,Title-Uniform-parallel:s,Title-Uniform-parallel:p
-#melm 735$a Title-Uniform-parallel,Title-Uniform-parallel:w,Title-Uniform-parallel:s,Title-Uniform-parallel:p
-#melm 750$a Subject-parallel,Subject-parallel:w,Subject-parallel:s,Subject-parallel:p
-#
-########### NOTES #################
-#melm 300$a            Note    !:w,!:p
-#melm 301$a            Note    !:w,!:p
-#melm 302$a            Note    !:w,!:p
-#melm 303$a            Note    !:w,!:p
-#melm 304$a            Note    !:w,!:p
-#melm 305$a            Note    !:w,!:p
-#melm 306$a            Note    !:w,!:p
-#melm 307$a            Note    !:w,!:p
-#melm 308$a            Note    !:w,!:p
-#melm 310$a            Note    !:w,!:p
-#melm 311$a            Note    !:w,!:p
-#melm 312$a            Note    !:w,!:p
-#melm 313$a            Note    !:w,!:p
-#melm 314$a            Note    !:w,!:p
-#melm 315$a            Note    !:w,!:p
-#melm 316$a            Note    !:w,!:p
-#melm 317$a            Note    !:w,!:p
-#melm 318$a            Note    !:w,!:p
-#melm 320$a            Note    !:w,!:p
-#melm 321$a            Note    !:w,!:p
-#melm 322$a            Note    !:w,!:p
-#melm 323$a            Note    !:w,!:p
-#melm 324$a            Note    !:w,!:p
-#melm 325$a            Note    !:w,!:p
-#melm 326$a            Note    !:w,!:p
-#melm 327$a            Note    !:w,!:p
-#melm 328$a            Note    !:w,!:p
-#melm 330$a            Note    !:w,!:p
-#melm 332$a            Note    !:w,!:p
-#melm 333$a            Note    !:w,!:p
-#melm 336$a            Note    !:w,!:p
-#melm 337$a            Note    !:w,!:p
-#melm 345$a            Note    !:w,!:p
-#####
diff --git a/etc/zebradb/authorities/etc/record_unimarc.abs b/etc/zebradb/authorities/etc/record_unimarc.abs
deleted file mode 100644 (file)
index 31a680b..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-
-# indexing rules. It
-# results in a server which provides a passable Bath level 0 and 1 service
-############################################################################
-# IMPORTANT : this file MUST be renamed record.abs : this name is "hardcoded" in zebra
-# the default record.abs is designed for MARC21.
-############################################################################
-# NOTE: This is designed to be used with the grs.marcxml input filter
-# for ISO2709 (ANSI Z39.2) or grs.xml for MARCXML-formatted records. It
-# won't work for the old grs.marc input filter, which yields a different
-# internal structure.
-
-encoding utf-8
-name authorities
-attset auth1.att
-esetname F @
-esetname B @
-
-marc usmarc.mar
-systag sysno rank
-xpath disable
-
-all any
-melm 001               Local-Number
-melm 152$b             Authority/format-id
-#melm 005        Version-id
-#melm 015        IASDN
-
-
-########################
-# Coded fields
-########################
-#melm 100$a      date-entered-on-file:n:range(data,0,8),date-entered-on-file:s:range(data,0,8),auth-status:n:range(data,8,1),auth-status:s:range(data,8,1),language:n:range(data,9,3),language:s:range(data,9,3),char-encoding:w:range(data,13,4),char-encoding:s:range(data,13,4),ff100-17:w:range(data,17,3),ff100-21:w:range(data,21,2),ff100-23:w:range(data,23,1)
-
-#melm 101$a     Language
-#melm 102$a     Country-heading
-# Subject-Heading
-#melm 106$a     Vaut 0(inutilisable sujet-matiere),1 (utilisable sujet-matiere)ou 2(utilisable uniquement sujet-matiere)
-#melm 120$a Obligatoire sur Autorite NP : Sexe et discrimination
-#melm 123$a Obligatoire sur Autorite GEO : Localisation
-#melm 150$a Obligatoire sur Autorite CO : Type de collectivite
-# 4XX$3 5XX$3 7XX$3 authority number
-# 4XX$5 5XX$5 7XX$5 Linking type
-# 4XX$7 5XX$7 7XX$7 Script Cataloguing
-# 4XX$8 5XX$8 7XX$8 Language
-
-
-############ HEADINGS ##################
-melm 200$a Heading,Heading-Entity,Heading:s,personal-heading
-melm 210$a Heading,Heading-Entity,Heading:s,corporate-heading,Conference-heading
-melm 215$a Heading,Heading-Entity,Heading:s,Name-geographic
-#melm 216 Name-corporate
-melm 220$a Heading,Heading-Entity,Heading:s,personal-heading
-melm 230$a Heading,Heading-Entity,Heading:s,Title-Uniform
-melm 235$a Heading,Heading-Entity,Heading:s,Title-Uniform
-melm 240$a Heading,Heading-Entity,Heading:s,Name-Title
-melm 250$a Heading,Heading-Entity,Heading:s,Subject-heading, Subject-heading:s
-
-melm 200 Heading-Entity,Heading-Entity:s, personal-Heading-Entity
-melm 210 Heading-Entity,Heading-Entity:s,corporate-Heading-Entity
-melm 210 Heading-Entity,Heading-Entity:s,Conference-Heading-Entity
-melm 215 Heading-Entity,Heading-Entity:s,Name-geographic-Entity
-#melm 216 Name-corporate
-melm 220 Heading-Entity,Heading-Entity:s,personal-Heading-Entity
-melm 230 Heading-Entity,Heading-Entity:s,Title-Uniform-entity
-melm 235 Heading-Entity,Heading-Entity:s,Title-Uniform-entity
-melm 240 Heading-Entity,Heading-Entity:s,Name-Title-entity
-melm 250   Heading-Entity,Subject-Thesaurus
-
-#210 Heading - Corporate Body Name
-#215 Heading - Territorial or Geographical Name
-#216 Heading - Trademark
-#220 Heading - Family Name
-#230 Heading - Uniform Title
-#235 Heading - Collective Uniform Title
-#240 Heading - Name/Title
-#245 Heading - Name/Collective Uniform Title
-#250 Heading - Topical Subject
-#260 Heading - Place Access
-#280 Heading - Form, Genre or Physical Characteristics
-#melm 712              Author,Author:p,Author:s
-
-############ Rejected forms ##################
-melm 400$a See, See:s,See-Entity, personal-see,personal-see:w,personal-see:s,personal-see:p
-melm 410$a See, See:s,See-Entity, corporate-see
-melm 410$a See, See:s,See-Entity, Conference-see
-melm 415$a See, See:s,See-Entity, Name-geographic-see
-#melm 416 Name-corporate
-melm 440$a See, See:s,See-Entity, personal-see,personal-see:s
-melm 430$a See, See:s,See-Entity, Title-Uniform-see,Title-Uniform-see:s
-melm 435$a See, See:s,See-Entity, Title-Uniform-see,Title-Uniform-see:s
-melm 450$a See, See:s,See-Entity, Subject-see,Subject-see:s
-melm 400 See-Entity, personal-See-Entity,personal-See-Entity:s
-melm 410 See-Entity, corporate-See-Entity
-melm 410 See-Entity, Conference-See-Entity
-melm 415 See-Entity, Name-geographic-See-Entity
-#melm 416 Name-corporate
-melm 440 See-Entity, personal-See-Entity
-melm 430 See-Entity, Title-Uniform-See-Entity
-melm 435 See-Entity, Title-Uniform-See-Entity
-melm 435 See-Entity, Name-Title-See-Entity
-melm 450 See-Entity,Subject-See-Entity
-
-#410 Heading - Corporate Body Name
-#415 Heading - Territorial or Geographical Name
-#416 Heading - Trademark
-#440 Heading - Family Name
-#430 Heading - Uniform Title
-#435 Heading - Collective Uniform Title
-#440 Heading - Name/Title
-#445 Heading - Name/Collective Uniform Title
-#450 Heading - Topical Subject
-#460 Heading - Place Access
-#480 Heading - Form, Genre or Physical Characteristics
-#melm 714              Author,Author:p,Author:s
-
-############ Related forms ##################
-melm 500$a personal-see-also,personal-see-also:w,personal-see-also:s,personal-see-also:p
-melm 510$a corporate-see-also
-melm 510$a Conference-see-also
-melm 515$a Name-geographic-see-also
-#melm 416 Name-corporate
-melm 540$a personal-see-also,personal-see-also:w,personal-see-also:s,personal-see-also:p
-melm 530$a Title-Uniform-see-also,Title-Uniform-see-also:w,Title-Uniform-see-also:s,Title-Uniform-see-also:p
-melm 535$a Title-Uniform-see-also,Title-Uniform-see-also:w,Title-Uniform-see-also:s,Title-Uniform-see-also:p
-melm 540$a Name-Title-see-also,Name-Title-see-also:w,Name-Title-see-also:s,Name-Title-see-also:p
-melm 550$a Subject-see-also,Subject-see-also:w,Subject-see-also:s,Subject-see-also:p
-#510 Heading - Corporate Body Name
-#515 Heading - Territorial or Geographical Name
-#516 Heading - Trademark
-#550 Heading - Family Name
-#530 Heading - Uniform Title
-#535 Heading - Collective Uniform Title
-#540 Heading - Name/Title
-#545 Heading - Name/Collective Uniform Title
-#550 Heading - Topical Subject
-#560 Heading - Place Access
-#580 Heading - Form, Genre or Physical Characteristics
-#melm 714              Author,Author:p,Author:s
-
-############ Parallel forms ##################
-melm 700$a personal-parallel,personal-parallel:w,personal-parallel:s,personal-parallel:p
-melm 710$a corporate-parallel
-melm 710$a Conference-parallel
-melm 715$a Name-geographic-parallel
-#melm 716 Name-corporate
-melm 770$a personal-parallel,personal-parallel:w,personal-parallel:s,personal-parallel:p
-melm 730$a Title-Uniform-parallel,Title-Uniform-parallel:w,Title-Uniform-parallel:s,Title-Uniform-parallel:p
-melm 735$a Title-Uniform-parallel,Title-Uniform-parallel:w,Title-Uniform-parallel:s,Title-Uniform-parallel:p
-melm 740$a Name-Title-parallel,Name-Title-parallel:w,Name-Title-parallel:s,Name-Title-parallel:p
-melm 750$a Subject-parallel,Subject-parallel:w,Subject-parallel:s,Subject-parallel:p
-
-########## NOTES #################
-melm 300$a             Note
-melm 301$a             Note
-melm 302$a             Note
-melm 303$a             Note
-melm 304$a             Note
-melm 305$a             Note
-melm 306$a             Note
-melm 307$a             Note
-melm 308$a             Note
-melm 310$a             Note
-melm 311$a             Note
-melm 312$a             Note
-melm 313$a             Note
-melm 314$a             Note
-melm 315$a             Note
-melm 316$a             Note
-melm 317$a             Note
-melm 318$a             Note
-melm 320$a             Note
-melm 321$a             Note
-melm 322$a             Note
-melm 323$a             Note
-melm 324$a             Note
-melm 325$a             Note
-melm 326$a             Note
-melm 327$a             Note
-melm 328$a             Note
-melm 330$a             Note
-melm 332$a             Note
-melm 333$a             Note
-melm 336$a             Note
-melm 337$a             Note
-melm 345$a             Note
-
diff --git a/etc/zebradb/authorities/key/README b/etc/zebradb/authorities/key/README
deleted file mode 100644 (file)
index 13dbbf6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Zebra key dir 
diff --git a/etc/zebradb/authorities/lock/README b/etc/zebradb/authorities/lock/README
deleted file mode 100644 (file)
index 1ffee6b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Zebra lock dir
diff --git a/etc/zebradb/authorities/register/README b/etc/zebradb/authorities/register/README
deleted file mode 100644 (file)
index 82c9db0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Zebra register dir
diff --git a/etc/zebradb/authorities/shadow/README b/etc/zebradb/authorities/shadow/README
deleted file mode 100644 (file)
index 6f5f64c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Zebra shadow dir
diff --git a/etc/zebradb/authorities/tmp/README b/etc/zebradb/authorities/tmp/README
deleted file mode 100644 (file)
index 12e0361..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Zebra tmp dir
diff --git a/etc/zebradb/biblios/etc/record.abs b/etc/zebradb/biblios/etc/record.abs
deleted file mode 100644 (file)
index 0eed7b4..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-# This is a fairly simple example of a set of MARC21 indexing rules. It
-# results in a server which provides a passable Bath level 0 and 1 service
-# (author, title, subject, keyword and exact services). Feel free to
-# elaborate on it, and if you do, please consider sharing your additions.
-# NOTE: This is designed to be used with the grs.marcxml input filter
-# for ISO2709 (ANSI Z39.2) or grs.xml for MARCXML-formatted records. It
-# won't work for the old grs.marc input filter, which yields a different
-# internal structure.
-encoding utf-8
-name marc21
-attset bib1.att
-attset gils.att
-esetname F @
-esetname B @
-
-marc usmarc.mar
-systag sysno rank
-xpath enable
-# Some notes:
-# pl = Published Place
-# ta = Target Audience 002/22
-# ff8-23
-# lf = Literary Form 008/33
-# bio = Biography 008/34
-# fmt = Format
-# ln = Language
-# ctype = Content type: review, catalog, encyclopedia, dictionary
-# pubdate Publication Date
-# rtype =  Record type (leader 06)
-#
-# Date indexing in Koha 3.0 for MARC21:
-# Index                   Expected format         Notes
-# date-entered-on-file    [yymmdd]        (008/0-5, indexed in word and sort indexes)
-# copydate                [yyyy]          (260$c, indexed in word and sort indexes)
-# acqdate                 [yyyy-mm-dd]    (952$d, indexed in date,word,sort indexes)
-# pubdate                 [yyyy]          (008/7-10, indexed in year,word,num,sort indexes)
-
-all any
-# melm 000             rtype:n:range(data,06,1),Bib-level:w:range(data,07,01)
-xelm /record/leader llength:w:range(data,0,5),rtype:w:range(data,6,1),Bib-level:w:range(data,7,1)
-# example: xelm /record/leader l1:w:range(data,0,5),l2:w:range(data,10,2)
-
-melm 001               Control-number
-melm 005               Date/time-last-modified
-melm 007               Microform-generation:n:range(data,11,1),Material-type,ff7-00:w:range(data,0,1),ff7-01:w:range(data,1,1),ff7-02:w:range(data,2,1),ff7-01-02:w:range(data,0,2)
-
-melm 008               date-entered-on-file:n:range(data,0,5),date-entered-on-file:s:range(data,0,5),pubdate:w:range(data,7,4),pubdate:n:range(data,7,4),pubdate:y:range(data,7,4),pubdate:s:range(data,7,4),pl:w:range(data,15,3),ta:w:range(data,22,1),ff8-23:w:range(data,23,1),ff8-29:w:range(data,29,1),lf:w:range(data,33,1),bio:w:range(data,34,1),ln:n:range(data,35,3),ctype:w:range(data,24,4),Record-source:w:range(data,39,0)
-
-melm 010               LC-card-number,Identifier-standard
-melm 011               LC-card-number,Identifier-standard
-melm 015               BNB-card-number,BGF-number,Number-db,Number-natl-biblio,Identifier-standard
-melm 017               Number-legal-deposit,Identifier-standard
-melm 018               Identifier-standard
-melm 020$a      ISBN:w,Identifier-standard:w
-melm 020               ISBN,Identifier-standard
-melm 022$a      ISSN:w,ISBN:w
-melm 022               ISSN,Identifier-standard
-melm 023               Identifier-standard
-melm 024               Identifier-standard
-melm 025               Identifier-standard
-melm 027               Report-number,Identifier-standard
-melm 028               Number-music-publisher,Identifier-standard
-melm 030               CODEN,Identifier-standard
-#melm 033              Date
-melm 034        Map-scale
-#melm 035              Local-number,Identifier-standard
-melm 037               Identifier-standard,Stock-number
-melm 040        Code-institution,Record-source
-melm 041        ln
-melm 043        Code-geographic
-#melm 046              pubdate
-melm 050$b             LC-call-number:w, LC-call-number:p, LC-call-number:s
-melm 050               LC-call-number:w, LC-call-number:p, LC-call-number:s
-melm 052               Geographic-class
-melm 060               NLM-call-number
-melm 070               NAL-call-number
-melm 080               UDC-classification
-melm 082        Dewey-classification:w,Dewey-classification:s
-melm 086        Number-govt-pub
-#melm 942$k            LC-card-number:s
-
-## KOHA SPECIFIC
-#melm 090$c            Local-number:w
-#Identifier-standard:w
-
-melm 100$9             Cross-Reference:w,Koha-Auth-Number
-melm 100$a             Author,Author:p,Author:s,Editor,Author-personal-bibliography,Author-personal-bibliography:p,Author-personal-bibliography:s
-melm 100               Author,Author-title,Author-name-personal,Name,Name-and-title,Personal-name
-melm 110$9      Koha-Auth-Number
-melm 110               Author,Author-title,Author-name-corporate,Name,Name-and-title,Corporate-name
-melm 111$9      Koha-Auth-Number
-melm 111               Author,Author-title,Author-name-corporate,Name,Name-and-title,Conference-name
-melm 130$n             Thematic-number
-melm 130$r             Music-key
-melm 130$9      Koha-Auth-Number
-melm 130               Title,Title-uniform
-
-melm 210               Title,Title-abbreviated
-melm 211               Title,Title-abbreviated
-melm 212               Title,Title-other-variant
-melm 214               Title,Title-expanded
-melm 222               Title,Title-key
-melm 240$r             Music-key
-melm 240$n             Thematic-number
-melm 240               Title:w,Title:p,Title-uniform
-melm 243$n             Thematic-number
-melm 243$r             Music-key
-melm 243               Title:w,Title:p,Title-collective
-melm 245$a             Title-cover:w,Title-cover:p,Title-cover:s,Title:w,Title:p,Title:s
-melm 245$c             Author,Author-in-order:w,Author-in-order:p,Author-in-order:s
-melm 245$9             Cross-Reference:w,Koha-Auth-Number
-melm 245               Title:w,Title:p
-melm 246               Title,Title:p,Title-abbreviated,Title-expanded,Title-former
-melm 247               Title,Title:p,Title-former,Title-other-variant,Related-periodical
-melm 260$a             pl:w,pl:p
-melm 260$b             Publisher:w,Publisher:p
-melm 260$c             copydate,copydate:s
-melm 260               pl
-melm 300               Extent:w,Extent:p
-melm 400$a             Name-and-title
-melm 400$t      Author-title,Name-and-title,Title,Title-series
-melm 400$9             Koha-Auth-Number
-melm 400        Author,Author-name-personal,Name,Personal-name
-melm 410               Author,Corporate-name
-melm 410$a             Name-and-title
-melm 410$t      Author-title,Title,Title-series
-melm 410$9             Koha-Auth-Number
-melm 410        Author-name-corporate,Name
-melm 411               Author,Conference-name
-melm 411$a             Name-and-title
-#melm 411$t            title,author,Author-title,Title-series
-melm 411$t      Author-title,Title-series
-#melm 411              author,Author-name-corporate,Name
-melm 411        Author-name-corporate,Name
-melm 440$a             Title-series:w,Title-series:p
-melm 440$9             Koha-Auth-Number
-melm 440               Title-series:w,Title-series:p,Title,Title-series
-melm 490$a             Title-series:w,Title-series:p
-melm 490               Title,Title-series
-melm 490$9             Koha-Auth-Number
-
-melm 502               Material-type
-melm 505               Note:w,Note:p
-melm 510               Indexed-by
-melm 520               Abstract:w,Abstract:p
-#melm 533$d            pubdate,pubdate:s
-#melm 541$d            Date-of-acquisition,Date-of-acquisition:s
-
-melm 600$a             Name-and-title,Name,Personal-name,Subject-name-personal,Subject
-melm 600$t             Name-and-title,Title,Subject
-melm 600$9      Koha-Auth-Number
-#melm 600              Name,Personal-name,Subject-heading,Subject-name-personal
-melm 600        Name,Personal-name,Subject-name-personal,Subject
-melm 610$a             Name-and-title
-melm 610$t             Name-and-title,Title
-melm 610$9      Koha-Auth-Number
-melm 610               Name,Subject,Corporate-name
-melm 611               Conference-name
-melm 611$a             Name-and-title
-melm 611$t             Name-and-title,Title
-melm 611$9      Koha-Auth-Number
-melm 611               Name,Subject
-melm 630$n             Thematic-number
-melm 630$r             Music-key
-melm 630$9      Koha-Auth-Number
-melm 630               Subject
-melm 650$9             Koha-Auth-Number        
-melm 650               Subject,Subject:p
-melm 651$9             Koha-Auth-Number        
-melm 651               Name-geographic,Subject,Subject:p
-melm 652$9             Koha-Auth-Number        
-#melm 652              subject-heading,subject-heading:p
-melm 653$9             Koha-Auth-Number        
-melm 653               Subject,Subject:p
-melm 654$9             Koha-Auth-Number        
-melm 654               Subject
-melm 655$9             Koha-Auth-Number        
-melm 655               Subject
-melm 656$9             Koha-Auth-Number        
-melm 656               Subject
-melm 657$9             Koha-Auth-Number        
-melm 657               Subject
-melm 690$9             Koha-Auth-Number        
-melm 690               Subject,Subject:p
-
-melm 700$9             Cross-Reference,Koha-Auth-Number
-melm 700$a      Author,Author:p
-melm 700$n             Thematic-number
-melm 700$r             Music-key
-#melm 700$t            author,Author-title,Name-and-title,Title,Title-uniform
-melm 700$t      Author-title,Name-and-title,Title,Title-uniform
-melm 700        Author,Author-name-corporate,Author-name-personal,Name,Editor,Personal-name
-melm 710               Author,Corporate-name
-#melm 710$t            author,Author-title,Name-and-title,Title,Title-uniform
-melm 710$t      Author-title,Name-and-title,Title,Title-uniform
-#melm 710$a            author,author:p,Name-and-title
-melm 710$a      Name-and-title
-melm 710$9             Koha-Auth-Number        
-#melm 710              author,Name
-melm 710        Author,Name
-melm 711$a             Name-and-title
-#melm 711$t            author,Author-title,Title,Title-uniform
-melm 711$t      Author-title,Title,Title-uniform
-melm 711$9             Koha-Auth-Number        
-#melm 711              author,Author-name-corporate,Name,Conference-name
-melm 711        Author-name-corporate,Name,Conference-name
-melm 730$n             Thematic-number
-melm 730$r             Music-key
-melm 730$9             Koha-Auth-Number
-melm 730               Title,Title-uniform
-melm 740               Title,Title-other-variant
-melm 773$t             Host-item
-melm 780               Title-former,Related-periodical
-melm 785               Related-periodical
-
-melm 800$a             Name-and-title
-#melm 800$t            author,Author-title,Name-and-title,Title,Title-series
-melm 800$t      Author-title,Name-and-title,Title,Title-series
-melm 800$9             Koha-Auth-Number
-melm 800        Author,Author-name-personal,Name,Personal-name
-melm 810$a             Name-and-title
-melm 810$t      Author-title,Name-and-title,Title,Title-series
-melm 810$9             Koha-Auth-Number
-melm 810        Author,Corporate-name,Author-name-corporate,Name
-melm 811$a             Name-and-title
-melm 811$9             Koha-Auth-Number
-#melm 811$t            author,Author-title,Name-and-title,Title,Title-series
-melm 811$t      Author-title,Name-and-title,Title,Title-series
-melm 811               Author,Author-name-corporate,Name,Conference-name
-melm 830$9             Koha-Auth-Number
-melm 830               Title,Title-series
-melm 840               Title,Title-series
-
-###############################
-# Koha Local-Use Biblio Indexes
-melm 999$c             Local-Number:n,Local-Number:w,Local-Number:s
-melm 999$d             biblioitemnumber:n,biblioitemnumber:w,biblioitemnumber:s
-melm 942$0             totalissues:n,totalissues:s
-melm 942$2             cn-bib-source
-melm 942$6             cn-bib-sort:n,cn-bib-sort:s
-melm 942$c             itemtype:w
-melm 942$n             Suppress:w,Suppress:n
-
-# need to check bib1
-melm 942$h             cn-class
-melm 942$i             cn-item
-melm 942$k             cn-prefix
-melm 942$m             cn-suffix
-
-# Items Indexes
-melm 952$0             withdrawn:n,withdrawn:w
-melm 952$1             lost,lost:n
-melm 952$2             classification-source
-melm 952$3             materials-specified     
-melm 952$4             damaged:n,damaged:w
-melm 952$5             restricted:n,restricted:w
-melm 952$6             cn-sort:n,cn-sort:s
-melm 952$7             notforloan:n,notforloan:w
-melm 952$8             ccode
-melm 952$9             itemnumber:n,itemnumber:s
-melm 952$a             homebranch
-melm 952$b             holdingbranch
-melm 952$c             location
-
-#dateaccessioned
-melm 952$d             Date-of-acquisition,Date-of-acquisition:d,Date-of-acquisition:s
-melm 952$e             acqsource
-melm 952$f             coded-location-qualifier
-melm 952$g             price
-#melm 952$h            
-#melm 952$i            
-melm 952$j             stack:n,stack:w
-#melm 952$k            
-melm 952$l             issues:n,issues:w,issues:s
-melm 952$m             renewals:n,renewals:w
-melm 952$n             reserves:n,reserves:w
-melm 952$o             Local-classification:w,Local-classification:p,Local-classification:s
-melm 952$p             barcode,barcode:n
-melm 952$q             onloan:n,onloan:w
-melm 952$r             datelastseen
-melm 952$s             datelastborrowed
-melm 952$t             copynumber
-melm 952$u             uri:u,url:w
-melm 952$v             replacementprice
-melm 952$w             replacementpricedate
-#melm 952$x
-melm 952$y             itype:w
-#melm 952$z
diff --git a/etc/zebradb/biblios/etc/record_unimarc.abs b/etc/zebradb/biblios/etc/record_unimarc.abs
deleted file mode 100644 (file)
index 004101c..0000000
+++ /dev/null
@@ -1,325 +0,0 @@
-# indexing rules. It
-# results in a server which provides a passable Bath level 0 and 1 service
-############################################################################
-# IMPORTANT : this file MUST be renamed record.abs : this name is "hardcoded" in zebra
-# the default record.abs is designed for MARC21.
-############################################################################
-# NOTE: This is designed to be used with the grs.marcxml input filter
-# for ISO2709 (ANSI Z39.2) or grs.xml for MARCXML-formatted records. It
-# won't work for the old grs.marc input filter, which yields a different
-# internal structure.
-
-encoding utf-8
-name marc21
-attset bib1.att
-attset gils.att
-esetname F @
-esetname B @
-
-marc usmarc.mar
-systag sysno rank
-xpath disable
-
-all any
-melm 001        Local-number,Local-number:n
-# Local-number (biblionumber can be either in 090$9 or, on some setup, on 001)
-melm 090$9      Local-number,Local-number:n
-
-melm 010$a    ISBN:w
-# wrong ISBN
-melm 010$z    ISBN:w,Identifier-standard:w
-melm 011$a    ISSN:w,Identifier-standard:w
-# cancelled ISSN
-melm 011$y    ISSN:w,Identifier-standard:w
-# wrong ISSN
-melm 011$z    ISSN:w,Identifier-standard:w
-
-melm 200$b      itype:w
-
-
-melm 100$a      date-entered-on-file:n:range(data,0,8),date-entered-on-file:s:range(data,0,8),tpubdate:s:range(data,8,1),ta:w:range(data,17,1),ta:w:range(data,18,1),ta:w:range(data,19,1),Modified-code:n:range(data,21,1),ln:s:range(data,22,3),char-encoding:n:range(data,26,2),char-encoding:n:range(data,28,2),char-encoding:n:range(data,30,2),script-Title:n:range(data,34,2)
-melm 101     ln
-melm 102$a     Country-heading
-
-#Field 105 Description
-#Illustration codes 4
-#Form of contents codes 4
-#Conference or meeting code 1
-#Festschrift indicator 1
-#Index indicator 1
-#Literature code 1
-#Biography code   1
-melm 105$a     Illustration-code:w:range(data,0,4),Content-type:w:range(data,4,1),Content-type:w:range(data,5,1),Content-type:w:range(data,6,1),Content-type:w:range(data,7,1),Conference-code:w:range(data,8,1),Festschrift-indicator:w:range(data,9,1),Index-indicator:w:range(data,10,1),Literature-Code:w:range(data,11,1),Biography-Code:w:range(data,12,1)
-
-melm 106$a     itype
-
-#Field 110 Description
-#Name of Data Element                  Number of characters                 Character Positions
-#Type of serial designator              1                                   0
-#Frequency of issue                     1                                   1
-#Regularity                             1                                   2
-#Type of material code                  1                                   3
-#Nature of contents code                3                                   4-6
-#Conference publication indicator       1                                   7
-#Title page availability codes          1                                   8
-#Index availability code                1                                   9
-#Cumulative index availability code   1                                   10
-melm 110$a     Type-Of-Serial:w:range(data,0,1),Frequency-code:w:range(data,1,1),Regularity-code:w:range(data,2,1),Content-type:w:range(data,3,1),Content-type:w:range(data,4,3),Conference-publication-Code:w:range(data,7,1),Title-Page-availability-Code:w:range(data,8,1),Index-availability-Code:w:range(data,9,1),Cumulative-Index-availability-Code:w:range(data,10,1)
-
-melm 115$a     Video-mt:w:range(data,0,1)
-
-melm 116$a     Graphics-type:w:range(data,0,1),Graphics-support:w:range(data,1,1),Graphics-support:w:range(data,2,1),
-
-
-melm 680$b             LC-call-number:s
-melm 680               LC-call-number
-#melm 001              Identifier-standard:w
-
-melm 200$b      itype
-
-#melm 100$9            Cross-Reference !:w
-
-############ AUTHORS ##################
-# main Author
-melm 200$f             Author:w,Author:p
-# other Authors
-melm 200$g             Author:w,Author:p
-# physical Author
-melm 700$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 700$a      Author, Author-name-personal, Author:p, Author-name-personal:p, Author:s
-melm 700        Author,Author-name-personal,Author:p,Author-name-personal:p
-melm 701$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 701        Author,Author-name-personal,Author:p,Author-name-personal:p
-melm 702$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 702        Author,Author-name-personal,Author:p,Author-name-personal:p
-
-# collective Author
-melm 710$9        Koha-Auth-Number,Koha-Auth-Number:n
-melm 710    Author,Author-name-corporate,Author-name-conference,Corporate-name,Conference-name,Author:p,Author-name-corporate:p,Author-name-conference:p,Corporate-name:p,Conference-name:p
-melm 711$9        Koha-Auth-Number,Koha-Auth-Number:n
-melm 711    Author,Author-name-corporate,Author-name-conference,Corporate-name,Conference-name,Author:p,Author-name-corporate:p,Author-name-conference:p,Corporate-name:p,Conference-name:p
-
-melm 712$9        Koha-Auth-Number,Koha-Auth-Number:n
-melm 712    Author,Author-name-corporate,Author-name-conference,Corporate-name,Conference-name,Author:p,Author-name-corporate:p,Author-name-conference:p,Corporate-name:p,Conference-name:p
-
-############## TITLE ##################
-# main Title
-melm 200$a             Title:w,Title:p,Title:s
-# Title 2
-melm 200$c             Title:w,Title:p
-# // Title
-melm 200$d             Title:w,Title:p
-# subTitle
-melm 200$e             Title:w,Title:p
-
-melm 205        Title,Title:p
-
-melm 208    Serials,Serials:p
-melm 207    Printed-music,Printed-music:p
-
-
-
-melm 210$a    pl,pl:p
-melm 210$c    Publisher,Publisher:p
-melm 210$d    pubdate:n,pubdate:s
-
-melm 215        Extent
-
-#Series
-melm 225$a      Title-series,Title-series:p
-melm 225$d      Title-series,Title-series:p
-#SubTitle
-melm 225$e      Title-series,Title-series:p 
-#Authors
-melm 225$f      Author,Author:p,Name-and-title,Name-and-title:p
-#Part-Title
-melm 225$h      Title-series,Title-series:p 
-#Part Number
-melm 225$i      Title-series,Title-series:p 
-#Volume
-melm 225$v      Title-series,Title-series:p 
-melm 225$x      ISSN
-
-melm 230$a      Electronic-ressource
-
-########## NOTES #################
-melm 300$a    Note,Note:p
-melm 301$a    Note,Note:p
-melm 302$a    Note,Note:p
-melm 303$a    Note,Note:p
-melm 304$a    Note,Note:p
-melm 305$a    Note,Note:p
-melm 306$a    Note,Note:p
-melm 307$a    Note,Note:p
-melm 308      Note,Note:p
-melm 308$a    Note,Note:p
-melm 310$a    Note,Note:p
-melm 311$a    Note,Note:p
-melm 312$a    Note,Note:p
-melm 313$a    Note,Note:p
-melm 314$a    Note,Note:p
-melm 315$a    Note,Note:p
-melm 316$a    Note,Note:p
-melm 317$a    Note,Note:p
-melm 318$a    Note,Note:p
-melm 320$a    Note,Note:p
-melm 321$a    Note,Note:p
-melm 322$a    Note,Note:p
-melm 323$a    Note,Note:p
-melm 324$a    Note,Note:p
-melm 325$a    Note,Note:p
-melm 326$a    Note,Note:p
-melm 327$a    Note,Note:p
-melm 328      Note,Note:p
-melm 328$a    Note,Note:p
-melm 330$a    Abstract,Note:w,Abstract:p,Note:p
-melm 332$a    Note,Note:p
-melm 333$a    Note,Note:p
-melm 336$a    Note,Note:p
-melm 337$a    Note,Note:p
-melm 345$a    Note,Note:p
-
-
-############## 4XX - LINKING ##################
-# Authorities Title,Title:p
-melm 400$t    Title,Title:p
-melm 401$t    Title,Title:p
-melm 403$t    Title,Title:p,Title-Uniform,Title-Uniform:p
-melm 410$t    Title,Title:p
-melm 412$t    Title,Title:p
-melm 413$t    Title,Title:p
-melm 414$t    Title,Title:p
-melm 415$t    Title,Title:p
-melm 416$t    Title,Title:p
-melm 417$t    Title,Title:p
-melm 418$t    Title,Title:p
-melm 419$t    Title,Title:p
-melm 420$t    Title,Title:p
-melm 430$t    Title,Title:p
-melm 431$t    Title,Title:p
-melm 432$t    Title,Title:p
-melm 440$t    Title,Title:p
-melm 441$t    Title,Title:p
-melm 445$t    Title,Title:p
-melm 400$d    pubdate:n
-melm 401$d    pubdate:n
-melm 403$d    pubdate:n
-melm 410$d    pubdate:n
-melm 412$d    pubdate:n
-melm 413$d    pubdate:n
-melm 414$d    pubdate:n
-melm 415$d    pubdate:n
-melm 416$d    pubdate:n
-melm 417$d    pubdate:n
-melm 418$d    pubdate:n
-melm 419$d    pubdate:n
-melm 420$d    pubdate:n
-melm 430$d    pubdate:n
-melm 431$d    pubdate:n
-melm 432$d    pubdate:n
-melm 440$d    pubdate:n
-melm 441$d    pubdate:n
-melm 445$d    pubdate:n
-
-# Authorities Title
-melm 500$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 501$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 503$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 510$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 512$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 513$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 514$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 515$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 516$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 517$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 518$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 519$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 520$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 530$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 531$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 532$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 540$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 541$9    Koha-Auth-Number,Koha-Auth-Number:n
-melm 545$9    Koha-Auth-Number,Koha-Auth-Number:n
-
-melm 500               Title,Title:p
-melm 501               Title,Title:p
-melm 503               Title,Title:p
-melm 510               Title,Title:p
-melm 512               Title,Title:p
-melm 513               Title,Title:p
-melm 514               Title,Title:p
-melm 515               Title,Title:p
-melm 516               Title,Title:p
-melm 517               Title,Title:p
-melm 518               Title,Title:p
-melm 519               Title,Title:p
-melm 520               Title,Title:p
-melm 530               Title,Title:p
-melm 531               Title,Title:p
-melm 532               Title,Title:p
-melm 540               Title,Title:p
-melm 541               Title,Title:p
-melm 545               Title,Title:p
-
-########### SUBJECTS (6xx) ##################
-melm 600$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 601$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 602$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 603$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 604$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 605$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 606$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 607$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 610$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 630$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 631$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 632$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 633$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 634$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 635$9      Koha-Auth-Number,Koha-Auth-Number:n
-melm 636$9      Koha-Auth-Number,Koha-Auth-Number:n
-
-melm 600$a             Personal-name,Personal-name:p
-melm 600               Subject,Subject:p
-melm 601$a             Corporate-name,Conference-name,Corporate-name:p,Conference-name:p
-melm 601               Subject,Subject:p
-melm 602$a    Personal-name,Personal-name:p
-melm 602    Subject,Subject:p
-melm 604               Subject,Subject:p
-melm 605               Subject,Subject:p
-melm 606               Subject,Subject:p
-melm 607       Subject,Subject:p
-melm 630               Subject,Subject:p
-melm 631               Subject,Subject:p
-melm 632               Subject,Subject:p
-melm 633               Subject,Subject:p
-melm 634               Subject,Subject:p
-melm 635               Subject,Subject:p
-melm 636               Subject,Subject:p
-melm 610               Subject,Subject:p
-melm 640        Subject,Subject:p
-melm 641        Subject,Subject:p
-melm 642        Subject,Subject:p
-melm 643        Subject,Subject:p
-melm 644        Subject,Subject:p
-melm 645        Subject,Subject:p
-melm 646        Subject,Subject:p
-
-######################
-
-melm 676$a             Dewey-classification:w,Dewey-classification:s
-
-#############"# item information (based on 995) ###############
-melm 995$a             homebranch,Host-item
-melm 995$b             homebranch,Host-item
-melm 995$c             holdingbranch,Record-Source
-melm 995$d             holdingbranch,Record-Source
-melm 995$e      location
-melm 995$f             barcode
-melm 995$j             LC-card-number:s
-melm 995$k      Call-Number,Local-Classification,lcn,Call-Number:p,Local-Classification:p,lcn:p
-melm 995$s      popularity:n,popularity:s
-melm 995$n      onloan:d,onloan:n,onloan:s
-melm 995$u      Note, Note:p
-melm  995       item   # just to index every subfield
diff --git a/etc/zebradb/biblios/key/README b/etc/zebradb/biblios/key/README
deleted file mode 100644 (file)
index 8745170..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Zebra key dir
diff --git a/etc/zebradb/biblios/lock/README b/etc/zebradb/biblios/lock/README
deleted file mode 100644 (file)
index 1ffee6b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Zebra lock dir
diff --git a/etc/zebradb/biblios/register/README b/etc/zebradb/biblios/register/README
deleted file mode 100644 (file)
index 39a4857..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Zebra readme dir
diff --git a/etc/zebradb/biblios/tmp/README b/etc/zebradb/biblios/tmp/README
deleted file mode 100644 (file)
index 12e0361..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Zebra tmp dir
diff --git a/etc/zebradb/etc/sort-string-utf.chr b/etc/zebradb/etc/sort-string-utf.chr
deleted file mode 100644 (file)
index f7320ee..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-# Generic character map.
-#
-# $Id: string.chr,v 1.4 1999/09/07 07:19:21 adam Exp $
-
-# Define the basic value-set. *Beware* of changing this without re-indexing
-# your databases.
-lowercase {0-9}{a-y}üzæäøöå
-uppercase {0-9}{A-Y}ÜZÆÄØÖÅ
-
-# Breaking characters
-
-space {\001-\040}!"#$%&'\()*+,-./:;<=>?@\[\\]^_`\{|}~
-
-# Characters to be considered equivalent for searching purposes.
-
-# equivalent æä(ae)
-# equivalent øö(oe)
-# equivalent å(aa)
-# equivalent uü
-
-# Supplemental mappings
-
-#map (&auml;)       ä
-#map (&aelig;)      æ
-#map (&oslash;)     ø
-#map (&aring;)      å
-#map (&ouml;)       ö
-#map (&Auml;)       Ä
-#map (&Aelig;)      Æ
-#map (&Oslash;)     Ø
-#map (&Aring;)      Å
-#map (&Ouml;)       Ö
-
-#map éÉ                e
-#map á         a
-#map ó         o
-#map í         i
-
-#map (Aa)      (AA)
-
-#map (aa)        a
-map (^The\s)    @
-map (^the\s)    @
-map (^a\s)      @
-map (^A\s)      @
-map (^An\s)     @
-map (^an\s)     @
-
diff --git a/etc/zebradb/etc/sort-string-utf_french.chr b/etc/zebradb/etc/sort-string-utf_french.chr
deleted file mode 100644 (file)
index 25712a1..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-# Generic character map.
-#
-
-encoding utf-8
-
-# Define the basic value-set. *Beware* of changing this without re-indexing
-# your databases.
-lowercase {0-9}aæbcdefghijklmnopqrstuvwxyzø
-uppercase {0-9}AÆBCDEFGHIJKLMNOPQRSTUVWXYZØ
-
-# Breaking characters
-
-space {\001-\040}!"#$%&'\()*+,-/:;<=>?@\[\\]^_`\{|}~.
-
-# Characters to be considered equivalent for searching purposes.
-equivalent æä(ae)
-equivalent øö(oe)
-equivalent å(aa)
-#equivalent uü
-equivalent y(i)
-
-# Supplemental mappings
-
-map (&auml;)       a
-map (&aelig;)      æ
-map (&oslash;)     ø
-map (&aring;)      a
-map (&ouml;)       o
-map (&Auml;)       A
-map (&Aelig;)      Æ
-map (&Oslash;)     Ø
-map (&Aring;)      A
-map (&Ouml;)       O
-
-map âàáäÂÀÂÄ           a
-map êèéëÊÈÉË           e
-map îïíÎÏ         i
-map ôöóÔÖ         o
-map ûùüÛÜÙ       u
-map ç       c
-#map y   i
-
-map (^Le\s)    @
-map (^La\s)    @
-map (^Les\s)      @
-map (^Un\s)      @
-map (^Une\s)     @
-map (^De\s)     @
-map (^Des\s)     @
-map (^L\s)     @
-map (^D\s)     @
diff --git a/etc/zebradb/lang_defs/en/sort-string-utf.chr b/etc/zebradb/lang_defs/en/sort-string-utf.chr
new file mode 100644 (file)
index 0000000..f7320ee
--- /dev/null
@@ -0,0 +1,48 @@
+# Generic character map.
+#
+# $Id: string.chr,v 1.4 1999/09/07 07:19:21 adam Exp $
+
+# Define the basic value-set. *Beware* of changing this without re-indexing
+# your databases.
+lowercase {0-9}{a-y}üzæäøöå
+uppercase {0-9}{A-Y}ÜZÆÄØÖÅ
+
+# Breaking characters
+
+space {\001-\040}!"#$%&'\()*+,-./:;<=>?@\[\\]^_`\{|}~
+
+# Characters to be considered equivalent for searching purposes.
+
+# equivalent æä(ae)
+# equivalent øö(oe)
+# equivalent å(aa)
+# equivalent uü
+
+# Supplemental mappings
+
+#map (&auml;)       ä
+#map (&aelig;)      æ
+#map (&oslash;)     ø
+#map (&aring;)      å
+#map (&ouml;)       ö
+#map (&Auml;)       Ä
+#map (&Aelig;)      Æ
+#map (&Oslash;)     Ø
+#map (&Aring;)      Å
+#map (&Ouml;)       Ö
+
+#map éÉ                e
+#map á         a
+#map ó         o
+#map í         i
+
+#map (Aa)      (AA)
+
+#map (aa)        a
+map (^The\s)    @
+map (^the\s)    @
+map (^a\s)      @
+map (^A\s)      @
+map (^An\s)     @
+map (^an\s)     @
+
diff --git a/etc/zebradb/lang_defs/fr/sort-string-utf.chr b/etc/zebradb/lang_defs/fr/sort-string-utf.chr
new file mode 100644 (file)
index 0000000..25712a1
--- /dev/null
@@ -0,0 +1,51 @@
+# Generic character map.
+#
+
+encoding utf-8
+
+# Define the basic value-set. *Beware* of changing this without re-indexing
+# your databases.
+lowercase {0-9}aæbcdefghijklmnopqrstuvwxyzø
+uppercase {0-9}AÆBCDEFGHIJKLMNOPQRSTUVWXYZØ
+
+# Breaking characters
+
+space {\001-\040}!"#$%&'\()*+,-/:;<=>?@\[\\]^_`\{|}~.
+
+# Characters to be considered equivalent for searching purposes.
+equivalent æä(ae)
+equivalent øö(oe)
+equivalent å(aa)
+#equivalent uü
+equivalent y(i)
+
+# Supplemental mappings
+
+map (&auml;)       a
+map (&aelig;)      æ
+map (&oslash;)     ø
+map (&aring;)      a
+map (&ouml;)       o
+map (&Auml;)       A
+map (&Aelig;)      Æ
+map (&Oslash;)     Ø
+map (&Aring;)      A
+map (&Ouml;)       O
+
+map âàáäÂÀÂÄ           a
+map êèéëÊÈÉË           e
+map îïíÎÏ         i
+map ôöóÔÖ         o
+map ûùüÛÜÙ       u
+map ç       c
+#map y   i
+
+map (^Le\s)    @
+map (^La\s)    @
+map (^Les\s)      @
+map (^Un\s)      @
+map (^Une\s)     @
+map (^De\s)     @
+map (^Des\s)     @
+map (^L\s)     @
+map (^D\s)     @
diff --git a/etc/zebradb/marc_defs/marc21/authorities/record.abs b/etc/zebradb/marc_defs/marc21/authorities/record.abs
new file mode 100644 (file)
index 0000000..d6b4569
--- /dev/null
@@ -0,0 +1,185 @@
+# $Id: record_authorities_unimarc.abs,v 1.1.2.1 2006/11/28 10:11:56 tipaul Exp $
+
+# indexing rules. It
+# results in a server which provides a passable Bath level 0 and 1 service
+############################################################################
+# IMPORTANT : this file MUST be renamed record.abs : this name is "hardcoded" in zebra
+# the default record.abs is designed for MARC21.
+############################################################################
+# NOTE: This is designed to be used with the grs.marcxml input filter
+# for ISO2709 (ANSI Z39.2) or grs.xml for MARCXML-formatted records. It
+# won't work for the old grs.marc input filter, which yields a different
+# internal structure.
+
+encoding utf-8
+name authorities
+#attset auth1.att
+attset bib1.att
+esetname F @
+esetname B @
+
+marc usmarc.mar
+systag sysno rank
+xpath disable
+
+all any
+melm 001               Local-Number
+melm 152$b             Authority/format-id
+#melm 005        Version-id
+#melm 015        IASDN
+
+
+########################
+# Coded fields
+########################
+#melm 100$a      date-entered-on-file:n:range(data,0,8),date-entered-on-file:s:range(data,0,8),auth-status:n:range(data,8,1),auth-status:s:range(data,8,1),language:n:range(data,9,3),language:s:range(data,9,3),char-encoding:w:range(data,13,4),char-encoding:s:range(data,13,4),ff100-17:w:range(data,17,3),ff100-21:w:range(data,21,2),ff100-23:w:range(data,23,1)
+
+#melm 101$a     Language
+#melm 102$a     Country-heading
+# Subject-Heading
+#melm 106$a     Vaut 0(inutilisable sujet-matiere),1 (utilisable sujet-matiere)ou 2(utilisable uniquement sujet-matiere)
+#melm 120$a Obligatoire sur Autorite NP : Sexe et discrimination
+#melm 123$a Obligatoire sur Autorite GEO : Localisation
+#melm 150$a Obligatoire sur Autorite CO : Type de collectivite
+# 4XX$3 5XX$3 7XX$3 authority number
+# 4XX$5 5XX$5 7XX$5 Linking type
+# 4XX$7 5XX$7 7XX$7 Script Cataloguing
+# 4XX$8 5XX$8 7XX$8 Language
+
+
+############ HEADINGS ##################
+melm 100$a Heading:w,Heading:p,Heading:s, personal-heading,personal-heading:w,personal-heading:s,personal-heading:p
+melm 110$a Heading:w,Heading:p,Heading:s,corporate-heading
+melm 110$a Heading:w,Heading:p,Heading:s,Conference-heading
+melm 115$a Heading:w,Heading:p,Heading:s,Name-geographic
+#melm 216 Name-corporate
+melm 120$a Heading:w,Heading:p,Heading:s,personal-heading,personal-heading:w,personal-heading:s,personal-heading:p
+melm 130$a Heading:w,Heading:p,Heading:s,Title-Uniform,Title-Uniform:w,Title-Uniform:s,Title-Uniform:p
+melm 135$a Heading:w,Heading:p,Heading:s,Title-Uniform,Title-Uniform:w,Title-Uniform:s,Title-Uniform:p
+melm 150$a Heading:w,Heading:p,Heading:s,Subject-heading, Subject-heading:w,Subject-heading:s,Subject-heading:p
+
+melm 100 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s, personal-Heading-Entity,personal-Heading-Entity:w,personal-Heading-Entity:s,personal-Heading-Entity:p
+melm 110 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s,corporate-Heading-Entity
+melm 110 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s,Conference-Heading-Entity
+melm 115 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s,Name-geographic-Entity
+#melm 216 Name-corporate
+melm 120 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s,personal-Heading-Entity,personal-Heading-Entity:w,personal-Heading-Entity:s,personal-Heading-Entity:p
+melm 130 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s,Title-Uniform-entity,Title-Uniform-entity:w,Title-Uniform:s,Title-Uniform-entity:p
+melm 135 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s,Title-Uniform-entity,Title-Uniform-entity:w,Title-Uniform:s,Title-Uniform-entity:p
+melm 150 Heading-Entity:w,Heading-Entity:p,Heading-Entity:s,Subject-Thesaurus
+
+#210 Heading - Corporate Body Name
+#215 Heading - Territorial or Geographical Name
+#216 Heading - Trademark
+#220 Heading - Family Name
+#230 Heading - Uniform Title
+#235 Heading - Collective Uniform Title
+#240 Heading - Name/Title
+#245 Heading - Name/Collective Uniform Title
+#250 Heading - Topical Subject
+#260 Heading - Place Access
+#280 Heading - Form, Genre or Physical Characteristics
+#melm 712              Author,Author:p,Author:s
+
+############# Rejected forms ##################
+#melm 400$a See, See:w,See:p,See:s,personal-see,personal-see:w,personal-see:s,personal-see:p
+#melm 410$a See, See:w,See:p,See:s,corporate-see
+#melm 410$a See, See:w,See:p,See:s,Conference-see
+#melm 415$a See, See:w,See:p,See:s,Name-geographic-see
+##melm 416 Name-corporate
+#melm 440$a See, See:w,See:p,See:s,personal-see,personal-see:w,personal-see:s,personal-see:p
+#melm 430$a See, See:w,See:p,See:s,Title-Uniform-see,Title-Uniform-see:w,Title-Uniform-see:s,Title-Uniform-see:p
+#melm 435$a See, See:w,See:p,See:s,Title-Uniform-see,Title-Uniform-see:w,Title-Uniform-see:s,Title-Uniform-see:p
+#melm 450$a See, See:w,See:p,See:s,Subject-see,Subject-see:w,Subject-see:s,Subject-see,:p
+#melm 400 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,personal-See-Entity,personal-See-Entity:w,personal-See-Entity:s,personal-See-Entity:p
+#melm 410 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,corporate-See-Entity
+#melm 410 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,Conference-See-Entity
+#melm 415 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,Name-geographic-See-Entity
+##melm 416 Name-corporate
+#melm 440 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,personal-See-Entity,personal-See-Entity:w,personal-See-Entity:s,personal-See-Entity:p
+#melm 430 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,Title-Uniform-See-Entity,Title-Uniform-See-Entity:w,Title-Uniform-See-Entity:s,Title-Uniform-See-Entity:p
+#melm 435 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,Title-Uniform-See-Entity,Title-Uniform-See-Entity:w,Title-Uniform-See-Entity:s,Title-Uniform-See-Entity:p
+#melm 450 See-Entity, See-Entity:w,See-Entity:p,See-Entity:s,Subject-See-Entity,Subject-See-Entity:w,Subject-See-Entity:s,Subject-See-Entity,:p
+#
+##410 Heading - Corporate Body Name
+##415 Heading - Territorial or Geographical Name
+##416 Heading - Trademark
+##440 Heading - Family Name
+##430 Heading - Uniform Title
+##435 Heading - Collective Uniform Title
+##440 Heading - Name/Title
+##445 Heading - Name/Collective Uniform Title
+##450 Heading - Topical Subject
+##460 Heading - Place Access
+##480 Heading - Form, Genre or Physical Characteristics
+##melm 714             Author,Author:p,Author:s
+#
+############# Related forms ##################
+#melm 500$a personal-see-also,personal-see-also:w,personal-see-also:s,personal-see-also:p
+#melm 510$a corporate-see-also
+#melm 510$a Conference-see-also
+#melm 515$a Name-geographic-see-also
+##melm 416 Name-corporate
+#melm 540$a personal-see-also,personal-see-also:w,personal-see-also:s,personal-see-also:p
+#melm 530$a Title-Uniform-see-also,Title-Uniform-see-also:w,Title-Uniform-see-also:s,Title-Uniform-see-also:p
+#melm 535$a Title-Uniform-see-also,Title-Uniform-see-also:w,Title-Uniform-see-also:s,Title-Uniform-see-also:p
+#melm 550$a Subject-see-also,Subject-see-also:w,Subject-see-also:s,Subject-see-also:p
+##510 Heading - Corporate Body Name
+##515 Heading - Territorial or Geographical Name
+##516 Heading - Trademark
+##550 Heading - Family Name
+##530 Heading - Uniform Title
+##535 Heading - Collective Uniform Title
+##540 Heading - Name/Title
+###545 Heading - Name/Collective Uniform Title
+##550 Heading - Topical Subject
+##560 Heading - Place Access
+##580 Heading - Form, Genre or Physical Characteristics
+##melm 714             Author,Author:p,Author:s
+#
+############# Parallel forms ##################
+#melm 700$a personal-parallel,personal-parallel:w,personal-parallel:s,personal-parallel:p
+#melm 710$a corporate-parallel
+#melm 710$a Conference-parallel
+#melm 715$a Name-geographic-parallel
+##melm 716 Name-corporate
+#melm 770$a personal-parallel,personal-parallel:w,personal-parallel:s,personal-parallel:p
+#melm 730$a Title-Uniform-parallel,Title-Uniform-parallel:w,Title-Uniform-parallel:s,Title-Uniform-parallel:p
+#melm 735$a Title-Uniform-parallel,Title-Uniform-parallel:w,Title-Uniform-parallel:s,Title-Uniform-parallel:p
+#melm 750$a Subject-parallel,Subject-parallel:w,Subject-parallel:s,Subject-parallel:p
+#
+########### NOTES #################
+#melm 300$a            Note    !:w,!:p
+#melm 301$a            Note    !:w,!:p
+#melm 302$a            Note    !:w,!:p
+#melm 303$a            Note    !:w,!:p
+#melm 304$a            Note    !:w,!:p
+#melm 305$a            Note    !:w,!:p
+#melm 306$a            Note    !:w,!:p
+#melm 307$a            Note    !:w,!:p
+#melm 308$a            Note    !:w,!:p
+#melm 310$a            Note    !:w,!:p
+#melm 311$a            Note    !:w,!:p
+#melm 312$a            Note    !:w,!:p
+#melm 313$a            Note    !:w,!:p
+#melm 314$a            Note    !:w,!:p
+#melm 315$a            Note    !:w,!:p
+#melm 316$a            Note    !:w,!:p
+#melm 317$a            Note    !:w,!:p
+#melm 318$a            Note    !:w,!:p
+#melm 320$a            Note    !:w,!:p
+#melm 321$a            Note    !:w,!:p
+#melm 322$a            Note    !:w,!:p
+#melm 323$a            Note    !:w,!:p
+#melm 324$a            Note    !:w,!:p
+#melm 325$a            Note    !:w,!:p
+#melm 326$a            Note    !:w,!:p
+#melm 327$a            Note    !:w,!:p
+#melm 328$a            Note    !:w,!:p
+#melm 330$a            Note    !:w,!:p
+#melm 332$a            Note    !:w,!:p
+#melm 333$a            Note    !:w,!:p
+#melm 336$a            Note    !:w,!:p
+#melm 337$a            Note    !:w,!:p
+#melm 345$a            Note    !:w,!:p
+#####
diff --git a/etc/zebradb/marc_defs/marc21/biblios/record.abs b/etc/zebradb/marc_defs/marc21/biblios/record.abs
new file mode 100644 (file)
index 0000000..775fcc1
--- /dev/null
@@ -0,0 +1,288 @@
+# This is a fairly simple example of a set of MARC21 indexing rules. It
+# results in a server which provides a passable Bath level 0 and 1 service
+# (author, title, subject, keyword and exact services). Feel free to
+# elaborate on it, and if you do, please consider sharing your additions.
+# NOTE: This is designed to be used with the grs.marcxml input filter
+# for ISO2709 (ANSI Z39.2) or grs.xml for MARCXML-formatted records. It
+# won't work for the old grs.marc input filter, which yields a different
+# internal structure.
+encoding utf-8
+name marc21
+attset bib1.att
+attset gils.att
+esetname F @
+esetname B @
+
+marc usmarc.mar
+systag sysno rank
+xpath enable
+# Some notes:
+# pl = Published Place
+# ta = Target Audience 002/22
+# ff8-23
+# lf = Literary Form 008/33
+# bio = Biography 008/34
+# fmt = Format
+# ln = Language
+# ctype = Content type: review, catalog, encyclopedia, dictionary
+# pubdate Publication Date
+# rtype =  Record type (leader 06)
+#
+# Date indexing in Koha 3.0 for MARC21:
+# Index                   Expected format         Notes
+# date-entered-on-file    [yymmdd]        (008/0-5, indexed in word and sort indexes)
+# copydate                [yyyy]          (260$c, indexed in word and sort indexes)
+# acqdate                 [yyyy-mm-dd]    (952$d, indexed in date,word,sort indexes)
+# pubdate                 [yyyy]          (008/7-10, indexed in year,word,num,sort indexes)
+
+all any
+# melm 000             rtype:n:range(data,06,1),Bib-level:w:range(data,07,01)
+xelm /record/leader llength:w:range(data,0,5),rtype:w:range(data,6,1),Bib-level:w:range(data,7,1)
+# example: xelm /record/leader l1:w:range(data,0,5),l2:w:range(data,10,2)
+
+melm 001               Control-number
+melm 005               Date/time-last-modified
+melm 007               Microform-generation:n:range(data,11,1),Material-type,ff7-00:w:range(data,0,1),ff7-01:w:range(data,1,1),ff7-02:w:range(data,2,1),ff7-01-02:w:range(data,0,2)
+
+melm 008               date-entered-on-file:n:range(data,0,5),date-entered-on-file:s:range(data,0,5),pubdate:w:range(data,7,4),pubdate:n:range(data,7,4),pubdate:y:range(data,7,4),pubdate:s:range(data,7,4),pl:w:range(data,15,3),ta:w:range(data,22,1),ff8-23:w:range(data,23,1),ff8-29:w:range(data,29,1),lf:w:range(data,33,1),bio:w:range(data,34,1),ln:n:range(data,35,3),ctype:w:range(data,24,4),Record-source:w:range(data,39,0)
+
+melm 010               LC-card-number,Identifier-standard
+melm 011               LC-card-number,Identifier-standard
+melm 015               BNB-card-number,BGF-number,Number-db,Number-natl-biblio,Identifier-standard
+melm 017               Number-legal-deposit,Identifier-standard
+melm 018               Identifier-standard
+melm 020$a      ISBN:w,Identifier-standard:w
+melm 020               ISBN,Identifier-standard
+melm 022$a      ISSN:w,ISBN:w
+melm 022               ISSN,Identifier-standard
+melm 023               Identifier-standard
+melm 024               Identifier-standard
+melm 025               Identifier-standard
+melm 027               Report-number,Identifier-standard
+melm 028               Number-music-publisher,Identifier-standard
+melm 030               CODEN,Identifier-standard
+#melm 033              Date
+melm 034        Map-scale
+#melm 035              Local-number,Identifier-standard
+melm 037               Identifier-standard,Stock-number
+melm 040        Code-institution,Record-source
+melm 041        ln
+melm 043        Code-geographic
+#melm 046              pubdate
+melm 050$b             LC-call-number:w, LC-call-number:p, LC-call-number:s
+melm 050               LC-call-number:w, LC-call-number:p, LC-call-number:s
+melm 052               Geographic-class
+melm 060               NLM-call-number
+melm 070               NAL-call-number
+melm 080               UDC-classification
+melm 082        Dewey-classification:w,Dewey-classification:s
+melm 086        Number-govt-pub
+#melm 942$k            LC-card-number:s
+
+## KOHA SPECIFIC
+#melm 090$c            Local-number:w
+#Identifier-standard:w
+
+melm 100$9             Cross-Reference:w,Koha-Auth-Number
+melm 100$a             Author,Author:p,Author:s,Editor,Author-personal-bibliography,Author-personal-bibliography:p,Author-personal-bibliography:s
+melm 100               Author,Author-title,Author-name-personal,Name,Name-and-title,Personal-name
+melm 110$9      Koha-Auth-Number
+melm 110               Author,Author-title,Author-name-corporate,Name,Name-and-title,Corporate-name
+melm 111$9      Koha-Auth-Number
+melm 111               Author,Author-title,Author-name-corporate,Name,Name-and-title,Conference-name
+melm 130$n             Thematic-number
+melm 130$r             Music-key
+melm 130$9      Koha-Auth-Number
+melm 130               Title,Title-uniform
+
+melm 210               Title,Title-abbreviated
+melm 211               Title,Title-abbreviated
+melm 212               Title,Title-other-variant
+melm 214               Title,Title-expanded
+melm 222               Title,Title-key
+melm 240$r             Music-key
+melm 240$n             Thematic-number
+melm 240               Title:w,Title:p,Title-uniform
+melm 243$n             Thematic-number
+melm 243$r             Music-key
+melm 243               Title:w,Title:p,Title-collective
+melm 245$a             Title-cover:w,Title-cover:p,Title-cover:s,Title:w,Title:p,Title:s
+melm 245$c             Author,Author-in-order:w,Author-in-order:p,Author-in-order:s
+melm 245$9             Cross-Reference:w,Koha-Auth-Number
+melm 245               Title:w,Title:p
+melm 246               Title,Title:p,Title-abbreviated,Title-expanded,Title-former
+melm 247               Title,Title:p,Title-former,Title-other-variant,Related-periodical
+melm 260$a             pl:w,pl:p
+melm 260$b             Publisher:w,Publisher:p
+melm 260$c             copydate,copydate:s
+melm 260               pl
+melm 300               Extent:w,Extent:p
+melm 400$a             Name-and-title
+melm 400$t      Author-title,Name-and-title,Title,Title-series
+melm 400$9             Koha-Auth-Number
+melm 400        Author,Author-name-personal,Name,Personal-name
+melm 410               Author,Corporate-name
+melm 410$a             Name-and-title
+melm 410$t      Author-title,Title,Title-series
+melm 410$9             Koha-Auth-Number
+melm 410        Author-name-corporate,Name
+melm 411               Author,Conference-name
+melm 411$a             Name-and-title
+#melm 411$t            title,author,Author-title,Title-series
+melm 411$t      Author-title,Title-series
+#melm 411              author,Author-name-corporate,Name
+melm 411        Author-name-corporate,Name
+melm 440$a             Title-series:w,Title-series:p
+melm 440$9             Koha-Auth-Number
+melm 440               Title-series:w,Title-series:p,Title,Title-series
+melm 490$a             Title-series:w,Title-series:p
+melm 490               Title,Title-series
+melm 490$9             Koha-Auth-Number
+
+melm 502               Material-type
+melm 505               Note:w,Note:p
+melm 510               Indexed-by
+melm 520               Abstract:w,Abstract:p
+#melm 533$d            pubdate,pubdate:s
+#melm 541$d            Date-of-acquisition,Date-of-acquisition:s
+
+melm 600$a             Name-and-title,Name,Personal-name,Subject-name-personal,Subject
+melm 600$t             Name-and-title,Title,Subject
+melm 600$9      Koha-Auth-Number
+#melm 600              Name,Personal-name,Subject-heading,Subject-name-personal
+melm 600        Name,Personal-name,Subject-name-personal,Subject
+melm 610$a             Name-and-title
+melm 610$t             Name-and-title,Title
+melm 610$9      Koha-Auth-Number
+melm 610               Name,Subject,Corporate-name
+melm 611               Conference-name
+melm 611$a             Name-and-title
+melm 611$t             Name-and-title,Title
+melm 611$9      Koha-Auth-Number
+melm 611               Name,Subject
+melm 630$n             Thematic-number
+melm 630$r             Music-key
+melm 630$9      Koha-Auth-Number
+melm 630               Subject
+melm 650$9             Koha-Auth-Number        
+melm 650               Subject,Subject:p
+melm 651$9             Koha-Auth-Number        
+melm 651               Name-geographic,Subject,Subject:p
+melm 652$9             Koha-Auth-Number        
+#melm 652              subject-heading,subject-heading:p
+melm 653$9             Koha-Auth-Number        
+melm 653               Subject,Subject:p
+melm 654$9             Koha-Auth-Number        
+melm 654               Subject
+melm 655$9             Koha-Auth-Number        
+melm 655               Subject
+melm 656$9             Koha-Auth-Number        
+melm 656               Subject
+melm 657$9             Koha-Auth-Number        
+melm 657               Subject
+melm 690$9             Koha-Auth-Number        
+melm 690               Subject,Subject:p
+
+melm 700$9             Cross-Reference,Koha-Auth-Number
+melm 700$a      Author,Author:p
+melm 700$n             Thematic-number
+melm 700$r             Music-key
+#melm 700$t            author,Author-title,Name-and-title,Title,Title-uniform
+melm 700$t      Author-title,Name-and-title,Title,Title-uniform
+melm 700        Author,Author-name-corporate,Author-name-personal,Name,Editor,Personal-name
+melm 710               Author,Corporate-name
+#melm 710$t            author,Author-title,Name-and-title,Title,Title-uniform
+melm 710$t      Author-title,Name-and-title,Title,Title-uniform
+#melm 710$a            author,author:p,Name-and-title
+melm 710$a      Name-and-title
+melm 710$9             Koha-Auth-Number        
+#melm 710              author,Name
+melm 710        Author,Name
+melm 711$a             Name-and-title
+#melm 711$t            author,Author-title,Title,Title-uniform
+melm 711$t      Author-title,Title,Title-uniform
+melm 711$9             Koha-Auth-Number        
+#melm 711              author,Author-name-corporate,Name,Conference-name
+melm 711        Author-name-corporate,Name,Conference-name
+melm 730$n             Thematic-number
+melm 730$r             Music-key
+melm 730$9             Koha-Auth-Number
+melm 730               Title,Title-uniform
+melm 740               Title,Title-other-variant
+melm 773$t             Host-item
+melm 780               Title-former,Related-periodical
+melm 785               Related-periodical
+
+melm 800$a             Name-and-title
+#melm 800$t            author,Author-title,Name-and-title,Title,Title-series
+melm 800$t      Author-title,Name-and-title,Title,Title-series
+melm 800$9             Koha-Auth-Number
+melm 800        Author,Author-name-personal,Name,Personal-name
+melm 810$a             Name-and-title
+melm 810$t      Author-title,Name-and-title,Title,Title-series
+melm 810$9             Koha-Auth-Number
+melm 810        Author,Corporate-name,Author-name-corporate,Name
+melm 811$a             Name-and-title
+melm 811$9             Koha-Auth-Number
+#melm 811$t            author,Author-title,Name-and-title,Title,Title-series
+melm 811$t      Author-title,Name-and-title,Title,Title-series
+melm 811               Author,Author-name-corporate,Name,Conference-name
+melm 830$9             Koha-Auth-Number
+melm 830               Title,Title-series
+melm 840               Title,Title-series
+
+###############################
+# Koha Local-Use Biblio Indexes
+melm 999$c             Local-Number:n,Local-Number:w,Local-Number:s
+melm 999$d             biblioitemnumber:n,biblioitemnumber:w,biblioitemnumber:s
+melm 942$0             totalissues:n,totalissues:s
+melm 942$2             cn-bib-source
+melm 942$6             cn-bib-sort:n,cn-bib-sort:s
+melm 942$c             itemtype:w
+melm 942$n             Suppress:w,Suppress:n
+
+# need to check bib1
+melm 942$h             cn-class
+melm 942$i             cn-item
+melm 942$k             cn-prefix
+melm 942$m             cn-suffix
+
+# Items Indexes
+melm 952$0             withdrawn:n,withdrawn:w
+melm 952$1             lost,lost:n
+melm 952$2             classification-source
+melm 952$3             materials-specified     
+melm 952$4             damaged:n,damaged:w
+melm 952$5             restricted:n,restricted:w
+melm 952$6             cn-sort:n,cn-sort:s
+melm 952$7             notforloan:n,notforloan:w
+melm 952$8             ccode
+melm 952$9             itemnumber:n,itemnumber:s
+melm 952$a             homebranch
+melm 952$b             holdingbranch
+melm 952$c             location
+
+#dateaccessioned
+melm 952$d             Date-of-acquisition,Date-of-acquisition:d,Date-of-acquisition:s
+melm 952$e             acqsource
+melm 952$f             coded-location-qualifier
+melm 952$g             price
+#melm 952$h            
+#melm 952$i            
+melm 952$j             stack:n,stack:w
+#melm 952$k            
+melm 952$l             issues:n,issues:w,issues:s
+melm 952$m             renewals:n,renewals:w
+melm 952$n             reserves:n,reserves:w
+melm 952$o             Local-classification:w,Local-classification:p,Local-classification:s
+melm 952$p             barcode,barcode:n
+melm 952$q             onloan:n,onloan:w
+melm 952$r             datelastseen
+melm 952$s             datelastborrowed
+melm 952$t             copynumber
+melm 952$u             uri:u
+melm 952$v             replacementprice
+melm 952$w             replacementpricedate
+#melm 952$x
+melm 952$y             itype:w
+#melm 952$z
diff --git a/etc/zebradb/marc_defs/unimarc/authorities/record.abs b/etc/zebradb/marc_defs/unimarc/authorities/record.abs
new file mode 100644 (file)
index 0000000..31a680b
--- /dev/null
@@ -0,0 +1,187 @@
+
+# indexing rules. It
+# results in a server which provides a passable Bath level 0 and 1 service
+############################################################################
+# IMPORTANT : this file MUST be renamed record.abs : this name is "hardcoded" in zebra
+# the default record.abs is designed for MARC21.
+############################################################################
+# NOTE: This is designed to be used with the grs.marcxml input filter
+# for ISO2709 (ANSI Z39.2) or grs.xml for MARCXML-formatted records. It
+# won't work for the old grs.marc input filter, which yields a different
+# internal structure.
+
+encoding utf-8
+name authorities
+attset auth1.att
+esetname F @
+esetname B @
+
+marc usmarc.mar
+systag sysno rank
+xpath disable
+
+all any
+melm 001               Local-Number
+melm 152$b             Authority/format-id
+#melm 005        Version-id
+#melm 015        IASDN
+
+
+########################
+# Coded fields
+########################
+#melm 100$a      date-entered-on-file:n:range(data,0,8),date-entered-on-file:s:range(data,0,8),auth-status:n:range(data,8,1),auth-status:s:range(data,8,1),language:n:range(data,9,3),language:s:range(data,9,3),char-encoding:w:range(data,13,4),char-encoding:s:range(data,13,4),ff100-17:w:range(data,17,3),ff100-21:w:range(data,21,2),ff100-23:w:range(data,23,1)
+
+#melm 101$a     Language
+#melm 102$a     Country-heading
+# Subject-Heading
+#melm 106$a     Vaut 0(inutilisable sujet-matiere),1 (utilisable sujet-matiere)ou 2(utilisable uniquement sujet-matiere)
+#melm 120$a Obligatoire sur Autorite NP : Sexe et discrimination
+#melm 123$a Obligatoire sur Autorite GEO : Localisation
+#melm 150$a Obligatoire sur Autorite CO : Type de collectivite
+# 4XX$3 5XX$3 7XX$3 authority number
+# 4XX$5 5XX$5 7XX$5 Linking type
+# 4XX$7 5XX$7 7XX$7 Script Cataloguing
+# 4XX$8 5XX$8 7XX$8 Language
+
+
+############ HEADINGS ##################
+melm 200$a Heading,Heading-Entity,Heading:s,personal-heading
+melm 210$a Heading,Heading-Entity,Heading:s,corporate-heading,Conference-heading
+melm 215$a Heading,Heading-Entity,Heading:s,Name-geographic
+#melm 216 Name-corporate
+melm 220$a Heading,Heading-Entity,Heading:s,personal-heading
+melm 230$a Heading,Heading-Entity,Heading:s,Title-Uniform
+melm 235$a Heading,Heading-Entity,Heading:s,Title-Uniform
+melm 240$a Heading,Heading-Entity,Heading:s,Name-Title
+melm 250$a Heading,Heading-Entity,Heading:s,Subject-heading, Subject-heading:s
+
+melm 200 Heading-Entity,Heading-Entity:s, personal-Heading-Entity
+melm 210 Heading-Entity,Heading-Entity:s,corporate-Heading-Entity
+melm 210 Heading-Entity,Heading-Entity:s,Conference-Heading-Entity
+melm 215 Heading-Entity,Heading-Entity:s,Name-geographic-Entity
+#melm 216 Name-corporate
+melm 220 Heading-Entity,Heading-Entity:s,personal-Heading-Entity
+melm 230 Heading-Entity,Heading-Entity:s,Title-Uniform-entity
+melm 235 Heading-Entity,Heading-Entity:s,Title-Uniform-entity
+melm 240 Heading-Entity,Heading-Entity:s,Name-Title-entity
+melm 250   Heading-Entity,Subject-Thesaurus
+
+#210 Heading - Corporate Body Name
+#215 Heading - Territorial or Geographical Name
+#216 Heading - Trademark
+#220 Heading - Family Name
+#230 Heading - Uniform Title
+#235 Heading - Collective Uniform Title
+#240 Heading - Name/Title
+#245 Heading - Name/Collective Uniform Title
+#250 Heading - Topical Subject
+#260 Heading - Place Access
+#280 Heading - Form, Genre or Physical Characteristics
+#melm 712              Author,Author:p,Author:s
+
+############ Rejected forms ##################
+melm 400$a See, See:s,See-Entity, personal-see,personal-see:w,personal-see:s,personal-see:p
+melm 410$a See, See:s,See-Entity, corporate-see
+melm 410$a See, See:s,See-Entity, Conference-see
+melm 415$a See, See:s,See-Entity, Name-geographic-see
+#melm 416 Name-corporate
+melm 440$a See, See:s,See-Entity, personal-see,personal-see:s
+melm 430$a See, See:s,See-Entity, Title-Uniform-see,Title-Uniform-see:s
+melm 435$a See, See:s,See-Entity, Title-Uniform-see,Title-Uniform-see:s
+melm 450$a See, See:s,See-Entity, Subject-see,Subject-see:s
+melm 400 See-Entity, personal-See-Entity,personal-See-Entity:s
+melm 410 See-Entity, corporate-See-Entity
+melm 410 See-Entity, Conference-See-Entity
+melm 415 See-Entity, Name-geographic-See-Entity
+#melm 416 Name-corporate
+melm 440 See-Entity, personal-See-Entity
+melm 430 See-Entity, Title-Uniform-See-Entity
+melm 435 See-Entity, Title-Uniform-See-Entity
+melm 435 See-Entity, Name-Title-See-Entity
+melm 450 See-Entity,Subject-See-Entity
+
+#410 Heading - Corporate Body Name
+#415 Heading - Territorial or Geographical Name
+#416 Heading - Trademark
+#440 Heading - Family Name
+#430 Heading - Uniform Title
+#435 Heading - Collective Uniform Title
+#440 Heading - Name/Title
+#445 Heading - Name/Collective Uniform Title
+#450 Heading - Topical Subject
+#460 Heading - Place Access
+#480 Heading - Form, Genre or Physical Characteristics
+#melm 714              Author,Author:p,Author:s
+
+############ Related forms ##################
+melm 500$a personal-see-also,personal-see-also:w,personal-see-also:s,personal-see-also:p
+melm 510$a corporate-see-also
+melm 510$a Conference-see-also
+melm 515$a Name-geographic-see-also
+#melm 416 Name-corporate
+melm 540$a personal-see-also,personal-see-also:w,personal-see-also:s,personal-see-also:p
+melm 530$a Title-Uniform-see-also,Title-Uniform-see-also:w,Title-Uniform-see-also:s,Title-Uniform-see-also:p
+melm 535$a Title-Uniform-see-also,Title-Uniform-see-also:w,Title-Uniform-see-also:s,Title-Uniform-see-also:p
+melm 540$a Name-Title-see-also,Name-Title-see-also:w,Name-Title-see-also:s,Name-Title-see-also:p
+melm 550$a Subject-see-also,Subject-see-also:w,Subject-see-also:s,Subject-see-also:p
+#510 Heading - Corporate Body Name
+#515 Heading - Territorial or Geographical Name
+#516 Heading - Trademark
+#550 Heading - Family Name
+#530 Heading - Uniform Title
+#535 Heading - Collective Uniform Title
+#540 Heading - Name/Title
+#545 Heading - Name/Collective Uniform Title
+#550 Heading - Topical Subject
+#560 Heading - Place Access
+#580 Heading - Form, Genre or Physical Characteristics
+#melm 714              Author,Author:p,Author:s
+
+############ Parallel forms ##################
+melm 700$a personal-parallel,personal-parallel:w,personal-parallel:s,personal-parallel:p
+melm 710$a corporate-parallel
+melm 710$a Conference-parallel
+melm 715$a Name-geographic-parallel
+#melm 716 Name-corporate
+melm 770$a personal-parallel,personal-parallel:w,personal-parallel:s,personal-parallel:p
+melm 730$a Title-Uniform-parallel,Title-Uniform-parallel:w,Title-Uniform-parallel:s,Title-Uniform-parallel:p
+melm 735$a Title-Uniform-parallel,Title-Uniform-parallel:w,Title-Uniform-parallel:s,Title-Uniform-parallel:p
+melm 740$a Name-Title-parallel,Name-Title-parallel:w,Name-Title-parallel:s,Name-Title-parallel:p
+melm 750$a Subject-parallel,Subject-parallel:w,Subject-parallel:s,Subject-parallel:p
+
+########## NOTES #################
+melm 300$a             Note
+melm 301$a             Note
+melm 302$a             Note
+melm 303$a             Note
+melm 304$a             Note
+melm 305$a             Note
+melm 306$a             Note
+melm 307$a             Note
+melm 308$a             Note
+melm 310$a             Note
+melm 311$a             Note
+melm 312$a             Note
+melm 313$a             Note
+melm 314$a             Note
+melm 315$a             Note
+melm 316$a             Note
+melm 317$a             Note
+melm 318$a             Note
+melm 320$a             Note
+melm 321$a             Note
+melm 322$a             Note
+melm 323$a             Note
+melm 324$a             Note
+melm 325$a             Note
+melm 326$a             Note
+melm 327$a             Note
+melm 328$a             Note
+melm 330$a             Note
+melm 332$a             Note
+melm 333$a             Note
+melm 336$a             Note
+melm 337$a             Note
+melm 345$a             Note
+
diff --git a/etc/zebradb/marc_defs/unimarc/biblios/record.abs b/etc/zebradb/marc_defs/unimarc/biblios/record.abs
new file mode 100644 (file)
index 0000000..004101c
--- /dev/null
@@ -0,0 +1,325 @@
+# indexing rules. It
+# results in a server which provides a passable Bath level 0 and 1 service
+############################################################################
+# IMPORTANT : this file MUST be renamed record.abs : this name is "hardcoded" in zebra
+# the default record.abs is designed for MARC21.
+############################################################################
+# NOTE: This is designed to be used with the grs.marcxml input filter
+# for ISO2709 (ANSI Z39.2) or grs.xml for MARCXML-formatted records. It
+# won't work for the old grs.marc input filter, which yields a different
+# internal structure.
+
+encoding utf-8
+name marc21
+attset bib1.att
+attset gils.att
+esetname F @
+esetname B @
+
+marc usmarc.mar
+systag sysno rank
+xpath disable
+
+all any
+melm 001        Local-number,Local-number:n
+# Local-number (biblionumber can be either in 090$9 or, on some setup, on 001)
+melm 090$9      Local-number,Local-number:n
+
+melm 010$a    ISBN:w
+# wrong ISBN
+melm 010$z    ISBN:w,Identifier-standard:w
+melm 011$a    ISSN:w,Identifier-standard:w
+# cancelled ISSN
+melm 011$y    ISSN:w,Identifier-standard:w
+# wrong ISSN
+melm 011$z    ISSN:w,Identifier-standard:w
+
+melm 200$b      itype:w
+
+
+melm 100$a      date-entered-on-file:n:range(data,0,8),date-entered-on-file:s:range(data,0,8),tpubdate:s:range(data,8,1),ta:w:range(data,17,1),ta:w:range(data,18,1),ta:w:range(data,19,1),Modified-code:n:range(data,21,1),ln:s:range(data,22,3),char-encoding:n:range(data,26,2),char-encoding:n:range(data,28,2),char-encoding:n:range(data,30,2),script-Title:n:range(data,34,2)
+melm 101     ln
+melm 102$a     Country-heading
+
+#Field 105 Description
+#Illustration codes 4
+#Form of contents codes 4
+#Conference or meeting code 1
+#Festschrift indicator 1
+#Index indicator 1
+#Literature code 1
+#Biography code   1
+melm 105$a     Illustration-code:w:range(data,0,4),Content-type:w:range(data,4,1),Content-type:w:range(data,5,1),Content-type:w:range(data,6,1),Content-type:w:range(data,7,1),Conference-code:w:range(data,8,1),Festschrift-indicator:w:range(data,9,1),Index-indicator:w:range(data,10,1),Literature-Code:w:range(data,11,1),Biography-Code:w:range(data,12,1)
+
+melm 106$a     itype
+
+#Field 110 Description
+#Name of Data Element                  Number of characters                 Character Positions
+#Type of serial designator              1                                   0
+#Frequency of issue                     1                                   1
+#Regularity                             1                                   2
+#Type of material code                  1                                   3
+#Nature of contents code                3                                   4-6
+#Conference publication indicator       1                                   7
+#Title page availability codes          1                                   8
+#Index availability code                1                                   9
+#Cumulative index availability code   1                                   10
+melm 110$a     Type-Of-Serial:w:range(data,0,1),Frequency-code:w:range(data,1,1),Regularity-code:w:range(data,2,1),Content-type:w:range(data,3,1),Content-type:w:range(data,4,3),Conference-publication-Code:w:range(data,7,1),Title-Page-availability-Code:w:range(data,8,1),Index-availability-Code:w:range(data,9,1),Cumulative-Index-availability-Code:w:range(data,10,1)
+
+melm 115$a     Video-mt:w:range(data,0,1)
+
+melm 116$a     Graphics-type:w:range(data,0,1),Graphics-support:w:range(data,1,1),Graphics-support:w:range(data,2,1),
+
+
+melm 680$b             LC-call-number:s
+melm 680               LC-call-number
+#melm 001              Identifier-standard:w
+
+melm 200$b      itype
+
+#melm 100$9            Cross-Reference !:w
+
+############ AUTHORS ##################
+# main Author
+melm 200$f             Author:w,Author:p
+# other Authors
+melm 200$g             Author:w,Author:p
+# physical Author
+melm 700$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 700$a      Author, Author-name-personal, Author:p, Author-name-personal:p, Author:s
+melm 700        Author,Author-name-personal,Author:p,Author-name-personal:p
+melm 701$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 701        Author,Author-name-personal,Author:p,Author-name-personal:p
+melm 702$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 702        Author,Author-name-personal,Author:p,Author-name-personal:p
+
+# collective Author
+melm 710$9        Koha-Auth-Number,Koha-Auth-Number:n
+melm 710    Author,Author-name-corporate,Author-name-conference,Corporate-name,Conference-name,Author:p,Author-name-corporate:p,Author-name-conference:p,Corporate-name:p,Conference-name:p
+melm 711$9        Koha-Auth-Number,Koha-Auth-Number:n
+melm 711    Author,Author-name-corporate,Author-name-conference,Corporate-name,Conference-name,Author:p,Author-name-corporate:p,Author-name-conference:p,Corporate-name:p,Conference-name:p
+
+melm 712$9        Koha-Auth-Number,Koha-Auth-Number:n
+melm 712    Author,Author-name-corporate,Author-name-conference,Corporate-name,Conference-name,Author:p,Author-name-corporate:p,Author-name-conference:p,Corporate-name:p,Conference-name:p
+
+############## TITLE ##################
+# main Title
+melm 200$a             Title:w,Title:p,Title:s
+# Title 2
+melm 200$c             Title:w,Title:p
+# // Title
+melm 200$d             Title:w,Title:p
+# subTitle
+melm 200$e             Title:w,Title:p
+
+melm 205        Title,Title:p
+
+melm 208    Serials,Serials:p
+melm 207    Printed-music,Printed-music:p
+
+
+
+melm 210$a    pl,pl:p
+melm 210$c    Publisher,Publisher:p
+melm 210$d    pubdate:n,pubdate:s
+
+melm 215        Extent
+
+#Series
+melm 225$a      Title-series,Title-series:p
+melm 225$d      Title-series,Title-series:p
+#SubTitle
+melm 225$e      Title-series,Title-series:p 
+#Authors
+melm 225$f      Author,Author:p,Name-and-title,Name-and-title:p
+#Part-Title
+melm 225$h      Title-series,Title-series:p 
+#Part Number
+melm 225$i      Title-series,Title-series:p 
+#Volume
+melm 225$v      Title-series,Title-series:p 
+melm 225$x      ISSN
+
+melm 230$a      Electronic-ressource
+
+########## NOTES #################
+melm 300$a    Note,Note:p
+melm 301$a    Note,Note:p
+melm 302$a    Note,Note:p
+melm 303$a    Note,Note:p
+melm 304$a    Note,Note:p
+melm 305$a    Note,Note:p
+melm 306$a    Note,Note:p
+melm 307$a    Note,Note:p
+melm 308      Note,Note:p
+melm 308$a    Note,Note:p
+melm 310$a    Note,Note:p
+melm 311$a    Note,Note:p
+melm 312$a    Note,Note:p
+melm 313$a    Note,Note:p
+melm 314$a    Note,Note:p
+melm 315$a    Note,Note:p
+melm 316$a    Note,Note:p
+melm 317$a    Note,Note:p
+melm 318$a    Note,Note:p
+melm 320$a    Note,Note:p
+melm 321$a    Note,Note:p
+melm 322$a    Note,Note:p
+melm 323$a    Note,Note:p
+melm 324$a    Note,Note:p
+melm 325$a    Note,Note:p
+melm 326$a    Note,Note:p
+melm 327$a    Note,Note:p
+melm 328      Note,Note:p
+melm 328$a    Note,Note:p
+melm 330$a    Abstract,Note:w,Abstract:p,Note:p
+melm 332$a    Note,Note:p
+melm 333$a    Note,Note:p
+melm 336$a    Note,Note:p
+melm 337$a    Note,Note:p
+melm 345$a    Note,Note:p
+
+
+############## 4XX - LINKING ##################
+# Authorities Title,Title:p
+melm 400$t    Title,Title:p
+melm 401$t    Title,Title:p
+melm 403$t    Title,Title:p,Title-Uniform,Title-Uniform:p
+melm 410$t    Title,Title:p
+melm 412$t    Title,Title:p
+melm 413$t    Title,Title:p
+melm 414$t    Title,Title:p
+melm 415$t    Title,Title:p
+melm 416$t    Title,Title:p
+melm 417$t    Title,Title:p
+melm 418$t    Title,Title:p
+melm 419$t    Title,Title:p
+melm 420$t    Title,Title:p
+melm 430$t    Title,Title:p
+melm 431$t    Title,Title:p
+melm 432$t    Title,Title:p
+melm 440$t    Title,Title:p
+melm 441$t    Title,Title:p
+melm 445$t    Title,Title:p
+melm 400$d    pubdate:n
+melm 401$d    pubdate:n
+melm 403$d    pubdate:n
+melm 410$d    pubdate:n
+melm 412$d    pubdate:n
+melm 413$d    pubdate:n
+melm 414$d    pubdate:n
+melm 415$d    pubdate:n
+melm 416$d    pubdate:n
+melm 417$d    pubdate:n
+melm 418$d    pubdate:n
+melm 419$d    pubdate:n
+melm 420$d    pubdate:n
+melm 430$d    pubdate:n
+melm 431$d    pubdate:n
+melm 432$d    pubdate:n
+melm 440$d    pubdate:n
+melm 441$d    pubdate:n
+melm 445$d    pubdate:n
+
+# Authorities Title
+melm 500$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 501$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 503$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 510$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 512$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 513$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 514$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 515$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 516$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 517$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 518$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 519$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 520$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 530$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 531$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 532$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 540$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 541$9    Koha-Auth-Number,Koha-Auth-Number:n
+melm 545$9    Koha-Auth-Number,Koha-Auth-Number:n
+
+melm 500               Title,Title:p
+melm 501               Title,Title:p
+melm 503               Title,Title:p
+melm 510               Title,Title:p
+melm 512               Title,Title:p
+melm 513               Title,Title:p
+melm 514               Title,Title:p
+melm 515               Title,Title:p
+melm 516               Title,Title:p
+melm 517               Title,Title:p
+melm 518               Title,Title:p
+melm 519               Title,Title:p
+melm 520               Title,Title:p
+melm 530               Title,Title:p
+melm 531               Title,Title:p
+melm 532               Title,Title:p
+melm 540               Title,Title:p
+melm 541               Title,Title:p
+melm 545               Title,Title:p
+
+########### SUBJECTS (6xx) ##################
+melm 600$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 601$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 602$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 603$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 604$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 605$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 606$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 607$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 610$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 630$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 631$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 632$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 633$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 634$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 635$9      Koha-Auth-Number,Koha-Auth-Number:n
+melm 636$9      Koha-Auth-Number,Koha-Auth-Number:n
+
+melm 600$a             Personal-name,Personal-name:p
+melm 600               Subject,Subject:p
+melm 601$a             Corporate-name,Conference-name,Corporate-name:p,Conference-name:p
+melm 601               Subject,Subject:p
+melm 602$a    Personal-name,Personal-name:p
+melm 602    Subject,Subject:p
+melm 604               Subject,Subject:p
+melm 605               Subject,Subject:p
+melm 606               Subject,Subject:p
+melm 607       Subject,Subject:p
+melm 630               Subject,Subject:p
+melm 631               Subject,Subject:p
+melm 632               Subject,Subject:p
+melm 633               Subject,Subject:p
+melm 634               Subject,Subject:p
+melm 635               Subject,Subject:p
+melm 636               Subject,Subject:p
+melm 610               Subject,Subject:p
+melm 640        Subject,Subject:p
+melm 641        Subject,Subject:p
+melm 642        Subject,Subject:p
+melm 643        Subject,Subject:p
+melm 644        Subject,Subject:p
+melm 645        Subject,Subject:p
+melm 646        Subject,Subject:p
+
+######################
+
+melm 676$a             Dewey-classification:w,Dewey-classification:s
+
+#############"# item information (based on 995) ###############
+melm 995$a             homebranch,Host-item
+melm 995$b             homebranch,Host-item
+melm 995$c             holdingbranch,Record-Source
+melm 995$d             holdingbranch,Record-Source
+melm 995$e      location
+melm 995$f             barcode
+melm 995$j             LC-card-number:s
+melm 995$k      Call-Number,Local-Classification,lcn,Call-Number:p,Local-Classification:p,lcn:p
+melm 995$s      popularity:n,popularity:s
+melm 995$n      onloan:d,onloan:n,onloan:s
+melm 995$u      Note, Note:p
+melm  995       item   # just to index every subfield
index 315c4d9..c9c6321 100644 (file)
@@ -4,7 +4,7 @@
 # $Id: zebra.cfg,v 1.1.2.2 2006/05/09 12:03:16 rangi Exp $
 #
 # Where are the config files located?
-profilePath:__PREFIX__/share/koha/etc/zebradb/authorities/etc:__PREFIX__/share/koha/etc/zebradb/etc
+profilePath:__ZEBRA_CONF_DIR__/authorities/etc:__ZEBRA_CONF_DIR__/etc:__ZEBRA_CONF_DIR__/marc_defs/__ZEBRA_MARC_FORMAT__/authorities:__ZEBRA_CONF_DIR__/lang_defs/__ZEBRA_LANGUAGE__
 
 encoding: UTF-8
 # modulePath - where to look for loadable zebra modules
@@ -26,17 +26,17 @@ storeData:1
 
 
 # Lock File Area
-lockDir: __BASE_DIR__/zebradb/authorities/lock
+lockDir: __ZEBRA_LOCK_DIR__/authorities
 perm.anonymous:r
 perm.__ZEBRA_USER__:rw
-register: __BASE_DIR__/zebradb/authorities/register:4G
-shadow: __BASE_DIR__/zebradb/authorities/shadow:1G 
+register: __ZEBRA_DATA_DIR__/authorities/register:4G
+shadow: __ZEBRA_DATA_DIR__/authorities/shadow:1G 
 
 # Temp File area for result sets
-setTmpDir: __BASE_DIR__/zebradb/authorities/tmp
+setTmpDir: __ZEBRA_DATA_DIR__/authorities/tmp
 
 # Temp File area for index program
-keyTmpDir: __BASE_DIR__/zebradb/authorities/key
+keyTmpDir: __ZEBRA_DATA_DIR__/authorities/key
 
 # Approx. Memory usage during indexing
 memMax: 200M
index 6d368a2..68a7830 100644 (file)
@@ -3,7 +3,7 @@
 # $Id: zebra.cfg,v 1.1.2.2 2006/05/09 12:03:16 rangi Exp $
 #
 # Where are the config files located?
-profilePath:__PREFIX__/share/koha/etc/zebradb/biblios/etc:__PREFIX__/share/koha/etc/zebradb/etc
+profilePath:__ZEBRA_CONF_DIR__/biblios/etc:__ZEBRA_CONF_DIR__/etc:__ZEBRA_CONF_DIR__/marc_defs/__ZEBRA_MARC_FORMAT__/biblios:__ZEBRA_CONF_DIR__/lang_defs/__ZEBRA_LANGUAGE__
 # modulePath - where to look for loadable zebra modules
 modulePath: /usr/lib/idzebra-2.0/modules
 
@@ -23,17 +23,17 @@ storeData:1
 
 
 # Lock File Area
-lockDir: __BASE_DIR__/zebradb/biblios/lock
+lockDir: __ZEBRA_LOCK_DIR__/biblios
 perm.anonymous:r
 perm.__ZEBRA_USER__:rw
-register: __BASE_DIR__/zebradb/biblios/register:4G
-shadow: __BASE_DIR__/zebradb/biblios/shadow:4G
+register: __ZEBRA_DATA_DIR__/biblios/register:4G
+shadow: __ZEBRA_DATA_DIR__/biblios/shadow:4G
 
 # Temp File area for result sets
-setTmpDir: __BASE_DIR__/zebradb/biblios/tmp
+setTmpDir: __ZEBRA_DATA_DIR__/biblios/tmp
 
 # Temp File area for index program
-keyTmpDir: __BASE_DIR__/zebradb/biblios/key
+keyTmpDir: __ZEBRA_DATA_DIR__/biblios/key
 
 # Approx. Memory usage during indexing
 memMax: 500M
diff --git a/fix-perl-path.PL b/fix-perl-path.PL
new file mode 100644 (file)
index 0000000..07bff66
--- /dev/null
@@ -0,0 +1,114 @@
+#!/usr/bin/perl
+# 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 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., 59 Temple Place,
+# Suite 330, Boston, MA  02111-1307 USA
+#
+
+use strict;
+use ExtUtils::MakeMaker::Config;
+use Tie::File;
+
+my $basedir = (shift);
+my $DEBUG = exists $ENV{'DEBUG'} ? $ENV{'DEBUG'} : 0;
+
+$DEBUG = 1 if $basedir eq 'test';
+
+my $bindir = $Config{installbin};
+$bindir =~ s!\\!/!g;   # make all directory separators uniform since Win32 does not care and *nix does...
+my $shebang = "#!$bindir\/perl";
+
+warn "Perl binary located in $bindir on this system.\n" if $DEBUG;
+warn "The shebang line for this sytems should be $shebang\n\n" if $DEBUG;
+
+die if $basedir eq 'test';
+
+=head1 NAME
+
+fix-perl-path.PL - A script to correct the shebang line to match the current platform
+
+=head1 SYNOPSIS
+
+=head2 BASIC USAGE
+
+    perl fix-perl-path.PL /absolute/path/to/foo
+
+=head1 DESCRIPTION
+
+This script should be run from the base of the directory
+structure which contains the file(s) that need the
+shebang line corrected. It will recurse through all
+directories below the one called from and modify all
+.pl files.
+
+=head2 fixshebang
+
+This sub will recurse through a given directory and its subdirectories checking for the existence of a shebang
+line in .pl files and replacing it with the correct line for the current OS if needed. It should be called
+in a manner similar to 'fixshebang (foodir)' but may be supplied with any directory.
+
+=cut
+
+sub fixshebang{
+       my $dir = shift;
+    opendir my $dh, $dir or die $!;
+       warn "Reading $dir contents.\n" if $DEBUG;
+    while( my $file = readdir($dh) ) {
+               # this may be used to exclude any desired files from the scan
+        # if ( $file =~ /foo/ ) { next; }
+               # handle files... other extensions could be substituted/added if needed
+               if ( $file =~ /\.pl$/ ) {
+            my @filearray;
+                       my $pathfile =$dir . '/' . $file;
+                       warn "Found a perl script named $pathfile\n" if $DEBUG;
+
+            # At this point, file is in 'blib' and by default
+            # has mode a-w.  Therefore, must change permission
+            # to make it writable.
+            my $old_perm;
+            if ($^O ne 'MSWin32') {
+                $old_perm = (stat $pathfile)[2] & 07777;
+                my $new_perm = $old_perm | 0200;
+                chmod $new_perm, $pathfile;
+            }
+            tie @filearray, 'Tie::File', $pathfile or die $!;
+            warn "First line of $file is $filearray[0]\n\n" if $DEBUG;
+                       if ( ( $filearray[0] =~ /#!.*perl/ ) && ( $filearray[0] !~ /$shebang|"$shebang -w"/ ) ) {
+                               warn "\n\tRe-writing shebang line for $pathfile\n" if $DEBUG;
+                warn "\tOriginal shebang line: $filearray[0]\n" if $DEBUG;
+                $filearray[0] =~ /-w$/ ? $filearray[0] = "$shebang -w" : $filearray[0] = $shebang;
+                warn "\tNew shebang line is: $filearray[0]\n\n" if $DEBUG;
+                       }
+            elsif ( $filearray[0] =~ /$shebang|"$shebang -w"/ ) {
+                warn "\n\tShebang line is correct.\n\n" if $DEBUG;
+            }
+                       else {
+                warn "\n\tNo shebang line found in $pathfile\n\n" if $DEBUG;
+                       }
+            untie @filearray;
+            if ($^O ne 'MSWin32') {
+                chmod $old_perm, $pathfile;
+            }
+               }
+               # handle directories
+               elsif ( -d ($dir . '/' . $file) && $file !~ /^\.{1,2}/ ) {
+                       my $dirpath = $dir . '/' . $file;
+                       warn "Found a subdir named $dirpath\n" if $DEBUG;
+                       fixshebang ($dirpath);
+               }
+       }
+       closedir $dh;
+}
+
+fixshebang ($basedir);
+
index 3cb698c..9876254 100755 (executable)
@@ -188,7 +188,7 @@ elsif ( $step && $step == 2 ) {
                 my $grantaccess;
                 while ( my ($line) = $rq->fetchrow ) {
                     my $dbname = $info{dbname};
-                    if ( $line =~ m/$dbname/ || index( $line, '*.*' ) > 0 ) {
+                    if ( $line =~ m/^GRANT (.*?) ON `$dbname`\.\*/ || index( $line, '*.*' ) > 0 ) {
                         $grantaccess = 1
                           if (
                             index( $line, 'ALL PRIVILEGES' ) > 0
index 45ca587..0cb8092 100644 (file)
@@ -35,7 +35,7 @@
 <h3>Welcome to the Koha Web Installer</h3>
 <p>Before we begin, please verify you have the correct credentials to continue. Please log in
 with the username and password given to you by your systems administrator and located in your
-<code>koha.xml</code> configuration file.</p>
+<code>koha-conf.xml</code> configuration file.</p>
 <p>Please enter your username and password:</p>
 <p><label>Username:<br />
 <input type="text" name="userid" id="userid" class="input" value="<!-- TMPL_VAR NAME="userid" -->" size="20" tabindex="1" /></label>
index 2348203..aa8f02b 100644 (file)
@@ -36,8 +36,8 @@
     <div class="tip">
       <ul>
       <li>Check that your database is running.</li>
-      <li>Check your database settings in <code>koha.xml</code>. </li>
-      <li>Check the hostname setting in <code>koha.xml</code>. 
+      <li>Check your database settings in <code>koha-conf.xml</code>. </li>
+      <li>Check the hostname setting in <code>koha-conf.xml</code>. 
       Some database servers require <code>127.0.0.1</code> rather than <code>localhost</code>.</li>
     </div>
     <p>Please correct these errors and <a href="/cgi-bin/koha/installer/install.pl">start the installer</a> again.
index a6c2654..3a74cd6 100644 (file)
@@ -7,8 +7,14 @@
 #        used by developers when the database changes. updatedatabase take care of the changes itself
 #        and is automatically called by Auth.pm when needed.
 
+use strict;
+
 sub kohaversion {
-    return "3.00.00.035";
+    our $VERSION = "3.00.00.035";
+    # version needs to be set this way
+    # so that it can be picked up by Makefile.PL
+    # during install
+    return $VERSION;
 }
 
 1;
index 62adb79..183d2d3 100755 (executable)
@@ -40,7 +40,7 @@ my $errormsg;
 my ($bor)=GetMember($member);
 if(( $member ne $loggedinuser ) && ($bor->{'category_type'} eq 'S' ) ) {
        $errormsg = 'NOPERMISSION' unless($staffflags->{'superlibrarian'} || $staffflags->{'staffaccess'} );
-       # need superlibrarian for koha.xml fakeuser.
+       # need superlibrarian for koha-conf.xml fakeuser.
 }
 my $newpassword = $input->param('newpassword');
 my $minpw = C4::Context->preference('minPasswordLength');
index b3f5458..5d76084 100755 (executable)
@@ -1,8 +1,14 @@
 #!/usr/bin/perl
 
+use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 use HTTPD::Bench::ApacheBench;
 use C4::Context;
-use strict;
 
 # 1st, find some maximal values
 my $dbh=C4::Context->dbh();
index 285903e..cd80aba 100755 (executable)
@@ -2,6 +2,12 @@
 # small script that import an iso2709 file into koha 2.0
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 
 # Koha modules used
 use MARC::File::USMARC;
index 385f6f2..66ccc0a 100755 (executable)
 
 =cut
 
-
+use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 use C4::Context;
 use MARC::File::XML;
 use MARC::Record;
index 682e473..04c071a 100755 (executable)
@@ -2,6 +2,12 @@
 # small script that rebuilds the non-MARC DB
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 
 # Koha modules used
 # use MARC::File::USMARC;
index f0cbd06..4c8d8ac 100755 (executable)
@@ -1,6 +1,12 @@
 #!/usr/bin/perl
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 
 use C4::Context;
 use C4::ImportBatch;
index 46a12a1..e3f86b6 100755 (executable)
@@ -3,6 +3,12 @@
 
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 
 # Koha modules used
 use C4::Context;
index 02ddcb0..f4546e9 100755 (executable)
@@ -2,6 +2,12 @@
 # small script that builds the tag cloud
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../kohalib.pl" };
+}
 
 use C4::Koha;
 use C4::Context;
@@ -34,7 +40,7 @@ if ($version || (!$confirm)) {
     -t TTT to define the MARC fields/subfield to use to fill the tag cloud. If not defined, the cloud table won't be filled.
      
      example :
-     export PERL5LIB=/path/to/koha;export KOHA_CONF=/etc/koha.xml;./build_browser_and_cloud.pl -b -f 676a -t 606 -c
+     export PERL5LIB=/path/to/koha;export KOHA_CONF=/etc/koha/koha-conf.xml;./build_browser_and_cloud.pl -b -f 676a -t 606 -c
 EOF
 ;
 exit;
index d83ec4b..de648ca 100755 (executable)
@@ -1,6 +1,13 @@
 #!/usr/bin/perl 
 #run nightly -- changes J to A on someone's 18th birthday
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../kohalib.pl" };
+}
+
 use C4::Context;
 my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)
                                             = localtime(time);
index 000d662..256cd85 100755 (executable)
 #    1.0.0  2004/04/01:  original version
 #-----------------------------------
 
-use lib '/usr/local/koha/intranet/modules/';
-
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../kohalib.pl" };
+}
 use C4::Context;
 
 my $dbh = C4::Context->dbh;
index 54811a0..720ffbc 100755 (executable)
@@ -1,4 +1,10 @@
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../kohalib.pl" };
+}
 use C4::Context;
 use C4::Dates qw/format_date/;
 use Mail::Sendmail;  # comment out if not doing e-mail notices
index 6ffe7b4..b493f98 100755 (executable)
 # Suite 330, Boston, MA  02111-1307 USA
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../kohalib.pl" };
+}
 use C4::Context;
 use C4::Dates qw/format_date/;
 use Mail::Sendmail;  # comment out if not doing e-mail notices
index 0366cfa..9bfdecb 100755 (executable)
 # Suite 330, Boston, MA  02111-1307 USA
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../kohalib.pl" };
+}
 use C4::Context;
 use C4::Dates;
 use Mail::Sendmail;  # comment out if not doing e-mail notices
index 61b9956..aac1cfd 100755 (executable)
 #    1.0.0  2004/02/22:  original version
 #-----------------------------------
 
-use lib '/usr/local/koha/intranet/modules/';
-
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../kohalib.pl" };
+}
 use C4::Context;
 use Date::Manip;
 use Mail::Sendmail;
index 39bf269..0d0d6be 100755 (executable)
@@ -2,6 +2,12 @@
 #run nightly -- resets the services throttle
 
 use strict; use warnings;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../kohalib.pl" };
+}
 
 use C4::Context;
 my $dbh=C4::Context->dbh;
index 52a1319..3e5b294 100755 (executable)
 
 # $Id: sendoverdues.pl,v 1.1.2.1 2007/03/26 22:38:09 tgarip1957 Exp $
 
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../kohalib.pl" };
+}
+
 use C4::Context;
 use C4::Search;
 use C4::Circulation;
index 97afefc..15b8249 100755 (executable)
@@ -1,6 +1,12 @@
 #!/usr/bin/perl
 use strict;
 use warnings;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../kohalib.pl" };
+}
 use C4::Context;
 use C4::Biblio;
 use MARC::Record;
index b79aeaa..52c8fe0 100755 (executable)
@@ -2,7 +2,12 @@
 # script that starts the zebraquee
 #  Written by TG on 01/08/2006
 use strict;
-
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../kohalib.pl" };
+}
 
 use C4::Context;
 use C4::Biblio;
index dd4b44a..b8fba0c 100755 (executable)
@@ -3,6 +3,12 @@
 
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 
 # Koha modules used
 use MARC::File::USMARC;
index b1dad03..109713f 100755 (executable)
@@ -4,6 +4,12 @@
 #
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 require Exporter;
 
 use C4::Auth;
index f1d0a77..02cca26 100755 (executable)
 # Suite 330, Boston, MA  02111-1307 USA
 
 
+use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 use C4::Context;
 use C4::Circulation;
 use C4::Overdues;
 use Date::Manip qw/Date_DaysSince1BC/;
 use C4::Biblio;
-use strict;
 
 open (FILE,'>/tmp/fines') || die;
 # FIXME
index 554a65c..596e664 100755 (executable)
 # Suite 330, Boston, MA  02111-1307 USA
 
 
+use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
+
 use C4::Context;
 use C4::Circulation;
 use C4::Overdues;
 use Date::Manip;
 use C4::Biblio;
-use strict;
 
 open (FILE,'>/tmp/fines') || die;
 # FIXME
diff --git a/misc/kohalib.pl b/misc/kohalib.pl
new file mode 100644 (file)
index 0000000..c6f2710
--- /dev/null
@@ -0,0 +1,51 @@
+#!/usr/bin/perl
+
+# Copyright (C) 2007 LibLime
+#
+# 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 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., 59 Temple Place,
+# Suite 330, Boston, MA  02111-1307 USA
+
+# This script is used by command-line utilities to set
+# @INC properly -- specifically, to point to the directory
+# containing the installed version of the C4 modules.
+#
+# This depends on the installer replacing the \_\_PERL_MODULE_DIR\_\_
+# string with the path to the Koha modules directory.  This is done
+# only during a 'standard' or 'single' mode installation.  If Koha
+# is being run from a git checkout (and thus installed in 'dev' mode),
+# this is a no-op.
+#
+# To use this script, a command-line utility should do the following before
+# 'use'ing any C4 modules.
+#
+#     BEGIN {
+#         use FindBin;
+#         eval { require "$FindBin::Bin/kohalib.pl" };
+#         # adjust path to point to kohalib.pl relative
+#         # to location of script
+#     }
+#
+
+use strict;
+
+my $module_dir;
+BEGIN {
+    $module_dir = '__PERL_MODULE_DIR__';
+    die if $module_dir =~ /^[_]{2}PERL_MODULE_DIR[_]{2}$/;
+}
+
+use lib $module_dir;
+
+1;
index f56f72d..95ccde5 100755 (executable)
@@ -2,6 +2,12 @@
 # script that correct the marcxml  from in biblioitems 
 #  Written by TG on 10/04/2006
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 
 # Koha modules used
 
index 5f6a7ae..a423ddc 100755 (executable)
@@ -2,6 +2,12 @@
 # script that rebuild thesaurus from biblio table.
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 
 # Koha modules used
 use MARC::File::USMARC;
index 204364f..bad4b96 100755 (executable)
@@ -2,8 +2,14 @@
 
 # small script to convert mysql tables to utf-8
 
-use C4::Context;
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../../kohalib.pl" };
+}
+use C4::Context;
 
 my $dbh=C4::Context->dbh();
 
index 2b0925f..8327cf7 100755 (executable)
@@ -1,4 +1,10 @@
 #!/usr/bin/perl
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../../kohalib.pl" };
+}
 use C4::Context;
 #use MARC::File::XML(BinaryEncoding=>"utf8");
 #use MARC::File::USMARC;
index 24dacad..635a414 100755 (executable)
@@ -1,4 +1,10 @@
 #!/usr/bin/perl
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../../kohalib.pl" };
+}
 use C4::Context;
 use MARC::File::XML(BinaryEncoding=>"utf8");
 use MARC::Record;
index 5c8cb21..218ce8b 100755 (executable)
@@ -3,6 +3,12 @@
 #  Written by TG on 01/10/2005
 #  Revised by Joshua Ferraro on 03/31/2006
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../../kohalib.pl" };
+}
 
 # Koha modules used
 
index 6ecaf27..deffc70 100755 (executable)
@@ -2,7 +2,12 @@
 
 # script to shift marc to biblioitems
 # scraped from updatedatabase for dev week by chris@katipo.co.nz
-
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../../kohalib.pl" };
+}
 use C4::Context;
 use C4::AuthoritiesMarc;
 use MARC::Record;
index db1665f..2cca920 100755 (executable)
@@ -2,7 +2,12 @@
 
 # script to shift marc to biblioitems
 # scraped from updatedatabase for dev week by chris@katipo.co.nz
-
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../../kohalib.pl" };
+}
 use C4::Context;
 use C4::Biblio;
 use MARC::Record;
@@ -137,4 +142,4 @@ sub LocalMARCgetbiblio {
         }
     }
     return $record;
-}
\ No newline at end of file
+}
index 7a0b789..0ab0f07 100755 (executable)
@@ -3,6 +3,12 @@
 #  Written by TG on 01/10/2005
 #  Revised by Joshua Ferraro on 03/31/2006
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../../kohalib.pl" };
+}
 
 # Koha modules used
 
index e428d61..60b1b87 100755 (executable)
@@ -3,6 +3,12 @@
 #  Written by TG on 01/10/2005
 #  Revised by Joshua Ferraro on 03/31/2006
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../../kohalib.pl" };
+}
 
 # Koha modules used
 
index 254dca0..e22e7ae 100755 (executable)
@@ -3,6 +3,12 @@
 
 use strict;
 # use warnings;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../kohalib.pl" };
+}
 
 # Koha modules used
 use MARC::File::USMARC;
index e0552e3..dfeb0aa 100755 (executable)
@@ -3,6 +3,12 @@
 #  Written by TG on 01/10/2005
 #  Revised by Joshua Ferraro on 03/31/2006
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 
 # Koha modules used
 
index d8dcdc0..dcb797d 100755 (executable)
 
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 
 use C4::Context;
 use C4::Biblio;
index 714cfdd..16fbb68 100755 (executable)
@@ -2,6 +2,12 @@
 # small script that rebuilds the non-MARC DB
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 
 # Koha modules used
 # use MARC::File::USMARC;
index b828e81..96ffea8 100755 (executable)
@@ -16,8 +16,6 @@
 
 ## CONFIGURABLE VARIABLES ####################
 ##
- # Change this to where your Koha modules are (C4 directory)
-use lib '/usr/local/koha/intranet/modules/';
  # These are the tags that have meaningful data
  # for the databases I've worked with (MARC21 only)
  # you may need to change them depending on your data
@@ -71,6 +69,12 @@ my @tags=(
 );
 ## Leave this next bit alone
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/../kohalib.pl" };
+}
 use C4::Context;
 ##
  # SUGGEST DATABASE INFO
index a741990..bfe26ce 100755 (executable)
@@ -1,6 +1,12 @@
 #!/usr/bin/perl
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 
 use C4::Context;
 use C4::ImportBatch;
index b683533..3aaaada 100755 (executable)
@@ -1,6 +1,12 @@
 #!/usr/bin/perl -w
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 use C4::Context;
 use Getopt::Long;
 
index d302fd3..0ec2e20 100755 (executable)
@@ -2,6 +2,12 @@
 # script that correct the marcxml  from in biblioitems 
 #  Written by TG on 10/04/2006
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 
 # Koha modules used
 
@@ -37,4 +43,4 @@ $dbh->do("UNLOCK TABLES ");
 $timeneeded = gettimeofday - $starttime ;
        print "$i records in $timeneeded s\n" ;
 
-END;
\ No newline at end of file
+END;
index 7a9c8d5..88b6a6d 100755 (executable)
@@ -3,6 +3,12 @@
 # daemon to watch the zebraqueue and update zebra as needed
 
 use strict;
+BEGIN {
+    # find Koha's Perl modules
+    # test carefully before changing this
+    use FindBin;
+    eval { require "$FindBin::Bin/kohalib.pl" };
+}
 use POE qw(Wheel::SocketFactory Wheel::ReadWrite Filter::Stream Driver::SysRW);
 use Unix::Syslog qw(:macros);
 
index 7c2fa2a..9f4297a 100644 (file)
@@ -44,7 +44,7 @@ guesses worked out by the script.
 The following configuration keywords are available:
 
 PREFIX,
-BASE_DIR, CGI_DIR, LOG_DIR,
+BASE_DIR, CGI_DIR, LOG_DIR, INSTALL_BASE,
 DB_TYPE, DB_HOST, DB_PORT, DB_NAME, DB_PASS, DB_USER, WEBMASTER_EMAIL, WEBSERVER_DOMAIN,
 WEBSERVER_HOST, WEBSERVER_IP, WEBSERVER_PORT, WEBSERVER_PORT_LIBRARIAN, ZEBRA_PASS, ZEBRA_USER
 
@@ -65,15 +65,12 @@ $mydomain = $myhost;
 $mydomain =~ s/^.*?\.//;
 # This is set here to rescue systems with broken DNS
 $myip = $ENV{'WEBSERVER_IP'} || inet_ntoa(scalar gethostbyname($myhost||'localhost')) || die "Cannot get our own IP address: DNS fault?";
-$prefix = $ENV{'PREFIX'} || "/usr/local";
+$prefix = $ENV{'INSTALL_BASE'} || "/usr";
 
 # These are our configuration guesses
 # Keys were extracted by
 # <grep -o '__.*__' etc/* | cut -f2 -d: | sort -u | sed -e 's/^/  "/;s/$/" => "",/'
 %configuration = (
-  "__BASE_DIR__" => ($ENV{'INSTALLSITELIB'} || sprintf($prefix."/lib/perl/%vd",$^V))."/koha",
-  # Corrected to match Debian Perl req's.... -fbcit
-  "__CGI_DIR__" => $prefix."/lib/cgi-bin/koha",
   "__LOG_DIR__" => "/var/log",
   "__DB_TYPE__" => "mysql",
   "__DB_NAME__" => "koha",
@@ -81,7 +78,6 @@ $prefix = $ENV{'PREFIX'} || "/usr/local";
   "__DB_PORT__" => "3306",
   "__DB_USER__" => "kohaadmin",
   "__DB_PASS__" => "katikoan",
-  "__PREFIX__" => $prefix,
   "__WEBMASTER_EMAIL__" => 'webmaster@'.$mydomain,
   "__WEBSERVER_DOMAIN__" => $mydomain,
   "__WEBSERVER_HOST__" => $myhost,
@@ -90,7 +86,24 @@ $prefix = $ENV{'PREFIX'} || "/usr/local";
   "__WEBSERVER_PORT_LIBRARIAN__" => "8080",
   "__ZEBRA_PASS__" => "zebrastripes",
   "__ZEBRA_USER__" => "kohauser",
-  "__MARCFLAVOUR__" => "marc21",
+  '__INTRANET_CGI_DIR__' => "$prefix/intranet/cgi-bin",
+  '__INTRANET_TMPL_DIR__' => "$prefix/intranet/templates",
+  '__INTRANET_WWW_DIR__' => "$prefix/intranet/www",
+  '__OPAC_CGI_DIR__' => "$prefix/opac/cgi-bin",
+  '__OPAC_TMPL_DIR__' => "$prefix/opac/templates",
+  '__OPAC_WWW_DIR__' => "$prefix/opac/www",
+  '__PERL_MODULE_DIR__' =>  ($ENV{'INSTALLSITELIB'} || sprintf($prefix."/lib/perl5/site_perl/%vd",$^V))."/koha",
+  '__KOHA_CONF_DIR__' => "$prefix/etc/koha",
+  '__ZEBRA_CONF_DIR__' => "$prefix/etc/koha/zebradb",
+  '__MISC_DIR__' => "$prefix/misc",
+  '__SCRIPT_DIR__' => "$prefix/bin",
+  '__MAN_DIR__' => "$prefix/man",
+  '__DOC_DIR__' => "$prefix/doc",
+  '__ZEBRA_LOCK_DIR__' => "$prefix/var/lock/zebradb",
+  '__ZEBRA_DATA_DIR__' => "$prefix/var/lib/zebradb",
+  '__ZEBRA_RUN_DIR__' => "$prefix/var/run/zebradb",
+  '__ZEBRA_MARC_FORMAT__' => 'marc21',
+  '__ZEBRA_LANGUAGE__' => 'en',
 );
 
 # Override configuration from the environment
@@ -102,7 +115,7 @@ foreach $key (keys %configuration) {
 
 $fname = $ARGV[0];
 $file = read_file($fname);
-$file =~ s/__.*?__/$configuration{$&}/seg;
+$file =~ s/__.*?__/exists $configuration{$&} ? $configuration{$&} : $&/seg;
 chmod 0644, $fname;
 open(OUTPUT,">$fname") || die "Can't open $fname for write: $!";
 print OUTPUT $file;
diff --git a/skel/README b/skel/README
new file mode 100644 (file)
index 0000000..6d9b54b
--- /dev/null
@@ -0,0 +1,6 @@
+The skel directory contains placeholders
+for directories needed by the Zebra 
+installation, and is used only by the installer.
+
+No files except for README placeholders
+used by make should be kept in this tree.
diff --git a/skel/var/lib/koha/zebradb/authorities/key/README b/skel/var/lib/koha/zebradb/authorities/key/README
new file mode 100644 (file)
index 0000000..e03e509
--- /dev/null
@@ -0,0 +1 @@
+Zebra authorities key dir 
diff --git a/skel/var/lib/koha/zebradb/authorities/register/README b/skel/var/lib/koha/zebradb/authorities/register/README
new file mode 100644 (file)
index 0000000..b93dac8
--- /dev/null
@@ -0,0 +1 @@
+Zebra authorities register dir
diff --git a/skel/var/lib/koha/zebradb/authorities/shadow/README b/skel/var/lib/koha/zebradb/authorities/shadow/README
new file mode 100644 (file)
index 0000000..5286b79
--- /dev/null
@@ -0,0 +1 @@
+Zebra authorities shadow dir
diff --git a/skel/var/lib/koha/zebradb/authorities/tmp/README b/skel/var/lib/koha/zebradb/authorities/tmp/README
new file mode 100644 (file)
index 0000000..a0b0e2d
--- /dev/null
@@ -0,0 +1 @@
+Zebra authorities tmp dir
diff --git a/skel/var/lib/koha/zebradb/biblios/key/README b/skel/var/lib/koha/zebradb/biblios/key/README
new file mode 100644 (file)
index 0000000..2829ae0
--- /dev/null
@@ -0,0 +1 @@
+Zebra biblios key dir
diff --git a/skel/var/lib/koha/zebradb/biblios/register/README b/skel/var/lib/koha/zebradb/biblios/register/README
new file mode 100644 (file)
index 0000000..678109a
--- /dev/null
@@ -0,0 +1 @@
+Zebra biblios register dir
diff --git a/skel/var/lib/koha/zebradb/biblios/shadow/README b/skel/var/lib/koha/zebradb/biblios/shadow/README
new file mode 100644 (file)
index 0000000..6898112
--- /dev/null
@@ -0,0 +1 @@
+Zebra biblios shadow dir
diff --git a/skel/var/lib/koha/zebradb/biblios/tmp/README b/skel/var/lib/koha/zebradb/biblios/tmp/README
new file mode 100644 (file)
index 0000000..eb282b1
--- /dev/null
@@ -0,0 +1 @@
+Zebra biblios tmp dir
diff --git a/skel/var/lock/koha/zebradb/authorities/README b/skel/var/lock/koha/zebradb/authorities/README
new file mode 100644 (file)
index 0000000..ef9cad1
--- /dev/null
@@ -0,0 +1 @@
+Zebra authorities lock dir
diff --git a/skel/var/lock/koha/zebradb/biblios/README b/skel/var/lock/koha/zebradb/biblios/README
new file mode 100644 (file)
index 0000000..22ac627
--- /dev/null
@@ -0,0 +1 @@
+Zebra biblios lock dir
diff --git a/skel/var/log/koha/README b/skel/var/log/koha/README
new file mode 100644 (file)
index 0000000..bc4d73e
--- /dev/null
@@ -0,0 +1 @@
+Koha Apache logs
diff --git a/skel/var/run/koha/zebradb/README b/skel/var/run/koha/zebradb/README
new file mode 100644 (file)
index 0000000..1582989
--- /dev/null
@@ -0,0 +1 @@
+Zebra Unix-domain sockets