Bug 736822

Summary: redhat-lsb does not pull in required perl-Locale-Codes
Product: [Fedora] Fedora Reporter: Stew Benedict <stewb>
Component: redhat-lsbAssignee: Parag Nemade <pnemade>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: herrold, hliu, llim, mats, mmaslano, plautrba, pnemade, xning
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: redhat-lsb-4.0-7.fc16 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-12 14:10:06 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Stew Benedict 2011-09-08 19:13:23 UTC
Description of problem:

With the split of this package from base perl, the LSB perl distribution tests fail a number of Locale::* tests. After installation of perl-Locale-Codes, some of the tests pass, although the system still seems to lack support for Locale::Constants.

Version-Release number of selected component (if applicable):
redhat-lsb-4.0-6.fc15.i686
perl-Locale-Codes-3.18-1.fc17.noarch


How reproducible:
very

Steps to Reproduce:
1. install rawhide
2. install the LSB distribution test suite
3. run the perl tests
  
Actual results:
several tests fail

Expected results:
all tests should pass

Additional info:

ref: http://bugs.linuxbase.org/show_bug.cgi?id=3282

Comment 1 Parag Nemade 2011-09-21 06:37:58 UTC
Can you provide lsb-test-perl package here or somewhere?

Comment 2 Stew Benedict 2011-09-21 12:52:30 UTC
This should be a fairly recent build, while the LF servers are down:

http://stewbenedict.org/lsb-tests/x86/lsb-test-perl-4.1.2-1.noarch.rpm

Comment 3 Parag Nemade 2011-09-22 03:51:04 UTC
Looks that needs some package lsb-tet3-lite. Also, how can I test perl against system installed perl? I see lsb-test-perl installs own perl modules and run test against it. Please kindly provide details here to reproduce above problem and identify what dependencies to be added.

Comment 4 Stew Benedict 2011-09-22 11:51:33 UTC
Sorry I just untarrred tet3-lite in the same directory. (The snapshots tarball has most of the test suite). The test is designed to test the system perl. It provides only the test harness and some additional needed files. To run the test after install:

su -
cd /opt/lsb/test/perl
./run_tests

To run a single failed test with more verbose output:


factory-32:/opt/lsb/test/perl # ./single_test
usage: ./single_test <some_test>
	(some_test something like ../lib/integer.t or io/fs.t)

Note for single test you do not use the path from /opt/lsb/test/perl, but the same path as reported in the failure output.

Comment 5 Fedora Update System 2011-10-13 10:04:58 UTC
redhat-lsb-4.0-7.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/redhat-lsb-4.0-7.fc16

Comment 6 Fedora Update System 2011-10-13 18:14:38 UTC
Package redhat-lsb-4.0-7.fc16:
* should fix your issue,
* was pushed to the Fedora 16 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing redhat-lsb-4.0-7.fc16'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2011-14292
then log in and leave karma (feedback).

Comment 7 Fedora Update System 2011-10-25 03:43:20 UTC
redhat-lsb-4.0-7.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 8 Stew Benedict 2011-12-09 14:12:30 UTC
Re-opening.

While the requires may have been adjusted, the perl build doesn't pass constants.t or languages.t:


[root@rawhide-32 perl]# ./single_test ../lib/Locale/Codes/t/constants.t
../lib/Locale/Codes/t/constants....Can't locate Locale/Constants.pm in @INC (@INC contains: /opt/lsb/test/perl/5.10.0/tlib /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 . './' /opt/lsb/test/perl/lib /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 .) at ../lib/Locale/Codes/t/constants.t line 6.
BEGIN failed--compilation aborted at ../lib/Locale/Codes/t/constants.t line 6.
dubious
	Test returned status 2 (wstat 512, 0x200)
FAILED--1 test script could be run, alas--no output ever seen


[root@rawhide-32 perl]# ./single_test ../lib/Locale/Codes/t/languages.t
../lib/Locale/Codes/t/languages....1..53
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11
ok 12
ok 13
ok 14
ok 15
ok 16
ok 17
ok 18
ok 19
ok 20
ok 21
ok 22
not ok 23
ok 24
ok 25
ok 26
ok 27
ok 28
ok 29
ok 30
ok 31
ok 32
ok 33
ok 34
ok 35
ok 36
ok 37
ok 38
ok 39
ok 40
ok 41
ok 42
ok 43
ok 44
ok 45
ok 46
ok 47
ok 48
ok 49
ok 50
ok 51
ok 52
ok 53
FAILED test 23
	Failed 1/53 tests, 98.11% okay
