Your message dated Sat, 11 Jul 2009 18:02:08 +0000
with message-id <e1mpgtk-0001p9...@ries.debian.org>
and subject line Bug#471211: fixed in librpc-xml-perl 0.67-1
has caused the Debian Bug report #471211,
regarding [PATCH] support nil type extension
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
471211: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=471211
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: librpc-xml-perl
Version: 0.59-2
Severity: normal
Tags: patch

RPC-XML has the limitation that there is no support for the nil type,
which corresponds to perl's undef, python's None, and C's NULL. There is
an extension that defines this simple type, at
<http://ontosys.com/xml-rpc/extensions.php>

Many other RPC-XML libraries support this at least optionally. For
example, in python, there is an allow_none flag. The RPC-Xmlrpc_c perl
module (not packaged) supports nil. 

I needed it in RPC::XML, so I developed the attached patch. I took care
to not have it emit or parse "<nil/>" unless $RPC::XML::ALLOW_NIL is set
to 1.

Please consider applying this patch, and encoruaging upstream to do so
as well.

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.24-1-686 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages librpc-xml-perl depends on:
ii  libwww-perl                   5.808-1    WWW client/server library for Perl
ii  libxml-parser-perl            2.36-1     Perl module for parsing XML files
ii  perl                          5.8.8-12   Larry Wall's Practical Extraction 

librpc-xml-perl recommends no packages.

-- no debconf information

-- 
see shy jo
diff -ur old/librpc-xml-perl-0.59/lib/RPC/XML/Parser.pm librpc-xml-perl-0.59/lib/RPC/XML/Parser.pm
--- old/librpc-xml-perl-0.59/lib/RPC/XML/Parser.pm	2006-06-04 03:44:41.000000000 -0400
+++ librpc-xml-perl-0.59/lib/RPC/XML/Parser.pm	2008-03-16 13:34:06.000000000 -0400
@@ -205,7 +205,7 @@
     {
         push(@{$robj->{stack}}, TAG2TOKEN->{$elem});
     }
-    elsif (VALIDTYPES->{$elem})
+    elsif (VALIDTYPES->{$elem} || ($elem eq 'nil' && $RPC::XML::ALLOW_NIL))
     {
         # All datatypes are represented on the stack by this generic token
         push(@{$robj->{stack}}, DATATYPE);
@@ -283,7 +283,7 @@
     $op = pop(@{$robj->{stack}});
 
     # Decide what to do from here
-    if (VALIDTYPES->{$elem})
+    if (VALIDTYPES->{$elem} || ($elem eq 'nil' && $RPC::XML::ALLOW_NIL))
     {
         # This is the closing tag of one of the data-types.
         $class = $elem;
diff -ur old/librpc-xml-perl-0.59/lib/RPC/XML.pm librpc-xml-perl-0.59/lib/RPC/XML.pm
--- old/librpc-xml-perl-0.59/lib/RPC/XML.pm	2006-06-30 03:36:29.000000000 -0400
+++ librpc-xml-perl-0.59/lib/RPC/XML.pm	2008-03-16 13:39:27.000000000 -0400
@@ -28,7 +28,8 @@
 use 5.005;
 use strict;
 use vars qw(@EXPORT @EXPORT_OK %EXPORT_TAGS @ISA $VERSION $ERROR
-            %xmlmap $xmlre $ENCODING $FORCE_STRING_ENCODING);
+            %xmlmap $xmlre $ENCODING $FORCE_STRING_ENCODING
+	    $ALLOW_NIL);
 use subs qw(time2iso8601 smart_encode bytelength);
 
 # The following is cribbed from SOAP::Lite, tidied up to suit my tastes
@@ -57,6 +58,9 @@
 
     # force strings?
     $FORCE_STRING_ENCODING = 0;
+
+    # allow use of the nonstandard nil type?
+    $ALLOW_NIL = 0;
 }
 
 require Exporter;
