cpan2rpm could implement a workaround, adding extra Provides: tags
just the way I did by hand, but it still seems to me that the root
cause is /usr/lib/rpm/perl.prov, which is part of RPM, so I thought
I'd start here. I'm relatively new to package building so I could be
wrong, but that's how it looks.
Dan Franklin
At 12:05 AM -0400 8/30/05, Jason Pyeron wrote:
Amen!
but shouldn't this be cross posted to:
http://lists.sourceforge.net/mailman/listinfo/cpan2rpm-general
or a bug filed at
http://sourceforge.net/tracker/?group_id=74018&atid=539686
But good to know.
On Mon, 29 Aug 2005, Dan Franklin wrote:
I've been using cpan2rpm a fair amount, and sometimes the rpm files
it produces refuse to install because of dependency issues. After
investigating, I think it's because of a problem with rpm's
automatic dependency generators for Perl.
The problem occurs when a Perl .pm file in a CPAN module has a
'use' statement that corresponds to a .pm file also in the module,
but that second file's 'package' statement doesn't match the
filename. This is legal Perl. rpmbuild will generate a requires for
the filename and a provides for the package. Since these don't
match, the RPM won't install because it appears to require things
that don't exist.
For example, take CPAN module VCS::LibCVS, whose RPM failed to
install with several requirements not met.
In one of its files, VCS/LibCVS/Client.pm, it has a use statement
use VCS::LibCVS::Client::Request::Requests;
which causes it to load VCS/LibCVS/Client/Request/Requests.pm,
which is also part of VCS::LibCVS. But Requests.pm has no package
statement for VCS::LibCVS::Client::Request::Requests. It defines
many other packages, but not that one. This is OK, because none of
the LibCVS code ever tries to create an object by that name. So
the code is fine.
But perl.req scans for 'use' statements, and generates a
requirement for perl(VCS::LibCVS::Client::Request::Requests),
while perl.prov scans for 'package' statements, so it never says
that this module provides a matching package. Result: when I try
to install the package, rpm says that it is missing
perl(VCS::LibCVS::Client::Request::Requests). This happens for
several other requirements as well.
I can get around this by adding Provides: tags for the "missing"
packages, but it seems to me that perl.prov ought not to scan for
package statements. It should just use the things that 'use'
statements actually care about - the filenames themselves.
Dan Franklin
dfranklin@xxxxxxx
_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/rpm-list
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- -
- Jason Pyeron PD Inc. http://www.pdinc.us -
- Partner & Sr. Manager 7 West 24th Street #100 -
- +1 (443) 921-0381 Baltimore, Maryland 21218 -
- -
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
This message is for the designated recipient only and may contain
privileged, proprietary, or otherwise private information. If you
have received it in error, purge the message from your system and
notify the sender immediately. Any other use of the email by you is
prohibited.
_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/rpm-list
_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/rpm-list