diff -Nur XML-SAX-0.12.orig/Makefile.PL XML-SAX-0.12/Makefile.PL
--- XML-SAX-0.12.orig/Makefile.PL	Mon Jan 21 23:32:59 2002
+++ XML-SAX-0.12/Makefile.PL	Mon Dec  2 01:24:58 2002
@@ -7,22 +7,23 @@
         'File::Temp' => 0,
         'XML::NamespaceSupport' => 0.03,
     },    
+    'EXE_FILES' => [ 'update-perl-sax-parsers' ],
 );
 
-sub MY::install {
-    package MY;
-    my $script = shift->SUPER::install(@_);
-    if (ExtUtils::MakeMaker::prompt("Do you want XML::SAX to alter ParserDetails.ini?", "Y") =~ /^y/i) {
-        $script =~ s/install :: (.*)$/install :: $1 install_sax_pureperl/m;
-        $script .= <<"INSTALL";
-
-install_sax_pureperl :
-\t\@\$(PERL) -MXML::SAX -e "XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()"
-
-INSTALL
-
-    }
-
-    return $script;
-}
+#sub MY::install {
+#    package MY;
+#    my $script = shift->SUPER::install(@_);
+#    if (ExtUtils::MakeMaker::prompt("Do you want XML::SAX to alter ParserDetails.ini?", "Y") =~ /^y/i) {
+#        $script =~ s/install :: (.*)$/install :: $1 install_sax_pureperl/m;
+#        $script .= <<"INSTALL";
+#
+#install_sax_pureperl :
+#\t\@\$(PERL) -MXML::SAX -e "XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()"
+#
+#INSTALL
+#
+#    }
+#
+#    return $script;
+#}
 
diff -Nur XML-SAX-0.12.orig/SAX.pm XML-SAX-0.12/SAX.pm
--- XML-SAX-0.12.orig/SAX.pm	Tue Nov 19 20:25:45 2002
+++ XML-SAX-0.12/SAX.pm	Mon Dec  2 01:56:35 2002
@@ -180,13 +180,46 @@
     my $class = shift;
     
     # get directory from wherever XML::SAX is installed
-    my $dir = $INC{'XML/SAX.pm'};
-    $dir = dirname($dir);
+    #my $dir = $INC{'XML/SAX.pm'};
+    #$dir = dirname($dir);
     
