On Fri, 10 Dec 2004 21:27:19 +0000, José Pedro Oliveira <jpo@xxxxxxxxxxxx> wrote: > Aamer Akhter wrote: > > 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) > Jose, thanks that explains it. I was using RHEL3-- which won't have the same naming system. > [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 * > > > -- Aamer Akhter / aakhter@xxxxxxxxx _______________________________________________ Rpm-list mailing list Rpm-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/rpm-list