Your message dated Tue, 04 Mar 2008 00:17:07 +0000
with message-id <[EMAIL PROTECTED]>
and subject line Bug#459451: fixed in po4a 0.33-1
has caused the Debian Bug report #459451,
regarding po4a failures with perl 5.10
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.)


-- 
459451: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=459451
Debian Bug Tracking System
Contact [EMAIL PROTECTED] with problems
--- Begin Message ---
Package: po4a
Version: 0.32-1

Hi,
while building the latest devscripts package with perl 5.10 from experimental

$ po4a --rm-translations --no-backups devscripts-po4a.conf

fails with

Can't use string ("0") as a HASH ref while "strict refs" in use at
/usr/bin/po4a line 504, <CONFIG> line 6.

po4a uses pathetic constructs like ${%$hashref}{key} when $hashref->{key}
was called for.  The former used to worked in perl 5.8 and earlier, but
is apparently interpreted differently in perl 5.10. The first patch below
fixes all such incantations in po4a.
Note that the line marked with XXX looks suspicious to me: the
commentss imply that one hash is to be merged into another,
but the operation  %a = %b really overwrites hash a with (a copy of) hash b.

The above command also prints lots of warnings like

Constant subroutine Locale::Po4a::Common::LC_CTYPE redefined at
/usr/share/perl/5.10/Exporter.pm line 66.
 at /usr/share/perl5/Locale/Po4a/Common.pm line 194
Prototype mismatch: sub Locale::Po4a::Common::LC_CTYPE () vs none at
/usr/share/perl/5.10/Exporter.pm line 66.
 at /usr/share/perl5/Locale/Po4a/Common.pm line 194

The second patch below gets rid of these, but I suspect the real culprit
is Locale::gettext (liblocal-gettext-perl) because it also implements
(and exports)
the constants LC_*. These are also in POSIX.pm (Perl core module).

Cheers, Roderich
--- po4a-0.32-ORIG/po4a	2008-01-06 16:00:14.000000000 +0100
+++ po4a-0.32/po4a	2008-01-06 16:08:19.000000000 +0100
@@ -440,10 +440,10 @@
     $opts{"msgmerge-opt"} .= " --previous" if $previous;
 
     # options to transmit to the modules
