Your message dated Mon, 21 Apr 2008 21:00:35 +0300
with message-id <[EMAIL PROTECTED]>
and subject line Re: Bug#477146: XS_VERSION_BOOTCHECK only partly respects 
locales
has caused the Debian Bug report #477146,
regarding XS_VERSION_BOOTCHECK only partly respects locales
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 [EMAIL PROTECTED]
immediately.)


-- 
477146: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477146
Debian Bug Tracking System
Contact [EMAIL PROTECTED] with problems
--- Begin Message ---
Package: librrds-perl
Version: 1.2.27-2
Severity: grave
Tags: l10n
Justification: renders package unusable

RRDs perl module fails to use if locales set a decimal separator different to
'.'. In this case, the Spanish locales (es_ES.UTF-8) use ',' as a decimal
separator. DynLoader seems to compare on the left-hand side using a decimal
point, and on the right-hand side using the coma. This is what I get:

RRDs object version 1.2027 does not match bootstrap parameter 1,2027 at
/usr/lib/perl/5.8/DynaLoader.pm line 245.


The above bug is easily reproducible by running the following perl script:

use POSIX;
my $loc = POSIX::setlocale( &POSIX::LC_ALL, "es_ES.UTF-8" );
eval('use RRDs');
print "$@";


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

Kernel: Linux 2.6.21-2-686 (SMP w/2 CPU cores)
Locale: LANG=es_ES.UTF-8, LC_CTYPE=es_ES.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages librrds-perl depends on:
ii  libc6                  2.7-10            GNU C Library: Shared libraries
ii  libfreetype6           2.3.5-1+b1        FreeType 2 font engine, shared lib
ii  libpng12-0             1.2.15~beta5-3    PNG library - runtime
ii  librrd2                1.2.27-2          Time-series data storage and displ
ii  perl                   5.8.8-12          Larry Wall's Practical Extraction 
ii  perl-base [perlapi-5.8 5.8.8-12          The Pathologically Eclectic Rubbis
ii  zlib1g                 1:1.2.3.3.dfsg-12 compression library - runtime

librrds-perl recommends no packages.

-- no debconf information



--- End Message ---
--- Begin Message ---
Version: 5.10.0-1

On Mon, Apr 21, 2008 at 01:57:38PM +0200, Sebastian Harl wrote:

> > use POSIX;
> > my $loc = POSIX::setlocale( &POSIX::LC_ALL, "es_ES.UTF-8" );
> > eval('use RRDs');
> > print "$@";
> 
> The problem here is that XS_VERSION_BOOTCHECK, as used inside the C part
> of the RRDs module (and most other Perl modules using XS), uses
> string-compare to compare the value passed to DynaLoader::bootstrap() as
> second argument with the version string as provided at compile time [1].
> Now, a floating point value is used inside RRDs to define the version
> (as documented in perlmodlib(1) [2]), which is automatically converted
> to a string. During that conversion, locales are respected, which is
> obviously not the case for the constant string stored in XS_VERSION.
> This can be worked around by assigning a string to $VERSION (in RRDs.pm)
> - which should not be done though according to perlmodlib(1). Thus, this
> should imho be fixed in Perl, e.g. by converting the floating point
> value in a locale-unaware manner (thus reassigning a clone of this bug
> to perl).

This seems to be fixed in 5.10.0 by this change:

[ 23323] By: rgs                                   on 2004/09/15  16:12:42
        Log: The XSUB.h patch from:

             Subject: CPAN Upload: J/JP/JPEACOCK/version-0.42.tar.gz
             From: John Peacock <[EMAIL PROTECTED]>
             Date: Wed, 18 Aug 2004 08:26:35 -0400
             Message-ID: <[EMAIL PROTECTED]>

             Now it will use version object logic for version comparison
             when loading XS modules.
     Branch: perl
           ! XSUB.h

The patch can be seen for instance in
<http://www.mail-archive.com/[EMAIL PROTECTED]/msg10169.html>.

Quoting John Peacock in the original thread,
<http://www.nntp.perl.org/group/perl.perl5.porters/2004/08/msg93957.html>:

 It only affects modules built with this particular XSUB.h, and at least 
 for all of the core modules that do so, all tests pass.  It is intended 
 to be completely transparent to the XS module built with this include 
 file.  It just changes the somewhat dubious practice of doing a string 
 compare of the SV from XS_VERSION to a true version object comparison.

The example script works for me on 5.10.0-8 from experimental 
(after rebuilding rrdtool for perlapi-5.10.0, of course.)

I'm closing the bug; the fix will get in sid as soon as the release team
says the word.

Cheers,
-- 
Niko Tyni   [EMAIL PROTECTED]


--- End Message ---

Reply via email to