On Thu, Aug 23, 2007 at 11:34:16PM -0300, Renato de Oliveira Diogo wrote:
[...]
%if %(if [ -f "/etc/httpd/build/special.mk" ]; then echo 1
; elif [ -f
"/usr/lib/httpd/build/special.mk" ]; then echo 2 ; else echo -1; fi)
%define _apacheroot /etc/httpd
%else
%define _apacheroot /usr/lib/httpd
%endif
==
Pelo que vi aqui, ele deve retornar o valor para entrar no else (%define
_apacheroot /usr/lib/httpd), porém isto não ocorre.
Não sei o que o autor do %if tinha em mente, mas do jeito que está
escrito, ele nunca vai entrar no %else, porque tanto "1", quanto "2"
quanto "-1" são considerados como 'true' ao avaliar o %if.
Você pode:
- Consertar o texto dentro do %(if ...) para fazer 'echo 0' no caso em que
tenha que entrar no %else; ou
- Remover tudo e deixar apenas a linha %define _apacheroot /usr/lib/httpd
(caso você decida que o %if não é importante e o seu pacote vá funcionar
se você usar /usr/lib/httpd incondicionalmente)
--
Eduardo