Olá Gustavo,

em relação aos headers mais antigo não é este o problema, pois eu tinha testado colocar o caminho direto, como sugerido pelo Eduardo. Outra coisa, como é um servidor é novo, aproveitei para colocar o ultimo release do modsecurity.

[]s

Eduardo,
também achei esquisito este trecho e tinha testado já como vc disse, colocar o define direto, sem a condicional (e funcionou). Mas como eu queria manter o código do spec original (exceto pela mudança de versão).
Como ainda não entendi muito bem as macros do %if então fiquei curioso
Mas farei isto então... Muito obrigado pela atenção de todos.

Obs.: sabe explicar como funciona as cláusulas que começam com % ?
[]s

On 8/24/07, Eduardo Habkost <ehabkost@raisama.net> wrote:
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



--
________________________________________________
Renato de Oliveira Diogo

Bacharel em Ciência da Computação
UNESP - Bauru

renato.diogo@gmail.com
renato.diogo@yahoo.com.br