Question about sane usage of macroses in perl template
Pavel Alexeev (aka Pahan-Hubbitus)
forum at hubbitus.com.ru
Fri Aug 27 10:34:57 UTC 2010
27.08.2010 13:58, Ralf Corsepius пишет:
> On 08/27/2010 10:28 AM, Pavel Alexeev (aka Pahan-Hubbitus) wrote:
>> $ rpmdev-newspec -t perl
>> produce template where, inter alia we have such lines:
>> %{__perl} Makefile.PL INSTALLDIRS=vendor
>> OPTIMIZE="$RPM_OPT_FLAGS"
>>
>> make %{?_smp_mflags}
>>
>> I'm wonder why there used mix of macros %{__perl} and plain other
>> commands like make?
>> Rpm say it is just perl command with path:
>> $ rpm --eval '%{__perl}'
>> /usr/bin/perl
>> Is there any advantage for that?
> You are missing the point:
>
> %__perl is being used to derive a whole zoo of %defines, which required
> to keep perl-module packages consistent - make doesn't.
>
> E.g. all perl-module packages something similar to this:
>
> Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo
> $version))
> ...
> %{__perl} Makefile.PL INSTALLDIRS=vendor
> ...
> %{perl_vendorlib}
>
>
>> Also we have Review Guidelins which say usage of macroses should be
>> consistent -
> Correct ... when using one macro, it must be used consistently
> throughout a *.spec, otherwise your package will not build correctly
> should a macro change.
>
> In other words, when using %__perl, you must use it everywhere inside of
> your *.spec. As %__perl is being used inside of the default rpm macros,
> not using %__perl almost always will be wrong.
>
Ok, but why not use plain perl?
> Ralf
>
More information about the devel
mailing list