-    %{$opts{"options"}} = (
+    $opts{"options"} = {
         "verbose" => $opts{"verbose"},
         "debug"   => $opts{"debug"}
-    );
+    };
     foreach (@options) {
         if (m/^([^=]*)=(.*)$/) {
             $opts{"options"}{$1}="$2";
@@ -498,10 +498,10 @@
             if (! defined $lang) {
                 $lang = "global";
             }
-            if (! defined ${%$options}{$lang}) {
-                ${%$options}{$lang} = $opt;
+            if (! defined $options->{$lang}) {
+                $options->{$lang} = $opt;
             } else {
-                ${%$options}{$lang} .= " $opt";
+                $options->{$lang} .= " $opt";
             }
         } else {
             last;
@@ -638,20 +638,20 @@
 	my %options;
 	# 1. Use the global options ([opt] ...)
 	%options = %{$document{''}{'options'}}
-	  if defined %{$document{''}{'options'}};
+	  if defined $document{''}{'options'};
 
 	# 2. Merge the alias options
 	if (defined $aliases{$1}) {
 	    $document{$main}{'format'} = $aliases{$1}{"module"};
-	    if (defined %{$aliases{$1}{"options"}}) {
-		%options = %{$aliases{$1}{"options"}};
+	    if (defined $aliases{$1}{"options"}) {
+		%options = %{$aliases{$1}{"options"}}; # XXX not a merge, but overwrite
 	    }
 	}
 
 	# 3. If this file was already specified, reuse the previous
 	#    options (no merge)
 	%options = %{$document{$main}{'options'}}
-	  if defined %{$document{$main}{'options'}};
+	  if defined $document{$main}{'options'};
 
 	# 4. Merge the document specific options
 	# separate the end of the line, which contains options.
@@ -697,7 +697,7 @@
 	$o =~ s/.*?\[options\] +//;
 	parse_config_options("$config_file:$nb",
 	                     $o,
-	                     \%{$document{''}{"options"}});
+	                     $document{''}{"options"});
     } else {
 	die wrap_ref_mod("$config_file:$nb", "",
 	    gettext("Unparsable command '%s'."), $cmd);

--- po4a-0.32-ORIG/lib/Locale/Po4a/Common.pm	2008-01-06 16:00:14.000000000 +0100
+++ po4a-0.32/lib/Locale/Po4a/Common.pm	2008-01-06 16:09:59.000000000 +0100
@@ -192,8 +192,8 @@
 BEGIN {
     if (eval { require Locale::gettext }) {
        import Locale::gettext;
-       use POSIX;
-       setlocale(LC_MESSAGES, '');
+       require POSIX;
+       POSIX::setlocale(&POSIX::LC_MESSAGES, '');
     } else {
        eval '
            sub bindtextdomain($$) { }


--- End Message ---
--- Begin Message ---
Source: po4a
Source-Version: 0.33-1

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

po4a_0.33-1.diff.gz
  to pool/main/p/po4a/po4a_0.33-1.diff.gz
po4a_0.33-1.dsc
  to pool/main/p/po4a/po4a_0.33-1.dsc
po4a_0.33-1_all.deb
  to pool/main/p/po4a/po4a_0.33-1_all.deb
po4a_0.33.orig.tar.gz
  to pool/main/p/po4a/po4a_0.33.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 [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Nicolas FRANCOIS (Nekral) <[EMAIL PROTECTED]> (supplier of updated po4a 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 [EMAIL PROTECTED])


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

Format: 1.7
Date: Sun, 13 Jan 2008 21:49:23 +0100
Source: po4a
Binary: po4a
Architecture: source all
Version: 0.33-1
Distribution: unstable
Urgency: low
Maintainer: Nicolas FRANCOIS (Nekral) <[EMAIL PROTECTED]>
Changed-By: Nicolas FRANCOIS (Nekral) <[EMAIL PROTECTED]>
Description: 
 po4a       - tools for helping translation of documentation
Closes: 439842 443054 447656 450892 459451 463387 464543
Changes: 
 po4a (0.33-1) unstable; urgency=low
 .
   * New upstream release.
     - Fix failures with perl 5.10. Closes: #459451
     - [man] Die on unrecognised '<' sequences in msgstr strings.
       Closes: #450892
     - [man] The Locale::Po4a::Man(3pm) manpage describes how an author can
       write specify that some parts are not to be translated.
       Closes: #443054
     - Added support for PO files with plural form messages.
       The support is still not complete, but po4a should warn or die when
       needed.
       Closes: #439842
     - Fix the handling of header comments in msguntypot. Closes: #447656
     - [docbook] Added support for the <keyword> elements. Thanks
       to W. Martin Borgert <[EMAIL PROTECTED]>. Closes: #463387
     - inline tags are now extracted, even if there is no text outside the
       inline tags.  Closes: #464543
   * debian/control: Updated to Standards: 3.7.3.0 (checked, no changes needed)
   * debian/rules: Something changed. I need to specify create_packlist=0 to
     avoid the .packlist to be created.
Files: 
 09ea3c720b8e9898942c57ee526733a5 717 text optional po4a_0.33-1.dsc
 7c0d7d9d5484f2bef88c307ceccd20a5 914420 text optional po4a_0.33.orig.tar.gz
 99e78c9e76b692afe521b88bb209c8c3 4416 text optional po4a_0.33-1.diff.gz
 6bd07a2495990c5e549b3cd90f327fad 782424 text optional po4a_0.33-1_all.deb

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

iD8DBQFHzJCaWgo5mup89a0RAiD9AJ90PDbp27VOdxC4gT1cDLql/RmDngCeIL3+
Rr2IPtyCIXgmO0w/v/qBHeo=
=zr05
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to