On Wed, Dec 7, 2011 at 1:49 PM, David Haller <dnh@opensuse.org> wrote:
Hello,
On Wed, 07 Dec 2011, Dave Howorth wrote:
Greg Freemyer wrote:
I think the real issue is this line from the perl specfile:
Provides: perl-IO-Zlib perl-IO-Compress-Base perl-IO-Compress-Zlib Obsoletes: perl-IO-Zlib perl-IO-Compress-Base perl-IO-Compress-Zlib [..] I believe *you are in a pit. Please stop digging it deeper!*
Stop digging yourself ;)
IO::Zlib and IO::Compress::Base are core modules since Perl 5.10.0.
CPAN disagrees.
cpan[2]> m IO::Compress::Base Module id = IO::Compress::Base CPAN_USERID PMQS (Paul Marquess <pmqs@cpan.org>) CPAN_VERSION 2.045 CPAN_FILE P/PM/PMQS/IO-Compress-2.045.tar.gz MANPAGE IO::Compress::Base - Base Class for IO::Compress modules INST_FILE /usr/lib/perl5/vendor_perl/5.12.3/IO/Compress/Base.pm ^^^^^^^^^^^ that's d:l:p, not the perl.rpm INST_VERSION 2.036 cpan[3]> m IO::Zlib Module id = IO::Zlib DESCRIPTION IO:: style interface to Compress::Zlib CPAN_USERID TOMHUGHES (Tom Hughes <tom@compton.nu>) CPAN_VERSION 1.10 CPAN_FILE T/TO/TOMHUGHES/IO-Zlib-1.10.tar.gz DSLIP_STATUS bdpO? (beta,developer,perl,object-oriented,) MANPAGE IO::Zlib - IO:: style interface to L<Compress::Zlib> INST_FILE /usr/lib/perl5/5.12.3/IO/Zlib.pm INST_VERSION 1.10
If they were core-modules, they'd have the perl-tarball as CPAN_FILE, compare:
cpan[4]> m B::Deparse Module id = B::Deparse CPAN_USERID JESSE (Jesse Vincent <jesse+cpan@fsck.com>) CPAN_VERSION 1.08 CPAN_FILE F/FL/FLORA/perl-5.15.4.tar.gz MANPAGE B::Deparse - Perl compiler backend to produce perl code INST_FILE /usr/lib/perl5/5.12.3/B/Deparse.pm INST_VERSION 0.9701
That openSUSE packages those in the perl-RPM is completely irrelevant, they are maintained as seperate modules by seperate people outside of perl-core. IMO, the perl.spec needs versioned
Obsoletes: perl($foo) <= $module_version
if using any "Obsoletes", the modules from d:l:p use a seperate tree for the files, only the manpages are a real conflict, but those _can_ be overridden in yast/zypper (IIRC), the Obsoletes cannot, I e.g. get only 2 solutions, both identical "do not install $package". That sucks. I resorted to using 'rpm -Uvh --force'.
David,
From what I see, your'e right the perl specfile should probably not have any of the explicit Provides statements, and the Obsoletes should be both expanded to cover all of the appropriate packages and they should be version-ed.
Since I'm messing with perl(IO::Compress::*) pretty heavily I don't mind doing a SR to address that for them. Is there a good syntax that will get the module version easily? ie. Obsoletes: perl(IO::Compress::Base) < version(perl(IO::Compress::Base)) Obsoletes: perl(IO::Compress::Bzip2) < version(perl(IO::Compress::Bzip2)) etc. I just tried the above and it fails. I don't want to hard code in version numbers. Thanks Greg -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org