[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
Clay Fouts
cfouts at ptfs.com
Wed Apr 28 01:34:30 CEST 2010
I agree ParserDetails.ini is also not a good place to define it since it
forces a system-wide preference. But wouldn't adding it to C4/Context.pm be
sufficient since everything else uses that?
Also, can anyone point to a verifiable difference in correct functionality
between the Parser and non-Parser LibXML::SAX modules? They're built off of
the same code, the only difference being that the Parser takes extra time to
build a DOM tree, which Koha doesn't use. The expense of building that tree
is considerable.
On Tue, Apr 27, 2010 at 4:04 PM, Chris Cormack <chrisc at catalyst.net.nz>wrote:
> * 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/koha-patches/attachments/20100427/1f6f7102/attachment-0002.htm>
More information about the Koha-patches
mailing list