Failed Test                       Stat Wstat Total Fail  List of Failed
-------------------------------------------------------------------------------
../lib/Locale/Codes/t/languages.t               53    1  23
Failed 1/1 test scripts. 1/53 subtests failed.
Files=1, Tests=53,  0 wallclock secs ( 0.15 cusr +  0.04 csys =  0.19 CPU)
Failed 1/1 test programs. 1/53 subtests failed.


not ok 131 - use Locale::Constants;

#   Failed test 'use Locale::Constants;'
#   at all/tst_perlModPresent.pl line 147.
#     Tried to use 'Locale::Constants'.
#     Error:  Can't locate Locale/Constants.pm in @INC (@INC contains: /opt/lsb/test/perl/5.10.0/t/blib/arch /opt/lsb/test/perl/5.10.0/t/blib/lib /opt/lsb/test/perl/5.10.0/tlib /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 /opt/lsb/test/perl/5.10.0/t /opt/lsb/test/perl/5.10.0/t/'./' /opt/lsb/test/perl/lib) at (eval 175) line 2, <DATA> line 1662.
# BEGIN failed--compilation aborted at (eval 175) line 2, <DATA> line 1662.


[root@rawhide-32 perl]# rpm -q perl
perl-5.14.2-205.fc17.i686
[root@rawhide-32 perl]# rpm -q redhat-lsb
redhat-lsb-4.0-10.fc17.i686

Comment 9 Parag Nemade 2011-12-09 17:11:53 UTC
how can I help here? In rawhide perl-Locale-Codes provides
perl(Locale::Codes::Constants) = 3.20

Also, better open a new bug.

Comment 10 Stew Benedict 2011-12-09 17:24:46 UTC
Yes, but Locale::Constants is the missing piece. Nothing seems to provide this now in the Red Hat build. If you look at our bug in comment 1, I was able to build upstream and have this support, it seems to be something "special" in your build that drops it.

as far as I can tell Locale::Codes::Constants != Locale::Constants

Comment 11 Parag Nemade 2011-12-09 17:46:44 UTC
Can you explain what you mean by "I was able to build upstream" ? which upstream? perl-Locale-Codes? What is dropped by redhat-lsb build?

I wonder if no package is providing Locale::Constants in Fedora then how can I fix your problem?

Comment 12 Stew Benedict 2011-12-09 18:06:34 UTC
upstream perl, from the perl-5.14.1 tarball

Well, I was kind of hoping you Fedora guys talked to one another and between you and the perl maintainer could make something provide what LSB requires :)

Comment 13 Parag Nemade 2011-12-11 05:37:59 UTC
Hi Marcela,
   Can you please help me here? Reporter want to run the perl test for Locale::Constants which is now not present in Fedora. Should upstream test suite drop the test for Locale::Constants?

See above comments for more description of reported problem.

