r9803 - in /trunk/libxml-sax-perl: debian/changelog debian/libxml-sax-perl.postinst debian/libxml-sax-perl.preinst update-perl-sax-parsers

ntyni-guest at users.alioth.debian.org ntyni-guest at users.alioth.debian.org
Tue Nov 27 18:56:24 UTC 2007


Author: ntyni-guest
Date: Tue Nov 27 18:56:24 2007
New Revision: 9803

URL: http://svn.debian.org/wsvn/?sc=1&rev=9803
Log:
* Use ucf to manage ParserDetails.ini

Modified:
    trunk/libxml-sax-perl/debian/changelog
    trunk/libxml-sax-perl/debian/libxml-sax-perl.postinst
    trunk/libxml-sax-perl/debian/libxml-sax-perl.preinst
    trunk/libxml-sax-perl/update-perl-sax-parsers

Modified: trunk/libxml-sax-perl/debian/changelog
URL: http://svn.debian.org/wsvn/trunk/libxml-sax-perl/debian/changelog?rev=9803&op=diff
==============================================================================
--- trunk/libxml-sax-perl/debian/changelog (original)
+++ trunk/libxml-sax-perl/debian/changelog Tue Nov 27 18:56:24 2007
@@ -1,8 +1,9 @@
 libxml-sax-perl (0.16-0.2) unstable; urgency=low
 
   * Move the ParserDetails.d under /var
+  * Use ucf to manage ParserDetails.ini
 
- -- Niko Tyni <ntyni at iki.fi>  Tue, 06 Nov 2007 13:32:53 +0200
+ -- Niko Tyni <ntyni at iki.fi>  Wed, 07 Nov 2007 22:02:23 +0200
 
 libxml-sax-perl (0.16-0.1) unstable; urgency=low
 

Modified: trunk/libxml-sax-perl/debian/libxml-sax-perl.postinst
URL: http://svn.debian.org/wsvn/trunk/libxml-sax-perl/debian/libxml-sax-perl.postinst?rev=9803&op=diff
==============================================================================
--- trunk/libxml-sax-perl/debian/libxml-sax-perl.postinst (original)
+++ trunk/libxml-sax-perl/debian/libxml-sax-perl.postinst Tue Nov 27 18:56:24 2007
@@ -11,8 +11,7 @@
 then
     if [ -n "$2" ] && dpkg --compare-versions "$2" lt 0.16-0.2
     then
-        update-perl-sax-parsers --quiet --remove XML::SAX::PurePerl
-
+        rm /etc/perl/XML/SAX/ParserDetails.d/XML::SAX::PurePerl
         for i in /etc/perl/XML/SAX/ParserDetails.d/*
         do
             mv "$i" "/var/lib/libxml-sax-perl/ParserDetails.d/50-$(basename $i)"

Modified: trunk/libxml-sax-perl/debian/libxml-sax-perl.preinst
URL: http://svn.debian.org/wsvn/trunk/libxml-sax-perl/debian/libxml-sax-perl.preinst?rev=9803&op=diff
==============================================================================
--- trunk/libxml-sax-perl/debian/libxml-sax-perl.preinst (original)
+++ trunk/libxml-sax-perl/debian/libxml-sax-perl.preinst Tue Nov 27 18:56:24 2007
@@ -66,6 +66,15 @@
 
 fi
 
+if [ "$1" = "upgrade" ] && dpkg --compare-versions "$2" le 0.16.0.1
+then
+    # find out the md5sum of an unmodified ParserDetails.ini
+
+    [ -d /var/lib/libxml-sax-perl ] || mkdir /var/lib/libxml-sax-perl
+    update-perl-sax-parsers --quiet --update --file - | md5sum - \
+        > /var/lib/libxml-sax-perl/ParserDetails.ini.md5sum
+fi
+
 ## ---------------------------------------------------------------------- 
 ## automatically generated debhelper commands
 #DEBHELPER#

Modified: trunk/libxml-sax-perl/update-perl-sax-parsers
URL: http://svn.debian.org/wsvn/trunk/libxml-sax-perl/update-perl-sax-parsers?rev=9803&op=diff
==============================================================================
--- trunk/libxml-sax-perl/update-perl-sax-parsers (original)
+++ trunk/libxml-sax-perl/update-perl-sax-parsers Tue Nov 27 18:56:24 2007
@@ -15,6 +15,7 @@
 use File::Spec;
 use Getopt::Long;
 use XML::SAX;
+use File::Temp qw(tempfile);
 
 ## ----------------------------------------------------------------------
 $0  =~ m|[^/]+$|;
@@ -32,6 +33,7 @@
 my $test      = '';
 my $update    = '';
 my $version   = '';
+my $ucf;
 my $priority  = 50; # default priority
 
 ## ----------------------------------------------------------------------
@@ -46,6 +48,7 @@
 		  'update'      => \$update,
 		  'version'     => \$version,
 		  'priority=i'  => \$priority,
+		  'ucf=i'       => \$ucf,
 		  )
      )
 {
@@ -77,6 +80,10 @@
 push( @directory, $PARSER_DETAILS_DIR) if ! @directory;
 
 ## ----------------------------------------------------------------------
+# use ucf by default if --file is not specified
+$ucf  = ($file ? 0 : 1) if not defined $ucf;
+
+## ----------------------------------------------------------------------
 my $PARSER_DETAILS_FILE = "/etc/perl/XML/SAX/ParserDetails.ini";
 $file = $PARSER_DETAILS_FILE if ! $file;
 
@@ -101,8 +108,15 @@
     print "$name: Updating overall Perl SAX parser modules info file...\n"
         unless $quiet;
 
-    open( PARSER_DETAILS_FILE, ">$file" )
-	|| die "Cannot write to $file: $!";
+    my ($handle, $tmpfile);
+
+    if ($ucf) {
+        ($handle, $tmpfile) = tempfile();
+        chmod 0644, $tmpfile or die("chmod $tmpfile: $!");
+    } else {
+        open( $handle, ">$file" )
+	        || die "Cannot write to $file: $!";
+    }
     foreach my $directory ( @directory)
     {
 	opendir( PARSER_DETAILS_DIR, $directory )
@@ -113,12 +127,18 @@
 	    next if $parser_details =~ /^\.\.?$/; # skip . and ..
 	    open( PARSER_DETAILS, "$directory/$parser_details" )
 		|| die "Cannot read from $parser_details: $!";
-	    while ( <PARSER_DETAILS> ) { print PARSER_DETAILS_FILE; }
+	    while ( <PARSER_DETAILS> ) { print $handle $_; }
 	    close( PARSER_DETAILS );
 	}
 	closedir( PARSER_DETAILS_DIR );
     }
-    close( PARSER_DETAILS_FILE );
+    close( $handle );
+    if ($ucf) {
+        print "$name: Running ucf on $file...\n"
+            unless $quiet;
+        system("ucf --debconf-ok --sum-file /var/lib/libxml-sax-perl/ParserDetails.ini.md5sum $tmpfile $file");
+        unlink $tmpfile or die("unlink $tmpfile: $!");
+    }
 }
 
 ## ----------------------------------------------------------------------




More information about the Pkg-perl-cvs-commits mailing list