@@ -121,7 +125,14 @@
         {
             if (!defined $_)
             {
-                $type = RPC::XML::string->new('');
+		if (! $ALLOW_NIL)
+		{
+                    $type = RPC::XML::string->new('');
+		}
+                else
+		{
+                    $type = RPC::XML::nil->new();
+		}
             }
             elsif (ref $_)
             {
@@ -403,6 +414,39 @@
 
 ###############################################################################
 #
+#   Package:        RPC::XML::nil
+#
+#   Description:    The "nil" type-class extension
+#
+###############################################################################
+package RPC::XML::nil;
+
+use strict;
+use vars qw(@ISA);
+
+...@isa = qw(RPC::XML::simple_type);
+
+# no value need be passed to this method
+sub new
+{
+    my $class = shift;
+    my $value = undef;
+
+    if (! $RPC::XML::ALLOW_NIL) {
+        die "\$RPC::XML::ALLOW_NIL must be set for RPC::XML::nil objects to be supported";
+    }
+
+    bless \$value, $class;
+}
+
+# serialsation is trivial..
+sub as_string
+{
+    "<nil/>";
+}
+
+###############################################################################
+#
 #   Package:        RPC::XML::array
 #
 #   Description:    This class encapsulates the array data type. Each element
@@ -1464,6 +1508,15 @@
 Creates an instance of the XML-RPC C<dateTime.iso8601> type. The specification
 for ISO 8601 may be found elsewhere. No processing is done to the data.
 
+=item RPC::XML::nil
+
+Creates a nil value. The value returned will always be undef. No value
+needs to be passed when calling the constructor. 
+
+Note that nil is an extension to B<XML-RPC>, which is not supported by all
+implementations. $ALLOW_NIL must be set before objects of this type can be
+constructed.
+
 =item RPC::XML::base64
 
 Creates an object that encapsulates a chunk of data that will be treated as
@@ -1658,6 +1711,11 @@
 
 Defaults to C<false>.
 
+=item $ALLOW_NIL
+
+By default, the XML-RPC nil extension is not supported. Set to allow
+use of nil values, which will be represented as perl undef values.
+
 =back
 
 =head1 CAVEATS

Attachment: signature.asc
Description: Digital signature


--- End Message ---
--- Begin Message ---
Source: librpc-xml-perl
Source-Version: 0.67-1

We believe that the bug you reported is fixed in the latest version of
librpc-xml-perl, which is due to be installed in the Debian FTP archive:

librpc-xml-perl_0.67-1.diff.gz
  to pool/main/libr/librpc-xml-perl/librpc-xml-perl_0.67-1.diff.gz
librpc-xml-perl_0.67-1.dsc
  to pool/main/libr/librpc-xml-perl/librpc-xml-perl_0.67-1.dsc
librpc-xml-perl_0.67-1_all.deb
  to pool/main/libr/librpc-xml-perl/librpc-xml-perl_0.67-1_all.deb
librpc-xml-perl_0.67.orig.tar.gz
  to pool/main/libr/librpc-xml-perl/librpc-xml-perl_0.67.orig.tar.gz



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 471...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Salvatore Bonaccorso <salvatore.bonacco...@gmail.com> (supplier of updated 
librpc-xml-perl package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Fri, 10 Jul 2009 20:32:31 +0200
Source: librpc-xml-perl
Binary: librpc-xml-perl
Architecture: source all
Version: 0.67-1
Distribution: unstable
Urgency: low
Maintainer: Debian Perl Group <pkg-perl-maintain...@lists.alioth.debian.org>
Changed-By: Salvatore Bonaccorso <salvatore.bonacco...@gmail.com>
Description: 
 librpc-xml-perl - Perl module implementation of XML-RPC
Closes: 471211
Changes: 
 librpc-xml-perl (0.67-1) unstable; urgency=low
 .
   [ gregor herrmann ]
   * debian/control: Changed: Switched Vcs-Browser field to ViewSVN
     (source stanza).
   * debian/control: Added: ${misc:Depends} to Depends: field.
 .
   [ Rene Mayorga ]
   * debian/control: update my email address.
 .
   [ Nathan Handler ]
   * debian/watch: Update to ignore development releases.
 .
   [ Salvatore Bonaccorso ]
   * New upstream release.
     - Adds support for <nil/> (Closes: #471211).
   * debian/control:
     - Add myself to Uploaders
     - Bump Standards-Version to 3.8.2 (no changes)
     - Add versioned Build Dependency on libscalar-util-perl (>= 1.20)
   * debian/copyright: Update copyrights for holder including 2009.
 .
   [ gregor herrmann ]
   * debian/copyright: update years of packaging copyright and a license URL.
   * debian/control: add libscalar-list-utils-perl (>= 1:1.20) to Depends.
Checksums-Sha1: 
 64d7837cfc13375ef60695e0918eff40a976d432 1639 librpc-xml-perl_0.67-1.dsc
 c0b13093c16dad653dc49b9f0c6a17cdb53cf2d7 158785 
librpc-xml-perl_0.67.orig.tar.gz
 880070ccb0323bc8c0e7894cfcafea7faf7aa893 3605 librpc-xml-perl_0.67-1.diff.gz
 bce04151c733d6680599ed5388c991facfc50956 207612 librpc-xml-perl_0.67-1_all.deb
Checksums-Sha256: 
 0e236f08bc75a08aa31db8ec77cdfd796844fda9aeef52116c62fd7ac374fdcc 1639 
librpc-xml-perl_0.67-1.dsc
 d1cdd7b9f2c7970bdddc590c934756199c55d45e92af89c31bbb9c06cee0055f 158785 
librpc-xml-perl_0.67.orig.tar.gz
 dfc646f47cb495eb9e479f1506ddea346b1c59018d30845a18def96f1a003537 3605 
librpc-xml-perl_0.67-1.diff.gz
 94bebd2566b7192044775abee7e93f531c874ed3ac7662f9af852abcd76df220 207612 
librpc-xml-perl_0.67-1_all.deb
Files: 
 ebab44c4d2b3ffb334b6339f480962f5 1639 perl optional librpc-xml-perl_0.67-1.dsc
 5a931e841a361bfb41be0c19b4431e99 158785 perl optional 
librpc-xml-perl_0.67.orig.tar.gz
 b49b42f53e6a24355bec1241cc2b25a6 3605 perl optional 
librpc-xml-perl_0.67-1.diff.gz
 da9c1cc6c5dc77b6c425e8ace12be234 207612 perl optional 
librpc-xml-perl_0.67-1_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkpYz4gACgkQOzKYnQDzz+TOtgCglhuLqS6wv2pDZ5fEyT7c8L8o
8rgAn13lPJ9YabD1xZCw3rTttbhdBswm
=qymI
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to