Hello,
I'm have this in a .spec file: BuildRequires: perl >= 2:5.8.0 Requires: %(eval `perl -V:version`; echo "perl(:MODULE_COMPAT_$version)")
It build's fine, but in trying to install, I get this error:
error: Failed dependencies: perl(:MODULE_COMPAT_5.8.0) is needed by subversion-perl-1.1.1-0.1.rf
is it ok to just replace the macro with >= 2:5.8.0 ?
You can safely remove the "Requires" statement if you are building and installing the package in the same machine or similar ones. Warning:
they should have the same perl version (unless you know what you are doing).
Explanation: The virtual package "perl(:MODULE_COMPAT_x) is provided by the Fedora perl RPM (shipped in Fedora Core 1, 2, and 3). Examples:
[Fedora Core 1]$ rpm -q --provides perl | grep MODULE_COMPAT perl(:MODULE_COMPAT_5.8.0) perl(:MODULE_COMPAT_5.8.1) perl(:MODULE_COMPAT_5.8.2) perl(:MODULE_COMPAT_5.8.3)
[Fedora Core 3]$ rpm -q --provides perl | grep MODULE_COMPAT perl(:MODULE_COMPAT_5.8.0) perl(:MODULE_COMPAT_5.8.1) perl(:MODULE_COMPAT_5.8.2) perl(:MODULE_COMPAT_5.8.3) perl(:MODULE_COMPAT_5.8.4) perl(:MODULE_COMPAT_5.8.5)
The purpose of these virtual packages is to prevent the installation of perl modules in the following situations:
* major perl versions have binary compatibility problems
A binary perl 5.6.x module shouldn't be used in perl 5.8.x (and a 5.8.x one in perl 5.6.x).
* Each perl version looks for modules in different directories (check the values of the @INC array with "perl -V").
Example: Fedora Core 1 perl 5.8.3 module directories: @INC: /usr/lib/perl5/5.8.3/i386-linux-thread-multi /usr/lib/perl5/5.8.3 /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .
That means you shouldn't install a module built for perl 5.8.5 in perl 5.8.3 because the module would never be found (it would be installed outside the default @INC directories).
The other way around would be OK. Fedora Core 3 perl 5.8.5 would be able to find an installed module built for FC1 (perl 5.8.3).
Notes: 1) Minor perl versions are binary compatible (eg: 5.8.3 with 5.8.5). 2) The Fedora Core distribution tries to be backward compatible in perl related terms.
Hope the above explanation is enough.
Regards, jpo -- José Pedro Oliveira * mailto: jpo@xxxxxxxxxxxx * http://gsd.di.uminho.pt/~jpo * * gpg fingerprint = F9B6 8D87 859D 1C94 48F0 84C0 9749 9EB5 91BD 851B *
Attachment:
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Rpm-list mailing list Rpm-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/rpm-list