[Koha-patches] [PATCH] Adding BEGIN { $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser"; } to all scripts and modules that use MARC::File::XML. This removes the need to edit parserdetails.ini

Chris Cormack chrisc at catalyst.net.nz
Wed Apr 28 01:04:59 CEST 2010


* Clay Fouts (cfouts at ptfs.com) wrote:
>    Hi, Chris.
>    Wouldn't it make more sense to define this in a single place? If a user
>    decides at some point in the future to swap parsers, they'd have to change
>    dozens of files to remain consistent.
>    Also, not everyone uses XML::LibXML::SAX::Parser, so it seems
>    inappropriate to hard code that into the source. For example,
>    XML::LibXML::SAX is much faster and functionally equitable for Koha's
>    purposes.
>    Cheers,
>    Clay

Hi Clay

The MARC editing Koha does, does depend on XML::LibXML::SAX::Parser, the
current situation means people have to edit parserdetails.ini  to make
that the default. This means that now everything on the system uses it.
Bad ... In the packaging work Lars is doing, there is no way that doing
it that way that will make it into debian.

No one should use Koha with other than XML::LibXML::SAX::Parser because
although the others maybe functionally equitable, things break with
them, specifically in MARC::File::XML

So since Koha depends on this parser, it makes more sense to me to
define it in the files that depend on it. Thus allowing the user to use
whatever else Parse they look for the rest of their system.

It also allows the debian packaging to continue.

The other option is of course to add this to MARC::File::XML instead.

Hope this helps explain

Chris

> 
>    On Tue, Apr 27, 2010 at 2:34 PM, Chris Cormack <chrisc at catalyst.net.nz>
>    wrote:
> 
>      ---
>       C4/Biblio.pm                                       |    2 ++
>       C4/Record.pm                                       |    4 ++++
>       cataloguing/addbiblio.pl                           |    3 +++
>       cataloguing/additem.pl                             |    4 ++++
>       cataloguing/moveitem.pl                            |    2 ++
>       installer/data/mysql/update22to30.pl               |    1 +
>       installer/data/mysql/updatedatabase.pl             |    2 ++
>       misc/batchImportMARCWithBiblionumbers.pl           |   17
>      +++++++++++++++++
>       misc/batchupdateISBNs.pl                           |    2 ++
>       misc/maintenance/MARC21_utf8_flag_fix.pl           |    3 +++
>       .../migration_tools/22_to_30/export_Authorities.pl |    2 ++
>       .../22_to_30/export_Authorities_xml.pl             |    2 ++
>       .../22_to_30/move_marc_to_biblioitems.pl           |    2 ++
>       misc/migration_tools/bulkauthimport.pl             |    2 ++
>       misc/migration_tools/bulkmarcimport.pl             |    2 ++
>       misc/sax_parser_print.pl                           |    1 +
>       misc/sax_parser_test.pl                            |    2 ++
>       17 files changed, 53 insertions(+), 0 deletions(-)
> 
>      diff --git a/C4/Biblio.pm b/C4/Biblio.pm
>      index e24bee8..24ba2f1 100644
>      --- a/C4/Biblio.pm
>      +++ b/C4/Biblio.pm
>      @@ -17,6 +17,8 @@ package C4::Biblio;
>       # with Koha; if not, write to the Free Software Foundation, Inc.,
>       # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> 
>      +BEGIN { $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser"; } # Make
>      sure MARC::File::XML uses the correct parser
>      +
>       use strict;
>       use warnings;
> 
>      diff --git a/C4/Record.pm b/C4/Record.pm
>      index 233fa6e..28903ee 100644
>      --- a/C4/Record.pm
>      +++ b/C4/Record.pm
>      @@ -2,6 +2,7 @@ package C4::Record;
>       #
>       # Copyright 2006 (C) LibLime
>       # Joshua Ferraro <jmf at liblime.com>
>      +# Copyright 2010 Catalyst IT Limited
>       #
>       # This file is part of Koha.
>       #
>      @@ -19,6 +20,9 @@ package C4::Record;
>       # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
>       #
>       #
>      +
>      +BEGIN { $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser"; } # Make
>      sure MARC::File::XML uses the correct parser
>      +
>       use strict;
>       #use warnings; FIXME - Bug 2505
> 
>      diff --git a/cataloguing/addbiblio.pl b/cataloguing/addbiblio.pl
>      index 7a1ed65..af73822 100755
>      --- a/cataloguing/addbiblio.pl
>      +++ b/cataloguing/addbiblio.pl
>      @@ -2,6 +2,7 @@
> 
>       # Copyright 2000-2002 Katipo Communications
>      +# Copyright 2010 Catalyst IT Limited
>       #
>       # This file is part of Koha.
>       #
>      @@ -18,6 +19,8 @@
>       # with Koha; if not, write to the Free Software Foundation, Inc.,
>       # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> 
>      +BEGIN { $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser"; } # Make
>      sure MARC::File::XML uses the correct parser
>      +
>       use strict;
>       #use warnings; FIXME - Bug 2505
>       use CGI;
>      diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl
>      index bd3876e..40ccba9 100755
>      --- a/cataloguing/additem.pl
>      +++ b/cataloguing/additem.pl
>      @@ -2,6 +2,7 @@
> 
>       # Copyright 2000-2002 Katipo Communications
>      +# Copyright 2010 Catalyst IT Limited
>       #
>       # This file is part of Koha.
>       #
>      @@ -18,6 +19,9 @@
>       # with Koha; if not, write to the Free Software Foundation, Inc.,
>       # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> 
>      +
>      +BEGIN { $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser"; } # Make
>      sure MARC::File::XML uses the correct parser
>      +
>       use strict;
>       #use warnings; FIXME - Bug 2505
>       use CGI;
>      diff --git a/cataloguing/moveitem.pl b/cataloguing/moveitem.pl
>      index e0ab551..31b0093 100755
>      --- a/cataloguing/moveitem.pl
>      +++ b/cataloguing/moveitem.pl
>      @@ -19,6 +19,8 @@
>       # with Koha; if not, write to the Free Software Foundation, Inc.,
>       # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> 
>      +BEGIN { $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser"; } # Make
>      sure MARC::File::XML uses the correct parser
>      +
>       use strict;
>       #use warnings; FIXME - Bug 2505
>       use CGI;
>      diff --git a/installer/data/mysql/update22to30.pl
>      b/installer/data/mysql/update22to30.pl
>      index cb4379b..f314749 100755
>      --- a/installer/data/mysql/update22to30.pl
>      +++ b/installer/data/mysql/update22to30.pl
>      @@ -11,6 +11,7 @@
>       # - Would also be a good idea to offer to do a backup at this time...
> 
>       # NOTE:  If you do something more than once in here, make it table
>      driven.
>      +BEGIN { $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser"; } # Make
>      sure MARC::File::XML uses the correct parser
>       use strict;
>       #use warnings; FIXME - Bug 2505
> 
>      diff --git a/installer/data/mysql/updatedatabase.pl
>      b/installer/data/mysql/updatedatabase.pl
>      index 201e30c..8a2c15d 100755
>      --- a/installer/data/mysql/updatedatabase.pl
>      +++ b/installer/data/mysql/updatedatabase.pl
>      @@ -14,6 +14,8 @@
> 
>       # NOTE: Please keep the version in kohaversion.pl up-to-date!
> 
>      +BEGIN { $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser"; } # Make
>      sure MARC::File::XML uses the correct parser
>      +
>       use strict;
>       use warnings;
> 
>      diff --git a/misc/batchImportMARCWithBiblionumbers.pl
>      b/misc/batchImportMARCWithBiblionumbers.pl
>      index 4acc02b..8ca8a34 100755
>      --- a/misc/batchImportMARCWithBiblionumbers.pl
>      +++ b/misc/batchImportMARCWithBiblionumbers.pl
>      @@ -1,6 +1,22 @@
>       #!/usr/bin/perl
>       # load records that already have biblionumber set into a koha system
>       # Written by TG on 10/04/2006
>      +
>      +# 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.,
>      +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
>      +
>       use strict;
>       #use warnings; FIXME - Bug 2505
>       BEGIN {
>      @@ -8,6 +24,7 @@ BEGIN {
>          # test carefully before changing this
>          use FindBin;
>          eval { require "$FindBin::Bin/kohalib.pl" };
>      +    $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser";
>       }
> 
>       # Koha modules used
>      diff --git a/misc/batchupdateISBNs.pl b/misc/batchupdateISBNs.pl
>      index 8cc8c6a..6041b80 100755
>      --- a/misc/batchupdateISBNs.pl
>      +++ b/misc/batchupdateISBNs.pl
>      @@ -30,6 +30,8 @@ BEGIN {
>          # test carefully before changing this
>          use FindBin;
>          eval { require "$FindBin::Bin/kohalib.pl" };
>      +    $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser";
>      +
>       }
>       use C4::Context;
>       use MARC::File::XML;
>      diff --git a/misc/maintenance/MARC21_utf8_flag_fix.pl
>      b/misc/maintenance/MARC21_utf8_flag_fix.pl
>      index e7e9156..fbff241 100755
>      --- a/misc/maintenance/MARC21_utf8_flag_fix.pl
>      +++ b/misc/maintenance/MARC21_utf8_flag_fix.pl
>      @@ -1,6 +1,7 @@
>       #!/usr/bin/perl
>       #
>       # Copyright 2009 Liblime
>      +# Copyright 2010 Catalyst IT
>       #
>       # This file is part of Koha.
>       #
>      @@ -17,6 +18,8 @@
>       # with Koha; if not, write to the Free Software Foundation, Inc.,
>       # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> 
>      +BEGIN { $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser"; } # Make
>      sure correct sax parser is used
>      +
>       use strict;
>       use warnings;
> 
>      diff --git a/misc/migration_tools/22_to_30/export_Authorities.pl
>      b/misc/migration_tools/22_to_30/export_Authorities.pl
>      index aeed3f2..cd24a7d 100755
>      --- a/misc/migration_tools/22_to_30/export_Authorities.pl
>      +++ b/misc/migration_tools/22_to_30/export_Authorities.pl
>      @@ -6,6 +6,8 @@ BEGIN {
>          # test carefully before changing this
>          use FindBin;
>          eval { require "$FindBin::Bin/../../kohalib.pl" };
>      +    $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser"; # Make sure
>      correct sax parser is used
>      +
>       }
>       use C4::Context;
>       #use MARC::File::XML(BinaryEncoding=>"utf8");
>      diff --git a/misc/migration_tools/22_to_30/export_Authorities_xml.pl
>      b/misc/migration_tools/22_to_30/export_Authorities_xml.pl
>      index 70647ee..bd871c4 100755
>      --- a/misc/migration_tools/22_to_30/export_Authorities_xml.pl
>      +++ b/misc/migration_tools/22_to_30/export_Authorities_xml.pl
>      @@ -6,6 +6,8 @@ BEGIN {
>          # test carefully before changing this
>          use FindBin;
>          eval { require "$FindBin::Bin/../../kohalib.pl" };
>      +    $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser";  # Make sure
>      correct sax parser is used
>      +
>       }
>       use C4::Context;
>       use MARC::File::XML(BinaryEncoding=>"utf8");
>      diff --git a/misc/migration_tools/22_to_30/move_marc_to_biblioitems.pl
>      b/misc/migration_tools/22_to_30/move_marc_to_biblioitems.pl
>      index 3635dbc..051d93b 100755
>      --- a/misc/migration_tools/22_to_30/move_marc_to_biblioitems.pl
>      +++ b/misc/migration_tools/22_to_30/move_marc_to_biblioitems.pl
>      @@ -8,6 +8,8 @@ BEGIN {
>          # test carefully before changing this
>          use FindBin;
>          eval { require "$FindBin::Bin/../../kohalib.pl" };
>      +    $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser"; # Make sure
>      correct sax parser is used
>      +
>       }
>       use C4::Context;
>       use C4::Biblio;
>      diff --git a/misc/migration_tools/bulkauthimport.pl
>      b/misc/migration_tools/bulkauthimport.pl
>      index 2709db9..5f859a1 100755
>      --- a/misc/migration_tools/bulkauthimport.pl
>      +++ b/misc/migration_tools/bulkauthimport.pl
>      @@ -8,6 +8,8 @@ BEGIN {
>          # test carefully before changing this
>          use FindBin;
>          eval { require "$FindBin::Bin/kohalib.pl" };
>      +    $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser"; # Make sure
>      correct sax parser is used
>      +
>       }
> 
>       # Koha modules used
>      diff --git a/misc/migration_tools/bulkmarcimport.pl
>      b/misc/migration_tools/bulkmarcimport.pl
>      index da0ebf7..5b1d823 100755
>      --- a/misc/migration_tools/bulkmarcimport.pl
>      +++ b/misc/migration_tools/bulkmarcimport.pl
>      @@ -9,6 +9,8 @@ BEGIN {
>          # test carefully before changing this
>          use FindBin;
>          eval { require "$FindBin::Bin/../kohalib.pl" };
>      +    $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser"; # Make sure
>      correct sax parser is used
>      +
>       }
> 
>       # Koha modules used
>      diff --git a/misc/sax_parser_print.pl b/misc/sax_parser_print.pl
>      index d206a5e..ab5d1ff 100755
>      --- a/misc/sax_parser_print.pl
>      +++ b/misc/sax_parser_print.pl
>      @@ -3,6 +3,7 @@
> 
>       use strict;
>       use warnings;
>      +BEGIN { $XML::SAX::ParserPackage = "XML::LibXML::SAX::Parser"; }
>       use XML::SAX::ParserFactory;
> 
>       my $parser = XML::SAX::ParserFactory->parser();
>      diff --git a/misc/sax_parser_test.pl b/misc/sax_parser_test.pl
>      index b2e5974..359bb45 100755
>      --- a/misc/sax_parser_test.pl
>      +++ b/misc/sax_parser_test.pl
>      @@ -1,5 +1,7 @@
>       #!/usr/bin/perl
> 
>      +BEGIN { $XML::SAX::ParserPackage = "XML::LibXML::SAX"; }
>      +
>       use strict;
>       use warnings;
>      --
>      1.6.3.3
> 
>      _______________________________________________
>      Koha-patches mailing list
>      Koha-patches at lists.koha.org
>      http://lists.koha.org/mailman/listinfo/koha-patches

-- 
Chris Cormack
Catalyst IT Ltd.
+64 4 803 2238
PO Box 11-053, Manners St, Wellington 6142, New Zealand



More information about the Koha-patches mailing list