Comment 14 Marcela Mašláňová 2011-12-12 07:31:26 UTC
(In reply to comment #13)
> Hi Marcela,
>    Can you please help me here? Reporter want to run the perl test for
> Locale::Constants which is now not present in Fedora. Should upstream test
> suite drop the test for Locale::Constants?
> 
> See above comments for more description of reported problem.

Hello Parag,
we are providing perl(Locale::Constants) in sub-package from perl upstream tarball. The sub-package is called perl-Locale-Codes. Do you need to add it into some collection? You can easily find it by yum whatprovides 'perl(Locale::Constants)'.

Comment 15 Parag Nemade 2011-12-12 09:14:06 UTC
Thanks Marcela. Looks like its a dual-lived module. When I searched for perl(Locale::Constants) in rawhide, I get 
repoquery --whatprovides 'perl(Locale::Constants)' --repoid=rawhide
perl-Locale-Codes-0:3.16-205.fc17.noarch

How can I make this package to be required by redhat-lsb? The other CPAN Locale-Codes module does not provide perl(Locale::Constants).

How can have both the packages(one from perl and one its own) installed on my f16/rawhide machine?

Comment 16 Stew Benedict 2011-12-12 12:49:27 UTC
Which brings me back to the original comments:

[root@rawhide-32 ~]# yum whatprovides 'perl(Locale::Constants)'
Loaded plugins: refresh-packagekit
perl-Locale-Codes-3.16-205.fc17.noarch : Distribution of modules to handle
                                       : locale codes
Repo        : rawhide
Matched from:
Other       : perl(Locale::Constants)


[root@rawhide-32 ~]# rpm -q perl-Locale-Codes
perl-Locale-Codes-3.20-1.fc17.noarch

[root@rawhide-32 ~]# perl -e "use Locale::Constants"
Can't locate Locale/Constants.pm in @INC (@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 .) at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

So while it seems to be provided, it doesn't seem to be usable as such.

Comment 17 Marcela Mašláňová 2011-12-12 13:08:46 UTC
With new version of Locale::Codes was code reorganized. 
<snip>
Reorganized code
Reorganized modules to move Locale::MODULE to Locale::Codes::MODULE to
allow for cleaner future additions.  The original four modules (Locale::Language,
Locale::Currency, Locale::Country, Locale::Script) will continue to work, but 
all new sets of codes will be added in the Locale::Codes namespace.
</snip>
For whole set of changes, please see upstream:
http://cpansearch.perl.org/src/SBECK/Locale-Codes-3.20/lib/Locale/Codes/Changes.pod

So, yum will install the latest version of Locale::Codes, which already contains this change. 
You should correctly depends on perl(Locale::Codes::Constants) since F-16 instead of perl(Locale::Constants).

Comment 18 Stew Benedict 2011-12-12 13:32:34 UTC
Yes, but the whole point to this bug is LSB requires Locale::Constants. And it won't go away for a while per the LSB deprecation policy. At this point, Fedora is the only leading-edge. distribution not providing this module.

Comment 19 Marcela Mašláňová 2011-12-12 14:03:16 UTC
Yes, but I guess that new Perl will contain updated package. It will be released in the spring, so since than it will be changed anyway. 

In yum is not possible to specify, which version of module should be installed, so I don't see any solution.

Comment 20 Parag Nemade 2011-12-12 14:10:06 UTC
Stew,
   I think there will be no way to solve the reported issue then. We can't go
backwards. We want to provide the current upstream modules in Fedora. I see
this bug as a WONTFIX. 

Marcela,
    Thanks for the explanation.

Comment 21 Xibo Ning 2012-03-06 09:42:59 UTC
For losing Locale::Constants. How about to add /usr/share/perl5/vendor_perl/Locale/Constants.pm in redhat-lsb package. The module file contents as follows:
package Locale::Constants;
use Locale::Codes::Constants;
*main::Locale::Constants:: = *main::Locale::Codes::Constants::;
1


What about this solution?

Comment 22 Xibo Ning 2012-03-06 09:49:56 UTC
LSB 4.1 also need Pod::Plainer, I didn't find this module in f16.

Comment 23 Marcela Mašláňová 2012-03-06 10:05:11 UTC
LSB should be fixed. Pod::Plainer was obsoleted by the Perl upstream:
http://search.cpan.org/~flora/perl-5.14.2/pod/perl5120delta.pod

I already sent you reply on devel mailing list.

Comment 24 Mats Wichmann 2012-03-06 16:19:15 UTC
In the case of Pod::Plainer, LSB is as "fixed" as possible, as can be seen here:

http://linuxbase.org/navigator/browse/intlang.php?cmd=display-ilmodule-byname&ILMname=Pod%3A%3APlainer&ILMlanguage=1

That is, it was introduced (on the advice of Perl upstream at the time, it should be noted) in LSB 3.2, deprecated in 4.1 to match upstream's deprecation.  Deprecation is not removal, even the release note referenced has verbiage on that ("you should carefully consider the repercussions of core module deprecations")

Comment 25 Parag Nemade 2012-03-07 08:58:30 UTC
Marcela,
   As lsb tests want the same old path, is it ok redhat-lsb-4.1 to add wrapper script Constants.pm in comment#21 ?

Comment 26 Marcela Mašláňová 2012-03-07 10:43:37 UTC
Parag,
I don't know how is lsb working. If it's okay for you as a maintainer of lsb, then I won't be complaining about a wrapper.

I'm not interested in packaging Pod::Plainer, because it's not used anyway - Pod::Plainer - Perl extension for converting Pod to old-style Pod. If anyone else is willing to package it, it's fine with me.

Comment 27 Parag Nemade 2012-03-07 11:47:21 UTC
Thanks Marcela for your reply. As both the modules are requirement for lsb 4.1 standard I will use the wrapper and will ask xning to get the package review done.

xning is preparing lsb 4.1 update in Fedora.