Check the following two things: 1) is your package linking anywhere to libperl.so, 2) is your package installing any Perl modules into Perl's vendor directory (e.g., /usr/lib64/perl5/vendor_perl/5.20.1/)? If at least one of these two questions is answered with yes, you need in your dependency string a slot operator, i.e. "dev-lang/perl:=" Obviously, your ebuild will have to be EAPI=5 for that. If neither 1) nor 2) are the case, "dev-lang/perl" is enough.
Now, with eclasses. If you use perl-module.eclass or perl-app.eclass, two variables control automatic adding of dependencies. GENTOO_DEPEND_ON_PERL sets whether the eclass automatically adds a dependency on Perl, and defaults to yes in both cases. GENTOO_DEPEND_ON_PERL_SUBSLOT controls whether the slot operator ":=" is used. It defaults to yes in perl-module.eclass and to no in perl-app.eclass. (This is actually the only difference between the eclasses.) The idea behind that is that a Perl module package always installs modules into vendor_dir, while an application can have its own separate installation path for its modules or not install any modules at all.
In many cases, if a package installs Perl modules you'll need Perl at build time as well since the module build system is written in Perl. If a package links to Perl, that is obviously needed at build time too.
So, summarizing:
eclass | 1) or 2) true | 1) false, 2) false |
none | "dev-lang/perl:=" needed in RDEPEND and most likely also DEPEND | "dev-lang/perl" needed in RDEPEND, maybe also in DEPEND |
perl-module.eclass | no need to do anything | GENTOO_DEPEND_ON_PERL_SUBSLOT=no possible before inherit |
perl-app.eclass | GENTOO_DEPEND_ON_PERL_SUBSLOT=yes needed before inherit | no need to do anything |
No comments:
Post a Comment