Perl module rpm dependency problem

Ville Skyttä ville.skytta at iki.fi
Thu Jul 31 15:42:41 UTC 2003


On Thu, 2003-07-31 at 12:22, Jos Vos wrote:
> Hi,
> 
> I'm trying to package the Perl XML-SAX module.  I'm using the
> Perl __find_{requires,provides} redefines etc. in the spec file.
[snip]
> error: Failed dependencies:
> 	perl(XML::SAX::PurePerl::DTDDecls) is needed by perl-XML-SAX-0.12-XOS.1beta1
> 	perl(XML::SAX::PurePerl::DocType) is needed by perl-XML-SAX-0.12-XOS.1beta1
> 	perl(XML::SAX::PurePerl::EncodingDetect) is needed by perl-XML-SAX-0.12-XOS.1beta1
> 	perl(XML::SAX::PurePerl::XMLDecl) is needed by perl-XML-SAX-0.12-XOS.1beta1
> 
> But thes things *are* included, but not seen by the find_provides script?

If you peek at the affected files, you'll see that they actually are not
"included" as far as rpm is concerned.  rpm looks at the "package foo"
statements when building the list of Provides, and "use/require foo" for
Requires.

Those files do not have a package of their own, instead they blend into
the XML::SAX::PurePerl package.  And perl allows one to use() them using
the fully qualified, "fake" package name (based on the dir structure, I
believe).

The approach I took (see http://cachalot.mine.nu/9/) was to manually add
the following to satisfy the deps (NoUnicodeExt and Unicode just for
consistency):

  Provides:  perl(XML::SAX::PurePerl::DocType)
  Provides:  perl(XML::SAX::PurePerl::DTDDecls)
  Provides:  perl(XML::SAX::PurePerl::EncodingDetect)
  Provides:  perl(XML::SAX::PurePerl::NoUnicodeExt)
  Provides:  perl(XML::SAX::PurePerl::UnicodeExt)
  Provides:  perl(XML::SAX::PurePerl::XMLDecl)

-- 
\/





More information about the devel mailing list