Olá pessoal
olha eu denovo aqui. Bom, achei outro erro no spec que estou me baseando. O trecho está logo abaixo:
=== perl -e "undef $/; while (<>) { s#^(LoadModule.*?)\n\n#$1\nLoadFile %{_libdir}/libxml2.so\nLoadModule unique_id_module modules/mod_unique_id.so\nLoadModule security2_module modules/mod_security2.so\n\n#mgs; print; }" > \ /etc/httpd/conf/httpd.conf.rpmnew ===
Este trecho consiste em ler o arquivo httpd.conf original, e inserir no httpd.conf as seguintes linhas: LoadFile /usr/lib/libxml2.so LoadModule unique_id_module modules/mod_unique_id.so LoadModule security2_module modules/mod_security2.so
Porém este trecho apaga todos os LoadModule já existente inserindo somente as linhas acima.
Alguem pode me ajudar?
[]s
On 8/24/07, Renato de Oliveira Diogo rdiogo01@yahoo.com.br wrote:
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