Re: perl module_compat problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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)

   [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

[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux