Skip Menu |

This queue is for tickets about the libintl-perl CPAN distribution.

Report information
The Basics
Id: 83980
Status: resolved
Priority: 0/
Queue: libintl-perl

People
Owner: Nobody in particular
Requestors: ether [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: (no value)
Fixed in: (no value)



Subject: Test failures
Date: Fri, 15 Mar 2013 12:47:31 -0700
To: bug-libintl [...] rt.cpan.org
From: Karen Etheridge <ether [...] cpan.org>

Message body is not shown because it is too large.

What OS are you seeing this on? I'm getting the same failure on OS X 10.8, but not on Linux.
Subject: Re: [rt.cpan.org #83980] Test failures
Date: Tue, 2 Apr 2013 15:04:17 -0700
To: MSCHOUT via RT <bug-libintl-perl [...] rt.cpan.org>
From: Karen Etheridge <ether [...] cpan.org>
On Tue, Apr 02, 2013 at 06:00:52PM -0400, MSCHOUT via RT wrote: Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=83980 > > > What OS are you seeing this on? > I'm getting the same failure on OS X 10.8, but not on Linux.
Mac OS 10.6.8.
On 2013-04-02 18:00:51, MSCHOUT wrote: Show quoted text
> What OS are you seeing this on? > > I'm getting the same failure on OS X 10.8, but not on Linux.
I see it on OS X 10.8.3, but only on Perl 5.17. David
Here is another clue: (from #cpantesters-discuss) 02:11 < Mithaldu> BinGOs: this should be a thing of impossibility: http://www.cpantesters.org/cpan/report/dde7c558-bb3b-11e2-8c80-50d7c5c10595 02:11 < dipsy> [ CPAN Testers Reports: Report for Locale-Simple-0.015 ] 02:11 < Mithaldu> BinGOs: any chance i can ssh into your system and try to reproduce? 02:12 < Mithaldu> or at least talk this through with you? 02:23 < BinGOs> there's no way to get to that machine via ssh 02:25 < Mithaldu> BinGOs: ok, do you know if openbsd has any weirdness about environment variables then? 02:25 < BinGOs> http://www.cpantesters.org/cpan/report/e84fd636-bb6b-11e2-ad73-dd0a7cfad375 # the same there 02:25 < dipsy> [ CPAN Testers Reports: Report for Locale-Simple-0.015 ] 02:26 < BinGOs> weird in what way ? 02:26 < Mithaldu> changing them or anything 02:27 < Mithaldu> see, what's going on here is this: 02:27 < Mithaldu> https://metacpan.org/source/GETTY/Locale-Simple-0.015/t/10-gettext.t 02:27 < dipsy> [ t/10-gettext.t - metacpan.org ] 02:27 < Mithaldu> it sets a bunch of envs there 02:27 < Mithaldu> you know what 02:27 < Mithaldu> nevermind 02:27 < Mithaldu> i'm dumb 02:27 < Mithaldu> getty too 02:27 < Mithaldu> because he wrote a dumb test 02:27 < BinGOs> have you got a ssh public key 02:28 < Mithaldu> it shouldn't be using Locale::gettext_pp there 02:28 < Mithaldu> that should be _dumb 02:28 < Mithaldu> and in fact it should be using Locale::Simple, and not locale::gettext 02:32 < Mithaldu> BinGOs: thanks for the offer, but the next release will have that fixed :) 02:32 < Mithaldu> also thanks for the smoking :D 02:36 < BinGOs> kein problem 09:47 < ether> those errors look similar to what I've gotten from Locale::Util 09:47 < ether> see https://rt.cpan.org/Ticket/Display.html?id=83980 09:48 < dipsy> [ Bug #83980 for libintl-perl: Test failures during installation ] 09:49 < ether> it also uses Locale::gettext_pp - should it not be?
09:49 < ether> it also uses Locale::gettext_pp - should it not be? 09:59 < Mithaldu> ether: you probably want to use gettext_dumb 09:59 < Mithaldu> _pp only selects the chosen locale if the operating system itself supports it for that user 10:00 < Mithaldu> (so sprintf and what have you will also be working in the correct locale)
It looks to me that your gettext installation incorrectly caches locale settings. It is probably this bug that has been fixed in the meantime: https://savannah.gnu.org/bugs/?38162 Does an upgrade of GNU gettext fix the issue?
Subject: Re: [rt.cpan.org #83980] Test failures during installation
Date: Mon, 20 May 2013 09:10:12 -0700
To: GUIDO via RT <bug-libintl-perl [...] rt.cpan.org>
From: Karen Etheridge <ether [...] cpan.org>
On Mon, May 20, 2013 at 05:10:42AM -0400, GUIDO via RT wrote: Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=83980 > > > It looks to me that your gettext installation incorrectly caches locale settings. It is probably this bug that has been fixed in the meantime: https://savannah.gnu.org/bugs/?38162 > > Does an upgrade of GNU gettext fix the issue?
I already have 0.18.2 installed, which is the latest release. That bug hasn't been released yet, but it sounds quite possible that this could be the root issue.
On Mon May 20 12:10:32 2013, ETHER wrote: Show quoted text
> I already have 0.18.2 installed, which is the latest release. > That bug hasn't been released yet, but it sounds quite possible that > this > could be the root issue.
0.18.2 still suffers from that bug. So this is certainly the reason. And unfortunately there is no way for me to work around that bug. If it is an issue (it seldom is) you can always enforce the pure Perl backend with Locale::Messages::select_package(). Close this ticket?
Subject: Re: [rt.cpan.org #83980] Test failures during installation
Date: Tue, 21 May 2013 07:43:59 -0700
To: GUIDO via RT <bug-libintl-perl [...] rt.cpan.org>
From: Karen Etheridge <ether [...] cpan.org>
On Tue, May 21, 2013 at 07:19:49AM -0400, GUIDO via RT wrote: Show quoted text
> And unfortunately there is no way for me to work around that bug. If it is an issue (it seldom is) you can always enforce the pure Perl backend with Locale::Messages::select_package().
Is it not an option to call Locale::Simple/gettext_dumb rather than gettext_pp, as described in the irc log above?
On Tue May 21 10:44:20 2013, ETHER wrote: Show quoted text
> Is it not an option to call Locale::Simple/gettext_dumb rather than > gettext_pp, as described in the irc log above?
See http://search.cpan.org/~guido/libintl-perl-1.23/lib/Locale/gettext_dumb.pm#USAGE There are two possible reasons why you may want to use Locale::gettext_dumb: 1) The locale that your messages are in is missing on your system. 2) You need thread-safety. In any case, the downside is that whatever textual messages the operating system produces is in a different language and/or encoding than what your application produces. See this: warn __x("Error opening '{file}': {error}!\n", file => $filename, error => $!); This is guaranteed to be consistent for Locale::gettext_xs and Locale::gettext_pp. But if you use Locale::gettext_dumb the message and the content of $! may use different locale settings.
Subject: Re: [rt.cpan.org #83980] Test failures during installation
Date: Mon, 06 Jan 2014 03:54:58 -0500
To: bug-libintl-perl [...] rt.cpan.org
From: "Daniel Macks" <dmacks [...] netspace.org>
On OS X 10.8, libintl-perl-1.23 still fails against libintl-0.18.3.1, which does include the https://savannah.gnu.org/bugs/?38162 change. Same results for perl-5.12.4 (from OS X) and perl-5.12.6 (from fink). dan -- Daniel Macks dmacks@netspace.org
On Mo 06. Jan 2014, 03:55:10, dmacks@netspace.org wrote: Show quoted text
> On OS X 10.8, libintl-perl-1.23 still fails against libintl-0.18.3.1, > which does include the https://savannah.gnu.org/bugs/?38162 change. > Same results for perl-5.12.4 (from OS X) and perl-5.12.6 (from fink).
I have no Mac around at the moment. But since libintl-perl only links against libintl there is not much that I could do about the issue anyway. Can't you enfoce using the Perl version? You just have to write Locale::Messages->select_package ('gettext_pp'); into a BEGIN block.
On 2014-01-06 00:55:10, dmacks@netspace.org wrote: Show quoted text
> On OS X 10.8, libintl-perl-1.23 still fails against libintl-0.18.3.1, > which does include the https://savannah.gnu.org/bugs/?38162 change. > Same results for perl-5.12.4 (from OS X) and perl-5.12.6 (from fink).
Confirmed, I'm running the gettext @0.18.3.1_2 (devel) package from macports and have the same test failures. Are we *really really* sure that this bug in gettext is the cause?
Am Mo 06. Jan 2014, 17:57:27, ETHER schrieb: Show quoted text
> Are we *really really* sure that this bug in gettext is the cause?
Can you copy the output of the failed test?
Subject: Re: [rt.cpan.org #83980] Test failures during installation
Date: Tue, 7 Jan 2014 09:13:51 -0800
To: GUIDO via RT <bug-libintl-perl [...] rt.cpan.org>
From: Karen Etheridge <ether [...] cpan.org>

Message body is not shown because it is too large.

On 2014-01-07 09:14:09, ETHER wrote: Show quoted text
> On Tue, Jan 07, 2014 at 03:43:05AM -0500, GUIDO via RT wrote:
> > Can you copy the output of the failed test?
> > I wonder if you might find it useful to print the version of the > gettext > library that is found, from Makefile.PL or during relevant tests? > > 'gettext --version' reports gettext (GNU gettext-runtime) 0.18.3 >
Hi, just following up... currently, "gettext --version" prints "gettext (GNU gettext-runtime) 0.18.3", and "port list gettext" reports "gettext @0.18.3.2 devel/gettext". "locale" prints: LANG="en_CA.UTF-8" LC_COLLATE="en_CA.UTF-8" LC_CTYPE="en_CA.UTF-8" LC_MESSAGES="en_CA.UTF-8" LC_MONETARY="en_CA.UTF-8" LC_NUMERIC="en_CA.UTF-8" LC_TIME="en_CA.UTF-8" LC_ALL= I just cloned your git repo at git://git.guido-flohr.net/perl/libintl-perl.git, and ran perl Makefile.PL; make; make test -- results are attached, but all tests passed! I'm not sure what you're doing when you package up your dist for shipping, but this is likely quite significant.
Subject: screenlog.9
Download screenlog.9
application/octet-stream 75.9k

Message body not shown because it is not plain text.

On 2013-05-21 04:19:48, GUIDO wrote: If Show quoted text
> it is an issue (it seldom is) you can always enforce the pure Perl > backend with Locale::Messages::select_package().
Locale::Messages is in this distribution, so that's not very helpful - one needs to get the distribution installed first before one can select a pure perl backend. The PP version needs to be in a separate dist for it to be usable by application code.
RT-Send-CC: dmacks [...] netspace.org, bug-libintl [...] rt.cpan.org
Hi, following up on this issue again... Show quoted text
> I just cloned your git repo at git://git.guido-flohr.net/perl/libintl-perl.git, and ran perl Makefile.PL; make; make test -- results are attached, but all tests passed! I'm not sure what you're doing when you package up your dist for shipping, but this is likely quite significant.
There are quite significant differences between the git repository and what is up on the CPAN. For one, the version in git thinks it is version 2.0.0, not 1.23. But it actually appears that all revisions after 1.20 are not reflected in git. Further: *TESTS PASS IN GIT*. This means it will be possible for me (once you have updated the git repository to reflect recent releases) to perform a bisection on the code and find out just when tests started failing, which should be quite helpful towards finding an ultimate solution. And then: On 2014-04-21 16:57:39, ETHER wrote: Show quoted text
> On 2013-05-21 04:19:48, GUIDO wrote:
> > If it is an issue (it seldom is) you can always enforce the pure Perl > > backend with Locale::Messages::select_package().
> > Locale::Messages is in this distribution, so that's not very helpful - > one needs to get the distribution installed first before one can > select a pure perl backend. The PP version needs to be in a separate > dist for it to be usable by application code.
Again: a pure-perl implementation needs to ship separately from its XS equivalent, or the pure perl variant will never be able be installed on its own. And otherwise, what is the point? And: : [ether@tequila git/libintl-perl].9$; gettext --version gettext (GNU gettext-runtime) 0.19.2 Copyright (C) 1995-1997, 2000-2007 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Ulrich Drepper.
I have hit the same problem on OS X 10.10.2 with Macports.  This is in the dependency chain for Sqitch (http://sqitch.org/) and makes Sqitch troublesome to install.

$ gettext --version
gettext (GNU gettext-runtime) 0.19.4

Test Summary Report
-------------------
./tests/03environment_xs.t            (Wstat: 0 Tests: 85 Failed: 53)
  Failed tests:  8-9, 12, 14-15, 17-18, 21, 24, 26-27, 30
                32-60, 62-63, 66, 68-69, 71-72, 75, 78
                80-81, 84
./tests/03language_xs.t               (Wstat: 0 Tests: 8 Failed: 1)
  Failed test:  8
Files=183, Tests=4480, 11 wallclock secs ( 1,05 usr  0,39 sys +  8,06 cusr  1,30 csys = 10,80 CPU)
Result: FAIL
To reiterate (again) points made in previous comments on this ticket -- some previous commits in git do pass tests, so it would be extremely helpful to update the git repository to reflect all recent releases, so at least other people can try to source-dive and figure out what the problem is.
Am Mi 25. Mär 2015, 17:08:38, ETHER schrieb: Show quoted text
> To reiterate (again) points made in previous comments on this ticket > -- some previous commits in git do pass tests, so it would be > extremely helpful to update the git repository to reflect all recent > releases, so at least other people can try to source-dive and figure > out what the problem is.
The original git repository was down some time due to a hardware failure. In the meantime I have recovered the repository and made it available here: git://git.cantanea.com/libintl-perl.git The branch for the current distribution is "v1". That's why you saw significant changes between CPAN and my git. I have a Mac with ports at hand now, and will have another look at the issue as soon as possible.
Tested again on a Mac. The problem is not in libintl-perl but in GNU gettext for Mac OS X, see my new bug report: https://savannah.gnu.org/bugs/index.php?44645 There is no workaround, it is a real showstopper on the Mac and the test reports that correctly.
Please see the related discussion at the gettext bug tracker here: https://savannah.gnu.org/bugs/?func=detailitem&item_id=44645 Conclusion: As a workaround, I will provide a wrapper Locale::Messages::setlocale() that should be called instead of POSIX::setlocale() for internationalized Perl programs. That is a little bit ugly but the alternative would be to completely disable the XS interface for platforms where GNU gettext defines its own libintl_setlocale() wrapper. And after all, that is exactly what GNU gettext does, only that their wrapper is hidden by the the C preprocessor. I will try to provide an updated version of libintl_perl in the first half of April.
fixed in 1.24
On 2015-04-08 04:25:03, GUIDO wrote: Show quoted text
> fixed in 1.24
Hi, just to follow up again -- this is still a problem on some OSX boxes. Tests pass on this system (OSX 10.10): : [ether@jaeger ~].0$; uname -a Darwin jaeger 14.5.0 Darwin Kernel Version 14.5.0: Tue Sep 1 21:23:09 PDT 2015; root:xnu-2782.50.1~1/RELEASE_X86_64 x86_64 : [ether@jaeger ~].0$; gettext --version gettext (GNU gettext-runtime) 0.19.6 Copyright (C) 1995-1997, 2000-2007 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Ulrich Drepper. But fail on this system (OSX 10.8): : [ether@bourbon ~]$; uname -a Darwin bourbon 12.6.0 Darwin Kernel Version 12.6.0: Wed Mar 18 16:23:48 PDT 2015; root:xnu-2050.48.19~1/RELEASE_X86_64 x86_64 : [ether@bourbon ~]$; gettext --version gettext (GNU gettext-runtime) 0.19.7 Copyright (C) 1995-1997, 2000-2007 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Ulrich Drepper.
Hi, Am Do 18. Feb 2016, 13:05:10, ETHER schrieb: Show quoted text
> On 2015-04-08 04:25:03, GUIDO wrote:
> > fixed in 1.24
> > Hi, just to follow up again -- this is still a problem on some OSX > boxes.
And on other BSD style systems, sigh. :( I think I will run only a very basic test of the XS version during normal installations and will skip all other tests unless requested by setting some environment variable. The original idea was to ensure that the pure Perl version behaves as the XS version but the behavior of the XS version seems to be unpredictable on many systems. I'm using Mac OS X myself, and have access to three more Macs and still cannot reproduce the failures. I think this is a hopeless case and is actually not really relevant. Test failures of the XS version indicate that other localized software would have the same problems. Show quoted text
> > Tests pass on this system (OSX 10.10): > > : [ether@jaeger ~].0$; uname -a > Darwin jaeger 14.5.0 Darwin Kernel Version 14.5.0: Tue Sep 1 21:23:09 > PDT 2015; root:xnu-2782.50.1~1/RELEASE_X86_64 x86_64 > : [ether@jaeger ~].0$; gettext --version > gettext (GNU gettext-runtime) 0.19.6 > Copyright (C) 1995-1997, 2000-2007 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later > <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. > Written by Ulrich Drepper. > > > But fail on this system (OSX 10.8): > > : [ether@bourbon ~]$; uname -a > Darwin bourbon 12.6.0 Darwin Kernel Version 12.6.0: Wed Mar 18 > 16:23:48 PDT 2015; root:xnu-2050.48.19~1/RELEASE_X86_64 x86_64 > : [ether@bourbon ~]$; gettext --version > gettext (GNU gettext-runtime) 0.19.7 > Copyright (C) 1995-1997, 2000-2007 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later > <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. > Written by Ulrich Drepper.
Fixed in 1.25. The XS tests are now disabled by default. You have to set the environment variable "TEST_LIBINTL_PERL_XS_VERSION" to a Perl truth variable in order to activate them.
Am Mo 16. Mai 2016, 16:10:59, GUIDO schrieb: Show quoted text
> Fixed in 1.25. The XS tests are now disabled by default. You have to > set the environment variable "TEST_LIBINTL_PERL_XS_VERSION" to a Perl > truth variable in order to activate them.
What is a Perl "truth variable"? A typo ...