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. Ralf -- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel