Mailinglist Archive: opensuse (1658 mails)

< Previous Next >
Re: [opensuse] perl module install question
  • From: Greg Freemyer <greg.freemyer@xxxxxxxxx>
  • Date: Wed, 7 Dec 2011 15:18:37 -0500
  • Message-id: <>
On Wed, Dec 7, 2011 at 1:49 PM, David Haller <dnh@xxxxxxxxxxxx> wrote:

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@xxxxxxxx>)
   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/
                               ^^^^^^^^^^^ that's d:l:p, not the perl.rpm
cpan[3]> m IO::Zlib
Module id = IO::Zlib
   DESCRIPTION  IO:: style interface to Compress::Zlib
   CPAN_USERID  TOMHUGHES (Tom Hughes <tom@xxxxxxxxxx>)
   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/

If they were core-modules, they'd have the perl-tarball as CPAN_FILE,

cpan[4]> m B::Deparse
Module id = B::Deparse
   CPAN_USERID  JESSE (Jesse Vincent <jesse+cpan@xxxxxxxx>)
   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/
   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'.


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?

Obsoletes: perl(IO::Compress::Base) < version(perl(IO::Compress::Base))
Obsoletes: perl(IO::Compress::Bzip2) <

I just tried the above and it fails. I don't want to hard code in
version numbers.

To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse+owner@xxxxxxxxxxxx

< Previous Next >
Follow Ups