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