-    my $file = File::Spec->catfile($dir, "SAX", PARSER_DETAILS);
+    #my $file = File::Spec->catfile($dir, "SAX", PARSER_DETAILS);
+    #chmod 0644, $file;
+    #unlink($file);
+    
+    #my $fh = gensym();
+    #open($fh, ">$file") ||
+    #    die "Cannot write to $file: $!";
+
+    #foreach my $p (@$known_parsers) {
+    #    print $fh "[$p->{Name}]\n";
+    #    foreach my $key (keys %{$p->{Features}}) {
+    #        print $fh "$key = $p->{Features}{$key}\n";
+    #    }
+    #    print $fh "\n";
+    #}
+
+    #print $fh "\n";
+
+    #close $fh;
+
+    return $class;
+}
+
+sub save_parsers_debian {
+    my $class = shift;
+    my ($parser_module) = @_;
+
+    # add parser
+    $known_parsers = [];
+    $class->add_parser($parser_module);
+
+    # get parser's ParserDetails file
+    my $dir = '@PREFIX@/etc/perl/XML/SAX/ParserDetails.d';
+    my $file = File::Spec->catfile($dir, $parser_module);
     chmod 0644, $file;
     unlink($file);
-    
+
     my $fh = gensym();
     open($fh, ">$file") ||
         die "Cannot write to $file: $!";
diff -Nur XML-SAX-0.12.orig/t/01known.t XML-SAX-0.12/t/01known.t
--- XML-SAX-0.12.orig/t/01known.t	Mon Jan 28 21:35:46 2002
+++ XML-SAX-0.12/t/01known.t	Mon Dec  2 01:54:06 2002
@@ -1,6 +1,6 @@
 use Test;
-BEGIN { plan tests => 3 }
-use XML::SAX;
-ok(XML::SAX->save_parsers);
-ok(XML::SAX->load_parsers);
-ok(@{XML::SAX->parsers}, 0);
+BEGIN { plan tests => 0 }
+#use XML::SAX;
+#ok(XML::SAX->save_parsers);
+#ok(XML::SAX->load_parsers);
+#ok(@{XML::SAX->parsers}, 0);
diff -Nur XML-SAX-0.12.orig/t/99cleanup.t XML-SAX-0.12/t/99cleanup.t
--- XML-SAX-0.12.orig/t/99cleanup.t	Mon Jan 28 21:28:01 2002
+++ XML-SAX-0.12/t/99cleanup.t	Mon Dec  2 01:54:21 2002
@@ -1,8 +1,8 @@
 use Test;
-BEGIN { plan tests => 1 }
-use File::Spec;
-ok(unlink(
-    File::Spec->catdir(qw(blib lib XML SAX ParserDetails.ini))),
-    1,
-    'delete ParserDetails.ini'
-);
+BEGIN { plan tests => 0 }
+#use File::Spec;
+#ok(unlink(
+#    File::Spec->catdir(qw(blib lib XML SAX ParserDetails.ini))),
+#    1,
+#    'delete ParserDetails.ini'
+#);
diff -Nur XML-SAX-0.12.orig/update-perl-sax-parsers XML-SAX-0.12/update-perl-sax-parsers
--- XML-SAX-0.12.orig/update-perl-sax-parsers	Thu Jan  1 02:00:00 1970
+++ XML-SAX-0.12/update-perl-sax-parsers	Mon Dec  2 01:30:53 2002
@@ -0,0 +1,150 @@
+#!/usr/bin/perl
+## ----------------------------------------------------------------------
+## Debian update-perl-sax-parsers version 0.1
+## ----------------------------------------------------------------------
+## Copyright (C) 2001 Ardo van Rangelrooij <ardo@debian.org>.
+##
+## This is free software; see the GNU General Public Licence version 2
+## or later for copying conditions.  There is NO warranty.
+## ----------------------------------------------------------------------
+
+## ----------------------------------------------------------------------
+use File::Spec ();
+use XML::SAX ();
+
+## ----------------------------------------------------------------------
+$0    =~ m|[^/]+$|;
+$name = $&;
+
+## ----------------------------------------------------------------------
+while ( $ARGV[0] =~ m/^--/ )
+{
+    $_ = shift( @ARGV );
+    last if $_ eq '--';
+    if ( $_ eq '--add' )
+    {
+        $add = 1;
+    }
+    elsif ( $_ eq '--remove' )
+    {
+        $remove = 1;
+    }
+    elsif ( $_ eq '--update' )
+    {
+        $update = 1;
+    }
+    elsif ( $_ eq '--quiet' )
+    {
+        $quiet = 1;
+    }
+    elsif ( $_ eq '--test' )
+    {
+        $debug = 1;
+    }
+    elsif ( $_ eq '--help' )
+    {
+        &usage;
+	exit 0;
+    }
+    elsif ( $_ eq '--version' )
+    {
+        &version;
+	exit 0;
+    }
+    else
+    {
+        print STDERR "$name: unknown option \`$_'\n";
+	&usage;
+	exit 1;
+    }
+}
+
+## ----------------------------------------------------------------------
+if ( ( $add || $remove ) && ! @ARGV )
+{
+    print STDERR "$name: too few arguments\n";
+    exit 1;
+}
+
+## ----------------------------------------------------------------------
+$parser_module = shift( @ARGV ) if $add || $remove;
+
+## ----------------------------------------------------------------------
+if ( @ARGV )
+{
+    print STDERR "$name: too many arguments\n";
+    exit 1;
+}
+
+## ----------------------------------------------------------------------
+print STDERR "$name: test mode - Perl SAX parsers file will not be updated\n"
+    if $debug && ! $quiet;
+
+## ----------------------------------------------------------------------
+my $PARSER_DETAILS_DIR  = "@PREFIX@/etc/perl/XML/SAX/ParserDetails.d";
+my $PARSER_DETAILS_FILE = "@PREFIX@/etc/perl/XML/SAX/ParserDetails.ini";
+
+## ----------------------------------------------------------------------
+if ( $add )
+{
+    print "$name: adding Perl SAX parser module info file of $parser_module...\n"
+        unless $quiet;
+    
+    XML::SAX->save_parsers_debian( $parser_module );
+}
+elsif ( $remove )
+{
+    print "$name: removing Perl SAX parser module info file of $parser_module...\n"
+        unless $quiet;
+    
+    my $parser_file = File::Spec->catfile( $PARSER_DETAILS_DIR, $parser_module);
+    unlink( $parser_file );
+}
+elsif ( $update )
+{
+    print "$name: updating overall Perl SAX parser modules info file...\n"
+        unless $quiet;
+
+    open( PARSER_DETAILS_FILE, ">$PARSER_DETAILS_FILE" )
+	|| die "Cannot write to $PARSER_DETAILS_FILE: $!";
+    opendir( PARSER_DETAILS_DIR, $PARSER_DETAILS_DIR )
+	|| die "Cannot access $PARSER_DETAILS_DIR: $!";
+    while ( defined( $parser_details = readdir( PARSER_DETAILS_DIR ) ) )
+    {
+	next if $parser_details =~ /^\.\.?$/; # skip . and ..
+	open( PARSER_DETAILS, "$PARSER_DETAILS_DIR/$parser_details" )
+	    || die "Cannot read from $parser_details: $!";
+	while ( <PARSER_DETAILS> ) { print PARSER_DETAILS_FILE; }
+	close( PARSER_DETAILS );
+    }
+    closedir( PARSER_DETAILS_DIR );
+    close( PARSER_DETAILS_FILE );
+}
+
+## ----------------------------------------------------------------------
+exit 0;
+
+## ----------------------------------------------------------------------
+sub usage
+{
+    print STDERR <<END;
+Usage:
+    $name <options> --add <parser_module>
+    $name <options> --remove <parser_module>
+    $name <options> --update
+
+Options:
+    --quiet         be quiet
+    --test          do not modify any files, enables debugging mode
+    --version       display version number
+    --help          display this help text (usage)
+END
+}
+
+## ----------------------------------------------------------------------
+sub version
+{
+    print "Debian $name version 0.1\n";
+}
+
+## ----------------------------------------------------------------------
diff -Nur XML-SAX-0.12.orig/update-perl-sax-parsers.8 XML-SAX-0.12/update-perl-sax-parsers.8
--- XML-SAX-0.12.orig/update-perl-sax-parsers.8	Thu Jan  1 02:00:00 1970
+++ XML-SAX-0.12/update-perl-sax-parsers.8	Mon Dec  2 01:46:11 2002
@@ -0,0 +1,79 @@
+.\" -*- nroff -*-
+.\" ----------------------------------------------------------------------
+.\" Copyright 2001 by Ardo van Rangelrooij.
+.\"
+.\" This is free software; see the GNU General Public Licence version 2
+.\" or later for copying conditions.  There is NO warranty.
+.\" ----------------------------------------------------------------------
+.\"
+.\" ----------------------------------------------------------------------
+.TH UPDATE-PERL-SAX-PARSERS 8 "Dec 2001" "0.1" "Debian"
+.\"
+.\" ----------------------------------------------------------------------
+.SH NAME
+update-perl-sax-parsers \- update Perl SAX parser module info files
+.\"
+.\" ----------------------------------------------------------------------
+.SH SYNOPSIS
+.B update-perl-sax-parsers
+.RI [ options ]
+.B --add
+.I parser_module
+.PP
+.B update-perl-sax-parsers
+.RI [ options ]
+.B --remove
+.I parser_module
+.PP
+.B update-perl-sax-parsers
+.RI [ options ]
+.B --update
+.\"
+.\" ----------------------------------------------------------------------
+.SH DESCRIPTION
+.B update-perl-sax-parsers
+inserts, updates and removes individual Perl SAX parser module info
+files in the directory
+.I /etc/perl/XML/SAX/ParserDetails.d
+and the overall Perl SAX parser modules info file
+.IR /etc/perl/XML/SAX/ParserDetails.ini .
+.\"
+.\" ----------------------------------------------------------------------
+.SH OPTIONS
+.TP
+.B --add
+Adds a Perl SAX parser module info file to the directory
+.IR /etc/perl/XML/SAX/ParserDetails.d .
+.TP
+.B --remove
+Removes a Perl SAX parser module info file
+from the directory
+.IR /etc/perl/XML/SAX/ParserDetails.d .
+.TP
+.B --update
+updates the overall Perl SAX parser modules info file
+.IR /etc/perl/XML/SAX/ParserDetails.ini .
+.TP
+.B --quiet
+Prevents the usual diagnostic output.
+.TP
+.B --test
+Prevents the update of the individual Perl SAX parser module info file and
+the overall Perl SAX parser modules info file.
+.TP
+.B --version
+Displays the version information and exits.
+.TP
+.B --help
+Display the usage information and exits.
+.\"
+.\" ----------------------------------------------------------------------
+.SH COPYRIGHT
+Copyright 2001, Ardo van Rangelrooij.
+.PP
+This is free software; see the GNU General Public Licence version 2 or
+later for copying conditions.  There is
+.I no
+warranty.
+.\"
+.\" ----------------------------------------------------------------------
